私の OCaml パーサーでは、関数適用に高い優先度と左結合性を与える必要があります。私はそれが一致するさまざまなトークンをたくさん持っています
%token LET REC EQ IN FUN ARROW
%token IF THEN ELSE
%token PLUS MINUS MUL DIV LT LE NE AND OR
%token LPAREN RPAREN
そして、これらすべての優先順位と結合性を , を使用して与えました%left
...right
ただし、exp
一致させるために使用しているのはトークンではないため、この場合はどうすればよいか疑問に思っていました:
exp:
| exp exp { App($1,$2)}
のすべての一致がexp
あり、さまざまな exp1 exp2 などを作成していないためexp
exp
、最高の優先順位を付けて関連付けを残すことが可能かどうかを知りたいです。
これをクラスの別のフォーラムに投稿したところ、次のようになりました。
次のように、ダミー トークンを関数適用規則に関連付けることができます。
rule: .... %precc DUMMY_FUN_APP
次に、%left とダミー トークンを使用して結合性を指定します。
しかし、これが何を意味するのかよくわからないので、誰かがこれについて詳しく説明したり、素晴らしい別の解決策を教えてくれたりできれば.