summaryrefslogtreecommitdiff
path: root/test/trans.d/case/scan2_crack.rl
diff options
context:
space:
mode:
Diffstat (limited to 'test/trans.d/case/scan2_crack.rl')
-rw-r--r--test/trans.d/case/scan2_crack.rl62
1 files changed, 62 insertions, 0 deletions
diff --git a/test/trans.d/case/scan2_crack.rl b/test/trans.d/case/scan2_crack.rl
new file mode 100644
index 00000000..dcc88144
--- /dev/null
+++ b/test/trans.d/case/scan2_crack.rl
@@ -0,0 +1,62 @@
+//
+// @LANG: crack
+// @GENERATED: true
+//
+
+import crack.io cout;
+import crack.lang Buffer;
+
+int
+ ts;
+int
+ te;
+int act;
+int token;
+
+%%{
+ machine scanner;
+
+ # Warning: changing the patterns or the input string will affect the
+ # coverage of the scanner action types.
+ main := |*
+ 'a' => {cout.format( "pat1\n" );
+};
+
+ [ab]+ . 'c' => {cout.format( "pat2\n" );
+};
+
+ any => {cout.format( "any\n" );
+};
+ *|;
+}%%
+
+
+
+%% write data;
+
+void m( String s )
+{
+ byteptr data = s.buffer;
+ int p = 0;
+ int pe = s.size;
+ int cs;
+ String buffer;
+ int eof = pe;
+
+ %% write init;
+ %% write exec;
+
+ if ( cs >= scanner_first_final ) {
+ cout `ACCEPT\n`;
+ }
+ else {
+ cout `FAIL\n`;
+ }
+}
+
+void main()
+{
+ m( "a" );
+}
+
+main();