私はC#インタープリタを学習体験のためにゼロから作成していますが、これまでのところすべてがスムーズに行われています。私はすべての種類のトークンをパーサーに出力する、完全に機能するC#レクサーを持っています。どのようにトークンを解析するのかは分かりますが、どのようにAST(抽象構文ツリー)を構造化すべきかはわかりません。抽象構文木の一部を設計するには?
たとえば、私は簡単なコードの断片がある場合:
using System.Xml;
ツリーが解析されたときのように何を見てでしょうか?
このようにします。
UsingDirective
Identifier(System)
Identifier(Xml)
などですか?
UsingDirective
Identifier(System)
Identifier(Xml)
私は/他/ else文は、1つのステートメントで組み合わせた変数の宣言/代入(I int型ならばならば、私は、彼らにドットでの識別子のようなものを構築できる方法をいくつかの提案および/または例を得ることができれば= 0;)、関数の定義などに役立ちます。私はちょうど木をどのように構造化するかのより良い考えを得る必要があり、私は自分自身で残りの部分を把握することができます。ありがとう。
C#のすべてを実装したいと思えば、それは長い学習経験になるでしょう: – svick
私はクラスライブラリの大半を省いています。基本的なクラス/関数定義、変数の作成/使用法、関数呼び出しのために実装する必要のあるものを実装しています。 –