4 * Smarty Internal Plugin Templateparser
5 * This is the template parser.
6 * It is generated from the internal.templateparser.y file
12 class TP_yyToken implements ArrayAccess
15 public $metadata = array();
17 public function __construct($s, $m = array())
19 if ($s instanceof TP_yyToken) {
20 $this->string = $s->string;
21 $this->metadata = $s->metadata;
23 $this->string = (string) $s;
24 if ($m instanceof TP_yyToken) {
25 $this->metadata = $m->metadata;
26 } elseif (is_array($m)) {
32 public function __toString()
34 return $this->_string;
37 public function offsetExists($offset)
39 return isset($this->metadata[$offset]);
42 public function offsetGet($offset)
44 return $this->metadata[$offset];
47 public function offsetSet($offset, $value)
49 if ($offset === null) {
50 if (isset($value[0])) {
51 $x = ($value instanceof TP_yyToken) ?
52 $value->metadata : $value;
53 $this->metadata = array_merge($this->metadata, $x);
57 $offset = count($this->metadata);
59 if ($value === null) {
62 if ($value instanceof TP_yyToken) {
63 if ($value->metadata) {
64 $this->metadata[$offset] = $value->metadata;
67 $this->metadata[$offset] = $value;
71 public function offsetUnset($offset)
73 unset($this->metadata[$offset]);
79 public $stateno; /* The state-number */
80 public $major; /* The major token value. This is the code
81 ** number for the token at this stack level */
82 public $minor; /* The user-supplied minor token value. This
83 ** is the value of the token */
88 #line 13 "smarty_internal_templateparser.y"
89 class Smarty_Internal_Templateparser #line 80 "smarty_internal_templateparser.php"
91 #line 15 "smarty_internal_templateparser.y"
93 const Err1 = "Security error: Call to private object member not allowed";
94 const Err2 = "Security error: Call to dynamic object member not allowed";
95 const Err3 = "PHP in template not allowed. Use SmartyBC to enable it";
96 // states whether the parse was successful or not
97 public $successful = true;
99 public static $prefix_number = 0;
101 private $internalError = false;
102 private $strip = false;
104 function __construct($lex, $compiler)
107 $this->compiler = $compiler;
108 $this->smarty = $this->compiler->smarty;
109 $this->template = $this->compiler->template;
110 $this->compiler->has_variable_string = false;
111 $this->compiler->prefix_code = array();
112 $this->block_nesting_level = 0;
113 if ($this->security = isset($this->smarty->security_policy)) {
114 $this->php_handling = $this->smarty->security_policy->php_handling;
116 $this->php_handling = $this->smarty->php_handling;
118 $this->is_xml = false;
119 $this->asp_tags = (ini_get('asp_tags') != '0');
120 $this->current_buffer = $this->root_buffer = new _smarty_template_buffer($this);
123 public static function escape_start_tag($tag_text)
125 $tag = preg_replace('/\A<\?(.*)\z/', '<<?php ?>?\1', $tag_text, - 1, $count); //Escape tag
129 public static function escape_end_tag($tag_text)
134 public function compileVariable($variable)
136 if (strpos($variable, '(') == 0) {
137 // not a variable variable
138 $var = trim($variable, '\'');
139 $this->compiler->tag_nocache = $this->compiler->tag_nocache | $this->template->getVariable($var, null, true, false)->nocache;
140 $this->template->properties['variables'][$var] = $this->compiler->tag_nocache | $this->compiler->nocache;
142 // return '(isset($_smarty_tpl->tpl_vars['. $variable .'])?$_smarty_tpl->tpl_vars['. $variable .']->value:$_smarty_tpl->getVariable('. $variable .')->value)';
143 return '$_smarty_tpl->tpl_vars[' . $variable . ']->value';
146 #line 133 "smarty_internal_templateparser.php"
151 const TP_COMMENT = 4;
152 const TP_PHPSTARTTAG = 5;
153 const TP_PHPENDTAG = 6;
154 const TP_ASPSTARTTAG = 7;
155 const TP_ASPENDTAG = 8;
156 const TP_FAKEPHPSTARTTAG = 9;
157 const TP_XMLTAG = 10;
159 const TP_STRIPON = 12;
160 const TP_STRIPOFF = 13;
161 const TP_BLOCKSOURCE = 14;
162 const TP_LITERALSTART = 15;
163 const TP_LITERALEND = 16;
164 const TP_LITERAL = 17;
166 const TP_DOLLAR = 19;
170 const TP_LDELIF = 23;
171 const TP_LDELFOR = 24;
172 const TP_SEMICOLON = 25;
173 const TP_INCDEC = 26;
176 const TP_LDELFOREACH = 29;
180 const TP_LDELSETFILTER = 33;
181 const TP_SMARTYBLOCKCHILDPARENT = 34;
182 const TP_LDELSLASH = 35;
184 const TP_INTEGER = 37;
187 const TP_CLOSEP = 40;
189 const TP_UNIMATH = 42;
190 const TP_ANDSYM = 43;
192 const TP_ISDIVBY = 45;
193 const TP_ISNOTDIVBY = 46;
194 const TP_ISEVEN = 47;
195 const TP_ISNOTEVEN = 48;
196 const TP_ISEVENBY = 49;
197 const TP_ISNOTEVENBY = 50;
199 const TP_ISNOTODD = 52;
200 const TP_ISODDBY = 53;
201 const TP_ISNOTODDBY = 54;
202 const TP_INSTANCEOF = 55;
205 const TP_TYPECAST = 58;
208 const TP_SINGLEQUOTESTRING = 61;
209 const TP_DOUBLECOLON = 62;
213 const TP_CLOSEB = 66;
214 const TP_EQUALS = 67;
215 const TP_NOTEQUALS = 68;
216 const TP_GREATERTHAN = 69;
217 const TP_LESSTHAN = 70;
218 const TP_GREATEREQUAL = 71;
219 const TP_LESSEQUAL = 72;
220 const TP_IDENTITY = 73;
221 const TP_NONEIDENTITY = 74;
227 const TP_BACKTICK = 80;
228 const TP_DOLLARID = 81;
229 const YY_NO_ACTION = 570;
230 const YY_ACCEPT_ACTION = 569;
231 const YY_ERROR_ACTION = 568;
233 const YY_SZ_ACTTAB = 2407;
234 static public $yy_action = array(
236 219, 309, 305, 301, 302, 303, 304, 310, 311, 317,
238 318, 319, 201, 30, 273, 9, 33, 238, 280, 15,
240 5, 108, 235, 234, 220, 7, 126, 42, 30, 30,
242 259, 211, 256, 495, 15, 15, 10, 33, 495, 280,
244 46, 47, 51, 45, 24, 14, 352, 353, 39, 37,
246 278, 359, 12, 25, 219, 219, 326, 434, 219, 192,
248 434, 569, 95, 263, 227, 306, 360, 361, 358, 357,
250 354, 355, 356, 342, 341, 328, 329, 330, 292, 219,
252 202, 322, 242, 30, 434, 231, 207, 434, 143, 15,
254 434, 35, 158, 434, 46, 47, 51, 45, 24, 14,
256 352, 353, 39, 37, 278, 359, 12, 25, 219, 48,
258 32, 219, 48, 391, 196, 2, 31, 138, 321, 4,
260 360, 361, 358, 357, 354, 355, 356, 342, 341, 328,
262 329, 330, 127, 48, 290, 349, 251, 30, 145, 140,
264 30, 207, 264, 15, 200, 322, 15, 334, 46, 47,
266 51, 45, 24, 14, 352, 353, 39, 37, 278, 359,
268 12, 25, 219, 289, 219, 48, 431, 297, 219, 33,
270 396, 280, 18, 191, 360, 361, 358, 357, 354, 355,
272 356, 342, 341, 328, 329, 330, 300, 285, 286, 287,
274 299, 206, 219, 431, 428, 194, 201, 315, 314, 431,
276 207, 281, 46, 47, 51, 45, 24, 14, 352, 353,
278 39, 37, 278, 359, 12, 25, 219, 33, 48, 280,
280 34, 30, 48, 197, 322, 276, 158, 15, 360, 361,
282 358, 357, 354, 355, 356, 342, 341, 328, 329, 330,
284 230, 338, 16, 289, 103, 179, 244, 219, 295, 2,
286 41, 33, 265, 280, 283, 148, 46, 47, 51, 45,
288 24, 14, 352, 353, 39, 37, 278, 359, 12, 25,
290 219, 207, 145, 43, 132, 189, 109, 333, 307, 227,
292 306, 190, 360, 361, 358, 357, 354, 355, 356, 342,
294 341, 328, 329, 330, 20, 22, 248, 339, 219, 99,
296 174, 48, 324, 33, 346, 280, 18, 288, 207, 283,
298 46, 47, 51, 45, 24, 14, 352, 353, 39, 37,
300 278, 359, 12, 25, 219, 289, 207, 30, 41, 110,
302 275, 2, 41, 15, 272, 266, 360, 361, 358, 357,
304 354, 355, 356, 342, 341, 328, 329, 330, 242, 40,
306 236, 347, 104, 177, 145, 219, 44, 316, 148, 135,
308 228, 27, 283, 269, 46, 47, 51, 45, 24, 14,
310 352, 353, 39, 37, 278, 359, 12, 25, 219, 207,
312 208, 33, 7, 280, 245, 239, 136, 173, 241, 279,
314 360, 361, 358, 357, 354, 355, 356, 342, 341, 328,
316 329, 330, 29, 158, 106, 13, 122, 171, 181, 6,
318 33, 15, 226, 33, 219, 237, 283, 283, 46, 47,
320 51, 45, 24, 14, 352, 353, 39, 37, 278, 359,
322 12, 25, 219, 205, 205, 252, 313, 238, 312, 235,
324 232, 195, 97, 127, 360, 361, 358, 357, 354, 355,
326 356, 342, 341, 328, 329, 330, 28, 320, 230, 105,
328 182, 164, 176, 33, 279, 254, 282, 186, 207, 283,
330 283, 253, 46, 47, 51, 45, 24, 14, 352, 353,
332 39, 37, 278, 359, 12, 25, 219, 205, 260, 107,
334 235, 262, 33, 193, 214, 332, 166, 198, 360, 361,
336 358, 357, 354, 355, 356, 342, 341, 328, 329, 330,
338 137, 175, 167, 291, 308, 344, 185, 261, 267, 161,
340 283, 283, 128, 337, 124, 283, 46, 47, 51, 45,
342 24, 14, 352, 353, 39, 37, 278, 359, 12, 25,
344 219, 38, 205, 203, 141, 169, 257, 134, 35, 130,
346 156, 114, 360, 361, 358, 357, 354, 355, 356, 342,
348 341, 328, 329, 330, 320, 158, 320, 241, 36, 293,
350 298, 94, 21, 26, 284, 219, 292, 168, 271, 162,
352 46, 47, 51, 45, 24, 14, 352, 353, 39, 37,
354 278, 359, 12, 25, 219, 279, 229, 205, 44, 281,
356 187, 17, 270, 331, 98, 127, 360, 361, 358, 357,
358 354, 355, 356, 342, 341, 328, 329, 330, 199, 320,
360 331, 331, 331, 331, 331, 331, 331, 331, 331, 331,
362 331, 331, 331, 331, 46, 47, 51, 45, 24, 14,
364 352, 353, 39, 37, 278, 359, 12, 25, 219, 331,
366 268, 331, 331, 331, 331, 331, 331, 331, 125, 115,
368 360, 361, 358, 357, 354, 355, 356, 342, 341, 328,
370 329, 330, 279, 331, 320, 331, 331, 331, 331, 331,
372 331, 331, 331, 331, 331, 331, 331, 331, 46, 47,
374 51, 45, 24, 14, 352, 353, 39, 37, 278, 359,
376 12, 25, 219, 331, 204, 331, 331, 331, 331, 331,
378 331, 159, 100, 116, 360, 361, 358, 357, 354, 355,
380 356, 342, 341, 328, 329, 330, 320, 320, 320, 331,
382 331, 331, 331, 331, 331, 331, 331, 331, 331, 331,
384 331, 331, 46, 47, 51, 45, 24, 14, 352, 353,
386 39, 37, 278, 359, 12, 25, 219, 331, 331, 331,
388 331, 331, 331, 331, 331, 102, 117, 331, 360, 361,
390 358, 357, 354, 355, 356, 342, 341, 328, 329, 330,
392 320, 320, 331, 331, 331, 331, 331, 331, 331, 331,
394 331, 331, 331, 331, 331, 331, 46, 47, 51, 45,
396 24, 14, 352, 353, 39, 37, 278, 359, 12, 25,
398 331, 331, 331, 331, 331, 331, 331, 331, 331, 331,
400 158, 331, 360, 361, 358, 357, 354, 355, 356, 342,
402 341, 328, 329, 330, 331, 331, 331, 331, 46, 47,
404 51, 45, 24, 14, 352, 353, 39, 37, 278, 359,
406 12, 25, 331, 331, 331, 331, 331, 331, 211, 331,
408 331, 331, 331, 10, 360, 361, 358, 357, 354, 355,
410 356, 342, 341, 328, 329, 330, 331, 331, 331, 331,
412 331, 331, 331, 9, 142, 212, 331, 331, 5, 108,
414 331, 246, 331, 331, 126, 157, 183, 331, 259, 123,
416 256, 331, 250, 331, 23, 283, 331, 52, 277, 331,
418 331, 255, 350, 348, 331, 345, 331, 279, 180, 178,
420 331, 331, 49, 50, 296, 240, 351, 283, 283, 106,
422 1, 274, 331, 147, 331, 331, 331, 331, 331, 279,
424 279, 9, 144, 92, 96, 233, 5, 108, 331, 345,
426 331, 331, 126, 331, 331, 246, 259, 323, 256, 146,
428 250, 331, 23, 123, 184, 52, 331, 331, 331, 331,
430 246, 331, 343, 283, 153, 255, 350, 348, 123, 345,
432 49, 50, 296, 240, 351, 279, 331, 106, 1, 331,
434 255, 350, 348, 331, 345, 33, 331, 280, 331, 9,
436 142, 224, 96, 331, 5, 108, 331, 30, 331, 247,
438 126, 246, 331, 15, 259, 149, 256, 331, 250, 123,
440 23, 331, 331, 52, 331, 331, 331, 331, 331, 331,
442 331, 255, 350, 348, 331, 345, 331, 331, 49, 50,
444 296, 240, 351, 331, 331, 106, 1, 331, 331, 331,
446 331, 331, 33, 331, 280, 331, 331, 9, 135, 224,
448 96, 331, 5, 108, 30, 246, 258, 331, 126, 151,
450 15, 246, 259, 123, 256, 154, 250, 331, 11, 123,
452 331, 52, 331, 331, 331, 255, 350, 348, 331, 345,
454 331, 255, 350, 348, 331, 345, 49, 50, 296, 240,
456 351, 331, 331, 106, 1, 331, 331, 331, 331, 331,
458 331, 331, 331, 331, 331, 9, 142, 210, 96, 331,
460 5, 108, 331, 331, 331, 331, 126, 246, 331, 331,
462 259, 155, 256, 331, 216, 123, 23, 331, 331, 52,
464 331, 331, 331, 331, 331, 331, 331, 255, 350, 348,
466 331, 345, 331, 331, 49, 50, 296, 240, 351, 331,
468 331, 106, 1, 331, 331, 331, 331, 331, 331, 331,
470 331, 331, 331, 9, 131, 224, 96, 331, 5, 108,
472 331, 331, 331, 331, 126, 246, 331, 331, 259, 152,
474 256, 331, 250, 123, 3, 331, 331, 52, 331, 331,
476 331, 331, 331, 331, 331, 255, 350, 348, 331, 345,
478 331, 331, 49, 50, 296, 240, 351, 331, 331, 106,
480 1, 331, 331, 331, 331, 331, 331, 331, 331, 331,
482 331, 9, 142, 213, 96, 331, 5, 108, 331, 331,
484 331, 331, 126, 246, 331, 331, 259, 150, 256, 331,
486 250, 123, 23, 331, 331, 52, 331, 331, 331, 331,
488 331, 331, 331, 255, 350, 348, 331, 345, 331, 331,
490 49, 50, 296, 240, 351, 331, 331, 106, 1, 331,
492 219, 331, 401, 331, 331, 331, 331, 331, 331, 9,
494 142, 209, 96, 331, 5, 108, 331, 331, 331, 331,
496 126, 249, 331, 331, 259, 331, 256, 331, 250, 30,
498 23, 190, 163, 52, 331, 15, 331, 331, 2, 331,
500 331, 283, 331, 331, 20, 22, 331, 331, 49, 50,
502 296, 240, 351, 331, 331, 106, 1, 331, 207, 331,
504 331, 145, 331, 331, 331, 432, 331, 9, 139, 224,
506 96, 331, 5, 108, 331, 331, 331, 331, 126, 331,
508 331, 331, 259, 243, 256, 331, 250, 331, 23, 190,
510 188, 52, 432, 331, 331, 331, 331, 331, 432, 283,
512 331, 2, 20, 22, 331, 331, 49, 50, 296, 240,
514 351, 331, 331, 106, 1, 331, 207, 331, 331, 331,
516 331, 331, 331, 331, 145, 9, 135, 224, 96, 331,
518 5, 108, 331, 331, 331, 331, 126, 331, 331, 331,
520 259, 331, 256, 331, 250, 331, 11, 101, 160, 52,
522 331, 331, 331, 331, 331, 331, 331, 283, 331, 331,
524 20, 22, 331, 331, 49, 50, 296, 240, 351, 331,
526 331, 106, 331, 331, 207, 331, 331, 331, 331, 331,
528 331, 331, 331, 9, 135, 225, 96, 331, 5, 108,
530 331, 331, 331, 331, 126, 331, 331, 331, 259, 331,
532 256, 331, 250, 331, 11, 331, 477, 52, 331, 331,
534 331, 331, 331, 331, 331, 331, 331, 331, 331, 331,
536 331, 331, 49, 50, 296, 240, 351, 331, 477, 106,
538 477, 477, 331, 477, 477, 331, 331, 331, 331, 477,
540 331, 477, 2, 477, 96, 331, 331, 331, 331, 331,
542 331, 331, 331, 331, 331, 246, 331, 331, 477, 120,
544 331, 331, 84, 123, 331, 145, 331, 331, 331, 477,
546 331, 294, 327, 331, 331, 255, 350, 348, 331, 345,
548 331, 331, 331, 477, 331, 331, 331, 246, 331, 218,
550 362, 120, 331, 331, 84, 123, 331, 331, 331, 331,
552 331, 331, 331, 294, 327, 331, 331, 255, 350, 348,
554 246, 345, 331, 331, 129, 331, 331, 61, 119, 232,
556 331, 246, 335, 331, 331, 129, 294, 327, 80, 123,
558 255, 350, 348, 331, 345, 331, 331, 294, 327, 331,
560 331, 255, 350, 348, 331, 345, 246, 331, 331, 331,
562 129, 331, 215, 80, 123, 331, 331, 331, 331, 331,
564 331, 331, 294, 327, 331, 331, 255, 350, 348, 331,
566 345, 331, 331, 331, 246, 190, 170, 221, 129, 331,
568 331, 55, 119, 133, 331, 283, 331, 331, 20, 22,
570 294, 327, 331, 331, 255, 350, 348, 246, 345, 331,
572 331, 129, 207, 331, 80, 123, 331, 331, 331, 331,
574 331, 331, 331, 294, 327, 331, 246, 255, 350, 348,
576 129, 345, 331, 89, 123, 331, 331, 331, 223, 331,
578 331, 331, 294, 327, 331, 331, 255, 350, 348, 246,
580 345, 331, 331, 129, 331, 331, 70, 123, 331, 331,
582 246, 331, 331, 331, 111, 294, 327, 67, 123, 255,
584 350, 348, 331, 345, 331, 331, 294, 327, 331, 246,
586 255, 350, 348, 129, 345, 331, 86, 123, 331, 331,
588 331, 331, 331, 331, 331, 294, 327, 331, 246, 255,
590 350, 348, 129, 345, 331, 90, 123, 331, 331, 331,
592 331, 331, 331, 331, 294, 327, 331, 246, 255, 350,
594 348, 129, 345, 331, 77, 123, 331, 331, 331, 331,
596 331, 331, 331, 294, 327, 331, 246, 255, 350, 348,
598 129, 345, 331, 74, 123, 331, 331, 246, 331, 331,
600 331, 129, 294, 327, 66, 123, 255, 350, 348, 331,
602 345, 331, 331, 294, 327, 331, 246, 222, 350, 348,
604 129, 345, 331, 69, 123, 331, 331, 331, 331, 331,
606 331, 331, 294, 327, 331, 246, 255, 350, 348, 129,
608 345, 331, 78, 123, 331, 331, 331, 331, 331, 331,
610 331, 294, 327, 331, 246, 255, 350, 348, 129, 345,
612 331, 60, 123, 331, 331, 331, 331, 331, 331, 331,
614 294, 327, 331, 246, 255, 350, 348, 129, 345, 331,
616 53, 123, 331, 331, 246, 331, 331, 331, 129, 294,
618 327, 65, 123, 255, 350, 348, 331, 345, 331, 331,
620 294, 327, 336, 331, 255, 350, 348, 331, 345, 8,
622 331, 331, 331, 331, 5, 108, 331, 331, 331, 331,
624 126, 331, 331, 246, 259, 331, 256, 129, 331, 331,
626 72, 123, 331, 331, 331, 331, 331, 331, 331, 294,
628 327, 331, 246, 255, 350, 348, 129, 345, 331, 85,
630 123, 331, 331, 331, 331, 331, 331, 331, 294, 327,
632 331, 246, 255, 350, 348, 129, 345, 331, 81, 123,
634 331, 19, 340, 331, 331, 331, 331, 294, 327, 331,
636 246, 255, 350, 348, 113, 345, 331, 82, 123, 331,
638 331, 246, 331, 331, 331, 93, 294, 327, 54, 121,
640 255, 350, 348, 331, 345, 331, 331, 294, 327, 331,
642 246, 217, 350, 348, 129, 345, 331, 58, 123, 331,
644 331, 331, 331, 331, 331, 331, 294, 327, 331, 336,
646 255, 350, 348, 331, 345, 331, 8, 331, 331, 331,
648 331, 5, 108, 331, 331, 331, 331, 126, 246, 331,
650 331, 259, 129, 256, 331, 88, 123, 331, 331, 246,
652 331, 331, 331, 129, 294, 327, 56, 123, 255, 350,
654 348, 331, 345, 331, 331, 294, 327, 331, 331, 255,
656 350, 348, 331, 345, 246, 331, 331, 331, 129, 331,
658 331, 68, 123, 331, 331, 331, 331, 325, 19, 340,
660 294, 327, 331, 331, 255, 350, 348, 331, 345, 331,
662 331, 331, 331, 246, 331, 331, 331, 118, 331, 331,
664 59, 123, 331, 331, 331, 331, 190, 172, 331, 294,
666 327, 331, 331, 255, 350, 348, 283, 345, 246, 20,
668 22, 331, 93, 331, 331, 57, 121, 331, 331, 331,
670 331, 331, 331, 207, 294, 327, 331, 246, 255, 350,
672 348, 129, 345, 331, 64, 123, 331, 331, 246, 331,
674 331, 331, 129, 294, 327, 63, 123, 255, 350, 348,
676 331, 345, 331, 331, 294, 327, 331, 246, 255, 350,
678 348, 129, 345, 331, 73, 123, 331, 331, 331, 331,
680 190, 165, 331, 294, 327, 331, 331, 255, 350, 348,
682 283, 345, 331, 20, 22, 331, 246, 331, 331, 331,
684 129, 331, 331, 87, 123, 331, 331, 207, 331, 331,
686 331, 331, 294, 327, 331, 331, 255, 350, 348, 331,
688 345, 246, 331, 331, 331, 129, 331, 331, 75, 123,
690 331, 331, 246, 331, 331, 331, 129, 294, 327, 61,
692 123, 255, 350, 348, 331, 345, 331, 331, 294, 327,
694 331, 246, 255, 350, 348, 129, 345, 331, 71, 123,
696 331, 331, 246, 331, 331, 331, 129, 294, 327, 83,
698 123, 255, 350, 348, 331, 345, 331, 331, 294, 327,
700 331, 331, 255, 350, 348, 331, 345, 246, 331, 331,
702 331, 112, 331, 331, 76, 123, 331, 331, 331, 331,
704 331, 331, 331, 294, 327, 331, 331, 255, 350, 348,
706 331, 345, 246, 331, 331, 331, 129, 331, 331, 91,
708 123, 331, 331, 246, 331, 331, 331, 129, 294, 327,
710 62, 123, 255, 350, 348, 331, 345, 331, 331, 294,
712 327, 331, 246, 255, 350, 348, 129, 345, 331, 79,
714 123, 331, 331, 331, 331, 331, 331, 331, 294, 327,
716 331, 331, 255, 350, 348, 331, 345,
718 static public $yy_lookahead = array(
720 1, 4, 5, 6, 7, 8, 9, 10, 11, 12,
722 13, 14, 15, 30, 66, 18, 18, 2, 20, 36,
724 23, 24, 94, 95, 96, 39, 29, 28, 30, 30,
726 33, 60, 35, 60, 36, 36, 65, 18, 65, 20,
728 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
730 51, 52, 53, 54, 1, 1, 3, 3, 1, 91,
732 3, 83, 84, 85, 86, 87, 67, 68, 69, 70,
734 71, 72, 73, 74, 75, 76, 77, 78, 112, 1,
736 114, 115, 63, 30, 30, 31, 118, 30, 19, 36,
738 36, 21, 22, 36, 41, 42, 43, 44, 45, 46,
740 47, 48, 49, 50, 51, 52, 53, 54, 1, 55,
742 32, 1, 55, 3, 91, 39, 18, 19, 20, 38,
744 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
746 77, 78, 62, 55, 20, 37, 60, 30, 62, 20,
748 30, 118, 66, 36, 114, 115, 36, 66, 41, 42,
750 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
752 53, 54, 1, 26, 1, 55, 3, 37, 1, 18,
754 3, 20, 21, 91, 67, 68, 69, 70, 71, 72,
756 73, 74, 75, 76, 77, 78, 5, 6, 7, 8,
758 9, 20, 1, 30, 3, 100, 15, 16, 17, 36,
760 118, 119, 41, 42, 43, 44, 45, 46, 47, 48,
762 49, 50, 51, 52, 53, 54, 1, 18, 55, 20,
764 21, 30, 55, 114, 115, 26, 22, 36, 67, 68,
766 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
768 86, 80, 32, 26, 91, 92, 31, 1, 109, 39,
770 38, 18, 40, 20, 101, 116, 41, 42, 43, 44,
772 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
774 1, 118, 62, 18, 19, 20, 122, 123, 85, 86,
776 87, 91, 67, 68, 69, 70, 71, 72, 73, 74,
778 75, 76, 77, 78, 104, 105, 63, 80, 1, 91,
780 92, 55, 3, 18, 115, 20, 21, 20, 118, 101,
782 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
784 51, 52, 53, 54, 1, 26, 118, 30, 38, 88,
786 40, 39, 38, 36, 40, 66, 67, 68, 69, 70,
788 71, 72, 73, 74, 75, 76, 77, 78, 63, 21,
790 63, 109, 91, 92, 62, 1, 2, 16, 116, 19,
792 20, 18, 101, 40, 41, 42, 43, 44, 45, 46,
794 47, 48, 49, 50, 51, 52, 53, 54, 1, 118,
796 3, 18, 39, 20, 19, 20, 19, 111, 60, 113,
798 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
800 77, 78, 21, 22, 64, 30, 39, 92, 92, 39,
802 18, 36, 20, 18, 1, 20, 101, 101, 41, 42,
804 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
806 53, 54, 1, 118, 118, 22, 87, 2, 89, 94,
808 95, 91, 98, 62, 67, 68, 69, 70, 71, 72,
810 73, 74, 75, 76, 77, 78, 21, 113, 86, 111,
812 92, 92, 111, 18, 113, 20, 20, 111, 118, 101,
814 101, 40, 41, 42, 43, 44, 45, 46, 47, 48,
816 49, 50, 51, 52, 53, 54, 1, 118, 3, 100,
818 94, 95, 18, 100, 20, 123, 111, 25, 67, 68,
820 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
822 38, 92, 92, 20, 3, 3, 92, 20, 40, 64,
824 101, 101, 19, 3, 19, 101, 41, 42, 43, 44,
826 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
828 1, 2, 118, 20, 19, 64, 20, 19, 21, 98,
830 20, 98, 67, 68, 69, 70, 71, 72, 73, 74,
832 75, 76, 77, 78, 113, 22, 113, 60, 27, 20,
834 37, 20, 56, 2, 101, 1, 112, 111, 116, 111,
836 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
838 51, 52, 53, 54, 1, 113, 97, 118, 2, 119,
840 111, 97, 30, 124, 98, 62, 67, 68, 69, 70,
842 71, 72, 73, 74, 75, 76, 77, 78, 25, 113,
844 124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
846 124, 124, 124, 124, 41, 42, 43, 44, 45, 46,
848 47, 48, 49, 50, 51, 52, 53, 54, 1, 124,
850 3, 124, 124, 124, 124, 124, 124, 124, 99, 98,
852 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
854 77, 78, 113, 124, 113, 124, 124, 124, 124, 124,
856 124, 124, 124, 124, 124, 124, 124, 124, 41, 42,
858 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
860 53, 54, 1, 124, 3, 124, 124, 124, 124, 124,
862 124, 98, 98, 98, 67, 68, 69, 70, 71, 72,
864 73, 74, 75, 76, 77, 78, 113, 113, 113, 124,
866 124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
868 124, 124, 41, 42, 43, 44, 45, 46, 47, 48,
870 49, 50, 51, 52, 53, 54, 1, 124, 124, 124,
872 124, 124, 124, 124, 124, 98, 98, 124, 67, 68,
874 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
876 113, 113, 124, 124, 124, 124, 124, 124, 124, 124,
878 124, 124, 124, 124, 124, 124, 41, 42, 43, 44,
880 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
882 124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
884 22, 124, 67, 68, 69, 70, 71, 72, 73, 74,
886 75, 76, 77, 78, 124, 124, 124, 124, 41, 42,
888 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
890 53, 54, 124, 124, 124, 124, 124, 124, 60, 124,
892 124, 124, 124, 65, 67, 68, 69, 70, 71, 72,
894 73, 74, 75, 76, 77, 78, 124, 124, 124, 124,
896 124, 124, 124, 18, 19, 20, 124, 124, 23, 24,
898 124, 86, 124, 124, 29, 90, 92, 124, 33, 94,
900 35, 124, 37, 124, 39, 101, 124, 42, 103, 124,
902 124, 106, 107, 108, 124, 110, 124, 113, 92, 92,
904 124, 124, 57, 58, 59, 60, 61, 101, 101, 64,
906 65, 66, 124, 94, 124, 124, 124, 124, 124, 113,
908 113, 18, 19, 20, 79, 106, 23, 24, 124, 110,
910 124, 124, 29, 124, 124, 86, 33, 34, 35, 90,
912 37, 124, 39, 94, 92, 42, 124, 124, 124, 124,
914 86, 124, 103, 101, 90, 106, 107, 108, 94, 110,
916 57, 58, 59, 60, 61, 113, 124, 64, 65, 124,
918 106, 107, 108, 124, 110, 18, 124, 20, 124, 18,
920 19, 20, 79, 124, 23, 24, 124, 30, 124, 32,
922 29, 86, 124, 36, 33, 90, 35, 124, 37, 94,
924 39, 124, 124, 42, 124, 124, 124, 124, 124, 124,
926 124, 106, 107, 108, 124, 110, 124, 124, 57, 58,
928 59, 60, 61, 124, 124, 64, 65, 124, 124, 124,
930 124, 124, 18, 124, 20, 124, 124, 18, 19, 20,
932 79, 124, 23, 24, 30, 86, 32, 124, 29, 90,
934 36, 86, 33, 94, 35, 90, 37, 124, 39, 94,
936 124, 42, 124, 124, 124, 106, 107, 108, 124, 110,
938 124, 106, 107, 108, 124, 110, 57, 58, 59, 60,
940 61, 124, 124, 64, 65, 124, 124, 124, 124, 124,
942 124, 124, 124, 124, 124, 18, 19, 20, 79, 124,
944 23, 24, 124, 124, 124, 124, 29, 86, 124, 124,
946 33, 90, 35, 124, 37, 94, 39, 124, 124, 42,
948 124, 124, 124, 124, 124, 124, 124, 106, 107, 108,
950 124, 110, 124, 124, 57, 58, 59, 60, 61, 124,
952 124, 64, 65, 124, 124, 124, 124, 124, 124, 124,
954 124, 124, 124, 18, 19, 20, 79, 124, 23, 24,
956 124, 124, 124, 124, 29, 86, 124, 124, 33, 90,
958 35, 124, 37, 94, 39, 124, 124, 42, 124, 124,
960 124, 124, 124, 124, 124, 106, 107, 108, 124, 110,
962 124, 124, 57, 58, 59, 60, 61, 124, 124, 64,
964 65, 124, 124, 124, 124, 124, 124, 124, 124, 124,
966 124, 18, 19, 20, 79, 124, 23, 24, 124, 124,
968 124, 124, 29, 86, 124, 124, 33, 90, 35, 124,
970 37, 94, 39, 124, 124, 42, 124, 124, 124, 124,
972 124, 124, 124, 106, 107, 108, 124, 110, 124, 124,
974 57, 58, 59, 60, 61, 124, 124, 64, 65, 124,
976 1, 124, 3, 124, 124, 124, 124, 124, 124, 18,
978 19, 20, 79, 124, 23, 24, 124, 124, 124, 124,
980 29, 22, 124, 124, 33, 124, 35, 124, 37, 30,
982 39, 91, 92, 42, 124, 36, 124, 124, 39, 124,
984 124, 101, 124, 124, 104, 105, 124, 124, 57, 58,
986 59, 60, 61, 124, 124, 64, 65, 124, 118, 124,
988 124, 62, 124, 124, 124, 3, 124, 18, 19, 20,
990 79, 124, 23, 24, 124, 124, 124, 124, 29, 124,
992 124, 124, 33, 21, 35, 124, 37, 124, 39, 91,
994 92, 42, 30, 124, 124, 124, 124, 124, 36, 101,
996 124, 39, 104, 105, 124, 124, 57, 58, 59, 60,
998 61, 124, 124, 64, 65, 124, 118, 124, 124, 124,
1000 124, 124, 124, 124, 62, 18, 19, 20, 79, 124,
1002 23, 24, 124, 124, 124, 124, 29, 124, 124, 124,
1004 33, 124, 35, 124, 37, 124, 39, 91, 92, 42,
1006 124, 124, 124, 124, 124, 124, 124, 101, 124, 124,
1008 104, 105, 124, 124, 57, 58, 59, 60, 61, 124,
1010 124, 64, 124, 124, 118, 124, 124, 124, 124, 124,
1012 124, 124, 124, 18, 19, 20, 79, 124, 23, 24,
1014 124, 124, 124, 124, 29, 124, 124, 124, 33, 124,
1016 35, 124, 37, 124, 39, 124, 3, 42, 124, 124,
1018 124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
1020 124, 124, 57, 58, 59, 60, 61, 124, 25, 64,
1022 27, 28, 124, 30, 31, 124, 124, 124, 124, 36,
1024 124, 38, 39, 40, 79, 124, 124, 124, 124, 124,
1026 124, 124, 124, 124, 124, 86, 124, 124, 55, 90,
1028 124, 124, 93, 94, 124, 62, 124, 124, 124, 66,
1030 124, 102, 103, 124, 124, 106, 107, 108, 124, 110,
1032 124, 124, 124, 80, 124, 124, 124, 86, 124, 120,
1034 121, 90, 124, 124, 93, 94, 124, 124, 124, 124,
1036 124, 124, 124, 102, 103, 124, 124, 106, 107, 108,
1038 86, 110, 124, 124, 90, 124, 124, 93, 94, 95,
1040 124, 86, 121, 124, 124, 90, 102, 103, 93, 94,
1042 106, 107, 108, 124, 110, 124, 124, 102, 103, 124,
1044 124, 106, 107, 108, 124, 110, 86, 124, 124, 124,
1046 90, 124, 117, 93, 94, 124, 124, 124, 124, 124,
1048 124, 124, 102, 103, 124, 124, 106, 107, 108, 124,
1050 110, 124, 124, 124, 86, 91, 92, 117, 90, 124,
1052 124, 93, 94, 95, 124, 101, 124, 124, 104, 105,
1054 102, 103, 124, 124, 106, 107, 108, 86, 110, 124,
1056 124, 90, 118, 124, 93, 94, 124, 124, 124, 124,
1058 124, 124, 124, 102, 103, 124, 86, 106, 107, 108,
1060 90, 110, 124, 93, 94, 124, 124, 124, 117, 124,
1062 124, 124, 102, 103, 124, 124, 106, 107, 108, 86,
1064 110, 124, 124, 90, 124, 124, 93, 94, 124, 124,
1066 86, 124, 124, 124, 90, 102, 103, 93, 94, 106,
1068 107, 108, 124, 110, 124, 124, 102, 103, 124, 86,
1070 106, 107, 108, 90, 110, 124, 93, 94, 124, 124,
1072 124, 124, 124, 124, 124, 102, 103, 124, 86, 106,
1074 107, 108, 90, 110, 124, 93, 94, 124, 124, 124,
1076 124, 124, 124, 124, 102, 103, 124, 86, 106, 107,
1078 108, 90, 110, 124, 93, 94, 124, 124, 124, 124,
1080 124, 124, 124, 102, 103, 124, 86, 106, 107, 108,
1082 90, 110, 124, 93, 94, 124, 124, 86, 124, 124,
1084 124, 90, 102, 103, 93, 94, 106, 107, 108, 124,
1086 110, 124, 124, 102, 103, 124, 86, 106, 107, 108,
1088 90, 110, 124, 93, 94, 124, 124, 124, 124, 124,
1090 124, 124, 102, 103, 124, 86, 106, 107, 108, 90,
1092 110, 124, 93, 94, 124, 124, 124, 124, 124, 124,
1094 124, 102, 103, 124, 86, 106, 107, 108, 90, 110,
1096 124, 93, 94, 124, 124, 124, 124, 124, 124, 124,
1098 102, 103, 124, 86, 106, 107, 108, 90, 110, 124,
1100 93, 94, 124, 124, 86, 124, 124, 124, 90, 102,
1102 103, 93, 94, 106, 107, 108, 124, 110, 124, 124,
1104 102, 103, 11, 124, 106, 107, 108, 124, 110, 18,
1106 124, 124, 124, 124, 23, 24, 124, 124, 124, 124,
1108 29, 124, 124, 86, 33, 124, 35, 90, 124, 124,
1110 93, 94, 124, 124, 124, 124, 124, 124, 124, 102,
1112 103, 124, 86, 106, 107, 108, 90, 110, 124, 93,
1114 94, 124, 124, 124, 124, 124, 124, 124, 102, 103,
1116 124, 86, 106, 107, 108, 90, 110, 124, 93, 94,
1118 79, 80, 81, 124, 124, 124, 124, 102, 103, 124,
1120 86, 106, 107, 108, 90, 110, 124, 93, 94, 124,
1122 124, 86, 124, 124, 124, 90, 102, 103, 93, 94,
1124 106, 107, 108, 124, 110, 124, 124, 102, 103, 124,
1126 86, 106, 107, 108, 90, 110, 124, 93, 94, 124,
1128 124, 124, 124, 124, 124, 124, 102, 103, 124, 11,
1130 106, 107, 108, 124, 110, 124, 18, 124, 124, 124,
1132 124, 23, 24, 124, 124, 124, 124, 29, 86, 124,
1134 124, 33, 90, 35, 124, 93, 94, 124, 124, 86,
1136 124, 124, 124, 90, 102, 103, 93, 94, 106, 107,
1138 108, 124, 110, 124, 124, 102, 103, 124, 124, 106,
1140 107, 108, 124, 110, 86, 124, 124, 124, 90, 124,
1142 124, 93, 94, 124, 124, 124, 124, 79, 80, 81,
1144 102, 103, 124, 124, 106, 107, 108, 124, 110, 124,
1146 124, 124, 124, 86, 124, 124, 124, 90, 124, 124,
1148 93, 94, 124, 124, 124, 124, 91, 92, 124, 102,
1150 103, 124, 124, 106, 107, 108, 101, 110, 86, 104,
1152 105, 124, 90, 124, 124, 93, 94, 124, 124, 124,
1154 124, 124, 124, 118, 102, 103, 124, 86, 106, 107,
1156 108, 90, 110, 124, 93, 94, 124, 124, 86, 124,
1158 124, 124, 90, 102, 103, 93, 94, 106, 107, 108,
1160 124, 110, 124, 124, 102, 103, 124, 86, 106, 107,
1162 108, 90, 110, 124, 93, 94, 124, 124, 124, 124,
1164 91, 92, 124, 102, 103, 124, 124, 106, 107, 108,
1166 101, 110, 124, 104, 105, 124, 86, 124, 124, 124,
1168 90, 124, 124, 93, 94, 124, 124, 118, 124, 124,
1170 124, 124, 102, 103, 124, 124, 106, 107, 108, 124,
1172 110, 86, 124, 124, 124, 90, 124, 124, 93, 94,
1174 124, 124, 86, 124, 124, 124, 90, 102, 103, 93,
1176 94, 106, 107, 108, 124, 110, 124, 124, 102, 103,
1178 124, 86, 106, 107, 108, 90, 110, 124, 93, 94,
1180 124, 124, 86, 124, 124, 124, 90, 102, 103, 93,
1182 94, 106, 107, 108, 124, 110, 124, 124, 102, 103,
1184 124, 124, 106, 107, 108, 124, 110, 86, 124, 124,
1186 124, 90, 124, 124, 93, 94, 124, 124, 124, 124,
1188 124, 124, 124, 102, 103, 124, 124, 106, 107, 108,
1190 124, 110, 86, 124, 124, 124, 90, 124, 124, 93,
1192 94, 124, 124, 86, 124, 124, 124, 90, 102, 103,
1194 93, 94, 106, 107, 108, 124, 110, 124, 124, 102,
1196 103, 124, 86, 106, 107, 108, 90, 110, 124, 93,
1198 94, 124, 124, 124, 124, 124, 124, 124, 102, 103,
1200 124, 124, 106, 107, 108, 124, 110,
1202 const YY_SHIFT_USE_DFLT = - 53;
1203 const YY_SHIFT_MAX = 259;
1204 static public $yy_shift_ofst = array(
1206 - 3, 1213, 981, 1155, 1213, 1155, 981, 981, 923, 923,
1208 865, 981, 981, 1097, 981, 981, 981, 981, 981, 981,
1210 981, 1329, 981, 981, 981, 981, 1271, 981, 981, 981,
1212 1097, 981, 981, 981, 981, 981, 981, 981, 981, 981,
1214 981, 981, 981, 981, 1039, 1039, 1387, 1387, 1445, 1387,
1216 1387, 1387, 1387, - 1, 53, 107, 107, 107, 107, 107,
1218 485, 431, 593, 647, 701, 323, 161, 215, 377, 269,
1220 539, 755, 755, 755, 755, 755, 755, 755, 755, 755,
1222 755, 755, 755, 755, 755, 755, 755, 755, 755, 755,
1224 797, 797, 1279, 110, 297, - 3, 2038, 977, 1034, 191,
1226 - 2, 191, - 2, 297, 297, 798, 340, 354, 367, 1911,
1228 181, 54, 57, 163, 199, 285, 19, 151, 167, 70,
1230 78, 381, 367, 543, 363, - 17, 375, 365, 363, 246,
1232 363, 395, 392, - 17, 363, 363, 363, 367, 363, 445,
1234 413, 363, 395, 363, 474, 365, 574, 204, 204, 574,
1236 574, 574, 574, 574, 574, 574, 574, - 53, 255, 233,
1238 - 17, - 27, - 29, - 17, - 17, - 17, - 29, - 17, - 29, - 27,
1240 - 17, - 17, - 17, - 29, - 17, - 17, - 29, - 17, - 17, - 17,
1242 - 17, - 17, - 17, - 17, - 17, - 17, - 29, - 29, - 17, 343,
1244 574, 574, 574, 596, 596, 574, 574, 204, 572, 572,
1246 204, 341, 204, 370, - 53, - 53, - 53, - 53, - 53, 1483,
1248 1342, 98, 76, 210, 435, 212, 328, 299, 81, 287,
1250 472, 294, 217, 290, 292, 292, 370, 511, 455, 505,
1252 520, 528, 478, 481, 541, 527, 446, 15, 114, - 14,
1254 533, 130, 493, 497, 503, 523, 512, 525, 549, 551,
1256 507, 526, 530, 516, 571, 137, 119, - 52, 69, 171,
1258 const YY_REDUCE_USE_DFLT = - 73;
1259 const YY_REDUCE_MAX = 208;
1260 static public $yy_reduce_ofst = array(
1262 - 22, 1449, 1540, 1504, 1481, 1568, 1515, 1591, 1925, 2072,
1264 1750, 1818, 1895, 1644, 1663, 1914, 2205, 2277, 1876, 1731,
1266 1857, 1633, 1701, 2186, 2150, 2296, 2266, 2091, 2047, 1993,
1268 2241, 2102, 1720, 1788, 1982, 1769, 1807, 1610, 1682, 2175,
1270 2216, 2121, 1944, 2018, 805, 869, 884, 979, 925, 985,
1272 1041, 1157, 1099, 1220, 1336, 2129, 1278, 1336, 1564, 2055,
1274 190, 190, 190, 190, 190, 190, 190, 190, 190, 190,
1276 190, 190, 190, 190, 190, 190, 190, 190, 190, 190,
1278 190, 190, 190, 190, 190, 190, 190, 190, 190, 190,
1280 190, 190, 261, 208, 153, 193, 154, 827, 826, 369,
1282 804, 315, 872, 316, 424, - 34, 839, 82, - 72, 372,
1284 349, - 32, - 32, - 32, 559, 351, 351, 351, - 32, 30,
1286 - 32, 30, 345, 30, 453, 420, 368, 242, 344, - 32,
1288 276, 561, 451, 419, 506, 615, 668, 396, 613, 615,
1290 350, 614, 615, 667, 615, 139, - 32, 30, 109, - 32,
1292 - 32, - 32, - 32, - 32, - 32, - 32, 23, - 32, 462, 482,
1294 473, 466, 464, 473, 473, 473, 464, 473, 464, 468,
1296 473, 473, 473, 464, 473, 473, 464, 473, 473, 473,
1298 473, 473, 473, 473, 473, 473, 464, 464, 473, 489,
1300 479, 479, 479, 480, 480, 479, 479, 189, 504, 499,
1302 189, 241, 189, 348, 356, 393, 389, 95, 385,
1304 static public $yyExpectedTokens = array(
1306 array(4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18, 23, 24, 29, 33, 35,),
1308 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1310 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1312 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1314 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1316 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1318 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1320 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1322 array(18, 19, 20, 23, 24, 29, 33, 34, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1324 array(18, 19, 20, 23, 24, 29, 33, 34, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1326 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 66, 79,),
1328 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1330 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1332 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1334 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1336 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1338 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1340 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1342 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1344 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1346 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1348 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1350 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1352 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1354 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1356 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1358 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1360 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1362 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1364 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1366 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1368 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1370 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1372 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1374 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1376 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1378 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1380 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1382 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1384 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1386 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1388 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1390 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1392 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1394 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1396 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1398 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 79,),
1400 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 79,),
1402 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 79,),
1404 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 79,),
1406 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 79,),
1408 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 79,),
1410 array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 79,),
1412 array(1, 28, 30, 36, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1414 array(1, 3, 30, 36, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1416 array(1, 30, 36, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1418 array(1, 30, 36, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1420 array(1, 30, 36, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1422 array(1, 30, 36, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1424 array(1, 30, 36, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1426 array(1, 3, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1428 array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1430 array(1, 25, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1432 array(1, 3, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1434 array(1, 3, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1436 array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1438 array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 80,),
1440 array(1, 31, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1442 array(1, 3, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1444 array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1446 array(1, 2, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1448 array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1450 array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1452 array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1454 array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1456 array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1458 array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1460 array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1462 array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1464 array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1466 array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1468 array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1470 array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1472 array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1474 array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1476 array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1478 array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1480 array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1482 array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1484 array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1486 array(41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1488 array(41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1490 array(1, 3, 22, 30, 36, 39, 62,),
1492 array(1, 3, 30, 36, 55,),
1496 array(4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18, 23, 24, 29, 33, 35,),
1498 array(11, 18, 23, 24, 29, 33, 35, 79, 80, 81,),
1500 array(18, 20, 30, 32, 36,),
1502 array(18, 20, 30, 32, 36,),
1504 array(1, 3, 30, 36,),
1506 array(18, 20, 30, 36,),
1508 array(1, 3, 30, 36,),
1510 array(18, 20, 30, 36,),
1524 array(11, 18, 23, 24, 29, 33, 35, 79, 80, 81,),
1526 array(5, 6, 7, 8, 9, 15, 16, 17,),
1528 array(1, 3, 30, 31, 36, 55,),
1530 array(1, 3, 30, 36, 55,),
1532 array(1, 3, 30, 36, 55,),
1534 array(18, 20, 21, 26,),
1536 array(18, 20, 21, 63,),
1724 array(3, 25, 27, 28, 30, 31, 36, 38, 39, 40, 55, 62, 66, 80,),
1726 array(3, 21, 30, 36, 39, 62,),
1728 array(18, 19, 20, 37,),
1730 array(39, 60, 62, 66,),
2032 static public $yy_default = array(
2034 366, 551, 522, 568, 568, 568, 522, 522, 568, 568,
2036 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
2038 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
2040 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
2042 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
2044 568, 568, 568, 428, 568, 405, 428, 428, 428, 397,
2046 568, 568, 568, 568, 568, 568, 568, 433, 568, 568,
2048 568, 553, 449, 520, 552, 457, 433, 452, 439, 462,
2050 521, 461, 430, 435, 554, 438, 454, 453, 410, 458,
2052 466, 465, 477, 441, 428, 363, 568, 428, 428, 485,
2054 428, 448, 428, 428, 428, 534, 568, 419, 568, 568,
2056 568, 441, 441, 441, 568, 495, 495, 495, 441, 486,
2058 441, 486, 568, 486, 568, 428, 428, 568, 568, 441,
2060 495, 568, 568, 407, 568, 568, 568, 568, 568, 568,
2062 422, 568, 568, 568, 568, 568, 451, 486, 531, 464,
2064 446, 445, 468, 444, 469, 470, 424, 529, 568, 496,
2066 395, 489, 492, 412, 392, 406, 514, 409, 490, 491,
2068 413, 394, 398, 513, 393, 408, 493, 400, 417, 402,
2070 415, 404, 414, 418, 416, 403, 515, 512, 399, 495,
2072 448, 420, 485, 523, 524, 423, 425, 532, 567, 567,
2074 509, 383, 535, 495, 495, 528, 528, 528, 495, 443,
2076 477, 568, 477, 477, 507, 568, 473, 467, 568, 568,
2078 568, 568, 467, 568, 477, 463, 507, 568, 568, 568,
2080 568, 568, 568, 568, 436, 568, 568, 507, 568, 533,
2082 568, 475, 568, 568, 568, 568, 568, 568, 568, 568,
2084 473, 568, 568, 479, 507, 467, 568, 568, 568, 568,
2086 508, 429, 437, 364, 501, 519, 503, 440, 500, 479,
2088 566, 516, 517, 502, 504, 518, 411, 530, 459, 506,
2090 507, 527, 525, 427, 426, 388, 389, 390, 526, 471,
2092 443, 487, 494, 497, 442, 482, 472, 474, 476, 387,
2094 386, 371, 372, 373, 374, 370, 369, 365, 367, 368,
2096 375, 376, 382, 384, 385, 381, 380, 377, 378, 379,
2098 505, 498, 510, 421, 562, 555, 563, 447, 545, 546,
2100 547, 556, 557, 558, 548, 550, 565, 564, 560, 559,
2102 561, 544, 543, 450, 484, 488, 511, 483, 481, 499,
2104 478, 480, 455, 456, 540, 541, 542, 539, 538, 460,
2108 const YYNOCODE = 125;
2109 const YYSTACKDEPTH = 500;
2110 const YYNSTATE = 363;
2111 const YYNRULE = 205;
2112 const YYERRORSYMBOL = 82;
2113 const YYERRSYMDT = 'yy0';
2114 const YYFALLBACK = 0;
2115 public static $yyFallback = array();
2117 public function Trace($TraceFILE, $zTracePrompt)
2121 } elseif (!$zTracePrompt) {
2124 $this->yyTraceFILE = $TraceFILE;
2125 $this->yyTracePrompt = $zTracePrompt;
2128 public function PrintTrace()
2130 $this->yyTraceFILE = fopen('php://output', 'w');
2131 $this->yyTracePrompt = '<br>';
2134 public $yyTraceFILE;
2135 public $yyTracePrompt;
2136 public $yyidx; /* Index of top element in stack */
2137 public $yyerrcnt; /* Shifts left before out of the error */
2138 public $yystack = array(); /* The parser's stack */
2140 public $yyTokenName = array(
2141 '$', 'VERT', 'COLON', 'RDEL',
2142 'COMMENT', 'PHPSTARTTAG', 'PHPENDTAG', 'ASPSTARTTAG',
2143 'ASPENDTAG', 'FAKEPHPSTARTTAG', 'XMLTAG', 'TEXT',
2144 'STRIPON', 'STRIPOFF', 'BLOCKSOURCE', 'LITERALSTART',
2145 'LITERALEND', 'LITERAL', 'LDEL', 'DOLLAR',
2146 'ID', 'EQUAL', 'PTR', 'LDELIF',
2147 'LDELFOR', 'SEMICOLON', 'INCDEC', 'TO',
2148 'STEP', 'LDELFOREACH', 'SPACE', 'AS',
2149 'APTR', 'LDELSETFILTER', 'SMARTYBLOCKCHILDPARENT', 'LDELSLASH',
2150 'ATTR', 'INTEGER', 'COMMA', 'OPENP',
2151 'CLOSEP', 'MATH', 'UNIMATH', 'ANDSYM',
2152 'ISIN', 'ISDIVBY', 'ISNOTDIVBY', 'ISEVEN',
2153 'ISNOTEVEN', 'ISEVENBY', 'ISNOTEVENBY', 'ISODD',
2154 'ISNOTODD', 'ISODDBY', 'ISNOTODDBY', 'INSTANCEOF',
2155 'QMARK', 'NOT', 'TYPECAST', 'HEX',
2156 'DOT', 'SINGLEQUOTESTRING', 'DOUBLECOLON', 'AT',
2157 'HATCH', 'OPENB', 'CLOSEB', 'EQUALS',
2158 'NOTEQUALS', 'GREATERTHAN', 'LESSTHAN', 'GREATEREQUAL',
2159 'LESSEQUAL', 'IDENTITY', 'NONEIDENTITY', 'MOD',
2160 'LAND', 'LOR', 'LXOR', 'QUOTE',
2161 'BACKTICK', 'DOLLARID', 'error', 'start',
2162 'template', 'template_element', 'smartytag', 'literal',
2163 'literal_elements', 'literal_element', 'value', 'modifierlist',
2164 'attributes', 'expr', 'varindexed', 'statement',
2165 'statements', 'optspace', 'varvar', 'foraction',
2166 'modparameters', 'attribute', 'ternary', 'array',
2167 'ifcond', 'lop', 'variable', 'function',
2168 'doublequoted_with_quotes', 'static_class_access', 'object', 'arrayindex',
2169 'indexdef', 'varvarele', 'objectchain', 'objectelement',
2170 'method', 'params', 'modifier', 'modparameter',
2171 'arrayelements', 'arrayelement', 'doublequoted', 'doublequotedcontent',
2174 public static $yyRuleName = array(
2176 "start ::= template",
2178 "template ::= template_element",
2180 "template ::= template template_element",
2184 "template_element ::= smartytag RDEL",
2186 "template_element ::= COMMENT",
2188 "template_element ::= literal",
2190 "template_element ::= PHPSTARTTAG",
2192 "template_element ::= PHPENDTAG",
2194 "template_element ::= ASPSTARTTAG",
2196 "template_element ::= ASPENDTAG",
2198 "template_element ::= FAKEPHPSTARTTAG",
2200 "template_element ::= XMLTAG",
2202 "template_element ::= TEXT",
2204 "template_element ::= STRIPON",
2206 "template_element ::= STRIPOFF",
2208 "template_element ::= BLOCKSOURCE",
2210 "literal ::= LITERALSTART LITERALEND",
2212 "literal ::= LITERALSTART literal_elements LITERALEND",
2214 "literal_elements ::= literal_elements literal_element",
2216 "literal_elements ::=",
2218 "literal_element ::= literal",
2220 "literal_element ::= LITERAL",
2222 "literal_element ::= PHPSTARTTAG",
2224 "literal_element ::= FAKEPHPSTARTTAG",
2226 "literal_element ::= PHPENDTAG",
2228 "literal_element ::= ASPSTARTTAG",
2230 "literal_element ::= ASPENDTAG",
2232 "smartytag ::= LDEL value",
2234 "smartytag ::= LDEL value modifierlist attributes",
2236 "smartytag ::= LDEL value attributes",
2238 "smartytag ::= LDEL expr modifierlist attributes",
2240 "smartytag ::= LDEL expr attributes",
2242 "smartytag ::= LDEL DOLLAR ID EQUAL value",
2244 "smartytag ::= LDEL DOLLAR ID EQUAL expr",
2246 "smartytag ::= LDEL DOLLAR ID EQUAL expr attributes",
2248 "smartytag ::= LDEL varindexed EQUAL expr attributes",
2250 "smartytag ::= LDEL ID attributes",
2252 "smartytag ::= LDEL ID",
2254 "smartytag ::= LDEL ID PTR ID attributes",
2256 "smartytag ::= LDEL ID modifierlist attributes",
2258 "smartytag ::= LDEL ID PTR ID modifierlist attributes",
2260 "smartytag ::= LDELIF expr",
2262 "smartytag ::= LDELIF expr attributes",
2264 "smartytag ::= LDELIF statement",
2266 "smartytag ::= LDELIF statement attributes",
2268 "smartytag ::= LDELFOR statements SEMICOLON optspace expr SEMICOLON optspace DOLLAR varvar foraction attributes",
2270 "foraction ::= EQUAL expr",
2272 "foraction ::= INCDEC",
2274 "smartytag ::= LDELFOR statement TO expr attributes",
2276 "smartytag ::= LDELFOR statement TO expr STEP expr attributes",
2278 "smartytag ::= LDELFOREACH attributes",
2280 "smartytag ::= LDELFOREACH SPACE value AS DOLLAR varvar attributes",
2282 "smartytag ::= LDELFOREACH SPACE value AS DOLLAR varvar APTR DOLLAR varvar attributes",
2284 "smartytag ::= LDELFOREACH SPACE expr AS DOLLAR varvar attributes",
2286 "smartytag ::= LDELFOREACH SPACE expr AS DOLLAR varvar APTR DOLLAR varvar attributes",
2288 "smartytag ::= LDELSETFILTER ID modparameters",
2290 "smartytag ::= LDELSETFILTER ID modparameters modifierlist",
2292 "smartytag ::= LDEL SMARTYBLOCKCHILDPARENT",
2294 "smartytag ::= LDELSLASH ID",
2296 "smartytag ::= LDELSLASH ID modifierlist",
2298 "smartytag ::= LDELSLASH ID PTR ID",
2300 "smartytag ::= LDELSLASH ID PTR ID modifierlist",
2302 "attributes ::= attributes attribute",
2304 "attributes ::= attribute",
2308 "attribute ::= SPACE ID EQUAL ID",
2310 "attribute ::= ATTR expr",
2312 "attribute ::= ATTR value",
2314 "attribute ::= SPACE ID",
2316 "attribute ::= SPACE expr",
2318 "attribute ::= SPACE value",
2320 "attribute ::= SPACE INTEGER EQUAL expr",
2322 "statements ::= statement",
2324 "statements ::= statements COMMA statement",
2326 "statement ::= DOLLAR varvar EQUAL expr",
2328 "statement ::= varindexed EQUAL expr",
2330 "statement ::= OPENP statement CLOSEP",
2336 "expr ::= DOLLAR ID COLON ID",
2338 "expr ::= expr MATH value",
2340 "expr ::= expr UNIMATH value",
2342 "expr ::= expr ANDSYM value",
2346 "expr ::= expr modifierlist",
2348 "expr ::= expr ifcond expr",
2350 "expr ::= expr ISIN array",
2352 "expr ::= expr ISIN value",
2354 "expr ::= expr lop expr",
2356 "expr ::= expr ISDIVBY expr",
2358 "expr ::= expr ISNOTDIVBY expr",
2360 "expr ::= expr ISEVEN",
2362 "expr ::= expr ISNOTEVEN",
2364 "expr ::= expr ISEVENBY expr",
2366 "expr ::= expr ISNOTEVENBY expr",
2368 "expr ::= expr ISODD",
2370 "expr ::= expr ISNOTODD",
2372 "expr ::= expr ISODDBY expr",
2374 "expr ::= expr ISNOTODDBY expr",
2376 "expr ::= value INSTANCEOF ID",
2378 "expr ::= value INSTANCEOF value",
2380 "ternary ::= OPENP expr CLOSEP QMARK DOLLAR ID COLON expr",
2382 "ternary ::= OPENP expr CLOSEP QMARK expr COLON expr",
2384 "value ::= variable",
2386 "value ::= UNIMATH value",
2388 "value ::= NOT value",
2390 "value ::= TYPECAST value",
2392 "value ::= variable INCDEC",
2396 "value ::= INTEGER",
2398 "value ::= INTEGER DOT INTEGER",
2400 "value ::= INTEGER DOT",
2402 "value ::= DOT INTEGER",
2406 "value ::= function",
2408 "value ::= OPENP expr CLOSEP",
2410 "value ::= SINGLEQUOTESTRING",
2412 "value ::= doublequoted_with_quotes",
2414 "value ::= ID DOUBLECOLON static_class_access",
2416 "value ::= varindexed DOUBLECOLON static_class_access",
2418 "value ::= smartytag RDEL",
2420 "value ::= value modifierlist",
2422 "variable ::= varindexed",
2424 "variable ::= DOLLAR varvar AT ID",
2426 "variable ::= object",
2428 "variable ::= HATCH ID HATCH",
2430 "variable ::= HATCH ID HATCH arrayindex",
2432 "variable ::= HATCH variable HATCH",
2434 "variable ::= HATCH variable HATCH arrayindex",
2436 "varindexed ::= DOLLAR varvar arrayindex",
2438 "arrayindex ::= arrayindex indexdef",
2442 "indexdef ::= DOT DOLLAR varvar",
2444 "indexdef ::= DOT DOLLAR varvar AT ID",
2446 "indexdef ::= DOT ID",
2448 "indexdef ::= DOT INTEGER",
2450 "indexdef ::= DOT LDEL expr RDEL",
2452 "indexdef ::= OPENB ID CLOSEB",
2454 "indexdef ::= OPENB ID DOT ID CLOSEB",
2456 "indexdef ::= OPENB expr CLOSEB",
2458 "indexdef ::= OPENB CLOSEB",
2460 "varvar ::= varvarele",
2462 "varvar ::= varvar varvarele",
2466 "varvarele ::= LDEL expr RDEL",
2468 "object ::= varindexed objectchain",
2470 "objectchain ::= objectelement",
2472 "objectchain ::= objectchain objectelement",
2474 "objectelement ::= PTR ID arrayindex",
2476 "objectelement ::= PTR DOLLAR varvar arrayindex",
2478 "objectelement ::= PTR LDEL expr RDEL arrayindex",
2480 "objectelement ::= PTR ID LDEL expr RDEL arrayindex",
2482 "objectelement ::= PTR method",
2484 "function ::= ID OPENP params CLOSEP",
2486 "method ::= ID OPENP params CLOSEP",
2488 "method ::= DOLLAR ID OPENP params CLOSEP",
2490 "params ::= params COMMA expr",
2496 "modifierlist ::= modifierlist modifier modparameters",
2498 "modifierlist ::= modifier modparameters",
2500 "modifier ::= VERT AT ID",
2502 "modifier ::= VERT ID",
2504 "modparameters ::= modparameters modparameter",
2506 "modparameters ::=",
2508 "modparameter ::= COLON value",
2510 "modparameter ::= COLON array",
2512 "static_class_access ::= method",
2514 "static_class_access ::= method objectchain",
2516 "static_class_access ::= ID",
2518 "static_class_access ::= DOLLAR ID arrayindex",
2520 "static_class_access ::= DOLLAR ID arrayindex objectchain",
2522 "ifcond ::= EQUALS",
2524 "ifcond ::= NOTEQUALS",
2526 "ifcond ::= GREATERTHAN",
2528 "ifcond ::= LESSTHAN",
2530 "ifcond ::= GREATEREQUAL",
2532 "ifcond ::= LESSEQUAL",
2534 "ifcond ::= IDENTITY",
2536 "ifcond ::= NONEIDENTITY",
2546 "array ::= OPENB arrayelements CLOSEB",
2548 "arrayelements ::= arrayelement",
2550 "arrayelements ::= arrayelements COMMA arrayelement",
2552 "arrayelements ::=",
2554 "arrayelement ::= value APTR expr",
2556 "arrayelement ::= ID APTR expr",
2558 "arrayelement ::= expr",
2560 "doublequoted_with_quotes ::= QUOTE QUOTE",
2562 "doublequoted_with_quotes ::= QUOTE doublequoted QUOTE",
2564 "doublequoted ::= doublequoted doublequotedcontent",
2566 "doublequoted ::= doublequotedcontent",
2568 "doublequotedcontent ::= BACKTICK variable BACKTICK",
2570 "doublequotedcontent ::= BACKTICK expr BACKTICK",
2572 "doublequotedcontent ::= DOLLARID",
2574 "doublequotedcontent ::= LDEL variable RDEL",
2576 "doublequotedcontent ::= LDEL expr RDEL",
2578 "doublequotedcontent ::= smartytag RDEL",
2580 "doublequotedcontent ::= TEXT",
2582 "optspace ::= SPACE",
2587 public function tokenName($tokenType)
2589 if ($tokenType === 0) {
2590 return 'End of Input';
2592 if ($tokenType > 0 && $tokenType < count($this->yyTokenName)) {
2593 return $this->yyTokenName[$tokenType];
2599 public static function yy_destructor($yymajor, $yypminor)
2603 break; /* If no destructor action specified: do nothing */
2607 public function yy_pop_parser_stack()
2609 if (!count($this->yystack)) {
2612 $yytos = array_pop($this->yystack);
2613 if ($this->yyTraceFILE && $this->yyidx >= 0) {
2614 fwrite($this->yyTraceFILE,
2615 $this->yyTracePrompt . 'Popping ' . $this->yyTokenName[$yytos->major] .
2618 $yymajor = $yytos->major;
2619 self::yy_destructor($yymajor, $yytos->minor);
2625 public function __destruct()
2627 while ($this->yystack !== Array()) {
2628 $this->yy_pop_parser_stack();
2630 if (is_resource($this->yyTraceFILE)) {
2631 fclose($this->yyTraceFILE);
2635 public function yy_get_expected_tokens($token)
2637 $state = $this->yystack[$this->yyidx]->stateno;
2638 $expected = self::$yyExpectedTokens[$state];
2639 if (in_array($token, self::$yyExpectedTokens[$state], true)) {
2642 $stack = $this->yystack;
2643 $yyidx = $this->yyidx;
2645 $yyact = $this->yy_find_shift_action($token);
2646 if ($yyact >= self::YYNSTATE && $yyact < self::YYNSTATE + self::YYNRULE) {
2650 if ($done ++ == 100) {
2651 $this->yyidx = $yyidx;
2652 $this->yystack = $stack;
2653 // too much recursion prevents proper detection
2655 return array_unique($expected);
2657 $yyruleno = $yyact - self::YYNSTATE;
2658 $this->yyidx -= self::$yyRuleInfo[$yyruleno]['rhs'];
2659 $nextstate = $this->yy_find_reduce_action(
2660 $this->yystack[$this->yyidx]->stateno,
2661 self::$yyRuleInfo[$yyruleno]['lhs']);
2662 if (isset(self::$yyExpectedTokens[$nextstate])) {
2663 $expected = array_merge($expected, self::$yyExpectedTokens[$nextstate]);
2664 if (in_array($token,
2665 self::$yyExpectedTokens[$nextstate], true)) {
2666 $this->yyidx = $yyidx;
2667 $this->yystack = $stack;
2669 return array_unique($expected);
2672 if ($nextstate < self::YYNSTATE) {
2673 // we need to shift a non-terminal
2675 $x = new TP_yyStackEntry;
2676 $x->stateno = $nextstate;
2677 $x->major = self::$yyRuleInfo[$yyruleno]['lhs'];
2678 $this->yystack[$this->yyidx] = $x;
2680 } elseif ($nextstate == self::YYNSTATE + self::YYNRULE + 1) {
2681 $this->yyidx = $yyidx;
2682 $this->yystack = $stack;
2683 // the last token was just ignored, we can't accept
2684 // by ignoring input, this is in essence ignoring a
2686 return array_unique($expected);
2687 } elseif ($nextstate === self::YY_NO_ACTION) {
2688 $this->yyidx = $yyidx;
2689 $this->yystack = $stack;
2690 // input accepted, but not shifted (I guess)
2693 $yyact = $nextstate;
2699 $this->yyidx = $yyidx;
2700 $this->yystack = $stack;
2702 return array_unique($expected);
2705 public function yy_is_expected_token($token)
2708 return true; // 0 is not part of this
2710 $state = $this->yystack[$this->yyidx]->stateno;
2711 if (in_array($token, self::$yyExpectedTokens[$state], true)) {
2714 $stack = $this->yystack;
2715 $yyidx = $this->yyidx;
2717 $yyact = $this->yy_find_shift_action($token);
2718 if ($yyact >= self::YYNSTATE && $yyact < self::YYNSTATE + self::YYNRULE) {
2722 if ($done ++ == 100) {
2723 $this->yyidx = $yyidx;
2724 $this->yystack = $stack;
2725 // too much recursion prevents proper detection
2729 $yyruleno = $yyact - self::YYNSTATE;
2730 $this->yyidx -= self::$yyRuleInfo[$yyruleno]['rhs'];
2731 $nextstate = $this->yy_find_reduce_action(
2732 $this->yystack[$this->yyidx]->stateno,
2733 self::$yyRuleInfo[$yyruleno]['lhs']);
2734 if (isset(self::$yyExpectedTokens[$nextstate]) &&
2735 in_array($token, self::$yyExpectedTokens[$nextstate], true)
2737 $this->yyidx = $yyidx;
2738 $this->yystack = $stack;
2742 if ($nextstate < self::YYNSTATE) {
2743 // we need to shift a non-terminal
2745 $x = new TP_yyStackEntry;
2746 $x->stateno = $nextstate;
2747 $x->major = self::$yyRuleInfo[$yyruleno]['lhs'];
2748 $this->yystack[$this->yyidx] = $x;
2750 } elseif ($nextstate == self::YYNSTATE + self::YYNRULE + 1) {
2751 $this->yyidx = $yyidx;
2752 $this->yystack = $stack;
2754 // end of input: this is valid
2757 // the last token was just ignored, we can't accept
2758 // by ignoring input, this is in essence ignoring a
2761 } elseif ($nextstate === self::YY_NO_ACTION) {
2762 $this->yyidx = $yyidx;
2763 $this->yystack = $stack;
2764 // input accepted, but not shifted (I guess)
2767 $yyact = $nextstate;
2773 $this->yyidx = $yyidx;
2774 $this->yystack = $stack;
2779 public function yy_find_shift_action($iLookAhead)
2781 $stateno = $this->yystack[$this->yyidx]->stateno;
2783 /* if ($this->yyidx < 0) return self::YY_NO_ACTION; */
2784 if (!isset(self::$yy_shift_ofst[$stateno])) {
2786 return self::$yy_default[$stateno];
2788 $i = self::$yy_shift_ofst[$stateno];
2789 if ($i === self::YY_SHIFT_USE_DFLT) {
2790 return self::$yy_default[$stateno];
2792 if ($iLookAhead == self::YYNOCODE) {
2793 return self::YY_NO_ACTION;
2796 if ($i < 0 || $i >= self::YY_SZ_ACTTAB ||
2797 self::$yy_lookahead[$i] != $iLookAhead
2799 if (count(self::$yyFallback) && $iLookAhead < count(self::$yyFallback)
2800 && ($iFallback = self::$yyFallback[$iLookAhead]) != 0
2802 if ($this->yyTraceFILE) {
2803 fwrite($this->yyTraceFILE, $this->yyTracePrompt . "FALLBACK " .
2804 $this->yyTokenName[$iLookAhead] . " => " .
2805 $this->yyTokenName[$iFallback] . "\n");
2808 return $this->yy_find_shift_action($iFallback);
2811 return self::$yy_default[$stateno];
2813 return self::$yy_action[$i];
2817 public function yy_find_reduce_action($stateno, $iLookAhead)
2819 /* $stateno = $this->yystack[$this->yyidx]->stateno; */
2821 if (!isset(self::$yy_reduce_ofst[$stateno])) {
2822 return self::$yy_default[$stateno];
2824 $i = self::$yy_reduce_ofst[$stateno];
2825 if ($i == self::YY_REDUCE_USE_DFLT) {
2826 return self::$yy_default[$stateno];
2828 if ($iLookAhead == self::YYNOCODE) {
2829 return self::YY_NO_ACTION;
2832 if ($i < 0 || $i >= self::YY_SZ_ACTTAB ||
2833 self::$yy_lookahead[$i] != $iLookAhead
2835 return self::$yy_default[$stateno];
2837 return self::$yy_action[$i];
2841 public function yy_shift($yyNewState, $yyMajor, $yypMinor)
2844 if ($this->yyidx >= self::YYSTACKDEPTH) {
2846 if ($this->yyTraceFILE) {
2847 fprintf($this->yyTraceFILE, "%sStack Overflow!\n", $this->yyTracePrompt);
2849 while ($this->yyidx >= 0) {
2850 $this->yy_pop_parser_stack();
2852 #line 85 "smarty_internal_templateparser.y"
2854 $this->internalError = true;
2855 $this->compiler->trigger_template_error("Stack overflow in template parser");
2856 #line 1707 "smarty_internal_templateparser.php"
2860 $yytos = new TP_yyStackEntry;
2861 $yytos->stateno = $yyNewState;
2862 $yytos->major = $yyMajor;
2863 $yytos->minor = $yypMinor;
2864 array_push($this->yystack, $yytos);
2865 if ($this->yyTraceFILE && $this->yyidx > 0) {
2866 fprintf($this->yyTraceFILE, "%sShift %d\n", $this->yyTracePrompt,
2868 fprintf($this->yyTraceFILE, "%sStack:", $this->yyTracePrompt);
2869 for ($i = 1; $i <= $this->yyidx; $i ++) {
2870 fprintf($this->yyTraceFILE, " %s",
2871 $this->yyTokenName[$this->yystack[$i]->major]);
2873 fwrite($this->yyTraceFILE, "\n");
2877 public static $yyRuleInfo = array(
2878 array('lhs' => 83, 'rhs' => 1),
2879 array('lhs' => 84, 'rhs' => 1),
2880 array('lhs' => 84, 'rhs' => 2),
2881 array('lhs' => 84, 'rhs' => 0),
2882 array('lhs' => 85, 'rhs' => 2),
2883 array('lhs' => 85, 'rhs' => 1),
2884 array('lhs' => 85, 'rhs' => 1),
2885 array('lhs' => 85, 'rhs' => 1),
2886 array('lhs' => 85, 'rhs' => 1),
2887 array('lhs' => 85, 'rhs' => 1),
2888 array('lhs' => 85, 'rhs' => 1),
2889 array('lhs' => 85, 'rhs' => 1),
2890 array('lhs' => 85, 'rhs' => 1),
2891 array('lhs' => 85, 'rhs' => 1),
2892 array('lhs' => 85, 'rhs' => 1),
2893 array('lhs' => 85, 'rhs' => 1),
2894 array('lhs' => 85, 'rhs' => 1),
2895 array('lhs' => 87, 'rhs' => 2),
2896 array('lhs' => 87, 'rhs' => 3),
2897 array('lhs' => 88, 'rhs' => 2),
2898 array('lhs' => 88, 'rhs' => 0),
2899 array('lhs' => 89, 'rhs' => 1),
2900 array('lhs' => 89, 'rhs' => 1),
2901 array('lhs' => 89, 'rhs' => 1),
2902 array('lhs' => 89, 'rhs' => 1),
2903 array('lhs' => 89, 'rhs' => 1),
2904 array('lhs' => 89, 'rhs' => 1),
2905 array('lhs' => 89, 'rhs' => 1),
2906 array('lhs' => 86, 'rhs' => 2),
2907 array('lhs' => 86, 'rhs' => 4),
2908 array('lhs' => 86, 'rhs' => 3),
2909 array('lhs' => 86, 'rhs' => 4),
2910 array('lhs' => 86, 'rhs' => 3),
2911 array('lhs' => 86, 'rhs' => 5),
2912 array('lhs' => 86, 'rhs' => 5),
2913 array('lhs' => 86, 'rhs' => 6),
2914 array('lhs' => 86, 'rhs' => 5),
2915 array('lhs' => 86, 'rhs' => 3),
2916 array('lhs' => 86, 'rhs' => 2),
2917 array('lhs' => 86, 'rhs' => 5),
2918 array('lhs' => 86, 'rhs' => 4),
2919 array('lhs' => 86, 'rhs' => 6),
2920 array('lhs' => 86, 'rhs' => 2),
2921 array('lhs' => 86, 'rhs' => 3),
2922 array('lhs' => 86, 'rhs' => 2),
2923 array('lhs' => 86, 'rhs' => 3),
2924 array('lhs' => 86, 'rhs' => 11),
2925 array('lhs' => 99, 'rhs' => 2),
2926 array('lhs' => 99, 'rhs' => 1),
2927 array('lhs' => 86, 'rhs' => 5),
2928 array('lhs' => 86, 'rhs' => 7),
2929 array('lhs' => 86, 'rhs' => 2),
2930 array('lhs' => 86, 'rhs' => 7),
2931 array('lhs' => 86, 'rhs' => 10),
2932 array('lhs' => 86, 'rhs' => 7),
2933 array('lhs' => 86, 'rhs' => 10),
2934 array('lhs' => 86, 'rhs' => 3),
2935 array('lhs' => 86, 'rhs' => 4),
2936 array('lhs' => 86, 'rhs' => 2),
2937 array('lhs' => 86, 'rhs' => 2),
2938 array('lhs' => 86, 'rhs' => 3),
2939 array('lhs' => 86, 'rhs' => 4),
2940 array('lhs' => 86, 'rhs' => 5),
2941 array('lhs' => 92, 'rhs' => 2),
2942 array('lhs' => 92, 'rhs' => 1),
2943 array('lhs' => 92, 'rhs' => 0),
2944 array('lhs' => 101, 'rhs' => 4),
2945 array('lhs' => 101, 'rhs' => 2),
2946 array('lhs' => 101, 'rhs' => 2),
2947 array('lhs' => 101, 'rhs' => 2),
2948 array('lhs' => 101, 'rhs' => 2),
2949 array('lhs' => 101, 'rhs' => 2),
2950 array('lhs' => 101, 'rhs' => 4),
2951 array('lhs' => 96, 'rhs' => 1),
2952 array('lhs' => 96, 'rhs' => 3),
2953 array('lhs' => 95, 'rhs' => 4),
2954 array('lhs' => 95, 'rhs' => 3),
2955 array('lhs' => 95, 'rhs' => 3),
2956 array('lhs' => 93, 'rhs' => 1),
2957 array('lhs' => 93, 'rhs' => 1),
2958 array('lhs' => 93, 'rhs' => 4),
2959 array('lhs' => 93, 'rhs' => 3),
2960 array('lhs' => 93, 'rhs' => 3),
2961 array('lhs' => 93, 'rhs' => 3),
2962 array('lhs' => 93, 'rhs' => 1),
2963 array('lhs' => 93, 'rhs' => 2),
2964 array('lhs' => 93, 'rhs' => 3),
2965 array('lhs' => 93, 'rhs' => 3),
2966 array('lhs' => 93, 'rhs' => 3),
2967 array('lhs' => 93, 'rhs' => 3),
2968 array('lhs' => 93, 'rhs' => 3),
2969 array('lhs' => 93, 'rhs' => 3),
2970 array('lhs' => 93, 'rhs' => 2),
2971 array('lhs' => 93, 'rhs' => 2),
2972 array('lhs' => 93, 'rhs' => 3),
2973 array('lhs' => 93, 'rhs' => 3),
2974 array('lhs' => 93, 'rhs' => 2),
2975 array('lhs' => 93, 'rhs' => 2),
2976 array('lhs' => 93, 'rhs' => 3),
2977 array('lhs' => 93, 'rhs' => 3),
2978 array('lhs' => 93, 'rhs' => 3),
2979 array('lhs' => 93, 'rhs' => 3),
2980 array('lhs' => 102, 'rhs' => 8),
2981 array('lhs' => 102, 'rhs' => 7),
2982 array('lhs' => 90, 'rhs' => 1),
2983 array('lhs' => 90, 'rhs' => 2),
2984 array('lhs' => 90, 'rhs' => 2),
2985 array('lhs' => 90, 'rhs' => 2),
2986 array('lhs' => 90, 'rhs' => 2),
2987 array('lhs' => 90, 'rhs' => 1),
2988 array('lhs' => 90, 'rhs' => 1),
2989 array('lhs' => 90, 'rhs' => 3),
2990 array('lhs' => 90, 'rhs' => 2),
2991 array('lhs' => 90, 'rhs' => 2),
2992 array('lhs' => 90, 'rhs' => 1),
2993 array('lhs' => 90, 'rhs' => 1),
2994 array('lhs' => 90, 'rhs' => 3),
2995 array('lhs' => 90, 'rhs' => 1),
2996 array('lhs' => 90, 'rhs' => 1),
2997 array('lhs' => 90, 'rhs' => 3),
2998 array('lhs' => 90, 'rhs' => 3),
2999 array('lhs' => 90, 'rhs' => 2),
3000 array('lhs' => 90, 'rhs' => 2),
3001 array('lhs' => 106, 'rhs' => 1),
3002 array('lhs' => 106, 'rhs' => 4),
3003 array('lhs' => 106, 'rhs' => 1),
3004 array('lhs' => 106, 'rhs' => 3),
3005 array('lhs' => 106, 'rhs' => 4),
3006 array('lhs' => 106, 'rhs' => 3),
3007 array('lhs' => 106, 'rhs' => 4),
3008 array('lhs' => 94, 'rhs' => 3),
3009 array('lhs' => 111, 'rhs' => 2),
3010 array('lhs' => 111, 'rhs' => 0),
3011 array('lhs' => 112, 'rhs' => 3),
3012 array('lhs' => 112, 'rhs' => 5),
3013 array('lhs' => 112, 'rhs' => 2),
3014 array('lhs' => 112, 'rhs' => 2),
3015 array('lhs' => 112, 'rhs' => 4),
3016 array('lhs' => 112, 'rhs' => 3),
3017 array('lhs' => 112, 'rhs' => 5),
3018 array('lhs' => 112, 'rhs' => 3),
3019 array('lhs' => 112, 'rhs' => 2),
3020 array('lhs' => 98, 'rhs' => 1),
3021 array('lhs' => 98, 'rhs' => 2),
3022 array('lhs' => 113, 'rhs' => 1),
3023 array('lhs' => 113, 'rhs' => 3),
3024 array('lhs' => 110, 'rhs' => 2),
3025 array('lhs' => 114, 'rhs' => 1),
3026 array('lhs' => 114, 'rhs' => 2),
3027 array('lhs' => 115, 'rhs' => 3),
3028 array('lhs' => 115, 'rhs' => 4),
3029 array('lhs' => 115, 'rhs' => 5),
3030 array('lhs' => 115, 'rhs' => 6),
3031 array('lhs' => 115, 'rhs' => 2),
3032 array('lhs' => 107, 'rhs' => 4),
3033 array('lhs' => 116, 'rhs' => 4),
3034 array('lhs' => 116, 'rhs' => 5),
3035 array('lhs' => 117, 'rhs' => 3),
3036 array('lhs' => 117, 'rhs' => 1),
3037 array('lhs' => 117, 'rhs' => 0),
3038 array('lhs' => 91, 'rhs' => 3),
3039 array('lhs' => 91, 'rhs' => 2),
3040 array('lhs' => 118, 'rhs' => 3),
3041 array('lhs' => 118, 'rhs' => 2),
3042 array('lhs' => 100, 'rhs' => 2),
3043 array('lhs' => 100, 'rhs' => 0),
3044 array('lhs' => 119, 'rhs' => 2),
3045 array('lhs' => 119, 'rhs' => 2),
3046 array('lhs' => 109, 'rhs' => 1),
3047 array('lhs' => 109, 'rhs' => 2),
3048 array('lhs' => 109, 'rhs' => 1),
3049 array('lhs' => 109, 'rhs' => 3),
3050 array('lhs' => 109, 'rhs' => 4),
3051 array('lhs' => 104, 'rhs' => 1),
3052 array('lhs' => 104, 'rhs' => 1),
3053 array('lhs' => 104, 'rhs' => 1),
3054 array('lhs' => 104, 'rhs' => 1),
3055 array('lhs' => 104, 'rhs' => 1),
3056 array('lhs' => 104, 'rhs' => 1),
3057 array('lhs' => 104, 'rhs' => 1),
3058 array('lhs' => 104, 'rhs' => 1),
3059 array('lhs' => 104, 'rhs' => 1),
3060 array('lhs' => 105, 'rhs' => 1),
3061 array('lhs' => 105, 'rhs' => 1),
3062 array('lhs' => 105, 'rhs' => 1),
3063 array('lhs' => 103, 'rhs' => 3),
3064 array('lhs' => 120, 'rhs' => 1),
3065 array('lhs' => 120, 'rhs' => 3),
3066 array('lhs' => 120, 'rhs' => 0),
3067 array('lhs' => 121, 'rhs' => 3),
3068 array('lhs' => 121, 'rhs' => 3),
3069 array('lhs' => 121, 'rhs' => 1),
3070 array('lhs' => 108, 'rhs' => 2),
3071 array('lhs' => 108, 'rhs' => 3),
3072 array('lhs' => 122, 'rhs' => 2),
3073 array('lhs' => 122, 'rhs' => 1),
3074 array('lhs' => 123, 'rhs' => 3),
3075 array('lhs' => 123, 'rhs' => 3),
3076 array('lhs' => 123, 'rhs' => 1),
3077 array('lhs' => 123, 'rhs' => 3),
3078 array('lhs' => 123, 'rhs' => 3),
3079 array('lhs' => 123, 'rhs' => 2),
3080 array('lhs' => 123, 'rhs' => 1),
3081 array('lhs' => 97, 'rhs' => 1),
3082 array('lhs' => 97, 'rhs' => 0),
3085 public static $yyReduceMap = array(
3292 #line 96 "smarty_internal_templateparser.y"
3295 $this->_retvalue = $this->root_buffer->to_smarty_php();
3297 #line 2146 "smarty_internal_templateparser.php"
3298 #line 104 "smarty_internal_templateparser.y"
3301 if ($this->yystack[$this->yyidx + 0]->minor != null) {
3302 $this->current_buffer->append_subtree($this->yystack[$this->yyidx + 0]->minor);
3305 #line 2153 "smarty_internal_templateparser.php"
3306 #line 124 "smarty_internal_templateparser.y"
3309 if ($this->compiler->has_code) {
3311 foreach ($this->compiler->prefix_code as $code) {
3314 $this->compiler->prefix_code = array();
3315 $this->_retvalue = new _smarty_tag($this, $this->compiler->processNocacheCode($tmp . $this->yystack[$this->yyidx + - 1]->minor, true));
3317 $this->_retvalue = null;
3319 $this->compiler->has_variable_string = false;
3320 $this->block_nesting_level = count($this->compiler->_tag_stack);
3322 #line 2165 "smarty_internal_templateparser.php"
3323 #line 136 "smarty_internal_templateparser.y"
3326 $this->_retvalue = null;
3328 #line 2170 "smarty_internal_templateparser.php"
3329 #line 141 "smarty_internal_templateparser.y"
3332 $this->_retvalue = new _smarty_text($this, $this->yystack[$this->yyidx + 0]->minor);
3334 #line 2175 "smarty_internal_templateparser.php"
3335 #line 146 "smarty_internal_templateparser.y"
3338 if ($this->php_handling == Smarty::PHP_PASSTHRU) {
3339 $this->_retvalue = new _smarty_text($this, self::escape_start_tag($this->yystack[$this->yyidx + 0]->minor));
3340 } elseif ($this->php_handling == Smarty::PHP_QUOTE) {
3341 $this->_retvalue = new _smarty_text($this, htmlspecialchars($this->yystack[$this->yyidx + 0]->minor, ENT_QUOTES));
3342 } elseif ($this->php_handling == Smarty::PHP_ALLOW) {
3343 if (!($this->smarty instanceof SmartyBC)) {
3344 $this->compiler->trigger_template_error(self::Err3);
3346 $this->_retvalue = new _smarty_text($this, $this->compiler->processNocacheCode('<?php', true));
3347 } elseif ($this->php_handling == Smarty::PHP_REMOVE) {
3348 $this->_retvalue = null;
3351 #line 2191 "smarty_internal_templateparser.php"
3352 #line 162 "smarty_internal_templateparser.y"
3355 if ($this->is_xml) {
3356 $this->compiler->tag_nocache = true;
3357 $this->is_xml = false;
3358 $save = $this->template->has_nocache_code;
3359 $this->_retvalue = new _smarty_text($this, $this->compiler->processNocacheCode("<?php echo '?>';?>\n", $this->compiler, true));
3360 $this->template->has_nocache_code = $save;
3361 } elseif ($this->php_handling == Smarty::PHP_PASSTHRU) {
3362 $this->_retvalue = new _smarty_text($this, '?<?php ?>>');
3363 } elseif ($this->php_handling == Smarty::PHP_QUOTE) {
3364 $this->_retvalue = new _smarty_text($this, htmlspecialchars('?>', ENT_QUOTES));
3365 } elseif ($this->php_handling == Smarty::PHP_ALLOW) {
3366 $this->_retvalue = new _smarty_text($this, $this->compiler->processNocacheCode('?>', true));
3367 } elseif ($this->php_handling == Smarty::PHP_REMOVE) {
3368 $this->_retvalue = null;
3371 #line 2210 "smarty_internal_templateparser.php"
3372 #line 181 "smarty_internal_templateparser.y"
3375 if ($this->php_handling == Smarty::PHP_PASSTHRU) {
3376 $this->_retvalue = new _smarty_text($this, '<<?php ?>%');
3377 } elseif ($this->php_handling == Smarty::PHP_QUOTE) {
3378 $this->_retvalue = new _smarty_text($this, htmlspecialchars($this->yystack[$this->yyidx + 0]->minor, ENT_QUOTES));
3379 } elseif ($this->php_handling == Smarty::PHP_ALLOW) {
3380 if ($this->asp_tags) {
3381 if (!($this->smarty instanceof SmartyBC)) {
3382 $this->compiler->trigger_template_error(self::Err3);
3384 $this->_retvalue = new _smarty_text($this, $this->compiler->processNocacheCode('<%', true));
3386 $this->_retvalue = new _smarty_text($this, '<<?php ?>%');
3388 } elseif ($this->php_handling == Smarty::PHP_REMOVE) {
3389 if ($this->asp_tags) {
3390 $this->_retvalue = null;
3392 $this->_retvalue = new _smarty_text($this, '<<?php ?>%');
3396 #line 2234 "smarty_internal_templateparser.php"
3397 #line 205 "smarty_internal_templateparser.y"
3400 if ($this->php_handling == Smarty::PHP_PASSTHRU) {
3401 $this->_retvalue = new _smarty_text($this, '%<?php ?>>');
3402 } elseif ($this->php_handling == Smarty::PHP_QUOTE) {
3403 $this->_retvalue = new _smarty_text($this, htmlspecialchars('%>', ENT_QUOTES));
3404 } elseif ($this->php_handling == Smarty::PHP_ALLOW) {
3405 if ($this->asp_tags) {
3406 $this->_retvalue = new _smarty_text($this, $this->compiler->processNocacheCode('%>', true));
3408 $this->_retvalue = new _smarty_text($this, '%<?php ?>>');
3410 } elseif ($this->php_handling == Smarty::PHP_REMOVE) {
3411 if ($this->asp_tags) {
3412 $this->_retvalue = null;
3414 $this->_retvalue = new _smarty_text($this, '%<?php ?>>');
3418 #line 2255 "smarty_internal_templateparser.php"
3419 #line 225 "smarty_internal_templateparser.y"
3423 $this->_retvalue = new _smarty_text($this, preg_replace('![\t ]*[\r\n]+[\t ]*!', '', self::escape_start_tag($this->yystack[$this->yyidx + 0]->minor)));
3425 $this->_retvalue = new _smarty_text($this, self::escape_start_tag($this->yystack[$this->yyidx + 0]->minor));
3428 #line 2264 "smarty_internal_templateparser.php"
3429 #line 234 "smarty_internal_templateparser.y"
3432 $this->compiler->tag_nocache = true;
3433 $this->is_xml = true;
3434 $save = $this->template->has_nocache_code;
3435 $this->_retvalue = new _smarty_text($this, $this->compiler->processNocacheCode("<?php echo '<?xml';?>", $this->compiler, true));
3436 $this->template->has_nocache_code = $save;
3438 #line 2273 "smarty_internal_templateparser.php"
3439 #line 243 "smarty_internal_templateparser.y"
3443 $this->_retvalue = new _smarty_text($this, preg_replace('![\t ]*[\r\n]+[\t ]*!', '', $this->yystack[$this->yyidx + 0]->minor));
3445 $this->_retvalue = new _smarty_text($this, $this->yystack[$this->yyidx + 0]->minor);
3448 #line 2282 "smarty_internal_templateparser.php"
3449 #line 252 "smarty_internal_templateparser.y"
3452 $this->strip = true;
3454 #line 2287 "smarty_internal_templateparser.php"
3455 #line 256 "smarty_internal_templateparser.y"
3458 $this->strip = false;
3460 #line 2292 "smarty_internal_templateparser.php"
3461 #line 260 "smarty_internal_templateparser.y"
3465 SMARTY_INTERNAL_COMPILE_BLOCK::blockSource($this->compiler, preg_replace('![\t ]*[\r\n]+[\t ]*!', '', $this->yystack[$this->yyidx + 0]->minor));
3467 SMARTY_INTERNAL_COMPILE_BLOCK::blockSource($this->compiler, $this->yystack[$this->yyidx + 0]->minor);
3470 #line 2301 "smarty_internal_templateparser.php"
3471 #line 269 "smarty_internal_templateparser.y"
3474 $this->_retvalue = '';
3476 #line 2306 "smarty_internal_templateparser.php"
3477 #line 273 "smarty_internal_templateparser.y"
3480 $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor;
3482 #line 2311 "smarty_internal_templateparser.php"
3483 #line 277 "smarty_internal_templateparser.y"
3486 $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor . $this->yystack[$this->yyidx + 0]->minor;
3488 #line 2316 "smarty_internal_templateparser.php"
3489 #line 285 "smarty_internal_templateparser.y"
3492 $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;
3494 #line 2321 "smarty_internal_templateparser.php"
3495 #line 293 "smarty_internal_templateparser.y"
3498 $this->_retvalue = self::escape_start_tag($this->yystack[$this->yyidx + 0]->minor);
3500 #line 2326 "smarty_internal_templateparser.php"
3501 #line 301 "smarty_internal_templateparser.y"
3504 $this->_retvalue = self::escape_end_tag($this->yystack[$this->yyidx + 0]->minor);
3506 #line 2331 "smarty_internal_templateparser.php"
3507 #line 305 "smarty_internal_templateparser.y"
3510 $this->_retvalue = '<<?php ?>%';
3512 #line 2336 "smarty_internal_templateparser.php"
3513 #line 309 "smarty_internal_templateparser.y"
3516 $this->_retvalue = '%<?php ?>>';
3518 #line 2341 "smarty_internal_templateparser.php"
3519 #line 318 "smarty_internal_templateparser.y"
3522 $this->_retvalue = $this->compiler->compileTag('private_print_expression', array(), array('value' => $this->yystack[$this->yyidx + 0]->minor));
3524 #line 2346 "smarty_internal_templateparser.php"
3525 #line 322 "smarty_internal_templateparser.y"
3528 $this->_retvalue = $this->compiler->compileTag('private_print_expression', $this->yystack[$this->yyidx + 0]->minor, array('value' => $this->yystack[$this->yyidx + - 2]->minor, 'modifierlist' => $this->yystack[$this->yyidx + - 1]->minor));
3530 #line 2351 "smarty_internal_templateparser.php"
3531 #line 326 "smarty_internal_templateparser.y"
3534 $this->_retvalue = $this->compiler->compileTag('private_print_expression', $this->yystack[$this->yyidx + 0]->minor, array('value' => $this->yystack[$this->yyidx + - 1]->minor));
3536 #line 2356 "smarty_internal_templateparser.php"
3537 #line 330 "smarty_internal_templateparser.y"
3540 $this->_retvalue = $this->compiler->compileTag('private_print_expression', $this->yystack[$this->yyidx + 0]->minor, array('value' => $this->yystack[$this->yyidx + - 2]->minor, 'modifierlist' => $this->yystack[$this->yyidx + - 1]->minor));
3542 #line 2361 "smarty_internal_templateparser.php"
3543 #line 343 "smarty_internal_templateparser.y"
3546 $this->_retvalue = $this->compiler->compileTag('assign', array(array('value' => $this->yystack[$this->yyidx + 0]->minor), array('var' => "'" . $this->yystack[$this->yyidx + - 2]->minor . "'")));
3548 #line 2366 "smarty_internal_templateparser.php"
3549 #line 351 "smarty_internal_templateparser.y"
3552 $this->_retvalue = $this->compiler->compileTag('assign', array_merge(array(array('value' => $this->yystack[$this->yyidx + - 1]->minor), array('var' => "'" . $this->yystack[$this->yyidx + - 3]->minor . "'")), $this->yystack[$this->yyidx + 0]->minor));
3554 #line 2371 "smarty_internal_templateparser.php"
3555 #line 355 "smarty_internal_templateparser.y"
3558 $this->_retvalue = $this->compiler->compileTag('assign', array_merge(array(array('value' => $this->yystack[$this->yyidx + - 1]->minor), array('var' => $this->yystack[$this->yyidx + - 3]->minor['var'])), $this->yystack[$this->yyidx + 0]->minor), array('smarty_internal_index' => $this->yystack[$this->yyidx + - 3]->minor['smarty_internal_index']));
3560 #line 2376 "smarty_internal_templateparser.php"
3561 #line 360 "smarty_internal_templateparser.y"
3564 $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + - 1]->minor, $this->yystack[$this->yyidx + 0]->minor);
3566 #line 2381 "smarty_internal_templateparser.php"
3567 #line 364 "smarty_internal_templateparser.y"
3570 $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + 0]->minor, array());
3572 #line 2386 "smarty_internal_templateparser.php"
3573 #line 369 "smarty_internal_templateparser.y"
3576 $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + - 3]->minor, $this->yystack[$this->yyidx + 0]->minor, array('object_method' => $this->yystack[$this->yyidx + - 1]->minor));
3578 #line 2391 "smarty_internal_templateparser.php"
3579 #line 374 "smarty_internal_templateparser.y"
3582 $this->_retvalue = '<?php ob_start();?>' . $this->compiler->compileTag($this->yystack[$this->yyidx + - 2]->minor, $this->yystack[$this->yyidx + 0]->minor) . '<?php echo ';
3583 $this->_retvalue .= $this->compiler->compileTag('private_modifier', array(), array('modifierlist' => $this->yystack[$this->yyidx + - 1]->minor, 'value' => 'ob_get_clean()')) . '?>';
3585 #line 2397 "smarty_internal_templateparser.php"
3586 #line 380 "smarty_internal_templateparser.y"
3589 $this->_retvalue = '<?php ob_start();?>' . $this->compiler->compileTag($this->yystack[$this->yyidx + - 4]->minor, $this->yystack[$this->yyidx + 0]->minor, array('object_method' => $this->yystack[$this->yyidx + - 2]->minor)) . '<?php echo ';
3590 $this->_retvalue .= $this->compiler->compileTag('private_modifier', array(), array('modifierlist' => $this->yystack[$this->yyidx + - 1]->minor, 'value' => 'ob_get_clean()')) . '?>';
3592 #line 2403 "smarty_internal_templateparser.php"
3593 #line 386 "smarty_internal_templateparser.y"
3596 $tag = trim(substr($this->yystack[$this->yyidx + - 1]->minor, $this->lex->ldel_length));
3597 $this->_retvalue = $this->compiler->compileTag(($tag == 'else if') ? 'elseif' : $tag, array(), array('if condition' => $this->yystack[$this->yyidx + 0]->minor));
3599 #line 2409 "smarty_internal_templateparser.php"
3600 #line 391 "smarty_internal_templateparser.y"
3603 $tag = trim(substr($this->yystack[$this->yyidx + - 2]->minor, $this->lex->ldel_length));
3604 $this->_retvalue = $this->compiler->compileTag(($tag == 'else if') ? 'elseif' : $tag, $this->yystack[$this->yyidx + 0]->minor, array('if condition' => $this->yystack[$this->yyidx + - 1]->minor));
3606 #line 2415 "smarty_internal_templateparser.php"
3607 #line 396 "smarty_internal_templateparser.y"
3610 $tag = trim(substr($this->yystack[$this->yyidx + - 1]->minor, $this->lex->ldel_length));
3611 $this->_retvalue = $this->compiler->compileTag(($tag == 'else if') ? 'elseif' : $tag, array(), array('if condition' => $this->yystack[$this->yyidx + 0]->minor));
3613 #line 2421 "smarty_internal_templateparser.php"
3614 #line 407 "smarty_internal_templateparser.y"
3617 $this->_retvalue = $this->compiler->compileTag('for', array_merge($this->yystack[$this->yyidx + 0]->minor, array(array('start' => $this->yystack[$this->yyidx + - 9]->minor), array('ifexp' => $this->yystack[$this->yyidx + - 6]->minor), array('var' => $this->yystack[$this->yyidx + - 2]->minor), array('step' => $this->yystack[$this->yyidx + - 1]->minor))), 1);
3619 #line 2426 "smarty_internal_templateparser.php"
3620 #line 411 "smarty_internal_templateparser.y"
3623 $this->_retvalue = '=' . $this->yystack[$this->yyidx + 0]->minor;
3625 #line 2431 "smarty_internal_templateparser.php"
3626 #line 419 "smarty_internal_templateparser.y"
3629 $this->_retvalue = $this->compiler->compileTag('for', array_merge($this->yystack[$this->yyidx + 0]->minor, array(array('start' => $this->yystack[$this->yyidx + - 3]->minor), array('to' => $this->yystack[$this->yyidx + - 1]->minor))), 0);
3631 #line 2436 "smarty_internal_templateparser.php"
3632 #line 423 "smarty_internal_templateparser.y"
3635 $this->_retvalue = $this->compiler->compileTag('for', array_merge($this->yystack[$this->yyidx + 0]->minor, array(array('start' => $this->yystack[$this->yyidx + - 5]->minor), array('to' => $this->yystack[$this->yyidx + - 3]->minor), array('step' => $this->yystack[$this->yyidx + - 1]->minor))), 0);
3637 #line 2441 "smarty_internal_templateparser.php"
3638 #line 428 "smarty_internal_templateparser.y"
3641 $this->_retvalue = $this->compiler->compileTag('foreach', $this->yystack[$this->yyidx + 0]->minor);
3643 #line 2446 "smarty_internal_templateparser.php"
3644 #line 433 "smarty_internal_templateparser.y"
3647 $this->_retvalue = $this->compiler->compileTag('foreach', array_merge($this->yystack[$this->yyidx + 0]->minor, array(array('from' => $this->yystack[$this->yyidx + - 4]->minor), array('item' => $this->yystack[$this->yyidx + - 1]->minor))));
3649 #line 2451 "smarty_internal_templateparser.php"
3650 #line 437 "smarty_internal_templateparser.y"
3653 $this->_retvalue = $this->compiler->compileTag('foreach', array_merge($this->yystack[$this->yyidx + 0]->minor, array(array('from' => $this->yystack[$this->yyidx + - 7]->minor), array('item' => $this->yystack[$this->yyidx + - 1]->minor), array('key' => $this->yystack[$this->yyidx + - 4]->minor))));
3655 #line 2456 "smarty_internal_templateparser.php"
3656 #line 450 "smarty_internal_templateparser.y"
3659 $this->_retvalue = $this->compiler->compileTag('setfilter', array(), array('modifier_list' => array(array_merge(array($this->yystack[$this->yyidx + - 1]->minor), $this->yystack[$this->yyidx + 0]->minor))));
3661 #line 2461 "smarty_internal_templateparser.php"
3662 #line 454 "smarty_internal_templateparser.y"
3665 $this->_retvalue = $this->compiler->compileTag('setfilter', array(), array('modifier_list' => array_merge(array(array_merge(array($this->yystack[$this->yyidx + - 2]->minor), $this->yystack[$this->yyidx + - 1]->minor)), $this->yystack[$this->yyidx + 0]->minor)));
3667 #line 2466 "smarty_internal_templateparser.php"
3668 #line 459 "smarty_internal_templateparser.y"
3671 $j = strrpos($this->yystack[$this->yyidx + 0]->minor, '.');
3672 if ($this->yystack[$this->yyidx + 0]->minor[$j + 1] == 'c') {
3673 // {$smarty.block.child}
3674 $this->_retvalue = SMARTY_INTERNAL_COMPILE_BLOCK::compileChildBlock($this->compiler);
3676 // {$smarty.block.parent}
3677 $this->_retvalue = SMARTY_INTERNAL_COMPILE_BLOCK::compileParentBlock($this->compiler);
3680 #line 2478 "smarty_internal_templateparser.php"
3681 #line 472 "smarty_internal_templateparser.y"
3684 $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + 0]->minor . 'close', array());
3686 #line 2483 "smarty_internal_templateparser.php"
3687 #line 476 "smarty_internal_templateparser.y"
3690 $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + - 1]->minor . 'close', array(), array('modifier_list' => $this->yystack[$this->yyidx + 0]->minor));
3692 #line 2488 "smarty_internal_templateparser.php"
3693 #line 481 "smarty_internal_templateparser.y"
3696 $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + - 2]->minor . 'close', array(), array('object_method' => $this->yystack[$this->yyidx + 0]->minor));
3698 #line 2493 "smarty_internal_templateparser.php"
3699 #line 485 "smarty_internal_templateparser.y"
3702 $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + - 3]->minor . 'close', array(), array('object_method' => $this->yystack[$this->yyidx + - 1]->minor, 'modifier_list' => $this->yystack[$this->yyidx + 0]->minor));
3704 #line 2498 "smarty_internal_templateparser.php"
3705 #line 493 "smarty_internal_templateparser.y"
3708 $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor;
3709 $this->_retvalue[] = $this->yystack[$this->yyidx + 0]->minor;
3711 #line 2504 "smarty_internal_templateparser.php"
3712 #line 499 "smarty_internal_templateparser.y"
3715 $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor);
3717 #line 2509 "smarty_internal_templateparser.php"
3718 #line 504 "smarty_internal_templateparser.y"
3721 $this->_retvalue = array();
3723 #line 2514 "smarty_internal_templateparser.php"
3724 #line 509 "smarty_internal_templateparser.y"
3727 if (preg_match('~^true$~i', $this->yystack[$this->yyidx + 0]->minor)) {
3728 $this->_retvalue = array($this->yystack[$this->yyidx + - 2]->minor => 'true');
3729 } elseif (preg_match('~^false$~i', $this->yystack[$this->yyidx + 0]->minor)) {
3730 $this->_retvalue = array($this->yystack[$this->yyidx + - 2]->minor => 'false');
3731 } elseif (preg_match('~^null$~i', $this->yystack[$this->yyidx + 0]->minor)) {
3732 $this->_retvalue = array($this->yystack[$this->yyidx + - 2]->minor => 'null');
3734 $this->_retvalue = array($this->yystack[$this->yyidx + - 2]->minor => "'" . $this->yystack[$this->yyidx + 0]->minor . "'");
3737 #line 2527 "smarty_internal_templateparser.php"
3738 #line 521 "smarty_internal_templateparser.y"
3741 $this->_retvalue = array(trim($this->yystack[$this->yyidx + - 1]->minor, " =\n\r\t") => $this->yystack[$this->yyidx + 0]->minor);
3743 #line 2532 "smarty_internal_templateparser.php"
3744 #line 529 "smarty_internal_templateparser.y"
3747 $this->_retvalue = "'" . $this->yystack[$this->yyidx + 0]->minor . "'";
3749 #line 2537 "smarty_internal_templateparser.php"
3750 #line 541 "smarty_internal_templateparser.y"
3753 $this->_retvalue = array($this->yystack[$this->yyidx + - 2]->minor => $this->yystack[$this->yyidx + 0]->minor);
3755 #line 2542 "smarty_internal_templateparser.php"
3756 #line 554 "smarty_internal_templateparser.y"
3759 $this->yystack[$this->yyidx + - 2]->minor[] = $this->yystack[$this->yyidx + 0]->minor;
3760 $this->_retvalue = $this->yystack[$this->yyidx + - 2]->minor;
3762 #line 2548 "smarty_internal_templateparser.php"
3763 #line 559 "smarty_internal_templateparser.y"
3766 $this->_retvalue = array('var' => $this->yystack[$this->yyidx + - 2]->minor, 'value' => $this->yystack[$this->yyidx + 0]->minor);
3768 #line 2553 "smarty_internal_templateparser.php"
3769 #line 587 "smarty_internal_templateparser.y"
3772 $this->_retvalue = '$_smarty_tpl->getStreamVariable(\'' . $this->yystack[$this->yyidx + - 2]->minor . '://' . $this->yystack[$this->yyidx + 0]->minor . '\')';
3774 #line 2558 "smarty_internal_templateparser.php"
3775 #line 592 "smarty_internal_templateparser.y"
3778 $this->_retvalue = $this->yystack[$this->yyidx + - 2]->minor . trim($this->yystack[$this->yyidx + - 1]->minor) . $this->yystack[$this->yyidx + 0]->minor;
3780 #line 2563 "smarty_internal_templateparser.php"
3781 #line 611 "smarty_internal_templateparser.y"
3784 $this->_retvalue = $this->compiler->compileTag('private_modifier', array(), array('value' => $this->yystack[$this->yyidx + - 1]->minor, 'modifierlist' => $this->yystack[$this->yyidx + 0]->minor));
3786 #line 2568 "smarty_internal_templateparser.php"
3787 #line 617 "smarty_internal_templateparser.y"
3790 $this->_retvalue = $this->yystack[$this->yyidx + - 2]->minor . $this->yystack[$this->yyidx + - 1]->minor . $this->yystack[$this->yyidx + 0]->minor;
3792 #line 2573 "smarty_internal_templateparser.php"
3793 #line 621 "smarty_internal_templateparser.y"
3796 $this->_retvalue = 'in_array(' . $this->yystack[$this->yyidx + - 2]->minor . ',' . $this->yystack[$this->yyidx + 0]->minor . ')';
3798 #line 2578 "smarty_internal_templateparser.php"
3799 #line 625 "smarty_internal_templateparser.y"
3802 $this->_retvalue = 'in_array(' . $this->yystack[$this->yyidx + - 2]->minor . ',(array)' . $this->yystack[$this->yyidx + 0]->minor . ')';
3804 #line 2583 "smarty_internal_templateparser.php"
3805 #line 633 "smarty_internal_templateparser.y"
3808 $this->_retvalue = '!(' . $this->yystack[$this->yyidx + - 2]->minor . ' % ' . $this->yystack[$this->yyidx + 0]->minor . ')';
3810 #line 2588 "smarty_internal_templateparser.php"
3811 #line 637 "smarty_internal_templateparser.y"
3814 $this->_retvalue = '(' . $this->yystack[$this->yyidx + - 2]->minor . ' % ' . $this->yystack[$this->yyidx + 0]->minor . ')';
3816 #line 2593 "smarty_internal_templateparser.php"
3817 #line 641 "smarty_internal_templateparser.y"
3820 $this->_retvalue = '!(1 & ' . $this->yystack[$this->yyidx + - 1]->minor . ')';
3822 #line 2598 "smarty_internal_templateparser.php"
3823 #line 645 "smarty_internal_templateparser.y"
3826 $this->_retvalue = '(1 & ' . $this->yystack[$this->yyidx + - 1]->minor . ')';
3828 #line 2603 "smarty_internal_templateparser.php"
3829 #line 649 "smarty_internal_templateparser.y"
3832 $this->_retvalue = '!(1 & ' . $this->yystack[$this->yyidx + - 2]->minor . ' / ' . $this->yystack[$this->yyidx + 0]->minor . ')';
3834 #line 2608 "smarty_internal_templateparser.php"
3835 #line 653 "smarty_internal_templateparser.y"
3838 $this->_retvalue = '(1 & ' . $this->yystack[$this->yyidx + - 2]->minor . ' / ' . $this->yystack[$this->yyidx + 0]->minor . ')';
3840 #line 2613 "smarty_internal_templateparser.php"
3841 #line 677 "smarty_internal_templateparser.y"
3844 self::$prefix_number ++;
3845 $this->compiler->prefix_code[] = '<?php $_tmp' . self::$prefix_number . '=' . $this->yystack[$this->yyidx + 0]->minor . ';?>';
3846 $this->_retvalue = $this->yystack[$this->yyidx + - 2]->minor . $this->yystack[$this->yyidx + - 1]->minor . '$_tmp' . self::$prefix_number;
3848 #line 2620 "smarty_internal_templateparser.php"
3849 #line 686 "smarty_internal_templateparser.y"
3852 $this->_retvalue = $this->yystack[$this->yyidx + - 6]->minor . ' ? ' . $this->compileVariable("'" . $this->yystack[$this->yyidx + - 2]->minor . "'") . ' : ' . $this->yystack[$this->yyidx + 0]->minor;
3854 #line 2625 "smarty_internal_templateparser.php"
3855 #line 690 "smarty_internal_templateparser.y"
3858 $this->_retvalue = $this->yystack[$this->yyidx + - 5]->minor . ' ? ' . $this->yystack[$this->yyidx + - 2]->minor . ' : ' . $this->yystack[$this->yyidx + 0]->minor;
3860 #line 2630 "smarty_internal_templateparser.php"
3861 #line 705 "smarty_internal_templateparser.y"
3864 $this->_retvalue = '!' . $this->yystack[$this->yyidx + 0]->minor;
3866 #line 2635 "smarty_internal_templateparser.php"
3867 #line 726 "smarty_internal_templateparser.y"
3870 $this->_retvalue = $this->yystack[$this->yyidx + - 2]->minor . '.' . $this->yystack[$this->yyidx + 0]->minor;
3872 #line 2640 "smarty_internal_templateparser.php"
3873 #line 730 "smarty_internal_templateparser.y"
3876 $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor . '.';
3878 #line 2645 "smarty_internal_templateparser.php"
3879 #line 734 "smarty_internal_templateparser.y"
3882 $this->_retvalue = '.' . $this->yystack[$this->yyidx + 0]->minor;
3884 #line 2650 "smarty_internal_templateparser.php"
3885 #line 739 "smarty_internal_templateparser.y"
3888 if (preg_match('~^true$~i', $this->yystack[$this->yyidx + 0]->minor)) {
3889 $this->_retvalue = 'true';
3890 } elseif (preg_match('~^false$~i', $this->yystack[$this->yyidx + 0]->minor)) {
3891 $this->_retvalue = 'false';
3892 } elseif (preg_match('~^null$~i', $this->yystack[$this->yyidx + 0]->minor)) {
3893 $this->_retvalue = 'null';
3895 $this->_retvalue = "'" . $this->yystack[$this->yyidx + 0]->minor . "'";
3898 #line 2663 "smarty_internal_templateparser.php"
3899 #line 757 "smarty_internal_templateparser.y"
3902 $this->_retvalue = "(" . $this->yystack[$this->yyidx + - 1]->minor . ")";
3904 #line 2668 "smarty_internal_templateparser.php"
3905 #line 772 "smarty_internal_templateparser.y"
3908 if (!$this->security || isset($this->smarty->registered_classes[$this->yystack[$this->yyidx + - 2]->minor]) || $this->smarty->security_policy->isTrustedStaticClass($this->yystack[$this->yyidx + - 2]->minor, $this->compiler)) {
3909 if (isset($this->smarty->registered_classes[$this->yystack[$this->yyidx + - 2]->minor])) {
3910 $this->_retvalue = $this->smarty->registered_classes[$this->yystack[$this->yyidx + - 2]->minor] . '::' . $this->yystack[$this->yyidx + 0]->minor;
3912 $this->_retvalue = $this->yystack[$this->yyidx + - 2]->minor . '::' . $this->yystack[$this->yyidx + 0]->minor;
3915 $this->compiler->trigger_template_error("static class '" . $this->yystack[$this->yyidx + - 2]->minor . "' is undefined or not allowed by security setting");
3918 #line 2681 "smarty_internal_templateparser.php"
3919 #line 784 "smarty_internal_templateparser.y"
3922 if ($this->yystack[$this->yyidx + - 2]->minor['var'] == '\'smarty\'') {
3923 $this->_retvalue = $this->compiler->compileTag('private_special_variable', array(), $this->yystack[$this->yyidx + - 2]->minor['smarty_internal_index']) . '::' . $this->yystack[$this->yyidx + 0]->minor;
3925 $this->_retvalue = $this->compileVariable($this->yystack[$this->yyidx + - 2]->minor['var']) . $this->yystack[$this->yyidx + - 2]->minor['smarty_internal_index'] . '::' . $this->yystack[$this->yyidx + 0]->minor;
3928 #line 2690 "smarty_internal_templateparser.php"
3929 #line 793 "smarty_internal_templateparser.y"
3932 self::$prefix_number ++;
3933 $this->compiler->prefix_code[] = '<?php ob_start();?>' . $this->yystack[$this->yyidx + - 1]->minor . '<?php $_tmp' . self::$prefix_number . '=ob_get_clean();?>';
3934 $this->_retvalue = '$_tmp' . self::$prefix_number;
3936 #line 2697 "smarty_internal_templateparser.php"
3937 #line 808 "smarty_internal_templateparser.y"
3940 if ($this->yystack[$this->yyidx + 0]->minor['var'] == '\'smarty\'') {
3941 $smarty_var = $this->compiler->compileTag('private_special_variable', array(), $this->yystack[$this->yyidx + 0]->minor['smarty_internal_index']);
3942 $this->_retvalue = $smarty_var;
3944 // used for array reset,next,prev,end,current
3945 $this->last_variable = $this->yystack[$this->yyidx + 0]->minor['var'];
3946 $this->last_index = $this->yystack[$this->yyidx + 0]->minor['smarty_internal_index'];
3947 $this->_retvalue = $this->compileVariable($this->yystack[$this->yyidx + 0]->minor['var']) . $this->yystack[$this->yyidx + 0]->minor['smarty_internal_index'];
3950 #line 2710 "smarty_internal_templateparser.php"
3951 #line 821 "smarty_internal_templateparser.y"
3954 $this->_retvalue = '$_smarty_tpl->tpl_vars[' . $this->yystack[$this->yyidx + - 2]->minor . ']->' . $this->yystack[$this->yyidx + 0]->minor;
3956 #line 2715 "smarty_internal_templateparser.php"
3957 #line 831 "smarty_internal_templateparser.y"
3960 $this->_retvalue = '$_smarty_tpl->getConfigVariable(\'' . $this->yystack[$this->yyidx + - 1]->minor . '\')';
3962 #line 2720 "smarty_internal_templateparser.php"
3963 #line 835 "smarty_internal_templateparser.y"
3966 $this->_retvalue = '(is_array($tmp = $_smarty_tpl->getConfigVariable(\'' . $this->yystack[$this->yyidx + - 2]->minor . '\')) ? $tmp' . $this->yystack[$this->yyidx + 0]->minor . ' :null)';
3968 #line 2725 "smarty_internal_templateparser.php"
3969 #line 839 "smarty_internal_templateparser.y"
3972 $this->_retvalue = '$_smarty_tpl->getConfigVariable(' . $this->yystack[$this->yyidx + - 1]->minor . ')';
3974 #line 2730 "smarty_internal_templateparser.php"
3975 #line 843 "smarty_internal_templateparser.y"
3978 $this->_retvalue = '(is_array($tmp = $_smarty_tpl->getConfigVariable(' . $this->yystack[$this->yyidx + - 2]->minor . ')) ? $tmp' . $this->yystack[$this->yyidx + 0]->minor . ' : null)';
3980 #line 2735 "smarty_internal_templateparser.php"
3981 #line 847 "smarty_internal_templateparser.y"
3984 $this->_retvalue = array('var' => $this->yystack[$this->yyidx + - 1]->minor, 'smarty_internal_index' => $this->yystack[$this->yyidx + 0]->minor);
3986 #line 2740 "smarty_internal_templateparser.php"
3987 #line 860 "smarty_internal_templateparser.y"
3992 #line 2745 "smarty_internal_templateparser.php"
3993 #line 866 "smarty_internal_templateparser.y"
3996 $this->_retvalue = '[' . $this->compileVariable($this->yystack[$this->yyidx + 0]->minor) . ']';
3998 #line 2750 "smarty_internal_templateparser.php"
3999 #line 870 "smarty_internal_templateparser.y"
4002 $this->_retvalue = '[' . $this->compileVariable($this->yystack[$this->yyidx + - 2]->minor) . '->' . $this->yystack[$this->yyidx + 0]->minor . ']';
4004 #line 2755 "smarty_internal_templateparser.php"
4005 #line 874 "smarty_internal_templateparser.y"
4008 $this->_retvalue = "['" . $this->yystack[$this->yyidx + 0]->minor . "']";
4010 #line 2760 "smarty_internal_templateparser.php"
4011 #line 878 "smarty_internal_templateparser.y"
4014 $this->_retvalue = "[" . $this->yystack[$this->yyidx + 0]->minor . "]";
4016 #line 2765 "smarty_internal_templateparser.php"
4017 #line 882 "smarty_internal_templateparser.y"
4020 $this->_retvalue = "[" . $this->yystack[$this->yyidx + - 1]->minor . "]";
4022 #line 2770 "smarty_internal_templateparser.php"
4023 #line 887 "smarty_internal_templateparser.y"
4026 $this->_retvalue = '[' . $this->compiler->compileTag('private_special_variable', array(), '[\'section\'][\'' . $this->yystack[$this->yyidx + - 1]->minor . '\'][\'index\']') . ']';
4028 #line 2775 "smarty_internal_templateparser.php"
4029 #line 891 "smarty_internal_templateparser.y"
4032 $this->_retvalue = '[' . $this->compiler->compileTag('private_special_variable', array(), '[\'section\'][\'' . $this->yystack[$this->yyidx + - 3]->minor . '\'][\'' . $this->yystack[$this->yyidx + - 1]->minor . '\']') . ']';
4034 #line 2780 "smarty_internal_templateparser.php"
4035 #line 901 "smarty_internal_templateparser.y"
4038 $this->_retvalue = '[]';
4040 #line 2785 "smarty_internal_templateparser.php"
4041 #line 914 "smarty_internal_templateparser.y"
4044 $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor . '.' . $this->yystack[$this->yyidx + 0]->minor;
4046 #line 2790 "smarty_internal_templateparser.php"
4047 #line 919 "smarty_internal_templateparser.y"
4050 $this->_retvalue = '\'' . $this->yystack[$this->yyidx + 0]->minor . '\'';
4052 #line 2795 "smarty_internal_templateparser.php"
4053 #line 924 "smarty_internal_templateparser.y"
4056 $this->_retvalue = '(' . $this->yystack[$this->yyidx + - 1]->minor . ')';
4058 #line 2800 "smarty_internal_templateparser.php"
4059 #line 931 "smarty_internal_templateparser.y"
4062 if ($this->yystack[$this->yyidx + - 1]->minor['var'] == '\'smarty\'') {
4063 $this->_retvalue = $this->compiler->compileTag('private_special_variable', array(), $this->yystack[$this->yyidx + - 1]->minor['smarty_internal_index']) . $this->yystack[$this->yyidx + 0]->minor;
4065 $this->_retvalue = $this->compileVariable($this->yystack[$this->yyidx + - 1]->minor['var']) . $this->yystack[$this->yyidx + - 1]->minor['smarty_internal_index'] . $this->yystack[$this->yyidx + 0]->minor;
4068 #line 2809 "smarty_internal_templateparser.php"
4069 #line 940 "smarty_internal_templateparser.y"
4072 $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;
4074 #line 2814 "smarty_internal_templateparser.php"
4075 #line 945 "smarty_internal_templateparser.y"
4078 $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor . $this->yystack[$this->yyidx + 0]->minor;
4080 #line 2819 "smarty_internal_templateparser.php"
4081 #line 950 "smarty_internal_templateparser.y"
4084 if ($this->security && substr($this->yystack[$this->yyidx + - 1]->minor, 0, 1) == '_') {
4085 $this->compiler->trigger_template_error(self::Err1);
4087 $this->_retvalue = '->' . $this->yystack[$this->yyidx + - 1]->minor . $this->yystack[$this->yyidx + 0]->minor;
4089 #line 2827 "smarty_internal_templateparser.php"
4090 #line 957 "smarty_internal_templateparser.y"
4093 if ($this->security) {
4094 $this->compiler->trigger_template_error(self::Err2);
4096 $this->_retvalue = '->{' . $this->compileVariable($this->yystack[$this->yyidx + - 1]->minor) . $this->yystack[$this->yyidx + 0]->minor . '}';
4098 #line 2835 "smarty_internal_templateparser.php"
4099 #line 964 "smarty_internal_templateparser.y"
4102 if ($this->security) {
4103 $this->compiler->trigger_template_error(self::Err2);
4105 $this->_retvalue = '->{' . $this->yystack[$this->yyidx + - 2]->minor . $this->yystack[$this->yyidx + 0]->minor . '}';
4107 #line 2843 "smarty_internal_templateparser.php"
4108 #line 971 "smarty_internal_templateparser.y"
4111 if ($this->security) {
4112 $this->compiler->trigger_template_error(self::Err2);
4114 $this->_retvalue = '->{\'' . $this->yystack[$this->yyidx + - 4]->minor . '\'.' . $this->yystack[$this->yyidx + - 2]->minor . $this->yystack[$this->yyidx + 0]->minor . '}';
4116 #line 2851 "smarty_internal_templateparser.php"
4117 #line 979 "smarty_internal_templateparser.y"
4120 $this->_retvalue = '->' . $this->yystack[$this->yyidx + 0]->minor;
4122 #line 2856 "smarty_internal_templateparser.php"
4123 #line 987 "smarty_internal_templateparser.y"
4126 if (!$this->security || $this->smarty->security_policy->isTrustedPhpFunction($this->yystack[$this->yyidx + - 3]->minor, $this->compiler)) {
4127 if (strcasecmp($this->yystack[$this->yyidx + - 3]->minor, 'isset') === 0 || strcasecmp($this->yystack[$this->yyidx + - 3]->minor, 'empty') === 0 || strcasecmp($this->yystack[$this->yyidx + - 3]->minor, 'array') === 0 || is_callable($this->yystack[$this->yyidx + - 3]->minor)) {
4128 $func_name = strtolower($this->yystack[$this->yyidx + - 3]->minor);
4129 if ($func_name == 'isset') {
4130 if (count($this->yystack[$this->yyidx + - 1]->minor) == 0) {
4131 $this->compiler->trigger_template_error('Illegal number of paramer in "isset()"');
4133 $par = implode(',', $this->yystack[$this->yyidx + - 1]->minor);
4134 if (strncasecmp($par, '$_smarty_tpl->getConfigVariable', strlen('$_smarty_tpl->getConfigVariable')) === 0) {
4135 self::$prefix_number ++;
4136 $this->compiler->prefix_code[] = '<?php $_tmp' . self::$prefix_number . '=' . str_replace(')', ', false)', $par) . ';?>';
4137 $isset_par = '$_tmp' . self::$prefix_number;
4139 $isset_par = str_replace("')->value", "',null,true,false)->value", $par);
4141 $this->_retvalue = $this->yystack[$this->yyidx + - 3]->minor . "(" . $isset_par . ")";
4142 } elseif (in_array($func_name, array('empty', 'reset', 'current', 'end', 'prev', 'next'))) {
4143 if (count($this->yystack[$this->yyidx + - 1]->minor) != 1) {
4144 $this->compiler->trigger_template_error('Illegal number of paramer in "empty()"');
4146 if ($func_name == 'empty') {
4147 $this->_retvalue = $func_name . '(' . str_replace("')->value", "',null,true,false)->value", $this->yystack[$this->yyidx + - 1]->minor[0]) . ')';
4149 $this->_retvalue = $func_name . '(' . $this->yystack[$this->yyidx + - 1]->minor[0] . ')';
4152 $this->_retvalue = $this->yystack[$this->yyidx + - 3]->minor . "(" . implode(',', $this->yystack[$this->yyidx + - 1]->minor) . ")";
4155 $this->compiler->trigger_template_error("unknown function \"" . $this->yystack[$this->yyidx + - 3]->minor . "\"");
4159 #line 2892 "smarty_internal_templateparser.php"
4160 #line 1025 "smarty_internal_templateparser.y"
4163 if ($this->security && substr($this->yystack[$this->yyidx + - 3]->minor, 0, 1) == '_') {
4164 $this->compiler->trigger_template_error(self::Err1);
4166 $this->_retvalue = $this->yystack[$this->yyidx + - 3]->minor . "(" . implode(',', $this->yystack[$this->yyidx + - 1]->minor) . ")";
4168 #line 2900 "smarty_internal_templateparser.php"
4169 #line 1032 "smarty_internal_templateparser.y"
4172 if ($this->security) {
4173 $this->compiler->trigger_template_error(self::Err2);
4175 self::$prefix_number ++;
4176 $this->compiler->prefix_code[] = '<?php $_tmp' . self::$prefix_number . '=' . $this->compileVariable("'" . $this->yystack[$this->yyidx + - 3]->minor . "'") . ';?>';
4177 $this->_retvalue = '$_tmp' . self::$prefix_number . '(' . implode(',', $this->yystack[$this->yyidx + - 1]->minor) . ')';
4179 #line 2910 "smarty_internal_templateparser.php"
4180 #line 1043 "smarty_internal_templateparser.y"
4183 $this->_retvalue = array_merge($this->yystack[$this->yyidx + - 2]->minor, array($this->yystack[$this->yyidx + 0]->minor));
4185 #line 2915 "smarty_internal_templateparser.php"
4186 #line 1060 "smarty_internal_templateparser.y"
4189 $this->_retvalue = array_merge($this->yystack[$this->yyidx + - 2]->minor, array(array_merge($this->yystack[$this->yyidx + - 1]->minor, $this->yystack[$this->yyidx + 0]->minor)));
4191 #line 2920 "smarty_internal_templateparser.php"
4192 #line 1064 "smarty_internal_templateparser.y"
4195 $this->_retvalue = array(array_merge($this->yystack[$this->yyidx + - 1]->minor, $this->yystack[$this->yyidx + 0]->minor));
4197 #line 2925 "smarty_internal_templateparser.php"
4198 #line 1072 "smarty_internal_templateparser.y"
4201 $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor);
4203 #line 2930 "smarty_internal_templateparser.php"
4204 #line 1080 "smarty_internal_templateparser.y"
4207 $this->_retvalue = array_merge($this->yystack[$this->yyidx + - 1]->minor, $this->yystack[$this->yyidx + 0]->minor);
4209 #line 2935 "smarty_internal_templateparser.php"
4210 #line 1114 "smarty_internal_templateparser.y"
4213 $this->_retvalue = '$' . $this->yystack[$this->yyidx + - 1]->minor . $this->yystack[$this->yyidx + 0]->minor;
4215 #line 2940 "smarty_internal_templateparser.php"
4216 #line 1119 "smarty_internal_templateparser.y"
4219 $this->_retvalue = '$' . $this->yystack[$this->yyidx + - 2]->minor . $this->yystack[$this->yyidx + - 1]->minor . $this->yystack[$this->yyidx + 0]->minor;
4221 #line 2945 "smarty_internal_templateparser.php"
4222 #line 1125 "smarty_internal_templateparser.y"
4225 $this->_retvalue = '==';
4227 #line 2950 "smarty_internal_templateparser.php"
4228 #line 1129 "smarty_internal_templateparser.y"
4231 $this->_retvalue = '!=';
4233 #line 2955 "smarty_internal_templateparser.php"
4234 #line 1133 "smarty_internal_templateparser.y"
4237 $this->_retvalue = '>';
4239 #line 2960 "smarty_internal_templateparser.php"
4240 #line 1137 "smarty_internal_templateparser.y"
4243 $this->_retvalue = '<';
4245 #line 2965 "smarty_internal_templateparser.php"
4246 #line 1141 "smarty_internal_templateparser.y"
4249 $this->_retvalue = '>=';
4251 #line 2970 "smarty_internal_templateparser.php"
4252 #line 1145 "smarty_internal_templateparser.y"
4255 $this->_retvalue = '<=';
4257 #line 2975 "smarty_internal_templateparser.php"
4258 #line 1149 "smarty_internal_templateparser.y"
4261 $this->_retvalue = '===';
4263 #line 2980 "smarty_internal_templateparser.php"
4264 #line 1153 "smarty_internal_templateparser.y"
4267 $this->_retvalue = '!==';
4269 #line 2985 "smarty_internal_templateparser.php"
4270 #line 1157 "smarty_internal_templateparser.y"
4273 $this->_retvalue = '%';
4275 #line 2990 "smarty_internal_templateparser.php"
4276 #line 1161 "smarty_internal_templateparser.y"
4279 $this->_retvalue = '&&';
4281 #line 2995 "smarty_internal_templateparser.php"
4282 #line 1165 "smarty_internal_templateparser.y"
4285 $this->_retvalue = '||';
4287 #line 3000 "smarty_internal_templateparser.php"
4288 #line 1169 "smarty_internal_templateparser.y"
4291 $this->_retvalue = ' XOR ';
4293 #line 3005 "smarty_internal_templateparser.php"
4294 #line 1176 "smarty_internal_templateparser.y"
4297 $this->_retvalue = 'array(' . $this->yystack[$this->yyidx + - 1]->minor . ')';
4299 #line 3010 "smarty_internal_templateparser.php"
4300 #line 1184 "smarty_internal_templateparser.y"
4303 $this->_retvalue = $this->yystack[$this->yyidx + - 2]->minor . ',' . $this->yystack[$this->yyidx + 0]->minor;
4305 #line 3015 "smarty_internal_templateparser.php"
4306 #line 1192 "smarty_internal_templateparser.y"
4309 $this->_retvalue = $this->yystack[$this->yyidx + - 2]->minor . '=>' . $this->yystack[$this->yyidx + 0]->minor;
4311 #line 3020 "smarty_internal_templateparser.php"
4312 #line 1196 "smarty_internal_templateparser.y"
4315 $this->_retvalue = '\'' . $this->yystack[$this->yyidx + - 2]->minor . '\'=>' . $this->yystack[$this->yyidx + 0]->minor;
4317 #line 3025 "smarty_internal_templateparser.php"
4318 #line 1208 "smarty_internal_templateparser.y"
4321 $this->_retvalue = "''";
4323 #line 3030 "smarty_internal_templateparser.php"
4324 #line 1212 "smarty_internal_templateparser.y"
4327 $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor->to_smarty_php();
4329 #line 3035 "smarty_internal_templateparser.php"
4330 #line 1217 "smarty_internal_templateparser.y"
4333 $this->yystack[$this->yyidx + - 1]->minor->append_subtree($this->yystack[$this->yyidx + 0]->minor);
4334 $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor;
4336 #line 3041 "smarty_internal_templateparser.php"
4337 #line 1222 "smarty_internal_templateparser.y"
4340 $this->_retvalue = new _smarty_doublequoted($this, $this->yystack[$this->yyidx + 0]->minor);
4342 #line 3046 "smarty_internal_templateparser.php"
4343 #line 1226 "smarty_internal_templateparser.y"
4346 $this->_retvalue = new _smarty_code($this, '(string)' . $this->yystack[$this->yyidx + - 1]->minor);
4348 #line 3051 "smarty_internal_templateparser.php"
4349 #line 1234 "smarty_internal_templateparser.y"
4352 $this->_retvalue = new _smarty_code($this, '(string)$_smarty_tpl->tpl_vars[\'' . substr($this->yystack[$this->yyidx + 0]->minor, 1) . '\']->value');
4354 #line 3056 "smarty_internal_templateparser.php"
4355 #line 1242 "smarty_internal_templateparser.y"
4358 $this->_retvalue = new _smarty_code($this, '(string)(' . $this->yystack[$this->yyidx + - 1]->minor . ')');
4360 #line 3061 "smarty_internal_templateparser.php"
4361 #line 1246 "smarty_internal_templateparser.y"
4364 $this->_retvalue = new _smarty_tag($this, $this->yystack[$this->yyidx + - 1]->minor);
4366 #line 3066 "smarty_internal_templateparser.php"
4367 #line 1250 "smarty_internal_templateparser.y"
4370 $this->_retvalue = new _smarty_dq_content($this, $this->yystack[$this->yyidx + 0]->minor);
4373 #line 3071 "smarty_internal_templateparser.php"
4377 public function yy_reduce($yyruleno)
4379 $yymsp = $this->yystack[$this->yyidx];
4380 if ($this->yyTraceFILE && $yyruleno >= 0
4381 && $yyruleno < count(self::$yyRuleName)
4383 fprintf($this->yyTraceFILE, "%sReduce (%d) [%s].\n",
4384 $this->yyTracePrompt, $yyruleno,
4385 self::$yyRuleName[$yyruleno]);
4388 $this->_retvalue = $yy_lefthand_side = null;
4389 if (array_key_exists($yyruleno, self::$yyReduceMap)) {
4391 $this->_retvalue = null;
4392 $this->{'yy_r' . self::$yyReduceMap[$yyruleno]}();
4393 $yy_lefthand_side = $this->_retvalue;
4395 $yygoto = self::$yyRuleInfo[$yyruleno]['lhs'];
4396 $yysize = self::$yyRuleInfo[$yyruleno]['rhs'];
4397 $this->yyidx -= $yysize;
4398 for ($i = $yysize; $i; $i --) {
4399 // pop all of the right-hand side parameters
4400 array_pop($this->yystack);
4402 $yyact = $this->yy_find_reduce_action($this->yystack[$this->yyidx]->stateno, $yygoto);
4403 if ($yyact < self::YYNSTATE) {
4404 if (!$this->yyTraceFILE && $yysize) {
4406 $x = new TP_yyStackEntry;
4407 $x->stateno = $yyact;
4408 $x->major = $yygoto;
4409 $x->minor = $yy_lefthand_side;
4410 $this->yystack[$this->yyidx] = $x;
4412 $this->yy_shift($yyact, $yygoto, $yy_lefthand_side);
4414 } elseif ($yyact == self::YYNSTATE + self::YYNRULE + 1) {
4419 public function yy_parse_failed()
4421 if ($this->yyTraceFILE) {
4422 fprintf($this->yyTraceFILE, "%sFail!\n", $this->yyTracePrompt);
4424 while ($this->yyidx >= 0) {
4425 $this->yy_pop_parser_stack();
4429 public function yy_syntax_error($yymajor, $TOKEN)
4431 #line 78 "smarty_internal_templateparser.y"
4433 $this->internalError = true;
4434 $this->yymajor = $yymajor;
4435 $this->compiler->trigger_template_error();
4436 #line 3133 "smarty_internal_templateparser.php"
4439 public function yy_accept()
4441 if ($this->yyTraceFILE) {
4442 fprintf($this->yyTraceFILE, "%sAccept!\n", $this->yyTracePrompt);
4444 while ($this->yyidx >= 0) {
4445 $stack = $this->yy_pop_parser_stack();
4447 #line 70 "smarty_internal_templateparser.y"
4449 $this->successful = !$this->internalError;
4450 $this->internalError = false;
4451 $this->retvalue = $this->_retvalue;
4452 //echo $this->retvalue."\n\n";
4453 #line 3150 "smarty_internal_templateparser.php"
4456 public function doParse($yymajor, $yytokenvalue)
4458 $yyerrorhit = 0; /* True if yymajor has invoked an error */
4460 if ($this->yyidx === null || $this->yyidx < 0) {
4462 $this->yyerrcnt = - 1;
4463 $x = new TP_yyStackEntry;
4466 $this->yystack = array();
4467 array_push($this->yystack, $x);
4469 $yyendofinput = ($yymajor == 0);
4471 if ($this->yyTraceFILE) {
4472 fprintf($this->yyTraceFILE, "%sInput %s\n",
4473 $this->yyTracePrompt, $this->yyTokenName[$yymajor]);
4477 $yyact = $this->yy_find_shift_action($yymajor);
4478 if ($yymajor < self::YYERRORSYMBOL &&
4479 !$this->yy_is_expected_token($yymajor)
4481 // force a syntax error
4482 $yyact = self::YY_ERROR_ACTION;
4484 if ($yyact < self::YYNSTATE) {
4485 $this->yy_shift($yyact, $yymajor, $yytokenvalue);
4487 if ($yyendofinput && $this->yyidx >= 0) {
4490 $yymajor = self::YYNOCODE;
4492 } elseif ($yyact < self::YYNSTATE + self::YYNRULE) {
4493 $this->yy_reduce($yyact - self::YYNSTATE);
4494 } elseif ($yyact == self::YY_ERROR_ACTION) {
4495 if ($this->yyTraceFILE) {
4496 fprintf($this->yyTraceFILE, "%sSyntax Error!\n",
4497 $this->yyTracePrompt);
4499 if (self::YYERRORSYMBOL) {
4500 if ($this->yyerrcnt < 0) {
4501 $this->yy_syntax_error($yymajor, $yytokenvalue);
4503 $yymx = $this->yystack[$this->yyidx]->major;
4504 if ($yymx == self::YYERRORSYMBOL || $yyerrorhit) {
4505 if ($this->yyTraceFILE) {
4506 fprintf($this->yyTraceFILE, "%sDiscard input token %s\n",
4507 $this->yyTracePrompt, $this->yyTokenName[$yymajor]);
4509 $this->yy_destructor($yymajor, $yytokenvalue);
4510 $yymajor = self::YYNOCODE;
4512 while ($this->yyidx >= 0 &&
4513 $yymx != self::YYERRORSYMBOL &&
4514 ($yyact = $this->yy_find_shift_action(self::YYERRORSYMBOL)) >= self::YYNSTATE
4516 $this->yy_pop_parser_stack();
4518 if ($this->yyidx < 0 || $yymajor == 0) {
4519 $this->yy_destructor($yymajor, $yytokenvalue);
4520 $this->yy_parse_failed();
4521 $yymajor = self::YYNOCODE;
4522 } elseif ($yymx != self::YYERRORSYMBOL) {
4524 $this->yy_shift($yyact, self::YYERRORSYMBOL, $u2);
4527 $this->yyerrcnt = 3;
4530 if ($this->yyerrcnt <= 0) {
4531 $this->yy_syntax_error($yymajor, $yytokenvalue);
4533 $this->yyerrcnt = 3;
4534 $this->yy_destructor($yymajor, $yytokenvalue);
4535 if ($yyendofinput) {
4536 $this->yy_parse_failed();
4538 $yymajor = self::YYNOCODE;
4542 $yymajor = self::YYNOCODE;
4544 } while ($yymajor != self::YYNOCODE && $this->yyidx >= 0);