Что-то плохое с моей грамматикой
Я использую jison, и я видел документацию по грамматикам ebnf, но я не могу заставить мои грамматические работы работать: Вот изображения моей грамматики, ввода и ошибки. В ошибке грамматика распознает только одну строку, но kleen star должен распознать 0 в нескольких случаях. Я новичок в jison, так что, возможно, способ использовать ebnf не такой, как я, если вы можете помочь, я был бы так благодарен
Минимальная полная версия моей грамматики:
Metodo
: 'void' id '(' ')' '{' INSTR '}'
;
INSTR
: INSTRUCCION*
;
Instrucción
: IF
| id '=' EXP ';'
| id ':' INSTR
;
Входные данные:
void metodo_1 () {
t2 = p + 1;
l2:
t6 = heap[t4];
print("%c", t6);
t5 = t5 + 1;
if t6 != 0 goto l2;
l0: }
Ошибка: ошибка
я добавил %ebnf
в начале моего парсера