У меня есть грамматика с backtrack=true
, похожая на следующую:
start:
subrules+;
subrules:
...
| rule1
...
rule1:
....
| { Type1 }?
(sentence INT amount NEW_LINE (sentence NEW_LINE)? )
.....
a valid sentence 1 12.09 \n on two lines
проходит, но A valid sentence \n
без второй строки завершается неудачей.
Проходя по коду во время отладки, я вижу, что он не соответствует разделу кода, сгенерированному для (desc2=sentence NEW_LINE)?
Если я закомментирую соответствующие строки в сгенерированном коде, чтобы он неt пытаться сопоставить (desc2=sentence NEW_LINE)?
перед входом в правило, оба предложения проходят правильно.Является ли это ожидаемым поведением или, скорее всего, что-то еще в моей грамматике (которая в настоящее время довольно сложная) вызывает неправильное поведение.
Спасибо, Ричард