0

我有以下正则表达式

TOKEN:{
  <CONSTANT:(<DIGIT>)+>
  | <ID:<LETTER>(<LETTER> | <DIGIT>)*>
  | <#DIGIT:["0"-"9"]>
  | <#LETTER:["a"-"z","A"-"Z","_"]>
}

现在我想知道如何检查当前令牌是 ID 还是 CONSTANT

public class eg1 {
  public static void main(String args[]) throws ParseException {
    eg1 parser = new eg1(System.in);
    Token token = parser.getNextToken();

    if(token is ID) System.out.print("Token is ID");
    else System.out.print("Token is CONSTANT");   
  }
}

JavaCC中如何表达(token为ID)?

非常感谢。

4

1 回答 1

1

您已int ID在 eg1Constants.java 中定义并与之比较token.kind,因此您正在寻找

if (token.kind == eg1Constants.ID) System.out.print("Token is ID");

有关详细信息,请参阅JavaCC 常见问题解答

于 2012-05-09T18:57:11.163 回答