Ожидая NEWLINE в ANTLR - PullRequest
       12

Ожидая NEWLINE в ANTLR

1 голос
/ 22 марта 2012

У меня появляется ошибка, показывающая:

line 1:5 mismatched input '<EOF>' expecting NEWLINE

для моего ввода:

print "hi"

Я в основном новичок в ANTLR, поэтому я действительно не имею никакого представления оо чем эта ошибка?Я понял, что у меня должен быть конец файла, но как мне его разместить?

1 Ответ

6 голосов
/ 22 марта 2012

Я в основном новичок в ANTLR, поэтому я действительно не знаю, о чем эта ошибка?

Это означает, что анализатор натыкается на конец файла, в то время как он ожидает разрыв строки. Чтобы исправить это, просто поместите разрыв строки в конце ввода.

Это означает, что у вас есть что-то вроде этого в вашей грамматике:

parse : (statement NEWLINE)+ EOF

делает обязательным NEWLINE непосредственно перед EOF. Вы также можете сделать что-то вроде этого:

parse : statement (NEWLINE statement)* NEWLINE* EOF

делает NEWLINE необязательным в конце, но обязательным между statement с.

...