Commit Graph

109 Commits

Author SHA1 Message Date
c7b2a4959f 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
c1a8dc4557 Add 'internal' types. 2020-09-09 18:08:38 -07:00
92a9ec2021 Replace throw 0 with real exceptions or assertions. 2020-09-09 17:19:23 -07:00
1f7a53ccf6 Add sources for unification type errors. 2020-09-09 15:26:18 -07:00
80f181cbb6 Add extra line after code fence. 2020-09-09 15:25:48 -07:00
34357163cd Print locations in non-unification type errors. 2020-09-09 15:15:25 -07:00
945d0f31c3 Add locations to patterns. 2020-09-09 15:15:09 -07:00
bdaa046a8c Require C++17 for optionals 2020-09-09 15:14:37 -07:00
588ce99601 Add locations to error reporting. 2020-09-09 15:08:43 -07:00
07ac3d72e4 Add a method to print location. 2020-09-09 14:41:16 -07:00
2752703038 Touch up source index code. 2020-09-09 14:20:10 -07:00
c648e20a02 Keep track of locations in definitions. 2020-09-09 14:19:46 -07:00
350a630213 Make driver keep track of line numbers and locations. 2020-09-09 13:57:01 -07:00
5a9d4c1e92 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
a6839c548e Start using driver, and switch to file IO. 2020-09-09 13:28:43 -07:00
2f09401685 Enable locations. 2020-09-09 12:21:50 -07:00
e7367ef86e Fork off version 13 of the compiler. 2020-09-08 18:38:05 -07:00
2d8c4d16c0 Fix typechecking of mutually recursive functions. 2020-06-21 00:47:26 -07:00
6198738acc Make proofreading-based fixes. 2020-06-20 23:50:26 -07:00
59231fd00d Finish draft of part 12 of compiler series. 2020-06-20 22:03:57 -07:00
645d41159b Remove unneeded parent class. 2020-06-18 23:06:13 -07:00
4a94d0e507 Add first draft of lambdas. 2020-06-14 02:00:20 -07:00
1e5d43e5e8 Properly handle null types in pattern typechecking. 2020-06-14 00:43:39 -07:00
33f8040886 Use mangled names in variable environments. 2020-06-13 23:43:52 -07:00
522d196446 Maybe finish the let/in code? 2020-06-01 00:23:41 -07:00
baf7427737 Start working on translation. 2020-05-31 18:52:52 -07:00
6d1be9527e Start working on a lifted version of a definition. 2020-05-31 14:37:33 -07:00
a78db7500f Adjust type output. 2020-05-31 00:50:58 -07:00
de08f0febf Mark some definitions as global, so as not to capture them. 2020-05-31 00:34:12 -07:00
dec6d834f5 No longer destroy the list of free variables.
It so happens that this list will tell us which variables
need to be captured.
2020-05-30 23:29:36 -07:00
feeee2039b Check for free variables in the environment before generalizing. 2020-05-30 16:40:27 -07:00
74f54abf5b Add parsing of let/in. 2020-05-28 14:44:12 -07:00
63f82a1c64 Add typechecking to let/in expressions. 2020-05-26 00:52:54 -07:00
35928b3a54 Extract ordering functionality into definition group. 2020-05-25 23:58:56 -07:00
5b6378c9e4 Add a struct to contain groups of mutually recursive definitions. 2020-05-25 22:11:45 -07:00
71bc55c696 Fork off the 12th version of the compiler. 2020-05-25 21:20:41 -07:00
fa19fa2792 Build and test version 11 of the compiler instead of 10. 2020-04-26 21:28:34 -07:00
5049b81536 Update to LLVM 10. 2020-04-26 21:24:24 -07:00
f97d3f913c Add missing arity checks to compiler series 2020-04-14 19:21:33 -07:00
9d16d3840a Make compiler check for arity in part 11 of compiler series. 2020-04-14 16:20:12 -07:00
9fb9eec394 Finish draft of part 11 of compiler series 2020-04-14 16:19:54 -07:00
8cbe59b6b2 Rename inaccurately named rule 2020-04-14 15:58:25 -07:00
a18c30dca8 Update example to include polymorphism 2020-04-14 15:58:13 -07:00
50326ffcc3 Adjust grammar to allow for broader range of type inputs. 2020-04-13 23:17:34 -07:00
207efc7ded Make substitution replace types at every lookup step 2020-04-13 17:59:57 -07:00
2a936927a1 Integrate new types into the rest of the project 2020-04-13 17:12:43 -07:00
379a64f379 Add parsed type data structure, type application and arity. 2020-04-13 17:08:03 -07:00
682e0d3e1c Fork off code for part 11 of compiler series. 2020-04-09 23:48:53 -07:00
2e0318347c Add seemingly missing string includes. 2020-04-09 16:26:10 -07:00
63601eaf40 Add missing source file 2020-03-25 03:36:17 -07:00