# 15-x17 Lab 1 - SML

If you have any questions, please post on Ed Discussion

Warning: this starter code uses a hand-written lexer and a hand-written parser.
This provides the opportunity for optimal error messages, but is typically more
difficult to extend a parser generated from a parser generator.

## Environment setup

You can use the mlton or smlnj compilers.   The main interface
for the starter code is in 

Quick start
===========

With mlton:

% cd src
% make all
% ./sax ../examples/lec01.sax

With sml/nj:

% cd src
% sml
- CM.make "sax.cm";
- Top.sax "../examples/lec01.sax"

With sml/nj exporting a heap:

% cd src
% make sax.nj
% make install
% ../bin/sml.nj ../examples/lec01.sax

The starter code just parses the given file.  Your version of the interpreter
should eventually create examples/lec01.sax.val with the large values that
result from running all parameterless procedures in a .sax file.  See the
grammar for the .val files below in the Lab 1 handout.
