タグ

ブックマーク / qiita.com/knoguchi (1)

  • Pythonでコンパイラ: PL/0抽象構文木(AST) - Qiita

    今回の目標 前回はparse treeの作成に必要なpyparsingの機能を理解しました。今回は3番の抽象構文木(AST)生成を行います。 パーサーでトークンに分解する。 トークンから構文木をつくる方法、式の構文木の作成 setParseAction()を使って抽象構文木(AST)を生成 <- 今ココ ASTノードを辿ってコードを生成する。 ASTノード ノードを定義するにあたっては次の点に注意します。 ASTノードはpyparsingの実装から切り離す。 ツリーの探索が簡単にできるようする。具体的には共通のベースクラスを持たせる。 ノードがコード生成の最小単位であるから、一つのノードの役割を大きくしない。 では実装です。pl0_nodes.pyというファイルを新規に作成します。このファイルではpyparsingはインポートしません。ベースクラスはprintしたときに、クラス名とフィール

    Pythonでコンパイラ: PL/0抽象構文木(AST) - Qiita
  • 1