0
, чтобы решить оборванную еще проблему, я использовал следующее решение:Бизон петли для конфликта
stmt : stmt_matched
| stmt_unmatched
;
stmt_unmatched : IF '(' exp ')' stmt
| IF '(' exp ')' stmt_matched ELSE stmt_unmatched
;
stmt_matched : IF '(' exp ')' stmt_matched ELSE stmt_matched
| stmt_for
| ...
;
Для определения правил грамматики про цикл, я произвести сдвиг конфликта/уменьшение в связи с одной и теми же задачами :
stmt_for : FOR '(' exp ';' exp ';' exp ')' stmt
;
Как я могу решить эту проблему?
Так что я должен добавить for_matched в stmt соответствие и for_unmatched в stmt непревзойденный? Соответственно stmt_for_matched: ЗА '(' ехр ';' ехр ';' ехр ')' stmt_matched \t \t \t и stmt_for_unmatched: ЗА '(' ехр ';' ехр ';' ехр ')' stmt_unmatched \t \t \t; –
@grazia: это правильно. – rici