Commit Graph

19 Commits

Author SHA1 Message Date
Christoffer Lerno
fb937156fe Work on debug + fix of failable bug. 2020-09-02 10:18:30 +02:00
Christoffer Lerno
d070a5e7ff Allow "if (...) else if (...)". Disallow 'if (...) doSomething()' unless the "doSomething" is in the same line. 2020-08-03 17:33:07 +02:00
Christoffer Lerno
31d2c15dba Adding $unreachable 2020-08-02 00:06:43 +02:00
Christoffer Lerno
009ccfd730 Adding assert. 2020-08-01 20:53:47 +02:00
Christoffer Lerno
380c1c8ab4 Support for $assert. Also change order of checking global declarations from parsing to semantic analysis. 2020-07-30 17:44:41 +02:00
Christoffer Lerno
8586bf3f8d Constants are now variables. Constant compile time constants are typeless and act as #define and are now also correctly parsed. Enums are also correctly lowered. And expressions are copied when inlining constants. Compile time ints can no longer be bitnegated. 2020-07-29 22:08:47 +02:00
Christoffer Lerno
d0ed16e60e Fixes to !! operator + tests. 2020-07-29 12:07:56 +02:00
Christoffer Lerno
7853cb09ac Added check when omitting end index for pointers. 2020-07-28 17:37:48 +02:00
Christoffer Lerno
ce68bda86c Corrected ptr->bool conversion. Avoid checking function body if function is invalid. Switch defer test cases. Slices with test cases. 2020-07-28 17:37:48 +02:00
Christoffer Lerno
90ab4f07b9 Corrected ptr->bool conversion. Avoid checking function body if function is invalid. Switch defer test cases. 2020-07-28 17:37:48 +02:00
Christoffer Lerno
c839eb50c8 Simplified defer and now also allow nested defers. 2020-07-27 11:40:45 +02:00
Christoffer Lerno
a533cbb1a7 Fixes to tester for multiple file support. 2020-07-27 11:40:45 +02:00
Christoffer Lerno
7b7abf5d4a Fixes to defer, allowing break in defer (instead of continue). Fixed bug in PTR->BOOL cast. Extended test system to support multi files and codegen. 2020-07-27 11:40:45 +02:00
Christoffer Lerno
75dd644e52 Corrected parsing for incremental arrays. Correctly handle failed declarations. More tests. 2020-07-25 21:54:32 +02:00
Christoffer Lerno
34c7df9ee1 Fixed multi line error reporting for tokens. Handle infinite empty for loops. Changed cast syntax to "cast(foo as Foo)". Completed enum casts. Added more tests. 2020-07-25 21:54:32 +02:00
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
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