5677e0501e95de3a2becba45313169f65f1da3a8
Eval returns the value of the root node of AST, so ensure that node values are propagated back to ExprStmt and BlockStmt, which should be sufficient to handle evaluation of simple statements.
Go interpreter
A Go interpreter in go
Tests
Tests are simple standalone go programs to be run by gi executable.
Scripts are converted to go test examples for execution by go test as well.
To create a new test, simply add a new .gi file, specifying expected output at end of program in a // Output: comment block like in the following example:
package main
func main() {
println("Hello")
}
// Output:
// Hello
Then in _test/, run make to re-generate interp/eval_test.go
When developing/debugging, I'm running gi on a single script, using -a and -c options to display AST and CFG graphs, and instrumenting code with temporary println statements to diagnose problems.
Description
Languages
Go
98.4%
Shell
1.2%
GAP
0.2%
Makefile
0.2%