java_cup.runtime.Symbol EOF не объявлен

Я уже прочитал это обсуждение, но оно мне не помогло.

start with file;
file ::= primario SEP secondario SEP terziario EOF {:fm.scriviDebug();:};

Где fm.scriviDebug() — это мой пользовательский класс, который выводит на стандартный вывод то, что проанализировано CUP.

Я понятия не имею, где проблема.

Немного информации:


Я использую JFLex для сканирования файла и передачи символов в CUP следующим образом:

...
{bo} {System.out.println("[BO] ["+yytext() +"]");return symbol(sym.BO);}
{bc} {System.out.println("[BC] ["+yytext() +"]");return symbol(sym.BC);}
{sc} {System.out.println("[SC] ["+yytext() +"]");return symbol(sym.SC);}
{eq} {System.out.println("[EQ] ["+yytext() +"]");return symbol(sym.EQ);}
...

Я получаю более одного предупреждения следующего типа:

Warning in file "Scanner.jflex" (line 115):
Expression matches the empty string, which may lead to non-termination.
   .*  {

Вот что я получаю при компиляции CUP:

Opening files...
Parsing specification from standard input...
Error at 63(73): java_cup.runtime.Symbol "EOF" has not been declared
Closing files...
------- CUP v0.10k Parser Generation Summary -------
1 error and 0 warnings
20 terminals, 14 non-terminals, and 18 productions declared,
producing 0 unique parse states.
0 terminals declared but not used.
0 non-terminals declared but not used.
0 productions never reduced.
0 conflicts detected (0 expected).
    No code produced.
---------------------------------------------------- (v0.10k)

Еще одна ошибка после сбоя компиляции CUP:

 cannot find symbol
           { return new java_cup.runtime.Symbol(sym.EOF); }

Пожалуйста, сообщите мне, если требуется дополнительная информация.


person shogitai    schedule 20.05.2017    source источник
comment
Обратите внимание на сообщения 1 ошибка и 0 предупреждений и Код не создан от CUP. Что-то не так в вашей грамматике CUP. Вы должны увидеть некоторые другие сообщения от CUP, объясняющие, в чем проблема.   -  person Kevin Anderson    schedule 21.05.2017
comment
Я просмотрел многие части моей грамматики CUP, и теперь она работает, но не уверен, в чем проблема. Я предполагаю, что какой-то нетерминальный символ не будет объявлен.   -  person shogitai    schedule 21.05.2017