Christoffer Lerno
4a5b57c2d7
AST dump cleanup done. Leaving some TODOs.
2020-05-07 12:10:49 +02:00
Christoffer Lerno
dbce72146f
More AST dumps fixed. Throw simplified by removing "DECL_THROW", which also unearthed a bug.
2020-05-07 11:46:16 +02:00
Christoffer Lerno
89ce6064e1
Started work on cleaning up dumping the AST. Lots still to do but... Split try expr further and fixed emit of statement.
2020-05-06 22:23:53 +02:00
Christoffer Lerno
f62a094f75
Simple globals now work correctly, but structs don't.
2020-05-05 16:57:11 +02:00
Christoffer Lerno
93bd0fb337
Jumping on else added.
2020-05-05 11:28:49 +02:00
Christoffer Lerno
982b663f2c
Updated "what's missing"
2020-05-03 17:19:20 +02:00
Christoffer Lerno
d23c271289
Throw/catch works correctly with defer.
2020-05-03 16:45:16 +02:00
Christoffer Lerno
333b3df47d
Add use of variable.
2020-05-03 02:12:14 +02:00
Christoffer Lerno
d8423eff56
Fix space at end of file.
2020-05-03 02:08:33 +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
df0433d746
Fix fallthrough case handling.
2020-04-18 23:55:53 +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
ff31bd17c0
Improved error messages for initializers. Array initializers work.
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
9bf89574f9
Updated TODO
2020-04-12 21:35:25 +02:00
Christoffer Lerno
eabef8f468
Merge pull request #24 from c3lang/develop
...
Support named parameters, default parameters and varargs.
2020-04-09 16:49:10 +02:00
Christoffer Lerno
f5dd5bf203
Support named parameters, default parameters and varargs.
2020-04-09 16:48:38 +02:00
Christoffer Lerno
3d4c3ccebb
Merge pull request #23 from c3lang/develop
...
Fixed variadic error. Fixed incorrect token type on decimal numbers(!)
2020-04-09 15:09:26 +02:00
Christoffer Lerno
50c3604dd2
Fixed variadic error. Fixed incorrect token type on decimal numbers(!)
2020-04-09 15:08:48 +02:00
Christoffer Lerno
fdd3923996
Merge pull request #22 from c3lang/develop
...
Missing commits
2020-04-09 13:50:47 +02:00
Christoffer Lerno
7392b453a3
Work on unions and anonymous structs/unions.
2020-04-09 13:49:51 +02:00
Christoffer Lerno
547f1748dd
Merge pull request #21 from c3lang/develop
...
Enum, unions, struct and traps on overflow added.
2020-04-09 13:49:00 +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
336e6cf47d
Type cleanup
2020-04-04 01:35:20 +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
f7ef4765e9
Merge pull request #20 from c3lang/develop
...
Some work towards automated testing. Fixes to bigint. Removed implici…
2020-04-02 23:15:11 +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
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
ae683d2811
Removed explicit targets from make file.
2020-03-27 09:32:02 +01:00
Christoffer Lerno
7687d53b5a
Merge pull request #19 from jamestmartin/patch-1
...
Added AVR components to LLVM_LINK_COMPONENTS to fix the build on Linux.
2020-03-27 00:32:55 +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
5c0c0ecd2e
Removed erronous include.
2020-03-26 22:54:57 +01:00
Christoffer Lerno
ad404315d6
Fix some bugs, satisfy more compilers.
2020-03-26 16:37:41 +01:00
Christoffer Lerno
540aea2104
Merge pull request #18 from c3lang/develop
...
Improved defer functionality, handling goto, conditional defers, next…
2020-01-28 23:42:31 +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