0

式にはいくつかのルールがあります。

e:
  e '*' e |
  e '+' e |
  e '<' e |
  '2';

<assoc=right>for ex.を使用して「+」演算子の結合性を指定できますが、次のような式2 < 2 < 2が無効であることをどのように指定できますか?

4

1 に答える 1

0

これに答えるのがかなり遅くなりましたが、...

処理する最善の方法は、式をブール式と数値式の 2 つのビットに分割することです。

exp:
    numeric |
    boolean

boolean:
    numeric '<' numeric;

numeric:
    numeric '*' numeric |
    numeric '+' numeric |
    2;

これにより、のようなものは許可されますが、許可さ1 + 2 < 3れません1 < 2 < 3

于 2013-11-24T19:39:53.033 に答える