我对令牌有奇怪的问题
< NULL:“空”>
在我的JavaCC解析器中.
在表达像
String IsNullClause():
{
String res = "";
}
{
<IS> {res += " IS ";}
[<NOT> {res += " NOT ";} ]
<NULL> {res += " NULL ";}
{
return res;
}
}
解析器看不到NULL令牌,并引发预期为“ null”的异常.如果我将令牌定义更改为< NULL:“ null_val”>或其他功能正常.
这是我的错误,还是JavaCC不接受’null’作为标记值?
最佳答案
JavaCC软件包中有一些示例Java语言语法,具有以下标记定义:
原文链接:https://www.f2er.com/java/532996.html< NULL:“空”>
所以我很确定JavaCC可以处理空令牌.
您确定在NULL匹配“ null”之前没有声明任何令牌吗?令牌按声明顺序进行匹配.您可以尝试在一开始就声明NULL.