Бизон выдает 2 конфликта сдвиг/свертка на следующей грамматике:
%left ADD
%left MUL
%%
expr : expr bin_op expr
| NAT
;
bin_op : ADD
| MUL
;
Один человек, разбирающийся в подобных вещах, сказал, что грамматик, допускающих подобным образом выделение bin_op в отдельное правило без кофликтов, не существует. Мне не верится — ни GLR, ни Earley? Выглядит так просто. Хотелось бы услышать еще подтверждение — он прав?
Программировать сложно. Но не программировать еще сложнее.