This is a sample interactive calculator built using ML-Yacc and ML-Lex.

To load it, first load base.sml, the standard background for ML-Yacc, into
Standard ML.  Then change to this directory and load the files
calc.grm.sig, calc.grm.sml, calc.lex.sml, and join.sml.

Those using Standard ML of New Jersey can do this by invoking Standard ML in
the root directory for ML-Yacc and typing the following commands at the
Standard ML of New Jersey prompt (the - sign):

	-use "base.sml"
	-System.Directory.cd "examples/calc"
	-use "load.sml"

The end result of loading these files is a structure Calc containing a
function named parse.  The calculator can be invoked by applying that
function to a value of type unit.  The calculator reads from the
standard input.  There is no attempt to fix input errors since this
is an interactive parser.

The calculator reads a sequence of expressions from the standard input
and prints the value of each expression after reading the expression.
Expressions must be separated by semicolons.  An expression is not
evaluated until the semicolon is encountered.  The calculator
terminates when an end-of-file is encountered.


