summaryrefslogtreecommitdiff
path: root/test/trans.d/case/patact_java.rl
diff options
context:
space:
mode:
Diffstat (limited to 'test/trans.d/case/patact_java.rl')
-rw-r--r--test/trans.d/case/patact_java.rl123
1 files changed, 123 insertions, 0 deletions
diff --git a/test/trans.d/case/patact_java.rl b/test/trans.d/case/patact_java.rl
new file mode 100644
index 00000000..7ff06d11
--- /dev/null
+++ b/test/trans.d/case/patact_java.rl
@@ -0,0 +1,123 @@
+/*
+ * @LANG: java
+ * @GENERATED: true
+ */
+
+
+class patact_java
+{
+char comm ;
+int top ;
+int stack [] = new int[32];
+int
+ ts ;
+int
+ te ;
+int act ;
+int value ;
+
+%%{
+ machine patact;
+
+ other := |*
+ [a-z]+ => {System.out.print( "word\n" );
+};
+ [0-9]+ => {System.out.print( "num\n" );
+};
+ [\n ] => {System.out.print( "space\n" );
+};
+ *|;
+
+ exec_test := |*
+ [a-z]+ => {System.out.print( "word (w/lbh)\n" );
+fexec te-1;fgoto other;};
+ [a-z]+ ' foil' => {System.out.print( "word (c/lbh)\n" );
+};
+ [\n ] => {System.out.print( "space\n" );
+};
+ '22' => {System.out.print( "num (w/switch)\n" );
+};
+ [0-9]+ => {System.out.print( "num (w/switch)\n" );
+fexec te-1;fgoto other;};
+ [0-9]+ ' foil' => {System.out.print( "num (c/switch)\n" );
+};
+ '!';# => { print_str "immdiate\n"; fgoto exec_test; };
+ *|;
+
+ semi := |*
+ ';' => {System.out.print( "in semi\n" );
+fgoto main;};
+ *|;
+
+ main := |*
+ [a-z]+ => {System.out.print( "word (w/lbh)\n" );
+fhold;fgoto other;};
+ [a-z]+ ' foil' => {System.out.print( "word (c/lbh)\n" );
+};
+ [\n ] => {System.out.print( "space\n" );
+};
+ '22' => {System.out.print( "num (w/switch)\n" );
+};
+ [0-9]+ => {System.out.print( "num (w/switch)\n" );
+fhold;fgoto other;};
+ [0-9]+ ' foil' => {System.out.print( "num (c/switch)\n" );
+};
+ ';' => {System.out.print( "going to semi\n" );
+fhold;fgoto semi;};
+ '!' => {System.out.print( "immdiate\n" );
+fgoto exec_test;};
+ *|;
+}%%
+
+
+
+%% write data;
+int cs;
+
+void init()
+{
+ %% write init;
+}
+
+void exec( char data[], int len )
+{
+ char buffer [] = new char[1024];
+ int blen = 0;
+ int p = 0;
+ int pe = len;
+
+ int eof = len;
+ String _s;
+ %% write exec;
+}
+
+void finish( )
+{
+ if ( cs >= patact_first_final )
+ System.out.println( "ACCEPT" );
+ else
+ System.out.println( "FAIL" );
+}
+
+static final String inp[] = {
+"abcd foix\n",
+"abcd\nanother\n",
+"123 foix\n",
+"!abcd foix\n",
+"!abcd\nanother\n",
+"!123 foix\n",
+";",
+};
+
+static final int inplen = 7;
+
+public static void main (String[] args)
+{
+ patact_java machine = new patact_java();
+ for ( int i = 0; i < inplen; i++ ) {
+ machine.init();
+ machine.exec( inp[i].toCharArray(), inp[i].length() );
+ machine.finish();
+ }
+}
+}