JavaCC中的NULL标记

时间:2008-12-29 13:28:52

标签: java parsing javacc

令牌有奇怪的问题 < NULL:“null”> 在我的JavaCC解析器中。 在表达式中

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

{
    return res;
}
}

解析器没有看到NULL标记并抛出“null”预期的异常。如果我将令牌定义更改为&lt; NULL:“null_val”&gt;或其他什么工作正常。 这是我的错误还是JavaCC不接受'null'作为令牌值?

1 个答案:

答案 0 :(得分:3)

JavaCC包中有Java语言语法示例,其中包含以下标记:

< NULL: "null" >

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

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