概略 評価器の仕組みそれ自体については前章までで既に完結している。本章ではそ の全てにパーサまでを加えた「広義の評価器」としての全体像を検証しよう。 対象となるのはeval・Module#module_eval・Object#instance_evalの三つであ る。 eval evalについては既に話したが、ここではより細かい話をしようと思う。 evalを使うと実行時にその場で文字列をコンパイルし、評価することができる。 返り値はそのプログラムの最後の式の値だ。 p eval("1 + 1") # 2 evalする文字列の中からはそのスコープの変数も参照できる。 lvar = 5 @ivar = 6 p eval("lvar + @ivar") # 11 ここまで読んできた読者なら「そのスコープ」という言葉を安直に読み飛ばせ なくなっているだろう。例えば定数の「スコープ」はどうなっている