// This JLex file was machine-generated by the BNF converter package se.chalmers.cs.gf.GFC; import java_cup.runtime.*; %% %cup %unicode %line %public %{ String pstring = new String(); public int line_num() { return (yyline+1); } public String buff() { return new String(yy_buffer,yy_buffer_index,10).trim(); } %} 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 new Symbol(sym._SYMB_0); } = { return new Symbol(sym._SYMB_1); } \{ { return new Symbol(sym._SYMB_2); } \} { return new Symbol(sym._SYMB_3); } : { return new Symbol(sym._SYMB_4); } -> { return new Symbol(sym._SYMB_5); } \*\* { return new Symbol(sym._SYMB_6); } \[ { return new Symbol(sym._SYMB_7); } \] { return new Symbol(sym._SYMB_8); } \\ { return new Symbol(sym._SYMB_9); } \. { return new Symbol(sym._SYMB_10); } \( { return new Symbol(sym._SYMB_11); } \) { return new Symbol(sym._SYMB_12); } _ { return new Symbol(sym._SYMB_13); } < { return new Symbol(sym._SYMB_14); } > { return new Symbol(sym._SYMB_15); } \$ { return new Symbol(sym._SYMB_16); } \? { return new Symbol(sym._SYMB_17); } => { return new Symbol(sym._SYMB_18); } ! { return new Symbol(sym._SYMB_19); } \+\+ { return new Symbol(sym._SYMB_20); } / { return new Symbol(sym._SYMB_21); } @ { return new Symbol(sym._SYMB_22); } \+ { return new Symbol(sym._SYMB_23); } \| { return new Symbol(sym._SYMB_24); } , { return new Symbol(sym._SYMB_25); } Ints { return new Symbol(sym._SYMB_26); } Str { return new Symbol(sym._SYMB_27); } Type { return new Symbol(sym._SYMB_28); } abstract { return new Symbol(sym._SYMB_29); } cat { return new Symbol(sym._SYMB_30); } concrete { return new Symbol(sym._SYMB_31); } data { return new Symbol(sym._SYMB_32); } flags { return new Symbol(sym._SYMB_33); } fun { return new Symbol(sym._SYMB_34); } grammar { return new Symbol(sym._SYMB_35); } in { return new Symbol(sym._SYMB_36); } lin { return new Symbol(sym._SYMB_37); } lincat { return new Symbol(sym._SYMB_38); } of { return new Symbol(sym._SYMB_39); } open { return new Symbol(sym._SYMB_40); } oper { return new Symbol(sym._SYMB_41); } param { return new Symbol(sym._SYMB_42); } pre { return new Symbol(sym._SYMB_43); } resource { return new Symbol(sym._SYMB_44); } table { return new Symbol(sym._SYMB_45); } transfer { return new Symbol(sym._SYMB_46); } variants { return new Symbol(sym._SYMB_47); } "\"" { yybegin(STRING); } \\ { yybegin(ESCAPED); } \" { String foo = pstring; pstring = new String(); yybegin(YYINITIAL); return new Symbol(sym._STRING_, foo.intern()); } . { pstring += yytext(); } n { pstring += "\n"; yybegin(STRING); } \" { pstring += "\""; yybegin(STRING); } \\ { pstring += "\\"; yybegin(STRING); } t { pstring += "\t"; yybegin(STRING); } . { pstring += yytext(); yybegin(STRING); } {DIGIT}+"."{DIGIT}+("e"(\-)?{DIGIT}+)? { return new Symbol(sym._DOUBLE_, new Double(yytext())); } {DIGIT}+ { return new Symbol(sym._INTEGER_, new Integer(yytext())); } {LETTER}{IDENT}* { return new Symbol(sym._IDENT_, yytext().intern()); } [ \t\r\n\f] { /* ignore white space. */ }