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: 0 => 0,
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: $text = $this->yystack[ $this->yyidx + 0 ]->minor;
2173:
2174: if ((string)$text == '') {
2175: $this->current_buffer->append_subtree($this, null);
2176: }
2177:
2178: $this->current_buffer->append_subtree($this, new Smarty_Internal_ParseTree_Text($text, $this->strip));
2179: }
2180:
2181: // line 259 "../smarty/lexer/smarty_internal_templateparser.y"
2182: public function yy_r3()
2183: {
2184: $this->strip = true;
2185: }
2186:
2187: // line 264 "../smarty/lexer/smarty_internal_templateparser.y"
2188: public function yy_r4()
2189: {
2190: $this->strip = false;
2191: }
2192:
2193: // line 269 "../smarty/lexer/smarty_internal_templateparser.y"
2194: public function yy_r5()
2195: {
2196: $this->current_buffer->append_subtree($this,
2197: new Smarty_Internal_ParseTree_Text($this->yystack[ $this->yyidx + -1 ]->minor));
2198: }
2199:
2200: // line 272 "../smarty/lexer/smarty_internal_templateparser.y"
2201: public function yy_r6()
2202: {
2203: $this->_retvalue = $this->yystack[ $this->yyidx + -3 ]->minor . $this->yystack[ $this->yyidx + -1 ]->minor;
2204: }
2205:
2206: // line 276 "../smarty/lexer/smarty_internal_templateparser.y"
2207: public function yy_r7()
2208: {
2209: $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor;
2210: }
2211:
2212: // line 281 "../smarty/lexer/smarty_internal_templateparser.y"
2213: public function yy_r8()
2214: {
2215: $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor;
2216: }
2217:
2218: // line 285 "../smarty/lexer/smarty_internal_templateparser.y"
2219: public function yy_r9()
2220: {
2221: $this->_retvalue = '';
2222: }
2223:
2224: // line 297 "../smarty/lexer/smarty_internal_templateparser.y"
2225: public function yy_r10()
2226: {
2227: if ($this->compiler->has_code) {
2228: $this->current_buffer->append_subtree($this,
2229: $this->mergePrefixCode($this->yystack[ $this->yyidx + 0 ]->minor));
2230: }
2231: $this->compiler->has_variable_string = false;
2232: $this->block_nesting_level = count($this->compiler->_tag_stack);
2233: }
2234:
2235: // line 307 "../smarty/lexer/smarty_internal_templateparser.y"
2236: public function yy_r12()
2237: {
2238: $var =
2239: trim(substr($this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler->getLdelLength(),
2240: -$this->compiler->getRdelLength()), ' $');
2241: if (preg_match('/^(.*)(\s+nocache)$/', $var, $match)) {
2242: $this->_retvalue =
2243: $this->compiler->compileTag('private_print_expression', array('nocache'),
2244: array('value' => $this->compiler->compileVariable('\'' . $match[ 1 ] . '\'')));
2245: } else {
2246: $this->_retvalue =
2247: $this->compiler->compileTag('private_print_expression', array(),
2248: array('value' => $this->compiler->compileVariable('\'' . $var . '\'')));
2249: }
2250: }
2251:
2252: // line 328 "../smarty/lexer/smarty_internal_templateparser.y"
2253: public function yy_r13()
2254: {
2255: $tag =
2256: trim(substr($this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler->getLdelLength(),
2257: -$this->compiler->getRdelLength()));
2258: if ($tag == 'strip') {
2259: $this->strip = true;
2260: $this->_retvalue = null;
2261: } else {
2262: if (defined($tag)) {
2263: if ($this->security) {
2264: $this->security->isTrustedConstant($tag, $this->compiler);
2265: }
2266: $this->_retvalue =
2267: $this->compiler->compileTag('private_print_expression', array(), array('value' => $tag));
2268: } else {
2269: if (preg_match('/^(.*)(\s+nocache)$/', $tag, $match)) {
2270: $this->_retvalue = $this->compiler->compileTag($match[ 1 ], array('\'nocache\''));
2271: } else {
2272: $this->_retvalue = $this->compiler->compileTag($tag, array());
2273: }
2274: }
2275: }
2276: }
2277:
2278: // line 339 "../smarty/lexer/smarty_internal_templateparser.y"
2279: public function yy_r14()
2280: {
2281: $j = strrpos($this->yystack[ $this->yyidx + 0 ]->minor, '.');
2282: if ($this->yystack[ $this->yyidx + 0 ]->minor[ $j + 1 ] == 'c') {
2283: // {$smarty.block.child}
2284: $this->_retvalue =
2285: $this->compiler->compileTag('child', array(), array($this->yystack[ $this->yyidx + 0 ]->minor));
2286: } else {
2287: // {$smarty.block.parent}
2288: $this->_retvalue =
2289: $this->compiler->compileTag('parent', array(), array($this->yystack[ $this->yyidx + 0 ]->minor));
2290: }
2291: }
2292:
2293: // line 343 "../smarty/lexer/smarty_internal_templateparser.y"
2294: public function yy_r15()
2295: {
2296: $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor;
2297: }
2298:
2299: // line 347 "../smarty/lexer/smarty_internal_templateparser.y"
2300: public function yy_r16()
2301: {
2302: $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor;
2303: }
2304:
2305: // line 356 "../smarty/lexer/smarty_internal_templateparser.y"
2306: public function yy_r17()
2307: {
2308: $this->_retvalue =
2309: $this->compiler->compileTag('private_print_expression', $this->yystack[ $this->yyidx + 0 ]->minor[ 1 ],
2310: array('value' => $this->yystack[ $this->yyidx + 0 ]->minor[ 0 ]));
2311: }
2312:
2313: // line 360 "../smarty/lexer/smarty_internal_templateparser.y"
2314: public function yy_r18()
2315: {
2316: $this->_retvalue =
2317: $this->compiler->compileTag('assign', array_merge(array(
2318: array('value' => $this->yystack[ $this->yyidx + 0 ]->minor[ 0 ]),
2319: array('var' => '\'' . substr($this->yystack[ $this->yyidx + -1 ]->minor, 1) . '\'')
2320: ), $this->yystack[ $this->yyidx + 0 ]->minor[ 1 ]));
2321: }
2322:
2323: // line 364 "../smarty/lexer/smarty_internal_templateparser.y"
2324: public function yy_r19()
2325: {
2326: $this->_retvalue =
2327: $this->compiler->compileTag('assign', array_merge(array(
2328: array('value' => $this->yystack[ $this->yyidx + 0 ]->minor[ 0 ]),
2329: array('var' => $this->yystack[ $this->yyidx + -1 ]->minor[ 'var' ])
2330: ), $this->yystack[ $this->yyidx + 0 ]->minor[ 1 ]), array(
2331: 'smarty_internal_index' => $this->yystack[ $this->yyidx +
2332: -1 ]->minor[ 'smarty_internal_index' ]
2333: ));
2334: }
2335:
2336: // line 368 "../smarty/lexer/smarty_internal_templateparser.y"
2337: public function yy_r20()
2338: {
2339: $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor;
2340: }
2341:
2342: // line 383 "../smarty/lexer/smarty_internal_templateparser.y"
2343: public function yy_r21()
2344: {
2345: $this->_retvalue = array($this->yystack[ $this->yyidx + -1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor);
2346: }
2347:
2348: // line 393 "../smarty/lexer/smarty_internal_templateparser.y"
2349: public function yy_r25()
2350: {
2351: if (defined($this->yystack[ $this->yyidx + -1 ]->minor)) {
2352: if ($this->security) {
2353: $this->security->isTrustedConstant($this->yystack[ $this->yyidx + -1 ]->minor, $this->compiler);
2354: }
2355: $this->_retvalue =
2356: $this->compiler->compileTag('private_print_expression', $this->yystack[ $this->yyidx + 0 ]->minor,
2357: array('value' => $this->yystack[ $this->yyidx + -1 ]->minor));
2358: } else {
2359: $this->_retvalue =
2360: $this->compiler->compileTag($this->yystack[ $this->yyidx + -1 ]->minor,
2361: $this->yystack[ $this->yyidx + 0 ]->minor);
2362: }
2363: }
2364:
2365: // line 406 "../smarty/lexer/smarty_internal_templateparser.y"
2366: public function yy_r26()
2367: {
2368: if (defined($this->yystack[ $this->yyidx + 0 ]->minor)) {
2369: if ($this->security) {
2370: $this->security->isTrustedConstant($this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler);
2371: }
2372: $this->_retvalue =
2373: $this->compiler->compileTag('private_print_expression', array(),
2374: array('value' => $this->yystack[ $this->yyidx + 0 ]->minor));
2375: } else {
2376: $this->_retvalue = $this->compiler->compileTag($this->yystack[ $this->yyidx + 0 ]->minor, array());
2377: }
2378: }
2379:
2380: // line 418 "../smarty/lexer/smarty_internal_templateparser.y"
2381: public function yy_r27()
2382: {
2383: if (defined($this->yystack[ $this->yyidx + -2 ]->minor)) {
2384: if ($this->security) {
2385: $this->security->isTrustedConstant($this->yystack[ $this->yyidx + -2 ]->minor, $this->compiler);
2386: }
2387: $this->_retvalue =
2388: $this->compiler->compileTag('private_print_expression', $this->yystack[ $this->yyidx + 0 ]->minor,
2389: array(
2390: 'value' => $this->yystack[ $this->yyidx + -2 ]->minor,
2391: 'modifierlist' => $this->yystack[ $this->yyidx + -1 ]->minor
2392: ));
2393: } else {
2394: $this->_retvalue =
2395: $this->compiler->compileTag($this->yystack[ $this->yyidx + -2 ]->minor,
2396: $this->yystack[ $this->yyidx + 0 ]->minor,
2397: array('modifierlist' => $this->yystack[ $this->yyidx + -1 ]->minor));
2398: }
2399: }
2400:
2401: // line 423 "../smarty/lexer/smarty_internal_templateparser.y"
2402: public function yy_r28()
2403: {
2404: $this->_retvalue =
2405: $this->compiler->compileTag($this->yystack[ $this->yyidx + -3 ]->minor,
2406: $this->yystack[ $this->yyidx + 0 ]->minor,
2407: array('object_method' => $this->yystack[ $this->yyidx + -1 ]->minor));
2408: }
2409:
2410: // line 428 "../smarty/lexer/smarty_internal_templateparser.y"
2411: public function yy_r29()
2412: {
2413: $this->_retvalue =
2414: $this->compiler->compileTag($this->yystack[ $this->yyidx + -4 ]->minor,
2415: $this->yystack[ $this->yyidx + 0 ]->minor, array(
2416: 'modifierlist' => $this->yystack[ $this->yyidx + -1 ]->minor,
2417: 'object_method' => $this->yystack[ $this->yyidx + -2 ]->minor
2418: ));
2419: }
2420:
2421: // line 433 "../smarty/lexer/smarty_internal_templateparser.y"
2422: public function yy_r30()
2423: {
2424: $this->_retvalue =
2425: $this->compiler->compileTag('make_nocache',
2426: array(array('var' => '\'' . substr($this->yystack[ $this->yyidx + 0 ]->minor, 1) . '\'')));
2427: }
2428:
2429: // line 438 "../smarty/lexer/smarty_internal_templateparser.y"
2430: public function yy_r31()
2431: {
2432: $tag = trim(substr($this->yystack[ $this->yyidx + -1 ]->minor, $this->compiler->getLdelLength()));
2433: $this->_retvalue =
2434: $this->compiler->compileTag(($tag === 'else if') ? 'elseif' : $tag, array(),
2435: array('if condition' => $this->yystack[ $this->yyidx + 0 ]->minor));
2436: }
2437:
2438: // line 443 "../smarty/lexer/smarty_internal_templateparser.y"
2439: public function yy_r32()
2440: {
2441: $tag = trim(substr($this->yystack[ $this->yyidx + -2 ]->minor, $this->compiler->getLdelLength()));
2442: $this->_retvalue =
2443: $this->compiler->compileTag(($tag === 'else if') ? 'elseif' : $tag,
2444: $this->yystack[ $this->yyidx + 0 ]->minor,
2445: array('if condition' => $this->yystack[ $this->yyidx + -1 ]->minor));
2446: }
2447:
2448: // line 454 "../smarty/lexer/smarty_internal_templateparser.y"
2449: public function yy_r33()
2450: {
2451: $tag = trim(substr($this->yystack[ $this->yyidx + -1 ]->minor, $this->compiler->getLdelLength()));
2452: $this->_retvalue =
2453: $this->compiler->compileTag(($tag === 'else if') ? 'elseif' : $tag, array(),
2454: array('if condition' => $this->yystack[ $this->yyidx + 0 ]->minor));
2455: }
2456:
2457: // line 458 "../smarty/lexer/smarty_internal_templateparser.y"
2458: public function yy_r35()
2459: {
2460: $this->_retvalue =
2461: $this->compiler->compileTag('for', array_merge($this->yystack[ $this->yyidx + 0 ]->minor, array(
2462: array('start' => $this->yystack[ $this->yyidx + -6 ]->minor),
2463: array('ifexp' => $this->yystack[ $this->yyidx + -4 ]->minor),
2464: array('var' => $this->yystack[ $this->yyidx + -2 ]->minor),
2465: array('step' => $this->yystack[ $this->yyidx + -1 ]->minor)
2466: )), 1);
2467: }
2468:
2469: // line 466 "../smarty/lexer/smarty_internal_templateparser.y"
2470: public function yy_r36()
2471: {
2472: $this->_retvalue = '=' . $this->yystack[ $this->yyidx + 0 ]->minor;
2473: }
2474:
2475: // line 470 "../smarty/lexer/smarty_internal_templateparser.y"
2476: public function yy_r38()
2477: {
2478: $this->_retvalue =
2479: $this->compiler->compileTag('for', array_merge($this->yystack[ $this->yyidx + 0 ]->minor, array(
2480: array('start' => $this->yystack[ $this->yyidx + -3 ]->minor),
2481: array('to' => $this->yystack[ $this->yyidx + -1 ]->minor)
2482: )), 0);
2483: }
2484:
2485: // line 475 "../smarty/lexer/smarty_internal_templateparser.y"
2486: public function yy_r39()
2487: {
2488: $this->_retvalue =
2489: $this->compiler->compileTag('for', array_merge($this->yystack[ $this->yyidx + 0 ]->minor, array(
2490: array('start' => $this->yystack[ $this->yyidx + -5 ]->minor),
2491: array('to' => $this->yystack[ $this->yyidx + -3 ]->minor),
2492: array('step' => $this->yystack[ $this->yyidx + -1 ]->minor)
2493: )), 0);
2494: }
2495:
2496: // line 479 "../smarty/lexer/smarty_internal_templateparser.y"
2497: public function yy_r40()
2498: {
2499: $this->_retvalue =
2500: $this->compiler->compileTag('foreach', array_merge($this->yystack[ $this->yyidx + 0 ]->minor, array(
2501: array('from' => $this->yystack[ $this->yyidx + -3 ]->minor),
2502: array('item' => $this->yystack[ $this->yyidx + -1 ]->minor)
2503: )));
2504: }
2505:
2506: // line 482 "../smarty/lexer/smarty_internal_templateparser.y"
2507: public function yy_r41()
2508: {
2509: $this->_retvalue =
2510: $this->compiler->compileTag('foreach', array_merge($this->yystack[ $this->yyidx + 0 ]->minor, array(
2511: array('from' => $this->yystack[ $this->yyidx + -5 ]->minor),
2512: array('item' => $this->yystack[ $this->yyidx + -1 ]->minor),
2513: array('key' => $this->yystack[ $this->yyidx + -3 ]->minor)
2514: )));
2515: }
2516:
2517: // line 487 "../smarty/lexer/smarty_internal_templateparser.y"
2518: public function yy_r42()
2519: {
2520: $this->_retvalue = $this->compiler->compileTag('foreach', $this->yystack[ $this->yyidx + 0 ]->minor);
2521: }
2522:
2523: // line 491 "../smarty/lexer/smarty_internal_templateparser.y"
2524: public function yy_r43()
2525: {
2526: $this->_retvalue =
2527: $this->compiler->compileTag('setfilter', array(), array(
2528: 'modifier_list' => array(
2529: array_merge(array($this->yystack[ $this->yyidx + -1 ]->minor),
2530: $this->yystack[ $this->yyidx + 0 ]->minor)
2531: )
2532: ));
2533: }
2534:
2535: // line 497 "../smarty/lexer/smarty_internal_templateparser.y"
2536: public function yy_r44()
2537: {
2538: $this->_retvalue =
2539: $this->compiler->compileTag('setfilter', array(), array(
2540: 'modifier_list' => array_merge(array(
2541: array_merge(array(
2542: $this->yystack[ $this->yyidx +
2543: -2 ]->minor
2544: ), $this->yystack[ $this->yyidx + -1 ]->minor)
2545: ), $this->yystack[ $this->yyidx + 0 ]->minor)
2546: ));
2547: }
2548:
2549: // line 506 "../smarty/lexer/smarty_internal_templateparser.y"
2550: public function yy_r45()
2551: {
2552: $tag =
2553: trim(substr($this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler->getLdelLength(),
2554: -$this->compiler->getRdelLength()), ' /');
2555: if ($tag === 'strip') {
2556: $this->strip = false;
2557: $this->_retvalue = null;
2558: } else {
2559: $this->_retvalue = $this->compiler->compileTag($tag . 'close', array());
2560: }
2561: }
2562:
2563: // line 510 "../smarty/lexer/smarty_internal_templateparser.y"
2564: public function yy_r46()
2565: {
2566: $this->_retvalue = $this->compiler->compileTag($this->yystack[ $this->yyidx + 0 ]->minor . 'close', array());
2567: }
2568:
2569: // line 515 "../smarty/lexer/smarty_internal_templateparser.y"
2570: public function yy_r47()
2571: {
2572: $this->_retvalue =
2573: $this->compiler->compileTag($this->yystack[ $this->yyidx + -1 ]->minor . 'close', array(),
2574: array('modifier_list' => $this->yystack[ $this->yyidx + 0 ]->minor));
2575: }
2576:
2577: // line 519 "../smarty/lexer/smarty_internal_templateparser.y"
2578: public function yy_r48()
2579: {
2580: $this->_retvalue =
2581: $this->compiler->compileTag($this->yystack[ $this->yyidx + -2 ]->minor . 'close', array(),
2582: array('object_method' => $this->yystack[ $this->yyidx + 0 ]->minor));
2583: }
2584:
2585: // line 527 "../smarty/lexer/smarty_internal_templateparser.y"
2586: public function yy_r49()
2587: {
2588: $this->_retvalue =
2589: $this->compiler->compileTag($this->yystack[ $this->yyidx + -3 ]->minor . 'close', array(), array(
2590: 'object_method' => $this->yystack[ $this->yyidx + -1 ]->minor,
2591: 'modifier_list' => $this->yystack[ $this->yyidx + 0 ]->minor
2592: ));
2593: }
2594:
2595: // line 533 "../smarty/lexer/smarty_internal_templateparser.y"
2596: public function yy_r50()
2597: {
2598: $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor;
2599: $this->_retvalue[] = $this->yystack[ $this->yyidx + 0 ]->minor;
2600: }
2601:
2602: // line 538 "../smarty/lexer/smarty_internal_templateparser.y"
2603: public function yy_r51()
2604: {
2605: $this->_retvalue = array($this->yystack[ $this->yyidx + 0 ]->minor);
2606: }
2607:
2608: // line 543 "../smarty/lexer/smarty_internal_templateparser.y"
2609: public function yy_r52()
2610: {
2611: $this->_retvalue = array();
2612: }
2613:
2614: // line 554 "../smarty/lexer/smarty_internal_templateparser.y"
2615: public function yy_r53()
2616: {
2617: if (defined($this->yystack[ $this->yyidx + 0 ]->minor)) {
2618: if ($this->security) {
2619: $this->security->isTrustedConstant($this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler);
2620: }
2621: $this->_retvalue =
2622: array($this->yystack[ $this->yyidx + -2 ]->minor => $this->yystack[ $this->yyidx + 0 ]->minor);
2623: } else {
2624: $this->_retvalue =
2625: array(
2626: $this->yystack[ $this->yyidx + -2 ]->minor => '\'' .
2627: $this->yystack[ $this->yyidx + 0 ]->minor .
2628: '\''
2629: );
2630: }
2631: }
2632:
2633: // line 562 "../smarty/lexer/smarty_internal_templateparser.y"
2634: public function yy_r54()
2635: {
2636: $this->_retvalue =
2637: array(
2638: trim($this->yystack[ $this->yyidx + -1 ]->minor, " =\n\r\t") => $this->yystack[ $this->yyidx +
2639: 0 ]->minor
2640: );
2641: }
2642:
2643: // line 574 "../smarty/lexer/smarty_internal_templateparser.y"
2644: public function yy_r56()
2645: {
2646: $this->_retvalue = '\'' . $this->yystack[ $this->yyidx + 0 ]->minor . '\'';
2647: }
2648:
2649: // line 587 "../smarty/lexer/smarty_internal_templateparser.y"
2650: public function yy_r59()
2651: {
2652: $this->_retvalue =
2653: array($this->yystack[ $this->yyidx + -2 ]->minor => $this->yystack[ $this->yyidx + 0 ]->minor);
2654: }
2655:
2656: // line 592 "../smarty/lexer/smarty_internal_templateparser.y"
2657: public function yy_r61()
2658: {
2659: $this->yystack[ $this->yyidx + -2 ]->minor[] = $this->yystack[ $this->yyidx + 0 ]->minor;
2660: $this->_retvalue = $this->yystack[ $this->yyidx + -2 ]->minor;
2661: }
2662:
2663: // line 599 "../smarty/lexer/smarty_internal_templateparser.y"
2664: public function yy_r62()
2665: {
2666: $this->_retvalue =
2667: array(
2668: 'var' => '\'' . substr($this->yystack[ $this->yyidx + -2 ]->minor, 1) . '\'',
2669: 'value' => $this->yystack[ $this->yyidx + 0 ]->minor
2670: );
2671: }
2672:
2673: // line 603 "../smarty/lexer/smarty_internal_templateparser.y"
2674: public function yy_r64()
2675: {
2676: $this->_retvalue =
2677: array(
2678: 'var' => $this->yystack[ $this->yyidx + -2 ]->minor,
2679: 'value' => $this->yystack[ $this->yyidx + 0 ]->minor
2680: );
2681: }
2682:
2683: // line 623 "../smarty/lexer/smarty_internal_templateparser.y"
2684: public function yy_r65()
2685: {
2686: $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor;
2687: }
2688:
2689: // line 628 "../smarty/lexer/smarty_internal_templateparser.y"
2690: public function yy_r68()
2691: {
2692: $this->_retvalue =
2693: '$_smarty_tpl->getStreamVariable(\'' .
2694: substr($this->yystack[ $this->yyidx + -2 ]->minor, 1) .
2695: '://' .
2696: $this->yystack[ $this->yyidx + 0 ]->minor .
2697: '\')';
2698: }
2699:
2700: // line 638 "../smarty/lexer/smarty_internal_templateparser.y"
2701: public function yy_r69()
2702: {
2703: $this->_retvalue =
2704: $this->yystack[ $this->yyidx + -2 ]->minor .
2705: trim($this->yystack[ $this->yyidx + -1 ]->minor) .
2706: $this->yystack[ $this->yyidx + 0 ]->minor;
2707: }
2708:
2709: // line 642 "../smarty/lexer/smarty_internal_templateparser.y"
2710: public function yy_r71()
2711: {
2712: $this->_retvalue =
2713: $this->yystack[ $this->yyidx + -1 ]->minor[ 'pre' ] .
2714: $this->yystack[ $this->yyidx + -2 ]->minor .
2715: $this->yystack[ $this->yyidx + -1 ]->minor[ 'op' ] .
2716: $this->yystack[ $this->yyidx + 0 ]->minor .
2717: ')';
2718: }
2719:
2720: // line 646 "../smarty/lexer/smarty_internal_templateparser.y"
2721: public function yy_r72()
2722: {
2723: $this->_retvalue =
2724: $this->yystack[ $this->yyidx + -2 ]->minor .
2725: $this->yystack[ $this->yyidx + -1 ]->minor .
2726: $this->yystack[ $this->yyidx + 0 ]->minor;
2727: }
2728:
2729: // line 650 "../smarty/lexer/smarty_internal_templateparser.y"
2730: public function yy_r73()
2731: {
2732: $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor . $this->yystack[ $this->yyidx + -1 ]->minor . ')';
2733: }
2734:
2735: // line 654 "../smarty/lexer/smarty_internal_templateparser.y"
2736: public function yy_r74()
2737: {
2738: $this->_retvalue =
2739: 'in_array(' .
2740: $this->yystack[ $this->yyidx + -2 ]->minor .
2741: ',' .
2742: $this->yystack[ $this->yyidx + 0 ]->minor .
2743: ')';
2744: }
2745:
2746: // line 662 "../smarty/lexer/smarty_internal_templateparser.y"
2747: public function yy_r75()
2748: {
2749: $this->_retvalue =
2750: 'in_array(' .
2751: $this->yystack[ $this->yyidx + -2 ]->minor .
2752: ',(array)' .
2753: $this->yystack[ $this->yyidx + 0 ]->minor .
2754: ')';
2755: }
2756:
2757: // line 666 "../smarty/lexer/smarty_internal_templateparser.y"
2758: public function yy_r76()
2759: {
2760: $this->_retvalue =
2761: $this->yystack[ $this->yyidx + -5 ]->minor .
2762: ' ? ' .
2763: $this->compiler->compileVariable('\'' . substr($this->yystack[ $this->yyidx + -2 ]->minor, 1) . '\'') .
2764: ' : ' .
2765: $this->yystack[ $this->yyidx + 0 ]->minor;
2766: }
2767:
2768: // line 676 "../smarty/lexer/smarty_internal_templateparser.y"
2769: public function yy_r77()
2770: {
2771: $this->_retvalue =
2772: $this->yystack[ $this->yyidx + -5 ]->minor .
2773: ' ? ' .
2774: $this->yystack[ $this->yyidx + -2 ]->minor .
2775: ' : ' .
2776: $this->yystack[ $this->yyidx + 0 ]->minor;
2777: }
2778:
2779: // line 681 "../smarty/lexer/smarty_internal_templateparser.y"
2780: public function yy_r79()
2781: {
2782: $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor;
2783: }
2784:
2785: // line 702 "../smarty/lexer/smarty_internal_templateparser.y"
2786: public function yy_r80()
2787: {
2788: $this->_retvalue = '!' . $this->yystack[ $this->yyidx + 0 ]->minor;
2789: }
2790:
2791: // line 706 "../smarty/lexer/smarty_internal_templateparser.y"
2792: public function yy_r85()
2793: {
2794: $this->_retvalue = $this->yystack[ $this->yyidx + -2 ]->minor . '.' . $this->yystack[ $this->yyidx + 0 ]->minor;
2795: }
2796:
2797: // line 710 "../smarty/lexer/smarty_internal_templateparser.y"
2798: public function yy_r86()
2799: {
2800: $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor . '.';
2801: }
2802:
2803: // line 715 "../smarty/lexer/smarty_internal_templateparser.y"
2804: public function yy_r87()
2805: {
2806: $this->_retvalue = '.' . $this->yystack[ $this->yyidx + 0 ]->minor;
2807: }
2808:
2809: // line 732 "../smarty/lexer/smarty_internal_templateparser.y"
2810: public function yy_r88()
2811: {
2812: if (defined($this->yystack[ $this->yyidx + 0 ]->minor)) {
2813: if ($this->security) {
2814: $this->security->isTrustedConstant($this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler);
2815: }
2816: $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor;
2817: } else {
2818: $this->_retvalue = '\'' . $this->yystack[ $this->yyidx + 0 ]->minor . '\'';
2819: }
2820: }
2821:
2822: // line 736 "../smarty/lexer/smarty_internal_templateparser.y"
2823: public function yy_r90()
2824: {
2825: $this->_retvalue = '(' . $this->yystack[ $this->yyidx + -1 ]->minor . ')';
2826: }
2827:
2828: // line 754 "../smarty/lexer/smarty_internal_templateparser.y"
2829: public function yy_r91()
2830: {
2831: $this->_retvalue =
2832: $this->yystack[ $this->yyidx + -2 ]->minor .
2833: $this->yystack[ $this->yyidx + -1 ]->minor .
2834: $this->yystack[ $this->yyidx + 0 ]->minor;
2835: }
2836:
2837: // line 765 "../smarty/lexer/smarty_internal_templateparser.y"
2838: public function yy_r95()
2839: {
2840: if ($this->security && $this->security->static_classes !== array()) {
2841: $this->compiler->trigger_template_error('dynamic static class not allowed by security setting');
2842: }
2843:
2844: $prefixVar = $this->compiler->getNewPrefixVariable();
2845: if ($this->yystack[ $this->yyidx + -2 ]->minor[ 'var' ] === '\'smarty\'') {
2846: $this->compiler->appendPrefixCode("<?php {$prefixVar} = " .
2847: $this->compiler->compileTag('private_special_variable', array(),
2848: $this->yystack[ $this->yyidx +
2849: -2 ]->minor[ 'smarty_internal_index' ]) .
2850: ';?>');
2851: } else {
2852: $this->compiler->appendPrefixCode("<?php {$prefixVar} = " .
2853: $this->compiler->compileVariable($this->yystack[ $this->yyidx +
2854: -2 ]->minor[ 'var' ]) .
2855: $this->yystack[ $this->yyidx + -2 ]->minor[ 'smarty_internal_index' ] .
2856: ';?>');
2857: }
2858: $this->_retvalue =
2859: $prefixVar .
2860: '::' .
2861: $this->yystack[ $this->yyidx + 0 ]->minor[ 0 ] .
2862: $this->yystack[ $this->yyidx + 0 ]->minor[ 1 ];
2863: }
2864:
2865: // line 772 "../smarty/lexer/smarty_internal_templateparser.y"
2866: public function yy_r96()
2867: {
2868: $prefixVar = $this->compiler->getNewPrefixVariable();
2869: $tmp = $this->compiler->appendCode('<?php ob_start();?>', $this->yystack[ $this->yyidx + 0 ]->minor);
2870: $this->compiler->appendPrefixCode($this->compiler->appendCode($tmp, "<?php {$prefixVar} = ob_get_clean();?>"));
2871: $this->_retvalue = $prefixVar;
2872: }
2873:
2874: // line 785 "../smarty/lexer/smarty_internal_templateparser.y"
2875: public function yy_r97()
2876: {
2877: $this->_retvalue =
2878: $this->compiler->compileTag('private_modifier', array(), array(
2879: 'value' => $this->yystack[ $this->yyidx + -1 ]->minor,
2880: 'modifierlist' => $this->yystack[ $this->yyidx + 0 ]->minor
2881: ));
2882: }
2883:
2884: // line 804 "../smarty/lexer/smarty_internal_templateparser.y"
2885: public function yy_r100()
2886: {
2887: if (!in_array(strtolower($this->yystack[ $this->yyidx + -2 ]->minor), array('self', 'parent')) &&
2888: (!$this->security ||
2889: $this->security->isTrustedStaticClassAccess($this->yystack[ $this->yyidx + -2 ]->minor,
2890: $this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler))) {
2891: if (isset($this->smarty->registered_classes[ $this->yystack[ $this->yyidx + -2 ]->minor ])) {
2892: $this->_retvalue =
2893: $this->smarty->registered_classes[ $this->yystack[ $this->yyidx + -2 ]->minor ] .
2894: '::' .
2895: $this->yystack[ $this->yyidx + 0 ]->minor[ 0 ] .
2896: $this->yystack[ $this->yyidx + 0 ]->minor[ 1 ];
2897: } else {
2898: $this->_retvalue =
2899: $this->yystack[ $this->yyidx + -2 ]->minor .
2900: '::' .
2901: $this->yystack[ $this->yyidx + 0 ]->minor[ 0 ] .
2902: $this->yystack[ $this->yyidx + 0 ]->minor[ 1 ];
2903: }
2904: } else {
2905: $this->compiler->trigger_template_error('static class \'' .
2906: $this->yystack[ $this->yyidx + -2 ]->minor .
2907: '\' is undefined or not allowed by security setting');
2908: }
2909: }
2910:
2911: // line 815 "../smarty/lexer/smarty_internal_templateparser.y"
2912: public function yy_r102()
2913: {
2914: $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor;
2915: }
2916:
2917: // line 818 "../smarty/lexer/smarty_internal_templateparser.y"
2918: public function yy_r103()
2919: {
2920: $this->_retvalue =
2921: $this->compiler->compileVariable('\'' . substr($this->yystack[ $this->yyidx + 0 ]->minor, 1) . '\'');
2922: }
2923:
2924: // line 831 "../smarty/lexer/smarty_internal_templateparser.y"
2925: public function yy_r104()
2926: {
2927: if ($this->yystack[ $this->yyidx + 0 ]->minor[ 'var' ] === '\'smarty\'') {
2928: $smarty_var =
2929: $this->compiler->compileTag('private_special_variable', array(),
2930: $this->yystack[ $this->yyidx + 0 ]->minor[ 'smarty_internal_index' ]);
2931: $this->_retvalue = $smarty_var;
2932: } else {
2933: // used for array reset,next,prev,end,current
2934: $this->last_variable = $this->yystack[ $this->yyidx + 0 ]->minor[ 'var' ];
2935: $this->last_index = $this->yystack[ $this->yyidx + 0 ]->minor[ 'smarty_internal_index' ];
2936: $this->_retvalue =
2937: $this->compiler->compileVariable($this->yystack[ $this->yyidx + 0 ]->minor[ 'var' ]) .
2938: $this->yystack[ $this->yyidx + 0 ]->minor[ 'smarty_internal_index' ];
2939: }
2940: }
2941:
2942: // line 841 "../smarty/lexer/smarty_internal_templateparser.y"
2943: public function yy_r105()
2944: {
2945: $this->_retvalue =
2946: '$_smarty_tpl->tpl_vars[' .
2947: $this->yystack[ $this->yyidx + -2 ]->minor .
2948: ']->' .
2949: $this->yystack[ $this->yyidx + 0 ]->minor;
2950: }
2951:
2952: // line 845 "../smarty/lexer/smarty_internal_templateparser.y"
2953: public function yy_r107()
2954: {
2955: $this->_retvalue =
2956: $this->compiler->compileConfigVariable('\'' . $this->yystack[ $this->yyidx + -1 ]->minor . '\'');
2957: }
2958:
2959: // line 849 "../smarty/lexer/smarty_internal_templateparser.y"
2960: public function yy_r108()
2961: {
2962: $this->_retvalue =
2963: '(is_array($tmp = ' .
2964: $this->compiler->compileConfigVariable('\'' . $this->yystack[ $this->yyidx + -2 ]->minor . '\'') .
2965: ') ? $tmp' .
2966: $this->yystack[ $this->yyidx + 0 ]->minor .
2967: ' :null)';
2968: }
2969:
2970: // line 853 "../smarty/lexer/smarty_internal_templateparser.y"
2971: public function yy_r109()
2972: {
2973: $this->_retvalue = $this->compiler->compileConfigVariable($this->yystack[ $this->yyidx + -1 ]->minor);
2974: }
2975:
2976: // line 857 "../smarty/lexer/smarty_internal_templateparser.y"
2977: public function yy_r110()
2978: {
2979: $this->_retvalue =
2980: '(is_array($tmp = ' .
2981: $this->compiler->compileConfigVariable($this->yystack[ $this->yyidx + -2 ]->minor) .
2982: ') ? $tmp' .
2983: $this->yystack[ $this->yyidx + 0 ]->minor .
2984: ' : null)';
2985: }
2986:
2987: // line 860 "../smarty/lexer/smarty_internal_templateparser.y"
2988: public function yy_r111()
2989: {
2990: $this->_retvalue =
2991: array(
2992: 'var' => '\'' . substr($this->yystack[ $this->yyidx + -1 ]->minor, 1) . '\'',
2993: 'smarty_internal_index' => $this->yystack[ $this->yyidx + 0 ]->minor
2994: );
2995: }
2996:
2997: // line 873 "../smarty/lexer/smarty_internal_templateparser.y"
2998: public function yy_r112()
2999: {
3000: $this->_retvalue =
3001: array(
3002: 'var' => $this->yystack[ $this->yyidx + -1 ]->minor,
3003: 'smarty_internal_index' => $this->yystack[ $this->yyidx + 0 ]->minor
3004: );
3005: }
3006:
3007: // line 879 "../smarty/lexer/smarty_internal_templateparser.y"
3008: public function yy_r114()
3009: {
3010: return;
3011: }
3012:
3013: // line 882 "../smarty/lexer/smarty_internal_templateparser.y"
3014: public function yy_r115()
3015: {
3016: $this->_retvalue =
3017: '[' .
3018: $this->compiler->compileVariable('\'' . substr($this->yystack[ $this->yyidx + 0 ]->minor, 1) . '\'') .
3019: ']';
3020: }
3021:
3022: // line 886 "../smarty/lexer/smarty_internal_templateparser.y"
3023: public function yy_r116()
3024: {
3025: $this->_retvalue = '[' . $this->compiler->compileVariable($this->yystack[ $this->yyidx + 0 ]->minor) . ']';
3026: }
3027:
3028: // line 890 "../smarty/lexer/smarty_internal_templateparser.y"
3029: public function yy_r117()
3030: {
3031: $this->_retvalue =
3032: '[' .
3033: $this->compiler->compileVariable($this->yystack[ $this->yyidx + -2 ]->minor) .
3034: '->' .
3035: $this->yystack[ $this->yyidx + 0 ]->minor .
3036: ']';
3037: }
3038:
3039: // line 894 "../smarty/lexer/smarty_internal_templateparser.y"
3040: public function yy_r118()
3041: {
3042: $this->_retvalue = '[\'' . $this->yystack[ $this->yyidx + 0 ]->minor . '\']';
3043: }
3044:
3045: // line 899 "../smarty/lexer/smarty_internal_templateparser.y"
3046: public function yy_r119()
3047: {
3048: $this->_retvalue = '[' . $this->yystack[ $this->yyidx + 0 ]->minor . ']';
3049: }
3050:
3051: // line 904 "../smarty/lexer/smarty_internal_templateparser.y"
3052: public function yy_r120()
3053: {
3054: $this->_retvalue = '[' . $this->yystack[ $this->yyidx + -1 ]->minor . ']';
3055: }
3056:
3057: // line 908 "../smarty/lexer/smarty_internal_templateparser.y"
3058: public function yy_r121()
3059: {
3060: $this->_retvalue =
3061: '[' .
3062: $this->compiler->compileTag('private_special_variable', array(),
3063: '[\'section\'][\'' . $this->yystack[ $this->yyidx + -1 ]->minor . '\'][\'index\']') .
3064: ']';
3065: }
3066:
3067: // line 911 "../smarty/lexer/smarty_internal_templateparser.y"
3068: public function yy_r122()
3069: {
3070: $this->_retvalue =
3071: '[' .
3072: $this->compiler->compileTag('private_special_variable', array(), '[\'section\'][\'' .
3073: $this->yystack[ $this->yyidx +
3074: -3 ]->minor .
3075: '\'][\'' .
3076: $this->yystack[ $this->yyidx +
3077: -1 ]->minor .
3078: '\']') .
3079: ']';
3080: }
3081:
3082: // line 917 "../smarty/lexer/smarty_internal_templateparser.y"
3083: public function yy_r123()
3084: {
3085: $this->_retvalue = '[' . $this->yystack[ $this->yyidx + -1 ]->minor . ']';
3086: }
3087:
3088: // line 933 "../smarty/lexer/smarty_internal_templateparser.y"
3089: public function yy_r125()
3090: {
3091: $this->_retvalue =
3092: '[' .
3093: $this->compiler->compileVariable('\'' . substr($this->yystack[ $this->yyidx + -1 ]->minor, 1) . '\'') .
3094: ']';
3095: }
3096:
3097: // line 943 "../smarty/lexer/smarty_internal_templateparser.y"
3098: public function yy_r129()
3099: {
3100: $this->_retvalue = '[]';
3101: }
3102:
3103: // line 947 "../smarty/lexer/smarty_internal_templateparser.y"
3104: public function yy_r130()
3105: {
3106: $this->_retvalue = '\'' . substr($this->yystack[ $this->yyidx + 0 ]->minor, 1) . '\'';
3107: }
3108:
3109: // line 952 "../smarty/lexer/smarty_internal_templateparser.y"
3110: public function yy_r131()
3111: {
3112: $this->_retvalue = '\'\'';
3113: }
3114:
3115: // line 960 "../smarty/lexer/smarty_internal_templateparser.y"
3116: public function yy_r132()
3117: {
3118: $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor . '.' . $this->yystack[ $this->yyidx + 0 ]->minor;
3119: }
3120:
3121: // line 966 "../smarty/lexer/smarty_internal_templateparser.y"
3122: public function yy_r134()
3123: {
3124: $var =
3125: trim(substr($this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler->getLdelLength(),
3126: -$this->compiler->getRdelLength()), ' $');
3127: $this->_retvalue = $this->compiler->compileVariable('\'' . $var . '\'');
3128: }
3129:
3130: // line 973 "../smarty/lexer/smarty_internal_templateparser.y"
3131: public function yy_r135()
3132: {
3133: $this->_retvalue = '(' . $this->yystack[ $this->yyidx + -1 ]->minor . ')';
3134: }
3135:
3136: // line 982 "../smarty/lexer/smarty_internal_templateparser.y"
3137: public function yy_r136()
3138: {
3139: if ($this->yystack[ $this->yyidx + -1 ]->minor[ 'var' ] === '\'smarty\'') {
3140: $this->_retvalue =
3141: $this->compiler->compileTag('private_special_variable', array(),
3142: $this->yystack[ $this->yyidx + -1 ]->minor[ 'smarty_internal_index' ]) .
3143: $this->yystack[ $this->yyidx + 0 ]->minor;
3144: } else {
3145: $this->_retvalue =
3146: $this->compiler->compileVariable($this->yystack[ $this->yyidx + -1 ]->minor[ 'var' ]) .
3147: $this->yystack[ $this->yyidx + -1 ]->minor[ 'smarty_internal_index' ] .
3148: $this->yystack[ $this->yyidx + 0 ]->minor;
3149: }
3150: }
3151:
3152: // line 987 "../smarty/lexer/smarty_internal_templateparser.y"
3153: public function yy_r137()
3154: {
3155: $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor;
3156: }
3157:
3158: // line 992 "../smarty/lexer/smarty_internal_templateparser.y"
3159: public function yy_r138()
3160: {
3161: $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor;
3162: }
3163:
3164: // line 999 "../smarty/lexer/smarty_internal_templateparser.y"
3165: public function yy_r139()
3166: {
3167: if ($this->security && substr($this->yystack[ $this->yyidx + -1 ]->minor, 0, 1) === '_') {
3168: $this->compiler->trigger_template_error(self::ERR1);
3169: }
3170: $this->_retvalue =
3171: '->' . $this->yystack[ $this->yyidx + -1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor;
3172: }
3173:
3174: // line 1006 "../smarty/lexer/smarty_internal_templateparser.y"
3175: public function yy_r140()
3176: {
3177: if ($this->security) {
3178: $this->compiler->trigger_template_error(self::ERR2);
3179: }
3180: $this->_retvalue =
3181: '->{' .
3182: $this->compiler->compileVariable($this->yystack[ $this->yyidx + -1 ]->minor) .
3183: $this->yystack[ $this->yyidx + 0 ]->minor .
3184: '}';
3185: }
3186:
3187: // line 1013 "../smarty/lexer/smarty_internal_templateparser.y"
3188: public function yy_r141()
3189: {
3190: if ($this->security) {
3191: $this->compiler->trigger_template_error(self::ERR2);
3192: }
3193: $this->_retvalue =
3194: '->{' . $this->yystack[ $this->yyidx + -2 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor . '}';
3195: }
3196:
3197: // line 1021 "../smarty/lexer/smarty_internal_templateparser.y"
3198: public function yy_r142()
3199: {
3200: if ($this->security) {
3201: $this->compiler->trigger_template_error(self::ERR2);
3202: }
3203: $this->_retvalue =
3204: '->{\'' .
3205: $this->yystack[ $this->yyidx + -4 ]->minor .
3206: '\'.' .
3207: $this->yystack[ $this->yyidx + -2 ]->minor .
3208: $this->yystack[ $this->yyidx + 0 ]->minor .
3209: '}';
3210: }
3211:
3212: // line 1029 "../smarty/lexer/smarty_internal_templateparser.y"
3213: public function yy_r143()
3214: {
3215: $this->_retvalue = '->' . $this->yystack[ $this->yyidx + 0 ]->minor;
3216: }
3217:
3218: // line 1037 "../smarty/lexer/smarty_internal_templateparser.y"
3219: public function yy_r144()
3220: {
3221: $this->_retvalue =
3222: $this->compiler->compilePHPFunctionCall($this->yystack[ $this->yyidx + -3 ]->minor,
3223: $this->yystack[ $this->yyidx + -1 ]->minor);
3224: }
3225:
3226: // line 1044 "../smarty/lexer/smarty_internal_templateparser.y"
3227: public function yy_r145()
3228: {
3229: if ($this->security && substr($this->yystack[ $this->yyidx + -3 ]->minor, 0, 1) === '_') {
3230: $this->compiler->trigger_template_error(self::ERR1);
3231: }
3232: $this->_retvalue =
3233: $this->yystack[ $this->yyidx + -3 ]->minor .
3234: '(' .
3235: implode(',', $this->yystack[ $this->yyidx + -1 ]->minor) .
3236: ')';
3237: }
3238:
3239: // line 1055 "../smarty/lexer/smarty_internal_templateparser.y"
3240: public function yy_r146()
3241: {
3242: if ($this->security) {
3243: $this->compiler->trigger_template_error(self::ERR2);
3244: }
3245: $prefixVar = $this->compiler->getNewPrefixVariable();
3246: $this->compiler->appendPrefixCode("<?php {$prefixVar} = " .
3247: $this->compiler->compileVariable('\'' .
3248: substr($this->yystack[ $this->yyidx +
3249: -3 ]->minor, 1) .
3250: '\'') .
3251: ';?>');
3252: $this->_retvalue = $prefixVar . '(' . implode(',', $this->yystack[ $this->yyidx + -1 ]->minor) . ')';
3253: }
3254:
3255: // line 1072 "../smarty/lexer/smarty_internal_templateparser.y"
3256: public function yy_r147()
3257: {
3258: $this->_retvalue =
3259: array_merge($this->yystack[ $this->yyidx + -2 ]->minor, array($this->yystack[ $this->yyidx + 0 ]->minor));
3260: }
3261:
3262: // line 1076 "../smarty/lexer/smarty_internal_templateparser.y"
3263: public function yy_r150()
3264: {
3265: $this->_retvalue =
3266: array_merge($this->yystack[ $this->yyidx + -2 ]->minor, array(
3267: array_merge($this->yystack[ $this->yyidx + -1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor)
3268: ));
3269: }
3270:
3271: // line 1084 "../smarty/lexer/smarty_internal_templateparser.y"
3272: public function yy_r151()
3273: {
3274: $this->_retvalue =
3275: array(array_merge($this->yystack[ $this->yyidx + -1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor));
3276: }
3277:
3278: // line 1092 "../smarty/lexer/smarty_internal_templateparser.y"
3279: public function yy_r153()
3280: {
3281: $this->_retvalue = array($this->yystack[ $this->yyidx + 0 ]->minor);
3282: }
3283:
3284: // line 1105 "../smarty/lexer/smarty_internal_templateparser.y"
3285: public function yy_r154()
3286: {
3287: $this->_retvalue =
3288: array_merge($this->yystack[ $this->yyidx + -1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor);
3289: }
3290:
3291: // line 1114 "../smarty/lexer/smarty_internal_templateparser.y"
3292: public function yy_r157()
3293: {
3294: $this->_retvalue =
3295: array(trim($this->yystack[ $this->yyidx + -1 ]->minor) . $this->yystack[ $this->yyidx + 0 ]->minor);
3296: }
3297:
3298: // line 1119 "../smarty/lexer/smarty_internal_templateparser.y"
3299: public function yy_r159()
3300: {
3301: $this->_retvalue = array($this->yystack[ $this->yyidx + 0 ]->minor, '', 'method');
3302: }
3303:
3304: // line 1124 "../smarty/lexer/smarty_internal_templateparser.y"
3305: public function yy_r160()
3306: {
3307: $this->_retvalue =
3308: array($this->yystack[ $this->yyidx + -1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor, 'method');
3309: }
3310:
3311: // line 1129 "../smarty/lexer/smarty_internal_templateparser.y"
3312: public function yy_r161()
3313: {
3314: $this->_retvalue = array($this->yystack[ $this->yyidx + 0 ]->minor, '');
3315: }
3316:
3317: // line 1134 "../smarty/lexer/smarty_internal_templateparser.y"
3318: public function yy_r162()
3319: {
3320: $this->_retvalue =
3321: array($this->yystack[ $this->yyidx + -1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor, 'property');
3322: }
3323:
3324: // line 1140 "../smarty/lexer/smarty_internal_templateparser.y"
3325: public function yy_r163()
3326: {
3327: $this->_retvalue =
3328: array(
3329: $this->yystack[ $this->yyidx + -2 ]->minor,
3330: $this->yystack[ $this->yyidx + -1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor, 'property'
3331: );
3332: }
3333:
3334: // line 1144 "../smarty/lexer/smarty_internal_templateparser.y"
3335: public function yy_r164()
3336: {
3337: $this->_retvalue = ' ' . trim($this->yystack[ $this->yyidx + 0 ]->minor) . ' ';
3338: }
3339:
3340: // line 1163 "../smarty/lexer/smarty_internal_templateparser.y"
3341: public function yy_r165()
3342: {
3343: static $lops = array(
3344: 'eq' => ' == ',
3345: 'ne' => ' != ',
3346: 'neq' => ' != ',
3347: 'gt' => ' > ',
3348: 'ge' => ' >= ',
3349: 'gte' => ' >= ',
3350: 'lt' => ' < ',
3351: 'le' => ' <= ',
3352: 'lte' => ' <= ',
3353: 'mod' => ' % ',
3354: 'and' => ' && ',
3355: 'or' => ' || ',
3356: 'xor' => ' xor ',
3357: );
3358: $op = strtolower(preg_replace('/\s*/', '', $this->yystack[ $this->yyidx + 0 ]->minor));
3359: $this->_retvalue = $lops[ $op ];
3360: }
3361:
3362: // line 1176 "../smarty/lexer/smarty_internal_templateparser.y"
3363: public function yy_r166()
3364: {
3365: static $tlops = array(
3366: 'isdivby' => array('op' => ' % ', 'pre' => '!('),
3367: 'isnotdivby' => array('op' => ' % ', 'pre' => '('),
3368: 'isevenby' => array('op' => ' / ', 'pre' => '!(1 & '),
3369: 'isnotevenby' => array('op' => ' / ', 'pre' => '(1 & '),
3370: 'isoddby' => array('op' => ' / ', 'pre' => '(1 & '),
3371: 'isnotoddby' => array('op' => ' / ', 'pre' => '!(1 & '),
3372: );
3373: $op = strtolower(preg_replace('/\s*/', '', $this->yystack[ $this->yyidx + 0 ]->minor));
3374: $this->_retvalue = $tlops[ $op ];
3375: }
3376:
3377: // line 1190 "../smarty/lexer/smarty_internal_templateparser.y"
3378: public function yy_r167()
3379: {
3380: static $scond = array(
3381: 'iseven' => '!(1 & ',
3382: 'isnoteven' => '(1 & ',
3383: 'isodd' => '(1 & ',
3384: 'isnotodd' => '!(1 & ',
3385: );
3386: $op = strtolower(str_replace(' ', '', $this->yystack[ $this->yyidx + 0 ]->minor));
3387: $this->_retvalue = $scond[ $op ];
3388: }
3389:
3390: // line 1201 "../smarty/lexer/smarty_internal_templateparser.y"
3391: public function yy_r168()
3392: {
3393: $this->_retvalue = 'array(' . $this->yystack[ $this->yyidx + -1 ]->minor . ')';
3394: }
3395:
3396: // line 1209 "../smarty/lexer/smarty_internal_templateparser.y"
3397: public function yy_r171()
3398: {
3399: $this->_retvalue = $this->yystack[ $this->yyidx + -2 ]->minor . ',' . $this->yystack[ $this->yyidx + 0 ]->minor;
3400: }
3401:
3402: // line 1213 "../smarty/lexer/smarty_internal_templateparser.y"
3403: public function yy_r173()
3404: {
3405: $this->_retvalue =
3406: $this->yystack[ $this->yyidx + -2 ]->minor . '=>' . $this->yystack[ $this->yyidx + 0 ]->minor;
3407: }
3408:
3409: // line 1229 "../smarty/lexer/smarty_internal_templateparser.y"
3410: public function yy_r174()
3411: {
3412: $this->_retvalue =
3413: '\'' . $this->yystack[ $this->yyidx + -2 ]->minor . '\'=>' . $this->yystack[ $this->yyidx + 0 ]->minor;
3414: }
3415:
3416: // line 1235 "../smarty/lexer/smarty_internal_templateparser.y"
3417: public function yy_r177()
3418: {
3419: $this->compiler->leaveDoubleQuote();
3420: $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor->to_smarty_php($this);
3421: }
3422:
3423: // line 1240 "../smarty/lexer/smarty_internal_templateparser.y"
3424: public function yy_r178()
3425: {
3426: $this->yystack[ $this->yyidx + -1 ]->minor->append_subtree($this, $this->yystack[ $this->yyidx + 0 ]->minor);
3427: $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor;
3428: }
3429:
3430: // line 1244 "../smarty/lexer/smarty_internal_templateparser.y"
3431: public function yy_r179()
3432: {
3433: $this->_retvalue = new Smarty_Internal_ParseTree_Dq($this, $this->yystack[ $this->yyidx + 0 ]->minor);
3434: }
3435:
3436: // line 1248 "../smarty/lexer/smarty_internal_templateparser.y"
3437: public function yy_r180()
3438: {
3439: $this->_retvalue = new Smarty_Internal_ParseTree_Code('(string)' . $this->yystack[ $this->yyidx + -1 ]->minor);
3440: }
3441:
3442: // line 1252 "../smarty/lexer/smarty_internal_templateparser.y"
3443: public function yy_r181()
3444: {
3445: $this->_retvalue =
3446: new Smarty_Internal_ParseTree_Code('(string)(' . $this->yystack[ $this->yyidx + -1 ]->minor . ')');
3447: }
3448:
3449: // line 1264 "../smarty/lexer/smarty_internal_templateparser.y"
3450: public function yy_r182()
3451: {
3452: $this->_retvalue =
3453: new Smarty_Internal_ParseTree_Code('(string)$_smarty_tpl->tpl_vars[\'' .
3454: substr($this->yystack[ $this->yyidx + 0 ]->minor, 1) .
3455: '\']->value');
3456: }
3457:
3458: // line 1268 "../smarty/lexer/smarty_internal_templateparser.y"
3459: public function yy_r185()
3460: {
3461: $this->_retvalue = new Smarty_Internal_ParseTree_Tag($this, $this->yystack[ $this->yyidx + 0 ]->minor);
3462: }
3463:
3464: public function yy_r186()
3465: {
3466: $this->_retvalue = new Smarty_Internal_ParseTree_DqContent($this->yystack[ $this->yyidx + 0 ]->minor);
3467: }
3468:
3469: public function yy_reduce($yyruleno)
3470: {
3471: if ($this->yyTraceFILE && $yyruleno >= 0
3472: && $yyruleno < count(self::$yyRuleName)) {
3473: fprintf($this->yyTraceFILE, "%sReduce (%d) [%s].\n",
3474: $this->yyTracePrompt, $yyruleno,
3475: self::$yyRuleName[ $yyruleno ]);
3476: }
3477: $this->_retvalue = $yy_lefthand_side = null;
3478: if (isset(self::$yyReduceMap[ $yyruleno ])) {
3479: // call the action
3480: $this->_retvalue = null;
3481: $this->{'yy_r' . self::$yyReduceMap[ $yyruleno ]}();
3482: $yy_lefthand_side = $this->_retvalue;
3483: }
3484: $yygoto = self::$yyRuleInfo[ $yyruleno ][ 0 ];
3485: $yysize = self::$yyRuleInfo[ $yyruleno ][ 1 ];
3486: $this->yyidx -= $yysize;
3487: for ($i = $yysize; $i; $i--) {
3488: // pop all of the right-hand side parameters
3489: array_pop($this->yystack);
3490: }
3491: $yyact = $this->yy_find_reduce_action($this->yystack[ $this->yyidx ]->stateno, $yygoto);
3492: if ($yyact < self::YYNSTATE) {
3493: if (!$this->yyTraceFILE && $yysize) {
3494: $this->yyidx++;
3495: $x = new TP_yyStackEntry;
3496: $x->stateno = $yyact;
3497: $x->major = $yygoto;
3498: $x->minor = $yy_lefthand_side;
3499: $this->yystack[ $this->yyidx ] = $x;
3500: } else {
3501: $this->yy_shift($yyact, $yygoto, $yy_lefthand_side);
3502: }
3503: } elseif ($yyact === self::YYNSTATE + self::YYNRULE + 1) {
3504: $this->yy_accept();
3505: }
3506: }
3507:
3508: public function yy_parse_failed()
3509: {
3510: if ($this->yyTraceFILE) {
3511: fprintf($this->yyTraceFILE, "%sFail!\n", $this->yyTracePrompt);
3512: }
3513: while ($this->yyidx >= 0) {
3514: $this->yy_pop_parser_stack();
3515: }
3516: }
3517:
3518: public function yy_syntax_error($yymajor, $TOKEN)
3519: {
3520: // line 214 "../smarty/lexer/smarty_internal_templateparser.y"
3521: $this->internalError = true;
3522: $this->yymajor = $yymajor;
3523: $this->compiler->trigger_template_error();
3524: }
3525:
3526: public function yy_accept()
3527: {
3528: if ($this->yyTraceFILE) {
3529: fprintf($this->yyTraceFILE, "%sAccept!\n", $this->yyTracePrompt);
3530: }
3531: while ($this->yyidx >= 0) {
3532: $this->yy_pop_parser_stack();
3533: }
3534: // line 207 "../smarty/lexer/smarty_internal_templateparser.y"
3535: $this->successful = !$this->internalError;
3536: $this->internalError = false;
3537: $this->retvalue = $this->_retvalue;
3538: }
3539:
3540: public function doParse($yymajor, $yytokenvalue)
3541: {
3542: $yyerrorhit = 0; /* True if yymajor has invoked an error */
3543: if ($this->yyidx === null || $this->yyidx < 0) {
3544: $this->yyidx = 0;
3545: $this->yyerrcnt = -1;
3546: $x = new TP_yyStackEntry;
3547: $x->stateno = 0;
3548: $x->major = 0;
3549: $this->yystack = array();
3550: $this->yystack[] = $x;
3551: }
3552: $yyendofinput = ($yymajor == 0);
3553: if ($this->yyTraceFILE) {
3554: fprintf($this->yyTraceFILE, "%sInput %s\n",
3555: $this->yyTracePrompt, $this->yyTokenName[ $yymajor ]);
3556: }
3557: do {
3558: $yyact = $this->yy_find_shift_action($yymajor);
3559: if ($yymajor < self::YYERRORSYMBOL &&
3560: !$this->yy_is_expected_token($yymajor)) {
3561: // force a syntax error
3562: $yyact = self::YY_ERROR_ACTION;
3563: }
3564: if ($yyact < self::YYNSTATE) {
3565: $this->yy_shift($yyact, $yymajor, $yytokenvalue);
3566: $this->yyerrcnt--;
3567: if ($yyendofinput && $this->yyidx >= 0) {
3568: $yymajor = 0;
3569: } else {
3570: $yymajor = self::YYNOCODE;
3571: }
3572: } elseif ($yyact < self::YYNSTATE + self::YYNRULE) {
3573: $this->yy_reduce($yyact - self::YYNSTATE);
3574: } elseif ($yyact === self::YY_ERROR_ACTION) {
3575: if ($this->yyTraceFILE) {
3576: fprintf($this->yyTraceFILE, "%sSyntax Error!\n",
3577: $this->yyTracePrompt);
3578: }
3579: if (self::YYERRORSYMBOL) {
3580: if ($this->yyerrcnt < 0) {
3581: $this->yy_syntax_error($yymajor, $yytokenvalue);
3582: }
3583: $yymx = $this->yystack[ $this->yyidx ]->major;
3584: if ($yymx === self::YYERRORSYMBOL || $yyerrorhit) {
3585: if ($this->yyTraceFILE) {
3586: fprintf($this->yyTraceFILE, "%sDiscard input token %s\n",
3587: $this->yyTracePrompt, $this->yyTokenName[ $yymajor ]);
3588: }
3589: $this->yy_destructor($yymajor, $yytokenvalue);
3590: $yymajor = self::YYNOCODE;
3591: } else {
3592: while ($this->yyidx >= 0 &&
3593: $yymx !== self::YYERRORSYMBOL &&
3594: ($yyact = $this->yy_find_shift_action(self::YYERRORSYMBOL)) >= self::YYNSTATE
3595: ) {
3596: $this->yy_pop_parser_stack();
3597: }
3598: if ($this->yyidx < 0 || $yymajor == 0) {
3599: $this->yy_destructor($yymajor, $yytokenvalue);
3600: $this->yy_parse_failed();
3601: $yymajor = self::YYNOCODE;
3602: } elseif ($yymx !== self::YYERRORSYMBOL) {
3603: $u2 = 0;
3604: $this->yy_shift($yyact, self::YYERRORSYMBOL, $u2);
3605: }
3606: }
3607: $this->yyerrcnt = 3;
3608: $yyerrorhit = 1;
3609: } else {
3610: if ($this->yyerrcnt <= 0) {
3611: $this->yy_syntax_error($yymajor, $yytokenvalue);
3612: }
3613: $this->yyerrcnt = 3;
3614: $this->yy_destructor($yymajor, $yytokenvalue);
3615: if ($yyendofinput) {
3616: $this->yy_parse_failed();
3617: }
3618: $yymajor = self::YYNOCODE;
3619: }
3620: } else {
3621: $this->yy_accept();
3622: $yymajor = self::YYNOCODE;
3623: }
3624: } while ($yymajor !== self::YYNOCODE && $this->yyidx >= 0);
3625: }
3626: }
3627:
3628: