如何检查在JavaCC中应用哪个正则表达式

时间:2012-05-07 00:13:39

标签: parsing javacc

我有以下正则表达式

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中表达(令牌是ID)?

非常感谢。

1 个答案:

答案 0 :(得分:1)

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

  

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

有关详细信息,请参阅JavaCC FAQ