言語のカスタム実装 - 解釈モード(II)

18.2文法規則および抽象構文木

       通訳パターンは、言語の文を表現する方法を、簡単な言語の文法を定義し、どのようにこれらの文章を解釈する方法について説明します。正式な分析と解釈モード構造前に、言語の文法規則を表し、そしてどのように抽象構文木を構築する方法を学びましょう。

       加えて、前述の/の減算インタプリタ、入力式の各々 、例えば、「+ 1 + 2 1 + 3--4は」三個の言語単位を含む、あなたが定義するには、次の文法規則を使用することができます。

表現:: =値| 操作

操作:: =式 '+' 式| 式「 - 」式

値:: =整数//整数値

       3つのステートメント、前記式で表される第1の実施形態の組成物を含む文法規則及び動作は後者の2つの言語単位で定義され、定義される各SQL文の文字列操作値は言語構造または言語単位をいいます、記号「:: =」とは、言語単位の左側には、対応する言語ユニットと非終端発現に対する発現の右端によって記述と定義されることを意味する「と定義されます」。このルールとして動作非ターミネーターの発現を、その構成要素は、依然として、表現することができるさらに分解することができ、値はその構成要素はもはや分解することができる言語の基本単位であり、ターミネーター式です。

       「一部の記号は、使用して、平均の異なるもの、に使用される文法ルールの定義に使用することができる|」を用いて、表すか、または「{」および「}を」を使用して、組み合わせを表し、「*」ことを示す0、請求使用の頻度、またはそれ以上の回数等「最高シンボルが「または」関係である|」は、文法規則として、「BOOLVALUE :: = 0 | 1」ターミネーター発現示しBOOLVALUE値があってもよい0または1

       文法規則を定義するために使用される言語に加えて、解釈モードとも呼ばれることによって達成することができる抽象構文木(抽象構文木、AST)は、グラフィカル各抽象構文木に対応し、直感的に言語設定を表されていますそのような添加物として言語の例として、/表現言語文の減算「1 + 2 + 3--4 + 1」によって示されるように18-2に示す抽象構文木を表現します。

18-2  ASTの概略図

       上式で終了させることができる抽象構文木に及び発現非終端の操作複合文から成る、各インスタンスの言語の文法規則は、抽象構文ツリーとして表すことができ、すなわち、各々が特定の文であってもよいです、図類似18-2表すために示さ抽象構文木、ツリーのリーフノードではなく、エンドとして図中ターミネータークラスインスタンスの発現は、非リーフノード上の発現のクラスのインスタンスとして、それらは、ターミネーターもよいですその子ノードの一例として、端末と非終端記号の部分式を含む発現及びクラスの例抽象構文木は、抽象構文木の分析を通じて、ターミネータはベースの言語と非終端クラスを識別することができ、複雑な文章を作成する方法について説明します。

公開された25元の記事 ウォンの賞賛1 ビュー774

おすすめ

転載: blog.csdn.net/qq_42770949/article/details/104914669