令牌有奇怪的问题 < 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'作为令牌值?
答案 0 :(得分:3)
JavaCC包中有Java语言语法示例,其中包含以下标记:
< NULL: "null" >
所以我非常确定JavaCC可以处理空令牌。
你确定在NULL匹配“null”之前没有声明的令牌吗?令牌按声明顺序匹配。您可以尝试在一开始就声明NULL。