summaryrefslogtreecommitdiff
path: root/test/racc/bench.y
diff options
context:
space:
mode:
authorHiroshi SHIBATA <hsbt@ruby-lang.org>2019-05-13 21:25:22 +0900
committerHiroshi SHIBATA <hsbt@ruby-lang.org>2019-06-19 18:17:25 +0900
commit1a2546c2be839baa7d0a50dc056d4d6987d26852 (patch)
tree19fef5d8b8d96452a51ab68e8093ea895192ca27 /test/racc/bench.y
parentcbe06cd3501fdadd0e6e63094da2973484d70b0b (diff)
Backport racc-1.4.15 from upstream.
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