第九回: yacc 系ツールの演習
http://www.sw.it.aoyama.ac.jp/2005/Language%20Theory%20and%20Compilers/lecture9.html
© 2005 Martin J. Dürst 青山学院大学
#define YYDEBUG を 1 に変更| GnuWin32 | cygwin | |
| シェル | コマンドプロンプト (アクセサリ) | Cygwin Bash Shell (Cygwin) |
| 作業フォールダ | 例えば C:\Program Files\GnuWin32\bin | 任意 |
| コンパイラ | Microsoft Visual C++ | gcc simple.tab.c |
| コンパイラの呼び方 | GUI | シェル: gcc |
| 実行 | メニューかボタン | シェル: ./a.exe |
簡単なプログラム言語を bison で実現して、bison の
.y ファイルを印刷して提出:
; で区切る。制御文 (if
等)、関数 は無し@ (式)
は「式」の結果を改行付きに印刷する。| 優先順位 | 演算子 (必修) | 演算子 (発展) | 結合規則 |
| 1 | () |
→ | |
| 2 | 単項の - |
前置の ++; 前置の -- |
← |
| 3 | ← | ||
| 4 | *; /; % |
→ | |
| 5 | +; - |
→ | |
| 6 | <<; >> |
→ | |
| 7 | <; > |
<=; >= |
→ |
| 8 | ==; != |
→ | |
| 9 | & |
→ | |
| 10 | ^ |
→ | |
| 11 | | |
→ | |
| 12 | && |
→ | |
| 13 | || |
→ | |
| 14 | ?: |
← | |
| 15 | = |
+= など |
← |
| 16 | , |
→ |