Christoffer Lerno
|
d23c271289
|
Throw/catch works correctly with defer.
|
2020-05-03 16:45:16 +02:00 |
|
Christoffer Lerno
|
373001fd12
|
Error -> errset (temporarily). Catch / throw now works, but it will not yet correctly handle defer.
|
2020-05-03 02:04:13 +02:00 |
|
Christoffer Lerno
|
78aa49cc0e
|
Work on getting typeof up and running. Try-else now works.
|
2020-04-22 20:19:55 +02:00 |
|
Christoffer Lerno
|
8e80091da4
|
Create CI
|
2020-04-22 16:07:42 +02:00 |
|
Christoffer Lerno
|
982a9e7b58
|
Minor cleanup
|
2020-04-18 22:23:42 +02:00 |
|
Christoffer Lerno
|
6da6b0f571
|
Compound literal works properly.
|
2020-04-18 14:29:17 +02:00 |
|
Christoffer Lerno
|
2c573c8a15
|
Fixed accidental uses of global context.
|
2020-04-18 14:29:17 +02:00 |
|
Christoffer Lerno
|
6117a1be7c
|
Lots of fixes and optimizations to structs. Now there are no unnecessary intermediary types.
|
2020-04-18 14:29:17 +02:00 |
|
Christoffer Lerno
|
1d73338fb0
|
Order of function resolution is different. Function prototypes resolved first. Same with LLVM gen. Designated initializer and anonymous fields fixed mostly.
|
2020-04-12 21:35:25 +02:00 |
|
Christoffer Lerno
|
7392b453a3
|
Work on unions and anonymous structs/unions.
|
2020-04-09 13:49:51 +02:00 |
|
Christoffer Lerno
|
f53b378b0c
|
Adding trap on debug builds.
|
2020-04-09 13:47:23 +02:00 |
|
Christoffer Lerno
|
bb806716e4
|
Unions and structs, including setting them should now work.
|
2020-04-08 21:59:10 +02:00 |
|
Christoffer Lerno
|
96c8c77e89
|
Work on unions and anonymous structs/unions.
|
2020-04-06 23:48:51 +02:00 |
|
Christoffer Lerno
|
400c38b95b
|
Use correct sizes and alignments. Fix designated initializers and literals. Added todo
|
2020-04-06 13:45:58 +02:00 |
|
Christoffer Lerno
|
60c60a3205
|
Enum fixes
|
2020-04-05 11:31:05 +02:00 |
|
Christoffer Lerno
|
bbef467317
|
Codegen of enum and error
|
2020-04-04 01:28:15 +02:00 |
|
Christoffer Lerno
|
bb2aa6e27a
|
Fixup of enum types.
|
2020-04-03 22:00:00 +02:00 |
|
Christoffer Lerno
|
ded367399e
|
Some work towards automated testing. Fixes to bigint. Removed implicit assign cast. Updated cast rules. Fixes *%=. Simplified case. Unified shift code. Major casts rework. Fixed error handling of pointer + integer adds. Removed &&= and ||=. Unified more expression handling and fixed bugs in sematic analysis on expressions.
|
2020-04-02 23:13:04 +02:00 |
|
Christoffer Lerno
|
b1aa64cdcc
|
TypeInfo gained a span. Hex lexing fixed. Basic block returns fixed. Removal of Ast.exit. Enum parameter list parses. Enum analysis improved. Exit deduction improved. Switch over a bool allowed. Switch analysis improved. Added -% operator. Updated implicit casts. Use of bigint. Signed-unsigned comparisons.
|
2020-03-29 17:41:31 +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
|
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
|
ad404315d6
|
Fix some bugs, satisfy more compilers.
|
2020-03-26 16:37:41 +01:00 |
|
Christoffer Lerno
|
b437cb545f
|
Improved defer functionality, handling goto, conditional defers, next, break, continue, fixed bugs with module path detection. Improved switch parsing. Better errors on unknown module.
|
2020-01-28 23:41:10 +01: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
|
df4f88dfcc
|
Fixed a lot of while/if/for. ?: now works.
|
2019-12-13 00:08:07 +01:00 |
|
Christoffer Lerno
|
0492683ca0
|
Added +%, -% and *%
|
2019-12-12 02:01:16 +01:00 |
|
Christoffer Lerno
|
946ca18cee
|
Support for subscripts. Added helloworld.
|
2019-12-11 17:22:48 +01:00 |
|
Christoffer Lerno
|
fc3bd57ecf
|
Major type check rewrite. Fixed params to be writable. Conditionals work. Lots of assign operators fixed. Struct access works.
|
2019-12-08 16:52:29 +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 |
|