Annotation of researchv10no/cmd/sml/lib/mlyacc/sample.lex, revision 1.1

1.1     ! root        1: open Calc.LexValue
        !             2: type lexresult=V
        !             3: val eof = fn () => EOF
        !             4: %%
        !             5: alpha=[A-Za-z];
        !             6: digit=[0-9];
        !             7: ws = [\ \t\n];
        !             8: %%
        !             9: {ws}+   => (lex());
        !            10: {digit}+ => (NUM (revfold (fn (a,r) => ord(a)-ord("0")+10*r) (explode yytext) 0));
        !            11: "+"     => (PLUS);
        !            12: "*"     => (TIMES);
        !            13: ";"     => (EOS);
        !            14: {alpha}+ => (if yytext="print" then PRINT else ID yytext);
        !            15: "-"     => (SUB);
        !            16: "^"     => (CARAT);
        !            17: "/"     => (DIV);
        !            18: .       => (Calc.HDR.error ("ignoring bad character " ^ yytext); lex());

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.