eb118db872
Major rewrite of the symbol parsing
...
Moved from a static double-ended list to individual singly-linked lists for easier and faster parsing
2021-01-20 01:05:41 +00:00
52134784a4
Add function prototyping - we can now call cstdlib functions
2021-01-18 00:20:58 +00:00
389d4b47ff
Working towards functions.. We have parameters and function local types
2021-01-17 06:37:39 +00:00
384f46054a
Local Variables.
...
Still got issues with code generation, and for some reason identifier IDs are always 1.
2020-11-27 21:16:50 +00:00
e2120bb171
Working on the refactor for local symbols.
2020-11-25 22:53:50 +00:00
627839aa5d
Implement code generation for new operators.
2020-11-24 13:17:01 +00:00
eab4d51f25
Tweaked parser to allow implicit conversion of type checks to bool
2020-11-24 00:21:08 +00:00
473af8d54e
Add new symbols to the parser. They are not currently handled
2020-11-23 21:42:32 +00:00
245daeb6f9
Clean up generated assembly - the switch takes care of the primitive size so we need only pass a length of 1 for variables.
2020-11-23 19:23:41 +00:00
4f75085348
Refactor symbols, enforce size argument.
...
Fixes string parsing. tests/strings now runs flawlessly.
2020-11-23 19:12:13 +00:00
83959b4793
More work on arrays. Fixed some bugs.
...
Still need to figure out why AsStrDeref isn't working.
2020-11-21 02:07:44 +00:00
985f02723e
Start work on array parsing
2020-11-18 20:49:08 +00:00
bc1bac8a63
Big cleanup and fixes.
...
We have pointer arithmetic!
2020-11-15 06:40:05 +00:00
a0d2575a83
Refactor pointer arithmetic
2020-09-14 02:05:24 +01:00
264c50509e
Allow global-scope declarations
...
Function-local scope is still WIP, but you can now define things outside of function blocks.
2020-09-13 23:41:46 +01:00
a27d3dd782
Add support for pointers of char, int and long types
2020-09-13 02:26:49 +01:00
a3ca8e621b
Add debugging messages to help track down issue 1
2020-09-12 02:52:51 +01:00
59329d963f
First files.
...
Currently has two bugs.
First, all functions are resolved to index 0 (currently PrintInteger)
Second, the register used for returning is immediately overwritten by the next allocated register. This means addition of function return values is a little silly.
Also, commit signing!
2020-09-10 02:01:18 +01:00