cdd8e017e2
Fix assigning local definitions.
2023-12-07 22:42:25 +00:00
29b797d7dc
Refactor codegen, allow compiling for linux
2023-12-06 19:01:20 +00:00
0f77480d5b
Refactor to allow inline initialization of arrays.
2023-04-24 22:26:54 +01:00
e42a2cfd8d
Refactor to allow inline initialization of variables.
2023-04-24 20:41:49 +01:00
96f6773904
Allow omission of braces on multiple-statement switch cases.
2023-04-24 03:57:58 +01:00
4e47cdcaf6
Add switch statement, case and default handling, wire in the error handler for a sample program
2023-04-24 03:03:31 +01:00
70ae06af44
Add useful error handler
2023-04-24 02:17:11 +01:00
216d6c6b5e
Refactor to generalise assembler output
2023-04-23 17:32:02 +01:00
334b02cd76
Fix break & continue implementation
2022-03-06 01:15:07 +00:00
b7f8d8666e
Implement break/continue statements.
2022-03-05 23:42:01 +00:00
37cdaacc71
Begin refactor for multiplexed compilation
2022-03-05 01:13:45 +00:00
2c87817904
Implement alias - a faster typedef
2022-03-04 02:31:16 +00:00
628c7a3a13
Implement enums and the foundation of a type alias system
2022-03-04 01:11:04 +00:00
3717b310be
Implement unions and largest-element allocation
2022-03-03 02:44:07 +00:00
537246daae
CLion reformatting pass, finish struct implementation
2022-03-03 00:05:10 +00:00
8e45ea5eef
Implement (broken) struct member access
2021-07-05 00:07:04 +01:00
2bdbe6e6c0
Fixes to parsing and function pointers. It's a hack but it... works? kinda?
2021-03-15 15:59:15 +00:00
d848425701
Working on functions, symbols, and toward a GL hello world.
2021-03-15 01:22:47 +00:00
72358aed9f
Small fixes, complete refactor
2021-01-22 01:01:53 +00:00
18b5da209d
Major refactoring
...
Comments added to the parser and lexer, more to come
2021-01-20 19:22:15 +00:00
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
bcd313270f
Rework compiler command line parsing, it can now assemble and link automatically
2021-01-18 01:47:42 +00:00
52134784a4
Add function prototyping - we can now call cstdlib functions
2021-01-18 00:20:58 +00:00
813a6c7827
Add parsing for function calls
2021-01-17 21:56:37 +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
6ce26709de
Start refactoring Symbols for scoping rework
2020-11-25 17:03:33 +00:00
b540d5ef1b
Cleanup data, prepare for local vars
2020-11-25 02:11:09 +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
e44158f3b7
Prepare for bitwise, boolean and PPMM operators
2020-11-23 20:01:36 +00:00
4f75085348
Refactor symbols, enforce size argument.
...
Fixes string parsing. tests/strings now runs flawlessly.
2020-11-23 19:12:13 +00:00
86b1688035
Start work on string parsing.
...
Generates a valid AST tree, but the program segfaults. Need to look into it.
2020-11-22 01:44:54 +00:00
b384973379
Prepare for string literal parsing
2020-11-22 00:42: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
999f8dc267
Begin cleanup of array parsing
...
TODO: debug segfault
2020-11-19 02:31:40 +00:00
985f02723e
Start work on array parsing
2020-11-18 20:49:08 +00:00
d8abe6fec0
Add code for printing the AST tree after generation
2020-11-15 06:36:25 +00:00
764f89bb88
Add missing functions, fix missing breaks on switch
2020-11-14 22:26:12 +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
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