Index of /~lloyd/tildeFP/SML/1997/Exp
Simple example recursive-descent parser for expressions.
- exp.sml -- parser
- The lexical analysis function converts a char list
into a Symbol list; to see this try, e.g.,
- use "exp.sml";
- lexical(explode "(1+2)*3-4/5+x");
- The parser takes a Symbol list and
produces a parse tree : Exp, e.g.,
- expression(lexical(explode "(1+2)*3-4/5+x"));
- main.sml -- parse text from a file
- wrapper for the parser, asks for a file name, opens it,
calls the parser, e.g.,
- use "main.sml";
- run "data";
-
- Note, these expressions include
arithmetic (+, -, *, /),
relational (=, <>, <=, >=, < >), and
logical (and, or, not) operators.
-
- And there is a syntax (and semantics) for
a small programming language [here].
L. Allison, Monash U., Australia 3800.