Commit Graph

90 Commits

Author SHA1 Message Date
Christoffer Lerno
34cf3a362d Updated LLVM dl 2020-05-20 15:05:26 +02:00
Christoffer Lerno
b2bfd87a06 Started work on ranges. Added weak/noreturn/inline/cname/stdcall/section/alignment attributes. Some work on subarrays. Fixes to throws. Function pointers work. 2020-05-20 14:22:22 +02:00
Christoffer Lerno
a160bfc352 Fixed incorrect fallthrough. 2020-05-07 12:33:17 +02:00
Christoffer Lerno
721bcde179 Delete unused CI 2020-05-07 12:31:52 +02:00
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