Commit Graph

58 Commits

Author SHA1 Message Date
greg f7dbbddad1 Let and let mut syntax 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 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 f1679e83b7 Start trying to fix tests 2018-07-26 00:52:46 -07:00
greg d0a0cc8209 Rename ast_reducing -> reduced_ast 2018-07-26 00:52:46 -07:00
greg 27729cefdf Some improvements to the thing 2018-07-26 00:52:46 -07:00
greg 3beabf4678 Start eval-ing data constructors 2018-07-26 00:52:46 -07:00
greg 0b0f6b6b50 Symbol table handles functions better 2018-07-26 00:52:46 -07:00
greg c65907388d Some ADT work 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 98cfcfc18d Eval shouldn't be aware of types 2018-07-26 00:52:46 -07:00
greg e64861b602 Some eval tests 2018-07-26 00:52:46 -07:00
greg 1673fd1cf9 Fix test 2018-07-26 00:52:46 -07:00
greg c00effcbdd Add _ 2018-07-26 00:52:46 -07:00
greg 8378170fbd Kill comments 2018-07-26 00:52:46 -07:00
greg 7ab385d398 Bring custom ADTs to the repl 2018-07-26 00:52:46 -07:00
greg 9fb148bb02 Make compile again 2018-07-26 00:52:46 -07:00
greg 97df2fa344 I dunno 2018-07-26 00:52:46 -07:00
greg a08134a747 Delete old code in eval 2018-07-26 00:52:46 -07:00
greg 3ac50f974d Pass around reference to type context in evaluator 2018-07-26 00:52:46 -07:00
greg afc4281e7f Evaluate function arguments in context before applying them 2018-07-26 00:52:46 -07:00
greg 8d6fea942f Handle function definition before use
And some other ReducedAST - Evaluation niceties
2018-07-26 00:52:46 -07:00
greg ac576be604 Trim newline in getline()
Ineffiicent but whatever
2018-07-26 00:52:46 -07:00
greg 6bf106a1a3 Equality 2018-07-26 00:52:46 -07:00
greg 44e585fca2 Conditionals 2018-07-26 00:52:46 -07:00
greg abf25d648d Change repl behavior of strings 2018-07-26 00:52:46 -07:00
greg 1f6e6d9b31 Tuples 2018-07-26 00:52:46 -07:00
greg e2703121d8 Kill unneeded import 2018-07-26 00:52:46 -07:00
greg e5b6b41422 Error msg 2018-07-26 00:52:46 -07:00
greg 6c5e3dea5d Assignment 2018-07-26 00:52:46 -07:00
greg bd8bf1945c Super simple janky input 2018-07-26 00:52:46 -07:00
greg 9e393d2753 Kill old type structure 2018-07-26 00:52:46 -07:00
greg 822420a9d5 Add an eval test 2018-07-26 00:52:46 -07:00
greg e0cec8b8a6 print, println as builtins 2018-07-26 00:52:46 -07:00
greg 1a84f62818 Kill some old code, make very_simple example print 2018-07-26 00:52:46 -07:00
greg b1966d7199 Function calling works kind of 2018-07-26 00:52:46 -07:00
greg fdbb21990d Retrieve function from memory when called 2018-07-26 00:52:46 -07:00
greg 6d8d2aecbd Functions 2018-07-26 00:52:46 -07:00
greg 78ba4e1ed3 Variable lookup 2018-07-26 00:52:46 -07:00
greg 481afb0f87 Fix debugging and debug eval 2018-07-26 00:52:46 -07:00
greg 01986e7474 starting bindings 2018-07-26 00:52:46 -07:00
greg 18c8176134 Get rid of unneeded imports 2018-07-26 00:52:46 -07:00
greg 2cb7d35008 Use EvalResult type 2018-07-26 00:52:46 -07:00
greg bd1eed884f State type manipulations 2018-07-26 00:52:46 -07:00
greg 67917612e6 Swap over eval code to new paradigm
While keeping the old code commented for reference
2018-07-26 00:52:46 -07:00
greg b4a16cdc55 Prefix ops 2018-07-26 00:52:46 -07:00
greg ce71254b69 Implement a lot more ops 2018-07-26 00:52:46 -07:00
greg 065e58f87e Successfully interpreting addition 2018-07-26 00:52:46 -07:00