次の最小化された文法があります
Exp : let var '=' Exp in Exp end { App (Fn $2 $6) $4 }
| Exp Exp { App $1 $2 }
| Exp OpCode Exp { Op $1 Add $3 }
| '(' Exp ')' { $2 }
| num { Num $1 }
| var { Ident $1 }
| '\\' var '.' Exp { Fn $2 $4 }
Exp Exp
ルールは、値に関数を適用するために使用されます。しかし、そのようなものがあればmyFunc 1 2
、デフォルトで precendencemyFunc (1 2)
になりますが、これは私が望むものではありません。(myFunc 1) 2
カリー用に が欲しい。
しかし、非終端記号がない場合、どのように関連付けを定義できますか? やろうとしても%left Exp
役に立たないようです。