Christoffer Lerno
|
29730345b0
|
Moving llvm-emit / debug output separately. Started work on C headers. Started work getting packed unions and structs to work correctly. Also added some unfinished PIC code.
|
2020-11-27 23:43:39 +01:00 |
|
Christoffer Lerno
|
564fc6e106
|
Disable library detection.
|
2020-08-02 00:06:43 +02:00 |
|
Christoffer Lerno
|
21357c4fc1
|
Fix crash when having return value errors. Updated docs. Find and load builtin.c3 locate std lib.
|
2020-07-31 16:29:52 +02:00 |
|
Christoffer Lerno
|
380c1c8ab4
|
Support for $assert. Also change order of checking global declarations from parsing to semantic analysis.
|
2020-07-30 17:44:41 +02:00 |
|
Christoffer Lerno
|
ed01616f1e
|
Changed how structs/unions are parsed so that recovery becomes more robust. Allow for more complex error data. Fixed recursive structs/unions. Corrected prefix precedence rules. Begin work on checking initializer constant-ness. Fixed error on failed arithmetic promotion. Added checks on constant overflow of sub/add/mult. Allow "current_module_name::x" to refer to globals. Added many tests.
|
2020-07-23 18:04:18 +02:00 |
|
Christoffer Lerno
|
f45d6ef84b
|
Fix, separate out the function pass from the decl pass. Diagnose non-visible symbols as not visible rather than missing. Fix crash when module identifier is incorrect. !! operator added. New character literal parsing. Added simple test framework.
|
2020-07-21 23:43:28 +02:00 |
|
Christoffer Lerno
|
b4c661eaad
|
Pre lexing and mmap allocation together with exact exits.
|
2020-07-15 15:42:54 +02:00 |
|
Christoffer Lerno
|
dc86c21210
|
New failable based error handling. Labelled break/continue/next.
|
2020-07-09 13:07:08 +02:00 |
|
Christoffer Lerno
|
6da6b0f571
|
Compound literal works properly.
|
2020-04-18 14:29:17 +02:00 |
|
Christoffer Lerno
|
f53b378b0c
|
Adding trap on debug builds.
|
2020-04-09 13:47:23 +02:00 |
|
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
|
2e3bbf119c
|
Lexer cleanup
|
2020-03-29 17:40:03 +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
|
7b4ed09517
|
Introduced a Lexer context, comment parsing now actually works properly. Token use in decl/ast/expr is moved to SourceRange instead. And the SourceRange used start/end, which is better than using start + len for many uses.
|
2020-01-25 17:56:17 +01: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
|
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
|
a3b90b9500
|
Removed non-null references.
|
2019-09-30 13:29:41 +02:00 |
|
Christoffer Lerno
|
5f00d4c2bc
|
More parsing, start working on packages.
|
2019-09-16 12:34:23 +02:00 |
|
Christoffer Lerno
|
000d1fea4a
|
Global declarations. Starting work on struct initializers, lots of arithmetics now checked correctly. Support 2cc 4cc 8cc
|
2019-09-08 21:32:08 +02:00 |
|
Christoffer Lerno
|
3b2051ea80
|
More casts done, bugs fixed, codegen expanded, correct ordering in codegen, if, label, goto, break, switch, continue, compile time if analysed,
|
2019-09-07 00:58:56 +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 |
|