Commit Graph

1160 Commits

Author SHA1 Message Date
greg f2dce38647 Broken, but compiling, move to new if paradigm 2018-07-26 00:52:46 -07:00
greg ba4cd9da39 Kill match keyword + data structures
And add new unified keywords
2018-07-26 00:52:46 -07:00
greg ba319a7bc3 Finally figured out unified condition syntax 2018-07-26 00:52:46 -07:00
greg 2d052d34f7 More thinking 2018-07-26 00:52:46 -07:00
greg 654eeef428 Clarified grammar BNF some 2018-07-26 00:52:46 -07:00
greg a96fbc9592 Fix match expression parsing 2018-07-26 00:52:46 -07:00
greg 196954326e Print bare data constructor 2018-07-26 00:52:46 -07:00
greg 3f2fff276c Constructor eval 2018-07-26 00:52:46 -07:00
greg e6679ff523 Playing around with conditional syntax 2018-07-26 00:52:46 -07:00
greg ebcea685f3 Fix looking up functions 2018-07-26 00:52:46 -07:00
greg 3b9084810e Add constructor reduced ast node; fix test 2018-07-26 00:52:46 -07:00
greg 7809cda240 Pass symbol_table to ast reduce
To distinguish between values and data constructors
2018-07-26 00:52:46 -07:00
greg f1679e83b7 Start trying to fix tests 2018-07-26 00:52:46 -07:00
greg f98d8e2bb0 Move AST into its own module 2018-07-26 00:52:46 -07:00
greg d0a0cc8209 Rename ast_reducing -> reduced_ast 2018-07-26 00:52:46 -07:00
greg 5aa0e10e7a Some ADT work 2018-07-26 00:52:46 -07:00
greg 27729cefdf Some improvements to the thing 2018-07-26 00:52:46 -07:00
greg df76e7c120 Pretty-print type table 2018-07-26 00:52:46 -07:00
greg 889610f0b0 Pretty-print Symbol Table 2018-07-26 00:52:46 -07:00
greg 3beabf4678 Start eval-ing data constructors 2018-07-26 00:52:46 -07:00
greg 25790f8643 Added super-janky prelude capability 2018-07-26 00:52:46 -07:00
greg ff5446af3f Add symbols from symbol table into global type context 2018-07-26 00:52:46 -07:00
greg 5d84153c9e Want bin expressions typed soon 2018-07-26 00:52:46 -07:00
greg 0b0f6b6b50 Symbol table handles functions better 2018-07-26 00:52:46 -07:00
greg 856a360aba Types need handle to symbol table 2018-07-26 00:52:46 -07:00
greg 81ca9ee20f Add some data structures back 2018-07-26 00:52:46 -07:00
greg 4caf8096b3 Add Scheme, TypeEnv, Substitution data structs 2018-07-26 00:52:46 -07:00
greg c65907388d Some ADT work 2018-07-26 00:52:46 -07:00
greg 33c22c8bbc Typecheck values 2018-07-26 00:52:46 -07:00
greg 4a27af2136 Add a super-basic test 2018-07-26 00:52:46 -07:00
greg 07af54b78a More work 2018-07-26 00:52:46 -07:00
greg c4666b82ec Basics 2018-07-26 00:52:46 -07:00
greg 274dd1ccb0 Basic stuff 2018-07-26 00:52:46 -07:00
greg 70ec79c4b3 Lol starting over from scratch again
H-M is hard :/
2018-07-26 00:52:46 -07:00
greg f88d2331e3 printf debugs for problems with function typing 2018-07-26 00:52:46 -07:00
greg c8f961abbf Functions 2018-07-26 00:52:46 -07:00
greg d040d76bfa Start handling function case 2018-07-26 00:52:46 -07:00
greg 887ba46b0b Fix this thing 2018-07-26 00:52:46 -07:00
greg a80db9e4c2 Debug types
WIP
2018-07-26 00:52:46 -07:00
greg c986233a95 Adding bindings seems to work?
I'm playing real fast and loose though
2018-07-26 00:52:46 -07:00
greg bb29df4a73 Variable binding insertion infrastructure 2018-07-26 00:52:46 -07:00
greg 4db3595d7c More work on variables 2018-07-26 00:52:46 -07:00
greg 217ee73fc9 Literals 2018-07-26 00:52:46 -07:00
greg 93309c025e Some work 2018-07-26 00:52:46 -07:00
greg b67512a9e1 Add Infer struct 2018-07-26 00:52:46 -07:00
greg 8e6f605fab Type alias "TypeName" 2018-07-26 00:52:46 -07:00
greg ba4185b0fb Back to including typechecking code in pipeline 2018-07-26 00:52:46 -07:00
greg 7a2a4df297 Clearing out most of the cruft from typechecking 2018-07-26 00:52:46 -07:00
greg 642e9da8ee Move everything symbol-table-related into a separate module 2018-07-26 00:52:46 -07:00
greg cea7427847 put TypeEnvironment on TypeContext 2018-07-26 00:52:46 -07:00