Нулевой токен в JavaCC - PullRequest
       26

Нулевой токен в JavaCC

3 голосов
/ 29 декабря 2008

У меня странная проблема с токеном в моем парсере JavaCC. В выражении, как

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

{
    return res;
}
}

синтаксический анализатор не видит токен NULL и выдает исключение, которое ожидалось "null". Если я изменю определение токена на или что-то еще, оно будет работать нормально. Это моя ошибка или JavaCC не принимает значение null в качестве значения токена?

1 Ответ

3 голосов
/ 29 декабря 2008

В пакете JavaCC есть примеры грамматик языка Java со следующим различием токена:

< NULL: "null" >

так что я уверен, что JavaCC может обрабатывать нулевой токен.

Вы уверены, что токен не объявлен до того, как NULL совпадет с "null"? Токены сопоставляются в порядке объявления. Вы можете попытаться объявить NULL в самом начале.

...