Subversion Repositories ALCASAR

Rev

Details | Last modification | View Log

Rev Author Line No. Line
2809 rexy 1
<?php
2
 
3
class TP_yyStackEntry
4
{
5
    public $stateno;       /* The state-number */
6
    public $major;         /* The major token value.  This is the code
7
                     ** number for the token at this stack level */
8
    public $minor; /* The user-supplied minor token value.  This
9
                     ** is the value of the token  */
10
}
11
 
12
// line 11 "../smarty/lexer/smarty_internal_templateparser.y"
13
 
14
/**
15
 * Smarty Template Parser Class
16
 *
17
 * This is the template parser.
18
 * It is generated from the smarty_internal_templateparser.y file
19
 *
20
 * @author Uwe Tews <uwe.tews@googlemail.com>
21
 */
22
class Smarty_Internal_Templateparser
23
{
24
    // line 23 "../smarty/lexer/smarty_internal_templateparser.y"
25
    const ERR1                      = 'Security error: Call to private object member not allowed';
26
    const ERR2                      = 'Security error: Call to dynamic object member not allowed';
27
    const ERR3                      = 'PHP in template not allowed. Use SmartyBC to enable it';
28
    const TP_VERT                   = 1;
29
    const TP_COLON                  = 2;
30
    const TP_PHP                    = 3;
31
    const TP_TEXT                   = 4;
32
    const TP_STRIPON                = 5;
33
    const TP_STRIPOFF               = 6;
34
    const TP_LITERALSTART           = 7;
35
    const TP_LITERALEND             = 8;
36
    const TP_LITERAL                = 9;
37
    const TP_SIMPELOUTPUT           = 10;
38
    const TP_SIMPLETAG              = 11;
39
    const TP_SMARTYBLOCKCHILDPARENT = 12;
40
    const TP_LDEL                   = 13;
41
    const TP_RDEL                   = 14;
42
    const TP_DOLLARID               = 15;
43
    const TP_EQUAL                  = 16;
44
    const TP_ID                     = 17;
45
    const TP_PTR                    = 18;
46
    const TP_LDELMAKENOCACHE        = 19;
47
    const TP_LDELIF                 = 20;
48
    const TP_LDELFOR                = 21;
49
    const TP_SEMICOLON              = 22;
50
    const TP_INCDEC                 = 23;
51
    const TP_TO                     = 24;
52
    const TP_STEP                   = 25;
53
    const TP_LDELFOREACH            = 26;
54
    const TP_SPACE                  = 27;
55
    const TP_AS                     = 28;
56
    const TP_APTR                   = 29;
57
    const TP_LDELSETFILTER          = 30;
58
    const TP_CLOSETAG               = 31;
59
    const TP_LDELSLASH              = 32;
60
    const TP_ATTR                   = 33;
61
    const TP_INTEGER                = 34;
62
    const TP_COMMA                  = 35;
63
    const TP_OPENP                  = 36;
64
    const TP_CLOSEP                 = 37;
65
    const TP_MATH                   = 38;
66
    const TP_UNIMATH                = 39;
67
    const TP_ISIN                   = 40;
68
    const TP_QMARK                  = 41;
69
    const TP_NOT                    = 42;
70
    const TP_TYPECAST               = 43;
71
    const TP_HEX                    = 44;
72
    const TP_DOT                    = 45;
73
    const TP_INSTANCEOF             = 46;
74
    const TP_SINGLEQUOTESTRING      = 47;
75
    const TP_DOUBLECOLON            = 48;
76
    const TP_NAMESPACE              = 49;
77
    const TP_AT                     = 50;
78
    const TP_HATCH                  = 51;
79
    const TP_OPENB                  = 52;
80
    const TP_CLOSEB                 = 53;
81
    const TP_DOLLAR                 = 54;
82
    const TP_LOGOP                  = 55;
83
    const TP_SLOGOP                 = 56;
84
    const TP_TLOGOP                 = 57;
85
    const TP_SINGLECOND             = 58;
86
    const TP_ARRAYOPEN              = 59;
87
    const TP_QUOTE                  = 60;
88
    const TP_BACKTICK               = 61;
89
    const YY_NO_ACTION              = 516;
90
    const YY_ACCEPT_ACTION          = 515;
91
    const YY_ERROR_ACTION           = 514;
92
    const YY_SZ_ACTTAB              = 2071;
93
    const YY_SHIFT_USE_DFLT         = -31;
94
    const YY_SHIFT_MAX              = 230;
95
    const YY_REDUCE_USE_DFLT        = -91;
96
    const YY_REDUCE_MAX             = 178;
97
    const YYNOCODE                  = 110;
98
    const YYSTACKDEPTH              = 500;
99
    const YYNSTATE                  = 327;
100
    const YYNRULE                   = 187;
101
    const YYERRORSYMBOL             = 62;
102
    const YYERRSYMDT                = 'yy0';
103
    const YYFALLBACK                = 0;
104
 
105
    public static $yy_action        = array(
106
        251, 234, 237, 1, 144, 127, 428, 184, 199, 212,
107
        10, 54, 19, 175, 282, 215, 109, 389, 428, 428,
108
        224, 321, 223, 303, 203, 389, 13, 389, 281, 43,
109
        389, 428, 41, 40, 266, 225, 389, 213, 389, 194,
110
        389, 52, 4, 308, 301, 383, 34, 209, 222, 3,
111
        50, 153, 251, 234, 237, 1, 199, 131, 383, 198,
112
        305, 212, 10, 54, 383, 16, 199, 428, 109, 385,
113
        132, 18, 224, 321, 223, 222, 221, 12, 32, 428,
114
        116, 43, 385, 262, 41, 40, 266, 225, 385, 233,
115
        95, 194, 16, 52, 4, 131, 301, 252, 18, 265,
116
        164, 3, 50, 324, 251, 234, 237, 1, 23, 130,
117
        229, 198, 150, 212, 10, 54, 326, 11, 170, 284,
118
        109, 42, 22, 239, 224, 321, 223, 193, 221, 261,
119
        13, 52, 157, 43, 301, 286, 41, 40, 266, 225,
120
        205, 233, 5, 194, 96, 52, 4, 263, 301, 301,
121
        99, 349, 96, 3, 50, 199, 251, 234, 237, 1,
122
        238, 130, 241, 181, 349, 212, 10, 54, 382, 240,
123
        349, 36, 109, 185, 104, 256, 224, 321, 223, 132,
124
        191, 382, 13, 49, 91, 43, 12, 382, 41, 40,
125
        266, 225, 257, 233, 152, 194, 457, 52, 4, 457,
126
        301, 301, 228, 457, 282, 3, 50, 285, 251, 234,
127
        237, 1, 301, 131, 441, 198, 238, 212, 10, 54,
128
        349, 441, 325, 175, 109, 30, 349, 273, 224, 321,
129
        223, 20, 221, 295, 32, 211, 457, 39, 166, 49,
130
        41, 40, 266, 225, 87, 233, 205, 194, 279, 52,
131
        4, 24, 301, 204, 200, 280, 99, 3, 50, 199,
132
        251, 234, 237, 1, 31, 130, 96, 198, 205, 212,
133
        10, 54, 350, 55, 293, 207, 109, 283, 99, 96,
134
        224, 321, 223, 199, 180, 350, 13, 134, 230, 43,
135
        222, 350, 41, 40, 266, 225, 104, 233, 316, 194,
136
        279, 52, 4, 24, 301, 165, 284, 280, 85, 3,
137
        50, 25, 251, 234, 237, 1, 131, 129, 210, 198,
138
        14, 212, 10, 54, 269, 270, 301, 116, 109, 295,
139
        216, 211, 224, 321, 223, 171, 221, 95, 13, 28,
140
        219, 43, 323, 9, 41, 40, 266, 225, 151, 233,
141
        324, 194, 52, 52, 4, 301, 301, 30, 282, 302,
142
        178, 3, 50, 7, 251, 234, 237, 1, 136, 130,
143
        304, 179, 238, 212, 10, 54, 279, 175, 282, 24,
144
        109, 238, 429, 280, 224, 321, 223, 177, 221, 270,
145
        13, 255, 281, 43, 429, 49, 41, 40, 266, 225,
146
        275, 233, 318, 194, 49, 52, 4, 276, 301, 163,
147
        26, 199, 8, 3, 50, 119, 251, 234, 237, 1,
148
        11, 93, 291, 51, 107, 212, 10, 54, 226, 428,
149
        206, 201, 109, 148, 178, 322, 224, 321, 223, 441,
150
        221, 428, 13, 282, 9, 43, 441, 115, 41, 40,
151
        266, 225, 167, 233, 227, 194, 457, 52, 4, 457,
152
        301, 96, 158, 457, 101, 3, 50, 271, 251, 234,
153
        237, 1, 282, 130, 235, 186, 135, 212, 10, 54,
154
        199, 37, 119, 315, 109, 165, 284, 176, 224, 321,
155
        223, 104, 221, 149, 13, 281, 146, 43, 281, 300,
156
        41, 40, 266, 225, 30, 233, 289, 194, 21, 52,
157
        4, 272, 301, 211, 18, 301, 161, 3, 50, 110,
158
        251, 234, 237, 1, 137, 128, 282, 198, 268, 212,
159
        10, 54, 222, 169, 515, 92, 109, 172, 284, 31,
160
        224, 321, 223, 29, 221, 238, 6, 260, 53, 43,
161
        232, 139, 41, 40, 266, 225, 154, 233, 178, 194,
162
        168, 52, 4, 214, 301, 145, 99, 33, 49, 3,
163
        50, 245, 208, 211, 320, 282, 90, 111, 311, 183,
164
        98, 70, 309, 297, 236, 178, 95, 319, 142, 258,
165
        247, 267, 249, 264, 250, 195, 231, 199, 246, 324,
166
        317, 253, 254, 259, 126, 137, 133, 251, 234, 237,
167
        1, 326, 290, 105, 143, 156, 212, 10, 54, 88,
168
        84, 83, 484, 109, 322, 282, 37, 224, 321, 223,
169
        245, 208, 211, 320, 281, 90, 111, 298, 182, 98,
170
        56, 245, 298, 211, 178, 95, 103, 147, 258, 197,
171
        102, 75, 141, 250, 195, 231, 95, 246, 324, 258,
172
        279, 242, 89, 24, 250, 195, 231, 280, 246, 324,
173
        298, 298, 298, 298, 298, 298, 298, 16, 298, 192,
174
        277, 298, 298, 18, 294, 44, 45, 38, 298, 298,
175
        251, 234, 237, 2, 298, 296, 298, 298, 298, 212,
176
        10, 54, 310, 312, 313, 314, 109, 162, 298, 298,
177
        224, 321, 223, 298, 298, 298, 294, 282, 298, 42,
178
        22, 239, 251, 234, 237, 2, 298, 296, 298, 298,
179
        298, 212, 10, 54, 298, 159, 298, 298, 109, 298,
180
        298, 17, 224, 321, 223, 282, 298, 42, 22, 239,
181
        298, 298, 245, 298, 211, 278, 298, 103, 111, 298,
182
        183, 98, 70, 298, 298, 298, 298, 95, 298, 298,
183
        258, 298, 292, 17, 298, 250, 195, 231, 279, 246,
184
        324, 24, 298, 395, 245, 280, 211, 298, 298, 103,
185
        298, 298, 197, 102, 75, 16, 298, 140, 298, 95,
186
        298, 18, 258, 298, 298, 298, 298, 250, 195, 231,
187
        298, 246, 324, 298, 298, 298, 298, 428, 298, 395,
188
        395, 395, 202, 277, 298, 245, 298, 211, 298, 428,
189
        103, 298, 298, 197, 120, 69, 395, 395, 395, 395,
190
        95, 298, 298, 258, 298, 298, 298, 160, 250, 195,
191
        231, 86, 246, 324, 245, 16, 211, 282, 298, 103,
192
        196, 18, 197, 120, 69, 298, 44, 45, 38, 95,
193
        298, 298, 258, 298, 298, 298, 178, 250, 195, 231,
194
        298, 246, 324, 310, 312, 313, 314, 298, 298, 190,
195
        245, 298, 211, 298, 298, 103, 298, 298, 197, 102,
196
        75, 298, 298, 298, 298, 95, 298, 298, 258, 298,
197
        298, 298, 298, 250, 195, 231, 298, 246, 324, 298,
198
        298, 298, 245, 298, 211, 298, 199, 100, 298, 288,
199
        197, 120, 47, 298, 106, 298, 298, 95, 298, 353,
200
        258, 155, 298, 218, 298, 250, 195, 231, 298, 246,
201
        324, 282, 16, 42, 22, 239, 298, 245, 18, 211,
202
        298, 428, 103, 298, 298, 197, 120, 69, 298, 298,
203
        298, 298, 95, 428, 298, 258, 298, 298, 298, 298,
204
        250, 195, 231, 298, 246, 324, 245, 298, 211, 298,
205
        298, 100, 189, 298, 197, 120, 59, 245, 207, 211,
206
        298, 95, 103, 298, 258, 197, 120, 81, 298, 250,
207
        195, 231, 95, 246, 324, 258, 298, 298, 298, 298,
208
        250, 195, 231, 298, 246, 324, 298, 245, 298, 211,
209
        298, 298, 103, 298, 298, 197, 120, 80, 298, 298,
210
        298, 298, 95, 298, 298, 258, 298, 298, 298, 298,
211
        250, 195, 231, 298, 246, 324, 245, 298, 211, 298,
212
        298, 103, 298, 298, 197, 120, 67, 245, 298, 211,
213
        298, 95, 103, 298, 258, 197, 120, 57, 298, 250,
214
        195, 231, 95, 246, 324, 258, 298, 298, 298, 298,
215
        250, 195, 231, 298, 246, 324, 298, 245, 298, 211,
216
        298, 298, 103, 298, 298, 197, 120, 58, 298, 298,
217
        298, 298, 95, 298, 298, 258, 298, 298, 298, 298,
218
        250, 195, 231, 298, 246, 324, 245, 298, 211, 298,
219
        298, 103, 298, 298, 197, 120, 82, 245, 298, 211,
220
        298, 95, 103, 298, 258, 197, 97, 76, 298, 250,
221
        195, 231, 95, 246, 324, 258, 298, 298, 298, 298,
222
        250, 195, 231, 298, 246, 324, 298, 245, 298, 211,
223
        298, 298, 103, 298, 298, 197, 120, 71, 298, 298,
224
        298, 298, 95, 298, 298, 258, 298, 298, 298, 298,
225
        250, 195, 231, 298, 246, 324, 245, 298, 211, 298,
226
        298, 103, 298, 298, 187, 120, 61, 245, 298, 211,
227
        298, 95, 103, 298, 258, 197, 120, 63, 298, 250,
228
        195, 231, 95, 246, 324, 258, 298, 298, 298, 298,
229
        250, 195, 231, 298, 246, 324, 298, 245, 298, 211,
230
        298, 298, 103, 298, 298, 197, 94, 79, 298, 298,
231
        298, 298, 95, 298, 298, 258, 298, 298, 298, 298,
232
        250, 195, 231, 298, 246, 324, 245, 298, 211, 298,
233
        298, 103, 298, 298, 197, 120, 59, 245, 298, 211,
234
        298, 95, 103, 298, 258, 197, 120, 77, 298, 250,
235
        195, 231, 95, 246, 324, 258, 298, 298, 298, 298,
236
        250, 195, 231, 298, 246, 324, 298, 245, 298, 211,
237
        298, 298, 103, 298, 298, 188, 108, 64, 298, 298,
238
        298, 298, 95, 298, 298, 258, 298, 298, 298, 298,
239
        250, 195, 231, 298, 246, 324, 245, 298, 211, 298,
240
        298, 103, 298, 298, 197, 120, 65, 245, 298, 211,
241
        298, 95, 103, 298, 258, 197, 97, 66, 298, 250,
242
        195, 231, 95, 246, 324, 258, 298, 298, 298, 298,
243
        250, 195, 231, 298, 246, 324, 298, 245, 298, 211,
244
        298, 298, 103, 298, 298, 197, 120, 68, 298, 298,
245
        298, 298, 95, 298, 298, 258, 298, 298, 298, 298,
246
        250, 195, 231, 298, 246, 324, 245, 298, 211, 298,
247
        298, 103, 298, 298, 197, 120, 62, 245, 298, 211,
248
        298, 95, 103, 298, 258, 197, 120, 60, 298, 250,
249
        195, 231, 95, 246, 324, 258, 298, 298, 298, 298,
250
        250, 195, 231, 298, 246, 324, 298, 245, 298, 211,
251
        298, 298, 103, 298, 298, 197, 120, 74, 298, 298,
252
        298, 298, 95, 298, 298, 258, 298, 298, 298, 298,
253
        250, 195, 231, 298, 246, 324, 245, 298, 211, 298,
254
        298, 103, 298, 298, 197, 120, 72, 245, 298, 211,
255
        298, 95, 103, 298, 258, 197, 120, 48, 298, 250,
256
        195, 231, 95, 246, 324, 258, 298, 298, 298, 298,
257
        250, 195, 231, 298, 246, 324, 298, 245, 298, 211,
258
        298, 298, 103, 298, 298, 197, 120, 46, 298, 298,
259
        298, 298, 95, 298, 298, 258, 298, 298, 298, 298,
260
        250, 195, 231, 298, 246, 324, 245, 298, 211, 298,
261
        298, 103, 298, 298, 197, 120, 78, 245, 298, 211,
262
        298, 95, 103, 298, 258, 197, 120, 73, 298, 250,
263
        195, 231, 95, 246, 324, 258, 298, 298, 298, 298,
264
        250, 195, 231, 298, 246, 324, 298, 245, 298, 211,
265
        298, 298, 103, 298, 298, 197, 125, 298, 298, 298,
266
        298, 298, 95, 298, 298, 298, 298, 298, 298, 244,
267
        250, 195, 231, 298, 246, 324, 245, 298, 211, 298,
268
        298, 103, 298, 298, 197, 114, 298, 245, 298, 211,
269
        298, 95, 103, 298, 298, 197, 122, 298, 243, 250,
270
        195, 231, 95, 246, 324, 298, 298, 298, 298, 298,
271
        250, 195, 231, 298, 246, 324, 298, 245, 298, 211,
272
        298, 298, 103, 298, 298, 197, 117, 298, 298, 298,
273
        298, 298, 95, 298, 298, 298, 298, 298, 298, 298,
274
        250, 195, 231, 298, 246, 324, 245, 298, 211, 298,
275
        298, 103, 298, 298, 197, 121, 298, 245, 298, 211,
276
        298, 95, 103, 298, 298, 197, 124, 298, 298, 250,
277
        195, 231, 95, 246, 324, 298, 298, 298, 298, 298,
278
        250, 195, 231, 298, 246, 324, 298, 245, 298, 211,
279
        298, 298, 103, 298, 298, 197, 118, 298, 298, 298,
280
        298, 298, 95, 298, 298, 298, 298, 298, 298, 298,
281
        250, 195, 231, 298, 246, 324, 245, 298, 211, 298,
282
        298, 103, 298, 298, 197, 123, 298, 245, 298, 211,
283
        298, 95, 103, 298, 298, 197, 113, 298, 298, 250,
284
        195, 231, 95, 246, 324, 298, 298, 298, 298, 298,
285
        250, 195, 231, 220, 246, 324, 298, 27, 298, 16,
286
        298, 457, 298, 298, 457, 18, 298, 26, 457, 441,
287
        44, 45, 38, 217, 44, 45, 38, 298, 298, 298,
288
        298, 298, 298, 298, 298, 298, 298, 310, 312, 313,
289
        314, 310, 312, 313, 314, 298, 441, 298, 298, 441,
290
        298, 457, 220, 441, 457, 298, 298, 457, 298, 298,
291
        457, 457, 441, 457, 298, 298, 220, 457, 441, 298,
292
        298, 298, 298, 298, 457, 298, 298, 457, 298, 298,
293
        5, 457, 441, 298, 298, 298, 298, 298, 298, 441,
294
        298, 298, 441, 298, 457, 441, 441, 298, 441, 298,
295
        457, 298, 441, 306, 298, 298, 298, 298, 298, 441,
296
        298, 298, 441, 298, 457, 220, 441, 298, 298, 298,
297
        298, 298, 298, 457, 298, 298, 457, 298, 298, 15,
298
        457, 441, 35, 274, 44, 45, 38, 457, 298, 298,
299
        457, 298, 298, 298, 457, 441, 298, 298, 298, 298,
300
        298, 310, 312, 313, 314, 298, 298, 298, 441, 298,
301
        298, 441, 298, 457, 298, 441, 287, 298, 44, 45,
302
        38, 298, 441, 298, 298, 441, 298, 457, 298, 441,
303
        248, 298, 298, 298, 298, 310, 312, 313, 314, 298,
304
        44, 45, 38, 298, 298, 112, 298, 44, 45, 38,
305
        298, 173, 298, 298, 44, 45, 38, 310, 312, 313,
306
        314, 44, 45, 38, 310, 312, 313, 314, 298, 298,
307
        299, 310, 312, 313, 314, 44, 45, 38, 310, 312,
308
        313, 314, 174, 298, 298, 298, 138, 298, 298, 298,
309
        298, 298, 310, 312, 313, 314, 44, 45, 38, 298,
310
        298, 298, 44, 45, 38, 298, 44, 45, 38, 298,
311
        44, 45, 38, 310, 312, 313, 314, 307, 298, 310,
312
        312, 313, 314, 310, 312, 313, 314, 310, 312, 313,
313
        314,
314
    );
315
 
316
    public static $yy_lookahead     = array(
317
        10, 11, 12, 13, 74, 15, 36, 17, 1, 19,
318
        20, 21, 29, 103, 84, 45, 26, 14, 48, 36,
319
        30, 31, 32, 53, 34, 22, 36, 24, 98, 39,
320
        27, 48, 42, 43, 44, 45, 33, 47, 35, 49,
321
        37, 51, 52, 53, 54, 14, 16, 16, 45, 59,
322
        60, 96, 10, 11, 12, 13, 1, 15, 27, 17,
323
        53, 19, 20, 21, 33, 27, 1, 36, 26, 14,
324
        45, 33, 30, 31, 32, 45, 34, 52, 36, 48,
325
        72, 39, 27, 75, 42, 43, 44, 45, 33, 47,
326
        82, 49, 27, 51, 52, 15, 54, 17, 33, 91,
327
        83, 59, 60, 95, 10, 11, 12, 13, 13, 15,
328
        15, 17, 17, 19, 20, 21, 97, 35, 99, 100,
329
        26, 86, 87, 88, 30, 31, 32, 66, 34, 49,
330
        36, 51, 96, 39, 54, 53, 42, 43, 44, 45,
331
        72, 47, 16, 49, 18, 51, 52, 79, 54, 54,
332
        82, 14, 18, 59, 60, 1, 10, 11, 12, 13,
333
        23, 15, 15, 17, 27, 19, 20, 21, 14, 17,
334
        33, 13, 26, 15, 48, 17, 30, 31, 32, 45,
335
        34, 27, 36, 46, 83, 39, 52, 33, 42, 43,
336
        44, 45, 34, 47, 74, 49, 10, 51, 52, 13,
337
        54, 54, 50, 17, 84, 59, 60, 14, 10, 11,
338
        12, 13, 54, 15, 45, 17, 23, 19, 20, 21,
339
        27, 52, 100, 103, 26, 35, 33, 37, 30, 31,
340
        32, 22, 34, 67, 36, 69, 50, 39, 83, 46,
341
        42, 43, 44, 45, 35, 47, 72, 49, 10, 51,
342
        52, 13, 54, 79, 80, 17, 82, 59, 60, 1,
343
        10, 11, 12, 13, 16, 15, 18, 17, 72, 19,
344
        20, 21, 14, 107, 108, 79, 26, 71, 82, 18,
345
        30, 31, 32, 1, 34, 27, 36, 15, 50, 39,
346
        45, 33, 42, 43, 44, 45, 48, 47, 53, 49,
347
        10, 51, 52, 13, 54, 99, 100, 17, 36, 59,
348
        60, 29, 10, 11, 12, 13, 15, 15, 17, 17,
349
        13, 19, 20, 21, 8, 9, 54, 72, 26, 67,
350
        75, 69, 30, 31, 32, 78, 34, 82, 36, 24,
351
        50, 39, 17, 36, 42, 43, 44, 45, 74, 47,
352
        95, 49, 51, 51, 52, 54, 54, 35, 84, 37,
353
        103, 59, 60, 36, 10, 11, 12, 13, 74, 15,
354
        108, 17, 23, 19, 20, 21, 10, 103, 84, 13,
355
        26, 23, 36, 17, 30, 31, 32, 7, 34, 9,
356
        36, 17, 98, 39, 48, 46, 42, 43, 44, 45,
357
        17, 47, 53, 49, 46, 51, 52, 93, 54, 78,
358
        16, 1, 36, 59, 60, 101, 10, 11, 12, 13,
359
        35, 15, 37, 17, 48, 19, 20, 21, 18, 36,
360
        65, 66, 26, 74, 103, 104, 30, 31, 32, 45,
361
        34, 48, 36, 84, 36, 39, 52, 17, 42, 43,
362
        44, 45, 15, 47, 17, 49, 10, 51, 52, 13,
363
        54, 18, 74, 17, 82, 59, 60, 34, 10, 11,
364
        12, 13, 84, 15, 93, 17, 15, 19, 20, 21,
365
        1, 2, 101, 101, 26, 99, 100, 17, 30, 31,
366
        32, 48, 34, 96, 36, 98, 96, 39, 98, 71,
367
        42, 43, 44, 45, 35, 47, 37, 49, 27, 51,
368
        52, 67, 54, 69, 33, 54, 74, 59, 60, 17,
369
        10, 11, 12, 13, 96, 15, 84, 17, 34, 19,
370
        20, 21, 45, 78, 63, 64, 26, 99, 100, 16,
371
        30, 31, 32, 16, 34, 23, 36, 17, 17, 39,
372
        23, 51, 42, 43, 44, 45, 72, 47, 103, 49,
373
        78, 51, 52, 17, 54, 74, 82, 41, 46, 59,
374
        60, 67, 68, 69, 70, 84, 72, 73, 53, 75,
375
        76, 77, 53, 61, 15, 103, 82, 14, 51, 85,
376
        14, 37, 17, 8, 90, 91, 92, 1, 94, 95,
377
        3, 4, 5, 6, 7, 96, 82, 10, 11, 12,
378
        13, 97, 84, 81, 96, 74, 19, 20, 21, 78,
379
        82, 82, 1, 26, 104, 84, 2, 30, 31, 32,
380
        67, 68, 69, 70, 98, 72, 73, 109, 75, 76,
381
        77, 67, 109, 69, 103, 82, 72, 96, 85, 75,
382
        76, 77, 96, 90, 91, 92, 82, 94, 95, 85,
383
        10, 14, 96, 13, 90, 91, 92, 17, 94, 95,
384
        109, 109, 109, 109, 109, 109, 109, 27, 109, 105,
385
        106, 109, 109, 33, 4, 38, 39, 40, 109, 109,
386
        10, 11, 12, 13, 109, 15, 109, 109, 109, 19,
387
        20, 21, 55, 56, 57, 58, 26, 74, 109, 109,
388
        30, 31, 32, 109, 109, 109, 4, 84, 109, 86,
389
        87, 88, 10, 11, 12, 13, 109, 15, 109, 109,
390
        109, 19, 20, 21, 109, 74, 109, 109, 26, 109,
391
        60, 61, 30, 31, 32, 84, 109, 86, 87, 88,
392
        109, 109, 67, 109, 69, 70, 109, 72, 73, 109,
393
        75, 76, 77, 109, 109, 109, 109, 82, 109, 109,
394
        85, 109, 60, 61, 109, 90, 91, 92, 10, 94,
395
        95, 13, 109, 2, 67, 17, 69, 109, 109, 72,
396
        109, 109, 75, 76, 77, 27, 109, 29, 109, 82,
397
        109, 33, 85, 109, 109, 109, 109, 90, 91, 92,
398
        109, 94, 95, 109, 109, 109, 109, 36, 109, 38,
399
        39, 40, 105, 106, 109, 67, 109, 69, 109, 48,
400
        72, 109, 109, 75, 76, 77, 55, 56, 57, 58,
401
        82, 109, 109, 85, 109, 109, 109, 74, 90, 91,
402
        92, 78, 94, 95, 67, 27, 69, 84, 109, 72,
403
        102, 33, 75, 76, 77, 109, 38, 39, 40, 82,
404
        109, 109, 85, 109, 109, 109, 103, 90, 91, 92,
405
        109, 94, 95, 55, 56, 57, 58, 109, 109, 102,
406
        67, 109, 69, 109, 109, 72, 109, 109, 75, 76,
407
        77, 109, 109, 109, 109, 82, 109, 109, 85, 109,
408
        109, 109, 109, 90, 91, 92, 109, 94, 95, 109,
409
        109, 109, 67, 109, 69, 109, 1, 72, 109, 106,
410
        75, 76, 77, 109, 79, 109, 109, 82, 109, 14,
411
        85, 74, 109, 18, 109, 90, 91, 92, 109, 94,
412
        95, 84, 27, 86, 87, 88, 109, 67, 33, 69,
413
        109, 36, 72, 109, 109, 75, 76, 77, 109, 109,
414
        109, 109, 82, 48, 109, 85, 109, 109, 109, 109,
415
        90, 91, 92, 109, 94, 95, 67, 109, 69, 109,
416
        109, 72, 102, 109, 75, 76, 77, 67, 79, 69,
417
        109, 82, 72, 109, 85, 75, 76, 77, 109, 90,
418
        91, 92, 82, 94, 95, 85, 109, 109, 109, 109,
419
        90, 91, 92, 109, 94, 95, 109, 67, 109, 69,
420
        109, 109, 72, 109, 109, 75, 76, 77, 109, 109,
421
        109, 109, 82, 109, 109, 85, 109, 109, 109, 109,
422
        90, 91, 92, 109, 94, 95, 67, 109, 69, 109,
423
        109, 72, 109, 109, 75, 76, 77, 67, 109, 69,
424
        109, 82, 72, 109, 85, 75, 76, 77, 109, 90,
425
        91, 92, 82, 94, 95, 85, 109, 109, 109, 109,
426
        90, 91, 92, 109, 94, 95, 109, 67, 109, 69,
427
        109, 109, 72, 109, 109, 75, 76, 77, 109, 109,
428
        109, 109, 82, 109, 109, 85, 109, 109, 109, 109,
429
        90, 91, 92, 109, 94, 95, 67, 109, 69, 109,
430
        109, 72, 109, 109, 75, 76, 77, 67, 109, 69,
431
        109, 82, 72, 109, 85, 75, 76, 77, 109, 90,
432
        91, 92, 82, 94, 95, 85, 109, 109, 109, 109,
433
        90, 91, 92, 109, 94, 95, 109, 67, 109, 69,
434
        109, 109, 72, 109, 109, 75, 76, 77, 109, 109,
435
        109, 109, 82, 109, 109, 85, 109, 109, 109, 109,
436
        90, 91, 92, 109, 94, 95, 67, 109, 69, 109,
437
        109, 72, 109, 109, 75, 76, 77, 67, 109, 69,
438
        109, 82, 72, 109, 85, 75, 76, 77, 109, 90,
439
        91, 92, 82, 94, 95, 85, 109, 109, 109, 109,
440
        90, 91, 92, 109, 94, 95, 109, 67, 109, 69,
441
        109, 109, 72, 109, 109, 75, 76, 77, 109, 109,
442
        109, 109, 82, 109, 109, 85, 109, 109, 109, 109,
443
        90, 91, 92, 109, 94, 95, 67, 109, 69, 109,
444
        109, 72, 109, 109, 75, 76, 77, 67, 109, 69,
445
        109, 82, 72, 109, 85, 75, 76, 77, 109, 90,
446
        91, 92, 82, 94, 95, 85, 109, 109, 109, 109,
447
        90, 91, 92, 109, 94, 95, 109, 67, 109, 69,
448
        109, 109, 72, 109, 109, 75, 76, 77, 109, 109,
449
        109, 109, 82, 109, 109, 85, 109, 109, 109, 109,
450
        90, 91, 92, 109, 94, 95, 67, 109, 69, 109,
451
        109, 72, 109, 109, 75, 76, 77, 67, 109, 69,
452
        109, 82, 72, 109, 85, 75, 76, 77, 109, 90,
453
        91, 92, 82, 94, 95, 85, 109, 109, 109, 109,
454
        90, 91, 92, 109, 94, 95, 109, 67, 109, 69,
455
        109, 109, 72, 109, 109, 75, 76, 77, 109, 109,
456
        109, 109, 82, 109, 109, 85, 109, 109, 109, 109,
457
        90, 91, 92, 109, 94, 95, 67, 109, 69, 109,
458
        109, 72, 109, 109, 75, 76, 77, 67, 109, 69,
459
        109, 82, 72, 109, 85, 75, 76, 77, 109, 90,
460
        91, 92, 82, 94, 95, 85, 109, 109, 109, 109,
461
        90, 91, 92, 109, 94, 95, 109, 67, 109, 69,
462
        109, 109, 72, 109, 109, 75, 76, 77, 109, 109,
463
        109, 109, 82, 109, 109, 85, 109, 109, 109, 109,
464
        90, 91, 92, 109, 94, 95, 67, 109, 69, 109,
465
        109, 72, 109, 109, 75, 76, 77, 67, 109, 69,
466
        109, 82, 72, 109, 85, 75, 76, 77, 109, 90,
467
        91, 92, 82, 94, 95, 85, 109, 109, 109, 109,
468
        90, 91, 92, 109, 94, 95, 109, 67, 109, 69,
469
        109, 109, 72, 109, 109, 75, 76, 77, 109, 109,
470
        109, 109, 82, 109, 109, 85, 109, 109, 109, 109,
471
        90, 91, 92, 109, 94, 95, 67, 109, 69, 109,
472
        109, 72, 109, 109, 75, 76, 77, 67, 109, 69,
473
        109, 82, 72, 109, 85, 75, 76, 77, 109, 90,
474
        91, 92, 82, 94, 95, 85, 109, 109, 109, 109,
475
        90, 91, 92, 109, 94, 95, 109, 67, 109, 69,
476
        109, 109, 72, 109, 109, 75, 76, 109, 109, 109,
477
        109, 109, 82, 109, 109, 109, 109, 109, 109, 89,
478
        90, 91, 92, 109, 94, 95, 67, 109, 69, 109,
479
        109, 72, 109, 109, 75, 76, 109, 67, 109, 69,
480
        109, 82, 72, 109, 109, 75, 76, 109, 89, 90,
481
        91, 92, 82, 94, 95, 109, 109, 109, 109, 109,
482
        90, 91, 92, 109, 94, 95, 109, 67, 109, 69,
483
        109, 109, 72, 109, 109, 75, 76, 109, 109, 109,
484
        109, 109, 82, 109, 109, 109, 109, 109, 109, 109,
485
        90, 91, 92, 109, 94, 95, 67, 109, 69, 109,
486
        109, 72, 109, 109, 75, 76, 109, 67, 109, 69,
487
        109, 82, 72, 109, 109, 75, 76, 109, 109, 90,
488
        91, 92, 82, 94, 95, 109, 109, 109, 109, 109,
489
        90, 91, 92, 109, 94, 95, 109, 67, 109, 69,
490
        109, 109, 72, 109, 109, 75, 76, 109, 109, 109,
491
        109, 109, 82, 109, 109, 109, 109, 109, 109, 109,
492
        90, 91, 92, 109, 94, 95, 67, 109, 69, 109,
493
        109, 72, 109, 109, 75, 76, 109, 67, 109, 69,
494
        109, 82, 72, 109, 109, 75, 76, 109, 109, 90,
495
        91, 92, 82, 94, 95, 109, 109, 109, 109, 109,
496
        90, 91, 92, 2, 94, 95, 109, 25, 109, 27,
497
        109, 10, 109, 109, 13, 33, 109, 16, 17, 18,
498
        38, 39, 40, 37, 38, 39, 40, 109, 109, 109,
499
        109, 109, 109, 109, 109, 109, 109, 55, 56, 57,
500
        58, 55, 56, 57, 58, 109, 45, 109, 109, 48,
501
        109, 50, 2, 52, 10, 109, 109, 13, 109, 109,
502
        10, 17, 18, 13, 109, 109, 2, 17, 18, 109,
503
        109, 109, 109, 109, 10, 109, 109, 13, 109, 109,
504
        16, 17, 18, 109, 109, 109, 109, 109, 109, 45,
505
        109, 109, 48, 109, 50, 45, 52, 109, 48, 109,
506
        50, 109, 52, 53, 109, 109, 109, 109, 109, 45,
507
        109, 109, 48, 109, 50, 2, 52, 109, 109, 109,
508
        109, 109, 109, 10, 109, 109, 13, 109, 109, 2,
509
        17, 18, 2, 37, 38, 39, 40, 10, 109, 109,
510
        13, 109, 109, 109, 17, 18, 109, 109, 109, 109,
511
        109, 55, 56, 57, 58, 109, 109, 109, 45, 109,
512
        109, 48, 109, 50, 109, 52, 14, 109, 38, 39,
513
        40, 109, 45, 109, 109, 48, 109, 50, 109, 52,
514
        14, 109, 109, 109, 109, 55, 56, 57, 58, 109,
515
        38, 39, 40, 109, 109, 22, 109, 38, 39, 40,
516
        109, 14, 109, 109, 38, 39, 40, 55, 56, 57,
517
        58, 38, 39, 40, 55, 56, 57, 58, 109, 109,
518
        61, 55, 56, 57, 58, 38, 39, 40, 55, 56,
519
        57, 58, 14, 109, 109, 109, 28, 109, 109, 109,
520
        109, 109, 55, 56, 57, 58, 38, 39, 40, 109,
521
        109, 109, 38, 39, 40, 109, 38, 39, 40, 109,
522
        38, 39, 40, 55, 56, 57, 58, 53, 109, 55,
523
        56, 57, 58, 55, 56, 57, 58, 55, 56, 57,
524
        58,
525
    );
526
 
527
    public static $yy_shift_ofst    = array(
528
        -31, 406, 406, 458, 458, 94, 510, 94, 94, 94,
529
        510, 458, -10, 94, 94, 354, 146, 94, 94, 94,
530
        94, 146, 94, 94, 94, 94, 250, 94, 94, 94,
531
        94, 94, 94, 302, 94, 94, 94, 198, 42, 42,
532
        42, 42, 42, 42, 42, 42, 1772, 828, 828, 80,
533
        712, 925, 301, 65, 272, 680, 1942, 1920, 1886, 1776,
534
        647, 1949, 1977, 2008, 2004, 1963, 1998, 1956, 2012, 2012,
535
        2012, 2012, 2012, 2012, 2012, 2012, 2012, 2012, 2012, 2012,
536
        2012, 2012, 2012, 768, 650, 272, 65, 272, 65, 134,
537
        126, 479, 597, 1854, 154, 290, 95, 55, 258, 366,
538
        248, 366, 282, 443, 437, 38, 38, 437, 7, 481,
539
        410, 38, 461, 621, 596, 596, 261, 596, 596, 261,
540
        596, 596, 596, 596, 596, -31, -31, 1840, 1791, 1917,
541
        1903, 1834, 158, 238, 394, 446, 38, 25, 147, 169,
542
        147, 25, 169, 25, 38, 38, 25, 25, 38, 25,
543
        307, 38, 38, 25, 527, 38, 38, 25, 38, 38,
544
        38, 38, 38, 596, 624, 261, 624, 327, 596, 596,
545
        261, 596, 261, -31, -31, -31, -31, -31, -31, 781,
546
        3, 31, 193, 137, -30, 186, -17, 522, 349, 469,
547
        322, 30, 82, 316, 346, 376, 190, 358, 393, 152,
548
        209, 380, 385, 245, 315, 523, 585, 554, 576, 575,
549
        537, 573, 569, 529, 525, 546, 500, 526, 531, 325,
550
        530, 487, 494, 502, 470, 433, 430, 408, 383, 327,
551
        374,
552
    );
553
 
554
    public static $yy_reduce_ofst   = array(
555
        471, 504, 563, 717, 574, 685, 919, 890, 787, 758,
556
        855, 823, 1240, 1199, 1140, 1100, 1070, 1129, 1170, 1210,
557
        1269, 1280, 1310, 1339, 1350, 1380, 1409, 1420, 1450, 1479,
558
        1490, 1059, 1030, 1000, 930, 960, 989, 1520, 1549, 1700,
559
        1619, 1689, 1660, 1630, 1590, 1560, 633, 661, 867, 8,
560
        166, 773, 255, 541, 174, 262, 35, 35, 35, 35,
561
        35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
562
        35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
563
        35, 35, 35, 294, -70, 196, 120, 68, 274, 19,
564
        206, 331, 444, 428, 257, 400, 382, 257, 257, 400,
565
        386, 397, 257, 386, 381, 388, 359, 314, 257, 442,
566
        482, 491, 484, 257, 257, 455, 386, 257, 257, 438,
567
        257, 257, 257, 257, 257, 257, 365, 509, 509, 509,
568
        509, 509, 524, 536, 509, 509, 528, 514, 539, 551,
569
        538, 514, 556, 514, 528, 528, 514, 514, 528, 514,
570
        518, 528, 528, 514, 532, 528, 528, 514, 528, 528,
571
        528, 528, 528, -90, 520, 122, 520, 566, -90, -90,
572
        122, -90, 122, -45, 36, 155, 101, 61, 17,
573
    );
574
 
575
    public static $yyExpectedTokens = array(
576
        array(),
577
        array(
578
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
579
        ),
580
        array(
581
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
582
        ),
583
        array(
584
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
585
        ),
586
        array(
587
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
588
        ),
589
        array(
590
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
591
        ),
592
        array(
593
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
594
        ),
595
        array(
596
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
597
        ),
598
        array(
599
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
600
        ),
601
        array(
602
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
603
        ),
604
        array(
605
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
606
        ),
607
        array(
608
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
609
        ),
610
        array(
611
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 53, 54, 59,
612
            60,
613
        ),
614
        array(
615
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
616
        ),
617
        array(
618
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
619
        ),
620
        array(
621
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
622
        ),
623
        array(
624
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
625
        ),
626
        array(
627
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
628
        ),
629
        array(
630
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
631
        ),
632
        array(
633
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
634
        ),
635
        array(
636
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
637
        ),
638
        array(
639
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
640
        ),
641
        array(
642
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
643
        ),
644
        array(
645
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
646
        ),
647
        array(
648
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
649
        ),
650
        array(
651
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
652
        ),
653
        array(
654
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
655
        ),
656
        array(
657
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
658
        ),
659
        array(
660
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
661
        ),
662
        array(
663
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
664
        ),
665
        array(
666
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
667
        ),
668
        array(
669
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
670
        ),
671
        array(
672
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
673
        ),
674
        array(
675
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
676
        ),
677
        array(
678
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
679
        ),
680
        array(
681
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
682
        ),
683
        array(
684
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
685
        ),
686
        array(
687
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
688
        ),
689
        array(
690
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
691
        ),
692
        array(
693
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
694
        ),
695
        array(
696
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
697
        ),
698
        array(
699
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
700
        ),
701
        array(
702
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
703
        ),
704
        array(
705
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
706
        ),
707
        array(
708
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
709
        ),
710
        array(
711
            10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
712
        ),
713
        array(25, 27, 33, 38, 39, 40, 55, 56, 57, 58,),
714
        array(27, 33, 38, 39, 40, 55, 56, 57, 58,),
715
        array(27, 33, 38, 39, 40, 55, 56, 57, 58,),
716
        array(15, 17, 49, 51, 54,),
717
        array(4, 10, 11, 12, 13, 15, 19, 20, 21, 26, 30, 31, 32, 60, 61,),
718
        array(1, 14, 18, 27, 33, 36, 48,),
719
        array(15, 17, 51, 54,),
720
        array(1, 27, 33,),
721
        array(15, 36, 54,),
722
        array(4, 10, 11, 12, 13, 15, 19, 20, 21, 26, 30, 31, 32, 60, 61,),
723
        array(14, 38, 39, 40, 55, 56, 57, 58,),
724
        array(2, 38, 39, 40, 55, 56, 57, 58,),
725
        array(37, 38, 39, 40, 55, 56, 57, 58,),
726
        array(37, 38, 39, 40, 55, 56, 57, 58,),
727
        array(14, 38, 39, 40, 55, 56, 57, 58,),
728
        array(38, 39, 40, 55, 56, 57, 58, 61,),
729
        array(14, 38, 39, 40, 55, 56, 57, 58,),
730
        array(14, 38, 39, 40, 55, 56, 57, 58,),
731
        array(38, 39, 40, 53, 55, 56, 57, 58,),
732
        array(22, 38, 39, 40, 55, 56, 57, 58,),
733
        array(28, 38, 39, 40, 55, 56, 57, 58,),
734
        array(14, 38, 39, 40, 55, 56, 57, 58,),
735
        array(38, 39, 40, 55, 56, 57, 58,),
736
        array(38, 39, 40, 55, 56, 57, 58,),
737
        array(38, 39, 40, 55, 56, 57, 58,),
738
        array(38, 39, 40, 55, 56, 57, 58,),
739
        array(38, 39, 40, 55, 56, 57, 58,),
740
        array(38, 39, 40, 55, 56, 57, 58,),
741
        array(38, 39, 40, 55, 56, 57, 58,),
742
        array(38, 39, 40, 55, 56, 57, 58,),
743
        array(38, 39, 40, 55, 56, 57, 58,),
744
        array(38, 39, 40, 55, 56, 57, 58,),
745
        array(38, 39, 40, 55, 56, 57, 58,),
746
        array(38, 39, 40, 55, 56, 57, 58,),
747
        array(38, 39, 40, 55, 56, 57, 58,),
748
        array(38, 39, 40, 55, 56, 57, 58,),
749
        array(38, 39, 40, 55, 56, 57, 58,),
750
        array(10, 13, 17, 27, 29, 33,),
751
        array(10, 13, 17, 27, 33,),
752
        array(15, 36, 54,),
753
        array(1, 27, 33,),
754
        array(15, 36, 54,),
755
        array(1, 27, 33,),
756
        array(18, 45, 52,),
757
        array(16, 18, 48,),
758
        array(1, 2,),
759
        array(3, 4, 5, 6, 7, 10, 11, 12, 13, 19, 20, 21, 26, 30, 31, 32,),
760
        array(2, 10, 13, 16, 17, 18, 45, 48, 50, 52,),
761
        array(1, 14, 27, 33,),
762
        array(10, 13, 17, 50,),
763
        array(13, 15, 17, 54,),
764
        array(1, 14, 27, 33,),
765
        array(1, 14, 27, 33,),
766
        array(10, 13, 17,),
767
        array(16, 18, 48,),
768
        array(10, 13, 17,),
769
        array(1, 29,),
770
        array(18, 48,),
771
        array(15, 17,),
772
        array(27, 33,),
773
        array(27, 33,),
774
        array(15, 17,),
775
        array(1, 53,),
776
        array(27, 33,),
777
        array(1, 18,),
778
        array(27, 33,),
779
        array(15, 54,),
780
        array(1,),
781
        array(1,),
782
        array(1,),
783
        array(18,),
784
        array(1,),
785
        array(1,),
786
        array(18,),
787
        array(1,),
788
        array(1,),
789
        array(1,),
790
        array(1,),
791
        array(1,),
792
        array(),
793
        array(),
794
        array(2, 10, 13, 17, 18, 45, 48, 50, 52, 53,),
795
        array(2, 10, 13, 16, 17, 18, 45, 48, 50, 52,),
796
        array(2, 10, 13, 17, 18, 45, 48, 50, 52,),
797
        array(2, 10, 13, 17, 18, 45, 48, 50, 52,),
798
        array(10, 13, 17, 18, 45, 48, 50, 52,),
799
        array(13, 15, 17, 34, 54,),
800
        array(10, 13, 17, 50,),
801
        array(16, 45, 52,),
802
        array(10, 13, 17,),
803
        array(27, 33,),
804
        array(45, 52,),
805
        array(15, 54,),
806
        array(45, 52,),
807
        array(15, 54,),
808
        array(45, 52,),
809
        array(45, 52,),
810
        array(45, 52,),
811
        array(27, 33,),
812
        array(27, 33,),
813
        array(45, 52,),
814
        array(45, 52,),
815
        array(27, 33,),
816
        array(45, 52,),
817
        array(13, 36,),
818
        array(27, 33,),
819
        array(27, 33,),
820
        array(45, 52,),
821
        array(16, 23,),
822
        array(27, 33,),
823
        array(27, 33,),
824
        array(45, 52,),
825
        array(27, 33,),
826
        array(27, 33,),
827
        array(27, 33,),
828
        array(27, 33,),
829
        array(27, 33,),
830
        array(1,),
831
        array(2,),
832
        array(18,),
833
        array(2,),
834
        array(36,),
835
        array(1,),
836
        array(1,),
837
        array(18,),
838
        array(1,),
839
        array(18,),
840
        array(),
841
        array(),
842
        array(),
843
        array(),
844
        array(),
845
        array(),
846
        array(2, 36, 38, 39, 40, 48, 55, 56, 57, 58,),
847
        array(14, 22, 24, 27, 33, 35, 37, 45,),
848
        array(14, 16, 27, 33, 36, 48,),
849
        array(14, 23, 27, 33, 46,),
850
        array(14, 23, 27, 33, 46,),
851
        array(36, 45, 48, 53,),
852
        array(10, 13, 17, 50,),
853
        array(29, 36, 48,),
854
        array(23, 46, 61,),
855
        array(23, 46, 53,),
856
        array(35, 37,),
857
        array(35, 37,),
858
        array(16, 45,),
859
        array(35, 53,),
860
        array(8, 9,),
861
        array(36, 48,),
862
        array(36, 48,),
863
        array(35, 37,),
864
        array(23, 46,),
865
        array(36, 48,),
866
        array(17, 50,),
867
        array(22, 35,),
868
        array(7, 9,),
869
        array(35, 37,),
870
        array(45, 53,),
871
        array(24,),
872
        array(16,),
873
        array(8,),
874
        array(37,),
875
        array(14,),
876
        array(17,),
877
        array(51,),
878
        array(14,),
879
        array(15,),
880
        array(53,),
881
        array(53,),
882
        array(17,),
883
        array(51,),
884
        array(41,),
885
        array(17,),
886
        array(17,),
887
        array(17,),
888
        array(45,),
889
        array(34,),
890
        array(17,),
891
        array(17,),
892
        array(34,),
893
        array(17,),
894
        array(36,),
895
        array(17,),
896
        array(36,),
897
        array(17,),
898
        array(),
899
        array(),
900
        array(),
901
        array(),
902
        array(),
903
        array(),
904
        array(),
905
        array(),
906
        array(),
907
        array(),
908
        array(),
909
        array(),
910
        array(),
911
        array(),
912
        array(),
913
        array(),
914
        array(),
915
        array(),
916
        array(),
917
        array(),
918
        array(),
919
        array(),
920
        array(),
921
        array(),
922
        array(),
923
        array(),
924
        array(),
925
        array(),
926
        array(),
927
        array(),
928
        array(),
929
        array(),
930
        array(),
931
        array(),
932
        array(),
933
        array(),
934
        array(),
935
        array(),
936
        array(),
937
        array(),
938
        array(),
939
        array(),
940
        array(),
941
        array(),
942
        array(),
943
        array(),
944
        array(),
945
        array(),
946
        array(),
947
        array(),
948
        array(),
949
        array(),
950
        array(),
951
        array(),
952
        array(),
953
        array(),
954
        array(),
955
        array(),
956
        array(),
957
        array(),
958
        array(),
959
        array(),
960
        array(),
961
        array(),
962
        array(),
963
        array(),
964
        array(),
965
        array(),
966
        array(),
967
        array(),
968
        array(),
969
        array(),
970
        array(),
971
        array(),
972
        array(),
973
        array(),
974
        array(),
975
        array(),
976
        array(),
977
        array(),
978
        array(),
979
        array(),
980
        array(),
981
        array(),
982
        array(),
983
        array(),
984
        array(),
985
        array(),
986
        array(),
987
        array(),
988
        array(),
989
        array(),
990
        array(),
991
        array(),
992
        array(),
993
        array(),
994
    );
995
 
996
    public static $yy_default       = array(
997
        338, 514, 514, 499, 499, 514, 514, 476, 476, 476,
998
        514, 514, 514, 514, 514, 514, 514, 514, 514, 514,
999
        514, 514, 514, 514, 514, 514, 514, 514, 514, 514,
1000
        514, 514, 514, 514, 514, 514, 514, 514, 514, 514,
1001
        514, 514, 514, 514, 514, 514, 379, 358, 379, 514,
1002
        514, 415, 514, 379, 514, 514, 351, 514, 514, 514,
1003
        514, 514, 514, 514, 514, 514, 384, 514, 399, 475,
1004
        351, 403, 390, 474, 500, 502, 384, 501, 363, 381,
1005
        404, 386, 391, 379, 379, 514, 379, 514, 379, 489,
1006
        431, 370, 327, 430, 393, 441, 514, 393, 393, 441,
1007
        431, 441, 393, 431, 514, 379, 360, 514, 393, 379,
1008
        373, 379, 514, 406, 402, 375, 431, 396, 398, 486,
1009
        393, 408, 397, 407, 406, 483, 336, 430, 430, 430,
1010
        430, 430, 514, 443, 457, 441, 367, 438, 514, 436,
1011
        514, 435, 434, 466, 368, 348, 439, 437, 361, 467,
1012
        441, 356, 354, 468, 514, 366, 355, 469, 362, 359,
1013
        352, 369, 365, 371, 478, 463, 477, 441, 374, 376,
1014
        490, 424, 487, 441, 441, 482, 482, 336, 482, 415,
1015
        411, 415, 405, 405, 415, 442, 415, 405, 405, 514,
1016
        514, 411, 514, 514, 425, 514, 514, 405, 415, 514,
1017
        514, 334, 514, 411, 387, 514, 514, 514, 514, 514,
1018
        514, 514, 514, 420, 514, 514, 514, 417, 514, 514,
1019
        514, 411, 413, 514, 514, 514, 514, 488, 514, 457,
1020
        514, 421, 364, 420, 340, 422, 357, 341, 409, 400,
1021
        480, 457, 462, 401, 485, 423, 426, 342, 447, 380,
1022
        416, 339, 428, 329, 330, 444, 445, 446, 394, 331,
1023
        395, 429, 419, 388, 332, 418, 410, 392, 412, 333,
1024
        335, 414, 337, 472, 417, 479, 427, 497, 347, 461,
1025
        460, 459, 378, 346, 464, 510, 495, 511, 498, 473,
1026
        377, 496, 503, 506, 513, 512, 509, 507, 504, 508,
1027
        345, 458, 471, 448, 505, 454, 452, 455, 456, 450,
1028
        491, 449, 492, 493, 494, 470, 451, 328, 453, 343,
1029
        344, 372, 481, 432, 433, 465, 440,
1030
    );
1031
 
1032
    public static $yyFallback       = array();
1033
 
1034
    public static $yyRuleName       = array(
1035
        'start ::= template',
1036
        'template ::= template PHP',
1037
        'template ::= template TEXT',
1038
        'template ::= template STRIPON',
1039
        'template ::= template STRIPOFF',
1040
        'template ::= template LITERALSTART literal_e2 LITERALEND',
1041
        'literal_e2 ::= literal_e1 LITERALSTART literal_e1 LITERALEND',
1042
        'literal_e2 ::= literal_e1',
1043
        'literal_e1 ::= literal_e1 LITERAL',
1044
        'literal_e1 ::=',
1045
        'template ::= template smartytag',
1046
        'template ::=',
1047
        'smartytag ::= SIMPELOUTPUT',
1048
        'smartytag ::= SIMPLETAG',
1049
        'smartytag ::= SMARTYBLOCKCHILDPARENT',
1050
        'smartytag ::= LDEL tagbody RDEL',
1051
        'smartytag ::= tag RDEL',
1052
        'tagbody ::= outattr',
1053
        'tagbody ::= DOLLARID eqoutattr',
1054
        'tagbody ::= varindexed eqoutattr',
1055
        'eqoutattr ::= EQUAL outattr',
1056
        'outattr ::= output attributes',
1057
        'output ::= variable',
1058
        'output ::= value',
1059
        'output ::= expr',
1060
        'tag ::= LDEL ID attributes',
1061
        'tag ::= LDEL ID',
1062
        'tag ::= LDEL ID modifierlist attributes',
1063
        'tag ::= LDEL ID PTR ID attributes',
1064
        'tag ::= LDEL ID PTR ID modifierlist attributes',
1065
        'tag ::= LDELMAKENOCACHE DOLLARID',
1066
        'tag ::= LDELIF expr',
1067
        'tag ::= LDELIF expr attributes',
1068
        'tag ::= LDELIF statement',
1069
        'tag ::= LDELIF statement attributes',
1070
        'tag ::= LDELFOR statements SEMICOLON expr SEMICOLON varindexed foraction attributes',
1071
        'foraction ::= EQUAL expr',
1072
        'foraction ::= INCDEC',
1073
        'tag ::= LDELFOR statement TO expr attributes',
1074
        'tag ::= LDELFOR statement TO expr STEP expr attributes',
1075
        'tag ::= LDELFOREACH SPACE expr AS varvar attributes',
1076
        'tag ::= LDELFOREACH SPACE expr AS varvar APTR varvar attributes',
1077
        'tag ::= LDELFOREACH attributes',
1078
        'tag ::= LDELSETFILTER ID modparameters',
1079
        'tag ::= LDELSETFILTER ID modparameters modifierlist',
1080
        'smartytag ::= CLOSETAG',
1081
        'tag ::= LDELSLASH ID',
1082
        'tag ::= LDELSLASH ID modifierlist',
1083
        'tag ::= LDELSLASH ID PTR ID',
1084
        'tag ::= LDELSLASH ID PTR ID modifierlist',
1085
        'attributes ::= attributes attribute',
1086
        'attributes ::= attribute',
1087
        'attributes ::=',
1088
        'attribute ::= SPACE ID EQUAL ID',
1089
        'attribute ::= ATTR expr',
1090
        'attribute ::= ATTR value',
1091
        'attribute ::= SPACE ID',
1092
        'attribute ::= SPACE expr',
1093
        'attribute ::= SPACE value',
1094
        'attribute ::= SPACE INTEGER EQUAL expr',
1095
        'statements ::= statement',
1096
        'statements ::= statements COMMA statement',
1097
        'statement ::= DOLLARID EQUAL INTEGER',
1098
        'statement ::= DOLLARID EQUAL expr',
1099
        'statement ::= varindexed EQUAL expr',
1100
        'statement ::= OPENP statement CLOSEP',
1101
        'expr ::= value',
1102
        'expr ::= ternary',
1103
        'expr ::= DOLLARID COLON ID',
1104
        'expr ::= expr MATH value',
1105
        'expr ::= expr UNIMATH value',
1106
        'expr ::= expr tlop value',
1107
        'expr ::= expr lop expr',
1108
        'expr ::= expr scond',
1109
        'expr ::= expr ISIN array',
1110
        'expr ::= expr ISIN value',
1111
        'ternary ::= OPENP expr CLOSEP QMARK DOLLARID COLON expr',
1112
        'ternary ::= OPENP expr CLOSEP QMARK expr COLON expr',
1113
        'value ::= variable',
1114
        'value ::= UNIMATH value',
1115
        'value ::= NOT value',
1116
        'value ::= TYPECAST value',
1117
        'value ::= variable INCDEC',
1118
        'value ::= HEX',
1119
        'value ::= INTEGER',
1120
        'value ::= INTEGER DOT INTEGER',
1121
        'value ::= INTEGER DOT',
1122
        'value ::= DOT INTEGER',
1123
        'value ::= ID',
1124
        'value ::= function',
1125
        'value ::= OPENP expr CLOSEP',
1126
        'value ::= variable INSTANCEOF ns1',
1127
        'value ::= variable INSTANCEOF variable',
1128
        'value ::= SINGLEQUOTESTRING',
1129
        'value ::= doublequoted_with_quotes',
1130
        'value ::= varindexed DOUBLECOLON static_class_access',
1131
        'value ::= smartytag',
1132
        'value ::= value modifierlist',
1133
        'value ::= NAMESPACE',
1134
        'value ::= arraydef',
1135
        'value ::= ns1 DOUBLECOLON static_class_access',
1136
        'ns1 ::= ID',
1137
        'ns1 ::= NAMESPACE',
1138
        'variable ::= DOLLARID',
1139
        'variable ::= varindexed',
1140
        'variable ::= varvar AT ID',
1141
        'variable ::= object',
1142
        'variable ::= HATCH ID HATCH',
1143
        'variable ::= HATCH ID HATCH arrayindex',
1144
        'variable ::= HATCH variable HATCH',
1145
        'variable ::= HATCH variable HATCH arrayindex',
1146
        'varindexed ::= DOLLARID arrayindex',
1147
        'varindexed ::= varvar arrayindex',
1148
        'arrayindex ::= arrayindex indexdef',
1149
        'arrayindex ::=',
1150
        'indexdef ::= DOT DOLLARID',
1151
        'indexdef ::= DOT varvar',
1152
        'indexdef ::= DOT varvar AT ID',
1153
        'indexdef ::= DOT ID',
1154
        'indexdef ::= DOT INTEGER',
1155
        'indexdef ::= DOT LDEL expr RDEL',
1156
        'indexdef ::= OPENB ID CLOSEB',
1157
        'indexdef ::= OPENB ID DOT ID CLOSEB',
1158
        'indexdef ::= OPENB SINGLEQUOTESTRING CLOSEB',
1159
        'indexdef ::= OPENB INTEGER CLOSEB',
1160
        'indexdef ::= OPENB DOLLARID CLOSEB',
1161
        'indexdef ::= OPENB variable CLOSEB',
1162
        'indexdef ::= OPENB value CLOSEB',
1163
        'indexdef ::= OPENB expr CLOSEB',
1164
        'indexdef ::= OPENB CLOSEB',
1165
        'varvar ::= DOLLARID',
1166
        'varvar ::= DOLLAR',
1167
        'varvar ::= varvar varvarele',
1168
        'varvarele ::= ID',
1169
        'varvarele ::= SIMPELOUTPUT',
1170
        'varvarele ::= LDEL expr RDEL',
1171
        'object ::= varindexed objectchain',
1172
        'objectchain ::= objectelement',
1173
        'objectchain ::= objectchain objectelement',
1174
        'objectelement ::= PTR ID arrayindex',
1175
        'objectelement ::= PTR varvar arrayindex',
1176
        'objectelement ::= PTR LDEL expr RDEL arrayindex',
1177
        'objectelement ::= PTR ID LDEL expr RDEL arrayindex',
1178
        'objectelement ::= PTR method',
1179
        'function ::= ns1 OPENP params CLOSEP',
1180
        'method ::= ID OPENP params CLOSEP',
1181
        'method ::= DOLLARID OPENP params CLOSEP',
1182
        'params ::= params COMMA expr',
1183
        'params ::= expr',
1184
        'params ::=',
1185
        'modifierlist ::= modifierlist modifier modparameters',
1186
        'modifierlist ::= modifier modparameters',
1187
        'modifier ::= VERT AT ID',
1188
        'modifier ::= VERT ID',
1189
        'modparameters ::= modparameters modparameter',
1190
        'modparameters ::=',
1191
        'modparameter ::= COLON value',
1192
        'modparameter ::= COLON UNIMATH value',
1193
        'modparameter ::= COLON array',
1194
        'static_class_access ::= method',
1195
        'static_class_access ::= method objectchain',
1196
        'static_class_access ::= ID',
1197
        'static_class_access ::= DOLLARID arrayindex',
1198
        'static_class_access ::= DOLLARID arrayindex objectchain',
1199
        'lop ::= LOGOP',
1200
        'lop ::= SLOGOP',
1201
        'tlop ::= TLOGOP',
1202
        'scond ::= SINGLECOND',
1203
        'arraydef ::= OPENB arrayelements CLOSEB',
1204
        'arraydef ::= ARRAYOPEN arrayelements CLOSEP',
1205
        'arrayelements ::= arrayelement',
1206
        'arrayelements ::= arrayelements COMMA arrayelement',
1207
        'arrayelements ::=',
1208
        'arrayelement ::= value APTR expr',
1209
        'arrayelement ::= ID APTR expr',
1210
        'arrayelement ::= expr',
1211
        'doublequoted_with_quotes ::= QUOTE QUOTE',
1212
        'doublequoted_with_quotes ::= QUOTE doublequoted QUOTE',
1213
        'doublequoted ::= doublequoted doublequotedcontent',
1214
        'doublequoted ::= doublequotedcontent',
1215
        'doublequotedcontent ::= BACKTICK variable BACKTICK',
1216
        'doublequotedcontent ::= BACKTICK expr BACKTICK',
1217
        'doublequotedcontent ::= DOLLARID',
1218
        'doublequotedcontent ::= LDEL variable RDEL',
1219
        'doublequotedcontent ::= LDEL expr RDEL',
1220
        'doublequotedcontent ::= smartytag',
1221
        'doublequotedcontent ::= TEXT',
1222
    );
1223
 
1224
    public static $yyRuleInfo       = array(
1225
        array(0 => 63, 1 => 1),
1226
        array(0 => 64, 1 => 2),
1227
        array(0 => 64, 1 => 2),
1228
        array(0 => 64, 1 => 2),
1229
        array(0 => 64, 1 => 2),
1230
        array(0 => 64, 1 => 4),
1231
        array(0 => 65, 1 => 4),
1232
        array(0 => 65, 1 => 1),
1233
        array(0 => 66, 1 => 2),
1234
        array(0 => 66, 1 => 0),
1235
        array(0 => 64, 1 => 2),
1236
        array(0 => 64, 1 => 0),
1237
        array(0 => 67, 1 => 1),
1238
        array(0 => 67, 1 => 1),
1239
        array(0 => 67, 1 => 1),
1240
        array(0 => 67, 1 => 3),
1241
        array(0 => 67, 1 => 2),
1242
        array(0 => 68, 1 => 1),
1243
        array(0 => 68, 1 => 2),
1244
        array(0 => 68, 1 => 2),
1245
        array(0 => 71, 1 => 2),
1246
        array(0 => 70, 1 => 2),
1247
        array(0 => 73, 1 => 1),
1248
        array(0 => 73, 1 => 1),
1249
        array(0 => 73, 1 => 1),
1250
        array(0 => 69, 1 => 3),
1251
        array(0 => 69, 1 => 2),
1252
        array(0 => 69, 1 => 4),
1253
        array(0 => 69, 1 => 5),
1254
        array(0 => 69, 1 => 6),
1255
        array(0 => 69, 1 => 2),
1256
        array(0 => 69, 1 => 2),
1257
        array(0 => 69, 1 => 3),
1258
        array(0 => 69, 1 => 2),
1259
        array(0 => 69, 1 => 3),
1260
        array(0 => 69, 1 => 8),
1261
        array(0 => 81, 1 => 2),
1262
        array(0 => 81, 1 => 1),
1263
        array(0 => 69, 1 => 5),
1264
        array(0 => 69, 1 => 7),
1265
        array(0 => 69, 1 => 6),
1266
        array(0 => 69, 1 => 8),
1267
        array(0 => 69, 1 => 2),
1268
        array(0 => 69, 1 => 3),
1269
        array(0 => 69, 1 => 4),
1270
        array(0 => 67, 1 => 1),
1271
        array(0 => 69, 1 => 2),
1272
        array(0 => 69, 1 => 3),
1273
        array(0 => 69, 1 => 4),
1274
        array(0 => 69, 1 => 5),
1275
        array(0 => 74, 1 => 2),
1276
        array(0 => 74, 1 => 1),
1277
        array(0 => 74, 1 => 0),
1278
        array(0 => 84, 1 => 4),
1279
        array(0 => 84, 1 => 2),
1280
        array(0 => 84, 1 => 2),
1281
        array(0 => 84, 1 => 2),
1282
        array(0 => 84, 1 => 2),
1283
        array(0 => 84, 1 => 2),
1284
        array(0 => 84, 1 => 4),
1285
        array(0 => 80, 1 => 1),
1286
        array(0 => 80, 1 => 3),
1287
        array(0 => 79, 1 => 3),
1288
        array(0 => 79, 1 => 3),
1289
        array(0 => 79, 1 => 3),
1290
        array(0 => 79, 1 => 3),
1291
        array(0 => 77, 1 => 1),
1292
        array(0 => 77, 1 => 1),
1293
        array(0 => 77, 1 => 3),
1294
        array(0 => 77, 1 => 3),
1295
        array(0 => 77, 1 => 3),
1296
        array(0 => 77, 1 => 3),
1297
        array(0 => 77, 1 => 3),
1298
        array(0 => 77, 1 => 2),
1299
        array(0 => 77, 1 => 3),
1300
        array(0 => 77, 1 => 3),
1301
        array(0 => 85, 1 => 7),
1302
        array(0 => 85, 1 => 7),
1303
        array(0 => 76, 1 => 1),
1304
        array(0 => 76, 1 => 2),
1305
        array(0 => 76, 1 => 2),
1306
        array(0 => 76, 1 => 2),
1307
        array(0 => 76, 1 => 2),
1308
        array(0 => 76, 1 => 1),
1309
        array(0 => 76, 1 => 1),
1310
        array(0 => 76, 1 => 3),
1311
        array(0 => 76, 1 => 2),
1312
        array(0 => 76, 1 => 2),
1313
        array(0 => 76, 1 => 1),
1314
        array(0 => 76, 1 => 1),
1315
        array(0 => 76, 1 => 3),
1316
        array(0 => 76, 1 => 3),
1317
        array(0 => 76, 1 => 3),
1318
        array(0 => 76, 1 => 1),
1319
        array(0 => 76, 1 => 1),
1320
        array(0 => 76, 1 => 3),
1321
        array(0 => 76, 1 => 1),
1322
        array(0 => 76, 1 => 2),
1323
        array(0 => 76, 1 => 1),
1324
        array(0 => 76, 1 => 1),
1325
        array(0 => 76, 1 => 3),
1326
        array(0 => 91, 1 => 1),
1327
        array(0 => 91, 1 => 1),
1328
        array(0 => 75, 1 => 1),
1329
        array(0 => 75, 1 => 1),
1330
        array(0 => 75, 1 => 3),
1331
        array(0 => 75, 1 => 1),
1332
        array(0 => 75, 1 => 3),
1333
        array(0 => 75, 1 => 4),
1334
        array(0 => 75, 1 => 3),
1335
        array(0 => 75, 1 => 4),
1336
        array(0 => 72, 1 => 2),
1337
        array(0 => 72, 1 => 2),
1338
        array(0 => 96, 1 => 2),
1339
        array(0 => 96, 1 => 0),
1340
        array(0 => 97, 1 => 2),
1341
        array(0 => 97, 1 => 2),
1342
        array(0 => 97, 1 => 4),
1343
        array(0 => 97, 1 => 2),
1344
        array(0 => 97, 1 => 2),
1345
        array(0 => 97, 1 => 4),
1346
        array(0 => 97, 1 => 3),
1347
        array(0 => 97, 1 => 5),
1348
        array(0 => 97, 1 => 3),
1349
        array(0 => 97, 1 => 3),
1350
        array(0 => 97, 1 => 3),
1351
        array(0 => 97, 1 => 3),
1352
        array(0 => 97, 1 => 3),
1353
        array(0 => 97, 1 => 3),
1354
        array(0 => 97, 1 => 2),
1355
        array(0 => 82, 1 => 1),
1356
        array(0 => 82, 1 => 1),
1357
        array(0 => 82, 1 => 2),
1358
        array(0 => 98, 1 => 1),
1359
        array(0 => 98, 1 => 1),
1360
        array(0 => 98, 1 => 3),
1361
        array(0 => 95, 1 => 2),
1362
        array(0 => 99, 1 => 1),
1363
        array(0 => 99, 1 => 2),
1364
        array(0 => 100, 1 => 3),
1365
        array(0 => 100, 1 => 3),
1366
        array(0 => 100, 1 => 5),
1367
        array(0 => 100, 1 => 6),
1368
        array(0 => 100, 1 => 2),
1369
        array(0 => 90, 1 => 4),
1370
        array(0 => 101, 1 => 4),
1371
        array(0 => 101, 1 => 4),
1372
        array(0 => 102, 1 => 3),
1373
        array(0 => 102, 1 => 1),
1374
        array(0 => 102, 1 => 0),
1375
        array(0 => 78, 1 => 3),
1376
        array(0 => 78, 1 => 2),
1377
        array(0 => 103, 1 => 3),
1378
        array(0 => 103, 1 => 2),
1379
        array(0 => 83, 1 => 2),
1380
        array(0 => 83, 1 => 0),
1381
        array(0 => 104, 1 => 2),
1382
        array(0 => 104, 1 => 3),
1383
        array(0 => 104, 1 => 2),
1384
        array(0 => 93, 1 => 1),
1385
        array(0 => 93, 1 => 2),
1386
        array(0 => 93, 1 => 1),
1387
        array(0 => 93, 1 => 2),
1388
        array(0 => 93, 1 => 3),
1389
        array(0 => 87, 1 => 1),
1390
        array(0 => 87, 1 => 1),
1391
        array(0 => 86, 1 => 1),
1392
        array(0 => 88, 1 => 1),
1393
        array(0 => 94, 1 => 3),
1394
        array(0 => 94, 1 => 3),
1395
        array(0 => 105, 1 => 1),
1396
        array(0 => 105, 1 => 3),
1397
        array(0 => 105, 1 => 0),
1398
        array(0 => 106, 1 => 3),
1399
        array(0 => 106, 1 => 3),
1400
        array(0 => 106, 1 => 1),
1401
        array(0 => 92, 1 => 2),
1402
        array(0 => 92, 1 => 3),
1403
        array(0 => 107, 1 => 2),
1404
        array(0 => 107, 1 => 1),
1405
        array(0 => 108, 1 => 3),
1406
        array(0 => 108, 1 => 3),
1407
        array(0 => 108, 1 => 1),
1408
        array(0 => 108, 1 => 3),
1409
        array(0 => 108, 1 => 3),
1410
        array(0 => 108, 1 => 1),
1411
        array(0 => 108, 1 => 1),
1412
    );
1413
 
1414
    public static $yyReduceMap      = array(
1415
 
1416
        1   => 1,
1417
        2   => 2,
1418
        3   => 3,
1419
        4   => 4,
1420
        5   => 5,
1421
        6   => 6,
1422
        7   => 7,
1423
        22  => 7,
1424
        23  => 7,
1425
        24  => 7,
1426
        37  => 7,
1427
        57  => 7,
1428
        58  => 7,
1429
        66  => 7,
1430
        67  => 7,
1431
        78  => 7,
1432
        83  => 7,
1433
        84  => 7,
1434
        89  => 7,
1435
        93  => 7,
1436
        94  => 7,
1437
        98  => 7,
1438
        99  => 7,
1439
        101 => 7,
1440
        106 => 7,
1441
        170 => 7,
1442
        175 => 7,
1443
        8   => 8,
1444
        9   => 9,
1445
        10  => 10,
1446
        12  => 12,
1447
        13  => 13,
1448
        14  => 14,
1449
        15  => 15,
1450
        16  => 16,
1451
        17  => 17,
1452
        18  => 18,
1453
        19  => 19,
1454
        20  => 20,
1455
        21  => 21,
1456
        25  => 25,
1457
        26  => 26,
1458
        27  => 27,
1459
        28  => 28,
1460
        29  => 29,
1461
        30  => 30,
1462
        31  => 31,
1463
        32  => 32,
1464
        34  => 32,
1465
        33  => 33,
1466
        35  => 35,
1467
        36  => 36,
1468
        38  => 38,
1469
        39  => 39,
1470
        40  => 40,
1471
        41  => 41,
1472
        42  => 42,
1473
        43  => 43,
1474
        44  => 44,
1475
        45  => 45,
1476
        46  => 46,
1477
        47  => 47,
1478
        48  => 48,
1479
        49  => 49,
1480
        50  => 50,
1481
        51  => 51,
1482
        60  => 51,
1483
        148 => 51,
1484
        152 => 51,
1485
        156 => 51,
1486
        158 => 51,
1487
        52  => 52,
1488
        149 => 52,
1489
        155 => 52,
1490
        53  => 53,
1491
        54  => 54,
1492
        55  => 54,
1493
        56  => 56,
1494
        133 => 56,
1495
        59  => 59,
1496
        61  => 61,
1497
        62  => 62,
1498
        63  => 62,
1499
        64  => 64,
1500
        65  => 65,
1501
        68  => 68,
1502
        69  => 69,
1503
        70  => 69,
1504
        71  => 71,
1505
        72  => 72,
1506
        73  => 73,
1507
        74  => 74,
1508
        75  => 75,
1509
        76  => 76,
1510
        77  => 77,
1511
        79  => 79,
1512
        81  => 79,
1513
        82  => 79,
1514
        113 => 79,
1515
        80  => 80,
1516
        85  => 85,
1517
        86  => 86,
1518
        87  => 87,
1519
        88  => 88,
1520
        90  => 90,
1521
        91  => 91,
1522
        92  => 91,
1523
        95  => 95,
1524
        96  => 96,
1525
        97  => 97,
1526
        100 => 100,
1527
        102 => 102,
1528
        103 => 103,
1529
        104 => 104,
1530
        105 => 105,
1531
        107 => 107,
1532
        108 => 108,
1533
        109 => 109,
1534
        110 => 110,
1535
        111 => 111,
1536
        112 => 112,
1537
        114 => 114,
1538
        172 => 114,
1539
        115 => 115,
1540
        116 => 116,
1541
        117 => 117,
1542
        118 => 118,
1543
        119 => 119,
1544
        120 => 120,
1545
        128 => 120,
1546
        121 => 121,
1547
        122 => 122,
1548
        123 => 123,
1549
        124 => 123,
1550
        126 => 123,
1551
        127 => 123,
1552
        125 => 125,
1553
        129 => 129,
1554
        130 => 130,
1555
        131 => 131,
1556
        176 => 131,
1557
        132 => 132,
1558
        134 => 134,
1559
        135 => 135,
1560
        136 => 136,
1561
        137 => 137,
1562
        138 => 138,
1563
        139 => 139,
1564
        140 => 140,
1565
        141 => 141,
1566
        142 => 142,
1567
        143 => 143,
1568
        144 => 144,
1569
        145 => 145,
1570
        146 => 146,
1571
        147 => 147,
1572
        150 => 150,
1573
        151 => 151,
1574
        153 => 153,
1575
        154 => 154,
1576
        157 => 157,
1577
        159 => 159,
1578
        160 => 160,
1579
        161 => 161,
1580
        162 => 162,
1581
        163 => 163,
1582
        164 => 164,
1583
        165 => 165,
1584
        166 => 166,
1585
        167 => 167,
1586
        168 => 168,
1587
        169 => 168,
1588
        171 => 171,
1589
        173 => 173,
1590
        174 => 174,
1591
        177 => 177,
1592
        178 => 178,
1593
        179 => 179,
1594
        180 => 180,
1595
        183 => 180,
1596
        181 => 181,
1597
        184 => 181,
1598
        182 => 182,
1599
        185 => 185,
1600
        186 => 186,
1601
    );
1602
 
1603
    /**
1604
     * result status
1605
     *
1606
     * @var bool
1607
     */
1608
    public $successful = true;
1609
 
1610
    /**
1611
     * return value
1612
     *
1613
     * @var mixed
1614
     */
1615
    public $retvalue = 0;
1616
 
1617
    /**
1618
     * @var
1619
     */
1620
    public $yymajor;
1621
 
1622
    /**
1623
     * last index of array variable
1624
     *
1625
     * @var mixed
1626
     */
1627
    public $last_index;
1628
 
1629
    /**
1630
     * last variable name
1631
     *
1632
     * @var string
1633
     */
1634
    public $last_variable;
1635
 
1636
    /**
1637
     * root parse tree buffer
1638
     *
1639
     * @var Smarty_Internal_ParseTree_Template
1640
     */
1641
    public $root_buffer;
1642
 
1643
    /**
1644
     * current parse tree object
1645
     *
1646
     * @var Smarty_Internal_ParseTree
1647
     */
1648
    public $current_buffer;
1649
 
1650
    /**
1651
     * lexer object
1652
     *
1653
     * @var Smarty_Internal_Templatelexer
1654
     */
1655
    public $lex;
1656
 
1657
    /**
1658
     * {strip} status
1659
     *
1660
     * @var bool
1661
     */
1662
    public $strip = false;
1663
 
1664
    /**
1665
     * compiler object
1666
     *
1667
     * @var Smarty_Internal_TemplateCompilerBase
1668
     */
1669
    public $compiler = null;
1670
 
1671
    /**
1672
     * smarty object
1673
     *
1674
     * @var Smarty
1675
     */
1676
    public $smarty = null;
1677
 
1678
    /**
1679
     * template object
1680
     *
1681
     * @var Smarty_Internal_Template
1682
     */
1683
    public $template = null;
1684
 
1685
    /**
1686
     * block nesting level
1687
     *
1688
     * @var int
1689
     */
1690
    public $block_nesting_level = 0;
1691
 
1692
    /**
1693
     * security object
1694
     *
1695
     * @var Smarty_Security
1696
     */
1697
    public $security = null;
1698
 
1699
    /**
1700
     * template prefix array
1701
     *
1702
     * @var \Smarty_Internal_ParseTree[]
1703
     */
1704
    public $template_prefix = array();
1705
 
1706
    /**
1707
     * template prefix array
1708
     *
1709
     * @var \Smarty_Internal_ParseTree[]
1710
     */
1711
    public $template_postfix = array();
1712
 
1713
    public $yyTraceFILE;
1714
 
1715
    public $yyTracePrompt;
1716
 
1717
    public $yyidx;
1718
 
1719
    public $yyerrcnt;
1720
 
1721
    public $yystack          = array();
1722
 
1723
    public $yyTokenName      = array(
1724
        '$', 'VERT', 'COLON', 'PHP',
1725
        'TEXT', 'STRIPON', 'STRIPOFF', 'LITERALSTART',
1726
        'LITERALEND', 'LITERAL', 'SIMPELOUTPUT', 'SIMPLETAG',
1727
        'SMARTYBLOCKCHILDPARENT', 'LDEL', 'RDEL', 'DOLLARID',
1728
        'EQUAL', 'ID', 'PTR', 'LDELMAKENOCACHE',
1729
        'LDELIF', 'LDELFOR', 'SEMICOLON', 'INCDEC',
1730
        'TO', 'STEP', 'LDELFOREACH', 'SPACE',
1731
        'AS', 'APTR', 'LDELSETFILTER', 'CLOSETAG',
1732
        'LDELSLASH', 'ATTR', 'INTEGER', 'COMMA',
1733
        'OPENP', 'CLOSEP', 'MATH', 'UNIMATH',
1734
        'ISIN', 'QMARK', 'NOT', 'TYPECAST',
1735
        'HEX', 'DOT', 'INSTANCEOF', 'SINGLEQUOTESTRING',
1736
        'DOUBLECOLON', 'NAMESPACE', 'AT', 'HATCH',
1737
        'OPENB', 'CLOSEB', 'DOLLAR', 'LOGOP',
1738
        'SLOGOP', 'TLOGOP', 'SINGLECOND', 'ARRAYOPEN',
1739
        'QUOTE', 'BACKTICK', 'error', 'start',
1740
        'template', 'literal_e2', 'literal_e1', 'smartytag',
1741
        'tagbody', 'tag', 'outattr', 'eqoutattr',
1742
        'varindexed', 'output', 'attributes', 'variable',
1743
        'value', 'expr', 'modifierlist', 'statement',
1744
        'statements', 'foraction', 'varvar', 'modparameters',
1745
        'attribute', 'ternary', 'tlop', 'lop',
1746
        'scond', 'array', 'function', 'ns1',
1747
        'doublequoted_with_quotes', 'static_class_access', 'arraydef', 'object',
1748
        'arrayindex', 'indexdef', 'varvarele', 'objectchain',
1749
        'objectelement', 'method', 'params', 'modifier',
1750
        'modparameter', 'arrayelements', 'arrayelement', 'doublequoted',
1751
        'doublequotedcontent',
1752
    );
1753
 
1754
    /**
1755
     * internal error flag
1756
     *
1757
     * @var bool
1758
     */
1759
    private $internalError = false;                    /* Index of top element in stack */
1760
    private $_retvalue;                 /* Shifts left before out of the error */
1761
    /**
1762
     * constructor
1763
     *
1764
     * @param Smarty_Internal_Templatelexer        $lex
1765
     * @param Smarty_Internal_TemplateCompilerBase $compiler
1766
     */
1767
    public function __construct(Smarty_Internal_Templatelexer $lex, Smarty_Internal_TemplateCompilerBase $compiler)
1768
    {
1769
        $this->lex = $lex;
1770
        $this->compiler = $compiler;
1771
        $this->template = $this->compiler->template;
1772
        $this->smarty = $this->template->smarty;
1773
        $this->security = isset($this->smarty->security_policy) ? $this->smarty->security_policy : false;
1774
        $this->current_buffer = $this->root_buffer = new Smarty_Internal_ParseTree_Template();
1775
    }  /* The parser's stack */
1776
    public static function yy_destructor($yymajor, $yypminor)
1777
    {
1778
        switch ($yymajor) {
1779
            default:
1780
                break;   /* If no destructor action specified: do nothing */
1781
        }
1782
    }
1783
 
1784
    /**
1785
     * insert PHP code in current buffer
1786
     *
1787
     * @param string $code
1788
     */
1789
    public function insertPhpCode($code)
1790
    {
1791
        $this->current_buffer->append_subtree($this, new Smarty_Internal_ParseTree_Tag($this, $code));
1792
    }
1793
 
1794
    /**
1795
     * error rundown
1796
     *
1797
     */
1798
    public function errorRunDown()
1799
    {
1800
        while ($this->yystack !== array()) {
1801
            $this->yy_pop_parser_stack();
1802
        }
1803
        if (is_resource($this->yyTraceFILE)) {
1804
            fclose($this->yyTraceFILE);
1805
        }
1806
    }
1807
 
1808
    /**
1809
     *  merge PHP code with prefix code and return parse tree tag object
1810
     *
1811
     * @param string $code
1812
     *
1813
     * @return Smarty_Internal_ParseTree_Tag
1814
     */
1815
    public function mergePrefixCode($code)
1816
    {
1817
        $tmp = '';
1818
        foreach ($this->compiler->prefix_code as $preCode) {
1819
            $tmp .= $preCode;
1820
        }
1821
        $this->compiler->prefix_code = array();
1822
        $tmp .= $code;
1823
        return new Smarty_Internal_ParseTree_Tag($this, $this->compiler->processNocacheCode($tmp, true));
1824
    }
1825
 
1826
    public function Trace($TraceFILE, $zTracePrompt)
1827
    {
1828
        if (!$TraceFILE) {
1829
            $zTracePrompt = 0;
1830
        } elseif (!$zTracePrompt) {
1831
            $TraceFILE = 0;
1832
        }
1833
        $this->yyTraceFILE = $TraceFILE;
1834
        $this->yyTracePrompt = $zTracePrompt;
1835
    }
1836
 
1837
    public function PrintTrace()
1838
    {
1839
        $this->yyTraceFILE = fopen('php://output', 'w');
1840
        $this->yyTracePrompt = '<br>';
1841
    }
1842
 
1843
    public function tokenName($tokenType)
1844
    {
1845
        if ($tokenType === 0) {
1846
            return 'End of Input';
1847
        }
1848
        if ($tokenType > 0 && $tokenType < count($this->yyTokenName)) {
1849
            return $this->yyTokenName[ $tokenType ];
1850
        } else {
1851
            return 'Unknown';
1852
        }
1853
    }
1854
 
1855
    public function yy_pop_parser_stack()
1856
    {
1857
        if (empty($this->yystack)) {
1858
            return;
1859
        }
1860
        $yytos = array_pop($this->yystack);
1861
        if ($this->yyTraceFILE && $this->yyidx >= 0) {
1862
            fwrite($this->yyTraceFILE,
1863
                $this->yyTracePrompt . 'Popping ' . $this->yyTokenName[ $yytos->major ] .
1864
                "\n");
1865
        }
1866
        $yymajor = $yytos->major;
1867
        self::yy_destructor($yymajor, $yytos->minor);
1868
        $this->yyidx--;
1869
        return $yymajor;
1870
    }
1871
 
1872
    public function __destruct()
1873
    {
1874
        while ($this->yystack !== array()) {
1875
            $this->yy_pop_parser_stack();
1876
        }
1877
        if (is_resource($this->yyTraceFILE)) {
1878
            fclose($this->yyTraceFILE);
1879
        }
1880
    }
1881
 
1882
    public function yy_get_expected_tokens($token)
1883
    {
1884
        static $res3 = array();
1885
        static $res4 = array();
1886
        $state = $this->yystack[ $this->yyidx ]->stateno;
1887
        $expected = self::$yyExpectedTokens[ $state ];
1888
        if (isset($res3[ $state ][ $token ])) {
1889
            if ($res3[ $state ][ $token ]) {
1890
                return $expected;
1891
            }
1892
        } else {
1893
            if ($res3[ $state ][ $token ] = in_array($token, self::$yyExpectedTokens[ $state ], true)) {
1894
                return $expected;
1895
            }
1896
        }
1897
        $stack = $this->yystack;
1898
        $yyidx = $this->yyidx;
1899
        do {
1900
            $yyact = $this->yy_find_shift_action($token);
1901
            if ($yyact >= self::YYNSTATE && $yyact < self::YYNSTATE + self::YYNRULE) {
1902
                // reduce action
1903
                $done = 0;
1904
                do {
1905
                    if ($done++ === 100) {
1906
                        $this->yyidx = $yyidx;
1907
                        $this->yystack = $stack;
1908
                        // too much recursion prevents proper detection
1909
                        // so give up
1910
                        return array_unique($expected);
1911
                    }
1912
                    $yyruleno = $yyact - self::YYNSTATE;
1913
                    $this->yyidx -= self::$yyRuleInfo[ $yyruleno ][ 1 ];
1914
                    $nextstate = $this->yy_find_reduce_action(
1915
                        $this->yystack[ $this->yyidx ]->stateno,
1916
                        self::$yyRuleInfo[ $yyruleno ][ 0 ]);
1917
                    if (isset(self::$yyExpectedTokens[ $nextstate ])) {
1918
                        $expected = array_merge($expected, self::$yyExpectedTokens[ $nextstate ]);
1919
                        if (isset($res4[ $nextstate ][ $token ])) {
1920
                            if ($res4[ $nextstate ][ $token ]) {
1921
                                $this->yyidx = $yyidx;
1922
                                $this->yystack = $stack;
1923
                                return array_unique($expected);
1924
                            }
1925
                        } else {
1926
                            if ($res4[ $nextstate ][ $token ] =
1927
                                in_array($token, self::$yyExpectedTokens[ $nextstate ], true)) {
1928
                                $this->yyidx = $yyidx;
1929
                                $this->yystack = $stack;
1930
                                return array_unique($expected);
1931
                            }
1932
                        }
1933
                    }
1934
                    if ($nextstate < self::YYNSTATE) {
1935
                        // we need to shift a non-terminal
1936
                        $this->yyidx++;
1937
                        $x = new TP_yyStackEntry;
1938
                        $x->stateno = $nextstate;
1939
                        $x->major = self::$yyRuleInfo[ $yyruleno ][ 0 ];
1940
                        $this->yystack[ $this->yyidx ] = $x;
1941
                        continue 2;
1942
                    } elseif ($nextstate === self::YYNSTATE + self::YYNRULE + 1) {
1943
                        $this->yyidx = $yyidx;
1944
                        $this->yystack = $stack;
1945
                        // the last token was just ignored, we can't accept
1946
                        // by ignoring input, this is in essence ignoring a
1947
                        // syntax error!
1948
                        return array_unique($expected);
1949
                    } elseif ($nextstate === self::YY_NO_ACTION) {
1950
                        $this->yyidx = $yyidx;
1951
                        $this->yystack = $stack;
1952
                        // input accepted, but not shifted (I guess)
1953
                        return $expected;
1954
                    } else {
1955
                        $yyact = $nextstate;
1956
                    }
1957
                } while (true);
1958
            }
1959
            break;
1960
        } while (true);
1961
        $this->yyidx = $yyidx;
1962
        $this->yystack = $stack;
1963
        return array_unique($expected);
1964
    }
1965
 
1966
    public function yy_is_expected_token($token)
1967
    {
1968
        static $res = array();
1969
        static $res2 = array();
1970
        if ($token === 0) {
1971
            return true; // 0 is not part of this
1972
        }
1973
        $state = $this->yystack[ $this->yyidx ]->stateno;
1974
        if (isset($res[ $state ][ $token ])) {
1975
            if ($res[ $state ][ $token ]) {
1976
                return true;
1977
            }
1978
        } else {
1979
            if ($res[ $state ][ $token ] = in_array($token, self::$yyExpectedTokens[ $state ], true)) {
1980
                return true;
1981
            }
1982
        }
1983
        $stack = $this->yystack;
1984
        $yyidx = $this->yyidx;
1985
        do {
1986
            $yyact = $this->yy_find_shift_action($token);
1987
            if ($yyact >= self::YYNSTATE && $yyact < self::YYNSTATE + self::YYNRULE) {
1988
                // reduce action
1989
                $done = 0;
1990
                do {
1991
                    if ($done++ === 100) {
1992
                        $this->yyidx = $yyidx;
1993
                        $this->yystack = $stack;
1994
                        // too much recursion prevents proper detection
1995
                        // so give up
1996
                        return true;
1997
                    }
1998
                    $yyruleno = $yyact - self::YYNSTATE;
1999
                    $this->yyidx -= self::$yyRuleInfo[ $yyruleno ][ 1 ];
2000
                    $nextstate = $this->yy_find_reduce_action(
2001
                        $this->yystack[ $this->yyidx ]->stateno,
2002
                        self::$yyRuleInfo[ $yyruleno ][ 0 ]);
2003
                    if (isset($res2[ $nextstate ][ $token ])) {
2004
                        if ($res2[ $nextstate ][ $token ]) {
2005
                            $this->yyidx = $yyidx;
2006
                            $this->yystack = $stack;
2007
                            return true;
2008
                        }
2009
                    } else {
2010
                        if ($res2[ $nextstate ][ $token ] =
2011
                            (isset(self::$yyExpectedTokens[ $nextstate ]) &&
2012
                             in_array($token, self::$yyExpectedTokens[ $nextstate ], true))) {
2013
                            $this->yyidx = $yyidx;
2014
                            $this->yystack = $stack;
2015
                            return true;
2016
                        }
2017
                    }
2018
                    if ($nextstate < self::YYNSTATE) {
2019
                        // we need to shift a non-terminal
2020
                        $this->yyidx++;
2021
                        $x = new TP_yyStackEntry;
2022
                        $x->stateno = $nextstate;
2023
                        $x->major = self::$yyRuleInfo[ $yyruleno ][ 0 ];
2024
                        $this->yystack[ $this->yyidx ] = $x;
2025
                        continue 2;
2026
                    } elseif ($nextstate === self::YYNSTATE + self::YYNRULE + 1) {
2027
                        $this->yyidx = $yyidx;
2028
                        $this->yystack = $stack;
2029
                        if (!$token) {
2030
                            // end of input: this is valid
2031
                            return true;
2032
                        }
2033
                        // the last token was just ignored, we can't accept
2034
                        // by ignoring input, this is in essence ignoring a
2035
                        // syntax error!
2036
                        return false;
2037
                    } elseif ($nextstate === self::YY_NO_ACTION) {
2038
                        $this->yyidx = $yyidx;
2039
                        $this->yystack = $stack;
2040
                        // input accepted, but not shifted (I guess)
2041
                        return true;
2042
                    } else {
2043
                        $yyact = $nextstate;
2044
                    }
2045
                } while (true);
2046
            }
2047
            break;
2048
        } while (true);
2049
        $this->yyidx = $yyidx;
2050
        $this->yystack = $stack;
2051
        return true;
2052
    }
2053
 
2054
    public function yy_find_shift_action($iLookAhead)
2055
    {
2056
        $stateno = $this->yystack[ $this->yyidx ]->stateno;
2057
        /* if ($this->yyidx < 0) return self::YY_NO_ACTION;  */
2058
        if (!isset(self::$yy_shift_ofst[ $stateno ])) {
2059
            // no shift actions
2060
            return self::$yy_default[ $stateno ];
2061
        }
2062
        $i = self::$yy_shift_ofst[ $stateno ];
2063
        if ($i === self::YY_SHIFT_USE_DFLT) {
2064
            return self::$yy_default[ $stateno ];
2065
        }
2066
        if ($iLookAhead === self::YYNOCODE) {
2067
            return self::YY_NO_ACTION;
2068
        }
2069
        $i += $iLookAhead;
2070
        if ($i < 0 || $i >= self::YY_SZ_ACTTAB ||
2071
            self::$yy_lookahead[ $i ] != $iLookAhead) {
2072
            if (count(self::$yyFallback) && $iLookAhead < count(self::$yyFallback)
2073
                && ($iFallback = self::$yyFallback[ $iLookAhead ]) != 0) {
2074
                if ($this->yyTraceFILE) {
2075
                    fwrite($this->yyTraceFILE, $this->yyTracePrompt . 'FALLBACK ' .
2076
                                               $this->yyTokenName[ $iLookAhead ] . ' => ' .
2077
                                               $this->yyTokenName[ $iFallback ] . "\n");
2078
                }
2079
                return $this->yy_find_shift_action($iFallback);
2080
            }
2081
            return self::$yy_default[ $stateno ];
2082
        } else {
2083
            return self::$yy_action[ $i ];
2084
        }
2085
    }
2086
 
2087
    public function yy_find_reduce_action($stateno, $iLookAhead)
2088
    {
2089
        /* $stateno = $this->yystack[$this->yyidx]->stateno; */
2090
        if (!isset(self::$yy_reduce_ofst[ $stateno ])) {
2091
            return self::$yy_default[ $stateno ];
2092
        }
2093
        $i = self::$yy_reduce_ofst[ $stateno ];
2094
        if ($i === self::YY_REDUCE_USE_DFLT) {
2095
            return self::$yy_default[ $stateno ];
2096
        }
2097
        if ($iLookAhead === self::YYNOCODE) {
2098
            return self::YY_NO_ACTION;
2099
        }
2100
        $i += $iLookAhead;
2101
        if ($i < 0 || $i >= self::YY_SZ_ACTTAB ||
2102
            self::$yy_lookahead[ $i ] != $iLookAhead) {
2103
            return self::$yy_default[ $stateno ];
2104
        } else {
2105
            return self::$yy_action[ $i ];
2106
        }
2107
    }
2108
 
2109
    // line 234 "../smarty/lexer/smarty_internal_templateparser.y"
2110
    public function yy_shift($yyNewState, $yyMajor, $yypMinor)
2111
    {
2112
        $this->yyidx++;
2113
        if ($this->yyidx >= self::YYSTACKDEPTH) {
2114
            $this->yyidx--;
2115
            if ($this->yyTraceFILE) {
2116
                fprintf($this->yyTraceFILE, "%sStack Overflow!\n", $this->yyTracePrompt);
2117
            }
2118
            while ($this->yyidx >= 0) {
2119
                $this->yy_pop_parser_stack();
2120
            }
2121
            // line 221 "../smarty/lexer/smarty_internal_templateparser.y"
2122
            $this->internalError = true;
2123
            $this->compiler->trigger_template_error('Stack overflow in template parser');
2124
            return;
2125
        }
2126
        $yytos = new TP_yyStackEntry;
2127
        $yytos->stateno = $yyNewState;
2128
        $yytos->major = $yyMajor;
2129
        $yytos->minor = $yypMinor;
2130
        $this->yystack[] = $yytos;
2131
        if ($this->yyTraceFILE && $this->yyidx > 0) {
2132
            fprintf($this->yyTraceFILE, "%sShift %d\n", $this->yyTracePrompt,
2133
                $yyNewState);
2134
            fprintf($this->yyTraceFILE, "%sStack:", $this->yyTracePrompt);
2135
            for ($i = 1; $i <= $this->yyidx; $i++) {
2136
                fprintf($this->yyTraceFILE, " %s",
2137
                    $this->yyTokenName[ $this->yystack[ $i ]->major ]);
2138
            }
2139
            fwrite($this->yyTraceFILE, "\n");
2140
        }
2141
    }
2142
 
2143
    // line 242 "../smarty/lexer/smarty_internal_templateparser.y"
2144
    public function yy_r0()
2145
    {
2146
        $this->root_buffer->prepend_array($this, $this->template_prefix);
2147
        $this->root_buffer->append_array($this, $this->template_postfix);
2148
        $this->_retvalue = $this->root_buffer->to_smarty_php($this);
2149
    }
2150
 
2151
    // line 251 "../smarty/lexer/smarty_internal_templateparser.y"
2152
    public function yy_r1()
2153
    {
2154
        $code =
2155
            $this->compiler->compileTag('private_php',
2156
                array(array('code' => $this->yystack[ $this->yyidx + 0 ]->minor), array('type' => $this->lex->phpType)),
2157
                array());
2158
        if ($this->compiler->has_code && !empty($code)) {
2159
            $tmp = '';
2160
            foreach ($this->compiler->prefix_code as $code) {
2161
                $tmp .= $code;
2162
            }
2163
            $this->compiler->prefix_code = array();
2164
            $this->current_buffer->append_subtree($this,
2165
                new Smarty_Internal_ParseTree_Tag($this, $this->compiler->processNocacheCode($tmp . $code, true)));
2166
        }
2167
    }
2168
 
2169
    // line 255 "../smarty/lexer/smarty_internal_templateparser.y"
2170
    public function yy_r2()
2171
    {
2172
        $this->current_buffer->append_subtree($this,
2173
            $this->compiler->processText($this->yystack[ $this->yyidx + 0 ]->minor));
2174
    }
2175
 
2176
    // line 259 "../smarty/lexer/smarty_internal_templateparser.y"
2177
    public function yy_r3()
2178
    {
2179
        $this->strip = true;
2180
    }
2181
 
2182
    // line 264 "../smarty/lexer/smarty_internal_templateparser.y"
2183
    public function yy_r4()
2184
    {
2185
        $this->strip = false;
2186
    }
2187
 
2188
    // line 269 "../smarty/lexer/smarty_internal_templateparser.y"
2189
    public function yy_r5()
2190
    {
2191
        $this->current_buffer->append_subtree($this,
2192
            new Smarty_Internal_ParseTree_Text($this->yystack[ $this->yyidx + -1 ]->minor));
2193
    }
2194
 
2195
    // line 272 "../smarty/lexer/smarty_internal_templateparser.y"
2196
    public function yy_r6()
2197
    {
2198
        $this->_retvalue = $this->yystack[ $this->yyidx + -3 ]->minor . $this->yystack[ $this->yyidx + -1 ]->minor;
2199
    }
2200
 
2201
    // line 276 "../smarty/lexer/smarty_internal_templateparser.y"
2202
    public function yy_r7()
2203
    {
2204
        $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor;
2205
    }
2206
 
2207
    // line 281 "../smarty/lexer/smarty_internal_templateparser.y"
2208
    public function yy_r8()
2209
    {
2210
        $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor;
2211
    }
2212
 
2213
    // line 285 "../smarty/lexer/smarty_internal_templateparser.y"
2214
    public function yy_r9()
2215
    {
2216
        $this->_retvalue = '';
2217
    }
2218
 
2219
    // line 297 "../smarty/lexer/smarty_internal_templateparser.y"
2220
    public function yy_r10()
2221
    {
2222
        if ($this->compiler->has_code) {
2223
            $this->current_buffer->append_subtree($this,
2224
                $this->mergePrefixCode($this->yystack[ $this->yyidx + 0 ]->minor));
2225
        }
2226
        $this->compiler->has_variable_string = false;
2227
        $this->block_nesting_level = count($this->compiler->_tag_stack);
2228
    }
2229
 
2230
    // line 307 "../smarty/lexer/smarty_internal_templateparser.y"
2231
    public function yy_r12()
2232
    {
2233
        $var =
2234
            trim(substr($this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler->getLdelLength(),
2235
                -$this->compiler->getRdelLength()), ' $');
2236
        if (preg_match('/^(.*)(\s+nocache)$/', $var, $match)) {
2237
            $this->_retvalue =
2238
                $this->compiler->compileTag('private_print_expression', array('nocache'),
2239
                    array('value' => $this->compiler->compileVariable('\'' . $match[ 1 ] . '\'')));
2240
        } else {
2241
            $this->_retvalue =
2242
                $this->compiler->compileTag('private_print_expression', array(),
2243
                    array('value' => $this->compiler->compileVariable('\'' . $var . '\'')));
2244
        }
2245
    }
2246
 
2247
    // line 328 "../smarty/lexer/smarty_internal_templateparser.y"
2248
    public function yy_r13()
2249
    {
2250
        $tag =
2251
            trim(substr($this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler->getLdelLength(),
2252
                -$this->compiler->getRdelLength()));
2253
        if ($tag == 'strip') {
2254
            $this->strip = true;
2255
            $this->_retvalue = null;;
2256
        } else {
2257
            if (defined($tag)) {
2258
                if ($this->security) {
2259
                    $this->security->isTrustedConstant($tag, $this->compiler);
2260
                }
2261
                $this->_retvalue =
2262
                    $this->compiler->compileTag('private_print_expression', array(), array('value' => $tag));
2263
            } else {
2264
                if (preg_match('/^(.*)(\s+nocache)$/', $tag, $match)) {
2265
                    $this->_retvalue = $this->compiler->compileTag($match[ 1 ], array('\'nocache\''));
2266
                } else {
2267
                    $this->_retvalue = $this->compiler->compileTag($tag, array());
2268
                }
2269
            }
2270
        }
2271
    }
2272
 
2273
    // line 339 "../smarty/lexer/smarty_internal_templateparser.y"
2274
    public function yy_r14()
2275
    {
2276
        $j = strrpos($this->yystack[ $this->yyidx + 0 ]->minor, '.');
2277
        if ($this->yystack[ $this->yyidx + 0 ]->minor[ $j + 1 ] == 'c') {
2278
            // {$smarty.block.child}
2279
            $this->_retvalue =
2280
                $this->compiler->compileTag('child', array(), array($this->yystack[ $this->yyidx + 0 ]->minor));
2281
        } else {
2282
            // {$smarty.block.parent}
2283
            $this->_retvalue =
2284
                $this->compiler->compileTag('parent', array(), array($this->yystack[ $this->yyidx + 0 ]->minor));
2285
        }
2286
    }
2287
 
2288
    // line 343 "../smarty/lexer/smarty_internal_templateparser.y"
2289
    public function yy_r15()
2290
    {
2291
        $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor;
2292
    }
2293
 
2294
    // line 347 "../smarty/lexer/smarty_internal_templateparser.y"
2295
    public function yy_r16()
2296
    {
2297
        $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor;
2298
    }
2299
 
2300
    // line 356 "../smarty/lexer/smarty_internal_templateparser.y"
2301
    public function yy_r17()
2302
    {
2303
        $this->_retvalue =
2304
            $this->compiler->compileTag('private_print_expression', $this->yystack[ $this->yyidx + 0 ]->minor[ 1 ],
2305
                array('value' => $this->yystack[ $this->yyidx + 0 ]->minor[ 0 ]));
2306
    }
2307
 
2308
    // line 360 "../smarty/lexer/smarty_internal_templateparser.y"
2309
    public function yy_r18()
2310
    {
2311
        $this->_retvalue =
2312
            $this->compiler->compileTag('assign', array_merge(array(
2313
                array('value' => $this->yystack[ $this->yyidx + 0 ]->minor[ 0 ]),
2314
                array('var' => '\'' . substr($this->yystack[ $this->yyidx + -1 ]->minor, 1) . '\'')
2315
            ), $this->yystack[ $this->yyidx + 0 ]->minor[ 1 ]));
2316
    }
2317
 
2318
    // line 364 "../smarty/lexer/smarty_internal_templateparser.y"
2319
    public function yy_r19()
2320
    {
2321
        $this->_retvalue =
2322
            $this->compiler->compileTag('assign', array_merge(array(
2323
                array('value' => $this->yystack[ $this->yyidx + 0 ]->minor[ 0 ]),
2324
                array('var' => $this->yystack[ $this->yyidx + -1 ]->minor[ 'var' ])
2325
            ), $this->yystack[ $this->yyidx + 0 ]->minor[ 1 ]), array(
2326
                'smarty_internal_index' => $this->yystack[ $this->yyidx +
2327
                                                           -1 ]->minor[ 'smarty_internal_index' ]
2328
            ));
2329
    }
2330
 
2331
    // line 368 "../smarty/lexer/smarty_internal_templateparser.y"
2332
    public function yy_r20()
2333
    {
2334
        $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor;
2335
    }
2336
 
2337
    // line 383 "../smarty/lexer/smarty_internal_templateparser.y"
2338
    public function yy_r21()
2339
    {
2340
        $this->_retvalue = array($this->yystack[ $this->yyidx + -1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor);
2341
    }
2342
 
2343
    // line 393 "../smarty/lexer/smarty_internal_templateparser.y"
2344
    public function yy_r25()
2345
    {
2346
        if (defined($this->yystack[ $this->yyidx + -1 ]->minor)) {
2347
            if ($this->security) {
2348
                $this->security->isTrustedConstant($this->yystack[ $this->yyidx + -1 ]->minor, $this->compiler);
2349
            }
2350
            $this->_retvalue =
2351
                $this->compiler->compileTag('private_print_expression', $this->yystack[ $this->yyidx + 0 ]->minor,
2352
                    array('value' => $this->yystack[ $this->yyidx + -1 ]->minor));
2353
        } else {
2354
            $this->_retvalue =
2355
                $this->compiler->compileTag($this->yystack[ $this->yyidx + -1 ]->minor,
2356
                    $this->yystack[ $this->yyidx + 0 ]->minor);
2357
        }
2358
    }
2359
 
2360
    // line 406 "../smarty/lexer/smarty_internal_templateparser.y"
2361
    public function yy_r26()
2362
    {
2363
        if (defined($this->yystack[ $this->yyidx + 0 ]->minor)) {
2364
            if ($this->security) {
2365
                $this->security->isTrustedConstant($this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler);
2366
            }
2367
            $this->_retvalue =
2368
                $this->compiler->compileTag('private_print_expression', array(),
2369
                    array('value' => $this->yystack[ $this->yyidx + 0 ]->minor));
2370
        } else {
2371
            $this->_retvalue = $this->compiler->compileTag($this->yystack[ $this->yyidx + 0 ]->minor, array());
2372
        }
2373
    }
2374
 
2375
    // line 418 "../smarty/lexer/smarty_internal_templateparser.y"
2376
    public function yy_r27()
2377
    {
2378
        if (defined($this->yystack[ $this->yyidx + -2 ]->minor)) {
2379
            if ($this->security) {
2380
                $this->security->isTrustedConstant($this->yystack[ $this->yyidx + -2 ]->minor, $this->compiler);
2381
            }
2382
            $this->_retvalue =
2383
                $this->compiler->compileTag('private_print_expression', $this->yystack[ $this->yyidx + 0 ]->minor,
2384
                    array(
2385
                        'value'        => $this->yystack[ $this->yyidx + -2 ]->minor,
2386
                        'modifierlist' => $this->yystack[ $this->yyidx + -1 ]->minor
2387
                    ));
2388
        } else {
2389
            $this->_retvalue =
2390
                $this->compiler->compileTag($this->yystack[ $this->yyidx + -2 ]->minor,
2391
                    $this->yystack[ $this->yyidx + 0 ]->minor,
2392
                    array('modifierlist' => $this->yystack[ $this->yyidx + -1 ]->minor));
2393
        }
2394
    }
2395
 
2396
    // line 423 "../smarty/lexer/smarty_internal_templateparser.y"
2397
    public function yy_r28()
2398
    {
2399
        $this->_retvalue =
2400
            $this->compiler->compileTag($this->yystack[ $this->yyidx + -3 ]->minor,
2401
                $this->yystack[ $this->yyidx + 0 ]->minor,
2402
                array('object_method' => $this->yystack[ $this->yyidx + -1 ]->minor));
2403
    }
2404
 
2405
    // line 428 "../smarty/lexer/smarty_internal_templateparser.y"
2406
    public function yy_r29()
2407
    {
2408
        $this->_retvalue =
2409
            $this->compiler->compileTag($this->yystack[ $this->yyidx + -4 ]->minor,
2410
                $this->yystack[ $this->yyidx + 0 ]->minor, array(
2411
                    'modifierlist'  => $this->yystack[ $this->yyidx + -1 ]->minor,
2412
                    'object_method' => $this->yystack[ $this->yyidx + -2 ]->minor
2413
                ));
2414
    }
2415
 
2416
    // line 433 "../smarty/lexer/smarty_internal_templateparser.y"
2417
    public function yy_r30()
2418
    {
2419
        $this->_retvalue =
2420
            $this->compiler->compileTag('make_nocache',
2421
                array(array('var' => '\'' . substr($this->yystack[ $this->yyidx + 0 ]->minor, 1) . '\'')));
2422
    }
2423
 
2424
    // line 438 "../smarty/lexer/smarty_internal_templateparser.y"
2425
    public function yy_r31()
2426
    {
2427
        $tag = trim(substr($this->yystack[ $this->yyidx + -1 ]->minor, $this->compiler->getLdelLength()));
2428
        $this->_retvalue =
2429
            $this->compiler->compileTag(($tag === 'else if') ? 'elseif' : $tag, array(),
2430
                array('if condition' => $this->yystack[ $this->yyidx + 0 ]->minor));
2431
    }
2432
 
2433
    // line 443 "../smarty/lexer/smarty_internal_templateparser.y"
2434
    public function yy_r32()
2435
    {
2436
        $tag = trim(substr($this->yystack[ $this->yyidx + -2 ]->minor, $this->compiler->getLdelLength()));
2437
        $this->_retvalue =
2438
            $this->compiler->compileTag(($tag === 'else if') ? 'elseif' : $tag,
2439
                $this->yystack[ $this->yyidx + 0 ]->minor,
2440
                array('if condition' => $this->yystack[ $this->yyidx + -1 ]->minor));
2441
    }
2442
 
2443
    // line 454 "../smarty/lexer/smarty_internal_templateparser.y"
2444
    public function yy_r33()
2445
    {
2446
        $tag = trim(substr($this->yystack[ $this->yyidx + -1 ]->minor, $this->compiler->getLdelLength()));
2447
        $this->_retvalue =
2448
            $this->compiler->compileTag(($tag === 'else if') ? 'elseif' : $tag, array(),
2449
                array('if condition' => $this->yystack[ $this->yyidx + 0 ]->minor));
2450
    }
2451
 
2452
    // line 458 "../smarty/lexer/smarty_internal_templateparser.y"
2453
    public function yy_r35()
2454
    {
2455
        $this->_retvalue =
2456
            $this->compiler->compileTag('for', array_merge($this->yystack[ $this->yyidx + 0 ]->minor, array(
2457
                array('start' => $this->yystack[ $this->yyidx + -6 ]->minor),
2458
                array('ifexp' => $this->yystack[ $this->yyidx + -4 ]->minor),
2459
                array('var' => $this->yystack[ $this->yyidx + -2 ]->minor),
2460
                array('step' => $this->yystack[ $this->yyidx + -1 ]->minor)
2461
            )), 1);
2462
    }
2463
 
2464
    // line 466 "../smarty/lexer/smarty_internal_templateparser.y"
2465
    public function yy_r36()
2466
    {
2467
        $this->_retvalue = '=' . $this->yystack[ $this->yyidx + 0 ]->minor;
2468
    }
2469
 
2470
    // line 470 "../smarty/lexer/smarty_internal_templateparser.y"
2471
    public function yy_r38()
2472
    {
2473
        $this->_retvalue =
2474
            $this->compiler->compileTag('for', array_merge($this->yystack[ $this->yyidx + 0 ]->minor, array(
2475
                array('start' => $this->yystack[ $this->yyidx + -3 ]->minor),
2476
                array('to' => $this->yystack[ $this->yyidx + -1 ]->minor)
2477
            )), 0);
2478
    }
2479
 
2480
    // line 475 "../smarty/lexer/smarty_internal_templateparser.y"
2481
    public function yy_r39()
2482
    {
2483
        $this->_retvalue =
2484
            $this->compiler->compileTag('for', array_merge($this->yystack[ $this->yyidx + 0 ]->minor, array(
2485
                array('start' => $this->yystack[ $this->yyidx + -5 ]->minor),
2486
                array('to' => $this->yystack[ $this->yyidx + -3 ]->minor),
2487
                array('step' => $this->yystack[ $this->yyidx + -1 ]->minor)
2488
            )), 0);
2489
    }
2490
 
2491
    // line 479 "../smarty/lexer/smarty_internal_templateparser.y"
2492
    public function yy_r40()
2493
    {
2494
        $this->_retvalue =
2495
            $this->compiler->compileTag('foreach', array_merge($this->yystack[ $this->yyidx + 0 ]->minor, array(
2496
                array('from' => $this->yystack[ $this->yyidx + -3 ]->minor),
2497
                array('item' => $this->yystack[ $this->yyidx + -1 ]->minor)
2498
            )));
2499
    }
2500
 
2501
    // line 482 "../smarty/lexer/smarty_internal_templateparser.y"
2502
    public function yy_r41()
2503
    {
2504
        $this->_retvalue =
2505
            $this->compiler->compileTag('foreach', array_merge($this->yystack[ $this->yyidx + 0 ]->minor, array(
2506
                array('from' => $this->yystack[ $this->yyidx + -5 ]->minor),
2507
                array('item' => $this->yystack[ $this->yyidx + -1 ]->minor),
2508
                array('key' => $this->yystack[ $this->yyidx + -3 ]->minor)
2509
            )));
2510
    }
2511
 
2512
    // line 487 "../smarty/lexer/smarty_internal_templateparser.y"
2513
    public function yy_r42()
2514
    {
2515
        $this->_retvalue = $this->compiler->compileTag('foreach', $this->yystack[ $this->yyidx + 0 ]->minor);
2516
    }
2517
 
2518
    // line 491 "../smarty/lexer/smarty_internal_templateparser.y"
2519
    public function yy_r43()
2520
    {
2521
        $this->_retvalue =
2522
            $this->compiler->compileTag('setfilter', array(), array(
2523
                'modifier_list' => array(
2524
                    array_merge(array($this->yystack[ $this->yyidx + -1 ]->minor),
2525
                        $this->yystack[ $this->yyidx + 0 ]->minor)
2526
                )
2527
            ));
2528
    }
2529
 
2530
    // line 497 "../smarty/lexer/smarty_internal_templateparser.y"
2531
    public function yy_r44()
2532
    {
2533
        $this->_retvalue =
2534
            $this->compiler->compileTag('setfilter', array(), array(
2535
                'modifier_list' => array_merge(array(
2536
                    array_merge(array(
2537
                        $this->yystack[ $this->yyidx +
2538
                                        -2 ]->minor
2539
                    ), $this->yystack[ $this->yyidx + -1 ]->minor)
2540
                ), $this->yystack[ $this->yyidx + 0 ]->minor)
2541
            ));
2542
    }
2543
 
2544
    // line 506 "../smarty/lexer/smarty_internal_templateparser.y"
2545
    public function yy_r45()
2546
    {
2547
        $tag =
2548
            trim(substr($this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler->getLdelLength(),
2549
                -$this->compiler->getRdelLength()), ' /');
2550
        if ($tag === 'strip') {
2551
            $this->strip = false;
2552
            $this->_retvalue = null;
2553
        } else {
2554
            $this->_retvalue = $this->compiler->compileTag($tag . 'close', array());
2555
        }
2556
    }
2557
 
2558
    // line 510 "../smarty/lexer/smarty_internal_templateparser.y"
2559
    public function yy_r46()
2560
    {
2561
        $this->_retvalue = $this->compiler->compileTag($this->yystack[ $this->yyidx + 0 ]->minor . 'close', array());
2562
    }
2563
 
2564
    // line 515 "../smarty/lexer/smarty_internal_templateparser.y"
2565
    public function yy_r47()
2566
    {
2567
        $this->_retvalue =
2568
            $this->compiler->compileTag($this->yystack[ $this->yyidx + -1 ]->minor . 'close', array(),
2569
                array('modifier_list' => $this->yystack[ $this->yyidx + 0 ]->minor));
2570
    }
2571
 
2572
    // line 519 "../smarty/lexer/smarty_internal_templateparser.y"
2573
    public function yy_r48()
2574
    {
2575
        $this->_retvalue =
2576
            $this->compiler->compileTag($this->yystack[ $this->yyidx + -2 ]->minor . 'close', array(),
2577
                array('object_method' => $this->yystack[ $this->yyidx + 0 ]->minor));
2578
    }
2579
 
2580
    // line 527 "../smarty/lexer/smarty_internal_templateparser.y"
2581
    public function yy_r49()
2582
    {
2583
        $this->_retvalue =
2584
            $this->compiler->compileTag($this->yystack[ $this->yyidx + -3 ]->minor . 'close', array(), array(
2585
                'object_method' => $this->yystack[ $this->yyidx + -1 ]->minor,
2586
                'modifier_list' => $this->yystack[ $this->yyidx + 0 ]->minor
2587
            ));
2588
    }
2589
 
2590
    // line 533 "../smarty/lexer/smarty_internal_templateparser.y"
2591
    public function yy_r50()
2592
    {
2593
        $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor;
2594
        $this->_retvalue[] = $this->yystack[ $this->yyidx + 0 ]->minor;
2595
    }
2596
 
2597
    // line 538 "../smarty/lexer/smarty_internal_templateparser.y"
2598
    public function yy_r51()
2599
    {
2600
        $this->_retvalue = array($this->yystack[ $this->yyidx + 0 ]->minor);
2601
    }
2602
 
2603
    // line 543 "../smarty/lexer/smarty_internal_templateparser.y"
2604
    public function yy_r52()
2605
    {
2606
        $this->_retvalue = array();
2607
    }
2608
 
2609
    // line 554 "../smarty/lexer/smarty_internal_templateparser.y"
2610
    public function yy_r53()
2611
    {
2612
        if (defined($this->yystack[ $this->yyidx + 0 ]->minor)) {
2613
            if ($this->security) {
2614
                $this->security->isTrustedConstant($this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler);
2615
            }
2616
            $this->_retvalue =
2617
                array($this->yystack[ $this->yyidx + -2 ]->minor => $this->yystack[ $this->yyidx + 0 ]->minor);
2618
        } else {
2619
            $this->_retvalue =
2620
                array(
2621
                    $this->yystack[ $this->yyidx + -2 ]->minor => '\'' .
2622
                                                                  $this->yystack[ $this->yyidx + 0 ]->minor .
2623
                                                                  '\''
2624
                );
2625
        }
2626
    }
2627
 
2628
    // line 562 "../smarty/lexer/smarty_internal_templateparser.y"
2629
    public function yy_r54()
2630
    {
2631
        $this->_retvalue =
2632
            array(
2633
                trim($this->yystack[ $this->yyidx + -1 ]->minor, " =\n\r\t") => $this->yystack[ $this->yyidx +
2634
 
2635
            );
2636
    }
2637
 
2638
    // line 574 "../smarty/lexer/smarty_internal_templateparser.y"
2639
    public function yy_r56()
2640
    {
2641
        $this->_retvalue = '\'' . $this->yystack[ $this->yyidx + 0 ]->minor . '\'';
2642
    }
2643
 
2644
    // line 587 "../smarty/lexer/smarty_internal_templateparser.y"
2645
    public function yy_r59()
2646
    {
2647
        $this->_retvalue =
2648
            array($this->yystack[ $this->yyidx + -2 ]->minor => $this->yystack[ $this->yyidx + 0 ]->minor);
2649
    }
2650
 
2651
    // line 592 "../smarty/lexer/smarty_internal_templateparser.y"
2652
    public function yy_r61()
2653
    {
2654
        $this->yystack[ $this->yyidx + -2 ]->minor[] = $this->yystack[ $this->yyidx + 0 ]->minor;
2655
        $this->_retvalue = $this->yystack[ $this->yyidx + -2 ]->minor;
2656
    }
2657
 
2658
    // line 599 "../smarty/lexer/smarty_internal_templateparser.y"
2659
    public function yy_r62()
2660
    {
2661
        $this->_retvalue =
2662
            array(
2663
                'var'   => '\'' . substr($this->yystack[ $this->yyidx + -2 ]->minor, 1) . '\'',
2664
                'value' => $this->yystack[ $this->yyidx + 0 ]->minor
2665
            );
2666
    }
2667
 
2668
    // line 603 "../smarty/lexer/smarty_internal_templateparser.y"
2669
    public function yy_r64()
2670
    {
2671
        $this->_retvalue =
2672
            array(
2673
                'var'   => $this->yystack[ $this->yyidx + -2 ]->minor,
2674
                'value' => $this->yystack[ $this->yyidx + 0 ]->minor
2675
            );
2676
    }
2677
 
2678
    // line 623 "../smarty/lexer/smarty_internal_templateparser.y"
2679
    public function yy_r65()
2680
    {
2681
        $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor;
2682
    }
2683
 
2684
    // line 628 "../smarty/lexer/smarty_internal_templateparser.y"
2685
    public function yy_r68()
2686
    {
2687
        $this->_retvalue =
2688
            '$_smarty_tpl->getStreamVariable(\'' .
2689
            substr($this->yystack[ $this->yyidx + -2 ]->minor, 1) .
2690
            '://' .
2691
            $this->yystack[ $this->yyidx + 0 ]->minor .
2692
            '\')';
2693
    }
2694
 
2695
    // line 638 "../smarty/lexer/smarty_internal_templateparser.y"
2696
    public function yy_r69()
2697
    {
2698
        $this->_retvalue =
2699
            $this->yystack[ $this->yyidx + -2 ]->minor .
2700
            trim($this->yystack[ $this->yyidx + -1 ]->minor) .
2701
            $this->yystack[ $this->yyidx + 0 ]->minor;
2702
    }
2703
 
2704
    // line 642 "../smarty/lexer/smarty_internal_templateparser.y"
2705
    public function yy_r71()
2706
    {
2707
        $this->_retvalue =
2708
            $this->yystack[ $this->yyidx + -1 ]->minor[ 'pre' ] .
2709
            $this->yystack[ $this->yyidx + -2 ]->minor .
2710
            $this->yystack[ $this->yyidx + -1 ]->minor[ 'op' ] .
2711
            $this->yystack[ $this->yyidx + 0 ]->minor .
2712
            ')';
2713
    }
2714
 
2715
    // line 646 "../smarty/lexer/smarty_internal_templateparser.y"
2716
    public function yy_r72()
2717
    {
2718
        $this->_retvalue =
2719
            $this->yystack[ $this->yyidx + -2 ]->minor .
2720
            $this->yystack[ $this->yyidx + -1 ]->minor .
2721
            $this->yystack[ $this->yyidx + 0 ]->minor;
2722
    }
2723
 
2724
    // line 650 "../smarty/lexer/smarty_internal_templateparser.y"
2725
    public function yy_r73()
2726
    {
2727
        $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor . $this->yystack[ $this->yyidx + -1 ]->minor . ')';
2728
    }
2729
 
2730
    // line 654 "../smarty/lexer/smarty_internal_templateparser.y"
2731
    public function yy_r74()
2732
    {
2733
        $this->_retvalue =
2734
            'in_array(' .
2735
            $this->yystack[ $this->yyidx + -2 ]->minor .
2736
            ',' .
2737
            $this->yystack[ $this->yyidx + 0 ]->minor .
2738
            ')';
2739
    }
2740
 
2741
    // line 662 "../smarty/lexer/smarty_internal_templateparser.y"
2742
    public function yy_r75()
2743
    {
2744
        $this->_retvalue =
2745
            'in_array(' .
2746
            $this->yystack[ $this->yyidx + -2 ]->minor .
2747
            ',(array)' .
2748
            $this->yystack[ $this->yyidx + 0 ]->minor .
2749
            ')';
2750
    }
2751
 
2752
    // line 666 "../smarty/lexer/smarty_internal_templateparser.y"
2753
    public function yy_r76()
2754
    {
2755
        $this->_retvalue =
2756
            $this->yystack[ $this->yyidx + -5 ]->minor .
2757
            ' ? ' .
2758
            $this->compiler->compileVariable('\'' . substr($this->yystack[ $this->yyidx + -2 ]->minor, 1) . '\'') .
2759
            ' : ' .
2760
            $this->yystack[ $this->yyidx + 0 ]->minor;
2761
    }
2762
 
2763
    // line 676 "../smarty/lexer/smarty_internal_templateparser.y"
2764
    public function yy_r77()
2765
    {
2766
        $this->_retvalue =
2767
            $this->yystack[ $this->yyidx + -5 ]->minor .
2768
            ' ? ' .
2769
            $this->yystack[ $this->yyidx + -2 ]->minor .
2770
            ' : ' .
2771
            $this->yystack[ $this->yyidx + 0 ]->minor;
2772
    }
2773
 
2774
    // line 681 "../smarty/lexer/smarty_internal_templateparser.y"
2775
    public function yy_r79()
2776
    {
2777
        $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor;
2778
    }
2779
 
2780
    // line 702 "../smarty/lexer/smarty_internal_templateparser.y"
2781
    public function yy_r80()
2782
    {
2783
        $this->_retvalue = '!' . $this->yystack[ $this->yyidx + 0 ]->minor;
2784
    }
2785
 
2786
    // line 706 "../smarty/lexer/smarty_internal_templateparser.y"
2787
    public function yy_r85()
2788
    {
2789
        $this->_retvalue = $this->yystack[ $this->yyidx + -2 ]->minor . '.' . $this->yystack[ $this->yyidx + 0 ]->minor;
2790
    }
2791
 
2792
    // line 710 "../smarty/lexer/smarty_internal_templateparser.y"
2793
    public function yy_r86()
2794
    {
2795
        $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor . '.';
2796
    }
2797
 
2798
    // line 715 "../smarty/lexer/smarty_internal_templateparser.y"
2799
    public function yy_r87()
2800
    {
2801
        $this->_retvalue = '.' . $this->yystack[ $this->yyidx + 0 ]->minor;
2802
    }
2803
 
2804
    // line 732 "../smarty/lexer/smarty_internal_templateparser.y"
2805
    public function yy_r88()
2806
    {
2807
        if (defined($this->yystack[ $this->yyidx + 0 ]->minor)) {
2808
            if ($this->security) {
2809
                $this->security->isTrustedConstant($this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler);
2810
            }
2811
            $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor;
2812
        } else {
2813
            $this->_retvalue = '\'' . $this->yystack[ $this->yyidx + 0 ]->minor . '\'';
2814
        }
2815
    }
2816
 
2817
    // line 736 "../smarty/lexer/smarty_internal_templateparser.y"
2818
    public function yy_r90()
2819
    {
2820
        $this->_retvalue = '(' . $this->yystack[ $this->yyidx + -1 ]->minor . ')';
2821
    }
2822
 
2823
    // line 754 "../smarty/lexer/smarty_internal_templateparser.y"
2824
    public function yy_r91()
2825
    {
2826
        $this->_retvalue =
2827
            $this->yystack[ $this->yyidx + -2 ]->minor .
2828
            $this->yystack[ $this->yyidx + -1 ]->minor .
2829
            $this->yystack[ $this->yyidx + 0 ]->minor;
2830
    }
2831
 
2832
    // line 765 "../smarty/lexer/smarty_internal_templateparser.y"
2833
    public function yy_r95()
2834
    {
2835
        $prefixVar = $this->compiler->getNewPrefixVariable();
2836
        if ($this->yystack[ $this->yyidx + -2 ]->minor[ 'var' ] === '\'smarty\'') {
2837
            $this->compiler->appendPrefixCode("<?php {$prefixVar} = " .
2838
                                              $this->compiler->compileTag('private_special_variable', array(),
2839
                                                  $this->yystack[ $this->yyidx +
2840
                                                                  -2 ]->minor[ 'smarty_internal_index' ]) .
2841
                                              ';?>');
2842
        } else {
2843
            $this->compiler->appendPrefixCode("<?php  {$prefixVar} = " .
2844
                                              $this->compiler->compileVariable($this->yystack[ $this->yyidx +
2845
                                                                                               -2 ]->minor[ 'var' ]) .
2846
                                              $this->yystack[ $this->yyidx + -2 ]->minor[ 'smarty_internal_index' ] .
2847
                                              ';?>');
2848
        }
2849
        $this->_retvalue =
2850
            $prefixVar .
2851
            '::' .
2852
            $this->yystack[ $this->yyidx + 0 ]->minor[ 0 ] .
2853
            $this->yystack[ $this->yyidx + 0 ]->minor[ 1 ];
2854
    }
2855
 
2856
    // line 772 "../smarty/lexer/smarty_internal_templateparser.y"
2857
    public function yy_r96()
2858
    {
2859
        $prefixVar = $this->compiler->getNewPrefixVariable();
2860
        $tmp = $this->compiler->appendCode('<?php ob_start();?>', $this->yystack[ $this->yyidx + 0 ]->minor);
2861
        $this->compiler->appendPrefixCode($this->compiler->appendCode($tmp, "<?php {$prefixVar} = ob_get_clean();?>"));
2862
        $this->_retvalue = $prefixVar;
2863
    }
2864
 
2865
    // line 785 "../smarty/lexer/smarty_internal_templateparser.y"
2866
    public function yy_r97()
2867
    {
2868
        $this->_retvalue =
2869
            $this->compiler->compileTag('private_modifier', array(), array(
2870
                'value'        => $this->yystack[ $this->yyidx + -1 ]->minor,
2871
                'modifierlist' => $this->yystack[ $this->yyidx + 0 ]->minor
2872
            ));
2873
    }
2874
 
2875
    // line 804 "../smarty/lexer/smarty_internal_templateparser.y"
2876
    public function yy_r100()
2877
    {
2878
        if (!in_array(strtolower($this->yystack[ $this->yyidx + -2 ]->minor), array('self', 'parent')) &&
2879
            (!$this->security ||
2880
             $this->security->isTrustedStaticClassAccess($this->yystack[ $this->yyidx + -2 ]->minor,
2881
                 $this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler))) {
2882
            if (isset($this->smarty->registered_classes[ $this->yystack[ $this->yyidx + -2 ]->minor ])) {
2883
                $this->_retvalue =
2884
                    $this->smarty->registered_classes[ $this->yystack[ $this->yyidx + -2 ]->minor ] .
2885
                    '::' .
2886
                    $this->yystack[ $this->yyidx + 0 ]->minor[ 0 ] .
2887
                    $this->yystack[ $this->yyidx + 0 ]->minor[ 1 ];
2888
            } else {
2889
                $this->_retvalue =
2890
                    $this->yystack[ $this->yyidx + -2 ]->minor .
2891
                    '::' .
2892
                    $this->yystack[ $this->yyidx + 0 ]->minor[ 0 ] .
2893
                    $this->yystack[ $this->yyidx + 0 ]->minor[ 1 ];
2894
            }
2895
        } else {
2896
            $this->compiler->trigger_template_error('static class \'' .
2897
                                                    $this->yystack[ $this->yyidx + -2 ]->minor .
2898
                                                    '\' is undefined or not allowed by security setting');
2899
        }
2900
    }
2901
 
2902
    // line 815 "../smarty/lexer/smarty_internal_templateparser.y"
2903
    public function yy_r102()
2904
    {
2905
        $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor;
2906
    }
2907
 
2908
    // line 818 "../smarty/lexer/smarty_internal_templateparser.y"
2909
    public function yy_r103()
2910
    {
2911
        $this->_retvalue =
2912
            $this->compiler->compileVariable('\'' . substr($this->yystack[ $this->yyidx + 0 ]->minor, 1) . '\'');
2913
    }
2914
 
2915
    // line 831 "../smarty/lexer/smarty_internal_templateparser.y"
2916
    public function yy_r104()
2917
    {
2918
        if ($this->yystack[ $this->yyidx + 0 ]->minor[ 'var' ] === '\'smarty\'') {
2919
            $smarty_var =
2920
                $this->compiler->compileTag('private_special_variable', array(),
2921
                    $this->yystack[ $this->yyidx + 0 ]->minor[ 'smarty_internal_index' ]);
2922
            $this->_retvalue = $smarty_var;
2923
        } else {
2924
            // used for array reset,next,prev,end,current
2925
            $this->last_variable = $this->yystack[ $this->yyidx + 0 ]->minor[ 'var' ];
2926
            $this->last_index = $this->yystack[ $this->yyidx + 0 ]->minor[ 'smarty_internal_index' ];
2927
            $this->_retvalue =
2928
                $this->compiler->compileVariable($this->yystack[ $this->yyidx + 0 ]->minor[ 'var' ]) .
2929
                $this->yystack[ $this->yyidx + 0 ]->minor[ 'smarty_internal_index' ];
2930
        }
2931
    }
2932
 
2933
    // line 841 "../smarty/lexer/smarty_internal_templateparser.y"
2934
    public function yy_r105()
2935
    {
2936
        $this->_retvalue =
2937
            '$_smarty_tpl->tpl_vars[' .
2938
            $this->yystack[ $this->yyidx + -2 ]->minor .
2939
            ']->' .
2940
            $this->yystack[ $this->yyidx + 0 ]->minor;
2941
    }
2942
 
2943
    // line 845 "../smarty/lexer/smarty_internal_templateparser.y"
2944
    public function yy_r107()
2945
    {
2946
        $this->_retvalue =
2947
            $this->compiler->compileConfigVariable('\'' . $this->yystack[ $this->yyidx + -1 ]->minor . '\'');
2948
    }
2949
 
2950
    // line 849 "../smarty/lexer/smarty_internal_templateparser.y"
2951
    public function yy_r108()
2952
    {
2953
        $this->_retvalue =
2954
            '(is_array($tmp = ' .
2955
            $this->compiler->compileConfigVariable('\'' . $this->yystack[ $this->yyidx + -2 ]->minor . '\'') .
2956
            ') ? $tmp' .
2957
            $this->yystack[ $this->yyidx + 0 ]->minor .
2958
            ' :null)';
2959
    }
2960
 
2961
    // line 853 "../smarty/lexer/smarty_internal_templateparser.y"
2962
    public function yy_r109()
2963
    {
2964
        $this->_retvalue = $this->compiler->compileConfigVariable($this->yystack[ $this->yyidx + -1 ]->minor);
2965
    }
2966
 
2967
    // line 857 "../smarty/lexer/smarty_internal_templateparser.y"
2968
    public function yy_r110()
2969
    {
2970
        $this->_retvalue =
2971
            '(is_array($tmp = ' .
2972
            $this->compiler->compileConfigVariable($this->yystack[ $this->yyidx + -2 ]->minor) .
2973
            ') ? $tmp' .
2974
            $this->yystack[ $this->yyidx + 0 ]->minor .
2975
            ' : null)';
2976
    }
2977
 
2978
    // line 860 "../smarty/lexer/smarty_internal_templateparser.y"
2979
    public function yy_r111()
2980
    {
2981
        $this->_retvalue =
2982
            array(
2983
                'var'                   => '\'' . substr($this->yystack[ $this->yyidx + -1 ]->minor, 1) . '\'',
2984
                'smarty_internal_index' => $this->yystack[ $this->yyidx + 0 ]->minor
2985
            );
2986
    }
2987
 
2988
    // line 873 "../smarty/lexer/smarty_internal_templateparser.y"
2989
    public function yy_r112()
2990
    {
2991
        $this->_retvalue =
2992
            array(
2993
                'var'                   => $this->yystack[ $this->yyidx + -1 ]->minor,
2994
                'smarty_internal_index' => $this->yystack[ $this->yyidx + 0 ]->minor
2995
            );
2996
    }
2997
 
2998
    // line 879 "../smarty/lexer/smarty_internal_templateparser.y"
2999
    public function yy_r114()
3000
    {
3001
        return;
3002
    }
3003
 
3004
    // line 882 "../smarty/lexer/smarty_internal_templateparser.y"
3005
    public function yy_r115()
3006
    {
3007
        $this->_retvalue =
3008
            '[' .
3009
            $this->compiler->compileVariable('\'' . substr($this->yystack[ $this->yyidx + 0 ]->minor, 1) . '\'') .
3010
            ']';
3011
    }
3012
 
3013
    // line 886 "../smarty/lexer/smarty_internal_templateparser.y"
3014
    public function yy_r116()
3015
    {
3016
        $this->_retvalue = '[' . $this->compiler->compileVariable($this->yystack[ $this->yyidx + 0 ]->minor) . ']';
3017
    }
3018
 
3019
    // line 890 "../smarty/lexer/smarty_internal_templateparser.y"
3020
    public function yy_r117()
3021
    {
3022
        $this->_retvalue =
3023
            '[' .
3024
            $this->compiler->compileVariable($this->yystack[ $this->yyidx + -2 ]->minor) .
3025
            '->' .
3026
            $this->yystack[ $this->yyidx + 0 ]->minor .
3027
            ']';
3028
    }
3029
 
3030
    // line 894 "../smarty/lexer/smarty_internal_templateparser.y"
3031
    public function yy_r118()
3032
    {
3033
        $this->_retvalue = '[\'' . $this->yystack[ $this->yyidx + 0 ]->minor . '\']';
3034
    }
3035
 
3036
    // line 899 "../smarty/lexer/smarty_internal_templateparser.y"
3037
    public function yy_r119()
3038
    {
3039
        $this->_retvalue = '[' . $this->yystack[ $this->yyidx + 0 ]->minor . ']';
3040
    }
3041
 
3042
    // line 904 "../smarty/lexer/smarty_internal_templateparser.y"
3043
    public function yy_r120()
3044
    {
3045
        $this->_retvalue = '[' . $this->yystack[ $this->yyidx + -1 ]->minor . ']';
3046
    }
3047
 
3048
    // line 908 "../smarty/lexer/smarty_internal_templateparser.y"
3049
    public function yy_r121()
3050
    {
3051
        $this->_retvalue =
3052
            '[' .
3053
            $this->compiler->compileTag('private_special_variable', array(),
3054
                '[\'section\'][\'' . $this->yystack[ $this->yyidx + -1 ]->minor . '\'][\'index\']') .
3055
            ']';
3056
    }
3057
 
3058
    // line 911 "../smarty/lexer/smarty_internal_templateparser.y"
3059
    public function yy_r122()
3060
    {
3061
        $this->_retvalue =
3062
            '[' .
3063
            $this->compiler->compileTag('private_special_variable', array(), '[\'section\'][\'' .
3064
                                                                             $this->yystack[ $this->yyidx +
3065
                                                                                             -3 ]->minor .
3066
                                                                             '\'][\'' .
3067
                                                                             $this->yystack[ $this->yyidx +
3068
                                                                                             -1 ]->minor .
3069
                                                                             '\']') .
3070
            ']';
3071
    }
3072
 
3073
    // line 917 "../smarty/lexer/smarty_internal_templateparser.y"
3074
    public function yy_r123()
3075
    {
3076
        $this->_retvalue = '[' . $this->yystack[ $this->yyidx + -1 ]->minor . ']';
3077
    }
3078
 
3079
    // line 933 "../smarty/lexer/smarty_internal_templateparser.y"
3080
    public function yy_r125()
3081
    {
3082
        $this->_retvalue =
3083
            '[' .
3084
            $this->compiler->compileVariable('\'' . substr($this->yystack[ $this->yyidx + -1 ]->minor, 1) . '\'') .
3085
            ']';
3086
    }
3087
 
3088
    // line 943 "../smarty/lexer/smarty_internal_templateparser.y"
3089
    public function yy_r129()
3090
    {
3091
        $this->_retvalue = '[]';
3092
    }
3093
 
3094
    // line 947 "../smarty/lexer/smarty_internal_templateparser.y"
3095
    public function yy_r130()
3096
    {
3097
        $this->_retvalue = '\'' . substr($this->yystack[ $this->yyidx + 0 ]->minor, 1) . '\'';
3098
    }
3099
 
3100
    // line 952 "../smarty/lexer/smarty_internal_templateparser.y"
3101
    public function yy_r131()
3102
    {
3103
        $this->_retvalue = '\'\'';
3104
    }
3105
 
3106
    // line 960 "../smarty/lexer/smarty_internal_templateparser.y"
3107
    public function yy_r132()
3108
    {
3109
        $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor . '.' . $this->yystack[ $this->yyidx + 0 ]->minor;
3110
    }
3111
 
3112
    // line 966 "../smarty/lexer/smarty_internal_templateparser.y"
3113
    public function yy_r134()
3114
    {
3115
        $var =
3116
            trim(substr($this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler->getLdelLength(),
3117
                -$this->compiler->getRdelLength()), ' $');
3118
        $this->_retvalue = $this->compiler->compileVariable('\'' . $var . '\'');
3119
    }
3120
 
3121
    // line 973 "../smarty/lexer/smarty_internal_templateparser.y"
3122
    public function yy_r135()
3123
    {
3124
        $this->_retvalue = '(' . $this->yystack[ $this->yyidx + -1 ]->minor . ')';
3125
    }
3126
 
3127
    // line 982 "../smarty/lexer/smarty_internal_templateparser.y"
3128
    public function yy_r136()
3129
    {
3130
        if ($this->yystack[ $this->yyidx + -1 ]->minor[ 'var' ] === '\'smarty\'') {
3131
            $this->_retvalue =
3132
                $this->compiler->compileTag('private_special_variable', array(),
3133
                    $this->yystack[ $this->yyidx + -1 ]->minor[ 'smarty_internal_index' ]) .
3134
                $this->yystack[ $this->yyidx + 0 ]->minor;
3135
        } else {
3136
            $this->_retvalue =
3137
                $this->compiler->compileVariable($this->yystack[ $this->yyidx + -1 ]->minor[ 'var' ]) .
3138
                $this->yystack[ $this->yyidx + -1 ]->minor[ 'smarty_internal_index' ] .
3139
                $this->yystack[ $this->yyidx + 0 ]->minor;
3140
        }
3141
    }
3142
 
3143
    // line 987 "../smarty/lexer/smarty_internal_templateparser.y"
3144
    public function yy_r137()
3145
    {
3146
        $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor;
3147
    }
3148
 
3149
    // line 992 "../smarty/lexer/smarty_internal_templateparser.y"
3150
    public function yy_r138()
3151
    {
3152
        $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor;
3153
    }
3154
 
3155
    // line 999 "../smarty/lexer/smarty_internal_templateparser.y"
3156
    public function yy_r139()
3157
    {
3158
        if ($this->security && substr($this->yystack[ $this->yyidx + -1 ]->minor, 0, 1) === '_') {
3159
            $this->compiler->trigger_template_error(self::ERR1);
3160
        }
3161
        $this->_retvalue =
3162
            '->' . $this->yystack[ $this->yyidx + -1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor;
3163
    }
3164
 
3165
    // line 1006 "../smarty/lexer/smarty_internal_templateparser.y"
3166
    public function yy_r140()
3167
    {
3168
        if ($this->security) {
3169
            $this->compiler->trigger_template_error(self::ERR2);
3170
        }
3171
        $this->_retvalue =
3172
            '->{' .
3173
            $this->compiler->compileVariable($this->yystack[ $this->yyidx + -1 ]->minor) .
3174
            $this->yystack[ $this->yyidx + 0 ]->minor .
3175
            '}';
3176
    }
3177
 
3178
    // line 1013 "../smarty/lexer/smarty_internal_templateparser.y"
3179
    public function yy_r141()
3180
    {
3181
        if ($this->security) {
3182
            $this->compiler->trigger_template_error(self::ERR2);
3183
        }
3184
        $this->_retvalue =
3185
            '->{' . $this->yystack[ $this->yyidx + -2 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor . '}';
3186
    }
3187
 
3188
    // line 1021 "../smarty/lexer/smarty_internal_templateparser.y"
3189
    public function yy_r142()
3190
    {
3191
        if ($this->security) {
3192
            $this->compiler->trigger_template_error(self::ERR2);
3193
        }
3194
        $this->_retvalue =
3195
            '->{\'' .
3196
            $this->yystack[ $this->yyidx + -4 ]->minor .
3197
            '\'.' .
3198
            $this->yystack[ $this->yyidx + -2 ]->minor .
3199
            $this->yystack[ $this->yyidx + 0 ]->minor .
3200
            '}';
3201
    }
3202
 
3203
    // line 1029 "../smarty/lexer/smarty_internal_templateparser.y"
3204
    public function yy_r143()
3205
    {
3206
        $this->_retvalue = '->' . $this->yystack[ $this->yyidx + 0 ]->minor;
3207
    }
3208
 
3209
    // line 1037 "../smarty/lexer/smarty_internal_templateparser.y"
3210
    public function yy_r144()
3211
    {
3212
        $this->_retvalue =
3213
            $this->compiler->compilePHPFunctionCall($this->yystack[ $this->yyidx + -3 ]->minor,
3214
                $this->yystack[ $this->yyidx + -1 ]->minor);
3215
    }
3216
 
3217
    // line 1044 "../smarty/lexer/smarty_internal_templateparser.y"
3218
    public function yy_r145()
3219
    {
3220
        if ($this->security && substr($this->yystack[ $this->yyidx + -3 ]->minor, 0, 1) === '_') {
3221
            $this->compiler->trigger_template_error(self::ERR1);
3222
        }
3223
        $this->_retvalue =
3224
            $this->yystack[ $this->yyidx + -3 ]->minor .
3225
            '(' .
3226
            implode(',', $this->yystack[ $this->yyidx + -1 ]->minor) .
3227
            ')';
3228
    }
3229
 
3230
    // line 1055 "../smarty/lexer/smarty_internal_templateparser.y"
3231
    public function yy_r146()
3232
    {
3233
        if ($this->security) {
3234
            $this->compiler->trigger_template_error(self::ERR2);
3235
        }
3236
        $prefixVar = $this->compiler->getNewPrefixVariable();
3237
        $this->compiler->appendPrefixCode("<?php {$prefixVar} = " .
3238
                                          $this->compiler->compileVariable('\'' .
3239
                                                                           substr($this->yystack[ $this->yyidx +
3240
                                                                                                  -3 ]->minor, 1) .
3241
                                                                           '\'') .
3242
                                          ';?>');
3243
        $this->_retvalue = $prefixVar . '(' . implode(',', $this->yystack[ $this->yyidx + -1 ]->minor) . ')';
3244
    }
3245
 
3246
    // line 1072 "../smarty/lexer/smarty_internal_templateparser.y"
3247
    public function yy_r147()
3248
    {
3249
        $this->_retvalue =
3250
            array_merge($this->yystack[ $this->yyidx + -2 ]->minor, array($this->yystack[ $this->yyidx + 0 ]->minor));
3251
    }
3252
 
3253
    // line 1076 "../smarty/lexer/smarty_internal_templateparser.y"
3254
    public function yy_r150()
3255
    {
3256
        $this->_retvalue =
3257
            array_merge($this->yystack[ $this->yyidx + -2 ]->minor, array(
3258
                array_merge($this->yystack[ $this->yyidx + -1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor)
3259
            ));
3260
    }
3261
 
3262
    // line 1084 "../smarty/lexer/smarty_internal_templateparser.y"
3263
    public function yy_r151()
3264
    {
3265
        $this->_retvalue =
3266
            array(array_merge($this->yystack[ $this->yyidx + -1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor));
3267
    }
3268
 
3269
    // line 1092 "../smarty/lexer/smarty_internal_templateparser.y"
3270
    public function yy_r153()
3271
    {
3272
        $this->_retvalue = array($this->yystack[ $this->yyidx + 0 ]->minor);
3273
    }
3274
 
3275
    // line 1105 "../smarty/lexer/smarty_internal_templateparser.y"
3276
    public function yy_r154()
3277
    {
3278
        $this->_retvalue =
3279
            array_merge($this->yystack[ $this->yyidx + -1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor);
3280
    }
3281
 
3282
    // line 1114 "../smarty/lexer/smarty_internal_templateparser.y"
3283
    public function yy_r157()
3284
    {
3285
        $this->_retvalue =
3286
            array(trim($this->yystack[ $this->yyidx + -1 ]->minor) . $this->yystack[ $this->yyidx + 0 ]->minor);
3287
    }
3288
 
3289
    // line 1119 "../smarty/lexer/smarty_internal_templateparser.y"
3290
    public function yy_r159()
3291
    {
3292
        $this->_retvalue = array($this->yystack[ $this->yyidx + 0 ]->minor, '', 'method');
3293
    }
3294
 
3295
    // line 1124 "../smarty/lexer/smarty_internal_templateparser.y"
3296
    public function yy_r160()
3297
    {
3298
        $this->_retvalue =
3299
            array($this->yystack[ $this->yyidx + -1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor, 'method');
3300
    }
3301
 
3302
    // line 1129 "../smarty/lexer/smarty_internal_templateparser.y"
3303
    public function yy_r161()
3304
    {
3305
        $this->_retvalue = array($this->yystack[ $this->yyidx + 0 ]->minor, '');
3306
    }
3307
 
3308
    // line 1134 "../smarty/lexer/smarty_internal_templateparser.y"
3309
    public function yy_r162()
3310
    {
3311
        $this->_retvalue =
3312
            array($this->yystack[ $this->yyidx + -1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor, 'property');
3313
    }
3314
 
3315
    // line 1140 "../smarty/lexer/smarty_internal_templateparser.y"
3316
    public function yy_r163()
3317
    {
3318
        $this->_retvalue =
3319
            array(
3320
                $this->yystack[ $this->yyidx + -2 ]->minor,
3321
                $this->yystack[ $this->yyidx + -1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor, 'property'
3322
            );
3323
    }
3324
 
3325
    // line 1144 "../smarty/lexer/smarty_internal_templateparser.y"
3326
    public function yy_r164()
3327
    {
3328
        $this->_retvalue = ' ' . trim($this->yystack[ $this->yyidx + 0 ]->minor) . ' ';
3329
    }
3330
 
3331
    // line 1163 "../smarty/lexer/smarty_internal_templateparser.y"
3332
    public function yy_r165()
3333
    {
3334
        static $lops = array(
3335
            'eq'  => ' == ',
3336
            'ne'  => ' != ',
3337
            'neq' => ' != ',
3338
            'gt'  => ' > ',
3339
            'ge'  => ' >= ',
3340
            'gte' => ' >= ',
3341
            'lt'  => ' < ',
3342
            'le'  => ' <= ',
3343
            'lte' => ' <= ',
3344
            'mod' => ' % ',
3345
            'and' => ' && ',
3346
            'or'  => ' || ',
3347
            'xor' => ' xor ',
3348
        );
3349
        $op = strtolower(preg_replace('/\s*/', '', $this->yystack[ $this->yyidx + 0 ]->minor));
3350
        $this->_retvalue = $lops[ $op ];
3351
    }
3352
 
3353
    // line 1176 "../smarty/lexer/smarty_internal_templateparser.y"
3354
    public function yy_r166()
3355
    {
3356
        static $tlops = array(
3357
            'isdivby'     => array('op' => ' % ', 'pre' => '!('),
3358
            'isnotdivby'  => array('op' => ' % ', 'pre' => '('),
3359
            'isevenby'    => array('op' => ' / ', 'pre' => '!(1 & '),
3360
            'isnotevenby' => array('op' => ' / ', 'pre' => '(1 & '),
3361
            'isoddby'     => array('op' => ' / ', 'pre' => '(1 & '),
3362
            'isnotoddby'  => array('op' => ' / ', 'pre' => '!(1 & '),
3363
        );
3364
        $op = strtolower(preg_replace('/\s*/', '', $this->yystack[ $this->yyidx + 0 ]->minor));
3365
        $this->_retvalue = $tlops[ $op ];
3366
    }
3367
 
3368
    // line 1190 "../smarty/lexer/smarty_internal_templateparser.y"
3369
    public function yy_r167()
3370
    {
3371
        static $scond = array(
3372
            'iseven'    => '!(1 & ',
3373
            'isnoteven' => '(1 & ',
3374
            'isodd'     => '(1 & ',
3375
            'isnotodd'  => '!(1 & ',
3376
        );
3377
        $op = strtolower(str_replace(' ', '', $this->yystack[ $this->yyidx + 0 ]->minor));
3378
        $this->_retvalue = $scond[ $op ];
3379
    }
3380
 
3381
    // line 1201 "../smarty/lexer/smarty_internal_templateparser.y"
3382
    public function yy_r168()
3383
    {
3384
        $this->_retvalue = 'array(' . $this->yystack[ $this->yyidx + -1 ]->minor . ')';
3385
    }
3386
 
3387
    // line 1209 "../smarty/lexer/smarty_internal_templateparser.y"
3388
    public function yy_r171()
3389
    {
3390
        $this->_retvalue = $this->yystack[ $this->yyidx + -2 ]->minor . ',' . $this->yystack[ $this->yyidx + 0 ]->minor;
3391
    }
3392
 
3393
    // line 1213 "../smarty/lexer/smarty_internal_templateparser.y"
3394
    public function yy_r173()
3395
    {
3396
        $this->_retvalue =
3397
            $this->yystack[ $this->yyidx + -2 ]->minor . '=>' . $this->yystack[ $this->yyidx + 0 ]->minor;
3398
    }
3399
 
3400
    // line 1229 "../smarty/lexer/smarty_internal_templateparser.y"
3401
    public function yy_r174()
3402
    {
3403
        $this->_retvalue =
3404
            '\'' . $this->yystack[ $this->yyidx + -2 ]->minor . '\'=>' . $this->yystack[ $this->yyidx + 0 ]->minor;
3405
    }
3406
 
3407
    // line 1235 "../smarty/lexer/smarty_internal_templateparser.y"
3408
    public function yy_r177()
3409
    {
3410
        $this->compiler->leaveDoubleQuote();
3411
        $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor->to_smarty_php($this);
3412
    }
3413
 
3414
    // line 1240 "../smarty/lexer/smarty_internal_templateparser.y"
3415
    public function yy_r178()
3416
    {
3417
        $this->yystack[ $this->yyidx + -1 ]->minor->append_subtree($this, $this->yystack[ $this->yyidx + 0 ]->minor);
3418
        $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor;
3419
    }
3420
 
3421
    // line 1244 "../smarty/lexer/smarty_internal_templateparser.y"
3422
    public function yy_r179()
3423
    {
3424
        $this->_retvalue = new Smarty_Internal_ParseTree_Dq($this, $this->yystack[ $this->yyidx + 0 ]->minor);
3425
    }
3426
 
3427
    // line 1248 "../smarty/lexer/smarty_internal_templateparser.y"
3428
    public function yy_r180()
3429
    {
3430
        $this->_retvalue = new Smarty_Internal_ParseTree_Code('(string)' . $this->yystack[ $this->yyidx + -1 ]->minor);
3431
    }
3432
 
3433
    // line 1252 "../smarty/lexer/smarty_internal_templateparser.y"
3434
    public function yy_r181()
3435
    {
3436
        $this->_retvalue =
3437
            new Smarty_Internal_ParseTree_Code('(string)(' . $this->yystack[ $this->yyidx + -1 ]->minor . ')');
3438
    }
3439
 
3440
    // line 1264 "../smarty/lexer/smarty_internal_templateparser.y"
3441
    public function yy_r182()
3442
    {
3443
        $this->_retvalue =
3444
            new Smarty_Internal_ParseTree_Code('(string)$_smarty_tpl->tpl_vars[\'' .
3445
                                               substr($this->yystack[ $this->yyidx + 0 ]->minor, 1) .
3446
                                               '\']->value');
3447
    }
3448
 
3449
    // line 1268 "../smarty/lexer/smarty_internal_templateparser.y"
3450
    public function yy_r185()
3451
    {
3452
        $this->_retvalue = new Smarty_Internal_ParseTree_Tag($this, $this->yystack[ $this->yyidx + 0 ]->minor);
3453
    }
3454
 
3455
    public function yy_r186()
3456
    {
3457
        $this->_retvalue = new Smarty_Internal_ParseTree_DqContent($this->yystack[ $this->yyidx + 0 ]->minor);
3458
    }
3459
 
3460
    public function yy_reduce($yyruleno)
3461
    {
3462
        if ($this->yyTraceFILE && $yyruleno >= 0
3463
            && $yyruleno < count(self::$yyRuleName)) {
3464
            fprintf($this->yyTraceFILE, "%sReduce (%d) [%s].\n",
3465
                $this->yyTracePrompt, $yyruleno,
3466
                self::$yyRuleName[ $yyruleno ]);
3467
        }
3468
        $this->_retvalue = $yy_lefthand_side = null;
3469
        if (isset(self::$yyReduceMap[ $yyruleno ])) {
3470
            // call the action
3471
            $this->_retvalue = null;
3472
            $this->{'yy_r' . self::$yyReduceMap[ $yyruleno ]}();
3473
            $yy_lefthand_side = $this->_retvalue;
3474
        }
3475
        $yygoto = self::$yyRuleInfo[ $yyruleno ][ 0 ];
3476
        $yysize = self::$yyRuleInfo[ $yyruleno ][ 1 ];
3477
        $this->yyidx -= $yysize;
3478
        for ($i = $yysize; $i; $i--) {
3479
            // pop all of the right-hand side parameters
3480
            array_pop($this->yystack);
3481
        }
3482
        $yyact = $this->yy_find_reduce_action($this->yystack[ $this->yyidx ]->stateno, $yygoto);
3483
        if ($yyact < self::YYNSTATE) {
3484
            if (!$this->yyTraceFILE && $yysize) {
3485
                $this->yyidx++;
3486
                $x = new TP_yyStackEntry;
3487
                $x->stateno = $yyact;
3488
                $x->major = $yygoto;
3489
                $x->minor = $yy_lefthand_side;
3490
                $this->yystack[ $this->yyidx ] = $x;
3491
            } else {
3492
                $this->yy_shift($yyact, $yygoto, $yy_lefthand_side);
3493
            }
3494
        } elseif ($yyact === self::YYNSTATE + self::YYNRULE + 1) {
3495
            $this->yy_accept();
3496
        }
3497
    }
3498
 
3499
    public function yy_parse_failed()
3500
    {
3501
        if ($this->yyTraceFILE) {
3502
            fprintf($this->yyTraceFILE, "%sFail!\n", $this->yyTracePrompt);
3503
        }
3504
        while ($this->yyidx >= 0) {
3505
            $this->yy_pop_parser_stack();
3506
        }
3507
    }
3508
 
3509
    public function yy_syntax_error($yymajor, $TOKEN)
3510
    {
3511
        // line 214 "../smarty/lexer/smarty_internal_templateparser.y"
3512
        $this->internalError = true;
3513
        $this->yymajor = $yymajor;
3514
        $this->compiler->trigger_template_error();
3515
    }
3516
 
3517
    public function yy_accept()
3518
    {
3519
        if ($this->yyTraceFILE) {
3520
            fprintf($this->yyTraceFILE, "%sAccept!\n", $this->yyTracePrompt);
3521
        }
3522
        while ($this->yyidx >= 0) {
3523
            $this->yy_pop_parser_stack();
3524
        }
3525
        // line 207 "../smarty/lexer/smarty_internal_templateparser.y"
3526
        $this->successful = !$this->internalError;
3527
        $this->internalError = false;
3528
        $this->retvalue = $this->_retvalue;
3529
    }
3530
 
3531
    public function doParse($yymajor, $yytokenvalue)
3532
    {
3533
        $yyerrorhit = 0;   /* True if yymajor has invoked an error */
3534
        if ($this->yyidx === null || $this->yyidx < 0) {
3535
            $this->yyidx = 0;
3536
            $this->yyerrcnt = -1;
3537
            $x = new TP_yyStackEntry;
3538
            $x->stateno = 0;
3539
            $x->major = 0;
3540
            $this->yystack = array();
3541
            $this->yystack[] = $x;
3542
        }
3543
        $yyendofinput = ($yymajor == 0);
3544
        if ($this->yyTraceFILE) {
3545
            fprintf($this->yyTraceFILE, "%sInput %s\n",
3546
                $this->yyTracePrompt, $this->yyTokenName[ $yymajor ]);
3547
        }
3548
        do {
3549
            $yyact = $this->yy_find_shift_action($yymajor);
3550
            if ($yymajor < self::YYERRORSYMBOL &&
3551
                !$this->yy_is_expected_token($yymajor)) {
3552
                // force a syntax error
3553
                $yyact = self::YY_ERROR_ACTION;
3554
            }
3555
            if ($yyact < self::YYNSTATE) {
3556
                $this->yy_shift($yyact, $yymajor, $yytokenvalue);
3557
                $this->yyerrcnt--;
3558
                if ($yyendofinput && $this->yyidx >= 0) {
3559
                    $yymajor = 0;
3560
                } else {
3561
                    $yymajor = self::YYNOCODE;
3562
                }
3563
            } elseif ($yyact < self::YYNSTATE + self::YYNRULE) {
3564
                $this->yy_reduce($yyact - self::YYNSTATE);
3565
            } elseif ($yyact === self::YY_ERROR_ACTION) {
3566
                if ($this->yyTraceFILE) {
3567
                    fprintf($this->yyTraceFILE, "%sSyntax Error!\n",
3568
                        $this->yyTracePrompt);
3569
                }
3570
                if (self::YYERRORSYMBOL) {
3571
                    if ($this->yyerrcnt < 0) {
3572
                        $this->yy_syntax_error($yymajor, $yytokenvalue);
3573
                    }
3574
                    $yymx = $this->yystack[ $this->yyidx ]->major;
3575
                    if ($yymx === self::YYERRORSYMBOL || $yyerrorhit) {
3576
                        if ($this->yyTraceFILE) {
3577
                            fprintf($this->yyTraceFILE, "%sDiscard input token %s\n",
3578
                                $this->yyTracePrompt, $this->yyTokenName[ $yymajor ]);
3579
                        }
3580
                        $this->yy_destructor($yymajor, $yytokenvalue);
3581
                        $yymajor = self::YYNOCODE;
3582
                    } else {
3583
                        while ($this->yyidx >= 0 &&
3584
                               $yymx !== self::YYERRORSYMBOL &&
3585
                               ($yyact = $this->yy_find_shift_action(self::YYERRORSYMBOL)) >= self::YYNSTATE
3586
                        ) {
3587
                            $this->yy_pop_parser_stack();
3588
                        }
3589
                        if ($this->yyidx < 0 || $yymajor == 0) {
3590
                            $this->yy_destructor($yymajor, $yytokenvalue);
3591
                            $this->yy_parse_failed();
3592
                            $yymajor = self::YYNOCODE;
3593
                        } elseif ($yymx !== self::YYERRORSYMBOL) {
3594
                            $u2 = 0;
3595
                            $this->yy_shift($yyact, self::YYERRORSYMBOL, $u2);
3596
                        }
3597
                    }
3598
                    $this->yyerrcnt = 3;
3599
                    $yyerrorhit = 1;
3600
                } else {
3601
                    if ($this->yyerrcnt <= 0) {
3602
                        $this->yy_syntax_error($yymajor, $yytokenvalue);
3603
                    }
3604
                    $this->yyerrcnt = 3;
3605
                    $this->yy_destructor($yymajor, $yytokenvalue);
3606
                    if ($yyendofinput) {
3607
                        $this->yy_parse_failed();
3608
                    }
3609
                    $yymajor = self::YYNOCODE;
3610
                }
3611
            } else {
3612
                $this->yy_accept();
3613
                $yymajor = self::YYNOCODE;
3614
            }
3615
        } while ($yymajor !== self::YYNOCODE && $this->yyidx >= 0);
3616
    }
3617
}
3618