In this assignment, you will build an evaluator for MiniML, which is a subset of SML. You will start from a partial implementation that already includes a read-eval-print-loop user interface, a parser from text to abstract syntax trees (ASTs), a representation of the possible values resulting from evaluation, and various pretty-printing functions for ASTs and values. The partial implementation is available in /cse/courses/cse505/02au/hw1. There is a skeleton for the evaluator (in file eval.sml), with a few cases implemented to get you started; you need to complete the implementation of the evaluator. The current evaluator raises ImplementMe in all cases that you need to write; your finished solution should not raise ImplementMe anywhere. (In future assignments, you'll add a type checker and a type inferencer.)
Here is a quick tour through the files of the MiniML implementation:
sml @SMLload=hw1solution.x86-linuxThen you can start up the read-eval-print loop by executing repl();.