Commit Graph

25 Commits

Author SHA1 Message Date
greg f014c1a9d9 Kill compiler warnings 2017-09-19 22:10:56 -07:00
greg c36bc3377e Fix lookup_binding in function call case 2017-09-19 22:10:56 -07:00
greg 5eba222679 Variable binding in fucntion call work 2017-09-19 22:10:56 -07:00
greg dcf89aa429 Move lookup_function back onto Evaluator
THe problem was that we were borrowing the output of the inner HashMap,
if we clone it we don't borrow anything
2017-09-19 22:10:56 -07:00
greg 1ffbeb6472 Return last value out of function 2017-09-19 22:10:56 -07:00
greg f8a521fc9b Start making function calls work
This commit isn't fully done yet
2017-09-19 22:10:56 -07:00
greg 77f72806be Add support for multiple frames 2017-09-19 22:10:56 -07:00
greg dcde5d6018 Start function call reduction
Move the varmap and funcmap functions to the Evaluator, to mkae it
easier to facilitate separate frames
2017-09-19 22:10:56 -07:00
greg 6bb227d052 Rename methods
make reduce() the entry point to evaluation
2017-09-19 22:10:56 -07:00
greg 29d4cb53a4 Add infrastructure to do function evaluation
Right now you can successfully evaluate a function definition (returning
Null), but cannot call a function
2017-09-19 22:10:56 -07:00
greg 3915c1f035 Remove println from reduction 2017-09-19 22:10:56 -07:00
greg b400796e4d Get rid of test variable input 2017-09-19 22:10:56 -07:00
greg 96e6a87f64 Add string concat 2017-09-19 22:10:56 -07:00
greg b1f9e5cefc Fix variable lookup 2017-09-19 22:10:56 -07:00
greg be36d4697d Pretty-print evaluated AST nodes 2017-09-19 22:10:56 -07:00
greg ce8c511929 Evaluate additional operators 2017-09-19 22:10:55 -07:00
greg 229e6ae733 More expression parsing work 2017-09-19 22:10:55 -07:00
greg e9dd0d9ae8 Add concept of Null expression
Finally, the null-only behavior is starting to manifest itself!
2017-09-19 22:10:55 -07:00
greg 7114e446a4 Adding, subtracting works 2017-09-19 22:10:55 -07:00
greg 044f534ac5 Start implementing variable lookup 2017-09-19 22:10:55 -07:00
greg d3207ad890 Move evaluation logic back into methods
They need to be able to access the environment which is stored in the
Evalator struct
2017-09-19 22:10:55 -07:00
greg 19fffd5063 Variable binding infrastructure 2017-09-19 22:10:55 -07:00
greg 785c916ece Start reducing ASTs
Start writing code to reduce AST nodes
q
2017-09-19 22:10:55 -07:00
greg 5a9ebb188d Make Evaluable trait 2017-09-19 22:10:55 -07:00
greg 16e8d969be Add basic evaluation 2017-09-19 22:10:55 -07:00