summaryrefslogtreecommitdiff
path: root/test/racc/bench.y
diff options
context:
space:
mode:
Diffstat (limited to 'test/racc/bench.y')
-rw-r--r--test/racc/bench.y36
1 files changed, 36 insertions, 0 deletions
diff --git a/test/racc/bench.y b/test/racc/bench.y
new file mode 100644
index 0000000000..c6ba136201
--- /dev/null
+++ b/test/racc/bench.y
@@ -0,0 +1,36 @@
+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