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