Я хотел знать, есть ли способ определить, какие правила были выбраны в yacc для конкретного ввода? - PullRequest
0 голосов
/ 17 сентября 2018

На самом деле я пишу грамматику для вложенных if else конструкций и в этом, казалось бы, правильный синтаксис дает неверный ответ, поэтому было бы очень полезно, если бы я мог проверить, какие произведения или правила были выбраны. Заранее спасибо.

Вот моя грамматика:

construct: ifStatement% prec low | ifStatement elseIf | ifStatement elseIf Блок ELSE | блок ELStatement ifState;

elseIf: ELSE ifStatement | elseIf ELSE ifStatement;

ifStatement: IF '(' expr ')' блок;

блок: оператор | '{' операторы '}';

операторы: | оператор заявления;

оператор: IDENTIFIER '=' expr ';'| ';';

expr: expr '+' expr | expr '*' expr | expr '-' expr | expr '/' expr | expr RELOP expr | IDENTIFIER | NUMBER;

...