summaryrefslogtreecommitdiff
path: root/test/trans.d/case/erract2.rl
diff options
context:
space:
mode:
Diffstat (limited to 'test/trans.d/case/erract2.rl')
-rw-r--r--test/trans.d/case/erract2.rl90
1 files changed, 90 insertions, 0 deletions
diff --git a/test/trans.d/case/erract2.rl b/test/trans.d/case/erract2.rl
new file mode 100644
index 00000000..f6007151
--- /dev/null
+++ b/test/trans.d/case/erract2.rl
@@ -0,0 +1,90 @@
+/*
+ * @LANG: indep
+ * @NEEDS_EOF: yes
+ *
+ * Test error actions.
+ */
+
+%%{
+ machine erract;
+
+ action err_start { print_str "err_start\n"; }
+ action err_all { print_str "err_all\n"; }
+ action err_middle { print_str "err_middle\n"; }
+ action err_out { print_str "err_out\n"; }
+
+ action eof_start { print_str "eof_start\n"; }
+ action eof_all { print_str "eof_all\n"; }
+ action eof_middle { print_str "eof_middle\n"; }
+ action eof_out { print_str "eof_out\n"; }
+
+ main := ( 'hello'
+ >err err_start $err err_all <>err err_middle %err err_out
+ >eof eof_start $eof eof_all <>eof eof_middle %eof eof_out
+ ) '\n';
+}%%
+
+##### INPUT #####
+""
+"h"
+"x"
+"he"
+"hx"
+"hel"
+"hex"
+"hell"
+"helx"
+"hello"
+"hellx"
+"hello\n"
+"hellox"
+##### OUTPUT #####
+err_start
+eof_start
+err_all
+eof_all
+FAIL
+err_all
+err_middle
+eof_all
+eof_middle
+FAIL
+err_start
+err_all
+FAIL
+err_all
+err_middle
+eof_all
+eof_middle
+FAIL
+err_all
+err_middle
+FAIL
+err_all
+err_middle
+eof_all
+eof_middle
+FAIL
+err_all
+err_middle
+FAIL
+err_all
+err_middle
+eof_all
+eof_middle
+FAIL
+err_all
+err_middle
+FAIL
+err_all
+err_out
+eof_all
+eof_out
+FAIL
+err_all
+err_middle
+FAIL
+ACCEPT
+err_all
+err_out
+FAIL