以下のBNFに対して各フォームを埋めよ
※大きめの画面でやらないと形が崩れる場合があります。
1.左再帰の除去
上記のBNFから左再帰を除去せよ。空に関しては何も入力しない、もしくはεを入力すること。
E id (F) E(F) E[E]
F E F,E
id
2.First
フォームを埋めてFirstを完成させよ。空は何も入力しないもしくはεを入力すること。
3.Follow
フォームを埋めてFollowを完成させよ。入力の終わりは$で示すこと。
4.構文解析表
5.プログラム
フォームを埋めてプログラムを完成させよ。プログラム中の関数に対応する関数である。何も入らない場合は入力しないこと。
(補足:1文字の終端記号はその字そのもの(のASCIIコード)、複数文字の終端記号は以下にマクロの対応を書いているのでこちらを使用すること。
終端記号を読み込む場合はeat関数を利用すること。eat 関数は、現在 token に入っている値が、引数として与えられた終端記号と等しいかどうか確かめ、等しければ次の終端記号を読み込む。)
例 :{E|L}E'→eat('{');E();eat('|');L();eat('}');E1();
テスト一覧