━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 再帰下降型の構文解析 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
●構文解析手続き next_token() 次の字句を読み込む error() 誤り処理 ●構文解析 *選択 字句A | 字句B if (tok が字句A) { Aの処理 tok = next_token(); } else if (tok が字句B) { Bの処理 tok = next_token(); } else { error(); } 字句A | 変数X if (tok が字句A) { Aの処理 tok = next_token(); } else { Xの処理手続きの呼び出し } *反復 変数X* 字句A while (! tok が字句A) { Xの処理手続きの呼び出し } Aの処理 tok = next_token(); ※字句Aは入力終端の場合もある ●まとめ 先読み ・必ず1字句先読みして各構文解析手続きを呼ぶ ・1字句照合したら next_token() を呼ぶ 文法の構造に応じた処理 ・選択には選択文 ・反復には反復文 ・変数(左辺の記号)の処理には構文解析手続きの呼び出し ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 実験のホームページ 山田 俊行 https://www.cs.info.mie-u.ac.jp/~toshi/