Removed arg passing from frontend to backend functions.
[ragel.git] / test / cond1.rl
blob7c3ffffa7874f65387586788cb506909b457bd3e
1 /* 
2  * @LANG: indep
3  * @ALLOW_GENFLAGS: -T0 -T1 -G0 -G1 -G2
4  */
5 bool i;
6 bool j;
7 bool k;
8 %%
10 %%{
11         machine foo;
13         action c1 {i}
14         action c2 {j}
15         action c3 {k}
16         action one { prints "  one\n";}
17         action two { prints "  two\n";}
18         action three { prints "  three\n";}
20         action seti { if ( fc == 48 ) i = false; else i = true; }
21         action setj { if ( fc == 48 ) j = false; else j = true; }
22         action setk { if ( fc == 48 ) k = false; else k = true; }
24         action break {fbreak;}
26         one = 'a' 'b' when c1 'c' @one;
27         two = 'a'* 'b' when c2 'c' @two;
28         three = 'a'+ 'b' when c3 'c' @three;
30         main := 
31                 [01] @seti
32                 [01] @setj
33                 [01] @setk
34                 ( one | two | three ) '\n' @break;
35         
36 }%%
38 /* _____INPUT_____ 
39 "000abc\n"
40 "100abc\n"
41 "010abc\n"
42 "110abc\n"
43 "001abc\n"
44 "101abc\n"
45 "011abc\n"
46 "111abc\n"
47 _____INPUT_____ */
48 /* _____OUTPUT_____
49 FAIL
50   one
51 ACCEPT
52   two
53 ACCEPT
54   one
55   two
56 ACCEPT
57   three
58 ACCEPT
59   one
60   three
61 ACCEPT
62   two
63   three
64 ACCEPT
65   one
66   two
67   three
68 ACCEPT
69 _____OUTPUT_____ */