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

To construct the parser, first use ML-Yacc on the file "fol.grm" to construct
the files "fol.grm.sig" and "fol.grm.sml".  This can be done by loading
ML-Yacc and typing ``ParseGen.parseGen "fol.grm"''.  Then construct the
lexer by using ML_Lex on the file fol.lex (``LexGen.lexGen "fol.lex"'').

Then load base.sml, the standard background for ML-Yacc, into
Standard ML.  Then use "load.sml" to load all the files.

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.

