タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

Pythonとparserとschemeに関するikeikeikeikeのブックマーク (2)

  • Pythonで手抜きScheme(その2) - † houseim.log †

    Python, Ply1日経って昨日のエントリを読み返してみると、Symbolってstrを継承すれば良いよねNumberもintを継承すれば良いよねAddProcedureとかビルドインプロシージャもProcedureの一形態に過ぎないよねSchemeのソースコードを1つの文字列として渡したいよねなんてツッコミたくなってきたので、ちょっと修正する。 SymbolとNumberSymbolは文字列の比較、Numberは四則演算が出来れば良いのだから、Pythonのstrとintが元々持ってる機能をそのまま使えるように、それぞれから継承させる。 class Symbol(str): def eval(self, env): value = env.get(self) while isinstance(value, Symbol): value = value.eval(env) return

  • Pythonで手抜きScheme - † houseim.log †

    Python, Ply前回から既に4ヶ月。その間にJParsecへの熱はすっかりさめてしまった...。 もっとお手軽なものはないかということで、今回はPLY (Python Lex-Yacc)を使ってみた。 まずはASTのみ前回と同じじゃ面白くないからSchemeっぽく書けるようにしてみる。例えば、"(+ 1 2 3)"と入力したら"6"と出力される感じ。で、そのための土台となるASTを組み立てる部品を用意する。PLYの出番はまだ。 # シンボル class Symbol: def __init__(self, key): self.key = key def __str__(self): return self.key def eval(self, env): value = env.get(self) while isinstance(value, Symbol): value = v

  • 1