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