12 $this->
string = $s->string;
13 $this->metadata = $s->metadata;
15 $this->
string = (string) $s;
16 if ($m instanceof TP_yyToken) {
17 $this->metadata = $m->metadata;
18 } elseif (is_array($m)) {
31 return isset($this->metadata[$offset]);
36 return $this->metadata[$offset];
41 if ($offset === null) {
42 if (isset($value[0])) {
43 $x = ($value instanceof
TP_yyToken) ? $value->metadata : $value;
44 $this->metadata = array_merge($this->metadata, $x);
48 $offset = count($this->metadata);
50 if ($value === null) {
54 if ($value->metadata) {
55 $this->metadata[$offset] = $value->metadata;
58 $this->metadata[$offset] = $value;
64 unset($this->metadata[$offset]);
79 #line 13 "../smarty/lexer/smarty_internal_templateparser.y"
93 #line 26 "../smarty/lexer/smarty_internal_templateparser.y"
95 const Err1 =
"Security error: Call to private object member not allowed";
97 const Err2 =
"Security error: Call to dynamic object member not allowed";
99 const Err3 =
"PHP in template not allowed. Use SmartyBC to enable it";
221 $this->
template = $this->compiler->template;
222 $this->smarty = $this->
template->smarty;
223 $this->security = isset($this->smarty->security_policy) ? $this->smarty->security_policy :
false;
247 foreach ($this->compiler->prefix_code as $preCode) {
248 $tmp = empty($tmp) ? $preCode : $this->compiler->appendCode($tmp, $preCode);
250 $this->compiler->prefix_code = array();
251 $tmp = empty($tmp) ? $code : $this->compiler->appendCode($tmp, $code);
383 static public $yy_action = array(287, 9, 129, 251, 273, 194, 441, 2, 82, 280, 281, 282, 216, 110, 353, 223, 212,
384 229, 441, 258, 217, 12, 199, 240, 32, 257, 257, 39, 17, 12, 25, 43, 42, 263, 224, 233, 17, 206, 441, 80, 1, 244,
385 311, 311, 172, 172, 52, 287, 9, 128, 441, 273, 65, 178, 2, 82, 268, 14, 184, 298, 110, 262, 13, 319, 229, 297,
386 258, 217, 31, 225, 12, 32, 170, 257, 39, 239, 189, 17, 43, 42, 263, 224, 292, 214, 206, 249, 80, 1, 113, 311,
387 164, 442, 172, 52, 287, 9, 132, 201, 273, 209, 260, 2, 82, 442, 14, 141, 256, 110, 262, 88, 303, 229, 261, 258,
388 217, 260, 225, 12, 32, 168, 36, 39, 241, 12, 17, 43, 42, 263, 224, 292, 17, 206, 189, 80, 1, 7, 311, 180, 257,
389 219, 52, 287, 9, 132, 134, 273, 193, 470, 2, 82, 10, 470, 156, 304, 110, 300, 89, 172, 229, 310, 258, 217, 260,
390 205, 223, 32, 257, 14, 39, 324, 12, 262, 43, 42, 263, 224, 292, 17, 206, 189, 80, 1, 470, 311, 470, 172, 470,
391 52, 287, 9, 131, 201, 273, 209, 257, 2, 82, 83, 307, 232, 201, 110, 399, 454, 230, 229, 237, 258, 217, 454, 225,
392 355, 32, 133, 201, 39, 215, 399, 144, 43, 42, 263, 224, 292, 399, 206, 12, 80, 1, 326, 311, 157, 236, 17, 52,
393 287, 9, 133, 201, 273, 209, 260, 2, 82, 214, 201, 235, 202, 110, 113, 80, 99, 229, 311, 258, 217, 396, 225, 187,
394 19, 14, 323, 39, 18, 262, 28, 43, 42, 263, 224, 292, 396, 206, 12, 80, 1, 143, 311, 396, 134, 17, 52, 287, 9,
395 132, 10, 273, 209, 4, 2, 82, 313, 14, 146, 454, 110, 262, 181, 158, 229, 454, 258, 217, 260, 192, 12, 32, 20,
396 260, 39, 99, 441, 17, 43, 42, 263, 224, 292, 243, 206, 189, 80, 1, 441, 311, 187, 182, 298, 52, 287, 9, 130,
397 201, 273, 209, 14, 2, 82, 93, 262, 104, 24, 110, 399, 99, 169, 229, 154, 258, 217, 220, 225, 113, 5, 124, 260,
398 39, 135, 399, 100, 43, 42, 263, 224, 292, 399, 206, 261, 80, 1, 325, 311, 228, 112, 104, 52, 287, 9, 132, 92,
399 273, 191, 173, 2, 82, 174, 291, 285, 16, 110, 330, 312, 260, 229, 310, 258, 217, 311, 225, 223, 32, 259, 90, 39,
400 261, 6, 264, 43, 42, 263, 224, 292, 181, 206, 175, 80, 1, 116, 311, 171, 201, 21, 52, 287, 9, 132, 37, 273, 195,
401 260, 2, 82, 36, 296, 238, 189, 110, 189, 259, 201, 229, 261, 258, 217, 214, 225, 218, 32, 35, 113, 39, 36, 232,
402 299, 43, 42, 263, 224, 292, 15, 206, 183, 80, 1, 211, 311, 17, 91, 226, 52, 287, 9, 133, 177, 273, 209, 179, 2,
403 82, 318, 470, 99, 18, 110, 470, 454, 121, 229, 288, 258, 217, 289, 225, 316, 19, 145, 189, 39, 187, 189, 121,
404 43, 42, 263, 224, 292, 161, 206, 261, 80, 99, 104, 311, 454, 14, 454, 52, 470, 262, 454, 279, 278, 276, 277,
405 283, 284, 174, 159, 470, 261, 287, 9, 470, 454, 273, 311, 317, 2, 82, 176, 298, 223, 204, 110, 115, 68, 107,
406 229, 117, 258, 217, 100, 3, 201, 272, 329, 138, 29, 210, 271, 293, 454, 325, 454, 359, 470, 260, 454, 254, 317,
407 139, 275, 200, 306, 223, 204, 111, 119, 72, 107, 260, 201, 37, 242, 100, 255, 151, 272, 329, 213, 4, 210, 271,
408 293, 150, 325, 245, 167, 20, 152, 317, 81, 208, 149, 260, 223, 204, 260, 119, 60, 102, 186, 218, 185, 265, 100,
409 269, 22, 272, 329, 286, 270, 210, 271, 293, 317, 325, 248, 147, 148, 223, 204, 178, 119, 72, 107, 153, 232, 260,
410 274, 100, 13, 319, 272, 329, 261, 397, 210, 271, 293, 231, 325, 268, 136, 317, 189, 165, 106, 207, 223, 204,
411 397, 115, 68, 107, 84, 327, 85, 397, 100, 103, 441, 272, 329, 290, 86, 210, 271, 293, 87, 325, 299, 299, 441,
412 317, 299, 155, 299, 299, 223, 204, 305, 119, 50, 102, 299, 108, 299, 299, 100, 299, 299, 272, 329, 299, 299,
413 210, 271, 293, 317, 325, 299, 299, 299, 223, 204, 299, 119, 72, 107, 299, 299, 299, 299, 100, 27, 227, 272, 329,
414 160, 299, 210, 271, 293, 299, 325, 299, 299, 317, 299, 299, 299, 203, 223, 204, 299, 109, 46, 107, 299, 299,
415 299, 299, 100, 299, 299, 272, 329, 299, 308, 210, 271, 293, 299, 325, 299, 311, 287, 8, 309, 299, 273, 299, 317,
416 2, 82, 299, 299, 223, 204, 110, 119, 49, 107, 229, 299, 258, 217, 100, 299, 142, 272, 329, 299, 178, 210, 271,
417 293, 299, 325, 260, 317, 299, 13, 319, 299, 223, 204, 299, 119, 70, 107, 299, 294, 23, 299, 100, 189, 299, 272,
418 329, 299, 299, 210, 271, 293, 317, 325, 299, 299, 299, 223, 204, 299, 119, 77, 107, 299, 299, 299, 299, 100,
419 299, 299, 272, 329, 299, 308, 210, 271, 293, 299, 325, 299, 299, 287, 8, 309, 299, 273, 299, 317, 2, 82, 299,
420 299, 223, 204, 110, 119, 71, 107, 229, 299, 258, 217, 100, 299, 299, 272, 329, 299, 299, 210, 271, 293, 299,
421 325, 299, 317, 299, 299, 299, 299, 223, 204, 299, 119, 60, 107, 299, 295, 23, 299, 100, 299, 299, 272, 329, 299,
422 299, 210, 271, 293, 317, 325, 299, 140, 299, 223, 204, 178, 119, 73, 107, 299, 299, 260, 299, 100, 13, 319, 272,
423 329, 299, 299, 210, 271, 293, 299, 325, 317, 201, 299, 189, 299, 223, 204, 299, 119, 62, 107, 299, 41, 40, 38,
424 100, 299, 299, 272, 329, 299, 299, 210, 271, 293, 299, 325, 317, 163, 321, 322, 328, 223, 204, 299, 119, 63,
425 107, 299, 41, 40, 38, 100, 299, 299, 272, 329, 299, 299, 210, 271, 293, 299, 325, 317, 201, 321, 322, 328, 223,
426 204, 299, 97, 69, 107, 299, 299, 299, 299, 100, 299, 299, 272, 329, 299, 299, 210, 271, 293, 299, 325, 317, 299,
427 299, 299, 299, 223, 204, 299, 119, 75, 107, 222, 41, 40, 38, 100, 299, 299, 272, 329, 299, 299, 210, 271, 293,
428 299, 325, 317, 201, 321, 322, 328, 223, 204, 299, 119, 64, 107, 299, 247, 299, 299, 100, 299, 299, 272, 329,
429 299, 299, 210, 271, 293, 299, 325, 317, 201, 26, 299, 299, 223, 204, 299, 98, 74, 107, 299, 41, 40, 38, 100,
430 299, 299, 272, 329, 299, 299, 210, 271, 293, 299, 325, 317, 201, 321, 322, 328, 223, 198, 299, 105, 59, 107,
431 299, 41, 40, 38, 100, 299, 299, 272, 329, 299, 299, 210, 271, 293, 299, 325, 317, 299, 321, 322, 328, 223, 204,
432 299, 119, 45, 107, 246, 41, 40, 38, 100, 299, 299, 272, 329, 299, 299, 210, 271, 293, 299, 325, 317, 201, 321,
433 322, 328, 223, 94, 299, 79, 48, 101, 299, 252, 299, 299, 100, 299, 299, 272, 329, 299, 299, 210, 271, 293, 299,
434 325, 317, 299, 299, 299, 299, 223, 204, 299, 119, 56, 107, 299, 41, 40, 38, 100, 299, 299, 272, 329, 299, 299,
435 210, 271, 293, 299, 325, 317, 201, 321, 322, 328, 223, 204, 299, 119, 61, 107, 299, 190, 299, 299, 100, 299,
436 299, 272, 329, 299, 299, 210, 271, 293, 299, 325, 317, 299, 299, 299, 299, 223, 204, 299, 96, 58, 107, 299, 41,
437 40, 38, 100, 299, 299, 272, 329, 299, 299, 210, 271, 293, 299, 325, 317, 201, 321, 322, 328, 223, 204, 299, 119,
438 66, 107, 299, 188, 299, 299, 100, 299, 299, 272, 329, 299, 299, 210, 271, 293, 299, 325, 317, 201, 299, 299,
439 299, 223, 204, 299, 119, 47, 107, 299, 41, 40, 38, 100, 299, 299, 272, 329, 299, 299, 210, 271, 293, 299, 325,
440 317, 299, 321, 322, 328, 223, 204, 299, 119, 78, 107, 299, 41, 40, 38, 100, 299, 299, 272, 329, 299, 299, 210,
441 271, 293, 299, 325, 317, 299, 321, 322, 328, 223, 204, 299, 119, 54, 107, 299, 299, 299, 299, 100, 299, 299,
442 272, 329, 299, 299, 210, 271, 293, 299, 325, 317, 299, 299, 299, 299, 223, 204, 299, 119, 53, 107, 299, 299,
443 299, 299, 100, 299, 299, 272, 329, 299, 299, 210, 271, 293, 299, 325, 317, 299, 299, 299, 299, 223, 95, 299, 79,
444 44, 101, 299, 299, 299, 299, 100, 299, 299, 272, 329, 299, 299, 210, 271, 293, 299, 325, 317, 299, 299, 299,
445 299, 223, 197, 299, 119, 57, 107, 299, 299, 299, 299, 100, 299, 299, 272, 329, 299, 299, 210, 271, 293, 299,
446 325, 317, 299, 299, 299, 299, 223, 204, 299, 119, 76, 107, 299, 299, 299, 299, 100, 299, 299, 272, 329, 299,
447 299, 210, 271, 293, 299, 325, 317, 299, 299, 299, 299, 223, 204, 299, 119, 55, 107, 299, 299, 299, 299, 100,
448 299, 299, 272, 329, 299, 299, 210, 271, 293, 299, 325, 317, 299, 299, 299, 299, 223, 204, 299, 119, 67, 107,
449 299, 299, 299, 299, 100, 299, 299, 272, 329, 299, 299, 210, 271, 293, 299, 325, 317, 299, 299, 299, 299, 223,
450 234, 299, 122, 299, 107, 299, 299, 299, 299, 100, 299, 299, 299, 320, 299, 299, 210, 271, 293, 299, 325, 317,
451 409, 409, 299, 299, 223, 234, 299, 127, 299, 107, 299, 299, 299, 299, 100, 299, 299, 299, 250, 299, 299, 210,
452 271, 293, 299, 325, 524, 51, 253, 281, 282, 216, 299, 299, 223, 299, 441, 317, 409, 409, 409, 201, 223, 234,
453 299, 126, 299, 107, 441, 299, 299, 299, 100, 299, 299, 409, 409, 409, 299, 210, 271, 293, 201, 325, 299, 33,
454 299, 12, 299, 299, 299, 299, 299, 301, 17, 299, 299, 299, 299, 41, 40, 38, 299, 299, 317, 299, 299, 299, 12,
455 223, 234, 299, 123, 299, 107, 17, 321, 322, 328, 100, 41, 40, 38, 299, 299, 299, 210, 271, 293, 299, 325, 299,
456 299, 403, 299, 299, 299, 321, 322, 328, 299, 317, 299, 403, 299, 403, 223, 234, 403, 118, 299, 107, 299, 299,
457 299, 403, 100, 403, 299, 403, 299, 299, 299, 210, 271, 293, 317, 325, 232, 299, 299, 223, 234, 299, 125, 299,
458 107, 299, 299, 226, 299, 100, 299, 201, 299, 299, 299, 299, 210, 271, 293, 470, 325, 317, 201, 470, 454, 226,
459 223, 234, 299, 120, 299, 107, 299, 299, 299, 299, 100, 470, 299, 30, 299, 470, 454, 210, 271, 293, 201, 325, 12,
460 41, 40, 38, 454, 299, 454, 17, 470, 299, 454, 314, 41, 40, 38, 299, 315, 299, 321, 322, 328, 201, 454, 34, 454,
461 299, 470, 299, 454, 321, 322, 328, 299, 299, 226, 470, 41, 40, 38, 470, 454, 299, 114, 299, 299, 299, 470, 299,
462 299, 299, 470, 454, 299, 321, 322, 328, 299, 302, 299, 41, 40, 38, 201, 299, 299, 299, 299, 299, 454, 299, 454,
463 299, 470, 365, 454, 299, 321, 322, 328, 454, 221, 454, 299, 470, 299, 454, 166, 299, 12, 299, 178, 299, 299,
464 299, 299, 17, 260, 299, 441, 13, 319, 162, 299, 11, 196, 178, 299, 266, 137, 299, 441, 260, 178, 189, 13, 319,
465 299, 299, 260, 299, 299, 13, 319, 299, 267, 299, 299, 299, 189, 299, 299, 299, 299, 299, 299, 189, 299, 299,
466 299, 299, 299, 299, 299, 299, 311,);
468 static public $yy_lookahead = array(13, 14, 15, 15, 17, 18, 37, 20, 21, 64, 65, 66, 67, 26, 12, 70, 47, 30, 49, 32,
469 33, 27, 35, 54, 37, 23, 23, 40, 34, 27, 29, 44, 45, 46, 47, 48, 34, 50, 37, 52, 53, 54, 55, 55, 42, 42, 59, 13,
470 14, 15, 49, 17, 18, 76, 20, 21, 93, 14, 95, 96, 26, 18, 85, 86, 30, 31, 32, 33, 16, 35, 27, 37, 29, 23, 40, 23,
471 99, 34, 44, 45, 46, 47, 48, 75, 50, 77, 52, 53, 80, 55, 72, 37, 42, 59, 13, 14, 15, 1, 17, 18, 82, 20, 21, 49,
472 14, 72, 18, 26, 18, 76, 60, 30, 94, 32, 33, 82, 35, 27, 37, 29, 36, 40, 38, 27, 34, 44, 45, 46, 47, 48, 34, 50,
473 99, 52, 53, 36, 55, 81, 23, 51, 59, 13, 14, 15, 47, 17, 18, 14, 20, 21, 53, 18, 72, 54, 26, 12, 76, 42, 30, 65,
474 32, 33, 82, 35, 70, 37, 23, 14, 40, 54, 27, 18, 44, 45, 46, 47, 48, 34, 50, 99, 52, 53, 14, 55, 51, 42, 18, 59,
475 13, 14, 15, 1, 17, 18, 23, 20, 21, 103, 104, 47, 1, 26, 12, 47, 51, 30, 54, 32, 33, 53, 35, 12, 37, 15, 1, 40,
476 18, 27, 28, 44, 45, 46, 47, 48, 34, 50, 27, 52, 53, 18, 55, 72, 19, 34, 59, 13, 14, 15, 1, 17, 18, 82, 20, 21,
477 75, 1, 77, 78, 26, 80, 52, 19, 30, 55, 32, 33, 12, 35, 99, 37, 14, 50, 40, 16, 18, 14, 44, 45, 46, 47, 48, 27,
478 50, 27, 52, 53, 92, 55, 34, 47, 34, 59, 13, 14, 15, 53, 17, 18, 37, 20, 21, 54, 14, 72, 47, 26, 18, 76, 72, 30,
479 53, 32, 33, 82, 35, 27, 37, 16, 82, 40, 19, 37, 34, 44, 45, 46, 47, 48, 54, 50, 99, 52, 53, 49, 55, 99, 95, 96,
480 59, 13, 14, 15, 1, 17, 18, 14, 20, 21, 81, 18, 49, 16, 26, 12, 19, 72, 30, 75, 32, 33, 71, 35, 80, 37, 75, 82,
481 40, 15, 27, 80, 44, 45, 46, 47, 48, 34, 50, 94, 52, 53, 91, 55, 51, 80, 49, 59, 13, 14, 15, 37, 17, 18, 72, 20,
482 21, 9, 10, 11, 22, 26, 97, 96, 82, 30, 65, 32, 33, 55, 35, 70, 37, 100, 36, 40, 94, 37, 35, 44, 45, 46, 47, 48,
483 76, 50, 76, 52, 53, 49, 55, 72, 1, 16, 59, 13, 14, 15, 2, 17, 18, 82, 20, 21, 36, 104, 38, 99, 26, 99, 100, 1,
484 30, 94, 32, 33, 75, 35, 77, 37, 29, 80, 40, 36, 47, 38, 44, 45, 46, 47, 48, 27, 50, 15, 52, 53, 18, 55, 34, 92,
485 2, 59, 13, 14, 15, 76, 17, 18, 76, 20, 21, 90, 14, 19, 16, 26, 18, 19, 97, 30, 66, 32, 33, 69, 35, 90, 37, 15,
486 99, 40, 99, 99, 97, 44, 45, 46, 47, 48, 92, 50, 94, 52, 19, 49, 55, 47, 14, 49, 59, 51, 18, 53, 3, 4, 5, 6, 7,
487 8, 9, 92, 14, 94, 13, 14, 18, 19, 17, 55, 65, 20, 21, 95, 96, 70, 71, 26, 73, 74, 75, 30, 18, 32, 33, 80, 37, 1,
488 83, 84, 72, 24, 87, 88, 89, 47, 91, 49, 12, 51, 82, 53, 18, 65, 72, 5, 101, 102, 70, 71, 18, 73, 74, 75, 82, 1,
489 2, 38, 80, 18, 52, 83, 84, 18, 37, 87, 88, 89, 72, 91, 54, 72, 16, 52, 65, 18, 98, 92, 82, 70, 71, 82, 73, 74,
490 75, 18, 77, 81, 18, 80, 18, 43, 83, 84, 12, 35, 87, 88, 89, 65, 91, 18, 72, 92, 70, 71, 76, 73, 74, 75, 92, 47,
491 82, 82, 80, 85, 86, 83, 84, 94, 12, 87, 88, 89, 16, 91, 93, 80, 65, 99, 92, 79, 98, 70, 71, 27, 73, 74, 75, 80,
492 87, 80, 34, 80, 68, 37, 83, 84, 10, 80, 87, 88, 89, 80, 91, 105, 105, 49, 65, 105, 92, 105, 105, 70, 71, 102,
493 73, 74, 75, 105, 77, 105, 105, 80, 105, 105, 83, 84, 105, 105, 87, 88, 89, 65, 91, 105, 105, 105, 70, 71, 105,
494 73, 74, 75, 105, 105, 105, 105, 80, 14, 15, 83, 84, 18, 105, 87, 88, 89, 105, 91, 105, 105, 65, 105, 105, 105,
495 98, 70, 71, 105, 73, 74, 75, 105, 105, 105, 105, 80, 105, 105, 83, 84, 105, 5, 87, 88, 89, 105, 91, 105, 55, 13,
496 14, 15, 105, 17, 105, 65, 20, 21, 105, 105, 70, 71, 26, 73, 74, 75, 30, 105, 32, 33, 80, 105, 72, 83, 84, 105,
497 76, 87, 88, 89, 105, 91, 82, 65, 105, 85, 86, 105, 70, 71, 105, 73, 74, 75, 105, 59, 60, 105, 80, 99, 105, 83,
498 84, 105, 105, 87, 88, 89, 65, 91, 105, 105, 105, 70, 71, 105, 73, 74, 75, 105, 105, 105, 105, 80, 105, 105, 83,
499 84, 105, 5, 87, 88, 89, 105, 91, 105, 105, 13, 14, 15, 105, 17, 105, 65, 20, 21, 105, 105, 70, 71, 26, 73, 74,
500 75, 30, 105, 32, 33, 80, 105, 105, 83, 84, 105, 105, 87, 88, 89, 105, 91, 105, 65, 105, 105, 105, 105, 70, 71,
501 105, 73, 74, 75, 105, 59, 60, 105, 80, 105, 105, 83, 84, 105, 105, 87, 88, 89, 65, 91, 105, 72, 105, 70, 71, 76,
502 73, 74, 75, 105, 105, 82, 105, 80, 85, 86, 83, 84, 105, 105, 87, 88, 89, 105, 91, 65, 1, 105, 99, 105, 70, 71,
503 105, 73, 74, 75, 105, 39, 40, 41, 80, 105, 105, 83, 84, 105, 105, 87, 88, 89, 105, 91, 65, 28, 56, 57, 58, 70,
504 71, 105, 73, 74, 75, 105, 39, 40, 41, 80, 105, 105, 83, 84, 105, 105, 87, 88, 89, 105, 91, 65, 1, 56, 57, 58,
505 70, 71, 105, 73, 74, 75, 105, 105, 105, 105, 80, 105, 105, 83, 84, 105, 105, 87, 88, 89, 105, 91, 65, 105, 105,
506 105, 105, 70, 71, 105, 73, 74, 75, 38, 39, 40, 41, 80, 105, 105, 83, 84, 105, 105, 87, 88, 89, 105, 91, 65, 1,
507 56, 57, 58, 70, 71, 105, 73, 74, 75, 105, 12, 105, 105, 80, 105, 105, 83, 84, 105, 105, 87, 88, 89, 105, 91, 65,
508 1, 2, 105, 105, 70, 71, 105, 73, 74, 75, 105, 39, 40, 41, 80, 105, 105, 83, 84, 105, 105, 87, 88, 89, 105, 91,
509 65, 1, 56, 57, 58, 70, 71, 105, 73, 74, 75, 105, 39, 40, 41, 80, 105, 105, 83, 84, 105, 105, 87, 88, 89, 105,
510 91, 65, 105, 56, 57, 58, 70, 71, 105, 73, 74, 75, 38, 39, 40, 41, 80, 105, 105, 83, 84, 105, 105, 87, 88, 89,
511 105, 91, 65, 1, 56, 57, 58, 70, 71, 105, 73, 74, 75, 105, 12, 105, 105, 80, 105, 105, 83, 84, 105, 105, 87, 88,
512 89, 105, 91, 65, 105, 105, 105, 105, 70, 71, 105, 73, 74, 75, 105, 39, 40, 41, 80, 105, 105, 83, 84, 105, 105,
513 87, 88, 89, 105, 91, 65, 1, 56, 57, 58, 70, 71, 105, 73, 74, 75, 105, 12, 105, 105, 80, 105, 105, 83, 84, 105,
514 105, 87, 88, 89, 105, 91, 65, 105, 105, 105, 105, 70, 71, 105, 73, 74, 75, 105, 39, 40, 41, 80, 105, 105, 83,
515 84, 105, 105, 87, 88, 89, 105, 91, 65, 1, 56, 57, 58, 70, 71, 105, 73, 74, 75, 105, 12, 105, 105, 80, 105, 105,
516 83, 84, 105, 105, 87, 88, 89, 105, 91, 65, 1, 105, 105, 105, 70, 71, 105, 73, 74, 75, 105, 39, 40, 41, 80, 105,
517 105, 83, 84, 105, 105, 87, 88, 89, 105, 91, 65, 105, 56, 57, 58, 70, 71, 105, 73, 74, 75, 105, 39, 40, 41, 80,
518 105, 105, 83, 84, 105, 105, 87, 88, 89, 105, 91, 65, 105, 56, 57, 58, 70, 71, 105, 73, 74, 75, 105, 105, 105,
519 105, 80, 105, 105, 83, 84, 105, 105, 87, 88, 89, 105, 91, 65, 105, 105, 105, 105, 70, 71, 105, 73, 74, 75, 105,
520 105, 105, 105, 80, 105, 105, 83, 84, 105, 105, 87, 88, 89, 105, 91, 65, 105, 105, 105, 105, 70, 71, 105, 73, 74,
521 75, 105, 105, 105, 105, 80, 105, 105, 83, 84, 105, 105, 87, 88, 89, 105, 91, 65, 105, 105, 105, 105, 70, 71,
522 105, 73, 74, 75, 105, 105, 105, 105, 80, 105, 105, 83, 84, 105, 105, 87, 88, 89, 105, 91, 65, 105, 105, 105,
523 105, 70, 71, 105, 73, 74, 75, 105, 105, 105, 105, 80, 105, 105, 83, 84, 105, 105, 87, 88, 89, 105, 91, 65, 105,
524 105, 105, 105, 70, 71, 105, 73, 74, 75, 105, 105, 105, 105, 80, 105, 105, 83, 84, 105, 105, 87, 88, 89, 105, 91,
525 65, 105, 105, 105, 105, 70, 71, 105, 73, 74, 75, 105, 105, 105, 105, 80, 105, 105, 83, 84, 105, 105, 87, 88, 89,
526 105, 91, 65, 105, 105, 105, 105, 70, 71, 105, 73, 105, 75, 105, 105, 105, 105, 80, 105, 105, 105, 84, 105, 105,
527 87, 88, 89, 105, 91, 65, 1, 2, 105, 105, 70, 71, 105, 73, 105, 75, 105, 105, 105, 105, 80, 105, 105, 105, 84,
528 105, 105, 87, 88, 89, 105, 91, 62, 63, 64, 65, 66, 67, 105, 105, 70, 105, 37, 65, 39, 40, 41, 1, 70, 71, 105,
529 73, 105, 75, 49, 105, 105, 105, 80, 105, 105, 56, 57, 58, 105, 87, 88, 89, 1, 91, 105, 25, 105, 27, 105, 105,
530 105, 105, 105, 12, 34, 105, 105, 105, 105, 39, 40, 41, 105, 105, 65, 105, 105, 105, 27, 70, 71, 105, 73, 105,
531 75, 34, 56, 57, 58, 80, 39, 40, 41, 105, 105, 105, 87, 88, 89, 105, 91, 105, 105, 12, 105, 105, 105, 56, 57, 58,
532 105, 65, 105, 22, 105, 24, 70, 71, 27, 73, 105, 75, 105, 105, 105, 34, 80, 36, 105, 38, 105, 105, 105, 87, 88,
533 89, 65, 91, 47, 105, 105, 70, 71, 105, 73, 105, 75, 105, 105, 2, 105, 80, 105, 1, 105, 105, 105, 105, 87, 88,
534 89, 14, 91, 65, 1, 18, 19, 2, 70, 71, 105, 73, 105, 75, 105, 105, 105, 105, 80, 14, 105, 16, 105, 18, 19, 87,
535 88, 89, 1, 91, 27, 39, 40, 41, 47, 105, 49, 34, 51, 105, 53, 54, 39, 40, 41, 105, 54, 105, 56, 57, 58, 1, 47, 2,
536 49, 105, 51, 105, 53, 56, 57, 58, 105, 105, 2, 14, 39, 40, 41, 18, 19, 105, 22, 105, 105, 105, 14, 105, 105,
537 105, 18, 19, 105, 56, 57, 58, 105, 60, 105, 39, 40, 41, 1, 105, 105, 105, 105, 105, 47, 105, 49, 105, 51, 12,
538 53, 105, 56, 57, 58, 47, 19, 49, 105, 51, 105, 53, 72, 105, 27, 105, 76, 105, 105, 105, 105, 34, 82, 105, 37,
539 85, 86, 72, 105, 14, 15, 76, 105, 18, 72, 105, 49, 82, 76, 99, 85, 86, 105, 105, 82, 105, 105, 85, 86, 105, 35,
540 105, 105, 105, 99, 105, 105, 105, 105, 105, 105, 99, 105, 105, 105, 105, 105, 105, 105, 105, 55,);
546 static public $yy_shift_ofst = array(517, 410, 316, 81, 81, 316, 81, 410, 34, 34, - 13, 81, 128, 81, 81, 128, 81,
547 81, 269, 81, 81, 81, 175, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 363, 81, 81, 222, 222, 457, 457, 457, 457,
548 457, 1624, 1603, 1736, 1736, 1736, 1736, 1736, 517, 754, 1211, 1265, 1076, 1157, 1760, 941, 1725, 995, 1103,
549 1049, 1783, 1292, 1824, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 914, 914, 199, 198,
550 96, 342, 842, 90, 43, 278, 246, 96, 96, 342, 232, 342, 580, 2, 143, 190, 244, 331, 711, 321, 325, 291, 376, 446,
551 237, - 6, 462, - 6, 552, 432, 213, 500, 500, 480, 419, 446, 438, 438, 438, 438, 491, 438, 438, 491, 438, 438,
552 - 32, 1738, 1720, 466, 1784, 1795, 514, 1852, 247, 153, - 6, - 6, - 6, - 6, - 6, - 6, 97, - 12, 168, - 6, - 6,
553 97, 97, - 6, 156, 156, 97, 52, 97, - 6, - 6, - 6, 97, 251, 97, - 6, - 12, - 6, 97, - 6, - 6, - 12, - 6, - 12,
554 - 6, 211, - 6, 664, 438, 491, 438, 438, 438, 424, 438, 491, 515, 491, 424, - 32, - 32, - 32, - 32, - 32, 1562,
555 1664, 634, - 31, 1, 133, 50, 115, 152, 99, 88, 366, 84, 3, 405, 54, 415, 396, 274, 368, 553, 571, 542, 582, 534,
556 566, 558, 545, 567, 547, 583, 574, 608, 586, 590, 598, 515, 550, 593, 596, 609, 371, 264, 171, 533, 530,);
562 static public $yy_reduce_ofst = array(1527, 471, 619, 560, 644, 535, 504, 589, 1335, 1092, 1038, 1119, 1011, 984,
563 876, 1173, 903, 930, 957, 1146, 1200, 1443, 1416, 1362, 1227, 1389, 1254, 1281, 1308, 1065, 673, 849, 824, 708,
564 761, 736, 796, 1497, 1470, 1619, 1535, 1671, 1644, 1582, 1792, 1777, 1799, 845, 1792, 718, 556, - 55, 94, - 23,
565 - 23, - 23, - 23, - 23, - 23, - 23, - 23, - 23, - 23, - 23, - 23, 33, - 23, - 23, - 23, - 23, - 23, - 23, - 23,
566 - 23, - 23, - 23, - 23, - 23, - 23, 221, 279, 80, 169, 329, 347, 310, 18, 273, 159, 226, 8, - 37, 369, 338, 525,
567 525, 336, 336, 336, 293, 414, 231, 231, 422, 389, 336, 522, 231, 498, 336, 484, 400, 435, 414, 272, 336, 403,
568 397, 336, 336, 336, 444, 336, 336, 231, 336, 336, 336, 184, 184, 184, 184, 184, 184, 573, 184, 551, 557, 557,
569 557, 557, 557, 557, 559, 585, 184, 557, 557, 559, 559, 557, 544, 564, 559, 578, 559, 557, 557, 557, 559, 594,
570 559, 557, 587, 557, 559, 557, 557, 595, 557, 599, 557, 579, 557, 602, 399, 295, 399, 399, 399, 301, 399, 295,
571 375, 295, 301, 257, 56, 537, 532, 511,);
573 static public $yyExpectedTokens = array(array(3, 4, 5, 6, 7, 8, 9, 13, 14, 17, 20, 21, 26, 30, 32, 33,),
574 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 53, 55, 59,),
575 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 53, 55, 59,),
576 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 53, 55, 59,),
577 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 53, 55, 59,),
578 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 53, 55, 59,),
579 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 53, 55, 59,),
580 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 53, 55, 59,),
581 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 31, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 53, 55, 59,),
582 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 31, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 53, 55, 59,),
583 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 53, 54, 55, 59,),
584 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 53, 55, 59,),
585 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 53, 55, 59,),
586 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 53, 55, 59,),
587 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 53, 55, 59,),
588 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 53, 55, 59,),
589 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 53, 55, 59,),
590 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 53, 55, 59,),
591 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 53, 55, 59,),
592 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 53, 55, 59,),
593 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 53, 55, 59,),
594 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 53, 55, 59,),
595 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 53, 55, 59,),
596 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 53, 55, 59,),
597 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 53, 55, 59,),
598 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 53, 55, 59,),
599 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 53, 55, 59,),
600 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 53, 55, 59,),
601 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 53, 55, 59,),
602 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 53, 55, 59,),
603 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 53, 55, 59,),
604 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 53, 55, 59,),
605 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 53, 55, 59,),
606 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 53, 55, 59,),
607 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 53, 55, 59,),
608 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 53, 55, 59,),
609 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 53, 55, 59,),
610 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 53, 55, 59,),
611 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 53, 55, 59,),
612 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 55, 59,),
613 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 55, 59,),
614 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 55, 59,),
615 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 55, 59,),
616 array(13, 14, 15, 17, 18, 20, 21, 26, 30, 32, 33, 35, 37, 40, 44, 45, 46, 47, 48, 50, 52, 55, 59,),
617 array(1, 12, 27, 34, 39, 40, 41, 56, 57, 58,), array(1, 25, 27, 34, 39, 40, 41, 56, 57, 58,),
618 array(1, 27, 34, 39, 40, 41, 56, 57, 58,), array(1, 27, 34, 39, 40, 41, 56, 57, 58,),
619 array(1, 27, 34, 39, 40, 41, 56, 57, 58,), array(1, 27, 34, 39, 40, 41, 56, 57, 58,),
620 array(1, 27, 34, 39, 40, 41, 56, 57, 58,), array(3, 4, 5, 6, 7, 8, 9, 13, 14, 17, 20, 21, 26, 30, 32, 33,),
621 array(5, 13, 14, 15, 17, 20, 21, 26, 30, 32, 33, 59, 60,), array(1, 12, 39, 40, 41, 56, 57, 58,),
622 array(1, 12, 39, 40, 41, 56, 57, 58,), array(1, 2, 39, 40, 41, 56, 57, 58,),
623 array(1, 12, 39, 40, 41, 56, 57, 58,), array(1, 39, 40, 41, 56, 57, 58, 60,),
624 array(1, 28, 39, 40, 41, 56, 57, 58,), array(1, 39, 40, 41, 54, 56, 57, 58,),
625 array(1, 38, 39, 40, 41, 56, 57, 58,), array(1, 38, 39, 40, 41, 56, 57, 58,),
626 array(1, 12, 39, 40, 41, 56, 57, 58,), array(1, 22, 39, 40, 41, 56, 57, 58,), array(1, 39, 40, 41, 56, 57, 58,),
627 array(1, 12, 19, 27, 34, 37, 49,), array(1, 39, 40, 41, 56, 57, 58,), array(1, 39, 40, 41, 56, 57, 58,),
628 array(1, 39, 40, 41, 56, 57, 58,), array(1, 39, 40, 41, 56, 57, 58,), array(1, 39, 40, 41, 56, 57, 58,),
629 array(1, 39, 40, 41, 56, 57, 58,), array(1, 39, 40, 41, 56, 57, 58,), array(1, 39, 40, 41, 56, 57, 58,),
630 array(1, 39, 40, 41, 56, 57, 58,), array(1, 39, 40, 41, 56, 57, 58,), array(1, 39, 40, 41, 56, 57, 58,),
631 array(39, 40, 41, 56, 57, 58,), array(39, 40, 41, 56, 57, 58,), array(1, 12, 27, 34,), array(15, 18, 52, 55,),
632 array(1, 27, 34,), array(15, 37, 55,), array(5, 13, 14, 15, 17, 20, 21, 26, 30, 32, 33, 59, 60,),
633 array(14, 18, 27, 29, 34,), array(14, 18, 27, 29, 34,), array(14, 18, 27, 34,), array(14, 18, 27, 34,),
634 array(1, 27, 34,), array(1, 27, 34,), array(15, 37, 55,), array(19, 47, 53,), array(15, 37, 55,), array(1, 2,),
635 array(12, 23, 27, 34, 42,), array(12, 23, 27, 34, 42,), array(1, 12, 27, 28, 34,), array(1, 12, 27, 34,),
636 array(1, 12, 27, 34,), array(14, 15, 18, 55,), array(14, 18, 51,), array(16, 19, 49,), array(16, 19, 49,),
637 array(9, 10, 11,), array(15, 18,), array(1, 54,), array(27, 34,), array(19, 49,), array(27, 34,), array(1, 12,),
638 array(27, 34,), array(1, 19,), array(14, 18,), array(14, 18,), array(15, 55,), array(1, 29,), array(15, 18,),
639 array(1,), array(1,), array(1,), array(1,), array(19,), array(1,), array(1,), array(19,), array(1,), array(1,),
640 array(), array(2, 14, 16, 18, 19, 47, 49, 51, 53,), array(2, 14, 18, 19, 47, 49, 51, 53, 54,),
641 array(2, 14, 16, 18, 19, 47, 49, 51, 53,), array(2, 14, 18, 19, 47, 49, 51, 53,),
642 array(2, 14, 18, 19, 47, 49, 51, 53,), array(14, 18, 19, 47, 49, 51, 53,), array(14, 15, 18, 35, 55,),
643 array(16, 47, 53,), array(14, 18, 51,), array(27, 34,), array(27, 34,), array(27, 34,), array(27, 34,),
644 array(27, 34,), array(27, 34,), array(47, 53,), array(15, 55,), array(14, 18,), array(27, 34,), array(27, 34,),
645 array(47, 53,), array(47, 53,), array(27, 34,), array(47, 53,), array(47, 53,), array(47, 53,), array(16, 23,),
646 array(47, 53,), array(27, 34,), array(27, 34,), array(27, 34,), array(47, 53,), array(14, 37,), array(47, 53,),
647 array(27, 34,), array(15, 55,), array(27, 34,), array(47, 53,), array(27, 34,), array(27, 34,), array(15, 55,),
648 array(27, 34,), array(15, 55,), array(27, 34,), array(18, 50,), array(27, 34,), array(10,), array(1,),
649 array(19,), array(1,), array(1,), array(1,), array(2,), array(1,), array(19,), array(37,), array(19,),
650 array(2,), array(), array(), array(), array(), array(), array(1, 2, 37, 39, 40, 41, 49, 56, 57, 58,),
651 array(12, 22, 24, 27, 34, 36, 38, 47,), array(12, 16, 27, 34, 37, 49,), array(37, 47, 49, 54,),
652 array(29, 37, 49,), array(14, 18, 51,), array(23, 42, 60,), array(23, 42, 54,), array(47, 54,), array(36, 54,),
653 array(18, 51,), array(22, 36,), array(36, 38,), array(23, 42,), array(16, 47,), array(37, 49,), array(36, 38,),
654 array(36, 38,), array(37, 49,), array(37, 49,), array(37,), array(18,), array(54,), array(16,), array(52,),
655 array(5,), array(18,), array(38,), array(18,), array(52,), array(18,), array(43,), array(12,), array(35,),
656 array(47,), array(18,), array(37,), array(18,), array(18,), array(18,), array(18,), array(35,), array(54,),
657 array(23,), array(24,), array(18,), array(), array(), array(), array(), array(), array(), array(), array(),
658 array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(),
659 array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(),
660 array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(),
661 array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(),
662 array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(),
663 array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(),
664 array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(),
667 static public $yy_default = array(334, 508, 523, 488, 488, 523, 488, 523, 523, 523, 523, 523, 523, 523, 523, 523,
668 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523,
669 523, 523, 523, 523, 523, 523, 523, 393, 360, 393, 357, 393, 369, 331, 523, 523, 523, 523, 523, 523, 398, 523,
670 523, 523, 523, 523, 414, 431, 405, 400, 511, 395, 509, 486, 487, 374, 398, 404, 510, 419, 420, 407, 523, 393,
671 523, 523, 393, 393, 393, 393, 393, 393, 523, 500, 523, 383, 421, 421, 407, 407, 407, 523, 454, 444, 444, 523,
672 523, 407, 393, 444, 371, 407, 393, 387, 454, 454, 523, 407, 523, 389, 422, 407, 410, 497, 417, 423, 444, 424,
673 411, 495, 443, 443, 443, 443, 443, 443, 523, 470, 456, 361, 378, 372, 362, 364, 377, 451, 523, 454, 356, 370,
674 480, 481, 373, 447, 449, 448, 523, 478, 367, 366, 368, 479, 454, 452, 358, 523, 380, 450, 376, 354, 523, 382,
675 523, 379, 523, 381, 348, 384, 498, 390, 413, 388, 489, 438, 475, 454, 501, 490, 494, 494, 454, 494, 454, 431,
676 427, 431, 431, 431, 455, 421, 421, 427, 523, 523, 523, 523, 421, 427, 439, 523, 523, 431, 523, 499, 523, 523,
677 523, 523, 339, 523, 523, 523, 523, 523, 433, 523, 523, 427, 523, 470, 523, 523, 523, 523, 429, 434, 421, 401,
678 523, 464, 483, 375, 461, 484, 406, 463, 469, 462, 433, 474, 394, 402, 496, 470, 460, 332, 445, 491, 492, 425,
679 386, 493, 392, 472, 473, 426, 428, 457, 458, 459, 453, 409, 430, 432, 408, 363, 391, 341, 340, 342, 338, 337,
680 333, 335, 336, 343, 344, 350, 351, 352, 349, 347, 345, 346, 434, 435, 512, 513, 514, 385, 476, 485, 519, 520,
681 517, 516, 505, 507, 506, 515, 522, 518, 521, 471, 477, 467, 465, 468, 440, 437, 436, 415, 416, 502, 503, 442,
682 466, 446, 441, 418, 504, 412, 482,);
700 public function Trace($TraceFILE, $zTracePrompt)
704 } elseif (!$zTracePrompt) {
707 $this->yyTraceFILE = $TraceFILE;
708 $this->yyTracePrompt = $zTracePrompt;
713 $this->yyTraceFILE = fopen(
'php://output',
'w');
714 $this->yyTracePrompt =
'<br>';
725 public $yyTokenName = array(
'$',
'VERT',
'COLON',
'PHP',
'NOCACHE',
'TEXT',
'STRIPON',
'STRIPOFF',
'BLOCKSOURCE',
726 'LITERALSTART',
'LITERALEND',
'LITERAL',
'RDEL',
'SIMPLEOUTPUT',
'LDEL',
'DOLLARID',
'EQUAL',
'SIMPLETAG',
'ID',
727 'PTR',
'LDELIF',
'LDELFOR',
'SEMICOLON',
'INCDEC',
'TO',
'STEP',
'LDELFOREACH',
'SPACE',
'AS',
'APTR',
728 'LDELSETFILTER',
'SMARTYBLOCKCHILDPARENT',
'CLOSETAG',
'LDELSLASH',
'ATTR',
'INTEGER',
'COMMA',
'OPENP',
729 'CLOSEP',
'MATH',
'UNIMATH',
'ISIN',
'INSTANCEOF',
'QMARK',
'NOT',
'TYPECAST',
'HEX',
'DOT',
730 'SINGLEQUOTESTRING',
'DOUBLECOLON',
'NAMESPACE',
'AT',
'HATCH',
'OPENB',
'CLOSEB',
'DOLLAR',
'LOGOP',
'TLOGOP',
731 'SINGLECOND',
'QUOTE',
'BACKTICK',
'error',
'start',
'template',
'template_element',
'smartytag',
'literal',
732 'text_content',
'literal_elements',
'literal_element',
'tag',
'variable',
'attributes',
'value',
'expr',
733 'varindexed',
'modifierlist',
'statement',
'statements',
'foraction',
'varvar',
'modparameters',
'attribute',
734 'ternary',
'array',
'lop',
'scond',
'ns1',
'function',
'doublequoted_with_quotes',
'static_class_access',
735 'object',
'arrayindex',
'indexdef',
'varvarele',
'objectchain',
'objectelement',
'method',
'params',
'modifier',
736 'modparameter',
'arrayelements',
'arrayelement',
'doublequoted',
'doublequotedcontent',);
738 public static $yyRuleName = array(
'start ::= template',
'template ::= template_element',
739 'template ::= template template_element',
'template ::=',
'template_element ::= smartytag',
740 'template_element ::= literal',
'template_element ::= PHP',
'template_element ::= NOCACHE',
741 'template_element ::= text_content',
'text_content ::= TEXT',
'text_content ::= text_content TEXT',
742 'template_element ::= STRIPON',
'template_element ::= STRIPOFF',
'template_element ::= BLOCKSOURCE',
743 'literal ::= LITERALSTART LITERALEND',
'literal ::= LITERALSTART literal_elements LITERALEND',
744 'literal_elements ::= literal_elements literal_element',
'literal_elements ::=',
'literal_element ::= literal',
745 'literal_element ::= LITERAL',
'smartytag ::= tag RDEL',
'smartytag ::= SIMPLEOUTPUT',
'tag ::= LDEL variable',
746 'tag ::= LDEL variable attributes',
'tag ::= LDEL value',
'tag ::= LDEL value attributes',
'tag ::= LDEL expr',
747 'tag ::= LDEL expr attributes',
'tag ::= LDEL DOLLARID EQUAL value',
'tag ::= LDEL DOLLARID EQUAL expr',
748 'tag ::= LDEL DOLLARID EQUAL expr attributes',
'tag ::= LDEL varindexed EQUAL expr attributes',
749 'smartytag ::= SIMPLETAG',
'tag ::= LDEL ID attributes',
'tag ::= LDEL ID',
750 'tag ::= LDEL ID modifierlist attributes',
'tag ::= LDEL ID PTR ID attributes',
751 'tag ::= LDEL ID PTR ID modifierlist attributes',
'tag ::= LDELIF expr',
'tag ::= LDELIF expr attributes',
752 'tag ::= LDELIF statement',
'tag ::= LDELIF statement attributes',
753 'tag ::= LDELFOR statements SEMICOLON expr SEMICOLON varindexed foraction attributes',
754 'foraction ::= EQUAL expr',
'foraction ::= INCDEC',
'tag ::= LDELFOR statement TO expr attributes',
755 'tag ::= LDELFOR statement TO expr STEP expr attributes',
'tag ::= LDELFOREACH attributes',
756 'tag ::= LDELFOREACH SPACE value AS varvar attributes',
757 'tag ::= LDELFOREACH SPACE value AS varvar APTR varvar attributes',
758 'tag ::= LDELFOREACH SPACE expr AS varvar attributes',
759 'tag ::= LDELFOREACH SPACE expr AS varvar APTR varvar attributes',
'tag ::= LDELSETFILTER ID modparameters',
760 'tag ::= LDELSETFILTER ID modparameters modifierlist',
'tag ::= LDEL SMARTYBLOCKCHILDPARENT',
761 'smartytag ::= CLOSETAG',
'tag ::= LDELSLASH ID',
'tag ::= LDELSLASH ID modifierlist',
762 'tag ::= LDELSLASH ID PTR ID',
'tag ::= LDELSLASH ID PTR ID modifierlist',
763 'attributes ::= attributes attribute',
'attributes ::= attribute',
'attributes ::=',
764 'attribute ::= SPACE ID EQUAL ID',
'attribute ::= ATTR expr',
'attribute ::= ATTR value',
765 'attribute ::= SPACE ID',
'attribute ::= SPACE expr',
'attribute ::= SPACE value',
766 'attribute ::= SPACE INTEGER EQUAL expr',
'statements ::= statement',
767 'statements ::= statements COMMA statement',
'statement ::= DOLLARID EQUAL INTEGER',
768 'statement ::= DOLLARID EQUAL expr',
'statement ::= varindexed EQUAL expr',
769 'statement ::= OPENP statement CLOSEP',
'expr ::= value',
'expr ::= ternary',
'expr ::= DOLLARID COLON ID',
770 'expr ::= expr MATH value',
'expr ::= expr UNIMATH value',
'expr ::= array',
'expr ::= expr modifierlist',
771 'expr ::= expr lop expr',
'expr ::= expr scond',
'expr ::= expr ISIN array',
'expr ::= expr ISIN value',
772 'expr ::= variable INSTANCEOF ns1',
'ternary ::= OPENP expr CLOSEP QMARK DOLLARID COLON expr',
773 'ternary ::= OPENP expr CLOSEP QMARK expr COLON expr',
'value ::= variable',
'value ::= UNIMATH value',
774 'value ::= NOT value',
'value ::= TYPECAST value',
'value ::= variable INCDEC',
'value ::= HEX',
775 'value ::= INTEGER',
'value ::= INTEGER DOT INTEGER',
'value ::= INTEGER DOT',
'value ::= DOT INTEGER',
776 'value ::= ID',
'value ::= function',
'value ::= OPENP expr CLOSEP',
'value ::= SINGLEQUOTESTRING',
777 'value ::= doublequoted_with_quotes',
'value ::= varindexed DOUBLECOLON static_class_access',
778 'value ::= smartytag',
'value ::= value modifierlist',
'value ::= NAMESPACE',
779 'value ::= ns1 DOUBLECOLON static_class_access',
'ns1 ::= ID',
'ns1 ::= NAMESPACE',
'variable ::= DOLLARID',
780 'variable ::= varindexed',
'variable ::= varvar AT ID',
'variable ::= object',
'variable ::= HATCH ID HATCH',
781 'variable ::= HATCH ID HATCH arrayindex',
'variable ::= HATCH variable HATCH',
782 'variable ::= HATCH variable HATCH arrayindex',
'varindexed ::= DOLLARID arrayindex',
783 'varindexed ::= varvar arrayindex',
'arrayindex ::= arrayindex indexdef',
'arrayindex ::=',
784 'indexdef ::= DOT DOLLARID',
'indexdef ::= DOT varvar',
'indexdef ::= DOT varvar AT ID',
'indexdef ::= DOT ID',
785 'indexdef ::= DOT INTEGER',
'indexdef ::= DOT LDEL expr RDEL',
'indexdef ::= OPENB ID CLOSEB',
786 'indexdef ::= OPENB ID DOT ID CLOSEB',
'indexdef ::= OPENB SINGLEQUOTESTRING CLOSEB',
787 'indexdef ::= OPENB INTEGER CLOSEB',
'indexdef ::= OPENB DOLLARID CLOSEB',
'indexdef ::= OPENB variable CLOSEB',
788 'indexdef ::= OPENB value CLOSEB',
'indexdef ::= OPENB expr CLOSEB',
'indexdef ::= OPENB CLOSEB',
789 'varvar ::= DOLLARID',
'varvar ::= DOLLAR',
'varvar ::= varvar varvarele',
'varvarele ::= ID',
790 'varvarele ::= LDEL expr RDEL',
'object ::= varindexed objectchain',
'objectchain ::= objectelement',
791 'objectchain ::= objectchain objectelement',
'objectelement ::= PTR ID arrayindex',
792 'objectelement ::= PTR varvar arrayindex',
'objectelement ::= PTR LDEL expr RDEL arrayindex',
793 'objectelement ::= PTR ID LDEL expr RDEL arrayindex',
'objectelement ::= PTR method',
794 'function ::= ns1 OPENP params CLOSEP',
'method ::= ID OPENP params CLOSEP',
795 'method ::= DOLLARID OPENP params CLOSEP',
'params ::= params COMMA expr',
'params ::= expr',
'params ::=',
796 'modifierlist ::= modifierlist modifier modparameters',
'modifierlist ::= modifier modparameters',
797 'modifier ::= VERT AT ID',
'modifier ::= VERT ID',
'modparameters ::= modparameters modparameter',
798 'modparameters ::=',
'modparameter ::= COLON value',
'modparameter ::= COLON array',
799 'static_class_access ::= method',
'static_class_access ::= method objectchain',
'static_class_access ::= ID',
800 'static_class_access ::= DOLLARID arrayindex',
'static_class_access ::= DOLLARID arrayindex objectchain',
801 'lop ::= LOGOP',
'lop ::= TLOGOP',
'scond ::= SINGLECOND',
'array ::= OPENB arrayelements CLOSEB',
802 'arrayelements ::= arrayelement',
'arrayelements ::= arrayelements COMMA arrayelement',
'arrayelements ::=',
803 'arrayelement ::= value APTR expr',
'arrayelement ::= ID APTR expr',
'arrayelement ::= expr',
804 'doublequoted_with_quotes ::= QUOTE QUOTE',
'doublequoted_with_quotes ::= QUOTE doublequoted QUOTE',
805 'doublequoted ::= doublequoted doublequotedcontent',
'doublequoted ::= doublequotedcontent',
806 'doublequotedcontent ::= BACKTICK variable BACKTICK',
'doublequotedcontent ::= BACKTICK expr BACKTICK',
807 'doublequotedcontent ::= DOLLARID',
'doublequotedcontent ::= LDEL variable RDEL',
808 'doublequotedcontent ::= LDEL expr RDEL',
'doublequotedcontent ::= smartytag',
'doublequotedcontent ::= TEXT',);
812 if ($tokenType === 0) {
813 return 'End of Input';
815 if ($tokenType > 0 && $tokenType < count($this->yyTokenName)) {
816 return $this->yyTokenName[$tokenType];
832 if (empty($this->yystack)) {
835 $yytos = array_pop($this->yystack);
836 if ($this->yyTraceFILE && $this->yyidx >= 0) {
837 fwrite($this->yyTraceFILE, $this->yyTracePrompt .
'Popping ' . $this->yyTokenName[$yytos->major] .
"\n");
840 self::yy_destructor(
$yymajor, $yytos->minor);
848 while ($this->yystack !== Array()) {
851 if (is_resource($this->yyTraceFILE)) {
852 fclose($this->yyTraceFILE);
858 static $res3 = array();
859 static $res4 = array();
861 $expected = self::$yyExpectedTokens[$state];
862 if (isset($res3[$state][$token])) {
863 if ($res3[$state][$token]) {
867 if ($res3[$state][$token] = in_array($token, self::$yyExpectedTokens[$state],
true)) {
875 if ($yyact >= self::YYNSTATE && $yyact < self::YYNSTATE + self::YYNRULE) {
879 if ($done ++ == 100) {
881 $this->yystack = $stack;
884 return array_unique($expected);
886 $yyruleno = $yyact - self::YYNSTATE;
887 $this->yyidx -= self::$yyRuleInfo[$yyruleno][1];
888 $nextstate = $this->
yy_find_reduce_action($this->yystack[$this->yyidx]->stateno, self::$yyRuleInfo[$yyruleno][0]);
889 if (isset(self::$yyExpectedTokens[$nextstate])) {
890 $expected = array_merge($expected, self::$yyExpectedTokens[$nextstate]);
891 if (isset($res4[$nextstate][$token])) {
892 if ($res4[$nextstate][$token]) {
894 $this->yystack = $stack;
895 return array_unique($expected);
898 if ($res4[$nextstate][$token] = in_array($token, self::$yyExpectedTokens[$nextstate],
true)) {
900 $this->yystack = $stack;
901 return array_unique($expected);
905 if ($nextstate < self::YYNSTATE) {
909 $x->stateno = $nextstate;
910 $x->major = self::$yyRuleInfo[$yyruleno][0];
913 } elseif ($nextstate == self::YYNSTATE + self::YYNRULE + 1) {
915 $this->yystack = $stack;
919 return array_unique($expected);
920 } elseif ($nextstate === self::YY_NO_ACTION) {
922 $this->yystack = $stack;
933 $this->yystack = $stack;
935 return array_unique($expected);
940 static $res = array();
941 static $res2 = array();
946 if (isset($res[$state][$token])) {
947 if ($res[$state][$token]) {
951 if ($res[$state][$token] = in_array($token, self::$yyExpectedTokens[$state],
true)) {
959 if ($yyact >= self::YYNSTATE && $yyact < self::YYNSTATE + self::YYNRULE) {
963 if ($done ++ == 100) {
965 $this->yystack = $stack;
970 $yyruleno = $yyact - self::YYNSTATE;
971 $this->yyidx -= self::$yyRuleInfo[$yyruleno][1];
972 $nextstate = $this->
yy_find_reduce_action($this->yystack[$this->yyidx]->stateno, self::$yyRuleInfo[$yyruleno][0]);
973 if (isset($res2[$nextstate][$token])) {
974 if ($res2[$nextstate][$token]) {
976 $this->yystack = $stack;
980 if ($res2[$nextstate][$token] = (isset(self::$yyExpectedTokens[$nextstate]) && in_array($token, self::$yyExpectedTokens[$nextstate],
true))) {
982 $this->yystack = $stack;
986 if ($nextstate < self::YYNSTATE) {
990 $x->stateno = $nextstate;
991 $x->major = self::$yyRuleInfo[$yyruleno][0];
994 } elseif ($nextstate == self::YYNSTATE + self::YYNRULE + 1) {
996 $this->yystack = $stack;
1005 } elseif ($nextstate === self::YY_NO_ACTION) {
1007 $this->yystack = $stack;
1011 $yyact = $nextstate;
1018 $this->yystack = $stack;
1028 if (!isset(self::$yy_shift_ofst[$stateno])) {
1030 return self::$yy_default[$stateno];
1032 $i = self::$yy_shift_ofst[$stateno];
1033 if ($i === self::YY_SHIFT_USE_DFLT) {
1034 return self::$yy_default[$stateno];
1036 if ($iLookAhead == self::YYNOCODE) {
1037 return self::YY_NO_ACTION;
1040 if ($i < 0 || $i >= self::YY_SZ_ACTTAB || self::$yy_lookahead[$i] != $iLookAhead) {
1041 if (count(self::$yyFallback) && $iLookAhead < count(self::$yyFallback) && ($iFallback = self::$yyFallback[$iLookAhead]) != 0) {
1042 if ($this->yyTraceFILE) {
1043 fwrite($this->yyTraceFILE, $this->yyTracePrompt .
"FALLBACK " . $this->yyTokenName[$iLookAhead] .
" => " . $this->yyTokenName[$iFallback] .
"\n");
1049 return self::$yy_default[$stateno];
1051 return self::$yy_action[$i];
1059 if (!isset(self::$yy_reduce_ofst[$stateno])) {
1060 return self::$yy_default[$stateno];
1062 $i = self::$yy_reduce_ofst[$stateno];
1063 if ($i == self::YY_REDUCE_USE_DFLT) {
1064 return self::$yy_default[$stateno];
1066 if ($iLookAhead == self::YYNOCODE) {
1067 return self::YY_NO_ACTION;
1070 if ($i < 0 || $i >= self::YY_SZ_ACTTAB || self::$yy_lookahead[$i] != $iLookAhead) {
1071 return self::$yy_default[$stateno];
1073 return self::$yy_action[$i];
1077 public function yy_shift($yyNewState, $yyMajor, $yypMinor)
1080 if ($this->yyidx >= self::YYSTACKDEPTH) {
1082 if ($this->yyTraceFILE) {
1083 fprintf($this->yyTraceFILE,
"%sStack Overflow!\n", $this->yyTracePrompt);
1085 while ($this->yyidx >= 0) {
1088 #line 190 "../smarty/lexer/smarty_internal_templateparser.y"
1090 $this->internalError =
true;
1091 $this->compiler->trigger_template_error(
"Stack overflow in template parser");
1096 $yytos->stateno = $yyNewState;
1097 $yytos->major = $yyMajor;
1098 $yytos->minor = $yypMinor;
1099 $this->yystack[] = $yytos;
1100 if ($this->yyTraceFILE && $this->yyidx > 0) {
1101 fprintf($this->yyTraceFILE,
"%sShift %d\n", $this->yyTracePrompt, $yyNewState);
1102 fprintf($this->yyTraceFILE,
"%sStack:", $this->yyTracePrompt);
1104 fprintf($this->yyTraceFILE,
" %s", $this->yyTokenName[$this->yystack[$i]->major]);
1106 fwrite($this->yyTraceFILE,
"\n");
1110 public static $yyRuleInfo = array(array(0 => 62, 1 => 1), array(0 => 63, 1 => 1), array(0 => 63, 1 => 2),
1111 array(0 => 63, 1 => 0), array(0 => 64, 1 => 1), array(0 => 64, 1 => 1), array(0 => 64, 1 => 1),
1112 array(0 => 64, 1 => 1), array(0 => 64, 1 => 1), array(0 => 67, 1 => 1), array(0 => 67, 1 => 2),
1113 array(0 => 64, 1 => 1), array(0 => 64, 1 => 1), array(0 => 64, 1 => 1), array(0 => 66, 1 => 2),
1114 array(0 => 66, 1 => 3), array(0 => 68, 1 => 2), array(0 => 68, 1 => 0), array(0 => 69, 1 => 1),
1115 array(0 => 69, 1 => 1), array(0 => 65, 1 => 2), array(0 => 65, 1 => 1), array(0 => 70, 1 => 2),
1116 array(0 => 70, 1 => 3), array(0 => 70, 1 => 2), array(0 => 70, 1 => 3), array(0 => 70, 1 => 2),
1117 array(0 => 70, 1 => 3), array(0 => 70, 1 => 4), array(0 => 70, 1 => 4), array(0 => 70, 1 => 5),
1118 array(0 => 70, 1 => 5), array(0 => 65, 1 => 1), array(0 => 70, 1 => 3), array(0 => 70, 1 => 2),
1119 array(0 => 70, 1 => 4), array(0 => 70, 1 => 5), array(0 => 70, 1 => 6), array(0 => 70, 1 => 2),
1120 array(0 => 70, 1 => 3), array(0 => 70, 1 => 2), array(0 => 70, 1 => 3), array(0 => 70, 1 => 8),
1121 array(0 => 79, 1 => 2), array(0 => 79, 1 => 1), array(0 => 70, 1 => 5), array(0 => 70, 1 => 7),
1122 array(0 => 70, 1 => 2), array(0 => 70, 1 => 6), array(0 => 70, 1 => 8), array(0 => 70, 1 => 6),
1123 array(0 => 70, 1 => 8), array(0 => 70, 1 => 3), array(0 => 70, 1 => 4), array(0 => 70, 1 => 2),
1124 array(0 => 65, 1 => 1), array(0 => 70, 1 => 2), array(0 => 70, 1 => 3), array(0 => 70, 1 => 4),
1125 array(0 => 70, 1 => 5), array(0 => 72, 1 => 2), array(0 => 72, 1 => 1), array(0 => 72, 1 => 0),
1126 array(0 => 82, 1 => 4), array(0 => 82, 1 => 2), array(0 => 82, 1 => 2), array(0 => 82, 1 => 2),
1127 array(0 => 82, 1 => 2), array(0 => 82, 1 => 2), array(0 => 82, 1 => 4), array(0 => 78, 1 => 1),
1128 array(0 => 78, 1 => 3), array(0 => 77, 1 => 3), array(0 => 77, 1 => 3), array(0 => 77, 1 => 3),
1129 array(0 => 77, 1 => 3), array(0 => 74, 1 => 1), array(0 => 74, 1 => 1), array(0 => 74, 1 => 3),
1130 array(0 => 74, 1 => 3), array(0 => 74, 1 => 3), array(0 => 74, 1 => 1), array(0 => 74, 1 => 2),
1131 array(0 => 74, 1 => 3), array(0 => 74, 1 => 2), array(0 => 74, 1 => 3), array(0 => 74, 1 => 3),
1132 array(0 => 74, 1 => 3), array(0 => 83, 1 => 7), array(0 => 83, 1 => 7), array(0 => 73, 1 => 1),
1133 array(0 => 73, 1 => 2), array(0 => 73, 1 => 2), array(0 => 73, 1 => 2), array(0 => 73, 1 => 2),
1134 array(0 => 73, 1 => 1), array(0 => 73, 1 => 1), array(0 => 73, 1 => 3), array(0 => 73, 1 => 2),
1135 array(0 => 73, 1 => 2), array(0 => 73, 1 => 1), array(0 => 73, 1 => 1), array(0 => 73, 1 => 3),
1136 array(0 => 73, 1 => 1), array(0 => 73, 1 => 1), array(0 => 73, 1 => 3), array(0 => 73, 1 => 1),
1137 array(0 => 73, 1 => 2), array(0 => 73, 1 => 1), array(0 => 73, 1 => 3), array(0 => 87, 1 => 1),
1138 array(0 => 87, 1 => 1), array(0 => 71, 1 => 1), array(0 => 71, 1 => 1), array(0 => 71, 1 => 3),
1139 array(0 => 71, 1 => 1), array(0 => 71, 1 => 3), array(0 => 71, 1 => 4), array(0 => 71, 1 => 3),
1140 array(0 => 71, 1 => 4), array(0 => 75, 1 => 2), array(0 => 75, 1 => 2), array(0 => 92, 1 => 2),
1141 array(0 => 92, 1 => 0), array(0 => 93, 1 => 2), array(0 => 93, 1 => 2), array(0 => 93, 1 => 4),
1142 array(0 => 93, 1 => 2), array(0 => 93, 1 => 2), array(0 => 93, 1 => 4), array(0 => 93, 1 => 3),
1143 array(0 => 93, 1 => 5), array(0 => 93, 1 => 3), array(0 => 93, 1 => 3), array(0 => 93, 1 => 3),
1144 array(0 => 93, 1 => 3), array(0 => 93, 1 => 3), array(0 => 93, 1 => 3), array(0 => 93, 1 => 2),
1145 array(0 => 80, 1 => 1), array(0 => 80, 1 => 1), array(0 => 80, 1 => 2), array(0 => 94, 1 => 1),
1146 array(0 => 94, 1 => 3), array(0 => 91, 1 => 2), array(0 => 95, 1 => 1), array(0 => 95, 1 => 2),
1147 array(0 => 96, 1 => 3), array(0 => 96, 1 => 3), array(0 => 96, 1 => 5), array(0 => 96, 1 => 6),
1148 array(0 => 96, 1 => 2), array(0 => 88, 1 => 4), array(0 => 97, 1 => 4), array(0 => 97, 1 => 4),
1149 array(0 => 98, 1 => 3), array(0 => 98, 1 => 1), array(0 => 98, 1 => 0), array(0 => 76, 1 => 3),
1150 array(0 => 76, 1 => 2), array(0 => 99, 1 => 3), array(0 => 99, 1 => 2), array(0 => 81, 1 => 2),
1151 array(0 => 81, 1 => 0), array(0 => 100, 1 => 2), array(0 => 100, 1 => 2), array(0 => 90, 1 => 1),
1152 array(0 => 90, 1 => 2), array(0 => 90, 1 => 1), array(0 => 90, 1 => 2), array(0 => 90, 1 => 3),
1153 array(0 => 85, 1 => 1), array(0 => 85, 1 => 1), array(0 => 86, 1 => 1), array(0 => 84, 1 => 3),
1154 array(0 => 101, 1 => 1), array(0 => 101, 1 => 3), array(0 => 101, 1 => 0), array(0 => 102, 1 => 3),
1155 array(0 => 102, 1 => 3), array(0 => 102, 1 => 1), array(0 => 89, 1 => 2), array(0 => 89, 1 => 3),
1156 array(0 => 103, 1 => 2), array(0 => 103, 1 => 1), array(0 => 104, 1 => 3), array(0 => 104, 1 => 3),
1157 array(0 => 104, 1 => 1), array(0 => 104, 1 => 3), array(0 => 104, 1 => 3), array(0 => 104, 1 => 1),
1158 array(0 => 104, 1 => 1),);
1160 public static $yyReduceMap = array(0 => 0, 1 => 1, 2 => 2, 4 => 4, 5 => 5, 6 => 6, 7 => 7, 8 => 8, 9 => 9,
1161 18 => 9, 19 => 9, 44 => 9, 67 => 9, 68 => 9, 76 => 9, 77 => 9, 81 => 9, 90 => 9,
1162 95 => 9, 96 => 9, 101 => 9, 103 => 9, 104 => 9, 108 => 9, 110 => 9, 111 => 9,
1163 115 => 9, 175 => 9, 180 => 9, 10 => 10, 11 => 11, 12 => 12, 13 => 13, 14 => 14,
1164 17 => 14, 15 => 15, 75 => 15, 16 => 16, 91 => 16, 93 => 16, 94 => 16, 122 => 16,
1165 20 => 20, 21 => 21, 22 => 22, 24 => 22, 26 => 22, 23 => 23, 25 => 23, 27 => 23,
1166 28 => 28, 29 => 28, 30 => 30, 31 => 31, 32 => 32, 33 => 33, 34 => 34, 35 => 35,
1167 36 => 36, 37 => 37, 38 => 38, 39 => 39, 41 => 39, 40 => 40, 42 => 42, 43 => 43,
1168 45 => 45, 46 => 46, 47 => 47, 48 => 48, 50 => 48, 49 => 49, 51 => 49, 52 => 52,
1169 53 => 53, 54 => 54, 55 => 55, 56 => 56, 57 => 57, 58 => 58, 59 => 59, 60 => 60,
1170 61 => 61, 70 => 61, 156 => 61, 160 => 61, 164 => 61, 165 => 61, 62 => 62,
1171 157 => 62, 163 => 62, 63 => 63, 64 => 64, 65 => 64, 66 => 66, 142 => 66,
1172 69 => 69, 71 => 71, 72 => 72, 73 => 72, 74 => 74, 78 => 78, 79 => 79, 80 => 79,
1173 82 => 82, 107 => 82, 83 => 83, 84 => 84, 85 => 85, 86 => 86, 87 => 87, 88 => 88,
1174 89 => 89, 92 => 92, 97 => 97, 98 => 98, 99 => 99, 100 => 100, 102 => 102,
1175 105 => 105, 106 => 106, 109 => 109, 112 => 112, 113 => 113, 114 => 114,
1176 116 => 116, 117 => 117, 118 => 118, 119 => 119, 120 => 120, 121 => 121,
1177 123 => 123, 177 => 123, 124 => 124, 125 => 125, 126 => 126, 127 => 127,
1178 128 => 128, 129 => 129, 137 => 129, 130 => 130, 131 => 131, 132 => 132,
1179 133 => 132, 135 => 132, 136 => 132, 134 => 134, 138 => 138, 139 => 139,
1180 140 => 140, 181 => 140, 141 => 141, 143 => 143, 144 => 144, 145 => 145,
1181 146 => 146, 147 => 147, 148 => 148, 149 => 149, 150 => 150, 151 => 151,
1182 152 => 152, 153 => 153, 154 => 154, 155 => 155, 158 => 158, 159 => 159,
1183 161 => 161, 162 => 162, 166 => 166, 167 => 167, 168 => 168, 169 => 169,
1184 170 => 170, 171 => 171, 172 => 172, 173 => 173, 174 => 174, 176 => 176,
1185 178 => 178, 179 => 179, 182 => 182, 183 => 183, 184 => 184, 185 => 185,
1186 186 => 185, 188 => 185, 187 => 187, 189 => 189, 190 => 190, 191 => 191,);
1188 #line 201 "../smarty/lexer/smarty_internal_templateparser.y"
1191 $this->_retvalue = $this->root_buffer->to_smarty_php();
1194 #line 209 "../smarty/lexer/smarty_internal_templateparser.y"
1197 if ($this->yystack[$this->yyidx + 0]->minor != null) {
1198 $this->current_buffer->append_subtree($this->yystack[$this->yyidx + 0]->minor);
1202 #line 216 "../smarty/lexer/smarty_internal_templateparser.y"
1205 if ($this->yystack[$this->yyidx + 0]->minor != null) {
1207 $this->current_buffer->append_subtree($this->yystack[$this->yyidx + 0]->minor);
1211 #line 230 "../smarty/lexer/smarty_internal_templateparser.y"
1214 if ($this->compiler->has_code) {
1215 $this->_retvalue = $this->
mergePrefixCode($this->yystack[$this->yyidx + 0]->minor);
1217 $this->_retvalue = null;
1219 $this->compiler->has_variable_string =
false;
1220 $this->block_nesting_level = count($this->compiler->_tag_stack);
1223 #line 241 "../smarty/lexer/smarty_internal_templateparser.y"
1229 #line 245 "../smarty/lexer/smarty_internal_templateparser.y"
1232 $code = $this->compiler->compileTag(
'private_php', array(array(
'code' => $this->yystack[$this->yyidx + 0]->minor),
1233 array(
'type' => $this->lex->phpType)), array());
1234 if ($this->compiler->has_code && !empty($code)) {
1236 foreach ($this->compiler->prefix_code as $code) {
1239 $this->compiler->prefix_code = array();
1242 $this->_retvalue = null;
1246 #line 256 "../smarty/lexer/smarty_internal_templateparser.y"
1249 $this->compiler->tag_nocache =
true;
1250 $save = $this->
template->has_nocache_code;
1251 $this->_retvalue =
new Smarty_Internal_ParseTree_Tag($this, $this->compiler->processNocacheCode(
"<?php echo '{$this->yystack[$this->yyidx + 0]->minor}';?>\n", $this->compiler,
true));
1252 $this->
template->has_nocache_code = $save;
1255 #line 263 "../smarty/lexer/smarty_internal_templateparser.y"
1258 $this->_retvalue = $this->compiler->processText($this->yystack[$this->yyidx + 0]->minor);
1261 #line 267 "../smarty/lexer/smarty_internal_templateparser.y"
1264 $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;
1267 #line 271 "../smarty/lexer/smarty_internal_templateparser.y"
1270 $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor . $this->yystack[$this->yyidx + 0]->minor;
1273 #line 276 "../smarty/lexer/smarty_internal_templateparser.y"
1276 $this->strip =
true;
1279 #line 280 "../smarty/lexer/smarty_internal_templateparser.y"
1282 $this->strip =
false;
1285 #line 284 "../smarty/lexer/smarty_internal_templateparser.y"
1289 SMARTY_INTERNAL_COMPILE_BLOCK::blockSource($this->compiler, preg_replace(
'![\t ]*[\r\n]+[\t ]*!',
'', $this->yystack[$this->yyidx + 0]->minor));
1291 SMARTY_INTERNAL_COMPILE_BLOCK::blockSource($this->compiler, $this->yystack[$this->yyidx + 0]->minor);
1295 #line 293 "../smarty/lexer/smarty_internal_templateparser.y"
1298 $this->_retvalue =
'';
1301 #line 297 "../smarty/lexer/smarty_internal_templateparser.y"
1304 $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor;
1307 #line 301 "../smarty/lexer/smarty_internal_templateparser.y"
1310 $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor . $this->yystack[$this->yyidx + 0]->minor;
1313 #line 317 "../smarty/lexer/smarty_internal_templateparser.y"
1316 $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor;
1319 #line 323 "../smarty/lexer/smarty_internal_templateparser.y"
1322 $var = trim(substr($this->yystack[$this->yyidx + 0]->minor, $this->lex->ldel_length, - $this->lex->rdel_length),
' $');
1323 if (preg_match(
'/^(.*)(\s+nocache)$/', $var, $match)) {
1324 $this->_retvalue = $this->compiler->compileTag(
'private_print_expression', array(
'nocache'), array(
'value' => $this->compiler->compileVariable(
'\'' . $match[1] .
'\'')));
1326 $this->_retvalue = $this->compiler->compileTag(
'private_print_expression', array(), array(
'value' => $this->compiler->compileVariable(
'\'' . $var .
'\'')));
1330 #line 333 "../smarty/lexer/smarty_internal_templateparser.y"
1333 $this->_retvalue = $this->compiler->compileTag(
'private_print_expression', array(), array(
'value' => $this->yystack[$this->yyidx + 0]->minor));
1336 #line 337 "../smarty/lexer/smarty_internal_templateparser.y"
1339 $this->_retvalue = $this->compiler->compileTag(
'private_print_expression', $this->yystack[$this->yyidx + 0]->minor, array(
'value' => $this->yystack[$this->yyidx + - 1]->minor));
1342 #line 360 "../smarty/lexer/smarty_internal_templateparser.y"
1345 $this->_retvalue = $this->compiler->compileTag(
'assign', array(array(
'value' => $this->yystack[$this->yyidx + 0]->minor),
1346 array(
'var' =>
'\'' . substr($this->yystack[$this->yyidx + - 2]->minor, 1) .
'\'')));
1349 #line 368 "../smarty/lexer/smarty_internal_templateparser.y"
1352 $this->_retvalue = $this->compiler->compileTag(
'assign', array_merge(array(array(
'value' => $this->yystack[$this->yyidx + - 1]->minor),
1353 array(
'var' =>
'\'' . substr($this->yystack[$this->yyidx + - 3]->minor, 1) .
'\'')), $this->yystack[$this->yyidx + 0]->minor));
1356 #line 372 "../smarty/lexer/smarty_internal_templateparser.y"
1359 $this->_retvalue = $this->compiler->compileTag(
'assign', array_merge(array(array(
'value' => $this->yystack[$this->yyidx + - 1]->minor),
1360 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']));
1363 #line 377 "../smarty/lexer/smarty_internal_templateparser.y"
1366 $tag = trim(substr($this->yystack[$this->yyidx + 0]->minor, $this->lex->ldel_length, - $this->lex->rdel_length));
1367 if ($tag ==
'strip') {
1368 $this->strip =
true;
1369 $this->_retvalue = null;;
1371 if (defined($tag)) {
1372 if ($this->security) {
1373 $this->security->isTrustedConstant($tag, $this->compiler);
1375 $this->_retvalue = $this->compiler->compileTag(
'private_print_expression', array(), array(
'value' => $tag));
1377 if (preg_match(
'/^(.*)(\s+nocache)$/', $tag, $match)) {
1378 $this->_retvalue = $this->compiler->compileTag($match[1], array(
"'nocache'"));
1380 $this->_retvalue = $this->compiler->compileTag($tag, array());
1386 #line 399 "../smarty/lexer/smarty_internal_templateparser.y"
1389 if (defined($this->yystack[$this->yyidx + - 1]->minor)) {
1390 if ($this->security) {
1391 $this->security->isTrustedConstant($this->yystack[$this->yyidx + - 1]->minor, $this->compiler);
1393 $this->_retvalue = $this->compiler->compileTag(
'private_print_expression', $this->yystack[$this->yyidx + 0]->minor, array(
'value' => $this->yystack[$this->yyidx + - 1]->minor));
1395 $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + - 1]->minor, $this->yystack[$this->yyidx + 0]->minor);
1399 #line 409 "../smarty/lexer/smarty_internal_templateparser.y"
1402 if (defined($this->yystack[$this->yyidx + 0]->minor)) {
1403 if ($this->security) {
1404 $this->security->isTrustedConstant($this->yystack[$this->yyidx + 0]->minor, $this->compiler);
1406 $this->_retvalue = $this->compiler->compileTag(
'private_print_expression', array(), array(
'value' => $this->yystack[$this->yyidx + 0]->minor));
1408 $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + 0]->minor, array());
1412 #line 422 "../smarty/lexer/smarty_internal_templateparser.y"
1415 if (defined($this->yystack[$this->yyidx + - 2]->minor)) {
1416 if ($this->security) {
1417 $this->security->isTrustedConstant($this->yystack[$this->yyidx + - 2]->minor, $this->compiler);
1419 $this->_retvalue = $this->compiler->compileTag(
'private_print_expression', $this->yystack[$this->yyidx + 0]->minor, array(
'value' => $this->yystack[$this->yyidx + - 2]->minor,
1420 'modifierlist' => $this->yystack[$this->yyidx + - 1]->minor));
1422 $this->_retvalue =
'<?php ob_start();?>' . $this->compiler->compileTag($this->yystack[$this->yyidx + - 2]->minor, $this->yystack[$this->yyidx + 0]->minor) .
'<?php echo ';
1423 $this->_retvalue .= $this->compiler->compileTag(
'private_modifier', array(), array(
'modifierlist' => $this->yystack[$this->yyidx + - 1]->minor,
1424 'value' =>
'ob_get_clean()')) .
';?>';
1428 #line 435 "../smarty/lexer/smarty_internal_templateparser.y"
1431 $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));
1434 #line 440 "../smarty/lexer/smarty_internal_templateparser.y"
1437 $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 ';
1438 $this->_retvalue .= $this->compiler->compileTag(
'private_modifier', array(), array(
'modifierlist' => $this->yystack[$this->yyidx + - 1]->minor,
1439 'value' =>
'ob_get_clean()')) .
';?>';
1442 #line 446 "../smarty/lexer/smarty_internal_templateparser.y"
1445 $tag = trim(substr($this->yystack[$this->yyidx + - 1]->minor, $this->lex->ldel_length));
1446 $this->_retvalue = $this->compiler->compileTag(($tag ==
'else if') ?
'elseif' : $tag, array(), array(
'if condition' => $this->yystack[$this->yyidx + 0]->minor));
1449 #line 451 "../smarty/lexer/smarty_internal_templateparser.y"
1452 $tag = trim(substr($this->yystack[$this->yyidx + - 2]->minor, $this->lex->ldel_length));
1453 $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));
1456 #line 456 "../smarty/lexer/smarty_internal_templateparser.y"
1459 $tag = trim(substr($this->yystack[$this->yyidx + - 1]->minor, $this->lex->ldel_length));
1460 $this->_retvalue = $this->compiler->compileTag(($tag ==
'else if') ?
'elseif' : $tag, array(), array(
'if condition' => $this->yystack[$this->yyidx + 0]->minor));
1463 #line 467 "../smarty/lexer/smarty_internal_templateparser.y"
1466 $this->_retvalue = $this->compiler->compileTag(
'for', array_merge($this->yystack[$this->yyidx + 0]->minor, array(array(
'start' => $this->yystack[$this->yyidx + - 6]->minor),
1467 array(
'ifexp' => $this->yystack[$this->yyidx + - 4]->minor),
1468 array(
'var' => $this->yystack[$this->yyidx + - 2]->minor),
1469 array(
'step' => $this->yystack[$this->yyidx + - 1]->minor))), 1);
1472 #line 471 "../smarty/lexer/smarty_internal_templateparser.y"
1475 $this->_retvalue =
'=' . $this->yystack[$this->yyidx + 0]->minor;
1478 #line 479 "../smarty/lexer/smarty_internal_templateparser.y"
1481 $this->_retvalue = $this->compiler->compileTag(
'for', array_merge($this->yystack[$this->yyidx + 0]->minor, array(array(
'start' => $this->yystack[$this->yyidx + - 3]->minor),
1482 array(
'to' => $this->yystack[$this->yyidx + - 1]->minor))), 0);
1485 #line 483 "../smarty/lexer/smarty_internal_templateparser.y"
1488 $this->_retvalue = $this->compiler->compileTag(
'for', array_merge($this->yystack[$this->yyidx + 0]->minor, array(array(
'start' => $this->yystack[$this->yyidx + - 5]->minor),
1489 array(
'to' => $this->yystack[$this->yyidx + - 3]->minor),
1490 array(
'step' => $this->yystack[$this->yyidx + - 1]->minor))), 0);
1493 #line 488 "../smarty/lexer/smarty_internal_templateparser.y"
1496 $this->_retvalue = $this->compiler->compileTag(
'foreach', $this->yystack[$this->yyidx + 0]->minor);
1499 #line 493 "../smarty/lexer/smarty_internal_templateparser.y"
1502 $this->_retvalue = $this->compiler->compileTag(
'foreach', array_merge($this->yystack[$this->yyidx + 0]->minor, array(array(
'from' => $this->yystack[$this->yyidx + - 3]->minor),
1503 array(
'item' => $this->yystack[$this->yyidx + - 1]->minor))));
1506 #line 497 "../smarty/lexer/smarty_internal_templateparser.y"
1509 $this->_retvalue = $this->compiler->compileTag(
'foreach', array_merge($this->yystack[$this->yyidx + 0]->minor, array(array(
'from' => $this->yystack[$this->yyidx + - 5]->minor),
1510 array(
'item' => $this->yystack[$this->yyidx + - 1]->minor),
1511 array(
'key' => $this->yystack[$this->yyidx + - 3]->minor))));
1514 #line 510 "../smarty/lexer/smarty_internal_templateparser.y"
1517 $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))));
1520 #line 514 "../smarty/lexer/smarty_internal_templateparser.y"
1523 $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)));
1526 #line 519 "../smarty/lexer/smarty_internal_templateparser.y"
1529 $j = strrpos($this->yystack[$this->yyidx + 0]->minor,
'.');
1530 if ($this->yystack[$this->yyidx + 0]->minor[$j + 1] ==
'c') {
1532 $this->_retvalue = SMARTY_INTERNAL_COMPILE_BLOCK::compileChildBlock($this->compiler);
1535 $this->_retvalue = SMARTY_INTERNAL_COMPILE_BLOCK::compileParentBlock($this->compiler);
1539 #line 532 "../smarty/lexer/smarty_internal_templateparser.y"
1542 $tag = trim(substr($this->yystack[$this->yyidx + 0]->minor, $this->lex->ldel_length, - $this->lex->rdel_length),
' /');
1543 if ($tag ==
'strip') {
1544 $this->strip =
false;
1545 $this->_retvalue = null;
1547 $this->_retvalue = $this->compiler->compileTag($tag .
'close', array());
1551 #line 541 "../smarty/lexer/smarty_internal_templateparser.y"
1554 $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + 0]->minor .
'close', array());
1557 #line 545 "../smarty/lexer/smarty_internal_templateparser.y"
1560 $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + - 1]->minor .
'close', array(), array(
'modifier_list' => $this->yystack[$this->yyidx + 0]->minor));
1563 #line 550 "../smarty/lexer/smarty_internal_templateparser.y"
1566 $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + - 2]->minor .
'close', array(), array(
'object_method' => $this->yystack[$this->yyidx + 0]->minor));
1569 #line 554 "../smarty/lexer/smarty_internal_templateparser.y"
1572 $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + - 3]->minor .
'close', array(), array(
'object_method' => $this->yystack[$this->yyidx + - 1]->minor,
1573 'modifier_list' => $this->yystack[$this->yyidx + 0]->minor));
1576 #line 562 "../smarty/lexer/smarty_internal_templateparser.y"
1579 $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor;
1580 $this->_retvalue[] = $this->yystack[$this->yyidx + 0]->minor;
1583 #line 568 "../smarty/lexer/smarty_internal_templateparser.y"
1586 $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor);
1589 #line 573 "../smarty/lexer/smarty_internal_templateparser.y"
1592 $this->_retvalue = array();
1595 #line 578 "../smarty/lexer/smarty_internal_templateparser.y"
1598 if (defined($this->yystack[$this->yyidx + 0]->minor)) {
1599 if ($this->security) {
1600 $this->security->isTrustedConstant($this->yystack[$this->yyidx + 0]->minor, $this->compiler);
1602 $this->_retvalue = array($this->yystack[$this->yyidx + - 2]->minor => $this->yystack[$this->yyidx + 0]->minor);
1604 $this->_retvalue = array($this->yystack[$this->yyidx + - 2]->minor =>
'\'' . $this->yystack[$this->yyidx + 0]->minor .
'\'');
1608 #line 589 "../smarty/lexer/smarty_internal_templateparser.y"
1611 $this->_retvalue = array(trim($this->yystack[$this->yyidx + - 1]->minor,
" =\n\r\t") => $this->yystack[$this->yyidx + 0]->minor);
1614 #line 597 "../smarty/lexer/smarty_internal_templateparser.y"
1617 $this->_retvalue =
'\'' . $this->yystack[$this->yyidx + 0]->minor .
'\'';
1620 #line 609 "../smarty/lexer/smarty_internal_templateparser.y"
1623 $this->_retvalue = array($this->yystack[$this->yyidx + - 2]->minor => $this->yystack[$this->yyidx + 0]->minor);
1626 #line 622 "../smarty/lexer/smarty_internal_templateparser.y"
1629 $this->yystack[$this->yyidx + - 2]->minor[] = $this->yystack[$this->yyidx + 0]->minor;
1630 $this->_retvalue = $this->yystack[$this->yyidx + - 2]->minor;
1633 #line 627 "../smarty/lexer/smarty_internal_templateparser.y"
1636 $this->_retvalue = array(
'var' =>
'\'' . substr($this->yystack[$this->yyidx + - 2]->minor, 1) .
'\'',
1637 'value' => $this->yystack[$this->yyidx + 0]->minor);
1640 #line 634 "../smarty/lexer/smarty_internal_templateparser.y"
1643 $this->_retvalue = array(
'var' => $this->yystack[$this->yyidx + - 2]->minor,
1644 'value' => $this->yystack[$this->yyidx + 0]->minor);
1647 #line 658 "../smarty/lexer/smarty_internal_templateparser.y"
1650 $this->_retvalue =
'$_smarty_tpl->getStreamVariable(\'' . substr($this->yystack[$this->yyidx + - 2]->minor, 1) .
'://' . $this->yystack[$this->yyidx + 0]->minor .
'\')
';
1653 #line 663 "../smarty/lexer/smarty_internal_templateparser.y"
1656 $this->_retvalue = $this->yystack[$this->yyidx + - 2]->minor . trim($this->yystack[$this->yyidx + - 1]->minor) . $this->yystack[$this->yyidx + 0]->minor;
1659 #line 677 "../smarty/lexer/smarty_internal_templateparser.y"
1662 $this->_retvalue = $this->compiler->compileTag('private_modifier
', array(), array('value
' => $this->yystack[$this->yyidx + - 1]->minor,
1663 'modifierlist
' => $this->yystack[$this->yyidx + 0]->minor));
1666 #line 683 "../smarty/lexer/smarty_internal_templateparser.y"
1669 $this->_retvalue = (isset($this->yystack[$this->yyidx + - 1]->minor['pre
']) ? $this->yystack[$this->yyidx + - 1]->minor['pre
'] : '') . $this->yystack[$this->yyidx + - 2]->minor . $this->yystack[$this->yyidx + - 1]->minor['op
'] . $this->yystack[$this->yyidx + 0]->minor . (isset($this->yystack[$this->yyidx + - 1]->minor['pre
']) ? ')
' : '');
1672 #line 686 "../smarty/lexer/smarty_internal_templateparser.y"
1675 $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor . $this->yystack[$this->yyidx + - 1]->minor . ')
';
1678 #line 690 "../smarty/lexer/smarty_internal_templateparser.y"
1681 $this->_retvalue = 'in_array(
' . $this->yystack[$this->yyidx + - 2]->minor . ',
' . $this->yystack[$this->yyidx + 0]->minor . ')
';
1684 #line 694 "../smarty/lexer/smarty_internal_templateparser.y"
1687 $this->_retvalue = 'in_array(
' . $this->yystack[$this->yyidx + - 2]->minor . ',(array)
' . $this->yystack[$this->yyidx + 0]->minor . ')
';
1690 #line 698 "../smarty/lexer/smarty_internal_templateparser.y"
1693 $this->_retvalue = $this->yystack[$this->yyidx + - 2]->minor . $this->yystack[$this->yyidx + - 1]->minor . $this->yystack[$this->yyidx + 0]->minor;
1696 #line 706 "../smarty/lexer/smarty_internal_templateparser.y"
1699 $this->_retvalue = $this->yystack[$this->yyidx + - 5]->minor . ' ?
' . $this->compiler->compileVariable('\
'' . substr($this->yystack[$this->yyidx + - 2]->minor, 1) .
'\'') .
' : ' . $this->yystack[$this->yyidx + 0]->minor;
1702 #line 710 "../smarty/lexer/smarty_internal_templateparser.y"
1705 $this->_retvalue = $this->yystack[$this->yyidx + - 5]->minor .
' ? ' . $this->yystack[$this->yyidx + - 2]->minor .
' : ' . $this->yystack[$this->yyidx + 0]->minor;
1708 #line 725 "../smarty/lexer/smarty_internal_templateparser.y"
1711 $this->_retvalue =
'!' . $this->yystack[$this->yyidx + 0]->minor;
1714 #line 746 "../smarty/lexer/smarty_internal_templateparser.y"
1717 $this->_retvalue = $this->yystack[$this->yyidx + - 2]->minor .
'.' . $this->yystack[$this->yyidx + 0]->minor;
1720 #line 750 "../smarty/lexer/smarty_internal_templateparser.y"
1723 $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor .
'.';
1726 #line 754 "../smarty/lexer/smarty_internal_templateparser.y"
1729 $this->_retvalue =
'.' . $this->yystack[$this->yyidx + 0]->minor;
1732 #line 759 "../smarty/lexer/smarty_internal_templateparser.y"
1735 if (defined($this->yystack[$this->yyidx + 0]->minor)) {
1736 if ($this->security) {
1737 $this->security->isTrustedConstant($this->yystack[$this->yyidx + 0]->minor, $this->compiler);
1739 $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;
1741 $this->_retvalue =
'\'' . $this->yystack[$this->yyidx + 0]->minor .
'\'';
1745 #line 776 "../smarty/lexer/smarty_internal_templateparser.y"
1748 $this->_retvalue =
"(" . $this->yystack[$this->yyidx + - 1]->minor .
")";
1751 #line 791 "../smarty/lexer/smarty_internal_templateparser.y"
1754 self::$prefix_number ++;
1755 if ($this->yystack[$this->yyidx + - 2]->minor[
'var'] ==
'\'smarty\
'') {
1756 $this->compiler->prefix_code[] =
'<?php $_tmp' . self::$prefix_number .
' = ' . $this->compiler->compileTag(
'private_special_variable', array(), $this->yystack[$this->yyidx + - 2]->minor[
'smarty_internal_index']) .
';?>';
1758 $this->compiler->prefix_code[] =
'<?php $_tmp' . self::$prefix_number .
' = ' . $this->compiler->compileVariable($this->yystack[$this->yyidx + - 2]->minor[
'var']) . $this->yystack[$this->yyidx + - 2]->minor[
'smarty_internal_index'] .
';?>';
1760 $this->_retvalue =
'$_tmp' . self::$prefix_number .
'::' . $this->yystack[$this->yyidx + 0]->minor[0] . $this->yystack[$this->yyidx + 0]->minor[1];
1763 #line 802 "../smarty/lexer/smarty_internal_templateparser.y"
1766 self::$prefix_number ++;
1767 $tmp = $this->compiler->appendCode(
'<?php ob_start();?>', $this->yystack[$this->yyidx + 0]->minor);
1768 $this->compiler->prefix_code[] = $this->compiler->appendCode($tmp,
'<?php $_tmp' . self::$prefix_number .
'=ob_get_clean();?>');
1769 $this->_retvalue =
'$_tmp' . self::$prefix_number;
1772 #line 819 "../smarty/lexer/smarty_internal_templateparser.y"
1775 if (!in_array(strtolower($this->yystack[$this->yyidx + - 2]->minor), array(
'self',
1776 'parent')) && (!$this->security || $this->security->isTrustedStaticClassAccess($this->yystack[$this->yyidx + - 2]->minor, $this->yystack[$this->yyidx + 0]->minor, $this->compiler))
1778 if (isset($this->smarty->registered_classes[$this->yystack[$this->yyidx + - 2]->minor])) {
1779 $this->_retvalue = $this->smarty->registered_classes[$this->yystack[$this->yyidx + - 2]->minor] .
'::' . $this->yystack[$this->yyidx + 0]->minor[0] . $this->yystack[$this->yyidx + 0]->minor[1];
1781 $this->_retvalue = $this->yystack[$this->yyidx + - 2]->minor .
'::' . $this->yystack[$this->yyidx + 0]->minor[0] . $this->yystack[$this->yyidx + 0]->minor[1];
1784 $this->compiler->trigger_template_error(
"static class '" . $this->yystack[$this->yyidx + - 2]->minor .
"' is undefined or not allowed by security setting");
1788 #line 853 "../smarty/lexer/smarty_internal_templateparser.y"
1791 $this->_retvalue = $this->compiler->compileVariable(
'\'' . substr($this->yystack[$this->yyidx + 0]->minor, 1) .
'\'');
1794 #line 856 "../smarty/lexer/smarty_internal_templateparser.y"
1797 if ($this->yystack[$this->yyidx + 0]->minor[
'var'] ==
'\'smarty\
'') {
1798 $smarty_var = $this->compiler->compileTag(
'private_special_variable', array(), $this->yystack[$this->yyidx + 0]->minor[
'smarty_internal_index']);
1799 $this->_retvalue = $smarty_var;
1802 $this->last_variable = $this->yystack[$this->yyidx + 0]->minor[
'var'];
1803 $this->last_index = $this->yystack[$this->yyidx + 0]->minor[
'smarty_internal_index'];
1804 $this->_retvalue = $this->compiler->compileVariable($this->yystack[$this->yyidx + 0]->minor[
'var']) . $this->yystack[$this->yyidx + 0]->minor[
'smarty_internal_index'];
1808 #line 869 "../smarty/lexer/smarty_internal_templateparser.y"
1811 $this->_retvalue =
'$_smarty_tpl->tpl_vars[' . $this->yystack[$this->yyidx + - 2]->minor .
']->' . $this->yystack[$this->yyidx + 0]->minor;
1814 #line 879 "../smarty/lexer/smarty_internal_templateparser.y"
1817 $this->_retvalue =
'$_smarty_tpl->getConfigVariable( \'' . $this->yystack[$this->yyidx + - 1]->minor .
'\')
';
1820 #line 883 "../smarty/lexer/smarty_internal_templateparser.y"
1823 $this->_retvalue = '(is_array($tmp = $_smarty_tpl->getConfigVariable( \
'' . $this->yystack[$this->yyidx + - 2]->minor .
'\')) ? $tmp
' . $this->yystack[$this->yyidx + 0]->minor . ' :null)
';
1826 #line 887 "../smarty/lexer/smarty_internal_templateparser.y"
1829 $this->_retvalue = '$_smarty_tpl->getConfigVariable(
' . $this->yystack[$this->yyidx + - 1]->minor . ')
';
1832 #line 891 "../smarty/lexer/smarty_internal_templateparser.y"
1835 $this->_retvalue = '(is_array($tmp = $_smarty_tpl->getConfigVariable(
' . $this->yystack[$this->yyidx + - 2]->minor . ')) ? $tmp
' . $this->yystack[$this->yyidx + 0]->minor . ' : null)
';
1838 #line 895 "../smarty/lexer/smarty_internal_templateparser.y"
1841 $this->_retvalue = array('var
' => '\
'' . substr($this->yystack[$this->yyidx + - 1]->minor, 1) .
'\'',
1842 'smarty_internal_index' => $this->yystack[$this->yyidx + 0]->minor);
1845 #line 898 "../smarty/lexer/smarty_internal_templateparser.y"
1848 $this->_retvalue = array(
'var' => $this->yystack[$this->yyidx + - 1]->minor,
1849 'smarty_internal_index' => $this->yystack[$this->yyidx + 0]->minor);
1852 #line 911 "../smarty/lexer/smarty_internal_templateparser.y"
1858 #line 917 "../smarty/lexer/smarty_internal_templateparser.y"
1861 $this->_retvalue =
'[' . $this->compiler->compileVariable(
'\'' . substr($this->yystack[$this->yyidx + 0]->minor, 1) .
'\'') .
']';
1864 #line 920 "../smarty/lexer/smarty_internal_templateparser.y"
1867 $this->_retvalue =
'[' . $this->compiler->compileVariable($this->yystack[$this->yyidx + 0]->minor) .
']';
1870 #line 924 "../smarty/lexer/smarty_internal_templateparser.y"
1873 $this->_retvalue =
'[' . $this->compiler->compileVariable($this->yystack[$this->yyidx + - 2]->minor) .
'->' . $this->yystack[$this->yyidx + 0]->minor .
']';
1876 #line 928 "../smarty/lexer/smarty_internal_templateparser.y"
1879 if (defined($this->yystack[$this->yyidx + 0]->minor)) {
1880 if ($this->security) {
1881 $this->security->isTrustedConstant($this->yystack[$this->yyidx + 0]->minor, $this->compiler);
1883 $this->_retvalue =
'[' . $this->yystack[$this->yyidx + 0]->minor .
']';
1885 $this->_retvalue =
"['" . $this->yystack[$this->yyidx + 0]->minor .
"']";
1889 #line 939 "../smarty/lexer/smarty_internal_templateparser.y"
1892 $this->_retvalue =
'[' . $this->yystack[$this->yyidx + 0]->minor .
']';
1895 #line 943 "../smarty/lexer/smarty_internal_templateparser.y"
1898 $this->_retvalue =
'[' . $this->yystack[$this->yyidx + - 1]->minor .
']';
1901 #line 948 "../smarty/lexer/smarty_internal_templateparser.y"
1904 $this->_retvalue =
'[' . $this->compiler->compileTag(
'private_special_variable', array(),
'[\'section\'][\'' . $this->yystack[$this->yyidx + - 1]->minor .
'\'][\
'index\']') .
']';
1907 #line 952 "../smarty/lexer/smarty_internal_templateparser.y"
1910 $this->_retvalue =
'[' . $this->compiler->compileTag(
'private_special_variable', array(),
'[\'section\'][\'' . $this->yystack[$this->yyidx + - 3]->minor .
'\'][\
'' . $this->yystack[$this->yyidx + - 1]->minor .
'\']
') . ']
';
1913 #line 955 "../smarty/lexer/smarty_internal_templateparser.y"
1916 $this->_retvalue = '[
' . $this->yystack[$this->yyidx + - 1]->minor . ']
';
1919 #line 961 "../smarty/lexer/smarty_internal_templateparser.y"
1922 $this->_retvalue = '[
' . $this->compiler->compileVariable('\
'' . substr($this->yystack[$this->yyidx + - 1]->minor, 1) .
'\'') .
']';;
1925 #line 977 "../smarty/lexer/smarty_internal_templateparser.y"
1928 $this->_retvalue =
'[]';
1931 #line 987 "../smarty/lexer/smarty_internal_templateparser.y"
1934 $this->_retvalue =
'\'' . substr($this->yystack[$this->yyidx + 0]->minor, 1) .
'\'';
1937 #line 991 "../smarty/lexer/smarty_internal_templateparser.y"
1940 $this->_retvalue =
"''";
1943 #line 996 "../smarty/lexer/smarty_internal_templateparser.y"
1946 $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor .
'.' . $this->yystack[$this->yyidx + 0]->minor;
1949 #line 1006 "../smarty/lexer/smarty_internal_templateparser.y"
1952 $this->_retvalue =
'(' . $this->yystack[$this->yyidx + - 1]->minor .
')';
1955 #line 1013 "../smarty/lexer/smarty_internal_templateparser.y"
1958 if ($this->yystack[$this->yyidx + - 1]->minor[
'var'] ==
'\'smarty\
'') {
1959 $this->_retvalue = $this->compiler->compileTag(
'private_special_variable', array(), $this->yystack[$this->yyidx + - 1]->minor[
'smarty_internal_index']) . $this->yystack[$this->yyidx + 0]->minor;
1961 $this->_retvalue = $this->compiler->compileVariable($this->yystack[$this->yyidx + - 1]->minor[
'var']) . $this->yystack[$this->yyidx + - 1]->minor[
'smarty_internal_index'] . $this->yystack[$this->yyidx + 0]->minor;
1965 #line 1022 "../smarty/lexer/smarty_internal_templateparser.y"
1968 $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;
1971 #line 1027 "../smarty/lexer/smarty_internal_templateparser.y"
1974 $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor . $this->yystack[$this->yyidx + 0]->minor;
1977 #line 1032 "../smarty/lexer/smarty_internal_templateparser.y"
1980 if ($this->security && substr($this->yystack[$this->yyidx + - 1]->minor, 0, 1) ==
'_') {
1981 $this->compiler->trigger_template_error(self::Err1);
1983 $this->_retvalue =
'->' . $this->yystack[$this->yyidx + - 1]->minor . $this->yystack[$this->yyidx + 0]->minor;
1986 #line 1039 "../smarty/lexer/smarty_internal_templateparser.y"
1989 if ($this->security) {
1990 $this->compiler->trigger_template_error(self::Err2);
1992 $this->_retvalue =
'->{' . $this->compiler->compileVariable($this->yystack[$this->yyidx + - 1]->minor) . $this->yystack[$this->yyidx + 0]->minor .
'}';
1995 #line 1046 "../smarty/lexer/smarty_internal_templateparser.y"
1998 if ($this->security) {
1999 $this->compiler->trigger_template_error(self::Err2);
2001 $this->_retvalue =
'->{' . $this->yystack[$this->yyidx + - 2]->minor . $this->yystack[$this->yyidx + 0]->minor .
'}';
2004 #line 1053 "../smarty/lexer/smarty_internal_templateparser.y"
2007 if ($this->security) {
2008 $this->compiler->trigger_template_error(self::Err2);
2010 $this->_retvalue =
'->{\'' . $this->yystack[$this->yyidx + - 4]->minor .
'\'.
' . $this->yystack[$this->yyidx + - 2]->minor . $this->yystack[$this->yyidx + 0]->minor . '}
';
2013 #line 1061 "../smarty/lexer/smarty_internal_templateparser.y"
2016 $this->_retvalue = '->
' . $this->yystack[$this->yyidx + 0]->minor;
2019 #line 1069 "../smarty/lexer/smarty_internal_templateparser.y"
2022 if (!$this->security || $this->security->isTrustedPhpFunction($this->yystack[$this->yyidx + - 3]->minor, $this->compiler)) {
2023 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)) {
2024 $func_name = strtolower($this->yystack[$this->yyidx + - 3]->minor);
2025 if ($func_name == 'isset
') {
2026 if (count($this->yystack[$this->yyidx + - 1]->minor) == 0) {
2027 $this->compiler->trigger_template_error('Illegal number of paramer in
"isset()"');
2029 $par = implode(',
', $this->yystack[$this->yyidx + - 1]->minor);
2030 if (strncasecmp($par, '$_smarty_tpl->getConfigVariable
', strlen('$_smarty_tpl->getConfigVariable
')) === 0) {
2031 self::$prefix_number ++;
2032 $this->compiler->prefix_code[] = '<?php $_tmp
' . self::$prefix_number . '=
' . str_replace(')
', ',
false)
', $par) . ';?>
';
2033 $isset_par = '$_tmp
' . self::$prefix_number;
2035 $isset_par = str_replace("')->value
", "',null,true,false)->value", $par);
2037 $this->_retvalue = $this->yystack[$this->yyidx + - 3]->minor . "(" . $isset_par . ")";
2038 } elseif (in_array($func_name, array('empty
', 'reset
', 'current
', 'end
', 'prev
', 'next
'))) {
2039 if (count($this->yystack[$this->yyidx + - 1]->minor) != 1) {
2040 $this->compiler->trigger_template_error('Illegal number of paramer in
"empty()"');
2042 if ($func_name == 'empty
') {
2043 $this->_retvalue = $func_name . '(
' . str_replace("')->value
", "',null,true,false)->value", $this->yystack[$this->yyidx + - 1]->minor[0]) . ')
';
2045 $this->_retvalue = $func_name . '(
' . $this->yystack[$this->yyidx + - 1]->minor[0] . ')
';
2048 $this->_retvalue = $this->yystack[$this->yyidx + - 3]->minor . "(" . implode(',
', $this->yystack[$this->yyidx + - 1]->minor) . ")";
2051 $this->compiler->trigger_template_error("unknown function \"" . $this->yystack[$this->yyidx + - 3]->minor . "\"");
2056 #line 1108 "../smarty/lexer/smarty_internal_templateparser.y"
2059 if ($this->security && substr($this->yystack[$this->yyidx + - 3]->minor, 0, 1) == '_
') {
2060 $this->compiler->trigger_template_error(self::Err1);
2062 $this->_retvalue = $this->yystack[$this->yyidx + - 3]->minor . "(" . implode(',
', $this->yystack[$this->yyidx + - 1]->minor) . ")";
2065 #line 1115 "../smarty/lexer/smarty_internal_templateparser.y"
2068 if ($this->security) {
2069 $this->compiler->trigger_template_error(self::Err2);
2071 self::$prefix_number ++;
2072 $this->compiler->prefix_code[] = '<?php $_tmp
' . self::$prefix_number . '=
' . $this->compiler->compileVariable('\
'' . substr($this->yystack[$this->yyidx + - 3]->minor, 1) .
'\'') .
';?>';
2073 $this->_retvalue =
'$_tmp' . self::$prefix_number .
'(' . implode(
',', $this->yystack[$this->yyidx + - 1]->minor) .
')';
2076 #line 1126 "../smarty/lexer/smarty_internal_templateparser.y"
2079 $this->_retvalue = array_merge($this->yystack[$this->yyidx + - 2]->minor, array($this->yystack[$this->yyidx + 0]->minor));
2082 #line 1143 "../smarty/lexer/smarty_internal_templateparser.y"
2085 $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)));
2088 #line 1147 "../smarty/lexer/smarty_internal_templateparser.y"
2091 $this->_retvalue = array(array_merge($this->yystack[$this->yyidx + - 1]->minor, $this->yystack[$this->yyidx + 0]->minor));
2094 #line 1155 "../smarty/lexer/smarty_internal_templateparser.y"
2097 $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor);
2100 #line 1163 "../smarty/lexer/smarty_internal_templateparser.y"
2103 $this->_retvalue = array_merge($this->yystack[$this->yyidx + - 1]->minor, $this->yystack[$this->yyidx + 0]->minor);
2106 #line 1182 "../smarty/lexer/smarty_internal_templateparser.y"
2109 $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor,
'',
'method');
2112 #line 1187 "../smarty/lexer/smarty_internal_templateparser.y"
2115 $this->_retvalue = array($this->yystack[$this->yyidx + - 1]->minor, $this->yystack[$this->yyidx + 0]->minor,
2119 #line 1192 "../smarty/lexer/smarty_internal_templateparser.y"
2122 $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor,
'');
2125 #line 1197 "../smarty/lexer/smarty_internal_templateparser.y"
2128 $this->_retvalue = array($this->yystack[$this->yyidx + - 1]->minor, $this->yystack[$this->yyidx + 0]->minor,
2132 #line 1202 "../smarty/lexer/smarty_internal_templateparser.y"
2135 $this->_retvalue = array($this->yystack[$this->yyidx + - 2]->minor,
2136 $this->yystack[$this->yyidx + - 1]->minor . $this->yystack[$this->yyidx + 0]->minor,
'property');
2139 #line 1208 "../smarty/lexer/smarty_internal_templateparser.y"
2142 $this->_retvalue[
'op'] =
' ' . trim($this->yystack[$this->yyidx + 0]->minor) .
' ';
2145 #line 1212 "../smarty/lexer/smarty_internal_templateparser.y"
2148 static $lops = array(
'eq' => array(
'op' =>
' == ',
'pre' => null),
2149 'ne' => array(
'op' =>
' != ',
'pre' => null),
2150 'neq' => array(
'op' =>
' != ',
'pre' => null),
2151 'gt' => array(
'op' =>
' > ',
'pre' => null),
2152 'ge' => array(
'op' =>
' >= ',
'pre' => null),
2153 'gte' => array(
'op' =>
' >= ',
'pre' => null),
2154 'lt' => array(
'op' =>
' < ',
'pre' => null),
2155 'le' => array(
'op' =>
' <= ',
'pre' => null),
2156 'lte' => array(
'op' =>
' <= ',
'pre' => null),
2157 'mod' => array(
'op' =>
' % ',
'pre' => null),
2158 'and' => array(
'op' =>
' && ',
'pre' => null),
2159 'or' => array(
'op' =>
' || ',
'pre' => null),
2160 'xor' => array(
'op' =>
' xor ',
'pre' => null),
2161 'isdivby' => array(
'op' =>
' % ',
'pre' =>
'!('),
2162 'isnotdivby' => array(
'op' =>
' % ',
'pre' =>
'('),
2163 'isevenby' => array(
'op' =>
' / ',
'pre' =>
'!(1 & '),
2164 'isnotevenby' => array(
'op' =>
' / ',
'pre' =>
'(1 & '),
2165 'isoddby' => array(
'op' =>
' / ',
'pre' =>
'(1 & '),
2166 'isnotoddby' => array(
'op' =>
' / ',
'pre' =>
'!(1 & '),);
2167 $op = strtolower(preg_replace(
'/\s*/',
'', $this->yystack[$this->yyidx + 0]->minor));
2168 $this->_retvalue = $lops[$op];
2171 #line 1238 "../smarty/lexer/smarty_internal_templateparser.y"
2174 static $scond = array(
'iseven' =>
'!(1 & ',
'isnoteven' =>
'(1 & ',
'isodd' =>
'(1 & ',
2175 'isnotodd' =>
'!(1 & ',);
2176 $op = strtolower(str_replace(
' ',
'', $this->yystack[$this->yyidx + 0]->minor));
2177 $this->_retvalue = $scond[$op];
2180 #line 1252 "../smarty/lexer/smarty_internal_templateparser.y"
2183 $this->_retvalue =
'array(' . $this->yystack[$this->yyidx + - 1]->minor .
')';
2186 #line 1260 "../smarty/lexer/smarty_internal_templateparser.y"
2189 $this->_retvalue = $this->yystack[$this->yyidx + - 2]->minor .
',' . $this->yystack[$this->yyidx + 0]->minor;
2192 #line 1268 "../smarty/lexer/smarty_internal_templateparser.y"
2195 $this->_retvalue = $this->yystack[$this->yyidx + - 2]->minor .
'=>' . $this->yystack[$this->yyidx + 0]->minor;
2198 #line 1272 "../smarty/lexer/smarty_internal_templateparser.y"
2201 $this->_retvalue =
'\'' . $this->yystack[$this->yyidx + - 2]->minor .
'\'=>
' . $this->yystack[$this->yyidx + 0]->minor;
2204 #line 1288 "../smarty/lexer/smarty_internal_templateparser.y"
2207 $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor->to_smarty_php();
2210 #line 1293 "../smarty/lexer/smarty_internal_templateparser.y"
2213 $this->yystack[$this->yyidx + - 1]->minor->append_subtree($this->yystack[$this->yyidx + 0]->minor);
2214 $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor;
2217 #line 1298 "../smarty/lexer/smarty_internal_templateparser.y"
2220 $this->_retvalue = new Smarty_Internal_ParseTree_Dq($this, $this->yystack[$this->yyidx + 0]->minor);
2223 #line 1302 "../smarty/lexer/smarty_internal_templateparser.y"
2226 $this->_retvalue = new Smarty_Internal_ParseTree_Code($this, '(string)
' . $this->yystack[$this->yyidx + - 1]->minor);
2229 #line 1310 "../smarty/lexer/smarty_internal_templateparser.y"
2232 $this->_retvalue = new Smarty_Internal_ParseTree_Code($this, '(
string)$_smarty_tpl->tpl_vars[\
'' . substr($this->yystack[$this->yyidx + 0]->minor, 1) .
'\']->value
');
2235 #line 1318 "../smarty/lexer/smarty_internal_templateparser.y"
2238 $this->_retvalue = new Smarty_Internal_ParseTree_Code($this, '(string)(
' . $this->yystack[$this->yyidx + - 1]->minor . ')
');
2241 #line 1322 "../smarty/lexer/smarty_internal_templateparser.y"
2244 $this->_retvalue = new Smarty_Internal_ParseTree_Tag($this, $this->yystack[$this->yyidx + 0]->minor);
2247 #line 1326 "../smarty/lexer/smarty_internal_templateparser.y"
2250 $this->_retvalue = new Smarty_Internal_ParseTree_DqContent($this, $this->yystack[$this->yyidx + 0]->minor);
2255 public function yy_reduce($yyruleno)
2257 if ($this->yyTraceFILE && $yyruleno >= 0 && $yyruleno < count(self::$yyRuleName)) {
2258 fprintf($this->yyTraceFILE, "%sReduce (%d) [%s].\n", $this->yyTracePrompt, $yyruleno, self::$yyRuleName[$yyruleno]);
2261 $this->_retvalue = $yy_lefthand_side = null;
2262 if (isset(self::$yyReduceMap[$yyruleno])) {
2264 $this->_retvalue = null;
2265 $this->{'yy_r
' . self::$yyReduceMap[$yyruleno]}();
2266 $yy_lefthand_side = $this->_retvalue;
2268 $yygoto = self::$yyRuleInfo[$yyruleno][0];
2269 $yysize = self::$yyRuleInfo[$yyruleno][1];
2270 $this->yyidx -= $yysize;
2271 for ($i = $yysize; $i; $i --) {
2272 // pop all of the right-hand side parameters
2273 array_pop($this->yystack);
2275 $yyact = $this->yy_find_reduce_action($this->yystack[$this->yyidx]->stateno, $yygoto);
2276 if ($yyact < self::YYNSTATE) {
2277 if (!$this->yyTraceFILE && $yysize) {
2279 $x = new TP_yyStackEntry;
2280 $x->stateno = $yyact;
2281 $x->major = $yygoto;
2282 $x->minor = $yy_lefthand_side;
2283 $this->yystack[$this->yyidx] = $x;
2285 $this->yy_shift($yyact, $yygoto, $yy_lefthand_side);
2287 } elseif ($yyact == self::YYNSTATE + self::YYNRULE + 1) {
2292 public function yy_parse_failed()
2294 if ($this->yyTraceFILE) {
2295 fprintf($this->yyTraceFILE, "%sFail!\n", $this->yyTracePrompt);
2297 while ($this->yyidx >= 0) {
2298 $this->yy_pop_parser_stack();
2302 public function yy_syntax_error($yymajor, $TOKEN)
2304 #line 183 "../smarty/lexer/smarty_internal_templateparser.y"
2306 $this->internalError = true;
2307 $this->yymajor = $yymajor;
2308 $this->compiler->trigger_template_error();
2311 public function yy_accept()
2313 if ($this->yyTraceFILE) {
2314 fprintf($this->yyTraceFILE, "%sAccept!\n", $this->yyTracePrompt);
2316 while ($this->yyidx >= 0) {
2317 $this->yy_pop_parser_stack();
2319 #line 176 "../smarty/lexer/smarty_internal_templateparser.y"
2321 $this->successful = !$this->internalError;
2322 $this->internalError = false;
2323 $this->retvalue = $this->_retvalue;
2326 public function doParse($yymajor, $yytokenvalue)
2328 $yyerrorhit = 0; /* True if yymajor has invoked an error */
2330 if ($this->yyidx === null || $this->yyidx < 0) {
2332 $this->yyerrcnt = - 1;
2333 $x = new TP_yyStackEntry;
2336 $this->yystack = array();
2337 $this->yystack[] = $x;
2339 $yyendofinput = ($yymajor == 0);
2341 if ($this->yyTraceFILE) {
2342 fprintf($this->yyTraceFILE, "%sInput %s\n", $this->yyTracePrompt, $this->yyTokenName[$yymajor]);
2346 $yyact = $this->yy_find_shift_action($yymajor);
2347 if ($yymajor < self::YYERRORSYMBOL && !$this->yy_is_expected_token($yymajor)) {
2348 // force a syntax error
2349 $yyact = self::YY_ERROR_ACTION;
2351 if ($yyact < self::YYNSTATE) {
2352 $this->yy_shift($yyact, $yymajor, $yytokenvalue);
2354 if ($yyendofinput && $this->yyidx >= 0) {
2357 $yymajor = self::YYNOCODE;
2359 } elseif ($yyact < self::YYNSTATE + self::YYNRULE) {
2360 $this->yy_reduce($yyact - self::YYNSTATE);
2361 } elseif ($yyact == self::YY_ERROR_ACTION) {
2362 if ($this->yyTraceFILE) {
2363 fprintf($this->yyTraceFILE, "%sSyntax Error!\n", $this->yyTracePrompt);
2365 if (self::YYERRORSYMBOL) {
2366 if ($this->yyerrcnt < 0) {
2367 $this->yy_syntax_error($yymajor, $yytokenvalue);
2369 $yymx = $this->yystack[$this->yyidx]->major;
2370 if ($yymx == self::YYERRORSYMBOL || $yyerrorhit) {
2371 if ($this->yyTraceFILE) {
2372 fprintf($this->yyTraceFILE, "%sDiscard input token %s\n", $this->yyTracePrompt, $this->yyTokenName[$yymajor]);
2374 $this->yy_destructor($yymajor, $yytokenvalue);
2375 $yymajor = self::YYNOCODE;
2377 while ($this->yyidx >= 0 && $yymx != self::YYERRORSYMBOL && ($yyact = $this->yy_find_shift_action(self::YYERRORSYMBOL)) >= self::YYNSTATE) {
2378 $this->yy_pop_parser_stack();
2380 if ($this->yyidx < 0 || $yymajor == 0) {
2381 $this->yy_destructor($yymajor, $yytokenvalue);
2382 $this->yy_parse_failed();
2383 $yymajor = self::YYNOCODE;
2384 } elseif ($yymx != self::YYERRORSYMBOL) {
2386 $this->yy_shift($yyact, self::YYERRORSYMBOL, $u2);
2389 $this->yyerrcnt = 3;
2392 if ($this->yyerrcnt <= 0) {
2393 $this->yy_syntax_error($yymajor, $yytokenvalue);
2395 $this->yyerrcnt = 3;
2396 $this->yy_destructor($yymajor, $yytokenvalue);
2397 if ($yyendofinput) {
2398 $this->yy_parse_failed();
2400 $yymajor = self::YYNOCODE;
2404 $yymajor = self::YYNOCODE;
2406 } while ($yymajor != self::YYNOCODE && $this->yyidx >= 0);