У меня есть следующая грамматика в файле Bison:
lst: ID COMMA lst
| ID
| /*empty*/
plst: lst SEMICOLON lst
| SEMICOLON lst
| lst
ГДЕ первое правило фактически пытается отобразить список идентификаторов, таких как id1,id2,id3...
А второй хочет отобразить возможную пару списков, разделенных точкой с запятой. Допустимые варианты: id11,id12,id13...;id21,id22,id23...
, id1,id2,id3...
или ;id1,id2,id3...
.
Мне было интересно, правильный ли это набор правил, поскольку Bison возвращает много конфликтов. Я подумал, что одной из возможных проблем могут быть неправильно сформированные правила. Итак, мой вопрос: вышеупомянутый набор правил хорош или он подвержен конфликтам? Спасибо.