Я написал грамматик flex/Bison, который отлично работает до определенной точки. Но когда я добавляю новый нетерминал с новым правилом грамматики - независимо от того, какой из них я получаю следующее предупреждение: предупреждение: правило бесполезно в грамматике [-Wother]Bison: получение синтаксической ошибки без причины
, когда я перемещаю одно и то же правило на другое не терминал. Он отлично работает. Как будто я не могу добавить больше не терминалов.
Это часть кода, который не работает:
%type<number> expression
%type<arr> array
array:
'[' expression ']' { cout << "SUCCESS" << endl; }
;
expression:
NUMBER { $$ = $1; }
;
всех типов предопределены в союзе, и я пытался изменить правила/порядок нетерминалы. Ничего не работает. Пожалуйста, помогите, поскольку я не могу понять, в чем проблема!
Этот фрагмент, очевидно, действителен. Пожалуйста, отредактируйте свой вопрос, чтобы включить достаточное количество ваших правил о том, что зубр будет выдавать предупреждающее сообщение. – rici