gitextract_72t38b4e/ ├── .gitignore ├── Makefile ├── README.md ├── gen/ │ ├── instruction.go │ ├── opcode.go │ ├── opcode_gen.go │ ├── opcode_gen_test.go │ ├── opcode_program.go │ ├── opcode_test.go │ ├── operand/ │ │ ├── immediate_number.go │ │ ├── label.go │ │ ├── offset.go │ │ ├── oprand.go │ │ ├── register.go │ │ └── types.go │ └── types.go ├── go.mod ├── go.sum ├── lexer/ │ ├── alphabet.go │ ├── alphabet_test.go │ ├── keywords.go │ ├── lexer.go │ ├── lexer_test.go │ ├── token.go │ └── util/ │ ├── stream.go │ └── stream_test.go ├── main.go ├── parser/ │ ├── ast/ │ │ ├── ast.go │ │ ├── block.go │ │ ├── expr.go │ │ ├── expr_call.go │ │ ├── factor.go │ │ ├── func_args.go │ │ ├── priority_table.go │ │ ├── program.go │ │ ├── scalar.go │ │ ├── stmt.go │ │ ├── stmt_assign.go │ │ ├── stmt_assign_test.go │ │ ├── stmt_declare.go │ │ ├── stmt_declare_test.go │ │ ├── stmt_for.go │ │ ├── stmt_func_declare.go │ │ ├── stmt_func_declare_test.go │ │ ├── stmt_if.go │ │ ├── stmt_if_test.go │ │ ├── stmt_return.go │ │ ├── stream.go │ │ ├── stream_test.go │ │ ├── type.go │ │ ├── util.go │ │ └── variable.go │ ├── parser.go │ └── parser_test.go ├── tests/ │ ├── add.ts │ ├── complex-if.ts │ ├── fact2.ts │ ├── fact5.ts │ ├── function.ts │ └── recursion.ts ├── translator/ │ ├── static_table_test.go │ ├── symbol/ │ │ ├── static_table.go │ │ ├── symbol.go │ │ ├── table.go │ │ ├── table_test.go │ │ ├── types.go │ │ └── util.go │ ├── tainstruction.go │ ├── tainstruction_type.go │ ├── taprogram.go │ ├── translator.go │ ├── translator_test.go │ ├── util.go │ └── util_test.go └── vm/ ├── vm.go └── vm_test.go