Commit Graph

118 Commits

Author SHA1 Message Date
Christoffer Lerno
e3566ba838 Fixed crash bug on missing module, and on file name == keyword. Added summary to tester and corrected filename. 2020-07-25 21:54:32 +02:00
Christoffer Lerno
bd68380f06 Fixes to compile time integer conversions to to unsigned values, detecting negative values. Require cast on int -> pointer cast. Fixed check on array underflow. More tests. 2020-07-25 02:43:06 +02:00
Christoffer Lerno
7e803034c2 Merge pull request #36 from c3lang/dev
Changed how structs/unions are parsed so that recovery becomes more r…
2020-07-23 18:06:22 +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
3e76ee2643 TODO corrected 2020-07-09 16:17:08 +02:00
Christoffer Lerno
9b0f0edf19 Explicit fallthrough. 2020-07-09 16:15:44 +02:00
Christoffer Lerno
c976dc3749 Removed fallthrough. 2020-07-09 16:13:25 +02:00
Christoffer Lerno
1ddcb99711 More fixes for warnings. 2020-07-09 16:11:29 +02:00
Christoffer Lerno
3e5fefdb64 Fixed warning. 2020-07-09 16:10:02 +02:00
Christoffer Lerno
dc86c21210 New failable based error handling. Labelled break/continue/next. 2020-07-09 13:07:08 +02:00
SeekingMeaning
10f715cec0 Fixed link to C2 language in readme 2020-07-06 23:25:19 +02:00
Christoffer Lerno
a6a4136685 Updated examples and grammar for big error change. 2020-06-17 18:19:00 +02:00
Christoffer Lerno
42a222e353 Update CODE_OF_CONDUCT.md 2020-06-17 12:49:04 +02:00
Christoffer Lerno
7410a8d985 Create CODE_OF_CONDUCT.md
Added code of conduct.
2020-06-17 12:45:31 +02:00
Christoffer Lerno
50c36789bf Fixes bug handling chained && ||. Work towards more macro functionality. Correctly emit stdcall. Corrected character parsing in escaped string entries. 2020-06-11 15:45:58 +02:00
Christoffer Lerno
f96ab76195 Type parsing and expr parsing unified. 2020-06-02 00:41:35 +02:00
Christoffer Lerno
3bdfe3e05e Refactored structs. 2020-06-01 21:00:21 +02:00
Christoffer Lerno
c9ab05bfec Prepare for struct refactoring. 2020-05-30 20:58:09 +02:00
Christoffer Lerno
1b69423f45 Method functions now work. 2020-05-27 12:26:38 +02:00
Christoffer Lerno
28f307d467 Fixed correct calculation for warning on unused throw. 2020-05-27 10:23:03 +02:00
Christoffer Lerno
aa266c076a Try to change path for llvm. 2020-05-20 17:28:45 +02:00
Christoffer Lerno
481bada1df Yaml cleanup. 2020-05-20 17:19:33 +02:00
Christoffer Lerno
2b97241908 Nicer print of errors when using typedef. Error cast of pointers should not have error when optionally implicit. Improved func pointer printout. 2020-05-20 16:51:44 +02:00
Christoffer Lerno
4b5adc46db Use LLVM 9 2020-05-20 15:24:47 +02:00
Christoffer Lerno
0351f23f96 Revert 2020-05-20 15:11:23 +02:00
Christoffer Lerno
6790bba04f Updated main.yml 2020-05-20 15:06:49 +02:00
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