%%
<YYINITIAL> {WHITESPACE} {}
-<YYINITIAL> \n { LineCount.addLineBreak(yychar+1); }
+<YYINITIAL> \n { LineCount.addLineBreak(yychar+1); }
-<YYINITIAL> "{" { return tok(Sym.OPENBRACE, yytext()); }
-<YYINITIAL> "}" { return tok(Sym.CLOSEBRACE, yytext()); }
-<YYINITIAL> "(" { return tok(Sym.OPENPAREN, yytext()); }
-<YYINITIAL> ")" { return tok(Sym.CLOSEPAREN, yytext()); }
-<YYINITIAL> "[" { return tok(Sym.OPENBRACKET, yytext()); }
-<YYINITIAL> "]" { return tok(Sym.CLOSEBRACKET, yytext()); }
+<YYINITIAL> "{" { return tok(Sym.OPENBRACE, yytext()); }
+<YYINITIAL> "}" { return tok(Sym.CLOSEBRACE, yytext()); }
+<YYINITIAL> "(" { return tok(Sym.OPENPAREN, yytext()); }
+<YYINITIAL> ")" { return tok(Sym.CLOSEPAREN, yytext()); }
+<YYINITIAL> "[" { return tok(Sym.OPENBRACKET, yytext()); }
+<YYINITIAL> "]" { return tok(Sym.CLOSEBRACKET, yytext()); }
<YYINITIAL> "+" { return tok(Sym.ADD, yytext()); }
<YYINITIAL> "-" { return tok(Sym.SUB, yytext()); }
<YYINITIAL> "*" { return tok(Sym.MULT, yytext()); }
<YYINITIAL> "/" { return tok(Sym.DIV, yytext()); }
+<YYINITIAL> sum { return tok(Sym.SUM, yytext()); }
<YYINITIAL> "<" { return tok(Sym.LT, yytext()); }
<YYINITIAL> in\? { return tok(Sym.INTEST, yytext()); }
<YYINITIAL> in { return tok(Sym.IN, yytext()); }
-<YYINITIAL> "," { return tok(Sym.COMMA, yytext()); }
+<YYINITIAL> "," { return tok(Sym.COMMA, yytext()); }
<YYINITIAL> sizeof { return tok(Sym.SIZEOF, yytext()); }
-<YYINITIAL> ".~" { return tok(Sym.DOTINV, yytext()); }
-<YYINITIAL> "." { return tok(Sym.DOT, yytext()); }
+<YYINITIAL> ".~" { return tok(Sym.DOTINV, yytext()); }
+<YYINITIAL> "." { return tok(Sym.DOT, yytext()); }
<YYINITIAL> "and" { return tok(Sym.AND, yytext()); }
<YYINITIAL> "or" { return tok(Sym.OR, yytext()); }
<YYINITIAL> isvalid { return tok(Sym.ISVALID, yytext()); }
<YYINITIAL> for { return tok(Sym.FOR, yytext()); }
<YYINITIAL> to { return tok(Sym.TO, yytext()); }
+<YYINITIAL> this { return tok(Sym.THIS, yytext()); }
<YYINITIAL> structure { return tok(Sym.STRUCTURE, yytext()); }
<YYINITIAL> reserved { return tok(Sym.RESERVED, yytext()); }
<YYINITIAL> byte { return tok(Sym.BYTE, yytext()); }
<YYINITIAL> subtype { return tok(Sym.SUBTYPE, yytext()); }
+<YYINITIAL> subclass { return tok(Sym.SUBCLASS, yytext()); }
<YYINITIAL> of { return tok(Sym.OF, yytext()); }
<YYINITIAL> ";" { return tok(Sym.SEMICOLON, yytext()); }