1 /* Driver template for the LEMON parser generator.
2 ** The author disclaims copyright to this source code.
3 */
4 /* First off, code is include which follows the "include" declaration
5 ** in the input file. */
6 #include <stdio.h>
7 #line 42 "parser.php5.lemon"
8
9 #include "parser.php5.inc.h"
10
11 #line 12 "parser.php5.c"
12 /* Next is all token values, in a form suitable for use by makeheaders.
13 ** This section will be null unless lemon is run with the -m switch.
14 */
15 /*
16 ** These constants (all generated automatically by the parser generator)
17 ** specify the various kinds of tokens (terminals) that the parser
18 ** understands.
19 **
20 ** Each symbol here is a terminal symbol in the grammar.
21 */
22 /* Make sure the INTERFACE macro is defined.
23 */
24 #ifndef INTERFACE
25 # define INTERFACE 1
26 #endif
27 /* The next thing included is series of defines which control
28 ** various aspects of the generated parser.
29 ** YYCODETYPE is the data type used for storing terminal
30 ** and nonterminal numbers. "unsigned char" is
31 ** used if there are fewer than 250 terminals
32 ** and nonterminals. "int" is used otherwise.
33 ** YYNOCODE is a number of type YYCODETYPE which corresponds
34 ** to no legal terminal or nonterminal number. This
35 ** number is used to fill in empty slots of the hash
36 ** table.
37 ** YYFALLBACK If defined, this indicates that one or more tokens
38 ** have fall-back values which should be used if the
39 ** original value of the token will not parse.
40 ** YYACTIONTYPE is the data type used for storing terminal
41 ** and nonterminal numbers. "unsigned char" is
42 ** used if there are fewer than 250 rules and
43 ** states combined. "int" is used otherwise.
44 ** phvolt_TOKENTYPE is the data type used for minor tokens given
45 ** directly to the parser from the tokenizer.
46 ** YYMINORTYPE is the data type used for all minor tokens.
47 ** This is typically a union of many types, one of
48 ** which is phvolt_TOKENTYPE. The entry in the union
49 ** for base tokens is called "yy0".
50 ** YYSTACKDEPTH is the maximum depth of the parser's stack.
51 ** phvolt_ARG_SDECL A static variable declaration for the %extra_argument
52 ** phvolt_ARG_PDECL A parameter declaration for the %extra_argument
53 ** phvolt_ARG_STORE Code to store %extra_argument into yypParser
54 ** phvolt_ARG_FETCH Code to extract %extra_argument from yypParser
55 ** YYNSTATE the combined number of states.
56 ** YYNRULE the number of rules in the grammar
57 ** YYERRORSYMBOL is the code number of the error symbol. If not
58 ** defined, then do no error processing.
59 */
60 #define YYCODETYPE unsigned char
61 #define YYNOCODE 131
62 #define YYACTIONTYPE unsigned short int
63 #define phvolt_TOKENTYPE phvolt_parser_token*
64 typedef union {
65 phvolt_TOKENTYPE yy0;
66 zval* yy228;
67 int yy261;
68 } YYMINORTYPE;
69 #define YYSTACKDEPTH 100
70 #define phvolt_ARG_SDECL phvolt_parser_status *status;
71 #define phvolt_ARG_PDECL ,phvolt_parser_status *status
72 #define phvolt_ARG_FETCH phvolt_parser_status *status = yypParser->status
73 #define phvolt_ARG_STORE yypParser->status = status
74 #define YYNSTATE 365
75 #define YYNRULE 158
76 #define YYERRORSYMBOL 89
77 #define YYERRSYMDT yy261
78 #define YY_NO_ACTION (YYNSTATE+YYNRULE+2)
79 #define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1)
80 #define YY_ERROR_ACTION (YYNSTATE+YYNRULE)
81
82 /* Next are that tables used to determine what action to take based on the
83 ** current state and lookahead token. These tables are used to implement
84 ** functions that take a state number and lookahead value and return an
85 ** action integer.
86 **
87 ** Suppose the action integer is N. Then the action is determined as
88 ** follows
89 **
90 ** 0 <= N < YYNSTATE Shift N. That is, push the lookahead
91 ** token onto the stack and goto state N.
92 **
93 ** YYNSTATE <= N < YYNSTATE+YYNRULE Reduce by rule N-YYNSTATE.
94 **
95 ** N == YYNSTATE+YYNRULE A syntax error has occurred.
96 **
97 ** N == YYNSTATE+YYNRULE+1 The parser accepts its input.
98 **
99 ** N == YYNSTATE+YYNRULE+2 No such action. Denotes unused
100 ** slots in the yy_action[] table.
101 **
102 ** The action table is constructed as a single large table named yy_action[].
103 ** Given state S and lookahead X, the action is computed as
104 **
105 ** yy_action[ yy_shift_ofst[S] + X ]
106 **
107 ** If the index value yy_shift_ofst[S]+X is out of range or if the value
108 ** yy_lookahead[yy_shift_ofst[S]+X] is not equal to X or if yy_shift_ofst[S]
109 ** is equal to YY_SHIFT_USE_DFLT, it means that the action is not in the table
110 ** and that yy_default[S] should be used instead.
111 **
112 ** The formula above is for computing the action when the lookahead is
113 ** a terminal symbol. If the lookahead is a non-terminal (as occurs after
114 ** a reduce action) then the yy_reduce_ofst[] array is used in place of
115 ** the yy_shift_ofst[] array and YY_REDUCE_USE_DFLT is used in place of
116 ** YY_SHIFT_USE_DFLT.
117 **
118 ** The following are the tables generated in this section:
119 **
120 ** yy_action[] A single table containing all actions.
121 ** yy_lookahead[] A table containing the lookahead for each entry in
122 ** yy_action. Used to detect hash collisions.
123 ** yy_shift_ofst[] For each state, the offset into yy_action for
124 ** shifting terminals.
125 ** yy_reduce_ofst[] For each state, the offset into yy_action for
126 ** shifting non-terminals after a reduce.
127 ** yy_default[] Default action for each state.
128 */
129 static YYACTIONTYPE yy_action[] = {
130 /* 0 */ 85, 95, 111, 63, 55, 57, 69, 65, 67, 75,
131 /* 10 */ 77, 79, 81, 71, 73, 51, 49, 53, 46, 43,
132 /* 20 */ 59, 92, 61, 87, 90, 91, 99, 83, 365, 245,
133 /* 30 */ 87, 90, 91, 99, 83, 300, 51, 49, 53, 46,
134 /* 40 */ 43, 59, 92, 61, 87, 90, 91, 99, 83, 33,
135 /* 50 */ 110, 299, 194, 215, 198, 85, 95, 196, 63, 55,
136 /* 60 */ 57, 69, 65, 67, 75, 77, 79, 81, 71, 73,
137 /* 70 */ 51, 49, 53, 46, 43, 59, 92, 61, 87, 90,
138 /* 80 */ 91, 99, 83, 331, 176, 85, 95, 195, 63, 55,
139 /* 90 */ 57, 69, 65, 67, 75, 77, 79, 81, 71, 73,
140 /* 100 */ 51, 49, 53, 46, 43, 59, 92, 61, 87, 90,
141 /* 110 */ 91, 99, 83, 35, 265, 85, 95, 39, 63, 55,
142 /* 120 */ 57, 69, 65, 67, 75, 77, 79, 81, 71, 73,
143 /* 130 */ 51, 49, 53, 46, 43, 59, 92, 61, 87, 90,
144 /* 140 */ 91, 99, 83, 347, 342, 92, 61, 87, 90, 91,
145 /* 150 */ 99, 83, 338, 174, 266, 197, 198, 88, 85, 95,
146 /* 160 */ 139, 63, 55, 57, 69, 65, 67, 75, 77, 79,
147 /* 170 */ 81, 71, 73, 51, 49, 53, 46, 43, 59, 92,
148 /* 180 */ 61, 87, 90, 91, 99, 83, 118, 29, 85, 95,
149 /* 190 */ 140, 63, 55, 57, 69, 65, 67, 75, 77, 79,
150 /* 200 */ 81, 71, 73, 51, 49, 53, 46, 43, 59, 92,
151 /* 210 */ 61, 87, 90, 91, 99, 83, 134, 42, 85, 95,
152 /* 220 */ 503, 63, 55, 57, 69, 65, 67, 75, 77, 79,
153 /* 230 */ 81, 71, 73, 51, 49, 53, 46, 43, 59, 92,
154 /* 240 */ 61, 87, 90, 91, 99, 83, 46, 43, 59, 92,
155 /* 250 */ 61, 87, 90, 91, 99, 83, 321, 322, 323, 324,
156 /* 260 */ 325, 326, 504, 111, 144, 94, 309, 327, 146, 85,
157 /* 270 */ 95, 97, 63, 55, 57, 69, 65, 67, 75, 77,
158 /* 280 */ 79, 81, 71, 73, 51, 49, 53, 46, 43, 59,
159 /* 290 */ 92, 61, 87, 90, 91, 99, 83, 85, 95, 147,
160 /* 300 */ 63, 55, 57, 69, 65, 67, 75, 77, 79, 81,
161 /* 310 */ 71, 73, 51, 49, 53, 46, 43, 59, 92, 61,
162 /* 320 */ 87, 90, 91, 99, 83, 100, 503, 142, 142, 504,
163 /* 330 */ 107, 171, 129, 276, 287, 173, 107, 120, 137, 109,
164 /* 340 */ 145, 116, 120, 141, 141, 114, 105, 116, 120, 115,
165 /* 350 */ 85, 95, 180, 63, 55, 57, 69, 65, 67, 75,
166 /* 360 */ 77, 79, 81, 71, 73, 51, 49, 53, 46, 43,
167 /* 370 */ 59, 92, 61, 87, 90, 91, 99, 83, 187, 183,
168 /* 380 */ 85, 95, 26, 63, 55, 57, 69, 65, 67, 75,
169 /* 390 */ 77, 79, 81, 71, 73, 51, 49, 53, 46, 43,
170 /* 400 */ 59, 92, 61, 87, 90, 91, 99, 83, 192, 190,
171 /* 410 */ 85, 95, 213, 63, 55, 57, 69, 65, 67, 75,
172 /* 420 */ 77, 79, 81, 71, 73, 51, 49, 53, 46, 43,
173 /* 430 */ 59, 92, 61, 87, 90, 91, 99, 83, 100, 217,
174 /* 440 */ 220, 28, 93, 252, 165, 228, 214, 107, 218, 318,
175 /* 450 */ 120, 137, 143, 120, 120, 224, 120, 211, 128, 120,
176 /* 460 */ 259, 85, 95, 219, 63, 55, 57, 69, 65, 67,
177 /* 470 */ 75, 77, 79, 81, 71, 73, 51, 49, 53, 46,
178 /* 480 */ 43, 59, 92, 61, 87, 90, 91, 99, 83, 85,
179 /* 490 */ 95, 230, 63, 55, 57, 69, 65, 67, 75, 77,
180 /* 500 */ 79, 81, 71, 73, 51, 49, 53, 46, 43, 59,
181 /* 510 */ 92, 61, 87, 90, 91, 99, 83, 234, 262, 85,
182 /* 520 */ 95, 254, 63, 55, 57, 69, 65, 67, 75, 77,
183 /* 530 */ 79, 81, 71, 73, 51, 49, 53, 46, 43, 59,
184 /* 540 */ 92, 61, 87, 90, 91, 99, 83, 237, 268, 85,
185 /* 550 */ 95, 238, 63, 55, 57, 69, 65, 67, 75, 77,
186 /* 560 */ 79, 81, 71, 73, 51, 49, 53, 46, 43, 59,
187 /* 570 */ 92, 61, 87, 90, 91, 99, 83, 242, 271, 85,
188 /* 580 */ 95, 293, 63, 55, 57, 69, 65, 67, 75, 77,
189 /* 590 */ 79, 81, 71, 73, 51, 49, 53, 46, 43, 59,
190 /* 600 */ 92, 61, 87, 90, 91, 99, 83, 249, 274, 85,
191 /* 610 */ 95, 251, 63, 55, 57, 69, 65, 67, 75, 77,
192 /* 620 */ 79, 81, 71, 73, 51, 49, 53, 46, 43, 59,
193 /* 630 */ 92, 61, 87, 90, 91, 99, 83, 257, 333, 85,
194 /* 640 */ 95, 256, 63, 55, 57, 69, 65, 67, 75, 77,
195 /* 650 */ 79, 81, 71, 73, 51, 49, 53, 46, 43, 59,
196 /* 660 */ 92, 61, 87, 90, 91, 99, 83, 318, 349, 85,
197 /* 670 */ 95, 258, 63, 55, 57, 69, 65, 67, 75, 77,
198 /* 680 */ 79, 81, 71, 73, 51, 49, 53, 46, 43, 59,
199 /* 690 */ 92, 61, 87, 90, 91, 99, 83, 85, 95, 277,
200 /* 700 */ 63, 55, 57, 69, 65, 67, 75, 77, 79, 81,
201 /* 710 */ 71, 73, 51, 49, 53, 46, 43, 59, 92, 61,
202 /* 720 */ 87, 90, 91, 227, 83, 524, 1, 2, 286, 4,
203 /* 730 */ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
204 /* 740 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
205 /* 750 */ 25, 95, 281, 63, 55, 57, 69, 65, 67, 75,
206 /* 760 */ 77, 79, 81, 71, 73, 51, 49, 53, 46, 43,
207 /* 770 */ 59, 92, 61, 87, 90, 91, 99, 83, 63, 55,
208 /* 780 */ 57, 69, 65, 67, 75, 77, 79, 81, 71, 73,
209 /* 790 */ 51, 49, 53, 46, 43, 59, 92, 61, 87, 90,
210 /* 800 */ 91, 99, 83, 30, 286, 4, 5, 6, 7, 8,
211 /* 810 */ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
212 /* 820 */ 19, 20, 21, 22, 23, 24, 25, 36, 286, 4,
213 /* 830 */ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
214 /* 840 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
215 /* 850 */ 25, 55, 57, 69, 65, 67, 75, 77, 79, 81,
216 /* 860 */ 71, 73, 51, 49, 53, 46, 43, 59, 92, 61,
217 /* 870 */ 87, 90, 91, 99, 83, 177, 286, 4, 5, 6,
218 /* 880 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
219 /* 890 */ 17, 18, 19, 20, 21, 22, 23, 24, 25, 184,
220 /* 900 */ 286, 4, 5, 6, 7, 8, 9, 10, 11, 12,
221 /* 910 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
222 /* 920 */ 23, 24, 25, 221, 286, 4, 5, 6, 7, 8,
223 /* 930 */ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
224 /* 940 */ 19, 20, 21, 22, 23, 24, 25, 231, 286, 4,
225 /* 950 */ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
226 /* 960 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
227 /* 970 */ 25, 239, 286, 4, 5, 6, 7, 8, 9, 10,
228 /* 980 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
229 /* 990 */ 21, 22, 23, 24, 25, 246, 286, 4, 5, 6,
230 /* 1000 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
231 /* 1010 */ 17, 18, 19, 20, 21, 22, 23, 24, 25, 278,
232 /* 1020 */ 286, 4, 5, 6, 7, 8, 9, 10, 11, 12,
233 /* 1030 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
234 /* 1040 */ 23, 24, 25, 289, 286, 4, 5, 6, 7, 8,
235 /* 1050 */ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
236 /* 1060 */ 19, 20, 21, 22, 23, 24, 25, 295, 286, 4,
237 /* 1070 */ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
238 /* 1080 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
239 /* 1090 */ 25, 312, 286, 4, 5, 6, 7, 8, 9, 10,
240 /* 1100 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
241 /* 1110 */ 21, 22, 23, 24, 25, 334, 286, 4, 5, 6,
242 /* 1120 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
243 /* 1130 */ 17, 18, 19, 20, 21, 22, 23, 24, 25, 343,
244 /* 1140 */ 286, 4, 5, 6, 7, 8, 9, 10, 11, 12,
245 /* 1150 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
246 /* 1160 */ 23, 24, 25, 350, 286, 4, 5, 6, 7, 8,
247 /* 1170 */ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
248 /* 1180 */ 19, 20, 21, 22, 23, 24, 25, 3, 4, 5,
249 /* 1190 */ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
250 /* 1200 */ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
251 /* 1210 */ 27, 235, 32, 34, 40, 170, 172, 41, 283, 181,
252 /* 1220 */ 100, 188, 191, 193, 169, 45, 168, 285, 288, 120,
253 /* 1230 */ 216, 292, 120, 132, 178, 294, 120, 120, 120, 225,
254 /* 1240 */ 366, 26, 298, 236, 437, 243, 438, 250, 131, 260,
255 /* 1250 */ 263, 303, 269, 272, 275, 305, 282, 284, 255, 4,
256 /* 1260 */ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
257 /* 1270 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
258 /* 1280 */ 25, 27, 235, 358, 360, 40, 170, 172, 48, 357,
259 /* 1290 */ 181, 31, 188, 191, 193, 252, 354, 50, 130, 52,
260 /* 1300 */ 120, 216, 252, 54, 306, 56, 131, 308, 316, 120,
261 /* 1310 */ 225, 120, 259, 307, 236, 120, 243, 120, 250, 259,
262 /* 1320 */ 260, 263, 317, 269, 272, 275, 311, 282, 284, 58,
263 /* 1330 */ 315, 60, 319, 27, 235, 38, 62, 40, 170, 172,
264 /* 1340 */ 320, 120, 181, 120, 188, 191, 193, 330, 120, 337,
265 /* 1350 */ 252, 339, 252, 216, 37, 340, 229, 252, 310, 328,
266 /* 1360 */ 346, 185, 225, 222, 353, 232, 236, 259, 243, 259,
267 /* 1370 */ 250, 356, 260, 263, 259, 269, 272, 275, 359, 282,
268 /* 1380 */ 284, 361, 69, 65, 67, 75, 77, 79, 81, 71,
269 /* 1390 */ 73, 51, 49, 53, 46, 43, 59, 92, 61, 87,
270 /* 1400 */ 90, 91, 99, 83, 362, 27, 235, 64, 363, 40,
271 /* 1410 */ 170, 172, 364, 179, 181, 252, 188, 191, 193, 120,
272 /* 1420 */ 252, 290, 252, 244, 252, 216, 252, 290, 301, 290,
273 /* 1430 */ 240, 290, 259, 290, 225, 120, 290, 259, 236, 259,
274 /* 1440 */ 243, 259, 250, 259, 260, 263, 247, 269, 272, 275,
275 /* 1450 */ 279, 282, 284, 290, 290, 290, 290, 27, 235, 209,
276 /* 1460 */ 290, 40, 170, 172, 290, 212, 181, 186, 188, 191,
277 /* 1470 */ 193, 290, 290, 253, 290, 332, 290, 216, 290, 290,
278 /* 1480 */ 199, 201, 203, 205, 207, 120, 225, 120, 290, 252,
279 /* 1490 */ 236, 252, 243, 296, 250, 290, 260, 263, 313, 269,
280 /* 1500 */ 272, 275, 335, 282, 284, 290, 259, 252, 259, 27,
281 /* 1510 */ 235, 252, 290, 40, 170, 172, 290, 344, 181, 290,
282 /* 1520 */ 188, 191, 193, 66, 259, 290, 290, 68, 259, 216,
283 /* 1530 */ 290, 223, 290, 252, 290, 120, 290, 290, 225, 120,
284 /* 1540 */ 290, 290, 236, 290, 243, 290, 250, 290, 260, 263,
285 /* 1550 */ 259, 269, 272, 275, 252, 282, 284, 70, 290, 252,
286 /* 1560 */ 290, 27, 235, 252, 290, 40, 170, 172, 290, 120,
287 /* 1570 */ 181, 259, 188, 191, 193, 72, 259, 290, 252, 290,
288 /* 1580 */ 259, 216, 290, 290, 290, 290, 290, 120, 290, 290,
289 /* 1590 */ 225, 233, 290, 290, 236, 259, 243, 351, 250, 74,
290 /* 1600 */ 260, 263, 290, 269, 272, 275, 290, 282, 284, 76,
291 /* 1610 */ 290, 120, 290, 27, 235, 78, 80, 40, 170, 172,
292 /* 1620 */ 82, 120, 181, 84, 188, 191, 193, 120, 120, 290,
293 /* 1630 */ 290, 86, 120, 216, 290, 120, 290, 89, 290, 96,
294 /* 1640 */ 290, 290, 225, 120, 290, 290, 236, 241, 243, 120,
295 /* 1650 */ 250, 120, 260, 263, 290, 269, 272, 275, 252, 282,
296 /* 1660 */ 284, 98, 290, 290, 290, 27, 235, 102, 104, 40,
297 /* 1670 */ 170, 172, 119, 120, 181, 259, 188, 191, 193, 120,
298 /* 1680 */ 120, 290, 290, 135, 120, 216, 290, 167, 290, 290,
299 /* 1690 */ 290, 175, 290, 290, 225, 120, 290, 290, 236, 120,
300 /* 1700 */ 243, 248, 250, 120, 260, 263, 290, 269, 272, 275,
301 /* 1710 */ 290, 282, 284, 182, 290, 189, 290, 27, 235, 290,
302 /* 1720 */ 200, 40, 170, 172, 202, 120, 181, 120, 188, 191,
303 /* 1730 */ 193, 204, 120, 206, 290, 208, 120, 216, 290, 210,
304 /* 1740 */ 290, 226, 290, 120, 290, 120, 225, 120, 290, 290,
305 /* 1750 */ 236, 120, 243, 120, 250, 290, 260, 263, 290, 269,
306 /* 1760 */ 272, 275, 280, 282, 284, 261, 290, 264, 290, 27,
307 /* 1770 */ 235, 290, 267, 40, 170, 172, 270, 120, 181, 120,
308 /* 1780 */ 188, 191, 193, 273, 120, 341, 290, 348, 120, 216,
309 /* 1790 */ 290, 290, 290, 290, 290, 120, 290, 120, 225, 120,
310 /* 1800 */ 290, 290, 236, 290, 243, 290, 250, 290, 260, 263,
311 /* 1810 */ 290, 269, 272, 275, 291, 282, 284, 290, 290, 290,
312 /* 1820 */ 290, 27, 235, 290, 290, 40, 170, 172, 290, 290,
313 /* 1830 */ 181, 290, 188, 191, 193, 290, 290, 290, 290, 290,
314 /* 1840 */ 290, 216, 290, 290, 290, 290, 290, 290, 290, 290,
315 /* 1850 */ 225, 290, 290, 290, 236, 290, 243, 297, 250, 290,
316 /* 1860 */ 260, 263, 290, 269, 272, 275, 290, 282, 284, 290,
317 /* 1870 */ 290, 290, 290, 27, 235, 290, 290, 40, 170, 172,
318 /* 1880 */ 290, 290, 181, 290, 188, 191, 193, 290, 290, 290,
319 /* 1890 */ 290, 290, 290, 216, 290, 290, 290, 290, 290, 290,
320 /* 1900 */ 290, 290, 225, 290, 290, 290, 236, 302, 243, 290,
321 /* 1910 */ 250, 290, 260, 263, 290, 269, 272, 275, 290, 282,
322 /* 1920 */ 284, 290, 290, 290, 290, 27, 235, 290, 290, 40,
323 /* 1930 */ 170, 172, 290, 290, 181, 290, 188, 191, 193, 290,
324 /* 1940 */ 290, 290, 290, 290, 290, 216, 290, 314, 290, 290,
325 /* 1950 */ 290, 290, 290, 290, 225, 290, 290, 290, 236, 290,
326 /* 1960 */ 243, 290, 250, 290, 260, 263, 290, 269, 272, 275,
327 /* 1970 */ 290, 282, 284, 290, 290, 290, 290, 27, 235, 290,
328 /* 1980 */ 290, 40, 170, 172, 290, 290, 181, 329, 188, 191,
329 /* 1990 */ 193, 290, 290, 290, 290, 290, 290, 216, 290, 290,
330 /* 2000 */ 290, 290, 290, 290, 290, 290, 225, 290, 290, 290,
331 /* 2010 */ 236, 290, 243, 290, 250, 290, 260, 263, 290, 269,
332 /* 2020 */ 272, 275, 290, 282, 284, 290, 290, 290, 290, 27,
333 /* 2030 */ 235, 290, 290, 40, 170, 172, 290, 336, 181, 290,
334 /* 2040 */ 188, 191, 193, 290, 290, 290, 290, 290, 290, 216,
335 /* 2050 */ 290, 290, 290, 290, 290, 290, 290, 290, 225, 290,
336 /* 2060 */ 290, 290, 236, 290, 243, 290, 250, 290, 260, 263,
337 /* 2070 */ 290, 269, 272, 275, 290, 282, 284, 290, 290, 290,
338 /* 2080 */ 290, 27, 235, 290, 290, 40, 170, 172, 290, 345,
339 /* 2090 */ 181, 290, 188, 191, 193, 290, 290, 290, 290, 290,
340 /* 2100 */ 290, 216, 290, 290, 290, 290, 290, 290, 290, 290,
341 /* 2110 */ 225, 290, 290, 290, 236, 290, 243, 290, 250, 290,
342 /* 2120 */ 260, 263, 290, 269, 272, 275, 290, 282, 284, 290,
343 /* 2130 */ 290, 290, 290, 27, 235, 290, 290, 40, 170, 172,
344 /* 2140 */ 290, 352, 181, 290, 188, 191, 193, 290, 290, 290,
345 /* 2150 */ 290, 290, 290, 216, 290, 290, 290, 290, 290, 290,
346 /* 2160 */ 290, 290, 225, 290, 290, 290, 236, 290, 243, 290,
347 /* 2170 */ 250, 290, 260, 263, 290, 269, 272, 275, 290, 282,
348 /* 2180 */ 284, 290, 290, 290, 290, 27, 235, 355, 290, 40,
349 /* 2190 */ 170, 172, 290, 290, 181, 290, 188, 191, 193, 290,
350 /* 2200 */ 290, 290, 290, 290, 290, 216, 290, 290, 290, 290,
351 /* 2210 */ 290, 290, 290, 290, 225, 290, 290, 290, 236, 290,
352 /* 2220 */ 243, 290, 250, 290, 260, 263, 290, 269, 272, 275,
353 /* 2230 */ 290, 282, 284, 290, 290, 290, 290, 27, 235, 290,
354 /* 2240 */ 290, 40, 170, 172, 290, 290, 181, 290, 188, 191,
355 /* 2250 */ 193, 290, 290, 290, 290, 290, 290, 216, 290, 290,
356 /* 2260 */ 290, 290, 290, 290, 290, 290, 225, 290, 290, 290,
357 /* 2270 */ 236, 290, 243, 290, 250, 290, 260, 263, 290, 269,
358 /* 2280 */ 272, 275, 290, 282, 284, 290, 290, 290, 47, 44,
359 /* 2290 */ 290, 106, 290, 101, 290, 290, 103, 290, 47, 44,
360 /* 2300 */ 290, 106, 290, 101, 290, 121, 103, 290, 290, 290,
361 /* 2310 */ 290, 290, 290, 290, 290, 121, 290, 290, 290, 290,
362 /* 2320 */ 290, 122, 123, 124, 125, 126, 127, 290, 290, 290,
363 /* 2330 */ 290, 122, 123, 124, 125, 126, 127, 290, 290, 290,
364 /* 2340 */ 290, 290, 290, 290, 290, 290, 290, 157, 158, 159,
365 /* 2350 */ 160, 161, 162, 163, 112, 290, 290, 150, 151, 152,
366 /* 2360 */ 153, 154, 155, 156, 112, 290, 290, 166, 290, 47,
367 /* 2370 */ 44, 290, 106, 290, 101, 290, 164, 103, 290, 47,
368 /* 2380 */ 44, 290, 106, 290, 101, 290, 121, 103, 290, 290,
369 /* 2390 */ 290, 290, 290, 290, 290, 290, 121, 290, 290, 290,
370 /* 2400 */ 290, 290, 122, 123, 124, 125, 126, 127, 138, 290,
371 /* 2410 */ 290, 290, 122, 123, 124, 125, 126, 127, 290, 290,
372 /* 2420 */ 290, 290, 290, 290, 47, 44, 290, 106, 290, 101,
373 /* 2430 */ 290, 290, 103, 290, 290, 112, 290, 290, 290, 47,
374 /* 2440 */ 44, 149, 106, 290, 101, 112, 290, 103, 290, 290,
375 /* 2450 */ 290, 290, 290, 290, 290, 290, 121, 148, 123, 124,
376 /* 2460 */ 125, 126, 127, 47, 44, 290, 106, 290, 101, 290,
377 /* 2470 */ 136, 103, 122, 133, 124, 125, 126, 127, 47, 44,
378 /* 2480 */ 121, 106, 290, 101, 290, 290, 103, 290, 290, 290,
379 /* 2490 */ 112, 290, 108, 290, 290, 121, 122, 117, 124, 125,
380 /* 2500 */ 126, 127, 290, 290, 290, 112, 290, 290, 290, 290,
381 /* 2510 */ 290, 122, 117, 124, 125, 126, 127, 47, 44, 290,
382 /* 2520 */ 106, 290, 101, 47, 44, 103, 106, 290, 101, 112,
383 /* 2530 */ 290, 103, 290, 290, 121, 290, 290, 290, 290, 290,
384 /* 2540 */ 121, 290, 290, 290, 112, 113, 290, 290, 304, 290,
385 /* 2550 */ 122, 133, 124, 125, 126, 127, 122, 123, 124, 125,
386 /* 2560 */ 126, 127, 47, 44, 290, 106, 290, 101, 290, 290,
387 /* 2570 */ 103, 290, 290, 47, 44, 290, 106, 290, 101, 121,
388 /* 2580 */ 290, 103, 290, 112, 290, 290, 290, 290, 290, 112,
389 /* 2590 */ 121, 290, 290, 290, 290, 122, 117, 124, 125, 126,
390 /* 2600 */ 127, 290, 290, 290, 290, 290, 122, 133, 124, 125,
391 /* 2610 */ 126, 127, 290, 290, 290, 290, 290, 290, 290, 290,
392 /* 2620 */ 290, 290, 290, 290, 290, 290, 290, 290, 112, 290,
393 /* 2630 */ 290, 290, 290, 290, 290, 290, 290, 290, 290, 112,
394 };
395 static YYCODETYPE yy_lookahead[] = {
396 /* 0 */ 3, 4, 2, 6, 7, 8, 9, 10, 11, 12,
397 /* 10 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
398 /* 20 */ 23, 24, 25, 26, 27, 28, 29, 30, 0, 32,
399 /* 30 */ 26, 27, 28, 29, 30, 38, 18, 19, 20, 21,
400 /* 40 */ 22, 23, 24, 25, 26, 27, 28, 29, 30, 32,
401 /* 50 */ 50, 54, 117, 118, 119, 3, 4, 2, 6, 7,
402 /* 60 */ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
403 /* 70 */ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
404 /* 80 */ 28, 29, 30, 31, 32, 3, 4, 32, 6, 7,
405 /* 90 */ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
406 /* 100 */ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
407 /* 110 */ 28, 29, 30, 32, 32, 3, 4, 32, 6, 7,
408 /* 120 */ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
409 /* 130 */ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
410 /* 140 */ 28, 29, 30, 31, 32, 24, 25, 26, 27, 28,
411 /* 150 */ 29, 30, 2, 3, 72, 118, 119, 3, 3, 4,
412 /* 160 */ 126, 6, 7, 8, 9, 10, 11, 12, 13, 14,
413 /* 170 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
414 /* 180 */ 25, 26, 27, 28, 29, 30, 5, 32, 3, 4,
415 /* 190 */ 50, 6, 7, 8, 9, 10, 11, 12, 13, 14,
416 /* 200 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
417 /* 210 */ 25, 26, 27, 28, 29, 30, 5, 32, 3, 4,
418 /* 220 */ 50, 6, 7, 8, 9, 10, 11, 12, 13, 14,
419 /* 230 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
420 /* 240 */ 25, 26, 27, 28, 29, 30, 21, 22, 23, 24,
421 /* 250 */ 25, 26, 27, 28, 29, 30, 54, 55, 56, 57,
422 /* 260 */ 58, 59, 50, 2, 5, 50, 120, 121, 126, 3,
423 /* 270 */ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
424 /* 280 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
425 /* 290 */ 24, 25, 26, 27, 28, 29, 30, 3, 4, 50,
426 /* 300 */ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
427 /* 310 */ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
428 /* 320 */ 26, 27, 28, 29, 30, 116, 5, 38, 38, 5,
429 /* 330 */ 116, 32, 123, 58, 59, 38, 116, 128, 129, 125,
430 /* 340 */ 50, 127, 128, 54, 54, 125, 52, 127, 128, 88,
431 /* 350 */ 3, 4, 32, 6, 7, 8, 9, 10, 11, 12,
432 /* 360 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
433 /* 370 */ 23, 24, 25, 26, 27, 28, 29, 30, 32, 32,
434 /* 380 */ 3, 4, 1, 6, 7, 8, 9, 10, 11, 12,
435 /* 390 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
436 /* 400 */ 23, 24, 25, 26, 27, 28, 29, 30, 32, 32,
437 /* 410 */ 3, 4, 38, 6, 7, 8, 9, 10, 11, 12,
438 /* 420 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
439 /* 430 */ 23, 24, 25, 26, 27, 28, 29, 30, 116, 38,
440 /* 440 */ 32, 116, 116, 62, 116, 123, 119, 116, 29, 38,
441 /* 450 */ 128, 129, 126, 128, 128, 32, 128, 50, 127, 128,
442 /* 460 */ 79, 3, 4, 52, 6, 7, 8, 9, 10, 11,
443 /* 470 */ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
444 /* 480 */ 22, 23, 24, 25, 26, 27, 28, 29, 30, 3,
445 /* 490 */ 4, 32, 6, 7, 8, 9, 10, 11, 12, 13,
446 /* 500 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
447 /* 510 */ 24, 25, 26, 27, 28, 29, 30, 32, 32, 3,
448 /* 520 */ 4, 63, 6, 7, 8, 9, 10, 11, 12, 13,
449 /* 530 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
450 /* 540 */ 24, 25, 26, 27, 28, 29, 30, 38, 32, 3,
451 /* 550 */ 4, 32, 6, 7, 8, 9, 10, 11, 12, 13,
452 /* 560 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
453 /* 570 */ 24, 25, 26, 27, 28, 29, 30, 32, 32, 3,
454 /* 580 */ 4, 124, 6, 7, 8, 9, 10, 11, 12, 13,
455 /* 590 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
456 /* 600 */ 24, 25, 26, 27, 28, 29, 30, 32, 32, 3,
457 /* 610 */ 4, 32, 6, 7, 8, 9, 10, 11, 12, 13,
458 /* 620 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
459 /* 630 */ 24, 25, 26, 27, 28, 29, 30, 69, 32, 3,
460 /* 640 */ 4, 1, 6, 7, 8, 9, 10, 11, 12, 13,
461 /* 650 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
462 /* 660 */ 24, 25, 26, 27, 28, 29, 30, 38, 32, 3,
463 /* 670 */ 4, 32, 6, 7, 8, 9, 10, 11, 12, 13,
464 /* 680 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
465 /* 690 */ 24, 25, 26, 27, 28, 29, 30, 3, 4, 32,
466 /* 700 */ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
467 /* 710 */ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
468 /* 720 */ 26, 27, 28, 29, 30, 90, 91, 92, 93, 94,
469 /* 730 */ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
470 /* 740 */ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
471 /* 750 */ 115, 4, 32, 6, 7, 8, 9, 10, 11, 12,
472 /* 760 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
473 /* 770 */ 23, 24, 25, 26, 27, 28, 29, 30, 6, 7,
474 /* 780 */ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
475 /* 790 */ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
476 /* 800 */ 28, 29, 30, 92, 93, 94, 95, 96, 97, 98,
477 /* 810 */ 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
478 /* 820 */ 109, 110, 111, 112, 113, 114, 115, 92, 93, 94,
479 /* 830 */ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
480 /* 840 */ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
481 /* 850 */ 115, 7, 8, 9, 10, 11, 12, 13, 14, 15,
482 /* 860 */ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
483 /* 870 */ 26, 27, 28, 29, 30, 92, 93, 94, 95, 96,
484 /* 880 */ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
485 /* 890 */ 107, 108, 109, 110, 111, 112, 113, 114, 115, 92,
486 /* 900 */ 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
487 /* 910 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
488 /* 920 */ 113, 114, 115, 92, 93, 94, 95, 96, 97, 98,
489 /* 930 */ 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
490 /* 940 */ 109, 110, 111, 112, 113, 114, 115, 92, 93, 94,
491 /* 950 */ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
492 /* 960 */ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
493 /* 970 */ 115, 92, 93, 94, 95, 96, 97, 98, 99, 100,
494 /* 980 */ 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
495 /* 990 */ 111, 112, 113, 114, 115, 92, 93, 94, 95, 96,
496 /* 1000 */ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
497 /* 1010 */ 107, 108, 109, 110, 111, 112, 113, 114, 115, 92,
498 /* 1020 */ 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
499 /* 1030 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
500 /* 1040 */ 113, 114, 115, 92, 93, 94, 95, 96, 97, 98,
501 /* 1050 */ 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
502 /* 1060 */ 109, 110, 111, 112, 113, 114, 115, 92, 93, 94,
503 /* 1070 */ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
504 /* 1080 */ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
505 /* 1090 */ 115, 92, 93, 94, 95, 96, 97, 98, 99, 100,
506 /* 1100 */ 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
507 /* 1110 */ 111, 112, 113, 114, 115, 92, 93, 94, 95, 96,
508 /* 1120 */ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
509 /* 1130 */ 107, 108, 109, 110, 111, 112, 113, 114, 115, 92,
510 /* 1140 */ 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
511 /* 1150 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
512 /* 1160 */ 113, 114, 115, 92, 93, 94, 95, 96, 97, 98,
513 /* 1170 */ 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
514 /* 1180 */ 109, 110, 111, 112, 113, 114, 115, 93, 94, 95,
515 /* 1190 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
516 /* 1200 */ 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
517 /* 1210 */ 31, 32, 33, 34, 35, 36, 37, 116, 32, 40,
518 /* 1220 */ 116, 42, 43, 44, 116, 116, 116, 32, 32, 128,
519 /* 1230 */ 51, 32, 128, 129, 1, 32, 128, 128, 128, 60,
520 /* 1240 */ 0, 1, 32, 64, 32, 66, 32, 68, 2, 70,
521 /* 1250 */ 71, 32, 73, 74, 75, 32, 77, 78, 93, 94,
522 /* 1260 */ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
523 /* 1270 */ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
524 /* 1280 */ 115, 31, 32, 33, 34, 35, 36, 37, 116, 1,
525 /* 1290 */ 40, 1, 42, 43, 44, 62, 1, 116, 52, 116,
526 /* 1300 */ 128, 51, 62, 116, 1, 116, 2, 32, 2, 128,
527 /* 1310 */ 60, 128, 79, 61, 64, 128, 66, 128, 68, 79,
528 /* 1320 */ 70, 71, 121, 73, 74, 75, 32, 77, 78, 116,
529 /* 1330 */ 32, 116, 45, 31, 32, 33, 116, 35, 36, 37,
530 /* 1340 */ 122, 128, 40, 128, 42, 43, 44, 32, 128, 32,
531 /* 1350 */ 62, 38, 62, 51, 1, 3, 52, 62, 52, 1,
532 /* 1360 */ 32, 1, 60, 1, 32, 1, 64, 79, 66, 79,
533 /* 1370 */ 68, 32, 70, 71, 79, 73, 74, 75, 32, 77,
534 /* 1380 */ 78, 32, 9, 10, 11, 12, 13, 14, 15, 16,
535 /* 1390 */ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
536 /* 1400 */ 27, 28, 29, 30, 1, 31, 32, 116, 33, 35,
537 /* 1410 */ 36, 37, 32, 39, 40, 62, 42, 43, 44, 128,
538 /* 1420 */ 62, 130, 62, 116, 62, 51, 62, 130, 1, 130,
539 /* 1430 */ 1, 130, 79, 130, 60, 128, 130, 79, 64, 79,
540 /* 1440 */ 66, 79, 68, 79, 70, 71, 1, 73, 74, 75,
541 /* 1450 */ 1, 77, 78, 130, 130, 130, 130, 31, 32, 24,
542 /* 1460 */ 130, 35, 36, 37, 130, 30, 40, 41, 42, 43,
543 /* 1470 */ 44, 130, 1, 116, 130, 116, 130, 51, 130, 130,
544 /* 1480 */ 45, 46, 47, 48, 49, 128, 60, 128, 130, 62,
545 /* 1490 */ 64, 62, 66, 1, 68, 130, 70, 71, 1, 73,
546 /* 1500 */ 74, 75, 1, 77, 78, 130, 79, 62, 79, 31,
547 /* 1510 */ 32, 62, 130, 35, 36, 37, 130, 1, 40, 130,
548 /* 1520 */ 42, 43, 44, 116, 79, 130, 130, 116, 79, 51,
549 /* 1530 */ 130, 53, 130, 62, 130, 128, 130, 130, 60, 128,
550 /* 1540 */ 130, 130, 64, 130, 66, 130, 68, 130, 70, 71,
551 /* 1550 */ 79, 73, 74, 75, 62, 77, 78, 116, 130, 62,
552 /* 1560 */ 130, 31, 32, 62, 130, 35, 36, 37, 130, 128,
553 /* 1570 */ 40, 79, 42, 43, 44, 116, 79, 130, 62, 130,
554 /* 1580 */ 79, 51, 130, 130, 130, 130, 130, 128, 130, 130,
555 /* 1590 */ 60, 61, 130, 130, 64, 79, 66, 1, 68, 116,
556 /* 1600 */ 70, 71, 130, 73, 74, 75, 130, 77, 78, 116,
557 /* 1610 */ 130, 128, 130, 31, 32, 116, 116, 35, 36, 37,
558 /* 1620 */ 116, 128, 40, 116, 42, 43, 44, 128, 128, 130,
559 /* 1630 */ 130, 116, 128, 51, 130, 128, 130, 116, 130, 116,
560 /* 1640 */ 130, 130, 60, 128, 130, 130, 64, 65, 66, 128,
561 /* 1650 */ 68, 128, 70, 71, 130, 73, 74, 75, 62, 77,
562 /* 1660 */ 78, 116, 130, 130, 130, 31, 32, 116, 116, 35,
563 /* 1670 */ 36, 37, 116, 128, 40, 79, 42, 43, 44, 128,
564 /* 1680 */ 128, 130, 130, 116, 128, 51, 130, 116, 130, 130,
565 /* 1690 */ 130, 116, 130, 130, 60, 128, 130, 130, 64, 128,
566 /* 1700 */ 66, 67, 68, 128, 70, 71, 130, 73, 74, 75,
567 /* 1710 */ 130, 77, 78, 116, 130, 116, 130, 31, 32, 130,
568 /* 1720 */ 116, 35, 36, 37, 116, 128, 40, 128, 42, 43,
569 /* 1730 */ 44, 116, 128, 116, 130, 116, 128, 51, 130, 116,
570 /* 1740 */ 130, 116, 130, 128, 130, 128, 60, 128, 130, 130,
571 /* 1750 */ 64, 128, 66, 128, 68, 130, 70, 71, 130, 73,
572 /* 1760 */ 74, 75, 76, 77, 78, 116, 130, 116, 130, 31,
573 /* 1770 */ 32, 130, 116, 35, 36, 37, 116, 128, 40, 128,
574 /* 1780 */ 42, 43, 44, 116, 128, 116, 130, 116, 128, 51,
575 /* 1790 */ 130, 130, 130, 130, 130, 128, 130, 128, 60, 128,
576 /* 1800 */ 130, 130, 64, 130, 66, 130, 68, 130, 70, 71,
577 /* 1810 */ 130, 73, 74, 75, 76, 77, 78, 130, 130, 130,
578 /* 1820 */ 130, 31, 32, 130, 130, 35, 36, 37, 130, 130,
579 /* 1830 */ 40, 130, 42, 43, 44, 130, 130, 130, 130, 130,
580 /* 1840 */ 130, 51, 130, 130, 130, 130, 130, 130, 130, 130,
581 /* 1850 */ 60, 130, 130, 130, 64, 130, 66, 67, 68, 130,
582 /* 1860 */ 70, 71, 130, 73, 74, 75, 130, 77, 78, 130,
583 /* 1870 */ 130, 130, 130, 31, 32, 130, 130, 35, 36, 37,
584 /* 1880 */ 130, 130, 40, 130, 42, 43, 44, 130, 130, 130,
585 /* 1890 */ 130, 130, 130, 51, 130, 130, 130, 130, 130, 130,
586 /* 1900 */ 130, 130, 60, 130, 130, 130, 64, 65, 66, 130,
587 /* 1910 */ 68, 130, 70, 71, 130, 73, 74, 75, 130, 77,
588 /* 1920 */ 78, 130, 130, 130, 130, 31, 32, 130, 130, 35,
589 /* 1930 */ 36, 37, 130, 130, 40, 130, 42, 43, 44, 130,
590 /* 1940 */ 130, 130, 130, 130, 130, 51, 130, 53, 130, 130,
591 /* 1950 */ 130, 130, 130, 130, 60, 130, 130, 130, 64, 130,
592 /* 1960 */ 66, 130, 68, 130, 70, 71, 130, 73, 74, 75,
593 /* 1970 */ 130, 77, 78, 130, 130, 130, 130, 31, 32, 130,
594 /* 1980 */ 130, 35, 36, 37, 130, 130, 40, 41, 42, 43,
595 /* 1990 */ 44, 130, 130, 130, 130, 130, 130, 51, 130, 130,
596 /* 2000 */ 130, 130, 130, 130, 130, 130, 60, 130, 130, 130,
597 /* 2010 */ 64, 130, 66, 130, 68, 130, 70, 71, 130, 73,
598 /* 2020 */ 74, 75, 130, 77, 78, 130, 130, 130, 130, 31,
599 /* 2030 */ 32, 130, 130, 35, 36, 37, 130, 39, 40, 130,
600 /* 2040 */ 42, 43, 44, 130, 130, 130, 130, 130, 130, 51,
601 /* 2050 */ 130, 130, 130, 130, 130, 130, 130, 130, 60, 130,
602 /* 2060 */ 130, 130, 64, 130, 66, 130, 68, 130, 70, 71,
603 /* 2070 */ 130, 73, 74, 75, 130, 77, 78, 130, 130, 130,
604 /* 2080 */ 130, 31, 32, 130, 130, 35, 36, 37, 130, 39,
605 /* 2090 */ 40, 130, 42, 43, 44, 130, 130, 130, 130, 130,
606 /* 2100 */ 130, 51, 130, 130, 130, 130, 130, 130, 130, 130,
607 /* 2110 */ 60, 130, 130, 130, 64, 130, 66, 130, 68, 130,
608 /* 2120 */ 70, 71, 130, 73, 74, 75, 130, 77, 78, 130,
609 /* 2130 */ 130, 130, 130, 31, 32, 130, 130, 35, 36, 37,
610 /* 2140 */ 130, 39, 40, 130, 42, 43, 44, 130, 130, 130,
611 /* 2150 */ 130, 130, 130, 51, 130, 130, 130, 130, 130, 130,
612 /* 2160 */ 130, 130, 60, 130, 130, 130, 64, 130, 66, 130,
613 /* 2170 */ 68, 130, 70, 71, 130, 73, 74, 75, 130, 77,
614 /* 2180 */ 78, 130, 130, 130, 130, 31, 32, 33, 130, 35,
615 /* 2190 */ 36, 37, 130, 130, 40, 130, 42, 43, 44, 130,
616 /* 2200 */ 130, 130, 130, 130, 130, 51, 130, 130, 130, 130,
617 /* 2210 */ 130, 130, 130, 130, 60, 130, 130, 130, 64, 130,
618 /* 2220 */ 66, 130, 68, 130, 70, 71, 130, 73, 74, 75,
619 /* 2230 */ 130, 77, 78, 130, 130, 130, 130, 31, 32, 130,
620 /* 2240 */ 130, 35, 36, 37, 130, 130, 40, 130, 42, 43,
621 /* 2250 */ 44, 130, 130, 130, 130, 130, 130, 51, 130, 130,
622 /* 2260 */ 130, 130, 130, 130, 130, 130, 60, 130, 130, 130,
623 /* 2270 */ 64, 130, 66, 130, 68, 130, 70, 71, 130, 73,
624 /* 2280 */ 74, 75, 130, 77, 78, 130, 130, 130, 21, 22,
625 /* 2290 */ 130, 24, 130, 26, 130, 130, 29, 130, 21, 22,
626 /* 2300 */ 130, 24, 130, 26, 130, 38, 29, 130, 130, 130,
627 /* 2310 */ 130, 130, 130, 130, 130, 38, 130, 130, 130, 130,
628 /* 2320 */ 130, 54, 55, 56, 57, 58, 59, 130, 130, 130,
629 /* 2330 */ 130, 54, 55, 56, 57, 58, 59, 130, 130, 130,
630 /* 2340 */ 130, 130, 130, 130, 130, 130, 130, 80, 81, 82,
631 /* 2350 */ 83, 84, 85, 86, 87, 130, 130, 80, 81, 82,
632 /* 2360 */ 83, 84, 85, 86, 87, 130, 130, 19, 130, 21,
633 /* 2370 */ 22, 130, 24, 130, 26, 130, 18, 29, 130, 21,
634 /* 2380 */ 22, 130, 24, 130, 26, 130, 38, 29, 130, 130,
635 /* 2390 */ 130, 130, 130, 130, 130, 130, 38, 130, 130, 130,
636 /* 2400 */ 130, 130, 54, 55, 56, 57, 58, 59, 5, 130,
637 /* 2410 */ 130, 130, 54, 55, 56, 57, 58, 59, 130, 130,
638 /* 2420 */ 130, 130, 130, 130, 21, 22, 130, 24, 130, 26,
639 /* 2430 */ 130, 130, 29, 130, 130, 87, 130, 130, 130, 21,
640 /* 2440 */ 22, 38, 24, 130, 26, 87, 130, 29, 130, 130,
641 /* 2450 */ 130, 130, 130, 130, 130, 130, 38, 54, 55, 56,
642 /* 2460 */ 57, 58, 59, 21, 22, 130, 24, 130, 26, 130,
643 /* 2470 */ 52, 29, 54, 55, 56, 57, 58, 59, 21, 22,
644 /* 2480 */ 38, 24, 130, 26, 130, 130, 29, 130, 130, 130,
645 /* 2490 */ 87, 130, 50, 130, 130, 38, 54, 55, 56, 57,
646 /* 2500 */ 58, 59, 130, 130, 130, 87, 130, 130, 130, 130,
647 /* 2510 */ 130, 54, 55, 56, 57, 58, 59, 21, 22, 130,
648 /* 2520 */ 24, 130, 26, 21, 22, 29, 24, 130, 26, 87,
649 /* 2530 */ 130, 29, 130, 130, 38, 130, 130, 130, 130, 130,
650 /* 2540 */ 38, 130, 130, 130, 87, 88, 130, 130, 52, 130,
651 /* 2550 */ 54, 55, 56, 57, 58, 59, 54, 55, 56, 57,
652 /* 2560 */ 58, 59, 21, 22, 130, 24, 130, 26, 130, 130,
653 /* 2570 */ 29, 130, 130, 21, 22, 130, 24, 130, 26, 38,
654 /* 2580 */ 130, 29, 130, 87, 130, 130, 130, 130, 130, 87,
655 /* 2590 */ 38, 130, 130, 130, 130, 54, 55, 56, 57, 58,
656 /* 2600 */ 59, 130, 130, 130, 130, 130, 54, 55, 56, 57,
657 /* 2610 */ 58, 59, 130, 130, 130, 130, 130, 130, 130, 130,
658 /* 2620 */ 130, 130, 130, 130, 130, 130, 130, 130, 87, 130,
659 /* 2630 */ 130, 130, 130, 130, 130, 130, 130, 130, 130, 87,
660 };
661 #define YY_SHIFT_USE_DFLT (-4)
662 static short yy_shift_ofst[] = {
663 /* 0 */ 381, 28, 1240, -4, -4, -4, -4, -4, -4, -4,
664 /* 10 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4,
665 /* 20 */ -4, -4, -4, -4, -4, -4, 2206, 2502, 155, 1288,
666 /* 30 */ 1290, 1179, 17, -4, 81, 1295, 1353, 1302, 85, -4,
667 /* 40 */ 2502, 185, -4, 2502, 2502, 121, 2502, 2502, 121, 2348,
668 /* 50 */ 225, 2358, 225, 2502, 225, 2502, 1373, 2502, 1373, 2502,
669 /* 60 */ 121, 2502, 4, 2502, 844, 2502, 18, 2267, 18, 2277,
670 /* 70 */ 18, 2502, 18, 2502, 18, 2502, 18, 2502, 18, 2502,
671 /* 80 */ 18, 2502, 18, 2502, -4, 2502, 747, 154, 2502, 4,
672 /* 90 */ -4, -4, 2403, 215, -4, 2502, 266, 2502, 772, 2418,
673 /* 100 */ 666, 2502, 4, 2502, 294, -4, 2442, 666, -4, 0,
674 /* 110 */ -4, 2541, 2457, -4, 261, -4, -4, 181, 2502, 666,
675 /* 120 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, 1246,
676 /* 130 */ -4, 2552, -4, 211, 2502, 666, -4, -4, 289, 140,
677 /* 140 */ -4, 170, 212, 259, 290, -4, 249, -4, 321, 324,
678 /* 150 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4,
679 /* 160 */ -4, -4, -4, -4, 2502, 225, 2502, 225, 121, 121,
680 /* 170 */ 299, -4, 297, 150, 2502, 52, 381, 1233, 1374, 320,
681 /* 180 */ -4, 2502, 347, 1358, 1360, 1426, 346, -4, 2502, 377,
682 /* 190 */ -4, 376, -4, 374, 55, -4, 374, -4, 1435, 2502,
683 /* 200 */ 666, 2502, 666, 2502, 666, 2502, 666, 2502, 666, 2502,
684 /* 210 */ 407, -4, 374, -4, -4, -4, 401, 419, 411, 408,
685 /* 220 */ 381, 1362, 1478, 423, -4, 2502, 694, 2496, 1304, 459,
686 /* 230 */ 381, 1364, 1530, 485, -4, -4, 509, 519, 1427, 1429,
687 /* 240 */ 1582, 545, -4, 2502, -3, 381, 1445, 1634, 575, -4,
688 /* 250 */ 579, 381, 2502, 458, -4, 640, 568, 639, -4, -4,
689 /* 260 */ 2502, 486, -4, 2502, 82, -4, 2502, 516, -4, 2502,
690 /* 270 */ 546, -4, 2502, 576, -4, 275, 667, 381, 1449, 1686,
691 /* 280 */ 720, -4, 1186, -4, 1195, -4, -4, 1196, 381, 1471,
692 /* 290 */ 1738, 1199, -4, 1203, 381, 1492, 1790, 1210, -4, 1212,
693 /* 300 */ 1214, 1842, 1219, -4, 1223, 1303, 1252, 1275, -4, 1306,
694 /* 310 */ 1294, 381, 1497, 1894, 1298, -4, 629, -4, 1287, 202,
695 /* 320 */ -4, -4, -4, -4, -4, -4, -4, -4, 1946, 1315,
696 /* 330 */ -4, 2502, 606, 381, 1501, 1998, 1317, -4, 1313, 1352,
697 /* 340 */ 2502, 112, 381, 1516, 2050, 1328, -4, 2502, 636, 381,
698 /* 350 */ 1596, 2102, 1332, -4, 2154, 1339, -4, 1250, 1346, -4,
699 /* 360 */ 1349, 1403, 1375, 1380, -4,
700 };
701 #define YY_REDUCE_USE_DFLT (-66)
702 static short yy_reduce_ofst[] = {
703 /* 0 */ 635, -66, 1094, -66, -66, -66, -66, -66, -66, -66,
704 /* 10 */ -66, -66, -66, -66, -66, -66, -66, -66, -66, -66,
705 /* 20 */ -66, -66, -66, -66, -66, -66, -66, 325, -66, 711,
706 /* 30 */ 1094, -66, -66, -66, -66, 735, 1094, -66, -66, -66,
707 /* 40 */ 1101, -66, -66, 1108, 1109, -66, 1110, 1172, -66, 1181,
708 /* 50 */ -66, 1183, -66, 1187, -66, 1189, -66, 1213, -66, 1215,
709 /* 60 */ -66, 1220, -66, 1291, -66, 1407, -66, 1411, -66, 1441,
710 /* 70 */ -66, 1459, -66, 1483, -66, 1493, -66, 1499, -66, 1500,
711 /* 80 */ -66, 1504, -66, 1507, -66, 1515, -66, -66, 1521, -66,
712 /* 90 */ -66, -66, 326, -66, -66, 1523, -66, 1545, -66, 209,
713 /* 100 */ -66, 1551, -66, 1552, -66, -66, 214, -66, -66, -66,
714 /* 110 */ -66, 331, 220, -66, -66, -66, -66, -66, 1556, -66,
715 /* 120 */ -66, -66, -66, -66, -66, -66, -66, -66, -66, -66,
716 /* 130 */ -66, 1104, -66, -66, 1567, -66, -66, -66, 34, -66,
717 /* 140 */ -66, -66, -66, -66, 142, -66, -66, -66, -66, -66,
718 /* 150 */ -66, -66, -66, -66, -66, -66, -66, -66, -66, -66,
719 /* 160 */ -66, -66, -66, -66, 328, -66, 1571, -66, -66, -66,
720 /* 170 */ -66, -66, -66, -66, 1575, -66, 783, 1094, -66, -66,
721 /* 180 */ -66, 1597, -66, 807, 1094, -66, -66, -66, 1599, -66,
722 /* 190 */ -66, -66, -66, -65, -66, -66, 37, -66, -66, 1604,
723 /* 200 */ -66, 1608, -66, 1615, -66, 1617, -66, 1619, -66, 1623,
724 /* 210 */ -66, -66, 327, -66, -66, -66, -66, -66, 146, -66,
725 /* 220 */ 831, 1094, -66, -66, -66, 1625, -66, 322, -66, -66,
726 /* 230 */ 855, 1094, -66, -66, -66, -66, -66, -66, 879, 1094,
727 /* 240 */ -66, -66, -66, 1307, 457, 903, 1094, -66, -66, -66,
728 /* 250 */ -66, 1165, 1357, -66, -66, -66, -66, -66, -66, -66,
729 /* 260 */ 1649, -66, -66, 1651, -66, -66, 1656, -66, -66, 1660,
730 /* 270 */ -66, -66, 1667, -66, -66, -66, -66, 927, 1094, -66,
731 /* 280 */ -66, -66, -66, -66, -66, -66, -66, -66, 951, 1094,
732 /* 290 */ -66, -66, -66, -66, 975, 1094, -66, -66, -66, -66,
733 /* 300 */ -66, -66, -66, -66, -66, -66, -66, -66, -66, -66,
734 /* 310 */ -66, 999, 1094, -66, -66, -66, 1201, -66, -66, 1218,
735 /* 320 */ -66, -66, -66, -66, -66, -66, -66, -66, -66, -66,
736 /* 330 */ -66, 1359, -66, 1023, 1094, -66, -66, -66, -66, -66,
737 /* 340 */ 1669, -66, 1047, 1094, -66, -66, -66, 1671, -66, 1071,
738 /* 350 */ 1094, -66, -66, -66, -66, -66, -66, -66, -66, -66,
739 /* 360 */ -66, -66, -66, -66, -66,
740 };
741 static YYACTIONTYPE yy_default[] = {
742 /* 0 */ 523, 523, 523, 367, 369, 370, 371, 372, 373, 374,
743 /* 10 */ 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
744 /* 20 */ 385, 386, 387, 388, 389, 390, 523, 523, 523, 523,
745 /* 30 */ 523, 523, 523, 391, 523, 523, 523, 523, 523, 393,
746 /* 40 */ 523, 523, 396, 523, 523, 450, 523, 523, 451, 523,
747 /* 50 */ 454, 523, 456, 523, 458, 523, 459, 523, 460, 523,
748 /* 60 */ 461, 523, 462, 523, 463, 523, 464, 523, 480, 523,
749 /* 70 */ 479, 523, 481, 523, 482, 523, 483, 523, 484, 523,
750 /* 80 */ 485, 523, 486, 523, 487, 523, 488, 523, 523, 489,
751 /* 90 */ 491, 492, 523, 523, 498, 523, 523, 523, 499, 523,
752 /* 100 */ 514, 523, 490, 523, 523, 493, 523, 508, 494, 523,
753 /* 110 */ 495, 523, 523, 496, 523, 497, 506, 518, 523, 507,
754 /* 120 */ 509, 516, 517, 518, 519, 520, 521, 522, 505, 523,
755 /* 130 */ 510, 523, 512, 518, 523, 515, 511, 513, 523, 523,
756 /* 140 */ 500, 523, 523, 523, 523, 501, 523, 502, 517, 516,
757 /* 150 */ 466, 468, 470, 472, 474, 476, 478, 465, 467, 469,
758 /* 160 */ 471, 473, 475, 477, 523, 457, 523, 455, 453, 452,
759 /* 170 */ 523, 397, 523, 523, 523, 523, 523, 523, 523, 523,
760 /* 180 */ 398, 523, 523, 523, 523, 523, 523, 402, 523, 523,
761 /* 190 */ 404, 523, 405, 523, 523, 406, 523, 407, 523, 523,
762 /* 200 */ 409, 523, 410, 523, 411, 523, 412, 523, 413, 523,
763 /* 210 */ 523, 415, 523, 414, 416, 408, 523, 523, 523, 523,
764 /* 220 */ 523, 523, 523, 523, 417, 523, 523, 523, 523, 510,
765 /* 230 */ 523, 523, 523, 523, 429, 431, 523, 523, 523, 523,
766 /* 240 */ 523, 523, 433, 523, 523, 523, 523, 523, 523, 435,
767 /* 250 */ 523, 523, 523, 523, 432, 523, 523, 523, 439, 449,
768 /* 260 */ 523, 523, 440, 523, 523, 441, 523, 523, 442, 523,
769 /* 270 */ 523, 443, 523, 523, 444, 523, 523, 523, 523, 523,
770 /* 280 */ 523, 445, 523, 447, 523, 448, 368, 523, 523, 523,
771 /* 290 */ 523, 523, 446, 523, 523, 523, 523, 523, 436, 523,
772 /* 300 */ 523, 523, 523, 434, 511, 523, 523, 523, 430, 523,
773 /* 310 */ 523, 523, 523, 523, 523, 418, 523, 419, 421, 523,
774 /* 320 */ 422, 423, 424, 425, 426, 427, 428, 420, 523, 523,
775 /* 330 */ 403, 523, 523, 523, 523, 523, 523, 399, 523, 523,
776 /* 340 */ 523, 523, 523, 523, 523, 523, 400, 523, 523, 523,
777 /* 350 */ 523, 523, 523, 401, 523, 523, 394, 523, 523, 392,
778 /* 360 */ 523, 523, 523, 523, 395,
779 };
780 #define YY_SZ_ACTTAB (sizeof(yy_action)/sizeof(yy_action[0]))
781
782 /* The next table maps tokens into fallback tokens. If a construct
783 ** like the following:
784 **
785 ** %fallback ID X Y Z.
786 **
787 ** appears in the grammer, then ID becomes a fallback token for X, Y,
788 ** and Z. Whenever one of the tokens X, Y, or Z is input to the parser
789 ** but it does not parse, the type of the token is changed to ID and
790 ** the parse is retried before an error is thrown.
791 */
792 #ifdef YYFALLBACK
793 static const YYCODETYPE yyFallback[] = {
794 };
795 #endif /* YYFALLBACK */
796
797 /* The following structure represents a single element of the
798 ** parser's stack. Information stored includes:
799 **
800 ** + The state number for the parser at this level of the stack.
801 **
802 ** + The value of the token stored at this level of the stack.
803 ** (In other words, the "major" token.)
804 **
805 ** + The semantic value stored at this level of the stack. This is
806 ** the information used by the action routines in the grammar.
807 ** It is sometimes called the "minor" token.
808 */
809 struct yyStackEntry {
810 int stateno; /* The state-number */
811 int major; /* The major token value. This is the code
812 ** number for the token at this stack level */
813 YYMINORTYPE minor; /* The user-supplied minor token value. This
814 ** is the value of the token */
815 };
816 typedef struct yyStackEntry yyStackEntry;
817
818 /* The state of the parser is completely contained in an instance of
819 ** the following structure */
820 struct yyParser {
821 int yyidx; /* Index of top element in stack */
822 int yyerrcnt; /* Shifts left before out of the error */
823 phvolt_ARG_SDECL /* A place to hold %extra_argument */
824 yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */
825 };
826 typedef struct yyParser yyParser;
827
828 #ifndef NDEBUG
829 #include <stdio.h>
830 static FILE *yyTraceFILE = 0;
831 static char *yyTracePrompt = 0;
832 #endif /* NDEBUG */
833
834 #ifndef NDEBUG
835 /*
836 ** Turn parser tracing on by giving a stream to which to write the trace
837 ** and a prompt to preface each trace message. Tracing is turned off
838 ** by making either argument NULL
839 **
840 ** Inputs:
841 ** <ul>
842 ** <li> A FILE* to which trace output should be written.
843 ** If NULL, then tracing is turned off.
844 ** <li> A prefix string written at the beginning of every
845 ** line of trace output. If NULL, then tracing is
846 ** turned off.
847 ** </ul>
848 **
849 ** Outputs:
850 ** None.
851 */
phvolt_Trace(FILE * TraceFILE,char * zTracePrompt)852 void phvolt_Trace(FILE *TraceFILE, char *zTracePrompt){
853 yyTraceFILE = TraceFILE;
854 yyTracePrompt = zTracePrompt;
855 if( yyTraceFILE==0 ) yyTracePrompt = 0;
856 else if( yyTracePrompt==0 ) yyTraceFILE = 0;
857 }
858 #endif /* NDEBUG */
859
860 #ifndef NDEBUG
861 /* For tracing shifts, the names of all terminals and nonterminals
862 ** are required. The following table supplies these names */
863 static const char *yyTokenName[] = {
864 "$", "OPEN_DELIMITER", "COMMA", "IN",
865 "QUESTION", "COLON", "RANGE", "AND",
866 "OR", "IS", "EQUALS", "NOTEQUALS",
867 "LESS", "GREATER", "GREATEREQUAL", "LESSEQUAL",
868 "IDENTICAL", "NOTIDENTICAL", "DIVIDE", "TIMES",
869 "MOD", "PLUS", "MINUS", "CONCAT",
870 "SBRACKET_OPEN", "PIPE", "NOT", "INCR",
871 "DECR", "PARENTHESES_OPEN", "DOT", "IF",
872 "CLOSE_DELIMITER", "ENDIF", "ELSE", "ELSEIF",
873 "ELSEFOR", "FOR", "IDENTIFIER", "ENDFOR",
874 "SWITCH", "ENDSWITCH", "CASE", "DEFAULT",
875 "SET", "ASSIGN", "ADD_ASSIGN", "SUB_ASSIGN",
876 "MUL_ASSIGN", "DIV_ASSIGN", "SBRACKET_CLOSE", "MACRO",
877 "PARENTHESES_CLOSE", "ENDMACRO", "INTEGER", "STRING",
878 "DOUBLE", "NULL", "FALSE", "TRUE",
879 "CALL", "ENDCALL", "OPEN_EDELIMITER", "CLOSE_EDELIMITER",
880 "BLOCK", "ENDBLOCK", "CACHE", "ENDCACHE",
881 "RAW", "ENDRAW", "EXTENDS", "INCLUDE",
882 "WITH", "DO", "RETURN", "AUTOESCAPE",
883 "ENDAUTOESCAPE", "BREAK", "CONTINUE", "RAW_FRAGMENT",
884 "DEFINED", "EMPTY", "EVEN", "ODD",
885 "NUMERIC", "SCALAR", "ITERABLE", "CBRACKET_OPEN",
886 "CBRACKET_CLOSE", "error", "program", "volt_language",
887 "statement_list", "statement", "raw_fragment", "if_statement",
888 "elseif_statement", "elsefor_statement", "for_statement", "switch_statement",
889 "case_clause", "set_statement", "echo_statement", "block_statement",
890 "cache_statement", "extends_statement", "include_statement", "do_statement",
891 "return_statement", "autoescape_statement", "raw_statement", "break_statement",
892 "continue_statement", "macro_statement", "empty_statement", "macro_call_statement",
893 "expr", "set_assignments", "set_assignment", "assignable_expr",
894 "macro_parameters", "macro_parameter", "macro_parameter_default", "argument_list",
895 "cache_lifetime", "array_list", "slice_offset", "array_item",
896 "function_call", "argument_item",
897 };
898 #endif /* NDEBUG */
899
900 #ifndef NDEBUG
901 /* For tracing reduce actions, the names of all rules are required.
902 */
903 static const char *yyRuleName[] = {
904 /* 0 */ "program ::= volt_language",
905 /* 1 */ "volt_language ::= statement_list",
906 /* 2 */ "statement_list ::= statement_list statement",
907 /* 3 */ "statement_list ::= statement",
908 /* 4 */ "statement ::= raw_fragment",
909 /* 5 */ "statement ::= if_statement",
910 /* 6 */ "statement ::= elseif_statement",
911 /* 7 */ "statement ::= elsefor_statement",
912 /* 8 */ "statement ::= for_statement",
913 /* 9 */ "statement ::= switch_statement",
914 /* 10 */ "statement ::= case_clause",
915 /* 11 */ "statement ::= set_statement",
916 /* 12 */ "statement ::= echo_statement",
917 /* 13 */ "statement ::= block_statement",
918 /* 14 */ "statement ::= cache_statement",
919 /* 15 */ "statement ::= extends_statement",
920 /* 16 */ "statement ::= include_statement",
921 /* 17 */ "statement ::= do_statement",
922 /* 18 */ "statement ::= return_statement",
923 /* 19 */ "statement ::= autoescape_statement",
924 /* 20 */ "statement ::= raw_statement",
925 /* 21 */ "statement ::= break_statement",
926 /* 22 */ "statement ::= continue_statement",
927 /* 23 */ "statement ::= macro_statement",
928 /* 24 */ "statement ::= empty_statement",
929 /* 25 */ "statement ::= macro_call_statement",
930 /* 26 */ "if_statement ::= OPEN_DELIMITER IF expr CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDIF CLOSE_DELIMITER",
931 /* 27 */ "if_statement ::= OPEN_DELIMITER IF expr CLOSE_DELIMITER OPEN_DELIMITER ENDIF CLOSE_DELIMITER",
932 /* 28 */ "if_statement ::= OPEN_DELIMITER IF expr CLOSE_DELIMITER statement_list OPEN_DELIMITER ELSE CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDIF CLOSE_DELIMITER",
933 /* 29 */ "if_statement ::= OPEN_DELIMITER IF expr CLOSE_DELIMITER statement_list OPEN_DELIMITER ELSE CLOSE_DELIMITER OPEN_DELIMITER ENDIF CLOSE_DELIMITER",
934 /* 30 */ "if_statement ::= OPEN_DELIMITER IF expr CLOSE_DELIMITER OPEN_DELIMITER ELSE CLOSE_DELIMITER OPEN_DELIMITER ENDIF CLOSE_DELIMITER",
935 /* 31 */ "elseif_statement ::= OPEN_DELIMITER ELSEIF expr CLOSE_DELIMITER",
936 /* 32 */ "elsefor_statement ::= OPEN_DELIMITER ELSEFOR CLOSE_DELIMITER",
937 /* 33 */ "for_statement ::= OPEN_DELIMITER FOR IDENTIFIER IN expr CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDFOR CLOSE_DELIMITER",
938 /* 34 */ "for_statement ::= OPEN_DELIMITER FOR IDENTIFIER IN expr IF expr CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDFOR CLOSE_DELIMITER",
939 /* 35 */ "for_statement ::= OPEN_DELIMITER FOR IDENTIFIER COMMA IDENTIFIER IN expr CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDFOR CLOSE_DELIMITER",
940 /* 36 */ "for_statement ::= OPEN_DELIMITER FOR IDENTIFIER COMMA IDENTIFIER IN expr IF expr CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDFOR CLOSE_DELIMITER",
941 /* 37 */ "switch_statement ::= OPEN_DELIMITER SWITCH expr CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDSWITCH CLOSE_DELIMITER",
942 /* 38 */ "switch_statement ::= OPEN_DELIMITER SWITCH expr CLOSE_DELIMITER OPEN_DELIMITER ENDSWITCH CLOSE_DELIMITER",
943 /* 39 */ "case_clause ::= OPEN_DELIMITER CASE expr CLOSE_DELIMITER",
944 /* 40 */ "case_clause ::= OPEN_DELIMITER DEFAULT CLOSE_DELIMITER",
945 /* 41 */ "set_statement ::= OPEN_DELIMITER SET set_assignments CLOSE_DELIMITER",
946 /* 42 */ "set_assignments ::= set_assignments COMMA set_assignment",
947 /* 43 */ "set_assignments ::= set_assignment",
948 /* 44 */ "set_assignment ::= assignable_expr ASSIGN expr",
949 /* 45 */ "set_assignment ::= assignable_expr ADD_ASSIGN expr",
950 /* 46 */ "set_assignment ::= assignable_expr SUB_ASSIGN expr",
951 /* 47 */ "set_assignment ::= assignable_expr MUL_ASSIGN expr",
952 /* 48 */ "set_assignment ::= assignable_expr DIV_ASSIGN expr",
953 /* 49 */ "assignable_expr ::= IDENTIFIER",
954 /* 50 */ "assignable_expr ::= assignable_expr SBRACKET_OPEN expr SBRACKET_CLOSE",
955 /* 51 */ "assignable_expr ::= assignable_expr DOT assignable_expr",
956 /* 52 */ "macro_statement ::= OPEN_DELIMITER MACRO IDENTIFIER PARENTHESES_OPEN PARENTHESES_CLOSE CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDMACRO CLOSE_DELIMITER",
957 /* 53 */ "macro_statement ::= OPEN_DELIMITER MACRO IDENTIFIER PARENTHESES_OPEN macro_parameters PARENTHESES_CLOSE CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDMACRO CLOSE_DELIMITER",
958 /* 54 */ "macro_parameters ::= macro_parameters COMMA macro_parameter",
959 /* 55 */ "macro_parameters ::= macro_parameter",
960 /* 56 */ "macro_parameter ::= IDENTIFIER",
961 /* 57 */ "macro_parameter ::= IDENTIFIER ASSIGN macro_parameter_default",
962 /* 58 */ "macro_parameter_default ::= INTEGER",
963 /* 59 */ "macro_parameter_default ::= STRING",
964 /* 60 */ "macro_parameter_default ::= DOUBLE",
965 /* 61 */ "macro_parameter_default ::= NULL",
966 /* 62 */ "macro_parameter_default ::= FALSE",
967 /* 63 */ "macro_parameter_default ::= TRUE",
968 /* 64 */ "macro_call_statement ::= OPEN_DELIMITER CALL expr PARENTHESES_OPEN argument_list PARENTHESES_CLOSE CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDCALL CLOSE_DELIMITER",
969 /* 65 */ "macro_call_statement ::= OPEN_DELIMITER CALL expr PARENTHESES_OPEN PARENTHESES_CLOSE CLOSE_DELIMITER OPEN_DELIMITER ENDCALL CLOSE_DELIMITER",
970 /* 66 */ "empty_statement ::= OPEN_DELIMITER CLOSE_DELIMITER",
971 /* 67 */ "echo_statement ::= OPEN_EDELIMITER expr CLOSE_EDELIMITER",
972 /* 68 */ "block_statement ::= OPEN_DELIMITER BLOCK IDENTIFIER CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDBLOCK CLOSE_DELIMITER",
973 /* 69 */ "block_statement ::= OPEN_DELIMITER BLOCK IDENTIFIER CLOSE_DELIMITER OPEN_DELIMITER ENDBLOCK CLOSE_DELIMITER",
974 /* 70 */ "cache_statement ::= OPEN_DELIMITER CACHE expr CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDCACHE CLOSE_DELIMITER",
975 /* 71 */ "cache_statement ::= OPEN_DELIMITER CACHE expr cache_lifetime CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDCACHE CLOSE_DELIMITER",
976 /* 72 */ "cache_lifetime ::= INTEGER",
977 /* 73 */ "cache_lifetime ::= IDENTIFIER",
978 /* 74 */ "raw_statement ::= OPEN_DELIMITER RAW CLOSE_DELIMITER statement OPEN_DELIMITER ENDRAW CLOSE_DELIMITER",
979 /* 75 */ "extends_statement ::= OPEN_DELIMITER EXTENDS expr CLOSE_DELIMITER",
980 /* 76 */ "include_statement ::= OPEN_DELIMITER INCLUDE expr CLOSE_DELIMITER",
981 /* 77 */ "include_statement ::= OPEN_DELIMITER INCLUDE expr WITH expr CLOSE_DELIMITER",
982 /* 78 */ "do_statement ::= OPEN_DELIMITER DO expr CLOSE_DELIMITER",
983 /* 79 */ "return_statement ::= OPEN_DELIMITER RETURN expr CLOSE_DELIMITER",
984 /* 80 */ "autoescape_statement ::= OPEN_DELIMITER AUTOESCAPE FALSE CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDAUTOESCAPE CLOSE_DELIMITER",
985 /* 81 */ "autoescape_statement ::= OPEN_DELIMITER AUTOESCAPE TRUE CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDAUTOESCAPE CLOSE_DELIMITER",
986 /* 82 */ "break_statement ::= OPEN_DELIMITER BREAK CLOSE_DELIMITER",
987 /* 83 */ "continue_statement ::= OPEN_DELIMITER CONTINUE CLOSE_DELIMITER",
988 /* 84 */ "raw_fragment ::= RAW_FRAGMENT",
989 /* 85 */ "expr ::= MINUS expr",
990 /* 86 */ "expr ::= PLUS expr",
991 /* 87 */ "expr ::= expr MINUS expr",
992 /* 88 */ "expr ::= expr PLUS expr",
993 /* 89 */ "expr ::= expr TIMES expr",
994 /* 90 */ "expr ::= expr TIMES TIMES expr",
995 /* 91 */ "expr ::= expr DIVIDE expr",
996 /* 92 */ "expr ::= expr DIVIDE DIVIDE expr",
997 /* 93 */ "expr ::= expr MOD expr",
998 /* 94 */ "expr ::= expr AND expr",
999 /* 95 */ "expr ::= expr OR expr",
1000 /* 96 */ "expr ::= expr CONCAT expr",
1001 /* 97 */ "expr ::= expr PIPE expr",
1002 /* 98 */ "expr ::= expr RANGE expr",
1003 /* 99 */ "expr ::= expr EQUALS expr",
1004 /* 100 */ "expr ::= expr NOTEQUALS DEFINED",
1005 /* 101 */ "expr ::= expr IS DEFINED",
1006 /* 102 */ "expr ::= expr NOTEQUALS EMPTY",
1007 /* 103 */ "expr ::= expr IS EMPTY",
1008 /* 104 */ "expr ::= expr NOTEQUALS EVEN",
1009 /* 105 */ "expr ::= expr IS EVEN",
1010 /* 106 */ "expr ::= expr NOTEQUALS ODD",
1011 /* 107 */ "expr ::= expr IS ODD",
1012 /* 108 */ "expr ::= expr NOTEQUALS NUMERIC",
1013 /* 109 */ "expr ::= expr IS NUMERIC",
1014 /* 110 */ "expr ::= expr NOTEQUALS SCALAR",
1015 /* 111 */ "expr ::= expr IS SCALAR",
1016 /* 112 */ "expr ::= expr NOTEQUALS ITERABLE",
1017 /* 113 */ "expr ::= expr IS ITERABLE",
1018 /* 114 */ "expr ::= expr IS expr",
1019 /* 115 */ "expr ::= expr NOTEQUALS expr",
1020 /* 116 */ "expr ::= expr IDENTICAL expr",
1021 /* 117 */ "expr ::= expr NOTIDENTICAL expr",
1022 /* 118 */ "expr ::= expr LESS expr",
1023 /* 119 */ "expr ::= expr GREATER expr",
1024 /* 120 */ "expr ::= expr GREATEREQUAL expr",
1025 /* 121 */ "expr ::= expr LESSEQUAL expr",
1026 /* 122 */ "expr ::= expr DOT expr",
1027 /* 123 */ "expr ::= expr IN expr",
1028 /* 124 */ "expr ::= expr NOT IN expr",
1029 /* 125 */ "expr ::= NOT expr",
1030 /* 126 */ "expr ::= expr INCR",
1031 /* 127 */ "expr ::= expr DECR",
1032 /* 128 */ "expr ::= PARENTHESES_OPEN expr PARENTHESES_CLOSE",
1033 /* 129 */ "expr ::= SBRACKET_OPEN SBRACKET_CLOSE",
1034 /* 130 */ "expr ::= SBRACKET_OPEN array_list SBRACKET_CLOSE",
1035 /* 131 */ "expr ::= CBRACKET_OPEN CBRACKET_CLOSE",
1036 /* 132 */ "expr ::= CBRACKET_OPEN array_list CBRACKET_CLOSE",
1037 /* 133 */ "expr ::= expr SBRACKET_OPEN expr SBRACKET_CLOSE",
1038 /* 134 */ "expr ::= expr QUESTION expr COLON expr",
1039 /* 135 */ "expr ::= expr SBRACKET_OPEN COLON slice_offset SBRACKET_CLOSE",
1040 /* 136 */ "expr ::= expr SBRACKET_OPEN slice_offset COLON SBRACKET_CLOSE",
1041 /* 137 */ "expr ::= expr SBRACKET_OPEN slice_offset COLON slice_offset SBRACKET_CLOSE",
1042 /* 138 */ "slice_offset ::= INTEGER",
1043 /* 139 */ "slice_offset ::= IDENTIFIER",
1044 /* 140 */ "array_list ::= array_list COMMA array_item",
1045 /* 141 */ "array_list ::= array_item",
1046 /* 142 */ "array_item ::= STRING COLON expr",
1047 /* 143 */ "array_item ::= expr",
1048 /* 144 */ "expr ::= function_call",
1049 /* 145 */ "function_call ::= expr PARENTHESES_OPEN argument_list PARENTHESES_CLOSE",
1050 /* 146 */ "function_call ::= expr PARENTHESES_OPEN PARENTHESES_CLOSE",
1051 /* 147 */ "argument_list ::= argument_list COMMA argument_item",
1052 /* 148 */ "argument_list ::= argument_item",
1053 /* 149 */ "argument_item ::= expr",
1054 /* 150 */ "argument_item ::= STRING COLON expr",
1055 /* 151 */ "expr ::= IDENTIFIER",
1056 /* 152 */ "expr ::= INTEGER",
1057 /* 153 */ "expr ::= STRING",
1058 /* 154 */ "expr ::= DOUBLE",
1059 /* 155 */ "expr ::= NULL",
1060 /* 156 */ "expr ::= FALSE",
1061 /* 157 */ "expr ::= TRUE",
1062 };
1063 #endif /* NDEBUG */
1064
1065 /*
1066 ** This function returns the symbolic name associated with a token
1067 ** value.
1068 */
phvolt_TokenName(int tokenType)1069 const char *phvolt_TokenName(int tokenType){
1070 #ifndef NDEBUG
1071 if( tokenType>0 && tokenType<(sizeof(yyTokenName)/sizeof(yyTokenName[0])) ){
1072 return yyTokenName[tokenType];
1073 }else{
1074 return "Unknown";
1075 }
1076 #else
1077 return "";
1078 #endif
1079 }
1080
1081 /*
1082 ** This function allocates a new parser.
1083 ** The only argument is a pointer to a function which works like
1084 ** malloc.
1085 **
1086 ** Inputs:
1087 ** A pointer to the function used to allocate memory.
1088 **
1089 ** Outputs:
1090 ** A pointer to a parser. This pointer is used in subsequent calls
1091 ** to phvolt_ and phvolt_Free.
1092 */
phvolt_Alloc(void * (* mallocProc)(size_t))1093 void *phvolt_Alloc(void *(*mallocProc)(size_t)){
1094 yyParser *pParser;
1095 pParser = (yyParser*)(*mallocProc)( (size_t)sizeof(yyParser) );
1096 if( pParser ){
1097 pParser->yyidx = -1;
1098 }
1099 return pParser;
1100 }
1101
1102 /* The following function deletes the value associated with a
1103 ** symbol. The symbol can be either a terminal or nonterminal.
1104 ** "yymajor" is the symbol code, and "yypminor" is a pointer to
1105 ** the value.
1106 */
yy_destructor(YYCODETYPE yymajor,YYMINORTYPE * yypminor)1107 static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){
1108 switch( yymajor ){
1109 /* Here is inserted the actions which take place when a
1110 ** terminal or non-terminal is destroyed. This can happen
1111 ** when the symbol is popped from the stack during a
1112 ** reduce or during error processing or when a parser is
1113 ** being destroyed before it is finished parsing.
1114 **
1115 ** Note: during a reduce, the only symbols destroyed are those
1116 ** which appear on the RHS of the rule, but which are not used
1117 ** inside the C code.
1118 */
1119 case 1:
1120 case 2:
1121 case 3:
1122 case 4:
1123 case 5:
1124 case 6:
1125 case 7:
1126 case 8:
1127 case 9:
1128 case 10:
1129 case 11:
1130 case 12:
1131 case 13:
1132 case 14:
1133 case 15:
1134 case 16:
1135 case 17:
1136 case 18:
1137 case 19:
1138 case 20:
1139 case 21:
1140 case 22:
1141 case 23:
1142 case 24:
1143 case 25:
1144 case 26:
1145 case 27:
1146 case 28:
1147 case 29:
1148 case 30:
1149 case 31:
1150 case 32:
1151 case 33:
1152 case 34:
1153 case 35:
1154 case 36:
1155 case 37:
1156 case 38:
1157 case 39:
1158 case 40:
1159 case 41:
1160 case 42:
1161 case 43:
1162 case 44:
1163 case 45:
1164 case 46:
1165 case 47:
1166 case 48:
1167 case 49:
1168 case 50:
1169 case 51:
1170 case 52:
1171 case 53:
1172 case 54:
1173 case 55:
1174 case 56:
1175 case 57:
1176 case 58:
1177 case 59:
1178 case 60:
1179 case 61:
1180 case 62:
1181 case 63:
1182 case 64:
1183 case 65:
1184 case 66:
1185 case 67:
1186 case 68:
1187 case 69:
1188 case 70:
1189 case 71:
1190 case 72:
1191 case 73:
1192 case 74:
1193 case 75:
1194 case 76:
1195 case 77:
1196 case 78:
1197 case 79:
1198 case 80:
1199 case 81:
1200 case 82:
1201 case 83:
1202 case 84:
1203 case 85:
1204 case 86:
1205 case 87:
1206 case 88:
1207 #line 161 "parser.php5.lemon"
1208 {
1209 if ((yypminor->yy0)) {
1210 if ((yypminor->yy0)->free_flag) {
1211 efree((yypminor->yy0)->token);
1212 }
1213 efree((yypminor->yy0));
1214 }
1215 }
1216 #line 1217 "parser.php5.c"
1217 break;
1218 case 92:
1219 case 93:
1220 case 94:
1221 case 95:
1222 case 96:
1223 case 97:
1224 case 98:
1225 case 99:
1226 case 100:
1227 case 101:
1228 case 102:
1229 case 103:
1230 case 104:
1231 case 105:
1232 case 106:
1233 case 107:
1234 case 108:
1235 case 109:
1236 case 110:
1237 case 111:
1238 case 112:
1239 case 113:
1240 case 114:
1241 case 115:
1242 case 116:
1243 case 117:
1244 case 118:
1245 case 120:
1246 case 121:
1247 case 123:
1248 case 124:
1249 case 125:
1250 case 126:
1251 case 127:
1252 case 128:
1253 case 129:
1254 #line 178 "parser.php5.lemon"
1255 {
1256 #if PHP_VERSION_ID < 70000
1257 zval_ptr_dtor(&(yypminor->yy228));
1258 #endif
1259 }
1260 #line 1261 "parser.php5.c"
1261 break;
1262 default: break; /* If no destructor action specified: do nothing */
1263 }
1264 }
1265
1266 /*
1267 ** Pop the parser's stack once.
1268 **
1269 ** If there is a destructor routine associated with the token which
1270 ** is popped from the stack, then call it.
1271 **
1272 ** Return the major token number for the symbol popped.
1273 */
yy_pop_parser_stack(yyParser * pParser)1274 static int yy_pop_parser_stack(yyParser *pParser){
1275 YYCODETYPE yymajor;
1276 yyStackEntry *yytos = &pParser->yystack[pParser->yyidx];
1277
1278 if( pParser->yyidx<0 ) return 0;
1279 #ifndef NDEBUG
1280 if( yyTraceFILE && pParser->yyidx>=0 ){
1281 fprintf(yyTraceFILE,"%sPopping %s\n",
1282 yyTracePrompt,
1283 yyTokenName[yytos->major]);
1284 }
1285 #endif
1286 yymajor = yytos->major;
1287 yy_destructor( yymajor, &yytos->minor);
1288 pParser->yyidx--;
1289 return yymajor;
1290 }
1291
1292 /*
1293 ** Deallocate and destroy a parser. Destructors are all called for
1294 ** all stack elements before shutting the parser down.
1295 **
1296 ** Inputs:
1297 ** <ul>
1298 ** <li> A pointer to the parser. This should be a pointer
1299 ** obtained from phvolt_Alloc.
1300 ** <li> A pointer to a function used to reclaim memory obtained
1301 ** from malloc.
1302 ** </ul>
1303 */
phvolt_Free(void * p,void (* freeProc)(void *))1304 void phvolt_Free(
1305 void *p, /* The parser to be deleted */
1306 void (*freeProc)(void*) /* Function used to reclaim memory */
1307 ){
1308 yyParser *pParser = (yyParser*)p;
1309 if( pParser==0 ) return;
1310 while( pParser->yyidx>=0 ) yy_pop_parser_stack(pParser);
1311 (*freeProc)((void*)pParser);
1312 }
1313
1314 /*
1315 ** Find the appropriate action for a parser given the terminal
1316 ** look-ahead token iLookAhead.
1317 **
1318 ** If the look-ahead token is YYNOCODE, then check to see if the action is
1319 ** independent of the look-ahead. If it is, return the action, otherwise
1320 ** return YY_NO_ACTION.
1321 */
yy_find_shift_action(yyParser * pParser,int iLookAhead)1322 static int yy_find_shift_action(
1323 yyParser *pParser, /* The parser */
1324 int iLookAhead /* The look-ahead token */
1325 ){
1326 int i;
1327 int stateno = pParser->yystack[pParser->yyidx].stateno;
1328
1329 /* if( pParser->yyidx<0 ) return YY_NO_ACTION; */
1330 i = yy_shift_ofst[stateno];
1331 if( i==YY_SHIFT_USE_DFLT ){
1332 return yy_default[stateno];
1333 }
1334 if( iLookAhead==YYNOCODE ){
1335 return YY_NO_ACTION;
1336 }
1337 i += iLookAhead;
1338 if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){
1339 #ifdef YYFALLBACK
1340 int iFallback; /* Fallback token */
1341 if( iLookAhead<sizeof(yyFallback)/sizeof(yyFallback[0])
1342 && (iFallback = yyFallback[iLookAhead])!=0 ){
1343 #ifndef NDEBUG
1344 if( yyTraceFILE ){
1345 fprintf(yyTraceFILE, "%sFALLBACK %s => %s\n",
1346 yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]);
1347 }
1348 #endif
1349 return yy_find_shift_action(pParser, iFallback);
1350 }
1351 #endif
1352 return yy_default[stateno];
1353 }else{
1354 return yy_action[i];
1355 }
1356 }
1357
1358 /*
1359 ** Find the appropriate action for a parser given the non-terminal
1360 ** look-ahead token iLookAhead.
1361 **
1362 ** If the look-ahead token is YYNOCODE, then check to see if the action is
1363 ** independent of the look-ahead. If it is, return the action, otherwise
1364 ** return YY_NO_ACTION.
1365 */
yy_find_reduce_action(yyParser * pParser,int iLookAhead)1366 static int yy_find_reduce_action(
1367 yyParser *pParser, /* The parser */
1368 int iLookAhead /* The look-ahead token */
1369 ){
1370 int i;
1371 int stateno = pParser->yystack[pParser->yyidx].stateno;
1372
1373 i = yy_reduce_ofst[stateno];
1374 if( i==YY_REDUCE_USE_DFLT ){
1375 return yy_default[stateno];
1376 }
1377 if( iLookAhead==YYNOCODE ){
1378 return YY_NO_ACTION;
1379 }
1380 i += iLookAhead;
1381 if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){
1382 return yy_default[stateno];
1383 }else{
1384 return yy_action[i];
1385 }
1386 }
1387
1388 /*
1389 ** Perform a shift action.
1390 */
yy_shift(yyParser * yypParser,int yyNewState,int yyMajor,YYMINORTYPE * yypMinor)1391 static void yy_shift(
1392 yyParser *yypParser, /* The parser to be shifted */
1393 int yyNewState, /* The new state to shift in */
1394 int yyMajor, /* The major token to shift in */
1395 YYMINORTYPE *yypMinor /* Pointer ot the minor token to shift in */
1396 ){
1397 yyStackEntry *yytos;
1398 yypParser->yyidx++;
1399 if( yypParser->yyidx>=YYSTACKDEPTH ){
1400 phvolt_ARG_FETCH;
1401 yypParser->yyidx--;
1402 #ifndef NDEBUG
1403 if( yyTraceFILE ){
1404 fprintf(yyTraceFILE,"%sStack Overflow!\n",yyTracePrompt);
1405 }
1406 #endif
1407 while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser);
1408 /* Here code is inserted which will execute if the parser
1409 ** stack every overflows */
1410 phvolt_ARG_STORE; /* Suppress warning about unused %extra_argument var */
1411 return;
1412 }
1413 yytos = &yypParser->yystack[yypParser->yyidx];
1414 yytos->stateno = yyNewState;
1415 yytos->major = yyMajor;
1416 yytos->minor = *yypMinor;
1417 #ifndef NDEBUG
1418 if( yyTraceFILE && yypParser->yyidx>0 ){
1419 int i;
1420 fprintf(yyTraceFILE,"%sShift %d\n",yyTracePrompt,yyNewState);
1421 fprintf(yyTraceFILE,"%sStack:",yyTracePrompt);
1422 for(i=1; i<=yypParser->yyidx; i++)
1423 fprintf(yyTraceFILE," %s",yyTokenName[yypParser->yystack[i].major]);
1424 fprintf(yyTraceFILE,"\n");
1425 }
1426 #endif
1427 }
1428
1429 /* The following table contains information about every rule that
1430 ** is used during the reduce.
1431 */
1432 static struct {
1433 YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */
1434 unsigned char nrhs; /* Number of right-hand side symbols in the rule */
1435 } yyRuleInfo[] = {
1436 { 90, 1 },
1437 { 91, 1 },
1438 { 92, 2 },
1439 { 92, 1 },
1440 { 93, 1 },
1441 { 93, 1 },
1442 { 93, 1 },
1443 { 93, 1 },
1444 { 93, 1 },
1445 { 93, 1 },
1446 { 93, 1 },
1447 { 93, 1 },
1448 { 93, 1 },
1449 { 93, 1 },
1450 { 93, 1 },
1451 { 93, 1 },
1452 { 93, 1 },
1453 { 93, 1 },
1454 { 93, 1 },
1455 { 93, 1 },
1456 { 93, 1 },
1457 { 93, 1 },
1458 { 93, 1 },
1459 { 93, 1 },
1460 { 93, 1 },
1461 { 93, 1 },
1462 { 95, 8 },
1463 { 95, 7 },
1464 { 95, 12 },
1465 { 95, 11 },
1466 { 95, 10 },
1467 { 96, 4 },
1468 { 97, 3 },
1469 { 98, 10 },
1470 { 98, 12 },
1471 { 98, 12 },
1472 { 98, 14 },
1473 { 99, 8 },
1474 { 99, 7 },
1475 { 100, 4 },
1476 { 100, 3 },
1477 { 101, 4 },
1478 { 117, 3 },
1479 { 117, 1 },
1480 { 118, 3 },
1481 { 118, 3 },
1482 { 118, 3 },
1483 { 118, 3 },
1484 { 118, 3 },
1485 { 119, 1 },
1486 { 119, 4 },
1487 { 119, 3 },
1488 { 113, 10 },
1489 { 113, 11 },
1490 { 120, 3 },
1491 { 120, 1 },
1492 { 121, 1 },
1493 { 121, 3 },
1494 { 122, 1 },
1495 { 122, 1 },
1496 { 122, 1 },
1497 { 122, 1 },
1498 { 122, 1 },
1499 { 122, 1 },
1500 { 115, 11 },
1501 { 115, 9 },
1502 { 114, 2 },
1503 { 102, 3 },
1504 { 103, 8 },
1505 { 103, 7 },
1506 { 104, 8 },
1507 { 104, 9 },
1508 { 124, 1 },
1509 { 124, 1 },
1510 { 110, 7 },
1511 { 105, 4 },
1512 { 106, 4 },
1513 { 106, 6 },
1514 { 107, 4 },
1515 { 108, 4 },
1516 { 109, 8 },
1517 { 109, 8 },
1518 { 111, 3 },
1519 { 112, 3 },
1520 { 94, 1 },
1521 { 116, 2 },
1522 { 116, 2 },
1523 { 116, 3 },
1524 { 116, 3 },
1525 { 116, 3 },
1526 { 116, 4 },
1527 { 116, 3 },
1528 { 116, 4 },
1529 { 116, 3 },
1530 { 116, 3 },
1531 { 116, 3 },
1532 { 116, 3 },
1533 { 116, 3 },
1534 { 116, 3 },
1535 { 116, 3 },
1536 { 116, 3 },
1537 { 116, 3 },
1538 { 116, 3 },
1539 { 116, 3 },
1540 { 116, 3 },
1541 { 116, 3 },
1542 { 116, 3 },
1543 { 116, 3 },
1544 { 116, 3 },
1545 { 116, 3 },
1546 { 116, 3 },
1547 { 116, 3 },
1548 { 116, 3 },
1549 { 116, 3 },
1550 { 116, 3 },
1551 { 116, 3 },
1552 { 116, 3 },
1553 { 116, 3 },
1554 { 116, 3 },
1555 { 116, 3 },
1556 { 116, 3 },
1557 { 116, 3 },
1558 { 116, 3 },
1559 { 116, 3 },
1560 { 116, 4 },
1561 { 116, 2 },
1562 { 116, 2 },
1563 { 116, 2 },
1564 { 116, 3 },
1565 { 116, 2 },
1566 { 116, 3 },
1567 { 116, 2 },
1568 { 116, 3 },
1569 { 116, 4 },
1570 { 116, 5 },
1571 { 116, 5 },
1572 { 116, 5 },
1573 { 116, 6 },
1574 { 126, 1 },
1575 { 126, 1 },
1576 { 125, 3 },
1577 { 125, 1 },
1578 { 127, 3 },
1579 { 127, 1 },
1580 { 116, 1 },
1581 { 128, 4 },
1582 { 128, 3 },
1583 { 123, 3 },
1584 { 123, 1 },
1585 { 129, 1 },
1586 { 129, 3 },
1587 { 116, 1 },
1588 { 116, 1 },
1589 { 116, 1 },
1590 { 116, 1 },
1591 { 116, 1 },
1592 { 116, 1 },
1593 { 116, 1 },
1594 };
1595
1596 static void yy_accept(yyParser*); /* Forward Declaration */
1597
1598 /*
1599 ** Perform a reduce action and the shift that must immediately
1600 ** follow the reduce.
1601 */
yy_reduce(yyParser * yypParser,int yyruleno)1602 static void yy_reduce(
1603 yyParser *yypParser, /* The parser */
1604 int yyruleno /* Number of the rule by which to reduce */
1605 ){
1606 int yygoto; /* The next state */
1607 int yyact; /* The next action */
1608 YYMINORTYPE yygotominor; /* The LHS of the rule reduced */
1609 yyStackEntry *yymsp; /* The top of the parser's stack */
1610 int yysize; /* Amount to pop the stack */
1611 phvolt_ARG_FETCH;
1612 yymsp = &yypParser->yystack[yypParser->yyidx];
1613 #ifndef NDEBUG
1614 if( yyTraceFILE && yyruleno>=0
1615 && yyruleno<sizeof(yyRuleName)/sizeof(yyRuleName[0]) ){
1616 fprintf(yyTraceFILE, "%sReduce [%s].\n", yyTracePrompt,
1617 yyRuleName[yyruleno]);
1618 }
1619 #endif /* NDEBUG */
1620
1621 switch( yyruleno ){
1622 /* Beginning here are the reduction cases. A typical example
1623 ** follows:
1624 ** case 0:
1625 ** #line <lineno> <grammarfile>
1626 ** { ... } // User supplied code
1627 ** #line <lineno> <thisfile>
1628 ** break;
1629 */
1630 case 0:
1631 #line 170 "parser.php5.lemon"
1632 {
1633 status->ret = yymsp[0].minor.yy228;
1634 }
1635 #line 1636 "parser.php5.c"
1636 break;
1637 case 1:
1638 case 4:
1639 case 5:
1640 case 6:
1641 case 7:
1642 case 8:
1643 case 9:
1644 case 10:
1645 case 11:
1646 case 12:
1647 case 13:
1648 case 14:
1649 case 15:
1650 case 16:
1651 case 17:
1652 case 18:
1653 case 19:
1654 case 20:
1655 case 21:
1656 case 22:
1657 case 23:
1658 case 24:
1659 case 25:
1660 case 144:
1661 #line 174 "parser.php5.lemon"
1662 {
1663 yygotominor.yy228 = yymsp[0].minor.yy228;
1664 }
1665 #line 1666 "parser.php5.c"
1666 break;
1667 case 2:
1668 #line 184 "parser.php5.lemon"
1669 {
1670 yygotominor.yy228 = phvolt_ret_zval_list(yymsp[-1].minor.yy228, yymsp[0].minor.yy228);
1671 }
1672 #line 1673 "parser.php5.c"
1673 break;
1674 case 3:
1675 case 43:
1676 case 55:
1677 case 141:
1678 case 148:
1679 #line 188 "parser.php5.lemon"
1680 {
1681 yygotominor.yy228 = phvolt_ret_zval_list(NULL, yymsp[0].minor.yy228);
1682 }
1683 #line 1684 "parser.php5.c"
1684 break;
1685 case 26:
1686 #line 293 "parser.php5.lemon"
1687 {
1688 yygotominor.yy228 = phvolt_ret_if_statement(yymsp[-5].minor.yy228, yymsp[-3].minor.yy228, NULL, status->scanner_state);
1689 yy_destructor(1,&yymsp[-7].minor);
1690 yy_destructor(31,&yymsp[-6].minor);
1691 yy_destructor(32,&yymsp[-4].minor);
1692 yy_destructor(1,&yymsp[-2].minor);
1693 yy_destructor(33,&yymsp[-1].minor);
1694 yy_destructor(32,&yymsp[0].minor);
1695 }
1696 #line 1697 "parser.php5.c"
1697 break;
1698 case 27:
1699 #line 298 "parser.php5.lemon"
1700 {
1701 yygotominor.yy228 = phvolt_ret_if_statement(yymsp[-4].minor.yy228, NULL, NULL, status->scanner_state);
1702 yy_destructor(1,&yymsp[-6].minor);
1703 yy_destructor(31,&yymsp[-5].minor);
1704 yy_destructor(32,&yymsp[-3].minor);
1705 yy_destructor(1,&yymsp[-2].minor);
1706 yy_destructor(33,&yymsp[-1].minor);
1707 yy_destructor(32,&yymsp[0].minor);
1708 }
1709 #line 1710 "parser.php5.c"
1710 break;
1711 case 28:
1712 #line 303 "parser.php5.lemon"
1713 {
1714 yygotominor.yy228 = phvolt_ret_if_statement(yymsp[-9].minor.yy228, yymsp[-7].minor.yy228, yymsp[-3].minor.yy228, status->scanner_state);
1715 yy_destructor(1,&yymsp[-11].minor);
1716 yy_destructor(31,&yymsp[-10].minor);
1717 yy_destructor(32,&yymsp[-8].minor);
1718 yy_destructor(1,&yymsp[-6].minor);
1719 yy_destructor(34,&yymsp[-5].minor);
1720 yy_destructor(32,&yymsp[-4].minor);
1721 yy_destructor(1,&yymsp[-2].minor);
1722 yy_destructor(33,&yymsp[-1].minor);
1723 yy_destructor(32,&yymsp[0].minor);
1724 }
1725 #line 1726 "parser.php5.c"
1726 break;
1727 case 29:
1728 #line 308 "parser.php5.lemon"
1729 {
1730 yygotominor.yy228 = phvolt_ret_if_statement(yymsp[-8].minor.yy228, yymsp[-6].minor.yy228, NULL, status->scanner_state);
1731 yy_destructor(1,&yymsp[-10].minor);
1732 yy_destructor(31,&yymsp[-9].minor);
1733 yy_destructor(32,&yymsp[-7].minor);
1734 yy_destructor(1,&yymsp[-5].minor);
1735 yy_destructor(34,&yymsp[-4].minor);
1736 yy_destructor(32,&yymsp[-3].minor);
1737 yy_destructor(1,&yymsp[-2].minor);
1738 yy_destructor(33,&yymsp[-1].minor);
1739 yy_destructor(32,&yymsp[0].minor);
1740 }
1741 #line 1742 "parser.php5.c"
1742 break;
1743 case 30:
1744 #line 313 "parser.php5.lemon"
1745 {
1746 yygotominor.yy228 = phvolt_ret_if_statement(yymsp[-7].minor.yy228, NULL, NULL, status->scanner_state);
1747 yy_destructor(1,&yymsp[-9].minor);
1748 yy_destructor(31,&yymsp[-8].minor);
1749 yy_destructor(32,&yymsp[-6].minor);
1750 yy_destructor(1,&yymsp[-5].minor);
1751 yy_destructor(34,&yymsp[-4].minor);
1752 yy_destructor(32,&yymsp[-3].minor);
1753 yy_destructor(1,&yymsp[-2].minor);
1754 yy_destructor(33,&yymsp[-1].minor);
1755 yy_destructor(32,&yymsp[0].minor);
1756 }
1757 #line 1758 "parser.php5.c"
1758 break;
1759 case 31:
1760 #line 323 "parser.php5.lemon"
1761 {
1762 yygotominor.yy228 = phvolt_ret_elseif_statement(yymsp[-1].minor.yy228, status->scanner_state);
1763 yy_destructor(1,&yymsp[-3].minor);
1764 yy_destructor(35,&yymsp[-2].minor);
1765 yy_destructor(32,&yymsp[0].minor);
1766 }
1767 #line 1768 "parser.php5.c"
1768 break;
1769 case 32:
1770 #line 333 "parser.php5.lemon"
1771 {
1772 yygotominor.yy228 = phvolt_ret_elsefor_statement(status->scanner_state);
1773 yy_destructor(1,&yymsp[-2].minor);
1774 yy_destructor(36,&yymsp[-1].minor);
1775 yy_destructor(32,&yymsp[0].minor);
1776 }
1777 #line 1778 "parser.php5.c"
1778 break;
1779 case 33:
1780 #line 343 "parser.php5.lemon"
1781 {
1782 yygotominor.yy228 = phvolt_ret_for_statement(yymsp[-7].minor.yy0, NULL, yymsp[-5].minor.yy228, NULL, yymsp[-3].minor.yy228, status->scanner_state);
1783 yy_destructor(1,&yymsp[-9].minor);
1784 yy_destructor(37,&yymsp[-8].minor);
1785 yy_destructor(3,&yymsp[-6].minor);
1786 yy_destructor(32,&yymsp[-4].minor);
1787 yy_destructor(1,&yymsp[-2].minor);
1788 yy_destructor(39,&yymsp[-1].minor);
1789 yy_destructor(32,&yymsp[0].minor);
1790 }
1791 #line 1792 "parser.php5.c"
1792 break;
1793 case 34:
1794 #line 347 "parser.php5.lemon"
1795 {
1796 yygotominor.yy228 = phvolt_ret_for_statement(yymsp[-9].minor.yy0, NULL, yymsp[-7].minor.yy228, yymsp[-5].minor.yy228, yymsp[-3].minor.yy228, status->scanner_state);
1797 yy_destructor(1,&yymsp[-11].minor);
1798 yy_destructor(37,&yymsp[-10].minor);
1799 yy_destructor(3,&yymsp[-8].minor);
1800 yy_destructor(31,&yymsp[-6].minor);
1801 yy_destructor(32,&yymsp[-4].minor);
1802 yy_destructor(1,&yymsp[-2].minor);
1803 yy_destructor(39,&yymsp[-1].minor);
1804 yy_destructor(32,&yymsp[0].minor);
1805 }
1806 #line 1807 "parser.php5.c"
1807 break;
1808 case 35:
1809 #line 351 "parser.php5.lemon"
1810 {
1811 yygotominor.yy228 = phvolt_ret_for_statement(yymsp[-7].minor.yy0, yymsp[-9].minor.yy0, yymsp[-5].minor.yy228, NULL, yymsp[-3].minor.yy228, status->scanner_state);
1812 yy_destructor(1,&yymsp[-11].minor);
1813 yy_destructor(37,&yymsp[-10].minor);
1814 yy_destructor(2,&yymsp[-8].minor);
1815 yy_destructor(3,&yymsp[-6].minor);
1816 yy_destructor(32,&yymsp[-4].minor);
1817 yy_destructor(1,&yymsp[-2].minor);
1818 yy_destructor(39,&yymsp[-1].minor);
1819 yy_destructor(32,&yymsp[0].minor);
1820 }
1821 #line 1822 "parser.php5.c"
1822 break;
1823 case 36:
1824 #line 355 "parser.php5.lemon"
1825 {
1826 yygotominor.yy228 = phvolt_ret_for_statement(yymsp[-9].minor.yy0, yymsp[-11].minor.yy0, yymsp[-7].minor.yy228, yymsp[-5].minor.yy228, yymsp[-3].minor.yy228, status->scanner_state);
1827 yy_destructor(1,&yymsp[-13].minor);
1828 yy_destructor(37,&yymsp[-12].minor);
1829 yy_destructor(2,&yymsp[-10].minor);
1830 yy_destructor(3,&yymsp[-8].minor);
1831 yy_destructor(31,&yymsp[-6].minor);
1832 yy_destructor(32,&yymsp[-4].minor);
1833 yy_destructor(1,&yymsp[-2].minor);
1834 yy_destructor(39,&yymsp[-1].minor);
1835 yy_destructor(32,&yymsp[0].minor);
1836 }
1837 #line 1838 "parser.php5.c"
1838 break;
1839 case 37:
1840 #line 366 "parser.php5.lemon"
1841 {
1842 yygotominor.yy228 = phvolt_ret_switch_statement(yymsp[-5].minor.yy228, yymsp[-3].minor.yy228, status->scanner_state);
1843 yy_destructor(1,&yymsp[-7].minor);
1844 yy_destructor(40,&yymsp[-6].minor);
1845 yy_destructor(32,&yymsp[-4].minor);
1846 yy_destructor(1,&yymsp[-2].minor);
1847 yy_destructor(41,&yymsp[-1].minor);
1848 yy_destructor(32,&yymsp[0].minor);
1849 }
1850 #line 1851 "parser.php5.c"
1851 break;
1852 case 38:
1853 #line 371 "parser.php5.lemon"
1854 {
1855 yygotominor.yy228 = phvolt_ret_switch_statement(yymsp[-4].minor.yy228, NULL, status->scanner_state);
1856 yy_destructor(1,&yymsp[-6].minor);
1857 yy_destructor(40,&yymsp[-5].minor);
1858 yy_destructor(32,&yymsp[-3].minor);
1859 yy_destructor(1,&yymsp[-2].minor);
1860 yy_destructor(41,&yymsp[-1].minor);
1861 yy_destructor(32,&yymsp[0].minor);
1862 }
1863 #line 1864 "parser.php5.c"
1864 break;
1865 case 39:
1866 #line 382 "parser.php5.lemon"
1867 {
1868 yygotominor.yy228 = phvolt_ret_case_clause(yymsp[-1].minor.yy228, status->scanner_state);
1869 yy_destructor(1,&yymsp[-3].minor);
1870 yy_destructor(42,&yymsp[-2].minor);
1871 yy_destructor(32,&yymsp[0].minor);
1872 }
1873 #line 1874 "parser.php5.c"
1874 break;
1875 case 40:
1876 #line 387 "parser.php5.lemon"
1877 {
1878 yygotominor.yy228 = phvolt_ret_case_clause(NULL, status->scanner_state);
1879 yy_destructor(1,&yymsp[-2].minor);
1880 yy_destructor(43,&yymsp[-1].minor);
1881 yy_destructor(32,&yymsp[0].minor);
1882 }
1883 #line 1884 "parser.php5.c"
1884 break;
1885 case 41:
1886 #line 397 "parser.php5.lemon"
1887 {
1888 yygotominor.yy228 = phvolt_ret_set_statement(yymsp[-1].minor.yy228);
1889 yy_destructor(1,&yymsp[-3].minor);
1890 yy_destructor(44,&yymsp[-2].minor);
1891 yy_destructor(32,&yymsp[0].minor);
1892 }
1893 #line 1894 "parser.php5.c"
1894 break;
1895 case 42:
1896 case 54:
1897 case 140:
1898 case 147:
1899 #line 407 "parser.php5.lemon"
1900 {
1901 yygotominor.yy228 = phvolt_ret_zval_list(yymsp[-2].minor.yy228, yymsp[0].minor.yy228);
1902 yy_destructor(2,&yymsp[-1].minor);
1903 }
1904 #line 1905 "parser.php5.c"
1905 break;
1906 case 44:
1907 #line 421 "parser.php5.lemon"
1908 {
1909 yygotominor.yy228 = phvolt_ret_set_assignment(yymsp[-2].minor.yy228, PHVOLT_T_ASSIGN, yymsp[0].minor.yy228, status->scanner_state);
1910 yy_destructor(45,&yymsp[-1].minor);
1911 }
1912 #line 1913 "parser.php5.c"
1913 break;
1914 case 45:
1915 #line 425 "parser.php5.lemon"
1916 {
1917 yygotominor.yy228 = phvolt_ret_set_assignment(yymsp[-2].minor.yy228, PHVOLT_T_ADD_ASSIGN, yymsp[0].minor.yy228, status->scanner_state);
1918 yy_destructor(46,&yymsp[-1].minor);
1919 }
1920 #line 1921 "parser.php5.c"
1921 break;
1922 case 46:
1923 #line 429 "parser.php5.lemon"
1924 {
1925 yygotominor.yy228 = phvolt_ret_set_assignment(yymsp[-2].minor.yy228, PHVOLT_T_SUB_ASSIGN, yymsp[0].minor.yy228, status->scanner_state);
1926 yy_destructor(47,&yymsp[-1].minor);
1927 }
1928 #line 1929 "parser.php5.c"
1929 break;
1930 case 47:
1931 #line 433 "parser.php5.lemon"
1932 {
1933 yygotominor.yy228 = phvolt_ret_set_assignment(yymsp[-2].minor.yy228, PHVOLT_T_MUL_ASSIGN, yymsp[0].minor.yy228, status->scanner_state);
1934 yy_destructor(48,&yymsp[-1].minor);
1935 }
1936 #line 1937 "parser.php5.c"
1937 break;
1938 case 48:
1939 #line 437 "parser.php5.lemon"
1940 {
1941 yygotominor.yy228 = phvolt_ret_set_assignment(yymsp[-2].minor.yy228, PHVOLT_T_DIV_ASSIGN, yymsp[0].minor.yy228, status->scanner_state);
1942 yy_destructor(49,&yymsp[-1].minor);
1943 }
1944 #line 1945 "parser.php5.c"
1945 break;
1946 case 49:
1947 case 73:
1948 case 139:
1949 case 151:
1950 #line 441 "parser.php5.lemon"
1951 {
1952 yygotominor.yy228 = phvolt_ret_literal_zval(PHVOLT_T_IDENTIFIER, yymsp[0].minor.yy0, status->scanner_state);
1953 }
1954 #line 1955 "parser.php5.c"
1955 break;
1956 case 50:
1957 case 133:
1958 #line 445 "parser.php5.lemon"
1959 {
1960 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_ARRAYACCESS, yymsp[-3].minor.yy228, yymsp[-1].minor.yy228, NULL, status->scanner_state);
1961 yy_destructor(24,&yymsp[-2].minor);
1962 yy_destructor(50,&yymsp[0].minor);
1963 }
1964 #line 1965 "parser.php5.c"
1965 break;
1966 case 51:
1967 case 122:
1968 #line 449 "parser.php5.lemon"
1969 {
1970 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_DOT, yymsp[-2].minor.yy228, yymsp[0].minor.yy228, NULL, status->scanner_state);
1971 yy_destructor(30,&yymsp[-1].minor);
1972 }
1973 #line 1974 "parser.php5.c"
1974 break;
1975 case 52:
1976 #line 459 "parser.php5.lemon"
1977 {
1978 yygotominor.yy228 = phvolt_ret_macro_statement(yymsp[-7].minor.yy0, NULL, yymsp[-3].minor.yy228, status->scanner_state);
1979 yy_destructor(1,&yymsp[-9].minor);
1980 yy_destructor(51,&yymsp[-8].minor);
1981 yy_destructor(29,&yymsp[-6].minor);
1982 yy_destructor(52,&yymsp[-5].minor);
1983 yy_destructor(32,&yymsp[-4].minor);
1984 yy_destructor(1,&yymsp[-2].minor);
1985 yy_destructor(53,&yymsp[-1].minor);
1986 yy_destructor(32,&yymsp[0].minor);
1987 }
1988 #line 1989 "parser.php5.c"
1989 break;
1990 case 53:
1991 #line 463 "parser.php5.lemon"
1992 {
1993 yygotominor.yy228 = phvolt_ret_macro_statement(yymsp[-8].minor.yy0, yymsp[-6].minor.yy228, yymsp[-3].minor.yy228, status->scanner_state);
1994 yy_destructor(1,&yymsp[-10].minor);
1995 yy_destructor(51,&yymsp[-9].minor);
1996 yy_destructor(29,&yymsp[-7].minor);
1997 yy_destructor(52,&yymsp[-5].minor);
1998 yy_destructor(32,&yymsp[-4].minor);
1999 yy_destructor(1,&yymsp[-2].minor);
2000 yy_destructor(53,&yymsp[-1].minor);
2001 yy_destructor(32,&yymsp[0].minor);
2002 }
2003 #line 2004 "parser.php5.c"
2004 break;
2005 case 56:
2006 #line 487 "parser.php5.lemon"
2007 {
2008 yygotominor.yy228 = phvolt_ret_macro_parameter(yymsp[0].minor.yy0, NULL, status->scanner_state);
2009 }
2010 #line 2011 "parser.php5.c"
2011 break;
2012 case 57:
2013 #line 491 "parser.php5.lemon"
2014 {
2015 yygotominor.yy228 = phvolt_ret_macro_parameter(yymsp[-2].minor.yy0, yymsp[0].minor.yy228, status->scanner_state);
2016 yy_destructor(45,&yymsp[-1].minor);
2017 }
2018 #line 2019 "parser.php5.c"
2019 break;
2020 case 58:
2021 case 72:
2022 case 138:
2023 case 152:
2024 #line 495 "parser.php5.lemon"
2025 {
2026 yygotominor.yy228 = phvolt_ret_literal_zval(PHVOLT_T_INTEGER, yymsp[0].minor.yy0, status->scanner_state);
2027 }
2028 #line 2029 "parser.php5.c"
2029 break;
2030 case 59:
2031 case 153:
2032 #line 499 "parser.php5.lemon"
2033 {
2034 yygotominor.yy228 = phvolt_ret_literal_zval(PHVOLT_T_STRING, yymsp[0].minor.yy0, status->scanner_state);
2035 }
2036 #line 2037 "parser.php5.c"
2037 break;
2038 case 60:
2039 case 154:
2040 #line 503 "parser.php5.lemon"
2041 {
2042 yygotominor.yy228 = phvolt_ret_literal_zval(PHVOLT_T_DOUBLE, yymsp[0].minor.yy0, status->scanner_state);
2043 }
2044 #line 2045 "parser.php5.c"
2045 break;
2046 case 61:
2047 case 155:
2048 #line 507 "parser.php5.lemon"
2049 {
2050 yygotominor.yy228 = phvolt_ret_literal_zval(PHVOLT_T_NULL, NULL, status->scanner_state);
2051 yy_destructor(57,&yymsp[0].minor);
2052 }
2053 #line 2054 "parser.php5.c"
2054 break;
2055 case 62:
2056 case 156:
2057 #line 511 "parser.php5.lemon"
2058 {
2059 yygotominor.yy228 = phvolt_ret_literal_zval(PHVOLT_T_FALSE, NULL, status->scanner_state);
2060 yy_destructor(58,&yymsp[0].minor);
2061 }
2062 #line 2063 "parser.php5.c"
2063 break;
2064 case 63:
2065 case 157:
2066 #line 515 "parser.php5.lemon"
2067 {
2068 yygotominor.yy228 = phvolt_ret_literal_zval(PHVOLT_T_TRUE, NULL, status->scanner_state);
2069 yy_destructor(59,&yymsp[0].minor);
2070 }
2071 #line 2072 "parser.php5.c"
2072 break;
2073 case 64:
2074 #line 525 "parser.php5.lemon"
2075 {
2076 yygotominor.yy228 = phvolt_ret_macro_call_statement(yymsp[-8].minor.yy228, yymsp[-6].minor.yy228, yymsp[-3].minor.yy228, status->scanner_state);
2077 yy_destructor(1,&yymsp[-10].minor);
2078 yy_destructor(60,&yymsp[-9].minor);
2079 yy_destructor(29,&yymsp[-7].minor);
2080 yy_destructor(52,&yymsp[-5].minor);
2081 yy_destructor(32,&yymsp[-4].minor);
2082 yy_destructor(1,&yymsp[-2].minor);
2083 yy_destructor(61,&yymsp[-1].minor);
2084 yy_destructor(32,&yymsp[0].minor);
2085 }
2086 #line 2087 "parser.php5.c"
2087 break;
2088 case 65:
2089 #line 529 "parser.php5.lemon"
2090 {
2091 yygotominor.yy228 = phvolt_ret_macro_call_statement(yymsp[-6].minor.yy228, NULL, NULL, status->scanner_state);
2092 yy_destructor(1,&yymsp[-8].minor);
2093 yy_destructor(60,&yymsp[-7].minor);
2094 yy_destructor(29,&yymsp[-5].minor);
2095 yy_destructor(52,&yymsp[-4].minor);
2096 yy_destructor(32,&yymsp[-3].minor);
2097 yy_destructor(1,&yymsp[-2].minor);
2098 yy_destructor(61,&yymsp[-1].minor);
2099 yy_destructor(32,&yymsp[0].minor);
2100 }
2101 #line 2102 "parser.php5.c"
2102 break;
2103 case 66:
2104 #line 539 "parser.php5.lemon"
2105 {
2106 yygotominor.yy228 = phvolt_ret_empty_statement(status->scanner_state);
2107 yy_destructor(1,&yymsp[-1].minor);
2108 yy_destructor(32,&yymsp[0].minor);
2109 }
2110 #line 2111 "parser.php5.c"
2111 break;
2112 case 67:
2113 #line 549 "parser.php5.lemon"
2114 {
2115 yygotominor.yy228 = phvolt_ret_echo_statement(yymsp[-1].minor.yy228, status->scanner_state);
2116 yy_destructor(62,&yymsp[-2].minor);
2117 yy_destructor(63,&yymsp[0].minor);
2118 }
2119 #line 2120 "parser.php5.c"
2120 break;
2121 case 68:
2122 #line 559 "parser.php5.lemon"
2123 {
2124 yygotominor.yy228 = phvolt_ret_block_statement(yymsp[-5].minor.yy0, yymsp[-3].minor.yy228, status->scanner_state);
2125 yy_destructor(1,&yymsp[-7].minor);
2126 yy_destructor(64,&yymsp[-6].minor);
2127 yy_destructor(32,&yymsp[-4].minor);
2128 yy_destructor(1,&yymsp[-2].minor);
2129 yy_destructor(65,&yymsp[-1].minor);
2130 yy_destructor(32,&yymsp[0].minor);
2131 }
2132 #line 2133 "parser.php5.c"
2133 break;
2134 case 69:
2135 #line 563 "parser.php5.lemon"
2136 {
2137 yygotominor.yy228 = phvolt_ret_block_statement(yymsp[-4].minor.yy0, NULL, status->scanner_state);
2138 yy_destructor(1,&yymsp[-6].minor);
2139 yy_destructor(64,&yymsp[-5].minor);
2140 yy_destructor(32,&yymsp[-3].minor);
2141 yy_destructor(1,&yymsp[-2].minor);
2142 yy_destructor(65,&yymsp[-1].minor);
2143 yy_destructor(32,&yymsp[0].minor);
2144 }
2145 #line 2146 "parser.php5.c"
2146 break;
2147 case 70:
2148 #line 573 "parser.php5.lemon"
2149 {
2150 yygotominor.yy228 = phvolt_ret_cache_statement(yymsp[-5].minor.yy228, NULL, yymsp[-3].minor.yy228, status->scanner_state);
2151 yy_destructor(1,&yymsp[-7].minor);
2152 yy_destructor(66,&yymsp[-6].minor);
2153 yy_destructor(32,&yymsp[-4].minor);
2154 yy_destructor(1,&yymsp[-2].minor);
2155 yy_destructor(67,&yymsp[-1].minor);
2156 yy_destructor(32,&yymsp[0].minor);
2157 }
2158 #line 2159 "parser.php5.c"
2159 break;
2160 case 71:
2161 #line 577 "parser.php5.lemon"
2162 {
2163 yygotominor.yy228 = phvolt_ret_cache_statement(yymsp[-6].minor.yy228, yymsp[-5].minor.yy228, yymsp[-3].minor.yy228, status->scanner_state);
2164 yy_destructor(1,&yymsp[-8].minor);
2165 yy_destructor(66,&yymsp[-7].minor);
2166 yy_destructor(32,&yymsp[-4].minor);
2167 yy_destructor(1,&yymsp[-2].minor);
2168 yy_destructor(67,&yymsp[-1].minor);
2169 yy_destructor(32,&yymsp[0].minor);
2170 }
2171 #line 2172 "parser.php5.c"
2172 break;
2173 case 74:
2174 #line 601 "parser.php5.lemon"
2175 {
2176 yygotominor.yy228 = phvolt_ret_raw_statement(yymsp[-3].minor.yy228, status->scanner_state);
2177 yy_destructor(1,&yymsp[-6].minor);
2178 yy_destructor(68,&yymsp[-5].minor);
2179 yy_destructor(32,&yymsp[-4].minor);
2180 yy_destructor(1,&yymsp[-2].minor);
2181 yy_destructor(69,&yymsp[-1].minor);
2182 yy_destructor(32,&yymsp[0].minor);
2183 }
2184 #line 2185 "parser.php5.c"
2185 break;
2186 case 75:
2187 #line 611 "parser.php5.lemon"
2188 {
2189 yygotominor.yy228 = phvolt_ret_extends_statement(yymsp[-1].minor.yy228, status->scanner_state);
2190 yy_destructor(1,&yymsp[-3].minor);
2191 yy_destructor(70,&yymsp[-2].minor);
2192 yy_destructor(32,&yymsp[0].minor);
2193 }
2194 #line 2195 "parser.php5.c"
2195 break;
2196 case 76:
2197 #line 621 "parser.php5.lemon"
2198 {
2199 yygotominor.yy228 = phvolt_ret_include_statement(yymsp[-1].minor.yy228, NULL, status->scanner_state);
2200 yy_destructor(1,&yymsp[-3].minor);
2201 yy_destructor(71,&yymsp[-2].minor);
2202 yy_destructor(32,&yymsp[0].minor);
2203 }
2204 #line 2205 "parser.php5.c"
2205 break;
2206 case 77:
2207 #line 625 "parser.php5.lemon"
2208 {
2209 yygotominor.yy228 = phvolt_ret_include_statement(yymsp[-3].minor.yy228, yymsp[-1].minor.yy228, status->scanner_state);
2210 yy_destructor(1,&yymsp[-5].minor);
2211 yy_destructor(71,&yymsp[-4].minor);
2212 yy_destructor(72,&yymsp[-2].minor);
2213 yy_destructor(32,&yymsp[0].minor);
2214 }
2215 #line 2216 "parser.php5.c"
2216 break;
2217 case 78:
2218 #line 635 "parser.php5.lemon"
2219 {
2220 yygotominor.yy228 = phvolt_ret_do_statement(yymsp[-1].minor.yy228, status->scanner_state);
2221 yy_destructor(1,&yymsp[-3].minor);
2222 yy_destructor(73,&yymsp[-2].minor);
2223 yy_destructor(32,&yymsp[0].minor);
2224 }
2225 #line 2226 "parser.php5.c"
2226 break;
2227 case 79:
2228 #line 645 "parser.php5.lemon"
2229 {
2230 yygotominor.yy228 = phvolt_ret_return_statement(yymsp[-1].minor.yy228, status->scanner_state);
2231 yy_destructor(1,&yymsp[-3].minor);
2232 yy_destructor(74,&yymsp[-2].minor);
2233 yy_destructor(32,&yymsp[0].minor);
2234 }
2235 #line 2236 "parser.php5.c"
2236 break;
2237 case 80:
2238 #line 655 "parser.php5.lemon"
2239 {
2240 yygotominor.yy228 = phvolt_ret_autoescape_statement(0, yymsp[-3].minor.yy228, status->scanner_state);
2241 yy_destructor(1,&yymsp[-7].minor);
2242 yy_destructor(75,&yymsp[-6].minor);
2243 yy_destructor(58,&yymsp[-5].minor);
2244 yy_destructor(32,&yymsp[-4].minor);
2245 yy_destructor(1,&yymsp[-2].minor);
2246 yy_destructor(76,&yymsp[-1].minor);
2247 yy_destructor(32,&yymsp[0].minor);
2248 }
2249 #line 2250 "parser.php5.c"
2250 break;
2251 case 81:
2252 #line 659 "parser.php5.lemon"
2253 {
2254 yygotominor.yy228 = phvolt_ret_autoescape_statement(1, yymsp[-3].minor.yy228, status->scanner_state);
2255 yy_destructor(1,&yymsp[-7].minor);
2256 yy_destructor(75,&yymsp[-6].minor);
2257 yy_destructor(59,&yymsp[-5].minor);
2258 yy_destructor(32,&yymsp[-4].minor);
2259 yy_destructor(1,&yymsp[-2].minor);
2260 yy_destructor(76,&yymsp[-1].minor);
2261 yy_destructor(32,&yymsp[0].minor);
2262 }
2263 #line 2264 "parser.php5.c"
2264 break;
2265 case 82:
2266 #line 669 "parser.php5.lemon"
2267 {
2268 yygotominor.yy228 = phvolt_ret_break_statement(status->scanner_state);
2269 yy_destructor(1,&yymsp[-2].minor);
2270 yy_destructor(77,&yymsp[-1].minor);
2271 yy_destructor(32,&yymsp[0].minor);
2272 }
2273 #line 2274 "parser.php5.c"
2274 break;
2275 case 83:
2276 #line 679 "parser.php5.lemon"
2277 {
2278 yygotominor.yy228 = phvolt_ret_continue_statement(status->scanner_state);
2279 yy_destructor(1,&yymsp[-2].minor);
2280 yy_destructor(78,&yymsp[-1].minor);
2281 yy_destructor(32,&yymsp[0].minor);
2282 }
2283 #line 2284 "parser.php5.c"
2284 break;
2285 case 84:
2286 #line 689 "parser.php5.lemon"
2287 {
2288 yygotominor.yy228 = phvolt_ret_literal_zval(PHVOLT_T_RAW_FRAGMENT, yymsp[0].minor.yy0, status->scanner_state);
2289 }
2290 #line 2291 "parser.php5.c"
2291 break;
2292 case 85:
2293 #line 699 "parser.php5.lemon"
2294 {
2295 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_MINUS, NULL, yymsp[0].minor.yy228, NULL, status->scanner_state);
2296 yy_destructor(22,&yymsp[-1].minor);
2297 }
2298 #line 2299 "parser.php5.c"
2299 break;
2300 case 86:
2301 #line 703 "parser.php5.lemon"
2302 {
2303 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_PLUS, NULL, yymsp[0].minor.yy228, NULL, status->scanner_state);
2304 yy_destructor(21,&yymsp[-1].minor);
2305 }
2306 #line 2307 "parser.php5.c"
2307 break;
2308 case 87:
2309 #line 707 "parser.php5.lemon"
2310 {
2311 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_SUB, yymsp[-2].minor.yy228, yymsp[0].minor.yy228, NULL, status->scanner_state);
2312 yy_destructor(22,&yymsp[-1].minor);
2313 }
2314 #line 2315 "parser.php5.c"
2315 break;
2316 case 88:
2317 #line 711 "parser.php5.lemon"
2318 {
2319 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_ADD, yymsp[-2].minor.yy228, yymsp[0].minor.yy228, NULL, status->scanner_state);
2320 yy_destructor(21,&yymsp[-1].minor);
2321 }
2322 #line 2323 "parser.php5.c"
2323 break;
2324 case 89:
2325 #line 715 "parser.php5.lemon"
2326 {
2327 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_MUL, yymsp[-2].minor.yy228, yymsp[0].minor.yy228, NULL, status->scanner_state);
2328 yy_destructor(19,&yymsp[-1].minor);
2329 }
2330 #line 2331 "parser.php5.c"
2331 break;
2332 case 90:
2333 #line 719 "parser.php5.lemon"
2334 {
2335 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_POW, yymsp[-3].minor.yy228, yymsp[0].minor.yy228, NULL, status->scanner_state);
2336 yy_destructor(19,&yymsp[-2].minor);
2337 yy_destructor(19,&yymsp[-1].minor);
2338 }
2339 #line 2340 "parser.php5.c"
2340 break;
2341 case 91:
2342 #line 723 "parser.php5.lemon"
2343 {
2344 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_DIV, yymsp[-2].minor.yy228, yymsp[0].minor.yy228, NULL, status->scanner_state);
2345 yy_destructor(18,&yymsp[-1].minor);
2346 }
2347 #line 2348 "parser.php5.c"
2348 break;
2349 case 92:
2350 #line 727 "parser.php5.lemon"
2351 {
2352 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_MOD, yymsp[-3].minor.yy228, yymsp[0].minor.yy228, NULL, status->scanner_state);
2353 yy_destructor(18,&yymsp[-2].minor);
2354 yy_destructor(18,&yymsp[-1].minor);
2355 }
2356 #line 2357 "parser.php5.c"
2357 break;
2358 case 93:
2359 #line 731 "parser.php5.lemon"
2360 {
2361 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_MOD, yymsp[-2].minor.yy228, yymsp[0].minor.yy228, NULL, status->scanner_state);
2362 yy_destructor(20,&yymsp[-1].minor);
2363 }
2364 #line 2365 "parser.php5.c"
2365 break;
2366 case 94:
2367 #line 735 "parser.php5.lemon"
2368 {
2369 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_AND, yymsp[-2].minor.yy228, yymsp[0].minor.yy228, NULL, status->scanner_state);
2370 yy_destructor(7,&yymsp[-1].minor);
2371 }
2372 #line 2373 "parser.php5.c"
2373 break;
2374 case 95:
2375 #line 739 "parser.php5.lemon"
2376 {
2377 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_OR, yymsp[-2].minor.yy228, yymsp[0].minor.yy228, NULL, status->scanner_state);
2378 yy_destructor(8,&yymsp[-1].minor);
2379 }
2380 #line 2381 "parser.php5.c"
2381 break;
2382 case 96:
2383 #line 743 "parser.php5.lemon"
2384 {
2385 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_CONCAT, yymsp[-2].minor.yy228, yymsp[0].minor.yy228, NULL, status->scanner_state);
2386 yy_destructor(23,&yymsp[-1].minor);
2387 }
2388 #line 2389 "parser.php5.c"
2389 break;
2390 case 97:
2391 #line 747 "parser.php5.lemon"
2392 {
2393 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_PIPE, yymsp[-2].minor.yy228, yymsp[0].minor.yy228, NULL, status->scanner_state);
2394 yy_destructor(25,&yymsp[-1].minor);
2395 }
2396 #line 2397 "parser.php5.c"
2397 break;
2398 case 98:
2399 #line 751 "parser.php5.lemon"
2400 {
2401 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_RANGE, yymsp[-2].minor.yy228, yymsp[0].minor.yy228, NULL, status->scanner_state);
2402 yy_destructor(6,&yymsp[-1].minor);
2403 }
2404 #line 2405 "parser.php5.c"
2405 break;
2406 case 99:
2407 #line 755 "parser.php5.lemon"
2408 {
2409 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_EQUALS, yymsp[-2].minor.yy228, yymsp[0].minor.yy228, NULL, status->scanner_state);
2410 yy_destructor(10,&yymsp[-1].minor);
2411 }
2412 #line 2413 "parser.php5.c"
2413 break;
2414 case 100:
2415 #line 759 "parser.php5.lemon"
2416 {
2417 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_NOT_ISSET, yymsp[-2].minor.yy228, NULL, NULL, status->scanner_state);
2418 yy_destructor(11,&yymsp[-1].minor);
2419 yy_destructor(80,&yymsp[0].minor);
2420 }
2421 #line 2422 "parser.php5.c"
2422 break;
2423 case 101:
2424 #line 763 "parser.php5.lemon"
2425 {
2426 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_ISSET, yymsp[-2].minor.yy228, NULL, NULL, status->scanner_state);
2427 yy_destructor(9,&yymsp[-1].minor);
2428 yy_destructor(80,&yymsp[0].minor);
2429 }
2430 #line 2431 "parser.php5.c"
2431 break;
2432 case 102:
2433 #line 767 "parser.php5.lemon"
2434 {
2435 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_NOT_ISEMPTY, yymsp[-2].minor.yy228, NULL, NULL, status->scanner_state);
2436 yy_destructor(11,&yymsp[-1].minor);
2437 yy_destructor(81,&yymsp[0].minor);
2438 }
2439 #line 2440 "parser.php5.c"
2440 break;
2441 case 103:
2442 #line 771 "parser.php5.lemon"
2443 {
2444 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_ISEMPTY, yymsp[-2].minor.yy228, NULL, NULL, status->scanner_state);
2445 yy_destructor(9,&yymsp[-1].minor);
2446 yy_destructor(81,&yymsp[0].minor);
2447 }
2448 #line 2449 "parser.php5.c"
2449 break;
2450 case 104:
2451 #line 775 "parser.php5.lemon"
2452 {
2453 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_NOT_ISEVEN, yymsp[-2].minor.yy228, NULL, NULL, status->scanner_state);
2454 yy_destructor(11,&yymsp[-1].minor);
2455 yy_destructor(82,&yymsp[0].minor);
2456 }
2457 #line 2458 "parser.php5.c"
2458 break;
2459 case 105:
2460 #line 779 "parser.php5.lemon"
2461 {
2462 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_ISEVEN, yymsp[-2].minor.yy228, NULL, NULL, status->scanner_state);
2463 yy_destructor(9,&yymsp[-1].minor);
2464 yy_destructor(82,&yymsp[0].minor);
2465 }
2466 #line 2467 "parser.php5.c"
2467 break;
2468 case 106:
2469 #line 783 "parser.php5.lemon"
2470 {
2471 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_NOT_ISODD, yymsp[-2].minor.yy228, NULL, NULL, status->scanner_state);
2472 yy_destructor(11,&yymsp[-1].minor);
2473 yy_destructor(83,&yymsp[0].minor);
2474 }
2475 #line 2476 "parser.php5.c"
2476 break;
2477 case 107:
2478 #line 787 "parser.php5.lemon"
2479 {
2480 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_ISODD, yymsp[-2].minor.yy228, NULL, NULL, status->scanner_state);
2481 yy_destructor(9,&yymsp[-1].minor);
2482 yy_destructor(83,&yymsp[0].minor);
2483 }
2484 #line 2485 "parser.php5.c"
2485 break;
2486 case 108:
2487 #line 791 "parser.php5.lemon"
2488 {
2489 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_NOT_ISNUMERIC, yymsp[-2].minor.yy228, NULL, NULL, status->scanner_state);
2490 yy_destructor(11,&yymsp[-1].minor);
2491 yy_destructor(84,&yymsp[0].minor);
2492 }
2493 #line 2494 "parser.php5.c"
2494 break;
2495 case 109:
2496 #line 795 "parser.php5.lemon"
2497 {
2498 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_ISNUMERIC, yymsp[-2].minor.yy228, NULL, NULL, status->scanner_state);
2499 yy_destructor(9,&yymsp[-1].minor);
2500 yy_destructor(84,&yymsp[0].minor);
2501 }
2502 #line 2503 "parser.php5.c"
2503 break;
2504 case 110:
2505 #line 799 "parser.php5.lemon"
2506 {
2507 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_NOT_ISSCALAR, yymsp[-2].minor.yy228, NULL, NULL, status->scanner_state);
2508 yy_destructor(11,&yymsp[-1].minor);
2509 yy_destructor(85,&yymsp[0].minor);
2510 }
2511 #line 2512 "parser.php5.c"
2512 break;
2513 case 111:
2514 #line 803 "parser.php5.lemon"
2515 {
2516 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_ISSCALAR, yymsp[-2].minor.yy228, NULL, NULL, status->scanner_state);
2517 yy_destructor(9,&yymsp[-1].minor);
2518 yy_destructor(85,&yymsp[0].minor);
2519 }
2520 #line 2521 "parser.php5.c"
2521 break;
2522 case 112:
2523 #line 807 "parser.php5.lemon"
2524 {
2525 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_NOT_ISITERABLE, yymsp[-2].minor.yy228, NULL, NULL, status->scanner_state);
2526 yy_destructor(11,&yymsp[-1].minor);
2527 yy_destructor(86,&yymsp[0].minor);
2528 }
2529 #line 2530 "parser.php5.c"
2530 break;
2531 case 113:
2532 #line 811 "parser.php5.lemon"
2533 {
2534 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_ISITERABLE, yymsp[-2].minor.yy228, NULL, NULL, status->scanner_state);
2535 yy_destructor(9,&yymsp[-1].minor);
2536 yy_destructor(86,&yymsp[0].minor);
2537 }
2538 #line 2539 "parser.php5.c"
2539 break;
2540 case 114:
2541 #line 815 "parser.php5.lemon"
2542 {
2543 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_IS, yymsp[-2].minor.yy228, yymsp[0].minor.yy228, NULL, status->scanner_state);
2544 yy_destructor(9,&yymsp[-1].minor);
2545 }
2546 #line 2547 "parser.php5.c"
2547 break;
2548 case 115:
2549 #line 819 "parser.php5.lemon"
2550 {
2551 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_NOTEQUALS, yymsp[-2].minor.yy228, yymsp[0].minor.yy228, NULL, status->scanner_state);
2552 yy_destructor(11,&yymsp[-1].minor);
2553 }
2554 #line 2555 "parser.php5.c"
2555 break;
2556 case 116:
2557 #line 823 "parser.php5.lemon"
2558 {
2559 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_IDENTICAL, yymsp[-2].minor.yy228, yymsp[0].minor.yy228, NULL, status->scanner_state);
2560 yy_destructor(16,&yymsp[-1].minor);
2561 }
2562 #line 2563 "parser.php5.c"
2563 break;
2564 case 117:
2565 #line 827 "parser.php5.lemon"
2566 {
2567 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_NOTIDENTICAL, yymsp[-2].minor.yy228, yymsp[0].minor.yy228, NULL, status->scanner_state);
2568 yy_destructor(17,&yymsp[-1].minor);
2569 }
2570 #line 2571 "parser.php5.c"
2571 break;
2572 case 118:
2573 #line 831 "parser.php5.lemon"
2574 {
2575 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_LESS, yymsp[-2].minor.yy228, yymsp[0].minor.yy228, NULL, status->scanner_state);
2576 yy_destructor(12,&yymsp[-1].minor);
2577 }
2578 #line 2579 "parser.php5.c"
2579 break;
2580 case 119:
2581 #line 835 "parser.php5.lemon"
2582 {
2583 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_GREATER, yymsp[-2].minor.yy228, yymsp[0].minor.yy228, NULL, status->scanner_state);
2584 yy_destructor(13,&yymsp[-1].minor);
2585 }
2586 #line 2587 "parser.php5.c"
2587 break;
2588 case 120:
2589 #line 839 "parser.php5.lemon"
2590 {
2591 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_GREATEREQUAL, yymsp[-2].minor.yy228, yymsp[0].minor.yy228, NULL, status->scanner_state);
2592 yy_destructor(14,&yymsp[-1].minor);
2593 }
2594 #line 2595 "parser.php5.c"
2595 break;
2596 case 121:
2597 #line 843 "parser.php5.lemon"
2598 {
2599 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_LESSEQUAL, yymsp[-2].minor.yy228, yymsp[0].minor.yy228, NULL, status->scanner_state);
2600 yy_destructor(15,&yymsp[-1].minor);
2601 }
2602 #line 2603 "parser.php5.c"
2603 break;
2604 case 123:
2605 #line 851 "parser.php5.lemon"
2606 {
2607 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_IN, yymsp[-2].minor.yy228, yymsp[0].minor.yy228, NULL, status->scanner_state);
2608 yy_destructor(3,&yymsp[-1].minor);
2609 }
2610 #line 2611 "parser.php5.c"
2611 break;
2612 case 124:
2613 #line 855 "parser.php5.lemon"
2614 {
2615 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_NOT_IN, yymsp[-3].minor.yy228, yymsp[0].minor.yy228, NULL, status->scanner_state);
2616 yy_destructor(26,&yymsp[-2].minor);
2617 yy_destructor(3,&yymsp[-1].minor);
2618 }
2619 #line 2620 "parser.php5.c"
2620 break;
2621 case 125:
2622 #line 859 "parser.php5.lemon"
2623 {
2624 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_NOT, NULL, yymsp[0].minor.yy228, NULL, status->scanner_state);
2625 yy_destructor(26,&yymsp[-1].minor);
2626 }
2627 #line 2628 "parser.php5.c"
2628 break;
2629 case 126:
2630 #line 863 "parser.php5.lemon"
2631 {
2632 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_INCR, yymsp[-1].minor.yy228, NULL, NULL, status->scanner_state);
2633 yy_destructor(27,&yymsp[0].minor);
2634 }
2635 #line 2636 "parser.php5.c"
2636 break;
2637 case 127:
2638 #line 867 "parser.php5.lemon"
2639 {
2640 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_DECR, yymsp[-1].minor.yy228, NULL, NULL, status->scanner_state);
2641 yy_destructor(28,&yymsp[0].minor);
2642 }
2643 #line 2644 "parser.php5.c"
2644 break;
2645 case 128:
2646 #line 871 "parser.php5.lemon"
2647 {
2648 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_ENCLOSED, yymsp[-1].minor.yy228, NULL, NULL, status->scanner_state);
2649 yy_destructor(29,&yymsp[-2].minor);
2650 yy_destructor(52,&yymsp[0].minor);
2651 }
2652 #line 2653 "parser.php5.c"
2653 break;
2654 case 129:
2655 #line 875 "parser.php5.lemon"
2656 {
2657 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_ARRAY, NULL, NULL, NULL, status->scanner_state);
2658 yy_destructor(24,&yymsp[-1].minor);
2659 yy_destructor(50,&yymsp[0].minor);
2660 }
2661 #line 2662 "parser.php5.c"
2662 break;
2663 case 130:
2664 #line 879 "parser.php5.lemon"
2665 {
2666 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_ARRAY, yymsp[-1].minor.yy228, NULL, NULL, status->scanner_state);
2667 yy_destructor(24,&yymsp[-2].minor);
2668 yy_destructor(50,&yymsp[0].minor);
2669 }
2670 #line 2671 "parser.php5.c"
2671 break;
2672 case 131:
2673 #line 883 "parser.php5.lemon"
2674 {
2675 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_ARRAY, NULL, NULL, NULL, status->scanner_state);
2676 yy_destructor(87,&yymsp[-1].minor);
2677 yy_destructor(88,&yymsp[0].minor);
2678 }
2679 #line 2680 "parser.php5.c"
2680 break;
2681 case 132:
2682 #line 887 "parser.php5.lemon"
2683 {
2684 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_ARRAY, yymsp[-1].minor.yy228, NULL, NULL, status->scanner_state);
2685 yy_destructor(87,&yymsp[-2].minor);
2686 yy_destructor(88,&yymsp[0].minor);
2687 }
2688 #line 2689 "parser.php5.c"
2689 break;
2690 case 134:
2691 #line 895 "parser.php5.lemon"
2692 {
2693 yygotominor.yy228 = phvolt_ret_expr(PHVOLT_T_TERNARY, yymsp[-2].minor.yy228, yymsp[0].minor.yy228, yymsp[-4].minor.yy228, status->scanner_state);
2694 yy_destructor(4,&yymsp[-3].minor);
2695 yy_destructor(5,&yymsp[-1].minor);
2696 }
2697 #line 2698 "parser.php5.c"
2698 break;
2699 case 135:
2700 #line 899 "parser.php5.lemon"
2701 {
2702 yygotominor.yy228 = phvolt_ret_slice(yymsp[-4].minor.yy228, NULL, yymsp[-1].minor.yy228, status->scanner_state);
2703 yy_destructor(24,&yymsp[-3].minor);
2704 yy_destructor(5,&yymsp[-2].minor);
2705 yy_destructor(50,&yymsp[0].minor);
2706 }
2707 #line 2708 "parser.php5.c"
2708 break;
2709 case 136:
2710 #line 903 "parser.php5.lemon"
2711 {
2712 yygotominor.yy228 = phvolt_ret_slice(yymsp[-4].minor.yy228, yymsp[-2].minor.yy228, NULL, status->scanner_state);
2713 yy_destructor(24,&yymsp[-3].minor);
2714 yy_destructor(5,&yymsp[-1].minor);
2715 yy_destructor(50,&yymsp[0].minor);
2716 }
2717 #line 2718 "parser.php5.c"
2718 break;
2719 case 137:
2720 #line 907 "parser.php5.lemon"
2721 {
2722 yygotominor.yy228 = phvolt_ret_slice(yymsp[-5].minor.yy228, yymsp[-3].minor.yy228, yymsp[-1].minor.yy228, status->scanner_state);
2723 yy_destructor(24,&yymsp[-4].minor);
2724 yy_destructor(5,&yymsp[-2].minor);
2725 yy_destructor(50,&yymsp[0].minor);
2726 }
2727 #line 2728 "parser.php5.c"
2728 break;
2729 case 142:
2730 case 150:
2731 #line 945 "parser.php5.lemon"
2732 {
2733 yygotominor.yy228 = phvolt_ret_named_item(yymsp[-2].minor.yy0, yymsp[0].minor.yy228, status->scanner_state);
2734 yy_destructor(5,&yymsp[-1].minor);
2735 }
2736 #line 2737 "parser.php5.c"
2737 break;
2738 case 143:
2739 case 149:
2740 #line 949 "parser.php5.lemon"
2741 {
2742 yygotominor.yy228 = phvolt_ret_named_item(NULL, yymsp[0].minor.yy228, status->scanner_state);
2743 }
2744 #line 2745 "parser.php5.c"
2745 break;
2746 case 145:
2747 #line 963 "parser.php5.lemon"
2748 {
2749 yygotominor.yy228 = phvolt_ret_func_call(yymsp[-3].minor.yy228, yymsp[-1].minor.yy228, status->scanner_state);
2750 yy_destructor(29,&yymsp[-2].minor);
2751 yy_destructor(52,&yymsp[0].minor);
2752 }
2753 #line 2754 "parser.php5.c"
2754 break;
2755 case 146:
2756 #line 967 "parser.php5.lemon"
2757 {
2758 yygotominor.yy228 = phvolt_ret_func_call(yymsp[-2].minor.yy228, NULL, status->scanner_state);
2759 yy_destructor(29,&yymsp[-1].minor);
2760 yy_destructor(52,&yymsp[0].minor);
2761 }
2762 #line 2763 "parser.php5.c"
2763 break;
2764 };
2765 yygoto = yyRuleInfo[yyruleno].lhs;
2766 yysize = yyRuleInfo[yyruleno].nrhs;
2767 yypParser->yyidx -= yysize;
2768 yyact = yy_find_reduce_action(yypParser,yygoto);
2769 if( yyact < YYNSTATE ){
2770 yy_shift(yypParser,yyact,yygoto,&yygotominor);
2771 }else if( yyact == YYNSTATE + YYNRULE + 1 ){
2772 yy_accept(yypParser);
2773 }
2774 }
2775
2776 /*
2777 ** The following code executes when the parse fails
2778 */
yy_parse_failed(yyParser * yypParser)2779 static void yy_parse_failed(
2780 yyParser *yypParser /* The parser */
2781 ){
2782 phvolt_ARG_FETCH;
2783 #ifndef NDEBUG
2784 if( yyTraceFILE ){
2785 fprintf(yyTraceFILE,"%sFail!\n",yyTracePrompt);
2786 }
2787 #endif
2788 while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser);
2789 /* Here code is inserted which will be executed whenever the
2790 ** parser fails */
2791 phvolt_ARG_STORE; /* Suppress warning about unused %extra_argument variable */
2792 }
2793
2794 /*
2795 ** The following code executes when a syntax error first occurs.
2796 */
yy_syntax_error(yyParser * yypParser,int yymajor,YYMINORTYPE yyminor)2797 static void yy_syntax_error(
2798 yyParser *yypParser, /* The parser */
2799 int yymajor, /* The major type of the error token */
2800 YYMINORTYPE yyminor /* The minor type of the error token */
2801 ){
2802 phvolt_ARG_FETCH;
2803 #define TOKEN (yyminor.yy0)
2804 #line 46 "parser.php5.lemon"
2805
2806 {
2807
2808 smart_str error_str = {0};
2809
2810 char *token_name = NULL;
2811 const phvolt_token_names *tokens = phvolt_tokens;
2812 int token_len = 0;
2813 int active_token = status->scanner_state->active_token;
2814
2815 if (status->scanner_state->start_length) {
2816
2817 if (active_token) {
2818
2819 do {
2820 if (tokens->code == active_token) {
2821 token_name = tokens->name;
2822 token_len = tokens->len;
2823 break;
2824 }
2825 ++tokens;
2826 } while (tokens[0].code != 0);
2827
2828 }
2829
2830 smart_str_appendl(&error_str, "Syntax error, unexpected token ", sizeof("Syntax error, unexpected token ") - 1);
2831 if (!token_name) {
2832 smart_str_appendl(&error_str, "UNKNOWN", sizeof("UNKNOWN") - 1);
2833 } else {
2834 smart_str_appendl(&error_str, token_name, token_len);
2835 }
2836
2837 if (status->token->value) {
2838 smart_str_appendc(&error_str, '(');
2839 smart_str_appendl(&error_str, status->token->value, status->token->len);
2840 smart_str_appendc(&error_str, ')');
2841 }
2842
2843 smart_str_appendl(&error_str, " in ", sizeof(" in ") - 1);
2844 smart_str_appendl(&error_str, Z_STRVAL_P(status->scanner_state->active_file), Z_STRLEN_P(status->scanner_state->active_file));
2845 smart_str_appendl(&error_str, " on line ", sizeof(" on line ") - 1);
2846
2847 {
2848 char stmp[MAX_LENGTH_OF_LONG + 1];
2849 int str_len;
2850 str_len = slprintf(stmp, sizeof(stmp), "%ld", status->scanner_state->active_line);
2851 smart_str_appendl(&error_str, stmp, str_len);
2852 }
2853
2854 } else {
2855
2856 smart_str_appendl(&error_str, "Syntax error, unexpected EOF in ", sizeof("Syntax error, unexpected EOF in ") - 1);
2857 smart_str_appendl(&error_str, Z_STRVAL_P(status->scanner_state->active_file), Z_STRLEN_P(status->scanner_state->active_file));
2858
2859 /* Report unclosed 'if' blocks */
2860 if ((status->scanner_state->if_level + status->scanner_state->old_if_level) > 0) {
2861 if ((status->scanner_state->if_level + status->scanner_state->old_if_level) == 1) {
2862 smart_str_appendl(&error_str, ", there is one 'if' block without close", sizeof(", there is one 'if' block without close") - 1);
2863 } else {
2864 smart_str_appendl(&error_str, ", there are ", sizeof(", there are ") - 1);
2865 {
2866 char stmp[MAX_LENGTH_OF_LONG + 1];
2867 int str_len;
2868 str_len = slprintf(stmp, sizeof(stmp), "%ld", status->scanner_state->if_level + status->scanner_state->old_if_level);
2869 smart_str_appendl(&error_str, stmp, str_len);
2870 }
2871 smart_str_appendl(&error_str, " 'if' blocks without close", sizeof(" 'if' blocks without close") - 1);
2872 }
2873 }
2874
2875 /* Report unclosed 'for' blocks */
2876 if (status->scanner_state->for_level > 0) {
2877 if (status->scanner_state->for_level == 1) {
2878 smart_str_appendl(&error_str, ", there is one 'for' block without close", sizeof(", there is one 'for' block without close") - 1);
2879 } else {
2880 smart_str_appendl(&error_str, ", there are ", sizeof(", there are ") - 1);
2881 {
2882 char stmp[MAX_LENGTH_OF_LONG + 1];
2883 int str_len;
2884 str_len = slprintf(stmp, sizeof(stmp), "%ld", status->scanner_state->if_level);
2885 smart_str_appendl(&error_str, stmp, str_len);
2886 }
2887 smart_str_appendl(&error_str, " 'for' blocks without close", sizeof(" 'for' blocks without close") - 1);
2888 }
2889 }
2890
2891 /* Report unclosed 'switch' blocks */
2892 if (status->scanner_state->switch_level > 0) {
2893 smart_str_appendl(&error_str, ", there is a 'switch' block without 'endswitch'", sizeof(", there is a 'switch' block without 'endswitch'") - 1);
2894 }
2895
2896 }
2897
2898 smart_str_0(&error_str);
2899
2900 #if PHP_VERSION_ID < 70000
2901 if (error_str.len) {
2902 status->syntax_error = error_str.c;
2903 status->syntax_error_len = error_str.len;
2904 } else {
2905 status->syntax_error = NULL;
2906 }
2907 #else
2908 if (error_str.s) {
2909 status->syntax_error = estrndup(ZSTR_VAL(error_str.s), ZSTR_LEN(error_str.s));
2910 status->syntax_error_len = ZSTR_LEN(error_str.s);
2911 } else {
2912 status->syntax_error = NULL;
2913 }
2914 #endif
2915 }
2916
2917 status->status = PHVOLT_PARSING_FAILED;
2918
2919 #line 2920 "parser.php5.c"
2920 phvolt_ARG_STORE; /* Suppress warning about unused %extra_argument variable */
2921 }
2922
2923 /*
2924 ** The following is executed when the parser accepts
2925 */
yy_accept(yyParser * yypParser)2926 static void yy_accept(
2927 yyParser *yypParser /* The parser */
2928 ){
2929 phvolt_ARG_FETCH;
2930 #ifndef NDEBUG
2931 if( yyTraceFILE ){
2932 fprintf(yyTraceFILE,"%sAccept!\n",yyTracePrompt);
2933 }
2934 #endif
2935 while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser);
2936 /* Here code is inserted which will be executed whenever the
2937 ** parser accepts */
2938 phvolt_ARG_STORE; /* Suppress warning about unused %extra_argument variable */
2939 }
2940
2941 /* The main parser program.
2942 ** The first argument is a pointer to a structure obtained from
2943 ** "phvolt_Alloc" which describes the current state of the parser.
2944 ** The second argument is the major token number. The third is
2945 ** the minor token. The fourth optional argument is whatever the
2946 ** user wants (and specified in the grammar) and is available for
2947 ** use by the action routines.
2948 **
2949 ** Inputs:
2950 ** <ul>
2951 ** <li> A pointer to the parser (an opaque structure.)
2952 ** <li> The major token number.
2953 ** <li> The minor token number.
2954 ** <li> An option argument of a grammar-specified type.
2955 ** </ul>
2956 **
2957 ** Outputs:
2958 ** None.
2959 */
phvolt_(void * yyp,int yymajor,phvolt_TOKENTYPE yyminor phvolt_ARG_PDECL)2960 void phvolt_(
2961 void *yyp, /* The parser */
2962 int yymajor, /* The major token code number */
2963 phvolt_TOKENTYPE yyminor /* The value for the token */
2964 phvolt_ARG_PDECL /* Optional %extra_argument parameter */
2965 ){
2966 YYMINORTYPE yyminorunion;
2967 int yyact; /* The parser action. */
2968 int yyendofinput; /* True if we are at the end of input */
2969 int yyerrorhit = 0; /* True if yymajor has invoked an error */
2970 yyParser *yypParser; /* The parser */
2971
2972 /* (re)initialize the parser, if necessary */
2973 yypParser = (yyParser*)yyp;
2974 if( yypParser->yyidx<0 ){
2975 if( yymajor==0 ) return;
2976 yypParser->yyidx = 0;
2977 yypParser->yyerrcnt = -1;
2978 yypParser->yystack[0].stateno = 0;
2979 yypParser->yystack[0].major = 0;
2980 }
2981 yyminorunion.yy0 = yyminor;
2982 yyendofinput = (yymajor==0);
2983 phvolt_ARG_STORE;
2984
2985 #ifndef NDEBUG
2986 if( yyTraceFILE ){
2987 fprintf(yyTraceFILE,"%sInput %s\n",yyTracePrompt,yyTokenName[yymajor]);
2988 }
2989 #endif
2990
2991 do{
2992 yyact = yy_find_shift_action(yypParser,yymajor);
2993 if( yyact<YYNSTATE ){
2994 yy_shift(yypParser,yyact,yymajor,&yyminorunion);
2995 yypParser->yyerrcnt--;
2996 if( yyendofinput && yypParser->yyidx>=0 ){
2997 yymajor = 0;
2998 }else{
2999 yymajor = YYNOCODE;
3000 }
3001 }else if( yyact < YYNSTATE + YYNRULE ){
3002 yy_reduce(yypParser,yyact-YYNSTATE);
3003 }else if( yyact == YY_ERROR_ACTION ){
3004 int yymx;
3005 #ifndef NDEBUG
3006 if( yyTraceFILE ){
3007 fprintf(yyTraceFILE,"%sSyntax Error!\n",yyTracePrompt);
3008 }
3009 #endif
3010 #ifdef YYERRORSYMBOL
3011 /* A syntax error has occurred.
3012 ** The response to an error depends upon whether or not the
3013 ** grammar defines an error token "ERROR".
3014 **
3015 ** This is what we do if the grammar does define ERROR:
3016 **
3017 ** * Call the %syntax_error function.
3018 **
3019 ** * Begin popping the stack until we enter a state where
3020 ** it is legal to shift the error symbol, then shift
3021 ** the error symbol.
3022 **
3023 ** * Set the error count to three.
3024 **
3025 ** * Begin accepting and shifting new tokens. No new error
3026 ** processing will occur until three tokens have been
3027 ** shifted successfully.
3028 **
3029 */
3030 if( yypParser->yyerrcnt<0 ){
3031 yy_syntax_error(yypParser,yymajor,yyminorunion);
3032 }
3033 yymx = yypParser->yystack[yypParser->yyidx].major;
3034 if( yymx==YYERRORSYMBOL || yyerrorhit ){
3035 #ifndef NDEBUG
3036 if( yyTraceFILE ){
3037 fprintf(yyTraceFILE,"%sDiscard input token %s\n",
3038 yyTracePrompt,yyTokenName[yymajor]);
3039 }
3040 #endif
3041 yy_destructor(yymajor,&yyminorunion);
3042 yymajor = YYNOCODE;
3043 }else{
3044 while(
3045 yypParser->yyidx >= 0 &&
3046 yymx != YYERRORSYMBOL &&
3047 (yyact = yy_find_shift_action(yypParser,YYERRORSYMBOL)) >= YYNSTATE
3048 ){
3049 yy_pop_parser_stack(yypParser);
3050 }
3051 if( yypParser->yyidx < 0 || yymajor==0 ){
3052 yy_destructor(yymajor,&yyminorunion);
3053 yy_parse_failed(yypParser);
3054 yymajor = YYNOCODE;
3055 }else if( yymx!=YYERRORSYMBOL ){
3056 YYMINORTYPE u2;
3057 u2.YYERRSYMDT = 0;
3058 yy_shift(yypParser,yyact,YYERRORSYMBOL,&u2);
3059 }
3060 }
3061 yypParser->yyerrcnt = 3;
3062 yyerrorhit = 1;
3063 #else /* YYERRORSYMBOL is not defined */
3064 /* This is what we do if the grammar does not define ERROR:
3065 **
3066 ** * Report an error message, and throw away the input token.
3067 **
3068 ** * If the input token is $, then fail the parse.
3069 **
3070 ** As before, subsequent error messages are suppressed until
3071 ** three input tokens have been successfully shifted.
3072 */
3073 if( yypParser->yyerrcnt<=0 ){
3074 yy_syntax_error(yypParser,yymajor,yyminorunion);
3075 }
3076 yypParser->yyerrcnt = 3;
3077 yy_destructor(yymajor,&yyminorunion);
3078 if( yyendofinput ){
3079 yy_parse_failed(yypParser);
3080 }
3081 yymajor = YYNOCODE;
3082 #endif
3083 }else{
3084 yy_accept(yypParser);
3085 yymajor = YYNOCODE;
3086 }
3087 }while( yymajor!=YYNOCODE && yypParser->yyidx>=0 );
3088 return;
3089 }
3090