New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AST-based VM #54

Merged
merged 53 commits into from Apr 17, 2015

Conversation

Projects
None yet
3 participants
@TheBerkin
Owner

TheBerkin commented Apr 17, 2015

No description provided.

TheBerkin and others added some commits Apr 10, 2015

Merge branch 'dev-ast' of github.com:TheBerkin/Rant into dev-ast
Conflicts:
	Rant/Engine/Compiler/RantCompiler.cs
	Rant/Engine/Sandbox.cs
Subroutines added. No scoping support yet (I think?)
The code is very bad and I couldn't figure out a good way of dealing with
arguments so it might be terrible. Hey, whatever man.

TheBerkin added a commit that referenced this pull request Apr 17, 2015

@TheBerkin TheBerkin merged commit c69822f into dev Apr 17, 2015

1 check was pending

continuous-integration/appveyor Waiting for AppVeyor build to complete
Details

@TheBerkin TheBerkin deleted the dev-ast branch Apr 17, 2015

@ottworks

This comment has been minimized.

Show comment
Hide comment
@ottworks

ottworks Apr 17, 2015

So basically a refactor?

ottworks commented Apr 17, 2015

So basically a refactor?

@TheBerkin

This comment has been minimized.

Show comment
Hide comment
@TheBerkin

TheBerkin Apr 17, 2015

Owner

Basically; the entire VM architecture is different from what it was before. Evaluation of the pattern is not done on a per-token basis anymore, as this performed a bunch of redundant processing. Patterns are now compiled into an Abstract Syntax Tree (AST) that recursively stores the logic of the pattern. The AST is then non-recursively evaluated by the VM using a stack of iterators.

Owner

TheBerkin commented Apr 17, 2015

Basically; the entire VM architecture is different from what it was before. Evaluation of the pattern is not done on a per-token basis anymore, as this performed a bunch of redundant processing. Patterns are now compiled into an Abstract Syntax Tree (AST) that recursively stores the logic of the pattern. The AST is then non-recursively evaluated by the VM using a stack of iterators.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment