X-Git-Url: http://git.joshuawise.com/snipe.git/blobdiff_plain/6ade8b0a3251e44b34c6bdbbd9403e36d6fd6231:/parse/l3.lex..1144856ba9d6018d9922c6ede7e97779a0fe6373:/parse/l4.lex?ds=sidebyside diff --git a/parse/l3.lex b/parse/l4.lex similarity index 91% rename from parse/l3.lex rename to parse/l4.lex index d9c2217..b988c35 100644 --- a/parse/l3.lex +++ b/parse/l4.lex @@ -1,4 +1,4 @@ -(* L3 Compiler +(* L4 Compiler * Lexer * Author: Kaustuv Chaudhuri * Modified: Frank Pfenning @@ -51,7 +51,7 @@ in end %% -%header (functor L3LexFn(structure Tokens : L3_TOKENS)); +%header (functor L4LexFn(structure Tokens : L4_TOKENS)); %full %s COMMENT COMMENT_LINE; @@ -108,6 +108,11 @@ ws = [\ \t\012]; ":" => (Tokens.COLON (yypos, yypos + size yytext)); "," => (Tokens.COMMA (yypos, yypos + size yytext)); + "[" => (Tokens.LBRACKET (yypos, yypos + size yytext)); + "]" => (Tokens.RBRACKET (yypos, yypos + size yytext)); + "->" => (Tokens.ARROW (yypos, yypos + size yytext)); + "." => (Tokens.DOT (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)); @@ -118,6 +123,9 @@ ws = [\ \t\012]; "var" => (Tokens.VAR (yypos, yypos + size yytext)); "int" => (Tokens.INT (yypos, yypos + size yytext)); "extern" => (Tokens.EXTERN (yypos, yypos + size yytext)); + "struct" => (Tokens.STRUCT (yypos, yypos + size yytext)); + "NULL" => (Tokens.NULL (yypos, yypos + size yytext)); + "new" => (Tokens.NEW (yypos, yypos + size yytext)); {decnum} => (number (yytext, yypos));