3

我的 JavaCC 解析器中的 token < NULL: "null" > 有奇怪的问题。表达方式如

String IsNullClause():
{
      String res = "";
}
{
     <IS> {res += " IS ";}
     [<NOT> {res += " NOT ";} ]
     <NULL> {res += " NULL ";}

{
    return res;
}
}

解析器看不到 NULL 令牌并抛出“null”预期的异常。如果我将令牌定义更改为 < NULL: "null_val" > 或其他内容,它可以正常工作。这是我的错误还是 JavaCC 不接受“null”作为令牌值?

4

1 回答 1

3

JavaCC 包中有示例 Java 语言语法,其标记定义如下:

< NULL: "null" >

所以我很确定 JavaCC 可以处理空令牌。

您确定在 NULL 匹配“null”之前没有声明任何令牌吗?令牌按照声明的顺序匹配。您可以尝试在一开始就声明 NULL。

于 2008-12-29T17:11:57.283 回答