Commit Graph

36 Commits

Author SHA1 Message Date
Danila Fedorin 725958137a Factor type into case strategy constructor. 2020-09-11 13:03:00 -07:00
Danila Fedorin fe1e0a6de0 Switch to using FILE* and default YY_INPUT. 2020-09-11 02:16:29 -07:00
Danila Fedorin 1f3c42fc44 Change constructor visibility to global.
Constructors are always effectively global.
2020-09-10 20:11:55 -07:00
Danila Fedorin 13214cee96 Try out unboxing integers. 2020-09-10 17:32:16 -07:00
Danila Fedorin 579c7bad92 Enable more syntax. 2020-09-10 16:04:44 -07:00
Danila Fedorin f00a6a7783 Actually use the environment for binop functions. 2020-09-10 16:03:56 -07:00
Danila Fedorin 2a81fdd9fb Stop using mangled names for local variables. 2020-09-10 15:14:19 -07:00
Danila Fedorin 17c59e595c Add assertion regarding local name mangling. 2020-09-10 15:05:02 -07:00
Danila Fedorin ad2576eae2 Move common code into loops. 2020-09-10 14:50:03 -07:00
Danila Fedorin 72d8179cc5 Add compile-time flag to disable output. 2020-09-10 14:07:28 -07:00
Danila Fedorin dbabec0db6 Tweak parsed type error warning. 2020-09-10 14:04:06 -07:00
Danila Fedorin 76675fbc9b Make make_case_for throw from the second time on.
Also clean up the errors thrown a little bit.
2020-09-10 14:03:04 -07:00
Danila Fedorin ca395b5c09 Add programs to trigger error cases. 2020-09-10 14:02:19 -07:00
Danila Fedorin 1a05d5ff7a Add type errors to identifier nodes. 2020-09-10 12:59:26 -07:00
Danila Fedorin 56f0dbd02f Prevent case compilation from crashing and burning. 2020-09-10 12:53:55 -07:00
Danila Fedorin 9fc0ff961d Add more built-in boolean-specific instructions. 2020-09-10 12:44:41 -07:00
Danila Fedorin 73441dc93b Register booleans as internal types. 2020-09-10 00:54:35 -07:00
Danila Fedorin df5f5eba1c Make sure to delete LLVM target machine. 2020-09-09 23:45:48 -07:00
Danila Fedorin d950b8dc90 Initialize graph indegree. 2020-09-09 23:44:53 -07:00
Danila Fedorin 85394b185d Add prototype impl of case specialization.
Boolean cases could be translated to ifs, and
integer cases to jumps. That's still in progress.
2020-09-09 22:49:35 -07:00
Danila Fedorin 86b49f9cc3 Add 'internal' types. 2020-09-09 18:08:38 -07:00
Danila Fedorin 9769b3e396 Replace throw 0 with real exceptions or assertions. 2020-09-09 17:19:23 -07:00
Danila Fedorin e337992410 Add sources for unification type errors. 2020-09-09 15:26:18 -07:00
Danila Fedorin d5c3a44041 Add extra line after code fence. 2020-09-09 15:25:48 -07:00
Danila Fedorin eade42be49 Print locations in non-unification type errors. 2020-09-09 15:15:25 -07:00
Danila Fedorin d0fac50cfd Add locations to patterns. 2020-09-09 15:15:09 -07:00
Danila Fedorin dd4aa6fb9d Require C++17 for optionals 2020-09-09 15:14:37 -07:00
Danila Fedorin aa867b2e5f Add locations to error reporting. 2020-09-09 15:08:43 -07:00
Danila Fedorin 2fa2be4b9e Add a method to print location. 2020-09-09 14:41:16 -07:00
Danila Fedorin d5536467f6 Touch up source index code. 2020-09-09 14:20:10 -07:00
Danila Fedorin 67cb61c93f Keep track of locations in definitions. 2020-09-09 14:19:46 -07:00
Danila Fedorin 578d580683 Make driver keep track of line numbers and locations. 2020-09-09 13:57:01 -07:00
Danila Fedorin 789f277780 Update ASTs to actually take in locations.
Didn't realize I broke the build by leaving this out.
2020-09-09 13:29:28 -07:00
Danila Fedorin 308ec615b9 Start using driver, and switch to file IO. 2020-09-09 13:28:43 -07:00
Danila Fedorin 0e40c9e216 Enable locations. 2020-09-09 12:21:50 -07:00
Danila Fedorin 5dbf75b5e4 Fork off version 13 of the compiler. 2020-09-08 18:38:05 -07:00