Added ANTLR4 and test grammar.
Added custom listener, fixed various bits.
Fixed source and grammar to not fail when compile is called -- very early implementation.
Changed opcode enums and their values to be more correct.
Changed opcode enums and their values to be more correct.
Listener work in progress.
Comments in vm-main.py.
Updated grammar and implemented listener to generate bytecodes for most opcodes. Branching and looping not implemented.
Fixes to grammar, cpu and opcodes to make it more transparent. Disassembly now works for a compiled program.
Minor fixes to listener, opcodes, disassembly (HALT was missing). Added comments.
Implemented Equals, NotEquals, GT and LT. Also implemented "create label" and "mark label" helper methods to enable conditional jumping.
Code clean-up, regions in listener.
Correct implementation of if..else.
Implementation of while loops
WIP clean-up of cpu processing of bytecodes.
Implemented cpu processing of stfld and ldfld. Also refactored stack pop and push, program value retrieval and code memory get/set.
Implemented cpu processing of branching
Fix to handle while loops as well.
Merged branch Step2 (which includes a custom programming language and bytecode compiler) into Step3.
Renamed Opcode to VMOpcode to support unit testing and changed cpu to not print program execution but instead use a stream.