39603d60f1e7245a1e7507ebc6a164d06d9611d3
[external/ragel.git] / test / export3.rl
1 #
2 # @LANG: ruby
3 # @ALLOW_GENFLAGS: -T0
4 #
5
6 %%{
7         machine test;
8
9         export c1 = 'c';
10         export c2 = 'z';
11         export c3 = 't';
12
13         commands := (
14                 c1 . digit* '\n' @{ puts "c1"; } |
15                 c2 . alpha* '\n' @{ puts "c2"; }|
16                 c3 . '.'* '\n' @{ puts "c3"; }
17         )*;
18                         
19         main := any*;
20 }%%
21
22 %% write exports;
23 %% write data;
24
25 def run_machine( data )
26         p = 0;
27         pe = data.length
28         cs = 0
29         cs = 0
30         val = 0;
31         neg = false;
32
33         cs = test_en_commands;
34         %% write exec;
35         %% write eof;
36         if  cs >= test_first_final
37                 puts "ACCEPT"
38         else
39                 puts "FAIL"
40         end
41 end
42
43 inp = [
44                 test_ex_c1, ?1, ?2, ?\n, 
45                 test_ex_c2, ?a, ?b, ?\n, 
46                 test_ex_c3, ?., ?., ?\n
47 ]
48
49 run_machine( inp );
50
51 =begin _____OUTPUT_____
52 c1
53 c2
54 c3
55 ACCEPT
56 =end _____OUTPUT_____