Come to think of it it might actually be easier to implement the evaluator as an actual VM. That is, instead of directly running on the AST it runs on some flavour of bytecode. Alternatively it runs directly on the AST but behaves more like a (stack based) VM. This would most likely be easier than passing a cursor to every node processing method. |
||
|---|---|---|
| .. | ||
| oga | ||
| oga.rb | ||