$: << "../lib" require 'rpeg' calc = RPeg.load File.read(File.join(File.dirname(__FILE__), "calc.peg")) File.open("o", "w") { |f|f << calc.compile2ruby("Calc < RPeg") } eval calc.compile2ruby("Calc < RPeg") puts calc.pretty_print (0..2000).step(10) { |i| t = Time.now 10.times { Calc.new.parse("1+#{'1+'*i}1+1+1+1") } puts "#{i} #{Time.now-t}" STDOUT.flush }