Commit Graph

3382 Commits

Author SHA1 Message Date
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
Christoffer Lerno
641c8b7b76 Changing license to LGPL 2019-12-29 02:56:42 +01:00
Christoffer Lerno
ae1bfeb737 Removed old license. 2019-12-29 02:30:19 +01:00
Christoffer Lerno
95581ffc6c Updated readme 2019-12-13 00:50:41 +01:00
Christoffer Lerno
df4f88dfcc Fixed a lot of while/if/for. ?: now works. 2019-12-13 00:08:07 +01:00