示例#1
0
 @Override
 public Token getToken() throws Exception {
   StringBuilder s = new StringBuilder();
   while ((dfa.lastState() == null) || (!dfa.lastState().equals(DFA.deadState))) {
     consume();
     if (currentCharacter == (int) '\n') line++;
     if (currentCharacter == -1) return Token.EOF_TOKEN;
     s.append((char) currentCharacter);
     dfa.simulate(s.toString() + ((char) nextCharacter));
   }
   if (dfa.lastState().equals(DFA.deadState)) {
     if (dfa.simulate(s.toString())) {
       return new Token(dfa.lastState().attached(), s.toString());
     }
   }
   throw new Exception("Line : " + line + "Invalid lexeme");
 }