タグ

ブックマーク / memememomo.hatenablog.com (1)

  • 抽象構文木構築 - メメメモモ

    下記のスクリプトは、nの階乗を求めることを想定しています。 n = 5; x = 1; L n x = x * n; n = n - 1; x; このスクリプトを構文木の形で表現して実行するプログラムを書きました。 構文木は下記のようなものになります。 プログラムは、木の節点に対して一つのクラスを定義して書いていきました。 節点の種類とクラスの対応付けは下記のようなものにしました。 四則演算(Add, Sub, Mul, Div) 定数(Lit) 変数(Var) 代入(Assign) セミコロン(Seq) ループ(Loop) プログラムは下記のようになります。 package Node; use strict; use warnings; my %vars; sub new { my $class = shift; my ($l, $r) = @_; bless { left => $l,

    抽象構文木構築 - メメメモモ
  • 1