BI
mikal-eval
A simple scheme evaluator for fun
How to Build & Run
Clone the repo, then
make run
To build and run the evaluator
Plan
- Internal type system(mikal)
- Frontend parser & AST
- Basic REPL
- Environment model
-
+ - * /(Maybeor and notin future?) - Lambda and closure
-
cons/car/cdr - GC
-
def/let/set - quotation(
quoteandeval) - TCO
-
if - Read from file
(This should be easy :))Done by using pipe -
remainder -
assert - Comments
"Deferred operations"
- TCO is kinda urgent, gc buffer will be quickly overflowed without TCO
- Error handling & report
- Type system is not fully closed
- Proper testbench and tests
- Comments on some confusing functions
How to run tests
You can also tests by using make tests.
All the test answers are generated by CHICKEN Scheme Interpreter. You can generate your own test cases if you have that installed
Instructins to generate new tests:
- Implement test program(single file) under
tests/directory - Run
python testall.py --gen-ans --ans-testto generate ans files and run test script - You can also use
-csi-testto directly compare stdout with CSI without generate anything
Supported basic operations:
+ - * / remainderlambdacons car cdrdefine set! let= < >ifassert