summaryrefslogtreecommitdiff
path: root/test/trans.d/case/ncall1_cs.rl
diff options
context:
space:
mode:
Diffstat (limited to 'test/trans.d/case/ncall1_cs.rl')
-rw-r--r--test/trans.d/case/ncall1_cs.rl79
1 files changed, 79 insertions, 0 deletions
diff --git a/test/trans.d/case/ncall1_cs.rl b/test/trans.d/case/ncall1_cs.rl
new file mode 100644
index 00000000..91abd9bb
--- /dev/null
+++ b/test/trans.d/case/ncall1_cs.rl
@@ -0,0 +1,79 @@
+/*
+ * @LANG: csharp
+ * @GENERATED: true
+ */
+
+using System;
+// Disables lots of warnings that appear in the test suite
+#pragma warning disable 0168, 0169, 0219, 0162, 0414
+namespace Test {
+class Test
+{
+int top;
+int [] stack = new int [32];
+int target;
+
+%%{
+ machine ncall1;
+
+ unused := 'unused';
+
+ one := 'one' @{Console.Write( "one\n" );fnret;};
+
+ two := 'two' @{Console.Write( "two\n" );fnret;};
+
+ main := (
+ '1' @{target = fentry(one);
+fncall *target;}
+ | '2' @{target = fentry(two);
+fncall *target;}
+ | '\n'
+ )*;
+}%%
+
+
+%% write data;
+int cs;
+
+void init()
+{
+ %% write init;
+}
+
+void exec( char[] data, int len )
+{
+ int p = 0;
+ int pe = len;
+ int eof = len;
+ string _s;
+ char [] buffer = new char [1024];
+ int blen = 0;
+ %% write exec;
+}
+
+void finish( )
+{
+ if ( cs >= ncall1_first_final )
+ Console.WriteLine( "ACCEPT" );
+ else
+ Console.WriteLine( "FAIL" );
+}
+
+static readonly string[] inp = {
+"1one2two1one\n",
+};
+
+
+static readonly int inplen = 1;
+
+public static void Main (string[] args)
+{
+ Test machine = new Test();
+ for ( int i = 0; i < inplen; i++ ) {
+ machine.init();
+ machine.exec( inp[i].ToCharArray(), inp[i].Length );
+ machine.finish();
+ }
+}
+}
+}