├── .github └── workflows │ └── go.yml ├── LICENSE ├── README.md ├── asm ├── compiler.go ├── compiler_analysis.go ├── compiler_eval.go ├── compiler_expand.go ├── compiler_prog.go ├── compiler_prog_test.go ├── compiler_test.go ├── error.go ├── evaluator.go ├── evaluator_builtins.go ├── evaluator_test.go ├── global.go ├── statements.go └── testdata │ ├── compiler-tests.yaml │ └── known-bytecode.yaml ├── assets └── geas-b.svg ├── cmd └── geas │ └── geas.go ├── disasm ├── disassembler.go └── disassembler_test.go ├── example ├── 4788asm.eas ├── 4788asm_ctor.eas └── erc20 │ ├── erc20.eas │ ├── erc20_ctor.eas │ ├── op_allowance.eas │ ├── op_approve.eas │ ├── op_balanceOf.eas │ ├── op_transfer.eas │ └── op_transferFrom.eas ├── go.mod ├── go.sum └── internal ├── ast ├── arith.go ├── arithop_string.go ├── ast.go ├── error.go ├── expr.go ├── lexer.go ├── lexer_test.go ├── names.go ├── parse.go └── tokentype_string.go ├── evm ├── forkdefs.go ├── instruction_set.go ├── instruction_set_test.go └── ops.go ├── lzint ├── value.go └── value_test.go ├── printer ├── printer.go ├── printer_test.go └── testdata │ ├── in.0.eas │ ├── in.1.eas │ ├── in.2.eas │ ├── in.3.eas │ ├── out.0.eas │ ├── out.1.eas │ ├── out.2.eas │ └── out.3.eas └── set └── set.go /.github/workflows/go.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/.github/workflows/go.yml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/README.md -------------------------------------------------------------------------------- /asm/compiler.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/asm/compiler.go -------------------------------------------------------------------------------- /asm/compiler_analysis.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/asm/compiler_analysis.go -------------------------------------------------------------------------------- /asm/compiler_eval.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/asm/compiler_eval.go -------------------------------------------------------------------------------- /asm/compiler_expand.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/asm/compiler_expand.go -------------------------------------------------------------------------------- /asm/compiler_prog.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/asm/compiler_prog.go -------------------------------------------------------------------------------- /asm/compiler_prog_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/asm/compiler_prog_test.go -------------------------------------------------------------------------------- /asm/compiler_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/asm/compiler_test.go -------------------------------------------------------------------------------- /asm/error.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/asm/error.go -------------------------------------------------------------------------------- /asm/evaluator.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/asm/evaluator.go -------------------------------------------------------------------------------- /asm/evaluator_builtins.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/asm/evaluator_builtins.go -------------------------------------------------------------------------------- /asm/evaluator_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/asm/evaluator_test.go -------------------------------------------------------------------------------- /asm/global.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/asm/global.go -------------------------------------------------------------------------------- /asm/statements.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/asm/statements.go -------------------------------------------------------------------------------- /asm/testdata/compiler-tests.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/asm/testdata/compiler-tests.yaml -------------------------------------------------------------------------------- /asm/testdata/known-bytecode.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/asm/testdata/known-bytecode.yaml -------------------------------------------------------------------------------- /assets/geas-b.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/assets/geas-b.svg -------------------------------------------------------------------------------- /cmd/geas/geas.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/cmd/geas/geas.go -------------------------------------------------------------------------------- /disasm/disassembler.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/disasm/disassembler.go -------------------------------------------------------------------------------- /disasm/disassembler_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/disasm/disassembler_test.go -------------------------------------------------------------------------------- /example/4788asm.eas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/example/4788asm.eas -------------------------------------------------------------------------------- /example/4788asm_ctor.eas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/example/4788asm_ctor.eas -------------------------------------------------------------------------------- /example/erc20/erc20.eas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/example/erc20/erc20.eas -------------------------------------------------------------------------------- /example/erc20/erc20_ctor.eas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/example/erc20/erc20_ctor.eas -------------------------------------------------------------------------------- /example/erc20/op_allowance.eas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/example/erc20/op_allowance.eas -------------------------------------------------------------------------------- /example/erc20/op_approve.eas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/example/erc20/op_approve.eas -------------------------------------------------------------------------------- /example/erc20/op_balanceOf.eas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/example/erc20/op_balanceOf.eas -------------------------------------------------------------------------------- /example/erc20/op_transfer.eas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/example/erc20/op_transfer.eas -------------------------------------------------------------------------------- /example/erc20/op_transferFrom.eas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/example/erc20/op_transferFrom.eas -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/go.mod -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/go.sum -------------------------------------------------------------------------------- /internal/ast/arith.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/internal/ast/arith.go -------------------------------------------------------------------------------- /internal/ast/arithop_string.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/internal/ast/arithop_string.go -------------------------------------------------------------------------------- /internal/ast/ast.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/internal/ast/ast.go -------------------------------------------------------------------------------- /internal/ast/error.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/internal/ast/error.go -------------------------------------------------------------------------------- /internal/ast/expr.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/internal/ast/expr.go -------------------------------------------------------------------------------- /internal/ast/lexer.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/internal/ast/lexer.go -------------------------------------------------------------------------------- /internal/ast/lexer_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/internal/ast/lexer_test.go -------------------------------------------------------------------------------- /internal/ast/names.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/internal/ast/names.go -------------------------------------------------------------------------------- /internal/ast/parse.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/internal/ast/parse.go -------------------------------------------------------------------------------- /internal/ast/tokentype_string.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/internal/ast/tokentype_string.go -------------------------------------------------------------------------------- /internal/evm/forkdefs.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/internal/evm/forkdefs.go -------------------------------------------------------------------------------- /internal/evm/instruction_set.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/internal/evm/instruction_set.go -------------------------------------------------------------------------------- /internal/evm/instruction_set_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/internal/evm/instruction_set_test.go -------------------------------------------------------------------------------- /internal/evm/ops.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/internal/evm/ops.go -------------------------------------------------------------------------------- /internal/lzint/value.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/internal/lzint/value.go -------------------------------------------------------------------------------- /internal/lzint/value_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/internal/lzint/value_test.go -------------------------------------------------------------------------------- /internal/printer/printer.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/internal/printer/printer.go -------------------------------------------------------------------------------- /internal/printer/printer_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/internal/printer/printer_test.go -------------------------------------------------------------------------------- /internal/printer/testdata/in.0.eas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/internal/printer/testdata/in.0.eas -------------------------------------------------------------------------------- /internal/printer/testdata/in.1.eas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/internal/printer/testdata/in.1.eas -------------------------------------------------------------------------------- /internal/printer/testdata/in.2.eas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/internal/printer/testdata/in.2.eas -------------------------------------------------------------------------------- /internal/printer/testdata/in.3.eas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/internal/printer/testdata/in.3.eas -------------------------------------------------------------------------------- /internal/printer/testdata/out.0.eas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/internal/printer/testdata/out.0.eas -------------------------------------------------------------------------------- /internal/printer/testdata/out.1.eas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/internal/printer/testdata/out.1.eas -------------------------------------------------------------------------------- /internal/printer/testdata/out.2.eas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/internal/printer/testdata/out.2.eas -------------------------------------------------------------------------------- /internal/printer/testdata/out.3.eas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/internal/printer/testdata/out.3.eas -------------------------------------------------------------------------------- /internal/set/set.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fjl/geas/HEAD/internal/set/set.go --------------------------------------------------------------------------------