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」を受け入れませんか?