A fix to the documentation makefile from John D. Mitchell.
[ragel.git] / test / import1.rl
blobe721f56282ea86f8eeb813e4f130b9c676777a5c
1 /*
2  * @LANG: c
3  */
5 #include <stdio.h>
7 char *foo = "foo";
9 char b = 98;
10 char a = 97;
11 char r = 114;
13 #define SP 32
14 #define NL '\n'
16 %%{
17         machine tmp;
18         import "import1.rl";
20         foobar = 
21                 foo @{printf("foo\n"); } |
22                 b a r @{printf("bar\n");};
24         main := ( foobar SP foobar NL )*;
25 }%%
27 %% write data;
29 int cs;
31 void exec_str( char *p, int len )
33         char *pe = p + len;
34         %% write exec;
37 void exec_c( char c )
39         exec_str( &c, 1 );
42 int main()
44         %% write init;
46         exec_str( foo, 3 );
47         exec_c( SP );
48         exec_c( b );
49         exec_c( a );
50         exec_c( r );
51         exec_c( NL );
53         exec_c( b );
54         exec_c( a );
55         exec_c( r );
56         exec_c( SP );
57         exec_str( foo, 3 );
58         exec_c( NL );
60         if ( cs < tmp_first_final )
61                 printf("FAIL\n");
62         else
63                 printf("ACCEPT\n");
65         return 0;
67 #ifdef _____OUTPUT_____
68 foo
69 bar
70 bar
71 foo
72 ACCEPT
73 #endif