Index of /~lloyd/tildeFP/SML/1997/Exp

[ICO]NameLast modifiedSizeDescription

[DIR]Parent Directory  -
[   ]data21-Feb-2017 14:03 22
[   ]exp.sml21-Feb-2017 14:03 6.0K
[TXT]main.sml21-Feb-2017 14:03 443


^ LA / FP / SML / 97 / ^   [Parsing] in [C] [Java]

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.