Commit Graph

20 Commits

Author SHA1 Message Date
Danila Fedorin 1961e545c0 Extract compiler into its own repo 2023-01-01 15:09:41 -08:00
Danila Fedorin 7c4cfbf3d4 Fix typechecking of mutually recursive functions. 2020-06-21 00:47:26 -07:00
Danila Fedorin 8524e098a8 Make proofreading-based fixes. 2020-06-20 23:50:26 -07:00
Danila Fedorin 971f58da9b Finish draft of part 12 of compiler series. 2020-06-20 22:03:57 -07:00
Danila Fedorin 600d5b91ea Remove unneeded parent class. 2020-06-18 23:06:13 -07:00
Danila Fedorin ad1946e9fb Add first draft of lambdas. 2020-06-14 02:00:20 -07:00
Danila Fedorin 68910458e8 Properly handle null types in pattern typechecking. 2020-06-14 00:43:39 -07:00
Danila Fedorin 240e87eca4 Use mangled names in variable environments. 2020-06-13 23:43:52 -07:00
Danila Fedorin 6b5f7e25b7 Maybe finish the let/in code? 2020-06-01 00:23:41 -07:00
Danila Fedorin e7229e644f Start working on translation. 2020-05-31 18:52:52 -07:00
Danila Fedorin 08c8aca144 Start working on a lifted version of a definition. 2020-05-31 14:37:33 -07:00
Danila Fedorin 7f8dae74ac Adjust type output. 2020-05-31 00:50:58 -07:00
Danila Fedorin 08503116ff Mark some definitions as global, so as not to capture them. 2020-05-31 00:34:12 -07:00
Danila Fedorin a1d679a59d 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 4586bd0188 Check for free variables in the environment before generalizing. 2020-05-30 16:40:27 -07:00
Danila Fedorin a97b50f497 Add parsing of let/in. 2020-05-28 14:44:12 -07:00
Danila Fedorin c84ff11d0d Add typechecking to let/in expressions. 2020-05-26 00:52:54 -07:00
Danila Fedorin e966e74487 Extract ordering functionality into definition group. 2020-05-25 23:58:56 -07:00
Danila Fedorin 3865abfb4d Add a struct to contain groups of mutually recursive definitions. 2020-05-25 22:11:45 -07:00
Danila Fedorin 1905601aaa Fork off the 12th version of the compiler. 2020-05-25 21:20:41 -07:00