X-Git-Url: http://git.joshuawise.com/snipe.git/blobdiff_plain/0a24e44d4e9f82f8d3d83de8e58c83c8cf2868b6:/parse/l2.lex..6ade8b0a3251e44b34c6bdbbd9403e36d6fd6231:/parse/l3.lex diff --git a/parse/l2.lex b/parse/l3.lex similarity index 93% rename from parse/l2.lex rename to parse/l3.lex index 9caa8e1..d9c2217 100644 --- a/parse/l2.lex +++ b/parse/l3.lex @@ -1,4 +1,4 @@ -(* L2 Compiler +(* L3 Compiler * Lexer * Author: Kaustuv Chaudhuri * Modified: Frank Pfenning @@ -51,7 +51,7 @@ in end %% -%header (functor L2LexFn(structure Tokens : L2_TOKENS)); +%header (functor L3LexFn(structure Tokens : L3_TOKENS)); %full %s COMMENT COMMENT_LINE; @@ -105,6 +105,9 @@ ws = [\ \t\012]; ">=" => (Tokens.GE (yypos, yypos + size yytext)); ">" => (Tokens.GT (yypos, yypos + size yytext)); + ":" => (Tokens.COLON (yypos, yypos + size yytext)); + "," => (Tokens.COMMA (yypos, yypos + size yytext)); + "return" => (Tokens.RETURN (yypos, yypos + size yytext)); "if" => (Tokens.IF (yypos, yypos + size yytext)); "while" => (Tokens.WHILE (yypos, yypos + size yytext)); @@ -112,6 +115,10 @@ ws = [\ \t\012]; "continue" => (Tokens.CONTINUE (yypos, yypos + size yytext)); "break" => (Tokens.BREAK (yypos, yypos + size yytext)); "else" => (Tokens.ELSE (yypos, yypos + size yytext)); + "var" => (Tokens.VAR (yypos, yypos + size yytext)); + "int" => (Tokens.INT (yypos, yypos + size yytext)); + "extern" => (Tokens.EXTERN (yypos, yypos + size yytext)); + {decnum} => (number (yytext, yypos));