Ошибка ANTLR, когда недостаточно или слишком много новых строк - PullRequest
0 голосов
/ 03 октября 2010

ANTLR выдает мне следующую ошибку, когда в моем входном файле нет либо новой строки в EOF, либо больше одного.Возможность иметь несколько или нет новых строк в конце входного файла.Предпочтительно я хотел бы объяснить это в грамматике.

1 Ответ

1 голос
/ 04 октября 2010

Правило:

parse
  :  (Token LineBreak)+ EOF
  ;

анализирует только поток токенов, разделенных ровно одним разрывом строки, заканчивающимся ровно одним разрывом строки.

Хотя правило:

parse
  :  Token (LineBreak+ Token)* LineBreak* EOF
  ;

анализирует поток токенов, разделенных одним или несколькими разрывами строк, заканчивающимися нулем, одним или несколькими разрывами строк.

Но сделайтевам действительно нужно сделать разрывы строк видимыми в парсере?Не могли бы вы вместо этого поместить их в «скрытый канал»?

Если это не отвечает на ваш вопрос, вам придется опубликовать свою грамматику (для этого вы можете отредактировать исходный вопрос).

HTH

...