演算子順位行列の作り方まとめ
教科書表 4.2 のような演算子順位行列は、
次のように作成する。
-
⊗ が
⊕ より優先順位が高いとき(例:
* と +)
優先順位の高い方に開く。つまり、
⊗ ⋗ ⊕ かつ
⊕ ⋖ ⊗
-
⊕ と
⊖
が同じ優先順位のとき(例: + と −)
- 左結合 → 左に開く。つまり、
⊕ ⋗ ⊖ かつ
⊖ ⋗ ⊕
- 右結合 → 右に開く。つまり、
⊕ ⋖ ⊖ かつ
⊖ ⋖ ⊕
- 非結合 → 空欄のままにする。(エラーを表す。)
- すべての演算子 ⊕ について、識別子、括弧、始、終との関係は
教科書表 4.2 の
+ や * の場合と同じ。
つまり、以下のようにする。
左 右 |
⊕ |
( | ) | 識別子 | 終 |
始 | ⋖ |
⋖ | | ⋖ | ≐ |
⊕ | ? |
⋖ | ⋗ | ⋖ | ⋗ |
( | ⋖ |
⋖ | ≐ | ⋖ | |
) | ⋗ |
| ⋗ | | ⋗ |
識別子 | ⋗ |
| ⋗ | | ⋗ |
-
⊕ ⋖ id,
id ⋗ ⊕,
⊕ ⋖ (,
( ⋖ ⊕,
) ⋗ ⊕,
⊕ ⋗ ),
$ ⋖ ⊕,
⊕ ⋗ $,
となる。
-
( ≐ ),
( ⋖ (,
( ⋖ id,
) ⋗ ),
id ⋗ ),
$ ⋖ (,
$ ≐ $,
) ⋗ $,
$ ⋖ id,
id ⋗ $,
などが成り立つ。
-
) と (,
id と (,
id と id,
) と id,
( と $,
$ と ),
は関係なし(エラー)になる。
Koji Kagawa (kagawa@eng.〜)