// This JLex file was machine-generated by the BNF converter package MiniJS; import java_cup.runtime.*; %% %cup %unicode %public %{ String pstring = new String(); final int unknown = -1; ComplexSymbolFactory.Location left = new ComplexSymbolFactory.Location(unknown, unknown); ComplexSymbolFactory cf = new ComplexSymbolFactory(); public SymbolFactory getSymbolFactory() { return cf; } int yyline = unknown - 1; int yycolumn = unknown - 1; int yychar = unknown; public int line_num() { return (yyline+1); } public ComplexSymbolFactory.Location left_loc() { return left; } public ComplexSymbolFactory.Location right_loc() { ComplexSymbolFactory.Location left = left_loc(); return left; } public String buff() {return new String(yy_buffer,yy_buffer_index,10).trim();} %} %eofval{ return cf.newSymbol("EOF", sym.EOF, left_loc(), left_loc()); %eofval} LETTER = ({CAPITAL}|{SMALL}) CAPITAL = [A-Z\xC0-\xD6\xD8-\xDE] SMALL = [a-z\xDF-\xF6\xF8-\xFF] DIGIT = [0-9] IDENT = ({LETTER}|{DIGIT}|['_]) %state COMMENT %state CHAR %state CHARESC %state CHAREND %state STRING %state ESCAPED %% = { return cf.newSymbol("", sym._SYMB_0, left_loc(), right_loc()); } console\.log { return cf.newSymbol("", sym._SYMB_1, left_loc(), right_loc()); } \( { return cf.newSymbol("", sym._SYMB_2, left_loc(), right_loc()); } \) { return cf.newSymbol("", sym._SYMB_3, left_loc(), right_loc()); } ; { return cf.newSymbol("", sym._SYMB_4, left_loc(), right_loc()); } \* { return cf.newSymbol("", sym._SYMB_5, left_loc(), right_loc()); } / { return cf.newSymbol("", sym._SYMB_6, left_loc(), right_loc()); } \+ { return cf.newSymbol("", sym._SYMB_7, left_loc(), right_loc()); } - { return cf.newSymbol("", sym._SYMB_8, left_loc(), right_loc()); } {DIGIT}+"."{DIGIT}+("e"(\-)?{DIGIT}+)? { return cf.newSymbol("", sym._DOUBLE_, left_loc(), right_loc(), new Double(yytext())); } {DIGIT}+ { return cf.newSymbol("", sym._INTEGER_, left_loc(), right_loc(), new Integer(yytext())); } {LETTER}{IDENT}* { return cf.newSymbol("", sym._IDENT_, left_loc(), right_loc(), yytext().intern()); } [ \t\r\n\f] { /* ignore white space. */ } . { throw new Error("Illegal Character <"+yytext()+">"); }