Commit Graph

69 Commits

Author SHA1 Message Date
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
09af190aa9 Fix rsp not being escaped properly in the Win32 GAS ASM generator 2023-04-23 19:20:09 +01:00
4d5fd36390 Fix not consuming semicolon on most operations 2023-04-23 18:56:35 +01:00
216d6c6b5e Refactor to generalise assembler output 2023-04-23 17:32:02 +01:00
39756f4e89 Small fixes to assembly output 2022-03-06 02:28:42 +00:00
734bc049e7 Allow single statements in bodies of if, else, while and for 2022-03-06 01:52:37 +00: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
4e62bbdc51 Finish the Import mechanism, plus some bug fixes 2022-03-05 02:05:18 +00:00
2c27f2eb40 Assign source files their actual locations 2022-03-05 01:22:54 +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
8263fb853b
Fixes to struct parsing 2021-02-22 17:43:06 +00:00
72358aed9f
Small fixes, complete refactor 2021-01-22 01:01:53 +00:00
e19a945934
Finish commenting all files 2021-01-21 20:01:30 +00:00
01d293f2c6
More comments - Pointers and Delegate 2021-01-21 01:53:00 +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
a52779e379
Place AST Dumping behind the option 2021-01-18 01:52:20 +00:00
cce059b9dc
Add errno header for linux build 2021-01-18 01:49:46 +00:00
bcd313270f
Rework compiler command line parsing, it can now assemble and link automatically 2021-01-18 01:47:42 +00:00
263e9d443a
Remove Print<x> functions. We can printf, baby. 2021-01-18 00:26:30 +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
0c148f6e0c
Add overrides for aliasing int types to their bit width (int->i32) 2021-01-17 06:36:11 +00:00
39ee1b6028
Working local variables.
Next up: multiple function parameters..
2020-11-30 20:01:00 +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
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
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
0dc444acfc
Fix typo
Lost my train of thought while typing this.
2020-11-22 00:43:32 +00:00
b384973379
Prepare for string literal parsing 2020-11-22 00:42:13 +00:00
9ff658615b
Add character literal parsing 2020-11-22 00:41:48 +00:00
2345931528
Fix wrong type in check inside OperatorPrecedence 2020-11-21 23:15:24 +00:00
72fa2127c8
Add a little extra output during tree dump to make it easier to figure out what's going on with parser errors. 2020-11-21 22:17:02 +00:00