3b541898e2
Initial work on a Symbol Table abstraction
2020-07-08 19:56:28 +05:30
66efa72230
[docs] Fix tables in vm/README
2020-07-07 12:36:12 +05:30
5af2eaa317
Adds 10/12 chapters badge
2020-07-07 04:03:39 +05:30
14bf8e510c
Remove grammar.yml
2020-07-07 03:59:15 +05:30
a6d3e1f6bd
[10] Notes for the compiler, part 2
2020-07-07 03:37:40 +05:30
b0aa03980c
[10] Finishes compiler implementation
2020-07-07 03:23:06 +05:30
812c76e09a
Remove old code
2020-07-06 21:44:41 +05:30
02cb984fec
Fix empty expression tags, and add directory support
2020-07-06 21:44:22 +05:30
a274797e58
Fixes <statements> opening after first statement
2020-07-06 21:15:19 +05:30
d25f7407da
Got most of the Compilation Engine working
...
- Expressions aren't tested
- Some issues with xml ordering and empty tags
2020-07-06 21:12:00 +05:30
703c5e467d
New compiler is running now and giving some results
2020-07-06 17:21:13 +05:30
48d72383fd
Implement all grammar classes
2020-07-06 16:27:19 +05:30
e862b318ba
Rename Elements to Atom
2020-07-06 15:00:36 +05:30
deeebda14d
WIP at enginev2
2020-07-06 14:36:41 +05:30
333484ce7f
Various other WIP attempts
2020-06-24 18:12:36 +05:30
d209fabc9a
Work from yesterday on the CompilationEngine
...
- Restructured the grammar into a separate python
module today
- Doesn't cover array expressions and subroutine calls
inside expressions
2020-06-18 18:21:06 +05:30
c71dd21128
Break up the file a bit, haven't committed compilation stuff yet
2020-06-18 17:26:32 +05:30
cece143368
Adds NOTES for compiler implementation
2020-06-16 03:20:29 +05:30
19f0d670ac
[10] Tokenizer works on all files correctly
2020-06-16 02:43:01 +05:30
c54e5ccaa4
[10] Adds XML output support
2020-06-16 02:05:33 +05:30
8dedf23832
[10] Initial WIP Tokenizer
...
- Initial WIP
- Hated the comment parsing, need to figure that out better
- Strings are not yet supported
- Symbols and keywords are perfectly covered
2020-06-16 01:24:00 +05:30
9e40244023
Adds grammar for Statements
2020-06-16 01:23:46 +05:30
937db42830
transcript of the jack language grammar
2020-06-15 22:39:00 +05:30
7fa3caef7d
[10] Scaffold for Project 10
2020-06-10 02:35:09 +05:30
43f982f06f
[09] Wrote a Tic-Tac-Toe (2player) implementation
2020-06-10 02:01:57 +05:30
23324814bd
Compiled pre-programs
2020-06-10 02:01:46 +05:30
e1a278f4d9
[09] Adds notes on COMPILER specification
2020-06-09 01:08:36 +05:30
7be5183fd0
Adds symlinks to the provided standard library for now
2020-06-09 01:08:03 +05:30
2a27bff08c
[08] Update notes
2020-06-09 00:00:12 +05:30
aed6f0a372
[08] Finishes VM Implementation
...
Lots of different changes:
- modular code with lots of helper methods
- fixed the return jump address getting overridden bug
2020-06-08 23:56:54 +05:30
979976cb93
[docs] Fix chapter numbers
2020-06-04 15:48:52 +05:30
286df5b147
[08] Finishes call/init implementation
...
Found 2 bugs:
0. ic+=10 is incorrect jump for the boolean compare methods
1. Another bug was in the write() method, which was increasing the instruction
counter even for label commands, which aren't supposed to do that.
Another minor issue in my interpretation of the "call" to `Sys.init`
which I was so far just doing via a jump. Changed that to a proper call
2020-06-04 15:48:49 +05:30
4fdc98bb72
[08] Implemented call, but it is breaking somewhere
2020-06-04 15:48:44 +05:30
5160559eff
[08] Optimized function starts a little
2020-06-04 15:48:41 +05:30
6bdbec501a
[08] Init Use LC=300, ARG=400 as standard values for now
2020-06-04 15:48:38 +05:30
91b8ef006e
[08] Fixes frame restoration, so return works properly now
2020-06-04 15:48:35 +05:30
b052ab617c
[08] Implement Return/Function/Init
...
Return isn't functional (yet)
Init isn't called (yet)
2020-06-04 15:48:32 +05:30
2fbdba0cf2
[08] Goto is functional.
...
Wasted 15 minutes stepping through the assembly, only to find out I was
missing a $ in $globalLabel
2020-06-04 15:48:27 +05:30
b61d4c4339
[08] Adds support for label and if-goto commands
2020-06-04 15:48:20 +05:30
91dd0bb102
Fix command symbols
2020-06-03 17:49:21 +05:30
4e49913808
[07/Static] Implements static push/pop memory segment
2020-06-02 17:28:20 +05:30
67b4e2653e
[07/Pointers] Implemented pointer segment push/pop
2020-06-02 17:04:51 +05:30
16e830851e
Remove unused tests
2020-06-02 04:16:57 +05:30
c46f739aed
Was missing an indirect lookup on segment pushes
2020-06-02 04:16:13 +05:30
32242242cb
I think the bug is somewhere in segment based pushes
2020-06-02 04:00:35 +05:30
777523c24f
Write Limited tests for segment pops
2020-06-02 03:51:40 +05:30
551546c953
Break into multiple files for easier navigation
2020-06-02 03:19:28 +05:30
9782ba7e4d
[07] Almost done with BasicTest implementation
2020-06-02 01:42:15 +05:30
3fa5a5c07a
[07] StackTest passes
2020-06-02 00:12:41 +05:30
be69ac321d
Reduce stack manipulation (use M instead of A)
2020-06-01 23:05:42 +05:30