Commit Graph

89 Commits

Author SHA1 Message Date
Christoffer Lerno
46e39f883c Assigning to $Type now works. 2021-07-20 23:36:53 +02:00
Christoffer Lerno
8568b9b079 Fix right -> left associativity for assignment. 2021-07-19 17:31:13 +02:00
Christoffer Lerno
28a0dec343 Fixes: Extname works on global variables. Bug with boolean in ternary in some cases. Global declarations would not parse attributes. 2021-07-19 17:10:13 +02:00
Christoffer Lerno
8ba2994caa Required parens code moved to semantic analysis. Make || and && have different levels since parens cannot be enforced. 2021-07-18 20:26:19 +02:00
Christoffer Lerno
ac2fd2dd71 Added tests for type methods on non struct/unions. 2021-07-18 19:00:16 +02:00
Christoffer Lerno
2778adbcb9 Fix bug #208 2021-07-18 18:53:00 +02:00
Christoffer Lerno
917f00bb7a Support $typeof, removing the old typeof 2021-07-18 18:36:19 +02:00
Christoffer Lerno
f64c35214e Change error -> anyerr / errtype 2021-07-18 14:11:39 +02:00
Christoffer Lerno
e6b9efe850 Fixing parse of error type. 2021-07-18 13:44:16 +02:00
Christoffer Lerno
069dbe8238 Make it possible for globals and static variables to have failables. 2021-07-18 12:39:08 +02:00
Christoffer Lerno
26d976d0bd Fix Foo! syntactic sugar. 2021-07-17 20:59:29 +02:00
Christoffer Lerno
5fc937897a Check private module parsing. 2021-07-17 18:09:31 +02:00
Christoffer Lerno
1af27136fa Improved error messages on incorrect module name. Issue #209 2021-07-17 15:20:13 +02:00
kvk1920
429fb647fb CI testing (#234)
* run test in CI
* make CI run
* fix some issues with paths on Windows
* avoid using float80
* add mingw64 ci
* fix path issue in tests
* add lld for mingw64 CI
2021-07-17 10:30:19 +02:00
Christoffer Lerno
45a3c8ae50 Fix alignment on all indirect. Fixed incorrect preferred alignment. Added mingw regression tests. 2021-07-16 13:05:56 +02:00
Christoffer Lerno
22fb7b4bcc Fix bug in (x && y && z) codegen. 2021-07-16 11:18:33 +02:00
Christoffer Lerno
afd39c4d4d Add inf and nan. 2021-07-16 00:05:09 +02:00
Christoffer Lerno
1948ae3fe2 Fix checks on float literal exceeding max, and implicit float conversions. 2021-07-15 01:17:18 +02:00
Christoffer Lerno
a18f668fc4 Updated error messages on failed binary arithmetic promotion. 2021-07-14 23:48:43 +02:00
Christoffer Lerno
89a1f62ea8 This improves error messages when using the wrong arguments for "define". Closes #221 2021-07-13 23:52:04 +02:00
Christoffer Lerno
c0d8f7ba90 Incorrect error message when trying to subtract incompatible types from each other. Also, allowing ulong - int should just work. Issue #222. 2021-07-13 23:26:08 +02:00
Christoffer Lerno
c94eacd26f Fixes issue where cont/break/next stack isn't pushed for expression blocks. 2021-07-13 16:09:45 +02:00
Christoffer Lerno
9a6d8d7657 Corrected hex double literal parsing (although it's not 100% correct yet) 2021-07-12 23:45:34 +02:00
Christoffer Lerno
9ee24b5846 Improve error message on import "foo", module "foo", and import statements out of order. 2021-07-12 21:07:14 +02:00
Christoffer Lerno
2134a9f77b $offsetof added. 2021-07-11 01:22:21 +02:00
Christoffer Lerno
a5ce7c47ba Adding "require" precondition. Corrects inferred arrays and fixes so that it uses [*] everywhere. Distict type will now allow methods to be added to it. Added $alignof and $sizeof. 2021-07-09 23:57:35 +02:00
Christoffer Lerno
4ed2596164 Removes "yield" 2021-06-28 00:19:46 +02:00
Christoffer Lerno
1d0c2ab2b0 Unifies function and macro argument parsing. Removed generic and attribute parsing. Prepare removal of yield. 2021-06-27 23:09:37 +02:00
Christoffer Lerno
038ed7f9d5 Macro methods added. 2021-06-26 17:42:45 +02:00
Christoffer Lerno
9572c4afc9 Top level $if now uses $if: / $endif; Fix of boolean globals. Fix of $else: clause. Fix of $assert inside of $if 2021-06-24 18:01:59 +02:00
Christoffer Lerno
321ee81c9d Complete removal of /+ +/ 2021-06-24 01:29:53 +02:00
Christoffer Lerno
5a6cdd25ef Introduced ${...} syntax for constants. Fixed issue where constants were not correctly handled for macros. /* */ comments are nesting. Added LINE, FUNC, FILE defines. Corrected shallow resolution of subarrays. Added int defines. Removed Vararray. 2021-06-24 00:59:25 +02:00
Christoffer Lerno
dafe0e6fb6 Updated scope code and variable tracking. Added trailing body macros. 2021-06-10 15:06:12 +02:00
Christoffer Lerno
9f545c3f89 Added bigger test for regression. 2021-06-01 10:08:51 +02:00
Christoffer Lerno
95f39f42eb Fix nasty bug where the node copies did not get a proper id. 2021-05-31 21:11:10 +02:00
Christoffer Lerno
dd8b850544 Support for "static" keyword. 2021-05-30 16:30:16 +02:00
Christoffer Lerno
0605a8c500 Introduce "private" keyword and private modules / private import. 2021-05-30 16:30:16 +02:00
Christoffer Lerno
d9566ef894 Generic modules are back, slightly different. 2021-05-30 16:30:16 +02:00
Christoffer Lerno
97ac957cb7 "Public by default" 2021-05-30 16:30:16 +02:00
Christoffer Lerno
892c7e8874 Changed generic modules to internal templates. 2021-05-27 08:30:02 +02:00
Christoffer Lerno
cf82140a47 Adding min/max/elements to enums. 2021-05-23 23:55:10 +02:00
Christoffer Lerno
1f676c135c Removed func and rewrote typedefs. 2021-05-23 13:16:48 +02:00
Christoffer Lerno
fb6d80b0f6 Removed implicitly created modules. Fix classification of arrays in x64. Fix cast with direct-pair. With test cases. 2021-05-19 17:27:59 +02:00
Christoffer Lerno
fc31c15914 Updated cast syntax in code samples. 2021-05-18 17:23:27 +02:00
Christoffer Lerno
216467cbf8 Added alternative cast syntax: (type)(expr) 2021-05-18 14:57:41 +02:00
Christoffer Lerno
460c0d04d7 Generic modules. 2021-05-12 17:25:59 +02:00
Christoffer Lerno
9b86b00834 Compilation is now done with each module compiled together. 2021-05-11 14:58:21 +02:00
Christoffer Lerno
f7919edb35 Split modules into generic and normal modules on the top level. Prepare for static. Change local -> static as keyword. Add private include. Remove old sub module search. 2021-05-09 19:26:05 +02:00
Christoffer Lerno
3bd638bf77 Fixes to debug info in function pointer declarations. Incorrect x64 ABI code for structs by val. Change "Compiler" to "GlobalContext" storage of all types inside. Call debug symbol correct. 2021-05-02 16:42:28 +02:00
Christoffer Lerno
0e076234ca Set stdlib library for testing and profit. Fix bugs when using void* to step. Make constants private linkage. Compare pointers using unsigned comparison without conversion. Use manual ptrdiff code. Fix issue returning "void!". Unify pointers when doing Foo* - void*. Allow comparing for example void* < Foo* 2021-04-29 03:12:25 +02:00