川合のプログラミング言語自作のためのテキスト第三版#7
(15) TL-7
- まずC言語の演算子一覧を書きます。
優先順位 | 演算子 | 形式 | 名前 | 結合方向 | TL-7 |
1 | ( ) | func(x,y,z) | 関数呼び出し演算子 | 左 | × |
1 | [ ] | a[i] | 添え字演算子 | 左 | × |
1 | . | abc.x | ドット演算子 | 左 | × |
1 | -> | p->x | アロー演算子 | 左 | × |
1 | ++ | i++ | 後置インクリメント演算子 | 左 | 〇 |
1 | -- | j-- | 後置デクリメント演算子 | 左 | × |
2 | ++ | ++i | 前置インクリメント演算子 | 右 | 〇 |
2 | -- | --j | 後置デクリメント演算子 | 右 | × |
2 | sizeof | sizeof a | sizeof演算子 | 右 | × |
2 | & | &x | 単項&演算子 | 右 | × |
2 | * | *p | 単項*演算子 | 右 | × |
2 | + | +a | 単項+演算子 | 右 | × |
2 | - | -b | 単項-演算子 | 右 | 〇 |
2 | ~ | ~i | 補数演算子 | 右 | × |
2 | ! | !j | 論理否定演算子 | 右 | × |
3 | ( ) | (typ)obj | 型キャスト演算子 | 右 | × |
4 | * | x * y | 二項*演算子 | 左 | 〇 |
4 | / | x / y | 除算演算子 | 左 | × |
4 | % | x % y | 剰余演算子 | 左 | × |
5 | + | x + y | 二項+演算子 | 左 | 〇 |
5 | - | x - y | 二項-演算子 | 左 | 〇 |
6 | << >> | i << j など | シフト演算子 | 左 | × |
7 | < <= > >= | x < y など | 比較演算子 | 左 | 〇 |
8 | == != | x == y など | 比較演算子 | 左 | 〇 |
9 | & | i & j | ビットAND演算子 | 左 | × |
10 | ^ | i ^ j | ビットXOR演算子 | 左 | × |
11 | | | i | j | ビットOR演算子 | 左 | × |
12 | && | i && j | 論理AND演算子 | 左 | × |
13 | || | i || j | 論理OR演算子 | 左 | × |
14 | ? : | x ? y : z | 条件演算子 | 右 | × |
15 | = | x = y | 単純代入演算子 | 右 | 〇 |
15 | += -= など | x += y など | 複合代入演算子 | 右 | × |
16 | , | x, y | コンマ演算子 | 左 | × |
- 全部の演算子をサポートするとTL-7のプログラムが長くなってしまうので、この中の一部だけを実装することにします、残りは拡張したい人が拡張するということにしましょう。
次回に続く
こめんと欄