Commit Graph

146 Commits

Author SHA1 Message Date
Danila Fedorin 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
Danila Fedorin a6839c548e Start using driver, and switch to file IO. 2020-09-09 13:28:43 -07:00
Danila Fedorin 2f09401685 Enable locations. 2020-09-09 12:21:50 -07:00
Danila Fedorin e7367ef86e Fork off version 13 of the compiler. 2020-09-08 18:38:05 -07:00
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
Danila Fedorin fa19fa2792 Build and test version 11 of the compiler instead of 10. 2020-04-26 21:28:34 -07:00
Danila Fedorin 5049b81536 Update to LLVM 10. 2020-04-26 21:24:24 -07:00
Danila Fedorin f97d3f913c Add missing arity checks to compiler series 2020-04-14 19:21:33 -07:00
Danila Fedorin 9d16d3840a Make compiler check for arity in part 11 of compiler series. 2020-04-14 16:20:12 -07:00
Danila Fedorin 9fb9eec394 Finish draft of part 11 of compiler series 2020-04-14 16:19:54 -07:00
Danila Fedorin 8cbe59b6b2 Rename inaccurately named rule 2020-04-14 15:58:25 -07:00
Danila Fedorin a18c30dca8 Update example to include polymorphism 2020-04-14 15:58:13 -07:00
Danila Fedorin 50326ffcc3 Adjust grammar to allow for broader range of type inputs. 2020-04-13 23:17:34 -07:00
Danila Fedorin 207efc7ded Make substitution replace types at every lookup step 2020-04-13 17:59:57 -07:00
Danila Fedorin 2a936927a1 Integrate new types into the rest of the project 2020-04-13 17:12:43 -07:00
Danila Fedorin 379a64f379 Add parsed type data structure, type application and arity. 2020-04-13 17:08:03 -07:00
Danila Fedorin 682e0d3e1c Fork off code for part 11 of compiler series. 2020-04-09 23:48:53 -07:00
Danila Fedorin 2e0318347c Add seemingly missing string includes. 2020-04-09 16:26:10 -07:00
Danila Fedorin 63601eaf40 Add missing source file 2020-03-25 03:36:17 -07:00
Danila Fedorin 37921c4466 Remove debug output 2020-03-25 03:35:30 -07:00
Danila Fedorin 08246f1474 Finalize draft of polymorphism post 2020-03-25 03:22:21 -07:00
Danila Fedorin de435d6c80 Switch to using type schemes and implement polymorphism in compiler series 2020-03-24 23:04:51 -07:00
Danila Fedorin e07da0c9b1 Implement new ordered typing in compiler series 2020-03-24 22:00:11 -07:00
Danila Fedorin c286c9edcc Separate definitions in compiler series 2020-03-24 21:08:06 -07:00
Danila Fedorin 2e74291ac9 Switch type environment to using pointers 2020-03-24 18:04:01 -07:00
Danila Fedorin addfc2aa55 Only store type in case expression 2020-03-24 17:53:06 -07:00
Danila Fedorin 9e14b2920c Explain graph code 2020-03-14 21:04:13 -07:00
Danila Fedorin ccac53854d Start work on algorithms in compiler post 10 2020-03-14 17:18:06 -07:00
Danila Fedorin 90ed26ab39 Set up script to test latest compiler version 2020-03-10 22:26:02 -07:00
Danila Fedorin efadf17561 Fork into version 10 of the compiler for blog series 2020-03-10 20:58:26 -07:00
Danila Fedorin 9e10eda41c Remove unused line at the end of works1.txt 2020-02-23 21:26:37 -08:00
Danila Fedorin 972682969c Move testing code into a script 2020-02-11 18:37:21 -08:00