Моя грамматика что-то вроде этого
ifStatment ::= IF PARETHESIS logicOperation PARENTHESIS_ KEY procedures KEY_ elseIfStatment;
elseIfStatment ::= ELSE IF PARENTHESIS logicOperation PARENTHESIS_ KEY procedures KEY_ elseIfStatment
|elseStatment;
elseStatment ::= ELSE KEY procedures KEY_
| ;
«logicOperation» возвращает значение «истина / ложь», а «процедуры» - это то, что я хочу сделать, если «logicOperation» - истина.
Я думал об использовании стакана чашек в производстве «процедур», чтобы проверить, истинно ли «logicOperation».
Это сработало бы, если бы был только "elseStatment", а не "elseIf", но с elseIf, я не мог бы знать точную позицию logicOperation в стеке.
Что мне делать?