Commit Graph

18 Commits

Author SHA1 Message Date
Christoffer Lerno
f4b4bab947 Restructuring the parser & split parser into parts. Parsing more constructs now, like enums with extended syntax. Corrected handling of function block to be an expression. Added expression block codegen. 2020-03-29 17:40:42 +02:00
Christoffer Lerno
ebbea2ac42 Lookahead cleanup. Start work on throws. Fix try expressions. Beginning work on initializer. Some fixes on LLVM types. Moving more target info into C3. Moving alignment into types Introducing a meta type (incomplete). Start work on macros. Splitting '@' from macro name. 2020-03-29 17:39:33 +02:00
Christoffer Lerno
ae683d2811 Removed explicit targets from make file. 2020-03-27 09:32:02 +01:00
James Martin
a6235d2cc4 Added AVR components to LLVM_LINK_COMPONENTS to fix the build on Linux.
`-Werror` must still be removed from `target_compile_options` to build with GCC.
Presumably the build would work without any further modifications with Clang, but I have not tested it.
2020-03-26 15:42:48 -07:00
Christoffer Lerno
cdc1bfe267 Start using UnaryOp/PostUnaryOp ++/-- now works post/pre and also on pointers. Fix ++/-- on any number. Added examples. c3c now compiles files by default. Extended symbol resolution. Addition of 'extern'. Multi-level paths. 2020-01-16 21:28:13 +01:00
Christoffer Lerno
946ca18cee Support for subscripts. Added helloworld. 2019-12-11 17:22:48 +01:00
Christoffer Lerno
aee3f99ea7 Added some codegen & .o generation and (hopefully correct) optimization. Hacked strings in together with i++/i--. Fixed up parsing of strings supporting \u \U \x => UTF8 2019-11-27 16:16:44 +01:00
Christoffer Lerno
990918b609 LLVM Codegen 2019-11-20 17:09:25 +01:00
Christoffer Lerno
5f00d4c2bc More parsing, start working on packages. 2019-09-16 12:34:23 +02:00
Christoffer Lerno
0dba2b8569 Partial codegen 2019-09-04 12:51:01 +02:00
Christoffer Lerno
2eb91083a6 Refactor type handling, some extremely simple codegen, but mostly work on casts (not finished) 2019-09-01 01:58:21 +02:00
Christoffer Lerno
ebce81ad51 Parses most of C3. 2019-08-25 08:40:07 +02:00
Christoffer Lerno
386ef35f36 Started a bit on parsing. Picking pieces from Titanos and trying to do things better. 2019-07-31 23:19:45 +02:00
Christoffer Lerno
8f611a400d Lexing up and running. 2019-07-27 17:20:31 +02:00
Christoffer Lerno
7439dccc53 Add a little testing and keyword parsing x2 2019-07-25 18:57:35 +02:00
Christoffer Lerno
bd7c743e93 Updated project structure. Updated README. 2019-07-15 16:38:31 +02:00
Christoffer Lerno
88b2dc547e Project setup 2019-07-13 22:46:39 +02:00
Christoffer Lerno
1d02585c7a Initial commit 2019-07-12 19:07:09 +02:00