1/*
2 * -*- tcl -*-
3 * Parsing Expression Grammar 'TEMPLATE'.
4 * Generated for unknown, from file 'TEST'
5 */
6
7/*
8 * Declaring the parse functions
9 */
10
11<<attributes>> void <<ns>>sym_Expression (<<STATE>> <<state>>);
12<<attributes>> void <<ns>>sym_Function (<<STATE>> <<state>>);
13<<attributes>> void <<ns>>sequence_9 (<<STATE>> <<state>>);
14<<attributes>> void <<ns>>sym_Sinus (<<STATE>> <<state>>);
15
16/*
17 * Precomputed table of strings (symbols, error messages, etc.).
18 */
19
20static char const* <<string-table>> [8] = {
21    /*        0 = */   "n Expression",
22    /*        1 = */   "Expression",
23    /*        2 = */   "n Function",
24    /*        3 = */   "Function",
25    /*        4 = */   "str 'sin\50'",
26    /*        5 = */   "t \51",
27    /*        6 = */   "n Sinus",
28    /*        7 = */   "Sinus"
29};
30
31/*
32 * Grammar Start Expression
33 */
34
35<<attributes>> void <<ns>><<main>> (<<STATE>> <<state>>) { <<prelude>>
36    <<self>> <<ns>>sym_Expression (<<state>>);
37    return;
38}
39
40/*
41 * value Symbol 'Expression'
42 */
43
44<<attributes>> void <<ns>>sym_Expression (<<STATE>> <<state>>) { <<prelude>>
45   /*
46    * (Function)
47    */
48
49    if (rde_param_i_symbol_start_d (<<state>>, 1)) return ;
50    <<self>> <<ns>>sym_Function (<<state>>);
51    rde_param_i_symbol_done_d_reduce (<<state>>, 1, 0);
52    return;
53}
54
55/*
56 * value Symbol 'Function'
57 */
58
59<<attributes>> void <<ns>>sym_Function (<<STATE>> <<state>>) { <<prelude>>
60   /*
61    * (Sinus)
62    */
63
64    if (rde_param_i_symbol_start_d (<<state>>, 3)) return ;
65    <<self>> <<ns>>sym_Sinus (<<state>>);
66    rde_param_i_symbol_done_d_reduce (<<state>>, 3, 2);
67    return;
68}
69
70/*
71 * value Symbol 'Sinus'
72 */
73
74<<attributes>> void <<ns>>sym_Sinus (<<STATE>> <<state>>) { <<prelude>>
75   /*
76    * x
77    *     "sin\("
78    *     (Expression)
79    *     '\)'
80    */
81
82    if (rde_param_i_symbol_start_d (<<state>>, 7)) return ;
83    <<self>> <<ns>>sequence_9 (<<state>>);
84    rde_param_i_symbol_done_d_reduce (<<state>>, 7, 6);
85    return;
86}
87
88<<attributes>> void <<ns>>sequence_9 (<<STATE>> <<state>>) { <<prelude>>
89   /*
90    * x
91    *     "sin\("
92    *     (Expression)
93    *     '\)'
94    */
95
96    rde_param_i_state_push_void (<<state>>);
97    rde_param_i_next_str (<<state>>, "sin\50", 4);
98    if (rde_param_i_seq_void2value(<<state>>)) return;
99    <<self>> <<ns>>sym_Expression (<<state>>);
100    if (rde_param_i_seq_value2value(<<state>>)) return;
101    rde_param_i_next_char (<<state>>, "\51", 5);
102    rde_param_i_state_merge_value (<<state>>);
103    return;
104}
105
106/*
107 */
108