├── .gitignore ├── LICENSE ├── Makefile ├── README.md ├── cmd └── gogpt │ └── gpt.go ├── doc ├── g-portugol-completa.ebnf ├── g-portugol-meta.ebnf ├── g-portugol.ebnf └── manualGPortugol.pdf ├── go.mod ├── go.sum ├── pkg ├── domain │ ├── entities │ │ ├── bytecode │ │ │ ├── bytecode.go │ │ │ └── bytecode_test.go │ │ ├── cp │ │ │ ├── constant_pool.go │ │ │ └── constant_pool_test.go │ │ ├── stack │ │ │ ├── stack.go │ │ │ └── stack_test.go │ │ ├── symboltable │ │ │ ├── symbol_table.go │ │ │ └── symbol_table_test.go │ │ └── vars │ │ │ ├── vars.go │ │ │ └── vars_test.go │ ├── errors.go │ └── usecases │ │ ├── bce │ │ ├── bytecode_executor.go │ │ └── bytecode_executor_test.go │ │ ├── instructions │ │ ├── addi │ │ │ ├── add.go │ │ │ └── add_test.go │ │ ├── calli │ │ │ ├── call.go │ │ │ └── call_test.go │ │ ├── ldci │ │ │ ├── ldc.go │ │ │ └── ldc_test.go │ │ ├── ldvi │ │ │ ├── ldv.go │ │ │ └── ldv_test.go │ │ ├── nopi │ │ │ ├── nop.go │ │ │ └── nop_test.go │ │ ├── opcodes.go │ │ ├── std_interfaces.go │ │ └── stvi │ │ │ ├── stv.go │ │ │ └── stv_test.go │ │ ├── lexer │ │ ├── lexer.go │ │ ├── lexer_test.go │ │ └── token.go │ │ └── parser │ │ ├── algorithm.go │ │ ├── algorithm_declaration_test.go │ │ ├── algorithm_test.go │ │ ├── function_call_test.go │ │ ├── stmt_attr_test.go │ │ ├── stmt_block_test.go │ │ └── var_declaration_test.go └── infrastructure │ ├── fake_stdin.go │ ├── fake_stdin_test.go │ ├── fake_stdout.go │ ├── fake_stdout_test.go │ ├── stdin.go │ └── stdout.go └── samples ├── hello_world.gpt ├── hello_world_two_arguments.gpt ├── hello_world_two_sentences.gpt ├── two_literal_vars.gpt ├── what_is_your_name.gpt ├── what_is_your_name_and_how_old.gpt ├── what_is_your_name_and_old_with_one_argument.gpt └── what_is_your_name_with_one_argument.gpt /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/README.md -------------------------------------------------------------------------------- /cmd/gogpt/gpt.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/cmd/gogpt/gpt.go -------------------------------------------------------------------------------- /doc/g-portugol-completa.ebnf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/doc/g-portugol-completa.ebnf -------------------------------------------------------------------------------- /doc/g-portugol-meta.ebnf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/doc/g-portugol-meta.ebnf -------------------------------------------------------------------------------- /doc/g-portugol.ebnf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/doc/g-portugol.ebnf -------------------------------------------------------------------------------- /doc/manualGPortugol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/doc/manualGPortugol.pdf -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/go.mod -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/go.sum -------------------------------------------------------------------------------- /pkg/domain/entities/bytecode/bytecode.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/domain/entities/bytecode/bytecode.go -------------------------------------------------------------------------------- /pkg/domain/entities/bytecode/bytecode_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/domain/entities/bytecode/bytecode_test.go -------------------------------------------------------------------------------- /pkg/domain/entities/cp/constant_pool.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/domain/entities/cp/constant_pool.go -------------------------------------------------------------------------------- /pkg/domain/entities/cp/constant_pool_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/domain/entities/cp/constant_pool_test.go -------------------------------------------------------------------------------- /pkg/domain/entities/stack/stack.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/domain/entities/stack/stack.go -------------------------------------------------------------------------------- /pkg/domain/entities/stack/stack_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/domain/entities/stack/stack_test.go -------------------------------------------------------------------------------- /pkg/domain/entities/symboltable/symbol_table.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/domain/entities/symboltable/symbol_table.go -------------------------------------------------------------------------------- /pkg/domain/entities/symboltable/symbol_table_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/domain/entities/symboltable/symbol_table_test.go -------------------------------------------------------------------------------- /pkg/domain/entities/vars/vars.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/domain/entities/vars/vars.go -------------------------------------------------------------------------------- /pkg/domain/entities/vars/vars_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/domain/entities/vars/vars_test.go -------------------------------------------------------------------------------- /pkg/domain/errors.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/domain/errors.go -------------------------------------------------------------------------------- /pkg/domain/usecases/bce/bytecode_executor.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/domain/usecases/bce/bytecode_executor.go -------------------------------------------------------------------------------- /pkg/domain/usecases/bce/bytecode_executor_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/domain/usecases/bce/bytecode_executor_test.go -------------------------------------------------------------------------------- /pkg/domain/usecases/instructions/addi/add.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/domain/usecases/instructions/addi/add.go -------------------------------------------------------------------------------- /pkg/domain/usecases/instructions/addi/add_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/domain/usecases/instructions/addi/add_test.go -------------------------------------------------------------------------------- /pkg/domain/usecases/instructions/calli/call.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/domain/usecases/instructions/calli/call.go -------------------------------------------------------------------------------- /pkg/domain/usecases/instructions/calli/call_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/domain/usecases/instructions/calli/call_test.go -------------------------------------------------------------------------------- /pkg/domain/usecases/instructions/ldci/ldc.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/domain/usecases/instructions/ldci/ldc.go -------------------------------------------------------------------------------- /pkg/domain/usecases/instructions/ldci/ldc_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/domain/usecases/instructions/ldci/ldc_test.go -------------------------------------------------------------------------------- /pkg/domain/usecases/instructions/ldvi/ldv.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/domain/usecases/instructions/ldvi/ldv.go -------------------------------------------------------------------------------- /pkg/domain/usecases/instructions/ldvi/ldv_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/domain/usecases/instructions/ldvi/ldv_test.go -------------------------------------------------------------------------------- /pkg/domain/usecases/instructions/nopi/nop.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/domain/usecases/instructions/nopi/nop.go -------------------------------------------------------------------------------- /pkg/domain/usecases/instructions/nopi/nop_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/domain/usecases/instructions/nopi/nop_test.go -------------------------------------------------------------------------------- /pkg/domain/usecases/instructions/opcodes.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/domain/usecases/instructions/opcodes.go -------------------------------------------------------------------------------- /pkg/domain/usecases/instructions/std_interfaces.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/domain/usecases/instructions/std_interfaces.go -------------------------------------------------------------------------------- /pkg/domain/usecases/instructions/stvi/stv.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/domain/usecases/instructions/stvi/stv.go -------------------------------------------------------------------------------- /pkg/domain/usecases/instructions/stvi/stv_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/domain/usecases/instructions/stvi/stv_test.go -------------------------------------------------------------------------------- /pkg/domain/usecases/lexer/lexer.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/domain/usecases/lexer/lexer.go -------------------------------------------------------------------------------- /pkg/domain/usecases/lexer/lexer_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/domain/usecases/lexer/lexer_test.go -------------------------------------------------------------------------------- /pkg/domain/usecases/lexer/token.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/domain/usecases/lexer/token.go -------------------------------------------------------------------------------- /pkg/domain/usecases/parser/algorithm.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/domain/usecases/parser/algorithm.go -------------------------------------------------------------------------------- /pkg/domain/usecases/parser/algorithm_declaration_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/domain/usecases/parser/algorithm_declaration_test.go -------------------------------------------------------------------------------- /pkg/domain/usecases/parser/algorithm_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/domain/usecases/parser/algorithm_test.go -------------------------------------------------------------------------------- /pkg/domain/usecases/parser/function_call_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/domain/usecases/parser/function_call_test.go -------------------------------------------------------------------------------- /pkg/domain/usecases/parser/stmt_attr_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/domain/usecases/parser/stmt_attr_test.go -------------------------------------------------------------------------------- /pkg/domain/usecases/parser/stmt_block_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/domain/usecases/parser/stmt_block_test.go -------------------------------------------------------------------------------- /pkg/domain/usecases/parser/var_declaration_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/domain/usecases/parser/var_declaration_test.go -------------------------------------------------------------------------------- /pkg/infrastructure/fake_stdin.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/infrastructure/fake_stdin.go -------------------------------------------------------------------------------- /pkg/infrastructure/fake_stdin_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/infrastructure/fake_stdin_test.go -------------------------------------------------------------------------------- /pkg/infrastructure/fake_stdout.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/infrastructure/fake_stdout.go -------------------------------------------------------------------------------- /pkg/infrastructure/fake_stdout_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/infrastructure/fake_stdout_test.go -------------------------------------------------------------------------------- /pkg/infrastructure/stdin.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/infrastructure/stdin.go -------------------------------------------------------------------------------- /pkg/infrastructure/stdout.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/pkg/infrastructure/stdout.go -------------------------------------------------------------------------------- /samples/hello_world.gpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/samples/hello_world.gpt -------------------------------------------------------------------------------- /samples/hello_world_two_arguments.gpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/samples/hello_world_two_arguments.gpt -------------------------------------------------------------------------------- /samples/hello_world_two_sentences.gpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/samples/hello_world_two_sentences.gpt -------------------------------------------------------------------------------- /samples/two_literal_vars.gpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/samples/two_literal_vars.gpt -------------------------------------------------------------------------------- /samples/what_is_your_name.gpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/samples/what_is_your_name.gpt -------------------------------------------------------------------------------- /samples/what_is_your_name_and_how_old.gpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/samples/what_is_your_name_and_how_old.gpt -------------------------------------------------------------------------------- /samples/what_is_your_name_and_old_with_one_argument.gpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/samples/what_is_your_name_and_old_with_one_argument.gpt -------------------------------------------------------------------------------- /samples/what_is_your_name_with_one_argument.gpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexgarzao/gogpt-interpreter/HEAD/samples/what_is_your_name_with_one_argument.gpt --------------------------------------------------------------------------------