ruby/test/racc/bench.y

37 строки
463 B
Plaintext

class BenchmarkParser
rule
target: a a a a a a a a a a;
a: b b b b b b b b b b;
b: c c c c c c c c c c;
c: d d d d d d d d d d;
d: e e e e e e e e e e;
end
---- inner
def initialize
@old = [ :e, 'e' ]
@i = 0
end
def next_token
return [false, '$'] if @i >= 10_0000
@i += 1
@old
end
def parse
do_parse
end
---- footer
require 'benchmark'
Benchmark.bm do |x|
x.report { BenchmarkParser.new.parse }
end