├── .gitignore ├── .travis.yml ├── LICENSE ├── Makefile ├── README.md ├── bench_test.go ├── bytecode ├── Frame.go ├── Op.go ├── OpAdd.go ├── OpDiv.go ├── OpInvoke.go ├── OpMul.go ├── OpPushFalse.go ├── OpPushInt.go ├── OpPushStr.go ├── OpPushTrue.go ├── OpPushVector.go ├── OpSub.go ├── Program.go ├── Version.go └── proto.fbs ├── cmd └── expr │ └── main.go ├── compiler └── compiler.go ├── delegate ├── delegator.go ├── registry.go ├── tracing.go └── tracing_test.go ├── example_test.go ├── exec ├── errors.go ├── globals.go ├── stack.go ├── vm.go └── vm_test.go ├── go.mod ├── go.sum ├── lexer ├── ast.go ├── init.go ├── lexer.go ├── lexer.go.rl ├── lexer_test.go ├── node.go └── nvec.go ├── memory ├── addr.go ├── addr_test.go ├── grid.go ├── heap.go ├── memory.go ├── memory_test.go ├── type.go └── type_test.go └── stdlib ├── compare.go ├── compare_test.go ├── strings.go └── strings_test.go /.gitignore: -------------------------------------------------------------------------------- 1 | expr.test 2 | coverage.txt 3 | cpu.out 4 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/.travis.yml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/README.md -------------------------------------------------------------------------------- /bench_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/bench_test.go -------------------------------------------------------------------------------- /bytecode/Frame.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/bytecode/Frame.go -------------------------------------------------------------------------------- /bytecode/Op.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/bytecode/Op.go -------------------------------------------------------------------------------- /bytecode/OpAdd.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/bytecode/OpAdd.go -------------------------------------------------------------------------------- /bytecode/OpDiv.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/bytecode/OpDiv.go -------------------------------------------------------------------------------- /bytecode/OpInvoke.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/bytecode/OpInvoke.go -------------------------------------------------------------------------------- /bytecode/OpMul.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/bytecode/OpMul.go -------------------------------------------------------------------------------- /bytecode/OpPushFalse.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/bytecode/OpPushFalse.go -------------------------------------------------------------------------------- /bytecode/OpPushInt.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/bytecode/OpPushInt.go -------------------------------------------------------------------------------- /bytecode/OpPushStr.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/bytecode/OpPushStr.go -------------------------------------------------------------------------------- /bytecode/OpPushTrue.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/bytecode/OpPushTrue.go -------------------------------------------------------------------------------- /bytecode/OpPushVector.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/bytecode/OpPushVector.go -------------------------------------------------------------------------------- /bytecode/OpSub.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/bytecode/OpSub.go -------------------------------------------------------------------------------- /bytecode/Program.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/bytecode/Program.go -------------------------------------------------------------------------------- /bytecode/Version.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/bytecode/Version.go -------------------------------------------------------------------------------- /bytecode/proto.fbs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/bytecode/proto.fbs -------------------------------------------------------------------------------- /cmd/expr/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/cmd/expr/main.go -------------------------------------------------------------------------------- /compiler/compiler.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/compiler/compiler.go -------------------------------------------------------------------------------- /delegate/delegator.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/delegate/delegator.go -------------------------------------------------------------------------------- /delegate/registry.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/delegate/registry.go -------------------------------------------------------------------------------- /delegate/tracing.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/delegate/tracing.go -------------------------------------------------------------------------------- /delegate/tracing_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/delegate/tracing_test.go -------------------------------------------------------------------------------- /example_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/example_test.go -------------------------------------------------------------------------------- /exec/errors.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/exec/errors.go -------------------------------------------------------------------------------- /exec/globals.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/exec/globals.go -------------------------------------------------------------------------------- /exec/stack.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/exec/stack.go -------------------------------------------------------------------------------- /exec/vm.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/exec/vm.go -------------------------------------------------------------------------------- /exec/vm_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/exec/vm_test.go -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/go.mod -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/go.sum -------------------------------------------------------------------------------- /lexer/ast.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/lexer/ast.go -------------------------------------------------------------------------------- /lexer/init.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/lexer/init.go -------------------------------------------------------------------------------- /lexer/lexer.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/lexer/lexer.go -------------------------------------------------------------------------------- /lexer/lexer.go.rl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/lexer/lexer.go.rl -------------------------------------------------------------------------------- /lexer/lexer_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/lexer/lexer_test.go -------------------------------------------------------------------------------- /lexer/node.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/lexer/node.go -------------------------------------------------------------------------------- /lexer/nvec.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/lexer/nvec.go -------------------------------------------------------------------------------- /memory/addr.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/memory/addr.go -------------------------------------------------------------------------------- /memory/addr_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/memory/addr_test.go -------------------------------------------------------------------------------- /memory/grid.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/memory/grid.go -------------------------------------------------------------------------------- /memory/heap.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/memory/heap.go -------------------------------------------------------------------------------- /memory/memory.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/memory/memory.go -------------------------------------------------------------------------------- /memory/memory_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/memory/memory_test.go -------------------------------------------------------------------------------- /memory/type.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/memory/type.go -------------------------------------------------------------------------------- /memory/type_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/memory/type_test.go -------------------------------------------------------------------------------- /stdlib/compare.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/stdlib/compare.go -------------------------------------------------------------------------------- /stdlib/compare_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/stdlib/compare_test.go -------------------------------------------------------------------------------- /stdlib/strings.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/stdlib/strings.go -------------------------------------------------------------------------------- /stdlib/strings_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regeda/expr/HEAD/stdlib/strings_test.go --------------------------------------------------------------------------------