Можно ли выделить нетерминал bin_op в спецификации грамматики? - PullRequest
0 голосов
/ 23 февраля 2010

Неудобство в задании грамматик - мы не можем выделить bin_op в следующем примере (Bison):

expr : expr bin_op expr ;
bin_op : Add
    | Mul
    ;

из-за сдвига / уменьшения конфликтов. Есть ли метод синтаксического анализа или генератор парсера, который позволяет такую ​​вещь?

1 Ответ

0 голосов
/ 23 февраля 2010

Да

Yacc использовался для анализа почти всех реальных языков программирования и некоторых других типов. Я не почти его самый большой поклонник, но он, безусловно, может разобрать эту грамматику или, возможно, эквивалент, написанный с учетом yacc.

И конфликты сдвига / уменьшения не являются ошибками.

...