コンパイラの原理(b)の解析

 

 

 

 ターミネーター一般大文字、非終端一般小文字

BNF所定の<ターミネータ>、オン非終端

左端の導出、右端の導出

解析ツリー:

 

 あいまいな文法:

 

 トップダウン分析:

 

 相関アルゴリズム:

 

 ルック記号は使用前にバックトラックを避けるために。

再帰下降解析アルゴリズム:

 

 LL(1)解析アルゴリズム:

 

 文法は、再帰的にChuzuoが左共通因子、してくださいFIRSTセット、セットでNULLABLE、セットFOLLOWを再抽出行きます

FIRST集:

任意の文字列に拡張された最初のセット:

 

 

 

 テーブルのLL(1)分析した場合、文法LL(1)文法属していない競合があります

完全なアルゴリズムの最初のセット:

 

 一般的な計算LL(1)解析テーブル注:

 

 NULLABLE集:

 

 NULLABLEセット算出処理:

 

 FOLLOWセットは、計算値:

 

 LL(1)プロセス分析表を探している: - LLを求めている>(FIRSTしてくださいセットを-----> ------- -------要件は、要件がFOLLOW> Set要求のFIRST_Sを設定> NULLABLEを設定しました1)分析表(競合する可能性があります)

建設LL(1)分析表:

LL(1)構文解析LL(1)分析表について

解決は、LL(1)分析表を競合します。

1、左再帰、再帰的と右ターンの排除

 間接的な左再帰を排除します:

               

図2は、左が共通因子を抽出しました。

 

 

 

 

また、シフトとして知られているボトムアップ解析、 - アッセイ(上から下右端導出に逆のプロセス)を減らします。

 

      

 

分析手順:

      

おすすめ

転載: www.cnblogs.com/lq13035130506/p/12048784.html