Commit Graph

19 Commits

Author SHA1 Message Date
Danila Fedorin 2d8c4d16c0 Fix typechecking of mutually recursive functions. 2020-06-21 00:47:26 -07:00
Danila Fedorin 6198738acc Make proofreading-based fixes. 2020-06-20 23:50:26 -07:00
Danila Fedorin 59231fd00d Finish draft of part 12 of compiler series. 2020-06-20 22:03:57 -07:00
Danila Fedorin 645d41159b Remove unneeded parent class. 2020-06-18 23:06:13 -07:00
Danila Fedorin 4a94d0e507 Add first draft of lambdas. 2020-06-14 02:00:20 -07:00
Danila Fedorin 1e5d43e5e8 Properly handle null types in pattern typechecking. 2020-06-14 00:43:39 -07:00
Danila Fedorin 33f8040886 Use mangled names in variable environments. 2020-06-13 23:43:52 -07:00
Danila Fedorin 522d196446 Maybe finish the let/in code? 2020-06-01 00:23:41 -07:00
Danila Fedorin baf7427737 Start working on translation. 2020-05-31 18:52:52 -07:00
Danila Fedorin 6d1be9527e Start working on a lifted version of a definition. 2020-05-31 14:37:33 -07:00
Danila Fedorin a78db7500f Adjust type output. 2020-05-31 00:50:58 -07:00
Danila Fedorin de08f0febf Mark some definitions as global, so as not to capture them. 2020-05-31 00:34:12 -07:00
Danila Fedorin 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
Danila Fedorin feeee2039b Check for free variables in the environment before generalizing. 2020-05-30 16:40:27 -07:00
Danila Fedorin 74f54abf5b Add parsing of let/in. 2020-05-28 14:44:12 -07:00
Danila Fedorin 63f82a1c64 Add typechecking to let/in expressions. 2020-05-26 00:52:54 -07:00
Danila Fedorin 35928b3a54 Extract ordering functionality into definition group. 2020-05-25 23:58:56 -07:00
Danila Fedorin 5b6378c9e4 Add a struct to contain groups of mutually recursive definitions. 2020-05-25 22:11:45 -07:00
Danila Fedorin 71bc55c696 Fork off the 12th version of the compiler. 2020-05-25 21:20:41 -07:00