/* This file was generated by SableCC (http://www.sablecc.org/). */ package com.google.clearsilver.jsilver.syntax.lexer; import java.io.*; import com.google.clearsilver.jsilver.syntax.node.*; @SuppressWarnings("nls") public class Lexer { protected Token token; protected State state = State.CONTENT; private PushbackReader in; private int line; private int pos; private boolean cr; private boolean eof; private final StringBuffer text = new StringBuffer(); @SuppressWarnings("unused") protected void filter() throws LexerException, IOException { // Do nothing } public Lexer(@SuppressWarnings("hiding") PushbackReader in) { this.in = in; } public Token peek() throws LexerException, IOException { while(this.token == null) { this.token = getToken(); filter(); } return this.token; } public Token next() throws LexerException, IOException { while(this.token == null) { this.token = getToken(); filter(); } Token result = this.token; this.token = null; return result; } protected Token getToken() throws IOException, LexerException { int dfa_state = 0; int start_pos = this.pos; int start_line = this.line; int accept_state = -1; int accept_token = -1; int accept_length = -1; int accept_pos = -1; int accept_line = -1; @SuppressWarnings("hiding") int[][][] gotoTable = Lexer.gotoTable[this.state.id()]; @SuppressWarnings("hiding") int[] accept = Lexer.accept[this.state.id()]; this.text.setLength(0); while(true) { int c = getChar(); if(c != -1) { switch(c) { case 10: if(this.cr) { this.cr = false; } else { this.line++; this.pos = 0; } break; case 13: this.line++; this.pos = 0; this.cr = true; break; default: this.pos++; this.cr = false; break; } this.text.append((char) c); do { int oldState = (dfa_state < -1) ? (-2 -dfa_state) : dfa_state; dfa_state = -1; int[][] tmp1 = gotoTable[oldState]; int low = 0; int high = tmp1.length - 1; while(low <= high) { int middle = (low + high) / 2; int[] tmp2 = tmp1[middle]; if(c < tmp2[0]) { high = middle - 1; } else if(c > tmp2[1]) { low = middle + 1; } else { dfa_state = tmp2[2]; break; } } }while(dfa_state < -1); } else { dfa_state = -1; } if(dfa_state >= 0) { if(accept[dfa_state] != -1) { accept_state = dfa_state; accept_token = accept[dfa_state]; accept_length = this.text.length(); accept_pos = this.pos; accept_line = this.line; } } else { if(accept_state != -1) { switch(accept_token) { case 0: { @SuppressWarnings("hiding") Token token = new0( getText(accept_length), start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 0: state = State.CONTENT; break; } return token; } case 1: { @SuppressWarnings("hiding") Token token = new1( getText(accept_length), start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 3: state = State.COMMENT; break; } return token; } case 2: { @SuppressWarnings("hiding") Token token = new2( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 1: state = State.COMMAND; break; } return token; } case 3: { @SuppressWarnings("hiding") Token token = new3( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 1: state = State.COMMAND; break; } return token; } case 4: { @SuppressWarnings("hiding") Token token = new4( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 1: state = State.COMMAND; break; } return token; } case 5: { @SuppressWarnings("hiding") Token token = new5( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 1: state = State.COMMAND; break; } return token; } case 6: { @SuppressWarnings("hiding") Token token = new6( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 1: state = State.COMMAND; break; } return token; } case 7: { @SuppressWarnings("hiding") Token token = new7( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 1: state = State.COMMAND; break; } return token; } case 8: { @SuppressWarnings("hiding") Token token = new8( getText(accept_length), start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 1: state = State.COMMAND; break; } return token; } case 9: { @SuppressWarnings("hiding") Token token = new9( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 1: state = State.COMMAND; break; } return token; } case 10: { @SuppressWarnings("hiding") Token token = new10( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 1: state = State.COMMAND; break; } return token; } case 11: { @SuppressWarnings("hiding") Token token = new11( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 1: state = State.COMMAND; break; } return token; } case 12: { @SuppressWarnings("hiding") Token token = new12( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 1: state = State.COMMAND; break; } return token; } case 13: { @SuppressWarnings("hiding") Token token = new13( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 1: state = State.COMMAND; break; } return token; } case 14: { @SuppressWarnings("hiding") Token token = new14( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 1: state = State.COMMAND; break; } return token; } case 15: { @SuppressWarnings("hiding") Token token = new15( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 1: state = State.COMMAND; break; } return token; } case 16: { @SuppressWarnings("hiding") Token token = new16( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 1: state = State.COMMAND; break; } return token; } case 17: { @SuppressWarnings("hiding") Token token = new17( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 1: state = State.COMMAND; break; } return token; } case 18: { @SuppressWarnings("hiding") Token token = new18( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 1: state = State.COMMAND; break; } return token; } case 19: { @SuppressWarnings("hiding") Token token = new19( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 1: state = State.COMMAND; break; } return token; } case 20: { @SuppressWarnings("hiding") Token token = new20( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 1: state = State.COMMAND; break; } return token; } case 21: { @SuppressWarnings("hiding") Token token = new21( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 1: state = State.COMMAND; break; } return token; } case 22: { @SuppressWarnings("hiding") Token token = new22( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 1: state = State.COMMAND; break; } return token; } case 23: { @SuppressWarnings("hiding") Token token = new23( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 2: state = State.ARGS; break; } return token; } case 24: { @SuppressWarnings("hiding") Token token = new24( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 2: state = State.ARGS; break; } return token; } case 25: { @SuppressWarnings("hiding") Token token = new25( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 2: state = State.ARGS; break; } return token; } case 26: { @SuppressWarnings("hiding") Token token = new26( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 2: state = State.ARGS; break; } return token; } case 27: { @SuppressWarnings("hiding") Token token = new27( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 2: state = State.ARGS; break; } return token; } case 28: { @SuppressWarnings("hiding") Token token = new28( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 2: state = State.ARGS; break; } return token; } case 29: { @SuppressWarnings("hiding") Token token = new29( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 2: state = State.ARGS; break; } return token; } case 30: { @SuppressWarnings("hiding") Token token = new30( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 2: state = State.ARGS; break; } return token; } case 31: { @SuppressWarnings("hiding") Token token = new31( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 2: state = State.ARGS; break; } return token; } case 32: { @SuppressWarnings("hiding") Token token = new32( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 2: state = State.ARGS; break; } return token; } case 33: { @SuppressWarnings("hiding") Token token = new33( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 2: state = State.ARGS; break; } return token; } case 34: { @SuppressWarnings("hiding") Token token = new34( getText(accept_length), start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 2: state = State.ARGS; break; } return token; } case 35: { @SuppressWarnings("hiding") Token token = new35( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 2: state = State.ARGS; break; } return token; } case 36: { @SuppressWarnings("hiding") Token token = new36( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 2: state = State.ARGS; break; } return token; } case 37: { @SuppressWarnings("hiding") Token token = new37( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 2: state = State.ARGS; break; } return token; } case 38: { @SuppressWarnings("hiding") Token token = new38( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 2: state = State.ARGS; break; } return token; } case 39: { @SuppressWarnings("hiding") Token token = new39( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 2: state = State.ARGS; break; } return token; } case 40: { @SuppressWarnings("hiding") Token token = new40( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 2: state = State.ARGS; break; } return token; } case 41: { @SuppressWarnings("hiding") Token token = new41( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 2: state = State.ARGS; break; } return token; } case 42: { @SuppressWarnings("hiding") Token token = new42( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 2: state = State.ARGS; break; } return token; } case 43: { @SuppressWarnings("hiding") Token token = new43( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 2: state = State.ARGS; break; } return token; } case 44: { @SuppressWarnings("hiding") Token token = new44( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 2: state = State.ARGS; break; } return token; } case 45: { @SuppressWarnings("hiding") Token token = new45( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 2: state = State.ARGS; break; } return token; } case 46: { @SuppressWarnings("hiding") Token token = new46( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 2: state = State.ARGS; break; } return token; } case 47: { @SuppressWarnings("hiding") Token token = new47( getText(accept_length), start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 2: state = State.ARGS; break; } return token; } case 48: { @SuppressWarnings("hiding") Token token = new48( getText(accept_length), start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 2: state = State.ARGS; break; } return token; } case 49: { @SuppressWarnings("hiding") Token token = new49( getText(accept_length), start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 2: state = State.ARGS; break; } return token; } case 50: { @SuppressWarnings("hiding") Token token = new50( getText(accept_length), start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 2: state = State.ARGS; break; } return token; } case 51: { @SuppressWarnings("hiding") Token token = new51( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 2: state = State.ARGS; break; case 1: state = State.COMMAND; break; } return token; } case 52: { @SuppressWarnings("hiding") Token token = new52( getText(accept_length), start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 0: state = State.COMMAND; break; } return token; } case 53: { @SuppressWarnings("hiding") Token token = new53( start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 1: state = State.COMMENT; break; } return token; } case 54: { @SuppressWarnings("hiding") Token token = new54( getText(accept_length), start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 1: state = State.ARGS; break; } return token; } case 55: { @SuppressWarnings("hiding") Token token = new55( getText(accept_length), start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 1: state = State.ARGS; break; } return token; } case 56: { @SuppressWarnings("hiding") Token token = new56( getText(accept_length), start_line + 1, start_pos + 1); pushBack(accept_length); this.pos = accept_pos; this.line = accept_line; switch(state.id()) { case 2: state = State.CONTENT; break; case 1: state = State.CONTENT; break; case 3: state = State.CONTENT; break; } return token; } } } else { if(this.text.length() > 0) { throw new LexerException( "[" + (start_line + 1) + "," + (start_pos + 1) + "]" + " Unknown token: " + this.text); } @SuppressWarnings("hiding") EOF token = new EOF( start_line + 1, start_pos + 1); return token; } } } } Token new0(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TData(text, line, pos); } Token new1(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TComment(text, line, pos); } Token new2(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TVar(line, pos); } Token new3(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TLvar(line, pos); } Token new4(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TEvar(line, pos); } Token new5(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TUvar(line, pos); } Token new6(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSet(line, pos); } Token new7(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TIf(line, pos); } Token new8(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TElseIf(text, line, pos); } Token new9(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TElse(line, pos); } Token new10(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TWith(line, pos); } Token new11(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TEscape(line, pos); } Token new12(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TAutoescape(line, pos); } Token new13(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TLoop(line, pos); } Token new14(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TEach(line, pos); } Token new15(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TAlt(line, pos); } Token new16(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TName(line, pos); } Token new17(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TDef(line, pos); } Token new18(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TCall(line, pos); } Token new19(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TInclude(line, pos); } Token new20(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TLinclude(line, pos); } Token new21(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TContentType(line, pos); } Token new22(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TInline(line, pos); } Token new23(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TComma(line, pos); } Token new24(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TBang(line, pos); } Token new25(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TAssignment(line, pos); } Token new26(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TEq(line, pos); } Token new27(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TNe(line, pos); } Token new28(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TLt(line, pos); } Token new29(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TGt(line, pos); } Token new30(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TLte(line, pos); } Token new31(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TGte(line, pos); } Token new32(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TAnd(line, pos); } Token new33(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TOr(line, pos); } Token new34(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TString(text, line, pos); } Token new35(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new THash(line, pos); } Token new36(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TPlus(line, pos); } Token new37(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TMinus(line, pos); } Token new38(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TStar(line, pos); } Token new39(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TPercent(line, pos); } Token new40(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TBracketOpen(line, pos); } Token new41(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TBracketClose(line, pos); } Token new42(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TParenOpen(line, pos); } Token new43(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TParenClose(line, pos); } Token new44(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TDot(line, pos); } Token new45(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TDollar(line, pos); } Token new46(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TQuestion(line, pos); } Token new47(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TDecNumber(text, line, pos); } Token new48(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new THexNumber(text, line, pos); } Token new49(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TWord(text, line, pos); } Token new50(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TArgWhitespace(text, line, pos); } Token new51(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSlash(line, pos); } Token new52(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TCsOpen(text, line, pos); } Token new53(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TCommentStart(line, pos); } Token new54(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TCommandDelimiter(text, line, pos); } Token new55(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new THardDelimiter(text, line, pos); } Token new56(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TCsClose(text, line, pos); } private int getChar() throws IOException { if(this.eof) { return -1; } int result = this.in.read(); if(result == -1) { this.eof = true; } return result; } private void pushBack(int acceptLength) throws IOException { int length = this.text.length(); for(int i = length - 1; i >= acceptLength; i--) { this.eof = false; this.in.unread(this.text.charAt(i)); } } protected void unread(@SuppressWarnings("hiding") Token token) throws IOException { @SuppressWarnings("hiding") String text = token.getText(); int length = text.length(); for(int i = length - 1; i >= 0; i--) { this.eof = false; this.in.unread(text.charAt(i)); } this.pos = token.getPos() - 1; this.line = token.getLine() - 1; } private String getText(int acceptLength) { StringBuffer s = new StringBuffer(acceptLength); for(int i = 0; i < acceptLength; i++) { s.append(this.text.charAt(i)); } return s.toString(); } private static int[][][][] gotoTable; /* { { // CONTENT {{0, 59, 1}, {60, 60, 2}, {61, 65535, 1}, }, {{0, 59, 1}, {60, 60, 3}, {61, 65535, 1}, }, {{0, 62, 4}, {63, 63, 5}, {64, 65535, 4}, }, {{0, 62, 4}, {63, 63, 6}, {64, 65535, 4}, }, {{0, 65535, -3}, }, {{0, 98, 7}, {99, 99, 8}, {100, 65535, 7}, }, {{0, 98, 7}, {99, 99, 9}, {100, 65535, 7}, }, {{0, 65535, -3}, }, {{0, 114, 10}, {115, 115, 11}, {116, 65535, 10}, }, {{0, 114, 10}, {115, 115, 12}, {116, 65535, 10}, }, {{0, 65535, -3}, }, {{0, 8, 13}, {9, 9, 14}, {10, 10, 15}, {11, 12, 13}, {13, 13, 16}, {14, 31, 13}, {32, 32, 17}, {33, 65535, 13}, }, {{0, 8, 13}, {11, 12, 13}, {14, 31, 13}, {33, 65535, 13}, }, {{0, 65535, -3}, }, {{9, 10, -13}, {13, 13, 16}, {32, 32, 17}, }, {{9, 32, -16}, }, {{9, 32, -16}, }, {{9, 32, -16}, }, } { // COMMAND {{9, 9, 1}, {10, 10, 2}, {13, 13, 3}, {32, 32, 4}, {33, 33, 5}, {35, 35, 6}, {47, 47, 7}, {58, 58, 8}, {63, 63, 9}, {97, 97, 10}, {99, 99, 11}, {100, 100, 12}, {101, 101, 13}, {105, 105, 14}, {108, 108, 15}, {110, 110, 16}, {115, 115, 17}, {117, 117, 18}, {118, 118, 19}, {119, 119, 20}, }, {{9, 9, 21}, {10, 10, 22}, {13, 13, 23}, {32, 32, 24}, {63, 63, 9}, }, {{9, 63, -3}, }, {{9, 63, -3}, }, {{9, 63, -3}, }, {}, {}, {}, {}, {{62, 62, 25}, }, {{108, 108, 26}, {117, 117, 27}, }, {{97, 97, 28}, {111, 111, 29}, }, {{101, 101, 30}, }, {{97, 97, 31}, {108, 108, 32}, {115, 115, 33}, {118, 118, 34}, }, {{102, 102, 35}, {110, 110, 36}, }, {{105, 105, 37}, {111, 111, 38}, {118, 118, 39}, }, {{97, 97, 40}, }, {{101, 101, 41}, }, {{118, 118, 42}, }, {{97, 97, 43}, }, {{105, 105, 44}, }, {{9, 63, -3}, }, {{9, 63, -3}, }, {{9, 63, -3}, }, {{9, 63, -3}, }, {}, {{116, 116, 45}, }, {{116, 116, 46}, }, {{108, 108, 47}, }, {{110, 110, 48}, }, {{102, 102, 49}, }, {{99, 99, 50}, }, {{105, 105, 51}, {115, 115, 52}, }, {{99, 99, 53}, }, {{97, 97, 54}, }, {}, {{99, 99, 55}, {108, 108, 56}, }, {{110, 110, 57}, }, {{111, 111, 58}, }, {{97, 97, 59}, }, {{109, 109, 60}, }, {{116, 116, 61}, }, {{97, 97, 62}, }, {{114, 114, 63}, }, {{116, 116, 64}, }, {}, {{111, 111, 65}, }, {{108, 108, 66}, }, {{116, 116, 67}, }, {}, {{104, 104, 68}, }, {{102, 102, 69}, }, {{101, 101, 70}, }, {{97, 97, 71}, }, {{114, 114, 72}, }, {{108, 108, 73}, }, {{105, 105, 74}, }, {{99, 99, 75}, }, {{112, 112, 76}, }, {{114, 114, 77}, }, {{101, 101, 78}, }, {}, {{114, 114, 79}, }, {}, {{104, 104, 80}, }, {{101, 101, 81}, }, {}, {{101, 101, 82}, }, {}, {}, {{105, 105, 83}, }, {{112, 112, 84}, }, {}, {{117, 117, 85}, }, {{110, 110, 86}, }, {{108, 108, 87}, }, {}, {}, {}, {}, {}, {{115, 115, 88}, }, {{110, 110, 89}, }, {{102, 102, 90}, }, {{101, 101, 91}, }, {{100, 100, 92}, }, {{101, 101, 93}, }, {{117, 117, 94}, }, {{99, 99, 95}, }, {{116, 116, 96}, }, {}, {}, {{101, 101, 97}, }, {}, {{100, 100, 98}, }, {{97, 97, 99}, }, {{45, 45, 100}, }, {}, {{101, 101, 101}, }, {{112, 112, 102}, }, {{116, 116, 103}, }, {}, {{101, 101, 104}, }, {{121, 121, 105}, }, {}, {{112, 112, 106}, }, {{101, 101, 107}, }, {}, } { // ARGS {{9, 9, 1}, {10, 10, 2}, {13, 13, 3}, {32, 32, 4}, {33, 33, 5}, {34, 34, 6}, {35, 35, 7}, {36, 36, 8}, {37, 37, 9}, {38, 38, 10}, {39, 39, 11}, {40, 40, 12}, {41, 41, 13}, {42, 42, 14}, {43, 43, 15}, {44, 44, 16}, {45, 45, 17}, {46, 46, 18}, {47, 47, 19}, {48, 48, 20}, {49, 57, 21}, {60, 60, 22}, {61, 61, 23}, {62, 62, 24}, {63, 63, 25}, {65, 90, 26}, {91, 91, 27}, {93, 93, 28}, {95, 95, 29}, {97, 122, 30}, {124, 124, 31}, }, {{9, 32, -2}, {63, 63, 32}, }, {{9, 63, -3}, }, {{9, 63, -3}, }, {{9, 63, -3}, }, {{61, 61, 33}, }, {{0, 33, 34}, {34, 34, 35}, {35, 65535, 34}, }, {}, {}, {}, {{38, 38, 36}, }, {{0, 38, 37}, {39, 39, 38}, {40, 65535, 37}, }, {}, {}, {}, {}, {}, {}, {}, {}, {{48, 57, 21}, {65, 87, 26}, {88, 88, 39}, {89, 90, 26}, {95, 95, 29}, {97, 119, 30}, {120, 120, 40}, {121, 122, 30}, }, {{48, 57, 21}, {65, 90, 26}, {95, 122, -2}, }, {{61, 61, 41}, }, {{61, 61, 42}, }, {{61, 61, 43}, }, {{62, 62, 44}, }, {{48, 57, 45}, {65, 122, -23}, }, {}, {}, {{48, 122, -28}, }, {{48, 122, -28}, }, {{124, 124, 46}, }, {{62, 62, 44}, }, {}, {{0, 65535, -8}, }, {}, {}, {{0, 65535, -13}, }, {}, {{48, 57, 47}, {65, 70, 48}, {71, 90, 26}, {95, 95, 29}, {97, 102, 49}, {103, 122, 30}, }, {{48, 122, -41}, }, {}, {}, {}, {}, {{48, 122, -28}, }, {}, {{48, 122, -41}, }, {{48, 122, -41}, }, {{48, 122, -41}, }, } { // COMMENT {{0, 8, 1}, {9, 9, 2}, {10, 10, 3}, {11, 12, 1}, {13, 13, 4}, {14, 31, 1}, {32, 32, 5}, {33, 62, 1}, {63, 63, 6}, {64, 65535, 1}, }, {{0, 62, 1}, {63, 63, 7}, {64, 65535, 1}, }, {{0, 65535, -2}, }, {{0, 65535, -2}, }, {{0, 65535, -2}, }, {{0, 65535, -2}, }, {{0, 61, 8}, {62, 62, 9}, {63, 65535, 8}, }, {{0, 61, 8}, {63, 65535, 8}, }, {{0, 65535, -3}, }, {}, } };*/ private static int[][] accept; /* { // CONTENT {-1, 0, -1, -1, 0, -1, -1, 0, -1, -1, 0, -1, -1, 0, 52, 52, 52, 52, }, // COMMAND {-1, 54, 54, 54, 54, 55, 53, 51, 54, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 56, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15, -1, -1, -1, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6, -1, 2, -1, -1, 18, -1, 14, 8, 9, -1, 4, -1, -1, -1, 13, 3, 16, 5, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, 11, -1, 22, -1, -1, -1, 19, -1, -1, -1, 20, -1, -1, 12, -1, -1, 21, }, // ARGS {-1, 50, 50, 50, 50, 24, -1, 35, 45, 39, -1, -1, 42, 43, 38, 36, 23, 37, 44, 51, 47, 47, 28, 25, 29, 46, 49, 40, 41, 49, 49, -1, -1, 27, -1, 34, 32, -1, 34, 49, 49, 30, 26, 31, 56, 49, 33, 48, 48, 48, }, // COMMENT {-1, 1, 1, 1, 1, 1, -1, -1, 1, 56, }, };*/ public static class State { public final static State CONTENT = new State(0); public final static State COMMAND = new State(1); public final static State ARGS = new State(2); public final static State COMMENT = new State(3); private int id; private State(@SuppressWarnings("hiding") int id) { this.id = id; } public int id() { return this.id; } } static { try { DataInputStream s = new DataInputStream( new BufferedInputStream( Lexer.class.getResourceAsStream("lexer.dat"))); // read gotoTable int length = s.readInt(); gotoTable = new int[length][][][]; for(int i = 0; i < gotoTable.length; i++) { length = s.readInt(); gotoTable[i] = new int[length][][]; for(int j = 0; j < gotoTable[i].length; j++) { length = s.readInt(); gotoTable[i][j] = new int[length][3]; for(int k = 0; k < gotoTable[i][j].length; k++) { for(int l = 0; l < 3; l++) { gotoTable[i][j][k][l] = s.readInt(); } } } } // read accept length = s.readInt(); accept = new int[length][]; for(int i = 0; i < accept.length; i++) { length = s.readInt(); accept[i] = new int[length]; for(int j = 0; j < accept[i].length; j++) { accept[i][j] = s.readInt(); } } s.close(); } catch(Exception e) { throw new RuntimeException("The file \"lexer.dat\" is either missing or corrupted."); } } }