2012-04-02 4 views
0

に私はEBNF表記でこの文法があります。拡張BNF BNF翻訳

expr -> expr (opt1 | opt2 | opt3) expr 

を、私はバイソンでそれを使用するためにBNFに変換したいが、私はこの中にシフト/削減のエラーを取得:

expr : expr opt1 expr | expr opt2 expr | expr opt3 expr 

私は道に沿って何かを誤解していたと思います。どんな助け?

おかげ

答えて

3

どの程度

expr: expr optexpr expr 
optexpr: opt1 | opt2 | opt3 

シフト/ errosを削減することは、重複exprのプレフィックスによるものです。別の定義を導入することで、exprの解析が明確になります。

+0

解決済みです。ありがとう – Nitrate