0

次の最小化された文法があります

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役に立たないようです。

4

1 に答える 1