summaryrefslogtreecommitdiff
path: root/test/racc/assets/yyerr.y
diff options
context:
space:
mode:
Diffstat (limited to 'test/racc/assets/yyerr.y')
-rw-r--r--test/racc/assets/yyerr.y46
1 files changed, 46 insertions, 0 deletions
diff --git a/test/racc/assets/yyerr.y b/test/racc/assets/yyerr.y
new file mode 100644
index 0000000000..9faae89a79
--- /dev/null
+++ b/test/racc/assets/yyerr.y
@@ -0,0 +1,46 @@
+#
+# yyerror/yyerrok/yyaccept test
+#
+
+class A
+rule
+
+target: a b c
+
+a:
+ {
+ yyerror
+ raise ArgumentError, "yyerror failed"
+ }
+ | error
+
+b:
+ {
+ yyerrok
+ }
+
+c:
+ {
+ yyaccept
+ raise ArgumentError, "yyaccept failed"
+ }
+
+end
+
+---- inner
+
+ def parse
+ do_parse
+ end
+
+ def next_token
+ [false, '$end']
+ end
+
+ def on_error( *args )
+ $stderr.puts "on_error called: args=#{args.inspect}"
+ end
+
+---- footer
+
+A.new.parse