Когда вы используете '\n'
в своих правилах грамматики, вы не соответствует backslash+n
, но символ новой строки.И похоже, что ваш ввод не содержит символов новой строки, но backslash+n
.
Итак, я думаю, вам нужно либо изменить ваше правило test
на:
test
: 'test' ID '\\n' 'begin' '\\n' 'end' '\\n'
;
в результате получается дерево разбора:
или оставьте ваше test
правило как есть , но измените свой ввод на:
test blah
begin
end
В результате получается дерево разбора:
Если это не так, не могли бы вы опубликовать SSCCE: небольшую, полную рабочую демонстрацию, которую я (или кто-то ещеможно запустить) что показывает эту ошибку?