Exemplo n.º 1
0
  private boolean doKeyword(Segment line, int i, char c) {
    int i1 = i + 1;

    if (token == S_END) {
      addToken(i - lastOffset, Token.LITERAL2);
      token = Token.NULL;
      lastOffset = i;
      lastKeyword = i1;
      return false;
    }

    int len = i - lastKeyword;
    byte id = keywords.lookup(line, lastKeyword, len);
    if (id == S_ONE || id == S_TWO) {
      if (lastKeyword != lastOffset) addToken(lastKeyword - lastOffset, Token.NULL);
      addToken(len, Token.LITERAL2);
      lastOffset = i;
      lastKeyword = i1;
      if (Character.isWhitespace(c)) matchChar = '\0';
      else matchChar = c;
      matchSpacesAllowed = true;
      token = id;
      return true;
    } else if (id != Token.NULL) {
      if (lastKeyword != lastOffset) addToken(lastKeyword - lastOffset, Token.NULL);
      addToken(len, id);
      lastOffset = i;
    }
    lastKeyword = i1;
    return false;
  }