3 class TP_yyToken
implements ArrayAccess
8 public $metadata = array();
10 public function __construct($s, $m = array())
12 if ($s instanceof TP_yyToken
) {
13 $this->string = $s->string;
14 $this->metadata
= $s->metadata
;
16 $this->string = (string) $s;
17 if ($m instanceof TP_yyToken
) {
18 $this->metadata
= $m->metadata
;
19 } elseif (is_array($m)) {
25 public function __toString()
30 public function offsetExists($offset)
32 return isset($this->metadata
[$offset]);
35 public function offsetGet($offset)
37 return $this->metadata
[$offset];
40 public function offsetSet($offset, $value)
42 if ($offset === null) {
43 if (isset($value[0])) {
44 $x = ($value instanceof TP_yyToken
) ?
$value->metadata
: $value;
45 $this->metadata
= array_merge($this->metadata
, $x);
49 $offset = count($this->metadata
);
51 if ($value === null) {
54 if ($value instanceof TP_yyToken
) {
55 if ($value->metadata
) {
56 $this->metadata
[$offset] = $value->metadata
;
59 $this->metadata
[$offset] = $value;
63 public function offsetUnset($offset)
65 unset($this->metadata
[$offset]);
72 public $stateno; /* The state-number */
73 public $major; /* The major token value. This is the code
74 ** number for the token at this stack level */
75 public $minor; /* The user-supplied minor token value. This
76 ** is the value of the token */
81 #line 13 "../smarty/lexer/smarty_internal_templateparser.y"
84 * Smarty Internal Plugin Templateparser
86 * This is the template parser.
87 * It is generated from the smarty_internal_templateparser.y file
90 * @subpackage Compiler
93 class Smarty_Internal_Templateparser
96 #line 26 "../smarty/lexer/smarty_internal_templateparser.y"
98 const Err1
= "Security error: Call to private object member not allowed";
100 const Err2
= "Security error: Call to dynamic object member not allowed";
102 const Err3
= "PHP in template not allowed. Use SmartyBC to enable it";
109 public $successful = true;
116 public $retvalue = 0;
119 * counter for prefix code
123 public static $prefix_number = 0;
131 * last index of array variable
142 public $last_variable;
145 * root parse tree buffer
147 * @var Smarty_Internal_ParseTree
152 * current parse tree object
154 * @var Smarty_Internal_ParseTree
156 public $current_buffer;
161 * @var Smarty_Internal_Templatelexer
166 * internal error flag
170 private $internalError = false;
177 public $strip = false;
182 * @var Smarty_Internal_TemplateCompilerBase
184 public $compiler = null;
191 public $smarty = null;
196 * @var Smarty_Internal_Template
198 public $template = null;
201 * block nesting level
205 public $block_nesting_level = 0;
210 * @var Smarty_Security
212 private $security = null;
217 * @param Smarty_Internal_Templatelexer $lex
218 * @param Smarty_Internal_TemplateCompilerBase $compiler
220 function __construct(Smarty_Internal_Templatelexer
$lex, Smarty_Internal_TemplateCompilerBase
$compiler)
223 $this->compiler
= $compiler;
224 $this->template
= $this->compiler
->template
;
225 $this->smarty
= $this->template
->smarty
;
226 $this->security
= isset($this->smarty
->security_policy
) ?
$this->smarty
->security_policy
: false;
227 $this->current_buffer
= $this->root_buffer
= new Smarty_Internal_ParseTree_Template($this);
231 * insert PHP code in current buffer
233 * @param string $code
235 public function insertPhpCode($code)
237 $this->current_buffer
->append_subtree(new Smarty_Internal_ParseTree_Tag($this, $code));
241 * merge PHP code with prefix code and return parse tree tag object
243 * @param string $code
245 * @return Smarty_Internal_ParseTree_Tag
247 public function mergePrefixCode($code)
250 foreach ($this->compiler
->prefix_code
as $preCode) {
251 $tmp = empty($tmp) ?
$preCode : $this->compiler
->appendCode($tmp, $preCode);
253 $this->compiler
->prefix_code
= array();
254 $tmp = empty($tmp) ?
$code : $this->compiler
->appendCode($tmp, $code);
255 return new Smarty_Internal_ParseTree_Tag($this, $this->compiler
->processNocacheCode($tmp, true));
266 const TP_STRIPON
= 5;
268 const TP_STRIPOFF
= 6;
270 const TP_BLOCKSOURCE
= 7;
272 const TP_LITERALSTART
= 8;
274 const TP_LITERALEND
= 9;
276 const TP_LITERAL
= 10;
280 const TP_SIMPELOUTPUT
= 12;
284 const TP_DOLLARID
= 14;
288 const TP_SIMPLETAG
= 16;
294 const TP_LDELIF
= 19;
296 const TP_LDELFOR
= 20;
298 const TP_SEMICOLON
= 21;
300 const TP_INCDEC
= 22;
306 const TP_LDELFOREACH
= 25;
314 const TP_LDELSETFILTER
= 29;
316 const TP_SMARTYBLOCKCHILDPARENT
= 30;
318 const TP_CLOSETAG
= 31;
320 const TP_LDELSLASH
= 32;
324 const TP_INTEGER
= 34;
330 const TP_CLOSEP
= 37;
334 const TP_UNIMATH
= 39;
338 const TP_INSTANCEOF
= 41;
344 const TP_TYPECAST
= 44;
350 const TP_SINGLEQUOTESTRING
= 47;
352 const TP_DOUBLECOLON
= 48;
354 const TP_NAMESPACE
= 49;
362 const TP_CLOSEB
= 53;
364 const TP_DOLLAR
= 54;
368 const TP_TLOGOP
= 56;
370 const TP_SINGLECOND
= 57;
374 const TP_BACKTICK
= 59;
376 const YY_NO_ACTION
= 533;
378 const YY_ACCEPT_ACTION
= 532;
380 const YY_ERROR_ACTION
= 531;
382 const YY_SZ_ACTTAB
= 2133;
384 static public $yy_action = array(292, 9, 133, 449, 280, 70, 208, 2, 84, 268, 11, 97, 155, 113, 267, 449, 366, 224,
385 303, 264, 217, 279, 231, 26, 21, 172, 274, 42, 190, 304, 17, 43, 39, 269, 223, 298, 13, 209, 194, 81, 1, 143,
386 317, 90, 148, 105, 52, 292, 9, 132, 93, 280, 200, 279, 2, 84, 35, 325, 91, 156, 113, 218, 219, 207, 224, 105,
387 264, 217, 279, 205, 194, 21, 268, 11, 42, 262, 26, 267, 43, 39, 269, 223, 233, 17, 209, 194, 81, 1, 252, 317,
388 186, 141, 101, 52, 292, 9, 134, 192, 280, 213, 279, 2, 84, 35, 325, 208, 12, 113, 235, 101, 220, 224, 3, 264,
389 217, 361, 231, 194, 21, 218, 258, 42, 110, 105, 16, 43, 39, 269, 223, 298, 26, 209, 448, 81, 1, 7, 317, 17, 332,
390 110, 52, 292, 9, 134, 448, 280, 197, 118, 2, 84, 286, 287, 288, 227, 113, 27, 229, 305, 224, 316, 264, 217, 232,
391 231, 229, 21, 136, 120, 42, 241, 329, 102, 43, 39, 269, 223, 298, 243, 209, 137, 81, 1, 260, 317, 208, 10, 186,
392 52, 292, 9, 134, 101, 280, 199, 406, 2, 84, 85, 313, 35, 325, 113, 27, 81, 248, 224, 317, 264, 217, 406, 212,
393 25, 21, 194, 101, 42, 406, 317, 461, 43, 39, 269, 223, 298, 461, 209, 263, 81, 1, 318, 317, 92, 150, 22, 52,
394 292, 9, 135, 140, 280, 213, 279, 2, 84, 110, 163, 94, 159, 113, 183, 296, 294, 224, 448, 264, 217, 279, 231,
395 194, 21, 263, 191, 42, 309, 221, 448, 43, 39, 269, 223, 298, 316, 209, 194, 81, 1, 229, 317, 317, 163, 185, 52,
396 292, 9, 131, 153, 280, 213, 194, 2, 84, 330, 268, 11, 279, 113, 24, 267, 221, 224, 30, 264, 217, 259, 231, 254,
397 5, 194, 265, 42, 302, 192, 83, 43, 39, 269, 223, 298, 158, 209, 208, 81, 1, 6, 317, 4, 157, 279, 52, 292, 9,
398 136, 154, 280, 213, 279, 2, 84, 27, 101, 247, 279, 113, 310, 192, 26, 224, 324, 264, 217, 170, 231, 17, 31, 121,
399 180, 42, 139, 192, 279, 43, 39, 269, 223, 298, 162, 209, 137, 81, 1, 179, 317, 266, 10, 279, 52, 292, 9, 134,
400 95, 280, 202, 194, 2, 84, 263, 266, 218, 222, 113, 146, 105, 266, 224, 208, 264, 217, 317, 231, 19, 21, 208, 32,
401 42, 163, 178, 17, 43, 39, 269, 223, 298, 160, 209, 279, 81, 1, 107, 317, 184, 304, 279, 52, 292, 9, 134, 266,
402 280, 213, 182, 2, 84, 230, 461, 336, 242, 113, 181, 192, 461, 224, 208, 264, 217, 145, 198, 319, 21, 189, 304,
403 42, 124, 149, 279, 43, 39, 269, 223, 298, 322, 209, 279, 81, 1, 194, 317, 121, 208, 34, 52, 292, 9, 136, 266,
404 280, 213, 138, 2, 84, 208, 37, 265, 152, 113, 236, 295, 37, 224, 297, 264, 217, 279, 231, 175, 31, 276, 261, 42,
405 249, 187, 251, 43, 39, 269, 223, 298, 193, 209, 192, 81, 477, 477, 317, 404, 275, 477, 52, 234, 114, 270, 285,
406 281, 282, 283, 289, 183, 12, 208, 404, 292, 9, 33, 331, 280, 284, 404, 2, 84, 448, 271, 250, 173, 113, 166, 98,
407 246, 224, 111, 264, 217, 448, 20, 323, 221, 6, 477, 477, 229, 214, 291, 477, 115, 69, 109, 40, 41, 38, 102, 268,
408 11, 278, 335, 168, 267, 211, 277, 299, 144, 260, 188, 263, 327, 328, 334, 293, 323, 279, 169, 206, 312, 229,
409 214, 87, 477, 115, 69, 109, 266, 266, 108, 102, 165, 208, 278, 335, 119, 226, 211, 277, 299, 88, 260, 406, 89,
410 323, 274, 86, 290, 300, 229, 214, 333, 311, 128, 59, 106, 222, 406, 151, 102, 171, 164, 278, 335, 406, 96, 211,
411 277, 299, 323, 260, 300, 186, 174, 229, 214, 268, 11, 128, 65, 109, 267, 279, 300, 102, 35, 325, 278, 335, 300,
412 26, 211, 277, 299, 300, 260, 300, 17, 323, 194, 300, 300, 216, 229, 214, 300, 300, 128, 65, 109, 300, 300, 300,
413 102, 300, 208, 278, 335, 448, 300, 211, 277, 299, 300, 260, 400, 300, 323, 240, 300, 448, 215, 229, 214, 208,
414 253, 128, 49, 106, 112, 26, 300, 102, 300, 403, 278, 335, 17, 300, 211, 277, 299, 323, 260, 300, 300, 300, 229,
415 214, 403, 300, 128, 65, 109, 300, 300, 403, 102, 300, 300, 278, 335, 300, 300, 211, 277, 299, 300, 260, 300,
416 300, 323, 300, 300, 300, 210, 229, 214, 300, 300, 128, 59, 109, 300, 300, 300, 102, 300, 300, 278, 335, 300,
417 300, 211, 277, 299, 300, 260, 300, 300, 323, 300, 300, 300, 300, 229, 214, 300, 300, 128, 64, 109, 300, 300,
418 300, 102, 300, 300, 278, 335, 300, 300, 211, 277, 299, 323, 260, 300, 300, 300, 229, 214, 300, 300, 128, 74,
419 109, 300, 36, 239, 102, 300, 176, 278, 335, 300, 300, 211, 277, 299, 300, 260, 300, 300, 323, 300, 300, 300,
420 300, 229, 78, 300, 300, 82, 44, 104, 300, 300, 300, 102, 300, 300, 278, 335, 300, 300, 211, 277, 299, 317, 260,
421 300, 300, 323, 300, 300, 300, 300, 229, 80, 300, 300, 82, 47, 104, 300, 300, 300, 102, 300, 300, 278, 335, 300,
422 300, 211, 277, 299, 323, 260, 300, 300, 300, 229, 214, 300, 300, 99, 54, 109, 300, 300, 300, 102, 300, 300, 278,
423 335, 300, 300, 211, 277, 299, 300, 260, 300, 300, 323, 300, 300, 300, 300, 229, 214, 300, 300, 128, 61, 109,
424 300, 300, 300, 102, 300, 300, 278, 335, 314, 300, 211, 277, 299, 300, 260, 300, 292, 8, 315, 300, 280, 300, 300,
425 2, 84, 300, 18, 201, 300, 113, 272, 300, 300, 224, 323, 264, 217, 300, 300, 229, 214, 300, 300, 128, 66, 109,
426 300, 273, 300, 102, 300, 300, 278, 335, 300, 300, 211, 277, 299, 323, 260, 300, 301, 23, 229, 214, 300, 317,
427 128, 72, 109, 300, 300, 300, 102, 300, 300, 278, 335, 314, 300, 211, 277, 299, 300, 260, 300, 292, 8, 315, 300,
428 280, 300, 300, 2, 84, 300, 300, 300, 300, 113, 300, 300, 300, 224, 323, 264, 217, 300, 300, 229, 214, 300, 300,
429 128, 63, 109, 300, 300, 300, 102, 300, 300, 278, 335, 300, 300, 211, 277, 299, 323, 260, 300, 300, 23, 229, 214,
430 300, 300, 128, 45, 109, 300, 300, 300, 102, 268, 11, 278, 335, 300, 267, 211, 277, 299, 300, 260, 300, 300, 323,
431 26, 300, 147, 300, 229, 204, 300, 17, 117, 53, 109, 300, 300, 300, 102, 300, 300, 278, 335, 300, 300, 211, 277,
432 299, 300, 260, 300, 300, 323, 300, 300, 300, 300, 229, 214, 300, 300, 128, 75, 109, 300, 300, 300, 102, 300,
433 300, 278, 335, 300, 300, 211, 277, 299, 323, 260, 300, 300, 300, 229, 214, 300, 300, 128, 56, 109, 300, 300,
434 300, 102, 300, 300, 278, 335, 300, 300, 211, 277, 299, 300, 260, 300, 300, 323, 300, 300, 300, 300, 229, 214,
435 300, 300, 116, 50, 109, 300, 300, 300, 102, 300, 300, 278, 335, 300, 300, 211, 277, 299, 300, 260, 300, 300,
436 323, 300, 300, 300, 300, 229, 214, 300, 300, 103, 67, 109, 300, 300, 300, 102, 300, 300, 278, 335, 300, 300,
437 211, 277, 299, 323, 260, 300, 300, 300, 229, 214, 300, 300, 128, 46, 109, 300, 300, 300, 102, 300, 300, 278,
438 335, 300, 300, 211, 277, 299, 300, 260, 300, 300, 323, 300, 300, 300, 300, 229, 214, 300, 300, 128, 76, 109,
439 300, 300, 300, 102, 300, 300, 278, 335, 300, 300, 211, 277, 299, 300, 260, 300, 300, 323, 300, 300, 300, 300,
440 229, 214, 300, 300, 128, 73, 109, 300, 300, 300, 102, 300, 300, 278, 335, 300, 300, 211, 277, 299, 323, 260,
441 300, 300, 300, 229, 214, 300, 300, 128, 77, 109, 300, 300, 300, 102, 300, 300, 278, 335, 300, 300, 211, 277,
442 299, 300, 260, 300, 300, 323, 300, 300, 300, 300, 229, 214, 300, 300, 128, 79, 109, 300, 300, 300, 102, 300,
443 300, 278, 335, 300, 300, 211, 277, 299, 300, 260, 300, 300, 323, 300, 300, 300, 300, 229, 214, 300, 300, 128,
444 58, 109, 300, 300, 300, 102, 300, 300, 278, 335, 300, 300, 211, 277, 299, 323, 260, 300, 300, 300, 229, 203,
445 300, 300, 128, 55, 109, 300, 300, 300, 102, 300, 300, 278, 335, 300, 300, 211, 277, 299, 300, 260, 300, 300,
446 323, 300, 300, 300, 300, 229, 214, 300, 300, 128, 62, 109, 300, 300, 300, 102, 300, 300, 278, 335, 300, 300,
447 211, 277, 299, 300, 260, 300, 300, 323, 300, 300, 300, 300, 229, 214, 300, 300, 128, 60, 109, 300, 300, 300,
448 102, 300, 300, 278, 335, 300, 300, 211, 277, 299, 323, 260, 300, 300, 300, 229, 214, 300, 300, 128, 71, 109,
449 300, 300, 300, 102, 300, 300, 278, 335, 300, 300, 211, 277, 299, 300, 260, 300, 300, 323, 300, 300, 300, 300,
450 229, 214, 300, 300, 128, 57, 109, 300, 300, 300, 102, 300, 300, 278, 335, 300, 300, 211, 277, 299, 300, 260,
451 300, 300, 323, 300, 300, 300, 300, 229, 214, 300, 300, 128, 48, 109, 300, 300, 300, 102, 300, 300, 278, 335,
452 300, 300, 211, 277, 299, 323, 260, 300, 300, 300, 229, 214, 300, 300, 100, 68, 109, 300, 300, 300, 102, 300,
453 300, 278, 335, 300, 410, 211, 277, 299, 300, 260, 300, 300, 323, 300, 410, 300, 410, 229, 237, 410, 300, 122,
454 300, 109, 300, 300, 410, 102, 410, 300, 410, 326, 300, 300, 211, 277, 299, 300, 260, 221, 300, 323, 300, 208,
455 300, 300, 229, 237, 416, 416, 130, 300, 109, 300, 300, 300, 102, 300, 300, 300, 255, 300, 300, 211, 277, 299,
456 29, 260, 26, 532, 51, 244, 287, 288, 227, 17, 300, 229, 225, 300, 40, 41, 38, 448, 300, 416, 416, 416, 477, 477,
457 225, 15, 300, 477, 461, 448, 300, 327, 328, 334, 477, 477, 416, 416, 416, 477, 461, 208, 300, 300, 300, 300, 40,
458 41, 38, 300, 300, 307, 300, 300, 300, 300, 461, 300, 461, 300, 477, 300, 461, 327, 328, 334, 26, 300, 461, 300,
459 461, 225, 477, 17, 461, 320, 300, 300, 40, 41, 38, 477, 477, 300, 32, 300, 477, 461, 300, 300, 300, 300, 300,
460 300, 300, 327, 328, 334, 300, 300, 300, 323, 300, 300, 300, 300, 229, 237, 300, 300, 127, 300, 109, 300, 300,
461 461, 102, 461, 300, 477, 300, 461, 300, 211, 277, 299, 300, 260, 14, 300, 300, 323, 300, 300, 300, 300, 229,
462 237, 477, 477, 126, 300, 109, 477, 461, 300, 102, 300, 300, 300, 300, 300, 300, 211, 277, 299, 300, 260, 300,
463 300, 323, 300, 300, 300, 300, 229, 237, 300, 300, 123, 300, 109, 461, 300, 461, 102, 477, 300, 461, 300, 300,
464 300, 211, 277, 299, 300, 260, 300, 323, 300, 300, 300, 300, 229, 237, 300, 300, 129, 300, 109, 300, 300, 300,
465 102, 300, 300, 300, 300, 300, 300, 211, 277, 299, 208, 260, 225, 300, 208, 323, 300, 300, 300, 300, 229, 237,
466 477, 477, 125, 300, 109, 477, 461, 300, 102, 300, 300, 300, 300, 26, 300, 211, 277, 299, 300, 260, 17, 300, 208,
467 300, 300, 40, 41, 38, 256, 40, 41, 38, 245, 208, 461, 300, 461, 300, 477, 300, 461, 300, 327, 328, 334, 208,
468 327, 328, 334, 300, 300, 300, 300, 300, 300, 257, 300, 208, 300, 40, 41, 38, 300, 300, 300, 300, 300, 195, 300,
469 228, 40, 41, 38, 300, 300, 300, 327, 328, 334, 300, 208, 300, 40, 41, 38, 208, 28, 327, 328, 334, 196, 208, 300,
470 300, 40, 41, 38, 300, 300, 327, 328, 334, 300, 300, 300, 300, 300, 300, 300, 300, 300, 327, 328, 334, 300, 300,
471 300, 40, 41, 38, 208, 300, 40, 41, 38, 208, 300, 300, 40, 41, 38, 300, 477, 477, 327, 328, 334, 477, 461, 327,
472 328, 334, 300, 321, 300, 327, 328, 334, 208, 300, 300, 167, 300, 300, 300, 300, 300, 40, 41, 38, 300, 300, 40,
473 41, 38, 300, 461, 300, 461, 300, 477, 300, 461, 300, 327, 328, 334, 300, 308, 327, 328, 334, 208, 300, 208, 40,
474 41, 38, 300, 300, 300, 300, 372, 300, 358, 300, 300, 300, 300, 238, 300, 300, 327, 328, 334, 263, 300, 26, 300,
475 26, 300, 300, 186, 177, 17, 300, 17, 448, 300, 300, 186, 161, 279, 300, 163, 35, 325, 208, 300, 448, 279, 186,
476 142, 35, 325, 300, 300, 306, 300, 194, 300, 279, 300, 300, 35, 325, 300, 194, 263, 300, 300, 300, 26, 300, 300,
477 300, 300, 300, 194, 17, 300, 300, 300, 300, 300, 300, 300, 163,);
479 static public $yy_lookahead = array(12, 13, 14, 36, 16, 17, 1, 19, 20, 12, 13, 71, 72, 25, 17, 48, 11, 29, 30, 31,
480 32, 81, 34, 26, 36, 28, 92, 39, 94, 95, 33, 43, 44, 45, 46, 47, 21, 49, 98, 51, 52, 75, 54, 71, 72, 79, 58, 12,
481 13, 14, 35, 16, 17, 81, 19, 20, 84, 85, 71, 72, 25, 75, 76, 77, 29, 79, 31, 32, 81, 34, 98, 36, 12, 13, 39, 17,
482 26, 17, 43, 44, 45, 46, 47, 33, 49, 98, 51, 52, 53, 54, 71, 72, 18, 58, 12, 13, 14, 98, 16, 17, 81, 19, 20, 84,
483 85, 1, 15, 25, 50, 18, 50, 29, 36, 31, 32, 11, 34, 98, 36, 75, 76, 39, 48, 79, 28, 43, 44, 45, 46, 47, 26, 49,
484 36, 51, 52, 36, 54, 33, 17, 48, 58, 12, 13, 14, 48, 16, 17, 48, 19, 20, 63, 64, 65, 66, 25, 35, 69, 37, 29, 64,
485 31, 32, 70, 34, 69, 36, 14, 75, 39, 17, 49, 79, 43, 44, 45, 46, 47, 14, 49, 46, 51, 52, 90, 54, 1, 52, 71, 58,
486 12, 13, 14, 18, 16, 17, 11, 19, 20, 102, 103, 84, 85, 25, 35, 51, 37, 29, 54, 31, 32, 26, 34, 15, 36, 98, 18,
487 39, 33, 54, 46, 43, 44, 45, 46, 47, 52, 49, 22, 51, 52, 95, 54, 71, 72, 15, 58, 12, 13, 14, 14, 16, 17, 81, 19,
488 20, 48, 41, 71, 72, 25, 8, 9, 10, 29, 36, 31, 32, 81, 34, 98, 36, 22, 71, 39, 59, 46, 48, 43, 44, 45, 46, 47,
489 64, 49, 98, 51, 52, 69, 54, 54, 41, 71, 58, 12, 13, 14, 72, 16, 17, 98, 19, 20, 53, 12, 13, 81, 25, 15, 17, 46,
490 29, 13, 31, 32, 22, 34, 53, 36, 98, 99, 39, 103, 98, 17, 43, 44, 45, 46, 47, 72, 49, 1, 51, 52, 36, 54, 35, 72,
491 81, 58, 12, 13, 14, 72, 16, 17, 81, 19, 20, 35, 18, 37, 81, 25, 53, 98, 26, 29, 89, 31, 32, 72, 34, 33, 36, 96,
492 71, 39, 14, 98, 81, 43, 44, 45, 46, 47, 72, 49, 46, 51, 52, 91, 54, 93, 52, 81, 58, 12, 13, 14, 36, 16, 17, 98,
493 19, 20, 22, 93, 75, 76, 25, 91, 79, 93, 29, 1, 31, 32, 54, 34, 26, 36, 1, 15, 39, 41, 72, 33, 43, 44, 45, 46,
494 47, 72, 49, 81, 51, 52, 79, 54, 94, 95, 81, 58, 12, 13, 14, 93, 16, 17, 14, 19, 20, 17, 46, 96, 17, 25, 71, 98,
495 52, 29, 1, 31, 32, 72, 34, 53, 36, 94, 95, 39, 17, 72, 81, 43, 44, 45, 46, 47, 89, 49, 81, 51, 52, 98, 54, 96,
496 1, 28, 58, 12, 13, 14, 93, 16, 17, 79, 19, 20, 1, 2, 99, 72, 25, 18, 65, 2, 29, 68, 31, 32, 81, 34, 51, 36, 34,
497 17, 39, 53, 80, 37, 43, 44, 45, 46, 47, 17, 49, 98, 51, 12, 13, 54, 11, 17, 17, 58, 15, 17, 34, 3, 4, 5, 6, 7,
498 8, 15, 1, 26, 12, 13, 23, 17, 16, 4, 33, 19, 20, 36, 17, 53, 51, 25, 91, 80, 17, 29, 21, 31, 32, 48, 42, 64, 46,
499 36, 12, 13, 69, 70, 11, 17, 73, 74, 75, 38, 39, 40, 79, 12, 13, 82, 83, 91, 17, 86, 87, 88, 72, 90, 80, 22, 55,
500 56, 57, 81, 64, 81, 91, 100, 101, 69, 70, 79, 50, 73, 74, 75, 93, 93, 67, 79, 91, 1, 82, 83, 78, 50, 86, 87, 88,
501 79, 90, 11, 79, 64, 92, 79, 9, 104, 69, 70, 86, 101, 73, 74, 75, 76, 26, 27, 79, 91, 91, 82, 83, 33, 91, 86, 87,
502 88, 64, 90, 104, 71, 72, 69, 70, 12, 13, 73, 74, 75, 17, 81, 104, 79, 84, 85, 82, 83, 104, 26, 86, 87, 88, 104,
503 90, 104, 33, 64, 98, 104, 104, 97, 69, 70, 104, 104, 73, 74, 75, 104, 104, 104, 79, 104, 1, 82, 83, 36, 104, 86,
504 87, 88, 104, 90, 11, 104, 64, 46, 104, 48, 97, 69, 70, 1, 53, 73, 74, 75, 76, 26, 104, 79, 104, 11, 82, 83, 33,
505 104, 86, 87, 88, 64, 90, 104, 104, 104, 69, 70, 26, 104, 73, 74, 75, 104, 104, 33, 79, 104, 104, 82, 83, 104,
506 104, 86, 87, 88, 104, 90, 104, 104, 64, 104, 104, 104, 97, 69, 70, 104, 104, 73, 74, 75, 104, 104, 104, 79, 104,
507 104, 82, 83, 104, 104, 86, 87, 88, 104, 90, 104, 104, 64, 104, 104, 104, 104, 69, 70, 104, 104, 73, 74, 75, 104,
508 104, 104, 79, 104, 104, 82, 83, 104, 104, 86, 87, 88, 64, 90, 104, 104, 104, 69, 70, 104, 104, 73, 74, 75, 104,
509 13, 14, 79, 104, 17, 82, 83, 104, 104, 86, 87, 88, 104, 90, 104, 104, 64, 104, 104, 104, 104, 69, 70, 104, 104,
510 73, 74, 75, 104, 104, 104, 79, 104, 104, 82, 83, 104, 104, 86, 87, 88, 54, 90, 104, 104, 64, 104, 104, 104, 104,
511 69, 70, 104, 104, 73, 74, 75, 104, 104, 104, 79, 104, 104, 82, 83, 104, 104, 86, 87, 88, 64, 90, 104, 104, 104,
512 69, 70, 104, 104, 73, 74, 75, 104, 104, 104, 79, 104, 104, 82, 83, 104, 104, 86, 87, 88, 104, 90, 104, 104, 64,
513 104, 104, 104, 104, 69, 70, 104, 104, 73, 74, 75, 104, 104, 104, 79, 104, 104, 82, 83, 4, 104, 86, 87, 88, 104,
514 90, 104, 12, 13, 14, 104, 16, 104, 104, 19, 20, 104, 13, 14, 104, 25, 17, 104, 104, 29, 64, 31, 32, 104, 104,
515 69, 70, 104, 104, 73, 74, 75, 104, 34, 104, 79, 104, 104, 82, 83, 104, 104, 86, 87, 88, 64, 90, 104, 58, 59, 69,
516 70, 104, 54, 73, 74, 75, 104, 104, 104, 79, 104, 104, 82, 83, 4, 104, 86, 87, 88, 104, 90, 104, 12, 13, 14, 104,
517 16, 104, 104, 19, 20, 104, 104, 104, 104, 25, 104, 104, 104, 29, 64, 31, 32, 104, 104, 69, 70, 104, 104, 73, 74,
518 75, 104, 104, 104, 79, 104, 104, 82, 83, 104, 104, 86, 87, 88, 64, 90, 104, 58, 59, 69, 70, 104, 104, 73, 74,
519 75, 104, 104, 104, 79, 12, 13, 82, 83, 104, 17, 86, 87, 88, 104, 90, 104, 104, 64, 26, 104, 28, 104, 69, 70,
520 104, 33, 73, 74, 75, 104, 104, 104, 79, 104, 104, 82, 83, 104, 104, 86, 87, 88, 104, 90, 104, 104, 64, 104, 104,
521 104, 104, 69, 70, 104, 104, 73, 74, 75, 104, 104, 104, 79, 104, 104, 82, 83, 104, 104, 86, 87, 88, 64, 90, 104,
522 104, 104, 69, 70, 104, 104, 73, 74, 75, 104, 104, 104, 79, 104, 104, 82, 83, 104, 104, 86, 87, 88, 104, 90, 104,
523 104, 64, 104, 104, 104, 104, 69, 70, 104, 104, 73, 74, 75, 104, 104, 104, 79, 104, 104, 82, 83, 104, 104, 86,
524 87, 88, 104, 90, 104, 104, 64, 104, 104, 104, 104, 69, 70, 104, 104, 73, 74, 75, 104, 104, 104, 79, 104, 104,
525 82, 83, 104, 104, 86, 87, 88, 64, 90, 104, 104, 104, 69, 70, 104, 104, 73, 74, 75, 104, 104, 104, 79, 104, 104,
526 82, 83, 104, 104, 86, 87, 88, 104, 90, 104, 104, 64, 104, 104, 104, 104, 69, 70, 104, 104, 73, 74, 75, 104, 104,
527 104, 79, 104, 104, 82, 83, 104, 104, 86, 87, 88, 104, 90, 104, 104, 64, 104, 104, 104, 104, 69, 70, 104, 104,
528 73, 74, 75, 104, 104, 104, 79, 104, 104, 82, 83, 104, 104, 86, 87, 88, 64, 90, 104, 104, 104, 69, 70, 104, 104,
529 73, 74, 75, 104, 104, 104, 79, 104, 104, 82, 83, 104, 104, 86, 87, 88, 104, 90, 104, 104, 64, 104, 104, 104,
530 104, 69, 70, 104, 104, 73, 74, 75, 104, 104, 104, 79, 104, 104, 82, 83, 104, 104, 86, 87, 88, 104, 90, 104, 104,
531 64, 104, 104, 104, 104, 69, 70, 104, 104, 73, 74, 75, 104, 104, 104, 79, 104, 104, 82, 83, 104, 104, 86, 87, 88,
532 64, 90, 104, 104, 104, 69, 70, 104, 104, 73, 74, 75, 104, 104, 104, 79, 104, 104, 82, 83, 104, 104, 86, 87, 88,
533 104, 90, 104, 104, 64, 104, 104, 104, 104, 69, 70, 104, 104, 73, 74, 75, 104, 104, 104, 79, 104, 104, 82, 83,
534 104, 104, 86, 87, 88, 104, 90, 104, 104, 64, 104, 104, 104, 104, 69, 70, 104, 104, 73, 74, 75, 104, 104, 104,
535 79, 104, 104, 82, 83, 104, 104, 86, 87, 88, 64, 90, 104, 104, 104, 69, 70, 104, 104, 73, 74, 75, 104, 104, 104,
536 79, 104, 104, 82, 83, 104, 104, 86, 87, 88, 104, 90, 104, 104, 64, 104, 104, 104, 104, 69, 70, 104, 104, 73, 74,
537 75, 104, 104, 104, 79, 104, 104, 82, 83, 104, 104, 86, 87, 88, 104, 90, 104, 104, 64, 104, 104, 104, 104, 69,
538 70, 104, 104, 73, 74, 75, 104, 104, 104, 79, 104, 104, 82, 83, 104, 104, 86, 87, 88, 64, 90, 104, 104, 104, 69,
539 70, 104, 104, 73, 74, 75, 104, 104, 104, 79, 104, 104, 82, 83, 104, 11, 86, 87, 88, 104, 90, 104, 104, 64, 104,
540 21, 104, 23, 69, 70, 26, 104, 73, 104, 75, 104, 104, 33, 79, 35, 104, 37, 83, 104, 104, 86, 87, 88, 104, 90, 46,
541 104, 64, 104, 1, 104, 104, 69, 70, 1, 2, 73, 104, 75, 104, 104, 104, 79, 104, 104, 104, 83, 104, 104, 86, 87,
542 88, 24, 90, 26, 61, 62, 63, 64, 65, 66, 33, 104, 69, 2, 104, 38, 39, 40, 36, 104, 38, 39, 40, 12, 13, 2, 15,
543 104, 17, 18, 48, 104, 55, 56, 57, 12, 13, 55, 56, 57, 17, 18, 1, 104, 104, 104, 104, 38, 39, 40, 104, 104, 11,
544 104, 104, 104, 104, 46, 104, 48, 104, 50, 104, 52, 55, 56, 57, 26, 104, 46, 104, 48, 2, 50, 33, 52, 53, 104,
545 104, 38, 39, 40, 12, 13, 104, 15, 104, 17, 18, 104, 104, 104, 104, 104, 104, 104, 55, 56, 57, 104, 104, 104, 64,
546 104, 104, 104, 104, 69, 70, 104, 104, 73, 104, 75, 104, 104, 46, 79, 48, 104, 50, 104, 52, 104, 86, 87, 88, 104,
547 90, 2, 104, 104, 64, 104, 104, 104, 104, 69, 70, 12, 13, 73, 104, 75, 17, 18, 104, 79, 104, 104, 104, 104, 104,
548 104, 86, 87, 88, 104, 90, 104, 104, 64, 104, 104, 104, 104, 69, 70, 104, 104, 73, 104, 75, 46, 104, 48, 79, 50,
549 104, 52, 104, 104, 104, 86, 87, 88, 104, 90, 104, 64, 104, 104, 104, 104, 69, 70, 104, 104, 73, 104, 75, 104,
550 104, 104, 79, 104, 104, 104, 104, 104, 104, 86, 87, 88, 1, 90, 2, 104, 1, 64, 104, 104, 104, 104, 69, 70, 12,
551 13, 73, 104, 75, 17, 18, 104, 79, 104, 104, 104, 104, 26, 104, 86, 87, 88, 104, 90, 33, 104, 1, 104, 104, 38,
552 39, 40, 37, 38, 39, 40, 11, 1, 46, 104, 48, 104, 50, 104, 52, 104, 55, 56, 57, 1, 55, 56, 57, 104, 104, 104,
553 104, 104, 104, 11, 104, 1, 104, 38, 39, 40, 104, 104, 104, 104, 104, 11, 104, 37, 38, 39, 40, 104, 104, 104, 55,
554 56, 57, 104, 1, 104, 38, 39, 40, 1, 2, 55, 56, 57, 11, 1, 104, 104, 38, 39, 40, 104, 104, 55, 56, 57, 104, 104,
555 104, 104, 104, 104, 104, 104, 104, 55, 56, 57, 104, 104, 104, 38, 39, 40, 1, 104, 38, 39, 40, 1, 104, 104, 38,
556 39, 40, 104, 12, 13, 55, 56, 57, 17, 18, 55, 56, 57, 104, 53, 104, 55, 56, 57, 1, 104, 104, 27, 104, 104, 104,
557 104, 104, 38, 39, 40, 104, 104, 38, 39, 40, 104, 46, 104, 48, 104, 50, 104, 52, 104, 55, 56, 57, 104, 59, 55,
558 56, 57, 1, 104, 1, 38, 39, 40, 104, 104, 104, 104, 11, 104, 11, 104, 104, 104, 104, 18, 104, 104, 55, 56, 57,
559 22, 104, 26, 104, 26, 104, 104, 71, 72, 33, 104, 33, 36, 104, 104, 71, 72, 81, 104, 41, 84, 85, 1, 104, 48, 81,
560 71, 72, 84, 85, 104, 104, 11, 104, 98, 104, 81, 104, 104, 84, 85, 104, 98, 22, 104, 104, 104, 26, 104, 104, 104,
561 104, 104, 98, 33, 104, 104, 104, 104, 104, 104, 104, 41,);
563 const YY_SHIFT_USE_DFLT
= - 34;
565 const YY_SHIFT_MAX
= 242;
567 static public $yy_shift_ofst = array(517, 364, 270, 82, 364, 270, 82, 82, - 12, - 12, 35, 82, 82, 82, 129, 82, 82,
568 82, 82, 176, 223, 82, 82, 82, 82, 82, 176, 82, 82, 82, 82, 82, 411, 82, 82, 82, 82, 317, 317, 458, 458, 458,
569 458, 458, 1680, 1616, 1852, 1852, 1852, 1852, 1852, 517, 1004, 1955, 1989, 1984, 1909, 526, 1886, 1897, 1944,
570 1921, 1856, 1949, 2012, 2012, 2012, 2012, 2012, 2012, 2046, 2012, 2012, 2012, 2012, 2012, 2012, 1648, 2091,
571 1648, 2048, 152, 104, 319, 343, 933, - 3, 1063, 634, 634, 684, 684, 319, 343, 319, 343, 321, 319, 478, 601, 703,
572 805, 60, 183, 196, 280, 91, 280, 241, 74, 415, 224, 50, 373, 466, 440, 5, 393, 415, 50, 173, 173, 400, 400, 400,
573 400, 400, 400, 400, 400, - 34, 1709, 1662, 1650, 1853, 1766, 1985, 942, 556, 387, 498, 50, 50, 281, 50, 50, 133,
574 163, 50, 50, 50, 163, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 121, 133, 133, 133, 163, 133, 133, 50, 133,
575 163, 172, 50, 172, 287, 50, 50, 133, 400, 400, 76, 608, 173, 400, 400, 484, 484, 173, 173, 400, - 34, - 34,
576 - 34, - 34, - 34, 1621, 1567, 502, 652, 543, 96, 204, 238, 252, 290, 15, 58, - 33, 120, 99, 218, 217, 363, 167,
577 303, 501, 511, 508, 515, 485, 463, 461, 489, 497, 522, 530, 509, 548, 518, 507, 490, 487, 528, 479, 434, 558,
578 295, 76, 418, 442, 445,);
580 const YY_REDUCE_USE_DFLT
= - 67;
582 const YY_REDUCE_MAX
= 196;
584 static public $yy_reduce_ofst = array(1582, 488, 633, 658, 521, 550, 575, 604, 770, 799, 1024, 1302, 1410, 1439,
585 1244, 1107, 1190, 1493, 1078, 824, 970, 687, 924, 1327, 1219, 1161, 1136, 1053, 1273, 1468, 1385, 1356, 899,
586 995, 741, 716, 853, 1551, 1522, 1764, 1794, 1736, 1707, 1677, - 28, 571, 19, - 28, 2006, 2014, 2025, 87, 95,
587 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 175, 115, 115, 115, 115,
588 115, 115, 115, 160, 115, 160, 92, - 13, - 60, - 14, 207, 333, 380, 505, 293, 246, 213, 260, 44, 410, 312, - 66,
589 340, 209, 190, 190, 338, 299, 190, 325, 299, 325, 279, 420, 325, 258, - 34, 278, 254, 366, 190, 190, 190, 370,
590 372, 325, 354, 190, 190, 284, 190, 190, 190, 190, 190, 190, 496, 496, 496, 496, 496, 496, 397, 504, 496, 496,
591 503, 503, 527, 503, 503, 523, 531, 503, 503, 503, 513, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503,
592 535, 523, 523, 523, 537, 523, 523, 503, 523, 534, 510, 503, 539, 540, 503, 503, 523, - 1, - 1, 544, 532, 134,
593 - 1, - 1, 382, 382, 134, 134, - 1, 499, 464, 419, 452, 481,);
595 static public $yyExpectedTokens = array(array(3, 4, 5, 6, 7, 8, 12, 13, 16, 19, 20, 25, 29, 31, 32,),
596 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 52, 54, 58,),
597 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 52, 54, 58,),
598 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 52, 54, 58,),
599 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 52, 54, 58,),
600 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 52, 54, 58,),
601 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 52, 54, 58,),
602 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 52, 54, 58,),
603 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 30, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 52, 54, 58,),
604 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 30, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 52, 54, 58,),
605 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 52, 53, 54, 58,),
606 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 52, 54, 58,),
607 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 52, 54, 58,),
608 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 52, 54, 58,),
609 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 52, 54, 58,),
610 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 52, 54, 58,),
611 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 52, 54, 58,),
612 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 52, 54, 58,),
613 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 52, 54, 58,),
614 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 52, 54, 58,),
615 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 52, 54, 58,),
616 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 52, 54, 58,),
617 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 52, 54, 58,),
618 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 52, 54, 58,),
619 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 52, 54, 58,),
620 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 52, 54, 58,),
621 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 52, 54, 58,),
622 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 52, 54, 58,),
623 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 52, 54, 58,),
624 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 52, 54, 58,),
625 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 52, 54, 58,),
626 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 52, 54, 58,),
627 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 52, 54, 58,),
628 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 52, 54, 58,),
629 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 52, 54, 58,),
630 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 52, 54, 58,),
631 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 52, 54, 58,),
632 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 52, 54, 58,),
633 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 52, 54, 58,),
634 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 54, 58,),
635 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 54, 58,),
636 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 54, 58,),
637 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 54, 58,),
638 array(12, 13, 14, 16, 17, 19, 20, 25, 29, 31, 32, 34, 36, 39, 43, 44, 45, 46, 47, 49, 51, 54, 58,),
639 array(1, 11, 26, 33, 38, 39, 40, 55, 56, 57,), array(1, 24, 26, 33, 38, 39, 40, 55, 56, 57,),
640 array(1, 26, 33, 38, 39, 40, 55, 56, 57,), array(1, 26, 33, 38, 39, 40, 55, 56, 57,),
641 array(1, 26, 33, 38, 39, 40, 55, 56, 57,), array(1, 26, 33, 38, 39, 40, 55, 56, 57,),
642 array(1, 26, 33, 38, 39, 40, 55, 56, 57,), array(3, 4, 5, 6, 7, 8, 12, 13, 16, 19, 20, 25, 29, 31, 32,),
643 array(4, 12, 13, 14, 16, 19, 20, 25, 29, 31, 32, 58, 59,), array(1, 38, 39, 40, 53, 55, 56, 57,),
644 array(1, 27, 38, 39, 40, 55, 56, 57,), array(1, 38, 39, 40, 55, 56, 57, 59,),
645 array(1, 11, 38, 39, 40, 55, 56, 57,), array(1, 21, 38, 39, 40, 55, 56, 57,),
646 array(1, 11, 38, 39, 40, 55, 56, 57,), array(1, 37, 38, 39, 40, 55, 56, 57,),
647 array(1, 11, 38, 39, 40, 55, 56, 57,), array(1, 11, 38, 39, 40, 55, 56, 57,),
648 array(1, 37, 38, 39, 40, 55, 56, 57,), array(1, 2, 38, 39, 40, 55, 56, 57,), array(1, 38, 39, 40, 55, 56, 57,),
649 array(1, 38, 39, 40, 55, 56, 57,), array(1, 38, 39, 40, 55, 56, 57,), array(1, 38, 39, 40, 55, 56, 57,),
650 array(1, 38, 39, 40, 55, 56, 57,), array(1, 38, 39, 40, 55, 56, 57,), array(1, 11, 18, 26, 33, 36, 48,),
651 array(1, 38, 39, 40, 55, 56, 57,), array(1, 38, 39, 40, 55, 56, 57,), array(1, 38, 39, 40, 55, 56, 57,),
652 array(1, 38, 39, 40, 55, 56, 57,), array(1, 38, 39, 40, 55, 56, 57,), array(1, 38, 39, 40, 55, 56, 57,),
653 array(38, 39, 40, 55, 56, 57,), array(1, 11, 22, 26, 33, 41,), array(38, 39, 40, 55, 56, 57,),
654 array(1, 11, 22, 26, 33, 41,), array(14, 17, 51, 54,), array(1, 11, 26, 33,), array(1, 26, 33,),
655 array(14, 36, 54,), array(4, 12, 13, 14, 16, 19, 20, 25, 29, 31, 32, 58, 59,), array(12, 13, 17, 26, 28, 33,),
656 array(12, 13, 17, 26, 28, 33,), array(12, 13, 17, 26, 33,), array(12, 13, 17, 26, 33,), array(1, 11, 26, 33,),
657 array(1, 11, 26, 33,), array(1, 26, 33,), array(14, 36, 54,), array(1, 26, 33,), array(14, 36, 54,),
658 array(18, 46, 52,), array(1, 26, 33,), array(1, 2,), array(1, 11, 26, 27, 33,), array(1, 11, 26, 33,),
659 array(13, 14, 17, 54,), array(12, 13, 17, 50,), array(1, 11, 26, 33,), array(15, 18, 48,), array(12, 13, 17,),
660 array(15, 18, 48,), array(12, 13, 17,), array(8, 9, 10,), array(18, 48,), array(14, 17,), array(14, 54,),
661 array(26, 33,), array(26, 33,), array(1, 18,), array(1, 28,), array(1, 11,), array(1, 53,), array(14, 17,),
662 array(26, 33,), array(18,), array(18,), array(1,), array(1,), array(1,), array(1,), array(1,), array(1,),
663 array(1,), array(1,), array(), array(2, 12, 13, 15, 17, 18, 46, 48, 50, 52,),
664 array(2, 12, 13, 17, 18, 46, 48, 50, 52, 53,), array(2, 12, 13, 15, 17, 18, 46, 48, 50, 52,),
665 array(2, 12, 13, 17, 18, 46, 48, 50, 52,), array(2, 12, 13, 17, 18, 46, 48, 50, 52,),
666 array(12, 13, 17, 18, 46, 48, 50, 52,), array(13, 14, 17, 34, 54,), array(12, 13, 17, 50,), array(15, 46, 52,),
667 array(12, 13, 17,), array(26, 33,), array(26, 33,), array(15, 22,), array(26, 33,), array(26, 33,),
668 array(46, 52,), array(14, 54,), array(26, 33,), array(26, 33,), array(26, 33,), array(14, 54,), array(26, 33,),
669 array(26, 33,), array(26, 33,), array(26, 33,), array(26, 33,), array(26, 33,), array(26, 33,), array(26, 33,),
670 array(26, 33,), array(26, 33,), array(26, 33,), array(17, 49,), array(46, 52,), array(46, 52,), array(46, 52,),
671 array(14, 54,), array(46, 52,), array(46, 52,), array(26, 33,), array(46, 52,), array(14, 54,), array(46, 52,),
672 array(26, 33,), array(46, 52,), array(13, 36,), array(26, 33,), array(26, 33,), array(46, 52,), array(1,),
673 array(1,), array(36,), array(9,), array(18,), array(1,), array(1,), array(2,), array(2,), array(18,),
674 array(18,), array(1,), array(), array(), array(), array(), array(),
675 array(1, 2, 36, 38, 39, 40, 48, 55, 56, 57,), array(11, 21, 23, 26, 33, 35, 37, 46,),
676 array(11, 15, 26, 33, 36, 48,), array(36, 46, 48, 53,), array(12, 13, 17, 50,), array(28, 36, 48,),
677 array(22, 41, 59,), array(22, 41, 53,), array(46, 53,), array(35, 53,), array(21, 35,), array(17, 50,),
678 array(36, 48,), array(35, 37,), array(36, 48,), array(15, 46,), array(36, 48,), array(22, 41,), array(35, 37,),
679 array(35, 37,), array(17,), array(15,), array(23,), array(17,), array(34,), array(37,), array(34,), array(17,),
680 array(17,), array(17,), array(4,), array(42,), array(11,), array(36,), array(46,), array(51,), array(53,),
681 array(17,), array(17,), array(17,), array(22,), array(17,), array(36,), array(17,), array(51,), array(53,),
682 array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(),
683 array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(),
684 array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(),
685 array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(),
686 array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(),
687 array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(),
688 array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(),
689 array(), array(), array(), array(), array(), array(), array(), array(), array(), array(),);
691 static public $yy_default = array(340, 516, 531, 496, 531, 531, 496, 496, 531, 531, 531, 531, 531, 531, 531, 531,
692 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531,
693 531, 531, 531, 531, 531, 531, 531, 400, 400, 400, 400, 376, 367, 337, 531, 531, 405, 531, 531, 531, 531, 531,
694 531, 531, 531, 531, 421, 495, 411, 405, 402, 519, 438, 412, 407, 381, 517, 494, 518, 426, 428, 427, 428, 531,
695 414, 400, 531, 531, 400, 400, 400, 400, 420, 445, 400, 531, 400, 531, 508, 400, 390, 414, 414, 531, 461, 414,
696 451, 461, 451, 461, 531, 451, 531, 531, 378, 400, 394, 414, 414, 414, 531, 400, 451, 505, 424, 418, 396, 417,
697 429, 430, 414, 431, 503, 450, 450, 450, 450, 450, 450, 531, 463, 477, 461, 369, 368, 531, 387, 380, 459, 531,
698 365, 386, 360, 531, 373, 362, 359, 374, 363, 385, 364, 371, 375, 377, 389, 531, 486, 457, 488, 531, 489, 458,
699 379, 455, 531, 456, 383, 454, 461, 384, 388, 487, 397, 395, 461, 353, 483, 391, 420, 498, 497, 506, 509, 445,
700 502, 502, 502, 461, 461, 438, 434, 438, 438, 462, 438, 428, 428, 434, 531, 531, 531, 446, 531, 531, 434, 438,
701 428, 531, 531, 531, 531, 408, 531, 436, 531, 531, 531, 531, 531, 344, 440, 531, 507, 434, 531, 441, 531, 531,
702 531, 428, 531, 477, 531, 531, 531, 477, 338, 482, 401, 492, 491, 469, 470, 413, 476, 468, 471, 504, 440, 467,
703 409, 382, 453, 499, 500, 432, 393, 501, 479, 480, 481, 433, 435, 464, 465, 466, 460, 416, 437, 439, 415, 399,
704 370, 345, 347, 348, 346, 343, 339, 341, 342, 349, 350, 356, 357, 398, 355, 354, 351, 352, 441, 442, 520, 521,
705 522, 392, 484, 493, 527, 528, 525, 524, 513, 515, 514, 523, 530, 526, 529, 478, 485, 474, 472, 475, 447, 444,
706 443, 422, 423, 510, 511, 449, 473, 452, 448, 425, 512, 419, 490,);
708 const YYNOCODE
= 105;
710 const YYSTACKDEPTH
= 500;
712 const YYNSTATE
= 337;
716 const YYERRORSYMBOL
= 60;
718 const YYERRSYMDT
= 'yy0';
720 const YYFALLBACK
= 0;
722 public static $yyFallback = array();
724 public function Trace($TraceFILE, $zTracePrompt)
728 } elseif (!$zTracePrompt) {
731 $this->yyTraceFILE
= $TraceFILE;
732 $this->yyTracePrompt
= $zTracePrompt;
735 public function PrintTrace()
737 $this->yyTraceFILE
= fopen('php://output', 'w');
738 $this->yyTracePrompt
= '<br>';
743 public $yyTracePrompt;
745 public $yyidx; /* Index of top element in stack */
746 public $yyerrcnt; /* Shifts left before out of the error */
747 public $yystack = array(); /* The parser's stack */
749 public $yyTokenName = array('$', 'VERT', 'COLON', 'PHP', 'TEXT', 'STRIPON', 'STRIPOFF', 'BLOCKSOURCE',
750 'LITERALSTART', 'LITERALEND', 'LITERAL', 'RDEL', 'SIMPELOUTPUT', 'LDEL', 'DOLLARID', 'EQUAL', 'SIMPLETAG', 'ID',
751 'PTR', 'LDELIF', 'LDELFOR', 'SEMICOLON', 'INCDEC', 'TO', 'STEP', 'LDELFOREACH', 'SPACE', 'AS', 'APTR',
752 'LDELSETFILTER', 'SMARTYBLOCKCHILDPARENT', 'CLOSETAG', 'LDELSLASH', 'ATTR', 'INTEGER', 'COMMA', 'OPENP',
753 'CLOSEP', 'MATH', 'UNIMATH', 'ISIN', 'INSTANCEOF', 'QMARK', 'NOT', 'TYPECAST', 'HEX', 'DOT',
754 'SINGLEQUOTESTRING', 'DOUBLECOLON', 'NAMESPACE', 'AT', 'HATCH', 'OPENB', 'CLOSEB', 'DOLLAR', 'LOGOP', 'TLOGOP',
755 'SINGLECOND', 'QUOTE', 'BACKTICK', 'error', 'start', 'template', 'template_element', 'smartytag', 'literal',
756 'text_content', 'literal_elements', 'literal_element', 'tag', 'variable', 'modifierlist', 'attributes', 'value',
757 'expr', 'varindexed', 'statement', 'statements', 'foraction', 'varvar', 'modparameters', 'attribute', 'ternary',
758 'array', 'lop', 'scond', 'ns1', 'function', 'doublequoted_with_quotes', 'static_class_access', 'object',
759 'arrayindex', 'indexdef', 'varvarele', 'objectchain', 'objectelement', 'method', 'params', 'modifier',
760 'modparameter', 'arrayelements', 'arrayelement', 'doublequoted', 'doublequotedcontent',);
762 public static $yyRuleName = array('start ::= template', 'template ::= template_element',
763 'template ::= template template_element', 'template ::=', 'template_element ::= smartytag',
764 'template_element ::= literal', 'template_element ::= PHP', 'template_element ::= text_content',
765 'text_content ::= TEXT', 'text_content ::= text_content TEXT', 'template_element ::= STRIPON',
766 'template_element ::= STRIPOFF', 'template_element ::= BLOCKSOURCE', 'literal ::= LITERALSTART LITERALEND',
767 'literal ::= LITERALSTART literal_elements LITERALEND', 'literal_elements ::= literal_elements literal_element',
768 'literal_elements ::=', 'literal_element ::= literal', 'literal_element ::= LITERAL', 'smartytag ::= tag RDEL',
769 'smartytag ::= SIMPELOUTPUT', 'tag ::= LDEL variable', 'tag ::= LDEL variable modifierlist attributes',
770 'tag ::= LDEL variable attributes', 'tag ::= LDEL value', 'tag ::= LDEL value modifierlist attributes',
771 'tag ::= LDEL value attributes', 'tag ::= LDEL expr modifierlist attributes', 'tag ::= LDEL expr attributes',
772 'tag ::= LDEL DOLLARID EQUAL value', 'tag ::= LDEL DOLLARID EQUAL expr',
773 'tag ::= LDEL DOLLARID EQUAL expr attributes', 'tag ::= LDEL varindexed EQUAL expr attributes',
774 'smartytag ::= SIMPLETAG', 'tag ::= LDEL ID attributes', 'tag ::= LDEL ID',
775 'tag ::= LDEL ID modifierlist attributes', 'tag ::= LDEL ID PTR ID attributes',
776 'tag ::= LDEL ID PTR ID modifierlist attributes', 'tag ::= LDELIF expr', 'tag ::= LDELIF expr attributes',
777 'tag ::= LDELIF statement', 'tag ::= LDELIF statement attributes',
778 'tag ::= LDELFOR statements SEMICOLON expr SEMICOLON varindexed foraction attributes',
779 'foraction ::= EQUAL expr', 'foraction ::= INCDEC', 'tag ::= LDELFOR statement TO expr attributes',
780 'tag ::= LDELFOR statement TO expr STEP expr attributes', 'tag ::= LDELFOREACH attributes',
781 'tag ::= LDELFOREACH SPACE value AS varvar attributes',
782 'tag ::= LDELFOREACH SPACE value AS varvar APTR varvar attributes',
783 'tag ::= LDELFOREACH SPACE expr AS varvar attributes',
784 'tag ::= LDELFOREACH SPACE expr AS varvar APTR varvar attributes', 'tag ::= LDELSETFILTER ID modparameters',
785 'tag ::= LDELSETFILTER ID modparameters modifierlist', 'tag ::= LDEL SMARTYBLOCKCHILDPARENT',
786 'smartytag ::= CLOSETAG', 'tag ::= LDELSLASH ID', 'tag ::= LDELSLASH ID modifierlist',
787 'tag ::= LDELSLASH ID PTR ID', 'tag ::= LDELSLASH ID PTR ID modifierlist',
788 'attributes ::= attributes attribute', 'attributes ::= attribute', 'attributes ::=',
789 'attribute ::= SPACE ID EQUAL ID', 'attribute ::= ATTR expr', 'attribute ::= ATTR value',
790 'attribute ::= SPACE ID', 'attribute ::= SPACE expr', 'attribute ::= SPACE value',
791 'attribute ::= SPACE INTEGER EQUAL expr', 'statements ::= statement',
792 'statements ::= statements COMMA statement', 'statement ::= DOLLARID EQUAL INTEGER',
793 'statement ::= DOLLARID EQUAL expr', 'statement ::= varindexed EQUAL expr',
794 'statement ::= OPENP statement CLOSEP', 'expr ::= value', 'expr ::= ternary', 'expr ::= DOLLARID COLON ID',
795 'expr ::= expr MATH value', 'expr ::= expr UNIMATH value', 'expr ::= array', 'expr ::= expr modifierlist',
796 'expr ::= expr lop expr', 'expr ::= expr scond', 'expr ::= expr ISIN array', 'expr ::= expr ISIN value',
797 'expr ::= variable INSTANCEOF ns1', 'ternary ::= OPENP expr CLOSEP QMARK DOLLARID COLON expr',
798 'ternary ::= OPENP expr CLOSEP QMARK expr COLON expr', 'value ::= variable', 'value ::= UNIMATH value',
799 'value ::= NOT value', 'value ::= TYPECAST value', 'value ::= variable INCDEC', 'value ::= HEX',
800 'value ::= INTEGER', 'value ::= INTEGER DOT INTEGER', 'value ::= INTEGER DOT', 'value ::= DOT INTEGER',
801 'value ::= ID', 'value ::= function', 'value ::= OPENP expr CLOSEP', 'value ::= SINGLEQUOTESTRING',
802 'value ::= doublequoted_with_quotes', 'value ::= varindexed DOUBLECOLON static_class_access',
803 'value ::= smartytag', 'value ::= value modifierlist', 'value ::= NAMESPACE',
804 'value ::= ns1 DOUBLECOLON static_class_access', 'ns1 ::= ID', 'ns1 ::= NAMESPACE', 'variable ::= DOLLARID',
805 'variable ::= varindexed', 'variable ::= varvar AT ID', 'variable ::= object', 'variable ::= HATCH ID HATCH',
806 'variable ::= HATCH ID HATCH arrayindex', 'variable ::= HATCH variable HATCH',
807 'variable ::= HATCH variable HATCH arrayindex', 'varindexed ::= DOLLARID arrayindex',
808 'varindexed ::= varvar arrayindex', 'arrayindex ::= arrayindex indexdef', 'arrayindex ::=',
809 'indexdef ::= DOT DOLLARID', 'indexdef ::= DOT varvar', 'indexdef ::= DOT varvar AT ID', 'indexdef ::= DOT ID',
810 'indexdef ::= DOT INTEGER', 'indexdef ::= DOT LDEL expr RDEL', 'indexdef ::= OPENB ID CLOSEB',
811 'indexdef ::= OPENB ID DOT ID CLOSEB', 'indexdef ::= OPENB SINGLEQUOTESTRING CLOSEB',
812 'indexdef ::= OPENB INTEGER CLOSEB', 'indexdef ::= OPENB DOLLARID CLOSEB', 'indexdef ::= OPENB variable CLOSEB',
813 'indexdef ::= OPENB value CLOSEB', 'indexdef ::= OPENB expr CLOSEB', 'indexdef ::= OPENB CLOSEB',
814 'varvar ::= DOLLARID', 'varvar ::= DOLLAR', 'varvar ::= varvar varvarele', 'varvarele ::= ID',
815 'varvarele ::= SIMPELOUTPUT', 'varvarele ::= LDEL expr RDEL', 'object ::= varindexed objectchain',
816 'objectchain ::= objectelement', 'objectchain ::= objectchain objectelement',
817 'objectelement ::= PTR ID arrayindex', 'objectelement ::= PTR varvar arrayindex',
818 'objectelement ::= PTR LDEL expr RDEL arrayindex', 'objectelement ::= PTR ID LDEL expr RDEL arrayindex',
819 'objectelement ::= PTR method', 'function ::= ns1 OPENP params CLOSEP', 'method ::= ID OPENP params CLOSEP',
820 'method ::= DOLLARID OPENP params CLOSEP', 'params ::= params COMMA expr', 'params ::= expr', 'params ::=',
821 'modifierlist ::= modifierlist modifier modparameters', 'modifierlist ::= modifier modparameters',
822 'modifier ::= VERT AT ID', 'modifier ::= VERT ID', 'modparameters ::= modparameters modparameter',
823 'modparameters ::=', 'modparameter ::= COLON value', 'modparameter ::= COLON array',
824 'static_class_access ::= method', 'static_class_access ::= method objectchain', 'static_class_access ::= ID',
825 'static_class_access ::= DOLLARID arrayindex', 'static_class_access ::= DOLLARID arrayindex objectchain',
826 'lop ::= LOGOP', 'lop ::= TLOGOP', 'scond ::= SINGLECOND', 'array ::= OPENB arrayelements CLOSEB',
827 'arrayelements ::= arrayelement', 'arrayelements ::= arrayelements COMMA arrayelement', 'arrayelements ::=',
828 'arrayelement ::= value APTR expr', 'arrayelement ::= ID APTR expr', 'arrayelement ::= expr',
829 'doublequoted_with_quotes ::= QUOTE QUOTE', 'doublequoted_with_quotes ::= QUOTE doublequoted QUOTE',
830 'doublequoted ::= doublequoted doublequotedcontent', 'doublequoted ::= doublequotedcontent',
831 'doublequotedcontent ::= BACKTICK variable BACKTICK', 'doublequotedcontent ::= BACKTICK expr BACKTICK',
832 'doublequotedcontent ::= DOLLARID', 'doublequotedcontent ::= LDEL variable RDEL',
833 'doublequotedcontent ::= LDEL expr RDEL', 'doublequotedcontent ::= smartytag', 'doublequotedcontent ::= TEXT',);
835 public function tokenName($tokenType)
837 if ($tokenType === 0) {
838 return 'End of Input';
840 if ($tokenType > 0 && $tokenType < count($this->yyTokenName
)) {
841 return $this->yyTokenName
[$tokenType];
847 public static function yy_destructor($yymajor, $yypminor)
851 break; /* If no destructor action specified: do nothing */
855 public function yy_pop_parser_stack()
857 if (empty($this->yystack
)) {
860 $yytos = array_pop($this->yystack
);
861 if ($this->yyTraceFILE
&& $this->yyidx
>= 0) {
862 fwrite($this->yyTraceFILE
, $this->yyTracePrompt
. 'Popping ' . $this->yyTokenName
[$yytos->major
] . "\n");
864 $yymajor = $yytos->major
;
865 self
::yy_destructor($yymajor, $yytos->minor
);
871 public function __destruct()
873 while ($this->yystack
!== Array()) {
874 $this->yy_pop_parser_stack();
876 if (is_resource($this->yyTraceFILE
)) {
877 fclose($this->yyTraceFILE
);
881 public function yy_get_expected_tokens($token)
883 static $res3 = array();
884 static $res4 = array();
885 $state = $this->yystack
[$this->yyidx
]->stateno
;
886 $expected = self
::$yyExpectedTokens[$state];
887 if (isset($res3[$state][$token])) {
888 if ($res3[$state][$token]) {
892 if ($res3[$state][$token] = in_array($token, self
::$yyExpectedTokens[$state], true)) {
896 $stack = $this->yystack
;
897 $yyidx = $this->yyidx
;
899 $yyact = $this->yy_find_shift_action($token);
900 if ($yyact >= self
::YYNSTATE
&& $yyact < self
::YYNSTATE + self
::YYNRULE
) {
904 if ($done ++
== 100) {
905 $this->yyidx
= $yyidx;
906 $this->yystack
= $stack;
907 // too much recursion prevents proper detection
909 return array_unique($expected);
911 $yyruleno = $yyact - self
::YYNSTATE
;
912 $this->yyidx
-= self
::$yyRuleInfo[$yyruleno][1];
913 $nextstate = $this->yy_find_reduce_action($this->yystack
[$this->yyidx
]->stateno
, self
::$yyRuleInfo[$yyruleno][0]);
914 if (isset(self
::$yyExpectedTokens[$nextstate])) {
915 $expected = array_merge($expected, self
::$yyExpectedTokens[$nextstate]);
916 if (isset($res4[$nextstate][$token])) {
917 if ($res4[$nextstate][$token]) {
918 $this->yyidx
= $yyidx;
919 $this->yystack
= $stack;
920 return array_unique($expected);
923 if ($res4[$nextstate][$token] = in_array($token, self
::$yyExpectedTokens[$nextstate], true)) {
924 $this->yyidx
= $yyidx;
925 $this->yystack
= $stack;
926 return array_unique($expected);
930 if ($nextstate < self
::YYNSTATE
) {
931 // we need to shift a non-terminal
933 $x = new TP_yyStackEntry
;
934 $x->stateno
= $nextstate;
935 $x->major
= self
::$yyRuleInfo[$yyruleno][0];
936 $this->yystack
[$this->yyidx
] = $x;
938 } elseif ($nextstate == self
::YYNSTATE + self
::YYNRULE +
1) {
939 $this->yyidx
= $yyidx;
940 $this->yystack
= $stack;
941 // the last token was just ignored, we can't accept
942 // by ignoring input, this is in essence ignoring a
944 return array_unique($expected);
945 } elseif ($nextstate === self
::YY_NO_ACTION
) {
946 $this->yyidx
= $yyidx;
947 $this->yystack
= $stack;
948 // input accepted, but not shifted (I guess)
957 $this->yyidx
= $yyidx;
958 $this->yystack
= $stack;
960 return array_unique($expected);
963 public function yy_is_expected_token($token)
965 static $res = array();
966 static $res2 = array();
968 return true; // 0 is not part of this
970 $state = $this->yystack
[$this->yyidx
]->stateno
;
971 if (isset($res[$state][$token])) {
972 if ($res[$state][$token]) {
976 if ($res[$state][$token] = in_array($token, self
::$yyExpectedTokens[$state], true)) {
980 $stack = $this->yystack
;
981 $yyidx = $this->yyidx
;
983 $yyact = $this->yy_find_shift_action($token);
984 if ($yyact >= self
::YYNSTATE
&& $yyact < self
::YYNSTATE + self
::YYNRULE
) {
988 if ($done ++
== 100) {
989 $this->yyidx
= $yyidx;
990 $this->yystack
= $stack;
991 // too much recursion prevents proper detection
995 $yyruleno = $yyact - self
::YYNSTATE
;
996 $this->yyidx
-= self
::$yyRuleInfo[$yyruleno][1];
997 $nextstate = $this->yy_find_reduce_action($this->yystack
[$this->yyidx
]->stateno
, self
::$yyRuleInfo[$yyruleno][0]);
998 if (isset($res2[$nextstate][$token])) {
999 if ($res2[$nextstate][$token]) {
1000 $this->yyidx
= $yyidx;
1001 $this->yystack
= $stack;
1005 if ($res2[$nextstate][$token] = (isset(self
::$yyExpectedTokens[$nextstate]) && in_array($token, self
::$yyExpectedTokens[$nextstate], true))) {
1006 $this->yyidx
= $yyidx;
1007 $this->yystack
= $stack;
1011 if ($nextstate < self
::YYNSTATE
) {
1012 // we need to shift a non-terminal
1014 $x = new TP_yyStackEntry
;
1015 $x->stateno
= $nextstate;
1016 $x->major
= self
::$yyRuleInfo[$yyruleno][0];
1017 $this->yystack
[$this->yyidx
] = $x;
1019 } elseif ($nextstate == self
::YYNSTATE + self
::YYNRULE +
1) {
1020 $this->yyidx
= $yyidx;
1021 $this->yystack
= $stack;
1023 // end of input: this is valid
1026 // the last token was just ignored, we can't accept
1027 // by ignoring input, this is in essence ignoring a
1030 } elseif ($nextstate === self
::YY_NO_ACTION
) {
1031 $this->yyidx
= $yyidx;
1032 $this->yystack
= $stack;
1033 // input accepted, but not shifted (I guess)
1036 $yyact = $nextstate;
1042 $this->yyidx
= $yyidx;
1043 $this->yystack
= $stack;
1048 public function yy_find_shift_action($iLookAhead)
1050 $stateno = $this->yystack
[$this->yyidx
]->stateno
;
1052 /* if ($this->yyidx < 0) return self::YY_NO_ACTION; */
1053 if (!isset(self
::$yy_shift_ofst[$stateno])) {
1055 return self
::$yy_default[$stateno];
1057 $i = self
::$yy_shift_ofst[$stateno];
1058 if ($i === self
::YY_SHIFT_USE_DFLT
) {
1059 return self
::$yy_default[$stateno];
1061 if ($iLookAhead == self
::YYNOCODE
) {
1062 return self
::YY_NO_ACTION
;
1065 if ($i < 0 ||
$i >= self
::YY_SZ_ACTTAB || self
::$yy_lookahead[$i] != $iLookAhead) {
1066 if (count(self
::$yyFallback) && $iLookAhead < count(self
::$yyFallback) && ($iFallback = self
::$yyFallback[$iLookAhead]) != 0) {
1067 if ($this->yyTraceFILE
) {
1068 fwrite($this->yyTraceFILE
, $this->yyTracePrompt
. "FALLBACK " . $this->yyTokenName
[$iLookAhead] . " => " . $this->yyTokenName
[$iFallback] . "\n");
1071 return $this->yy_find_shift_action($iFallback);
1074 return self
::$yy_default[$stateno];
1076 return self
::$yy_action[$i];
1080 public function yy_find_reduce_action($stateno, $iLookAhead)
1082 /* $stateno = $this->yystack[$this->yyidx]->stateno; */
1084 if (!isset(self
::$yy_reduce_ofst[$stateno])) {
1085 return self
::$yy_default[$stateno];
1087 $i = self
::$yy_reduce_ofst[$stateno];
1088 if ($i == self
::YY_REDUCE_USE_DFLT
) {
1089 return self
::$yy_default[$stateno];
1091 if ($iLookAhead == self
::YYNOCODE
) {
1092 return self
::YY_NO_ACTION
;
1095 if ($i < 0 ||
$i >= self
::YY_SZ_ACTTAB || self
::$yy_lookahead[$i] != $iLookAhead) {
1096 return self
::$yy_default[$stateno];
1098 return self
::$yy_action[$i];
1102 public function yy_shift($yyNewState, $yyMajor, $yypMinor)
1105 if ($this->yyidx
>= self
::YYSTACKDEPTH
) {
1107 if ($this->yyTraceFILE
) {
1108 fprintf($this->yyTraceFILE
, "%sStack Overflow!\n", $this->yyTracePrompt
);
1110 while ($this->yyidx
>= 0) {
1111 $this->yy_pop_parser_stack();
1113 #line 190 "../smarty/lexer/smarty_internal_templateparser.y"
1115 $this->internalError
= true;
1116 $this->compiler
->trigger_template_error("Stack overflow in template parser");
1120 $yytos = new TP_yyStackEntry
;
1121 $yytos->stateno
= $yyNewState;
1122 $yytos->major
= $yyMajor;
1123 $yytos->minor
= $yypMinor;
1124 $this->yystack
[] = $yytos;
1125 if ($this->yyTraceFILE
&& $this->yyidx
> 0) {
1126 fprintf($this->yyTraceFILE
, "%sShift %d\n", $this->yyTracePrompt
, $yyNewState);
1127 fprintf($this->yyTraceFILE
, "%sStack:", $this->yyTracePrompt
);
1128 for ($i = 1; $i <= $this->yyidx
; $i ++
) {
1129 fprintf($this->yyTraceFILE
, " %s", $this->yyTokenName
[$this->yystack
[$i]->major
]);
1131 fwrite($this->yyTraceFILE
, "\n");
1135 public static $yyRuleInfo = array(array(0 => 61, 1 => 1), array(0 => 62, 1 => 1), array(0 => 62, 1 => 2),
1136 array(0 => 62, 1 => 0), array(0 => 63, 1 => 1), array(0 => 63, 1 => 1), array(0 => 63, 1 => 1),
1137 array(0 => 63, 1 => 1), array(0 => 66, 1 => 1), array(0 => 66, 1 => 2), array(0 => 63, 1 => 1),
1138 array(0 => 63, 1 => 1), array(0 => 63, 1 => 1), array(0 => 65, 1 => 2), array(0 => 65, 1 => 3),
1139 array(0 => 67, 1 => 2), array(0 => 67, 1 => 0), array(0 => 68, 1 => 1), array(0 => 68, 1 => 1),
1140 array(0 => 64, 1 => 2), array(0 => 64, 1 => 1), array(0 => 69, 1 => 2), array(0 => 69, 1 => 4),
1141 array(0 => 69, 1 => 3), array(0 => 69, 1 => 2), array(0 => 69, 1 => 4), array(0 => 69, 1 => 3),
1142 array(0 => 69, 1 => 4), array(0 => 69, 1 => 3), array(0 => 69, 1 => 4), array(0 => 69, 1 => 4),
1143 array(0 => 69, 1 => 5), array(0 => 69, 1 => 5), array(0 => 64, 1 => 1), array(0 => 69, 1 => 3),
1144 array(0 => 69, 1 => 2), array(0 => 69, 1 => 4), array(0 => 69, 1 => 5), array(0 => 69, 1 => 6),
1145 array(0 => 69, 1 => 2), array(0 => 69, 1 => 3), array(0 => 69, 1 => 2), array(0 => 69, 1 => 3),
1146 array(0 => 69, 1 => 8), array(0 => 78, 1 => 2), array(0 => 78, 1 => 1), array(0 => 69, 1 => 5),
1147 array(0 => 69, 1 => 7), array(0 => 69, 1 => 2), array(0 => 69, 1 => 6), array(0 => 69, 1 => 8),
1148 array(0 => 69, 1 => 6), array(0 => 69, 1 => 8), array(0 => 69, 1 => 3), array(0 => 69, 1 => 4),
1149 array(0 => 69, 1 => 2), array(0 => 64, 1 => 1), array(0 => 69, 1 => 2), array(0 => 69, 1 => 3),
1150 array(0 => 69, 1 => 4), array(0 => 69, 1 => 5), array(0 => 72, 1 => 2), array(0 => 72, 1 => 1),
1151 array(0 => 72, 1 => 0), array(0 => 81, 1 => 4), array(0 => 81, 1 => 2), array(0 => 81, 1 => 2),
1152 array(0 => 81, 1 => 2), array(0 => 81, 1 => 2), array(0 => 81, 1 => 2), array(0 => 81, 1 => 4),
1153 array(0 => 77, 1 => 1), array(0 => 77, 1 => 3), array(0 => 76, 1 => 3), array(0 => 76, 1 => 3),
1154 array(0 => 76, 1 => 3), array(0 => 76, 1 => 3), array(0 => 74, 1 => 1), array(0 => 74, 1 => 1),
1155 array(0 => 74, 1 => 3), array(0 => 74, 1 => 3), array(0 => 74, 1 => 3), array(0 => 74, 1 => 1),
1156 array(0 => 74, 1 => 2), array(0 => 74, 1 => 3), array(0 => 74, 1 => 2), array(0 => 74, 1 => 3),
1157 array(0 => 74, 1 => 3), array(0 => 74, 1 => 3), array(0 => 82, 1 => 7), array(0 => 82, 1 => 7),
1158 array(0 => 73, 1 => 1), array(0 => 73, 1 => 2), array(0 => 73, 1 => 2), array(0 => 73, 1 => 2),
1159 array(0 => 73, 1 => 2), array(0 => 73, 1 => 1), array(0 => 73, 1 => 1), array(0 => 73, 1 => 3),
1160 array(0 => 73, 1 => 2), array(0 => 73, 1 => 2), array(0 => 73, 1 => 1), array(0 => 73, 1 => 1),
1161 array(0 => 73, 1 => 3), array(0 => 73, 1 => 1), array(0 => 73, 1 => 1), array(0 => 73, 1 => 3),
1162 array(0 => 73, 1 => 1), array(0 => 73, 1 => 2), array(0 => 73, 1 => 1), array(0 => 73, 1 => 3),
1163 array(0 => 86, 1 => 1), array(0 => 86, 1 => 1), array(0 => 70, 1 => 1), array(0 => 70, 1 => 1),
1164 array(0 => 70, 1 => 3), array(0 => 70, 1 => 1), array(0 => 70, 1 => 3), array(0 => 70, 1 => 4),
1165 array(0 => 70, 1 => 3), array(0 => 70, 1 => 4), array(0 => 75, 1 => 2), array(0 => 75, 1 => 2),
1166 array(0 => 91, 1 => 2), array(0 => 91, 1 => 0), array(0 => 92, 1 => 2), array(0 => 92, 1 => 2),
1167 array(0 => 92, 1 => 4), array(0 => 92, 1 => 2), array(0 => 92, 1 => 2), array(0 => 92, 1 => 4),
1168 array(0 => 92, 1 => 3), array(0 => 92, 1 => 5), array(0 => 92, 1 => 3), array(0 => 92, 1 => 3),
1169 array(0 => 92, 1 => 3), array(0 => 92, 1 => 3), array(0 => 92, 1 => 3), array(0 => 92, 1 => 3),
1170 array(0 => 92, 1 => 2), array(0 => 79, 1 => 1), array(0 => 79, 1 => 1), array(0 => 79, 1 => 2),
1171 array(0 => 93, 1 => 1), array(0 => 93, 1 => 1), array(0 => 93, 1 => 3), array(0 => 90, 1 => 2),
1172 array(0 => 94, 1 => 1), array(0 => 94, 1 => 2), array(0 => 95, 1 => 3), array(0 => 95, 1 => 3),
1173 array(0 => 95, 1 => 5), array(0 => 95, 1 => 6), array(0 => 95, 1 => 2), array(0 => 87, 1 => 4),
1174 array(0 => 96, 1 => 4), array(0 => 96, 1 => 4), array(0 => 97, 1 => 3), array(0 => 97, 1 => 1),
1175 array(0 => 97, 1 => 0), array(0 => 71, 1 => 3), array(0 => 71, 1 => 2), array(0 => 98, 1 => 3),
1176 array(0 => 98, 1 => 2), array(0 => 80, 1 => 2), array(0 => 80, 1 => 0), array(0 => 99, 1 => 2),
1177 array(0 => 99, 1 => 2), array(0 => 89, 1 => 1), array(0 => 89, 1 => 2), array(0 => 89, 1 => 1),
1178 array(0 => 89, 1 => 2), array(0 => 89, 1 => 3), array(0 => 84, 1 => 1), array(0 => 84, 1 => 1),
1179 array(0 => 85, 1 => 1), array(0 => 83, 1 => 3), array(0 => 100, 1 => 1), array(0 => 100, 1 => 3),
1180 array(0 => 100, 1 => 0), array(0 => 101, 1 => 3), array(0 => 101, 1 => 3), array(0 => 101, 1 => 1),
1181 array(0 => 88, 1 => 2), array(0 => 88, 1 => 3), array(0 => 102, 1 => 2), array(0 => 102, 1 => 1),
1182 array(0 => 103, 1 => 3), array(0 => 103, 1 => 3), array(0 => 103, 1 => 1), array(0 => 103, 1 => 3),
1183 array(0 => 103, 1 => 3), array(0 => 103, 1 => 1), array(0 => 103, 1 => 1),);
1185 public static $yyReduceMap = array(0 => 0, 1 => 1, 2 => 2, 4 => 4, 5 => 5, 6 => 6, 7 => 7, 8 => 8, 17 => 8,
1186 18 => 8, 45 => 8, 68 => 8, 69 => 8, 77 => 8, 78 => 8, 82 => 8, 91 => 8, 96 => 8,
1187 97 => 8, 102 => 8, 104 => 8, 105 => 8, 109 => 8, 111 => 8, 112 => 8, 116 => 8,
1188 177 => 8, 182 => 8, 9 => 9, 10 => 10, 11 => 11, 12 => 12, 13 => 13, 16 => 13,
1189 14 => 14, 76 => 14, 15 => 15, 92 => 15, 94 => 15, 95 => 15, 123 => 15, 19 => 19,
1190 20 => 20, 21 => 21, 24 => 21, 22 => 22, 25 => 22, 23 => 23, 26 => 23, 28 => 23,
1191 27 => 27, 29 => 29, 30 => 29, 31 => 31, 32 => 32, 33 => 33, 34 => 34, 35 => 35,
1192 36 => 36, 37 => 37, 38 => 38, 39 => 39, 40 => 40, 42 => 40, 41 => 41, 43 => 43,
1193 44 => 44, 46 => 46, 47 => 47, 48 => 48, 49 => 49, 51 => 49, 50 => 50, 52 => 50,
1194 53 => 53, 54 => 54, 55 => 55, 56 => 56, 57 => 57, 58 => 58, 59 => 59, 60 => 60,
1195 61 => 61, 62 => 62, 71 => 62, 158 => 62, 162 => 62, 166 => 62, 167 => 62,
1196 63 => 63, 159 => 63, 165 => 63, 64 => 64, 65 => 65, 66 => 65, 67 => 67,
1197 143 => 67, 70 => 70, 72 => 72, 73 => 73, 74 => 73, 75 => 75, 79 => 79, 80 => 80,
1198 81 => 80, 83 => 83, 108 => 83, 84 => 84, 85 => 85, 86 => 86, 87 => 87, 88 => 88,
1199 89 => 89, 90 => 90, 93 => 93, 98 => 98, 99 => 99, 100 => 100, 101 => 101,
1200 103 => 103, 106 => 106, 107 => 107, 110 => 110, 113 => 113, 114 => 114,
1201 115 => 115, 117 => 117, 118 => 118, 119 => 119, 120 => 120, 121 => 121,
1202 122 => 122, 124 => 124, 179 => 124, 125 => 125, 126 => 126, 127 => 127,
1203 128 => 128, 129 => 129, 130 => 130, 138 => 130, 131 => 131, 132 => 132,
1204 133 => 133, 134 => 133, 136 => 133, 137 => 133, 135 => 135, 139 => 139,
1205 140 => 140, 141 => 141, 183 => 141, 142 => 142, 144 => 144, 145 => 145,
1206 146 => 146, 147 => 147, 148 => 148, 149 => 149, 150 => 150, 151 => 151,
1207 152 => 152, 153 => 153, 154 => 154, 155 => 155, 156 => 156, 157 => 157,
1208 160 => 160, 161 => 161, 163 => 163, 164 => 164, 168 => 168, 169 => 169,
1209 170 => 170, 171 => 171, 172 => 172, 173 => 173, 174 => 174, 175 => 175,
1210 176 => 176, 178 => 178, 180 => 180, 181 => 181, 184 => 184, 185 => 185,
1211 186 => 186, 187 => 187, 188 => 187, 190 => 187, 189 => 189, 191 => 191,
1212 192 => 192, 193 => 193,);
1214 #line 201 "../smarty/lexer/smarty_internal_templateparser.y"
1217 $this->_retvalue
= $this->root_buffer
->to_smarty_php();
1220 #line 209 "../smarty/lexer/smarty_internal_templateparser.y"
1223 if ($this->yystack
[$this->yyidx +
0]->minor
!= null) {
1224 $this->current_buffer
->append_subtree($this->yystack
[$this->yyidx +
0]->minor
);
1228 #line 216 "../smarty/lexer/smarty_internal_templateparser.y"
1231 if ($this->yystack
[$this->yyidx +
0]->minor
!= null) {
1232 // because of possible code injection
1233 $this->current_buffer
->append_subtree($this->yystack
[$this->yyidx +
0]->minor
);
1237 #line 230 "../smarty/lexer/smarty_internal_templateparser.y"
1240 if ($this->compiler
->has_code
) {
1241 $this->_retvalue
= $this->mergePrefixCode($this->yystack
[$this->yyidx +
0]->minor
);
1243 $this->_retvalue
= null;
1245 $this->compiler
->has_variable_string
= false;
1246 $this->block_nesting_level
= count($this->compiler
->_tag_stack
);
1249 #line 241 "../smarty/lexer/smarty_internal_templateparser.y"
1252 $this->_retvalue
= new Smarty_Internal_ParseTree_Text($this, $this->yystack
[$this->yyidx +
0]->minor
);
1255 #line 245 "../smarty/lexer/smarty_internal_templateparser.y"
1258 $code = $this->compiler
->compileTag('private_php', array(array('code' => $this->yystack
[$this->yyidx +
0]->minor
),
1259 array('type' => $this->lex
->phpType
)), array());
1260 if ($this->compiler
->has_code
&& !empty($code)) {
1262 foreach ($this->compiler
->prefix_code
as $code) {
1265 $this->compiler
->prefix_code
= array();
1266 $this->_retvalue
= new Smarty_Internal_ParseTree_Tag($this, $this->compiler
->processNocacheCode($tmp . $code, true));
1268 $this->_retvalue
= null;
1272 #line 256 "../smarty/lexer/smarty_internal_templateparser.y"
1275 $this->_retvalue
= $this->compiler
->processText($this->yystack
[$this->yyidx +
0]->minor
);
1278 #line 260 "../smarty/lexer/smarty_internal_templateparser.y"
1281 $this->_retvalue
= $this->yystack
[$this->yyidx +
0]->minor
;
1284 #line 264 "../smarty/lexer/smarty_internal_templateparser.y"
1287 $this->_retvalue
= $this->yystack
[$this->yyidx +
- 1]->minor
. $this->yystack
[$this->yyidx +
0]->minor
;
1290 #line 269 "../smarty/lexer/smarty_internal_templateparser.y"
1293 $this->strip
= true;
1296 #line 273 "../smarty/lexer/smarty_internal_templateparser.y"
1299 $this->strip
= false;
1302 #line 277 "../smarty/lexer/smarty_internal_templateparser.y"
1306 SMARTY_INTERNAL_COMPILE_BLOCK
::blockSource($this->compiler
, preg_replace('![\t ]*[\r\n]+[\t ]*!', '', $this->yystack
[$this->yyidx +
0]->minor
));
1308 SMARTY_INTERNAL_COMPILE_BLOCK
::blockSource($this->compiler
, $this->yystack
[$this->yyidx +
0]->minor
);
1312 #line 286 "../smarty/lexer/smarty_internal_templateparser.y"
1315 $this->_retvalue
= '';
1318 #line 290 "../smarty/lexer/smarty_internal_templateparser.y"
1321 $this->_retvalue
= $this->yystack
[$this->yyidx +
- 1]->minor
;
1324 #line 294 "../smarty/lexer/smarty_internal_templateparser.y"
1327 $this->_retvalue
= $this->yystack
[$this->yyidx +
- 1]->minor
. $this->yystack
[$this->yyidx +
0]->minor
;
1330 #line 310 "../smarty/lexer/smarty_internal_templateparser.y"
1333 $this->_retvalue
= $this->yystack
[$this->yyidx +
- 1]->minor
;
1336 #line 316 "../smarty/lexer/smarty_internal_templateparser.y"
1339 $var = trim(substr($this->yystack
[$this->yyidx +
0]->minor
, $this->lex
->ldel_length
, - $this->lex
->rdel_length
), ' $');
1340 if (preg_match('/^(.*)(\s+nocache)$/', $var, $match)) {
1341 $this->_retvalue
= $this->compiler
->compileTag('private_print_expression', array('nocache'), array('value' => $this->compiler
->compileVariable('\'' . $match[1] . '\'')));
1343 $this->_retvalue
= $this->compiler
->compileTag('private_print_expression', array(), array('value' => $this->compiler
->compileVariable('\'' . $var . '\'')));
1347 #line 326 "../smarty/lexer/smarty_internal_templateparser.y"
1350 $this->_retvalue
= $this->compiler
->compileTag('private_print_expression', array(), array('value' => $this->yystack
[$this->yyidx +
0]->minor
));
1353 #line 330 "../smarty/lexer/smarty_internal_templateparser.y"
1356 $this->_retvalue
= $this->compiler
->compileTag('private_print_expression', $this->yystack
[$this->yyidx +
0]->minor
, array('value' => $this->yystack
[$this->yyidx +
- 2]->minor
,
1357 'modifierlist' => $this->yystack
[$this->yyidx +
- 1]->minor
));
1360 #line 334 "../smarty/lexer/smarty_internal_templateparser.y"
1363 $this->_retvalue
= $this->compiler
->compileTag('private_print_expression', $this->yystack
[$this->yyidx +
0]->minor
, array('value' => $this->yystack
[$this->yyidx +
- 1]->minor
));
1366 #line 348 "../smarty/lexer/smarty_internal_templateparser.y"
1369 $this->_retvalue
= $this->compiler
->compileTag('private_print_expression', $this->yystack
[$this->yyidx +
0]->minor
, array('value' => $this->yystack
[$this->yyidx +
- 2]->minor
,
1370 'modifierlist' => $this->yystack
[$this->yyidx +
- 1]->minor
));
1373 #line 361 "../smarty/lexer/smarty_internal_templateparser.y"
1376 $this->_retvalue
= $this->compiler
->compileTag('assign', array(array('value' => $this->yystack
[$this->yyidx +
0]->minor
),
1377 array('var' => '\'' . substr($this->yystack
[$this->yyidx +
- 2]->minor
, 1) . '\'')));
1380 #line 369 "../smarty/lexer/smarty_internal_templateparser.y"
1383 $this->_retvalue
= $this->compiler
->compileTag('assign', array_merge(array(array('value' => $this->yystack
[$this->yyidx +
- 1]->minor
),
1384 array('var' => '\'' . substr($this->yystack
[$this->yyidx +
- 3]->minor
, 1) . '\'')), $this->yystack
[$this->yyidx +
0]->minor
));
1387 #line 373 "../smarty/lexer/smarty_internal_templateparser.y"
1390 $this->_retvalue
= $this->compiler
->compileTag('assign', array_merge(array(array('value' => $this->yystack
[$this->yyidx +
- 1]->minor
),
1391 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']));
1394 #line 378 "../smarty/lexer/smarty_internal_templateparser.y"
1397 $tag = trim(substr($this->yystack
[$this->yyidx +
0]->minor
, $this->lex
->ldel_length
, - $this->lex
->rdel_length
));
1398 if ($tag == 'strip') {
1399 $this->strip
= true;
1400 $this->_retvalue
= null;;
1402 if (defined($tag)) {
1403 if ($this->security
) {
1404 $this->security
->isTrustedConstant($tag, $this->compiler
);
1406 $this->_retvalue
= $this->compiler
->compileTag('private_print_expression', array(), array('value' => $tag));
1408 if (preg_match('/^(.*)(\s+nocache)$/', $tag, $match)) {
1409 $this->_retvalue
= $this->compiler
->compileTag($match[1], array('nocache'));
1411 $this->_retvalue
= $this->compiler
->compileTag($tag, array());
1417 #line 400 "../smarty/lexer/smarty_internal_templateparser.y"
1420 if (defined($this->yystack
[$this->yyidx +
- 1]->minor
)) {
1421 if ($this->security
) {
1422 $this->security
->isTrustedConstant($this->yystack
[$this->yyidx +
- 1]->minor
, $this->compiler
);
1424 $this->_retvalue
= $this->compiler
->compileTag('private_print_expression', $this->yystack
[$this->yyidx +
0]->minor
, array('value' => $this->yystack
[$this->yyidx +
- 1]->minor
));
1426 $this->_retvalue
= $this->compiler
->compileTag($this->yystack
[$this->yyidx +
- 1]->minor
, $this->yystack
[$this->yyidx +
0]->minor
);
1430 #line 410 "../smarty/lexer/smarty_internal_templateparser.y"
1433 if (defined($this->yystack
[$this->yyidx +
0]->minor
)) {
1434 if ($this->security
) {
1435 $this->security
->isTrustedConstant($this->yystack
[$this->yyidx +
0]->minor
, $this->compiler
);
1437 $this->_retvalue
= $this->compiler
->compileTag('private_print_expression', array(), array('value' => $this->yystack
[$this->yyidx +
0]->minor
));
1439 $this->_retvalue
= $this->compiler
->compileTag($this->yystack
[$this->yyidx +
0]->minor
, array());
1443 #line 423 "../smarty/lexer/smarty_internal_templateparser.y"
1446 if (defined($this->yystack
[$this->yyidx +
- 2]->minor
)) {
1447 if ($this->security
) {
1448 $this->security
->isTrustedConstant($this->yystack
[$this->yyidx +
- 2]->minor
, $this->compiler
);
1450 $this->_retvalue
= $this->compiler
->compileTag('private_print_expression', $this->yystack
[$this->yyidx +
0]->minor
, array('value' => $this->yystack
[$this->yyidx +
- 2]->minor
,
1451 'modifierlist' => $this->yystack
[$this->yyidx +
- 1]->minor
));
1453 $this->_retvalue
= '<?php ob_start();?>' . $this->compiler
->compileTag($this->yystack
[$this->yyidx +
- 2]->minor
, $this->yystack
[$this->yyidx +
0]->minor
) . '<?php echo ';
1454 $this->_retvalue
.= $this->compiler
->compileTag('private_modifier', array(), array('modifierlist' => $this->yystack
[$this->yyidx +
- 1]->minor
,
1455 'value' => 'ob_get_clean()')) . ';?>';
1459 #line 436 "../smarty/lexer/smarty_internal_templateparser.y"
1462 $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
));
1465 #line 441 "../smarty/lexer/smarty_internal_templateparser.y"
1468 $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 ';
1469 $this->_retvalue
.= $this->compiler
->compileTag('private_modifier', array(), array('modifierlist' => $this->yystack
[$this->yyidx +
- 1]->minor
,
1470 'value' => 'ob_get_clean()')) . ';?>';
1473 #line 447 "../smarty/lexer/smarty_internal_templateparser.y"
1476 $tag = trim(substr($this->yystack
[$this->yyidx +
- 1]->minor
, $this->lex
->ldel_length
));
1477 $this->_retvalue
= $this->compiler
->compileTag(($tag == 'else if') ?
'elseif' : $tag, array(), array('if condition' => $this->yystack
[$this->yyidx +
0]->minor
));
1480 #line 452 "../smarty/lexer/smarty_internal_templateparser.y"
1483 $tag = trim(substr($this->yystack
[$this->yyidx +
- 2]->minor
, $this->lex
->ldel_length
));
1484 $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
));
1487 #line 457 "../smarty/lexer/smarty_internal_templateparser.y"
1490 $tag = trim(substr($this->yystack
[$this->yyidx +
- 1]->minor
, $this->lex
->ldel_length
));
1491 $this->_retvalue
= $this->compiler
->compileTag(($tag == 'else if') ?
'elseif' : $tag, array(), array('if condition' => $this->yystack
[$this->yyidx +
0]->minor
));
1494 #line 468 "../smarty/lexer/smarty_internal_templateparser.y"
1497 $this->_retvalue
= $this->compiler
->compileTag('for', array_merge($this->yystack
[$this->yyidx +
0]->minor
, array(array('start' => $this->yystack
[$this->yyidx +
- 6]->minor
),
1498 array('ifexp' => $this->yystack
[$this->yyidx +
- 4]->minor
),
1499 array('var' => $this->yystack
[$this->yyidx +
- 2]->minor
),
1500 array('step' => $this->yystack
[$this->yyidx +
- 1]->minor
))), 1);
1503 #line 472 "../smarty/lexer/smarty_internal_templateparser.y"
1506 $this->_retvalue
= '=' . $this->yystack
[$this->yyidx +
0]->minor
;
1509 #line 480 "../smarty/lexer/smarty_internal_templateparser.y"
1512 $this->_retvalue
= $this->compiler
->compileTag('for', array_merge($this->yystack
[$this->yyidx +
0]->minor
, array(array('start' => $this->yystack
[$this->yyidx +
- 3]->minor
),
1513 array('to' => $this->yystack
[$this->yyidx +
- 1]->minor
))), 0);
1516 #line 484 "../smarty/lexer/smarty_internal_templateparser.y"
1519 $this->_retvalue
= $this->compiler
->compileTag('for', array_merge($this->yystack
[$this->yyidx +
0]->minor
, array(array('start' => $this->yystack
[$this->yyidx +
- 5]->minor
),
1520 array('to' => $this->yystack
[$this->yyidx +
- 3]->minor
),
1521 array('step' => $this->yystack
[$this->yyidx +
- 1]->minor
))), 0);
1524 #line 489 "../smarty/lexer/smarty_internal_templateparser.y"
1527 $this->_retvalue
= $this->compiler
->compileTag('foreach', $this->yystack
[$this->yyidx +
0]->minor
);
1530 #line 494 "../smarty/lexer/smarty_internal_templateparser.y"
1533 $this->_retvalue
= $this->compiler
->compileTag('foreach', array_merge($this->yystack
[$this->yyidx +
0]->minor
, array(array('from' => $this->yystack
[$this->yyidx +
- 3]->minor
),
1534 array('item' => $this->yystack
[$this->yyidx +
- 1]->minor
))));
1537 #line 498 "../smarty/lexer/smarty_internal_templateparser.y"
1540 $this->_retvalue
= $this->compiler
->compileTag('foreach', array_merge($this->yystack
[$this->yyidx +
0]->minor
, array(array('from' => $this->yystack
[$this->yyidx +
- 5]->minor
),
1541 array('item' => $this->yystack
[$this->yyidx +
- 1]->minor
),
1542 array('key' => $this->yystack
[$this->yyidx +
- 3]->minor
))));
1545 #line 511 "../smarty/lexer/smarty_internal_templateparser.y"
1548 $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
))));
1551 #line 515 "../smarty/lexer/smarty_internal_templateparser.y"
1554 $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
)));
1557 #line 520 "../smarty/lexer/smarty_internal_templateparser.y"
1560 $j = strrpos($this->yystack
[$this->yyidx +
0]->minor
, '.');
1561 if ($this->yystack
[$this->yyidx +
0]->minor
[$j +
1] == 'c') {
1562 // {$smarty.block.child}
1563 $this->_retvalue
= SMARTY_INTERNAL_COMPILE_BLOCK
::compileChildBlock($this->compiler
);
1565 // {$smarty.block.parent}
1566 $this->_retvalue
= SMARTY_INTERNAL_COMPILE_BLOCK
::compileParentBlock($this->compiler
);
1570 #line 533 "../smarty/lexer/smarty_internal_templateparser.y"
1573 $tag = trim(substr($this->yystack
[$this->yyidx +
0]->minor
, $this->lex
->ldel_length
, - $this->lex
->rdel_length
), ' /');
1574 if ($tag == 'strip') {
1575 $this->strip
= false;
1576 $this->_retvalue
= null;
1578 $this->_retvalue
= $this->compiler
->compileTag($tag . 'close', array());
1582 #line 542 "../smarty/lexer/smarty_internal_templateparser.y"
1585 $this->_retvalue
= $this->compiler
->compileTag($this->yystack
[$this->yyidx +
0]->minor
. 'close', array());
1588 #line 546 "../smarty/lexer/smarty_internal_templateparser.y"
1591 $this->_retvalue
= $this->compiler
->compileTag($this->yystack
[$this->yyidx +
- 1]->minor
. 'close', array(), array('modifier_list' => $this->yystack
[$this->yyidx +
0]->minor
));
1594 #line 551 "../smarty/lexer/smarty_internal_templateparser.y"
1597 $this->_retvalue
= $this->compiler
->compileTag($this->yystack
[$this->yyidx +
- 2]->minor
. 'close', array(), array('object_method' => $this->yystack
[$this->yyidx +
0]->minor
));
1600 #line 555 "../smarty/lexer/smarty_internal_templateparser.y"
1603 $this->_retvalue
= $this->compiler
->compileTag($this->yystack
[$this->yyidx +
- 3]->minor
. 'close', array(), array('object_method' => $this->yystack
[$this->yyidx +
- 1]->minor
,
1604 'modifier_list' => $this->yystack
[$this->yyidx +
0]->minor
));
1607 #line 563 "../smarty/lexer/smarty_internal_templateparser.y"
1610 $this->_retvalue
= $this->yystack
[$this->yyidx +
- 1]->minor
;
1611 $this->_retvalue
[] = $this->yystack
[$this->yyidx +
0]->minor
;
1614 #line 569 "../smarty/lexer/smarty_internal_templateparser.y"
1617 $this->_retvalue
= array($this->yystack
[$this->yyidx +
0]->minor
);
1620 #line 574 "../smarty/lexer/smarty_internal_templateparser.y"
1623 $this->_retvalue
= array();
1626 #line 579 "../smarty/lexer/smarty_internal_templateparser.y"
1629 if (defined($this->yystack
[$this->yyidx +
0]->minor
)) {
1630 if ($this->security
) {
1631 $this->security
->isTrustedConstant($this->yystack
[$this->yyidx +
0]->minor
, $this->compiler
);
1633 $this->_retvalue
= array($this->yystack
[$this->yyidx +
- 2]->minor
=> $this->yystack
[$this->yyidx +
0]->minor
);
1635 $this->_retvalue
= array($this->yystack
[$this->yyidx +
- 2]->minor
=> '\'' . $this->yystack
[$this->yyidx +
0]->minor
. '\'');
1639 #line 590 "../smarty/lexer/smarty_internal_templateparser.y"
1642 $this->_retvalue
= array(trim($this->yystack
[$this->yyidx +
- 1]->minor
, " =\n\r\t") => $this->yystack
[$this->yyidx +
0]->minor
);
1645 #line 598 "../smarty/lexer/smarty_internal_templateparser.y"
1648 $this->_retvalue
= '\'' . $this->yystack
[$this->yyidx +
0]->minor
. '\'';
1651 #line 610 "../smarty/lexer/smarty_internal_templateparser.y"
1654 $this->_retvalue
= array($this->yystack
[$this->yyidx +
- 2]->minor
=> $this->yystack
[$this->yyidx +
0]->minor
);
1657 #line 623 "../smarty/lexer/smarty_internal_templateparser.y"
1660 $this->yystack
[$this->yyidx +
- 2]->minor
[] = $this->yystack
[$this->yyidx +
0]->minor
;
1661 $this->_retvalue
= $this->yystack
[$this->yyidx +
- 2]->minor
;
1664 #line 628 "../smarty/lexer/smarty_internal_templateparser.y"
1667 $this->_retvalue
= array('var' => '\'' . substr($this->yystack
[$this->yyidx +
- 2]->minor
, 1) . '\'',
1668 'value' => $this->yystack
[$this->yyidx +
0]->minor
);
1671 #line 635 "../smarty/lexer/smarty_internal_templateparser.y"
1674 $this->_retvalue
= array('var' => $this->yystack
[$this->yyidx +
- 2]->minor
,
1675 'value' => $this->yystack
[$this->yyidx +
0]->minor
);
1678 #line 659 "../smarty/lexer/smarty_internal_templateparser.y"
1681 $this->_retvalue
= '$_smarty_tpl->getStreamVariable(\'' . substr($this->yystack
[$this->yyidx +
- 2]->minor
, 1) . '://' . $this->yystack
[$this->yyidx +
0]->minor
. '\')';
1684 #line 664 "../smarty/lexer/smarty_internal_templateparser.y"
1687 $this->_retvalue
= $this->yystack
[$this->yyidx +
- 2]->minor
. trim($this->yystack
[$this->yyidx +
- 1]->minor
) . $this->yystack
[$this->yyidx +
0]->minor
;
1690 #line 678 "../smarty/lexer/smarty_internal_templateparser.y"
1693 $this->_retvalue
= $this->compiler
->compileTag('private_modifier', array(), array('value' => $this->yystack
[$this->yyidx +
- 1]->minor
,
1694 'modifierlist' => $this->yystack
[$this->yyidx +
0]->minor
));
1697 #line 684 "../smarty/lexer/smarty_internal_templateparser.y"
1700 $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']) ?
')' : '');
1703 #line 687 "../smarty/lexer/smarty_internal_templateparser.y"
1706 $this->_retvalue
= $this->yystack
[$this->yyidx +
0]->minor
. $this->yystack
[$this->yyidx +
- 1]->minor
. ')';
1709 #line 691 "../smarty/lexer/smarty_internal_templateparser.y"
1712 $this->_retvalue
= 'in_array(' . $this->yystack
[$this->yyidx +
- 2]->minor
. ',' . $this->yystack
[$this->yyidx +
0]->minor
. ')';
1715 #line 695 "../smarty/lexer/smarty_internal_templateparser.y"
1718 $this->_retvalue
= 'in_array(' . $this->yystack
[$this->yyidx +
- 2]->minor
. ',(array)' . $this->yystack
[$this->yyidx +
0]->minor
. ')';
1721 #line 699 "../smarty/lexer/smarty_internal_templateparser.y"
1724 $this->_retvalue
= $this->yystack
[$this->yyidx +
- 2]->minor
. $this->yystack
[$this->yyidx +
- 1]->minor
. $this->yystack
[$this->yyidx +
0]->minor
;
1727 #line 707 "../smarty/lexer/smarty_internal_templateparser.y"
1730 $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
;
1733 #line 711 "../smarty/lexer/smarty_internal_templateparser.y"
1736 $this->_retvalue
= $this->yystack
[$this->yyidx +
- 5]->minor
. ' ? ' . $this->yystack
[$this->yyidx +
- 2]->minor
. ' : ' . $this->yystack
[$this->yyidx +
0]->minor
;
1739 #line 726 "../smarty/lexer/smarty_internal_templateparser.y"
1742 $this->_retvalue
= '!' . $this->yystack
[$this->yyidx +
0]->minor
;
1745 #line 747 "../smarty/lexer/smarty_internal_templateparser.y"
1748 $this->_retvalue
= $this->yystack
[$this->yyidx +
- 2]->minor
. '.' . $this->yystack
[$this->yyidx +
0]->minor
;
1751 #line 751 "../smarty/lexer/smarty_internal_templateparser.y"
1754 $this->_retvalue
= $this->yystack
[$this->yyidx +
- 1]->minor
. '.';
1757 #line 755 "../smarty/lexer/smarty_internal_templateparser.y"
1760 $this->_retvalue
= '.' . $this->yystack
[$this->yyidx +
0]->minor
;
1763 #line 760 "../smarty/lexer/smarty_internal_templateparser.y"
1766 if (defined($this->yystack
[$this->yyidx +
0]->minor
)) {
1767 if ($this->security
) {
1768 $this->security
->isTrustedConstant($this->yystack
[$this->yyidx +
0]->minor
, $this->compiler
);
1770 $this->_retvalue
= $this->yystack
[$this->yyidx +
0]->minor
;
1772 $this->_retvalue
= '\'' . $this->yystack
[$this->yyidx +
0]->minor
. '\'';
1776 #line 777 "../smarty/lexer/smarty_internal_templateparser.y"
1779 $this->_retvalue
= "(" . $this->yystack
[$this->yyidx +
- 1]->minor
. ")";
1782 #line 792 "../smarty/lexer/smarty_internal_templateparser.y"
1785 self
::$prefix_number ++
;
1786 if ($this->yystack
[$this->yyidx +
- 2]->minor
['var'] == '\'smarty\'') {
1787 $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']) . ';?>';
1789 $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'] . ';?>';
1791 $this->_retvalue
= '$_tmp' . self
::$prefix_number . '::' . $this->yystack
[$this->yyidx +
0]->minor
[0] . $this->yystack
[$this->yyidx +
0]->minor
[1];
1794 #line 803 "../smarty/lexer/smarty_internal_templateparser.y"
1797 self
::$prefix_number ++
;
1798 $tmp = $this->compiler
->appendCode('<?php ob_start();?>', $this->yystack
[$this->yyidx +
0]->minor
);
1799 $this->compiler
->prefix_code
[] = $this->compiler
->appendCode($tmp, '<?php $_tmp' . self
::$prefix_number . '=ob_get_clean();?>');
1800 $this->_retvalue
= '$_tmp' . self
::$prefix_number;
1803 #line 820 "../smarty/lexer/smarty_internal_templateparser.y"
1806 if (!in_array(strtolower($this->yystack
[$this->yyidx +
- 2]->minor
), array('self',
1807 'parent')) && (!$this->security ||
$this->security
->isTrustedStaticClassAccess($this->yystack
[$this->yyidx +
- 2]->minor
, $this->yystack
[$this->yyidx +
0]->minor
, $this->compiler
))
1809 if (isset($this->smarty
->registered_classes
[$this->yystack
[$this->yyidx +
- 2]->minor
])) {
1810 $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];
1812 $this->_retvalue
= $this->yystack
[$this->yyidx +
- 2]->minor
. '::' . $this->yystack
[$this->yyidx +
0]->minor
[0] . $this->yystack
[$this->yyidx +
0]->minor
[1];
1815 $this->compiler
->trigger_template_error("static class '" . $this->yystack
[$this->yyidx +
- 2]->minor
. "' is undefined or not allowed by security setting");
1819 #line 854 "../smarty/lexer/smarty_internal_templateparser.y"
1822 $this->_retvalue
= $this->compiler
->compileVariable('\'' . substr($this->yystack
[$this->yyidx +
0]->minor
, 1) . '\'');
1825 #line 857 "../smarty/lexer/smarty_internal_templateparser.y"
1828 if ($this->yystack
[$this->yyidx +
0]->minor
['var'] == '\'smarty\'') {
1829 $smarty_var = $this->compiler
->compileTag('private_special_variable', array(), $this->yystack
[$this->yyidx +
0]->minor
['smarty_internal_index']);
1830 $this->_retvalue
= $smarty_var;
1832 // used for array reset,next,prev,end,current
1833 $this->last_variable
= $this->yystack
[$this->yyidx +
0]->minor
['var'];
1834 $this->last_index
= $this->yystack
[$this->yyidx +
0]->minor
['smarty_internal_index'];
1835 $this->_retvalue
= $this->compiler
->compileVariable($this->yystack
[$this->yyidx +
0]->minor
['var']) . $this->yystack
[$this->yyidx +
0]->minor
['smarty_internal_index'];
1839 #line 870 "../smarty/lexer/smarty_internal_templateparser.y"
1842 $this->_retvalue
= '$_smarty_tpl->tpl_vars[' . $this->yystack
[$this->yyidx +
- 2]->minor
. ']->' . $this->yystack
[$this->yyidx +
0]->minor
;
1845 #line 880 "../smarty/lexer/smarty_internal_templateparser.y"
1848 $this->_retvalue
= '$_smarty_tpl->getConfigVariable( \'' . $this->yystack
[$this->yyidx +
- 1]->minor
. '\')';
1851 #line 884 "../smarty/lexer/smarty_internal_templateparser.y"
1854 $this->_retvalue
= '(is_array($tmp = $_smarty_tpl->getConfigVariable( \'' . $this->yystack
[$this->yyidx +
- 2]->minor
. '\')) ? $tmp' . $this->yystack
[$this->yyidx +
0]->minor
. ' :null)';
1857 #line 888 "../smarty/lexer/smarty_internal_templateparser.y"
1860 $this->_retvalue
= '$_smarty_tpl->getConfigVariable( ' . $this->yystack
[$this->yyidx +
- 1]->minor
. ')';
1863 #line 892 "../smarty/lexer/smarty_internal_templateparser.y"
1866 $this->_retvalue
= '(is_array($tmp = $_smarty_tpl->getConfigVariable( ' . $this->yystack
[$this->yyidx +
- 2]->minor
. ')) ? $tmp' . $this->yystack
[$this->yyidx +
0]->minor
. ' : null)';
1869 #line 896 "../smarty/lexer/smarty_internal_templateparser.y"
1872 $this->_retvalue
= array('var' => '\'' . substr($this->yystack
[$this->yyidx +
- 1]->minor
, 1) . '\'',
1873 'smarty_internal_index' => $this->yystack
[$this->yyidx +
0]->minor
);
1876 #line 899 "../smarty/lexer/smarty_internal_templateparser.y"
1879 $this->_retvalue
= array('var' => $this->yystack
[$this->yyidx +
- 1]->minor
,
1880 'smarty_internal_index' => $this->yystack
[$this->yyidx +
0]->minor
);
1883 #line 912 "../smarty/lexer/smarty_internal_templateparser.y"
1889 #line 918 "../smarty/lexer/smarty_internal_templateparser.y"
1892 $this->_retvalue
= '[' . $this->compiler
->compileVariable('\'' . substr($this->yystack
[$this->yyidx +
0]->minor
, 1) . '\'') . ']';
1895 #line 921 "../smarty/lexer/smarty_internal_templateparser.y"
1898 $this->_retvalue
= '[' . $this->compiler
->compileVariable($this->yystack
[$this->yyidx +
0]->minor
) . ']';
1901 #line 925 "../smarty/lexer/smarty_internal_templateparser.y"
1904 $this->_retvalue
= '[' . $this->compiler
->compileVariable($this->yystack
[$this->yyidx +
- 2]->minor
) . '->' . $this->yystack
[$this->yyidx +
0]->minor
. ']';
1907 #line 929 "../smarty/lexer/smarty_internal_templateparser.y"
1910 if (defined($this->yystack
[$this->yyidx +
0]->minor
)) {
1911 if ($this->security
) {
1912 $this->security
->isTrustedConstant($this->yystack
[$this->yyidx +
0]->minor
, $this->compiler
);
1914 $this->_retvalue
= '[' . $this->yystack
[$this->yyidx +
0]->minor
. ']';
1916 $this->_retvalue
= "['" . $this->yystack
[$this->yyidx +
0]->minor
. "']";
1920 #line 940 "../smarty/lexer/smarty_internal_templateparser.y"
1923 $this->_retvalue
= '[' . $this->yystack
[$this->yyidx +
0]->minor
. ']';
1926 #line 945 "../smarty/lexer/smarty_internal_templateparser.y"
1929 $this->_retvalue
= '[' . $this->yystack
[$this->yyidx +
- 1]->minor
. ']';
1932 #line 950 "../smarty/lexer/smarty_internal_templateparser.y"
1935 $this->_retvalue
= '[' . $this->compiler
->compileTag('private_special_variable', array(), '[\'section\'][\'' . $this->yystack
[$this->yyidx +
- 1]->minor
. '\'][\'index\']') . ']';
1938 #line 954 "../smarty/lexer/smarty_internal_templateparser.y"
1941 $this->_retvalue
= '[' . $this->compiler
->compileTag('private_special_variable', array(), '[\'section\'][\'' . $this->yystack
[$this->yyidx +
- 3]->minor
. '\'][\'' . $this->yystack
[$this->yyidx +
- 1]->minor
. '\']') . ']';
1944 #line 957 "../smarty/lexer/smarty_internal_templateparser.y"
1947 $this->_retvalue
= '[' . $this->yystack
[$this->yyidx +
- 1]->minor
. ']';
1950 #line 963 "../smarty/lexer/smarty_internal_templateparser.y"
1953 $this->_retvalue
= '[' . $this->compiler
->compileVariable('\'' . substr($this->yystack
[$this->yyidx +
- 1]->minor
, 1) . '\'') . ']';;
1956 #line 979 "../smarty/lexer/smarty_internal_templateparser.y"
1959 $this->_retvalue
= '[]';
1962 #line 989 "../smarty/lexer/smarty_internal_templateparser.y"
1965 $this->_retvalue
= '\'' . substr($this->yystack
[$this->yyidx +
0]->minor
, 1) . '\'';
1968 #line 993 "../smarty/lexer/smarty_internal_templateparser.y"
1971 $this->_retvalue
= "''";
1974 #line 998 "../smarty/lexer/smarty_internal_templateparser.y"
1977 $this->_retvalue
= $this->yystack
[$this->yyidx +
- 1]->minor
. '.' . $this->yystack
[$this->yyidx +
0]->minor
;
1980 #line 1006 "../smarty/lexer/smarty_internal_templateparser.y"
1983 $var = trim(substr($this->yystack
[$this->yyidx +
0]->minor
, $this->lex
->ldel_length
, - $this->lex
->rdel_length
), ' $');
1984 $this->_retvalue
= $this->compiler
->compileVariable('\'' . $var . '\'');
1987 #line 1012 "../smarty/lexer/smarty_internal_templateparser.y"
1990 $this->_retvalue
= '(' . $this->yystack
[$this->yyidx +
- 1]->minor
. ')';
1993 #line 1019 "../smarty/lexer/smarty_internal_templateparser.y"
1996 if ($this->yystack
[$this->yyidx +
- 1]->minor
['var'] == '\'smarty\'') {
1997 $this->_retvalue
= $this->compiler
->compileTag('private_special_variable', array(), $this->yystack
[$this->yyidx +
- 1]->minor
['smarty_internal_index']) . $this->yystack
[$this->yyidx +
0]->minor
;
1999 $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
;
2003 #line 1028 "../smarty/lexer/smarty_internal_templateparser.y"
2006 $this->_retvalue
= $this->yystack
[$this->yyidx +
0]->minor
;
2009 #line 1033 "../smarty/lexer/smarty_internal_templateparser.y"
2012 $this->_retvalue
= $this->yystack
[$this->yyidx +
- 1]->minor
. $this->yystack
[$this->yyidx +
0]->minor
;
2015 #line 1038 "../smarty/lexer/smarty_internal_templateparser.y"
2018 if ($this->security
&& substr($this->yystack
[$this->yyidx +
- 1]->minor
, 0, 1) == '_') {
2019 $this->compiler
->trigger_template_error(self
::Err1
);
2021 $this->_retvalue
= '->' . $this->yystack
[$this->yyidx +
- 1]->minor
. $this->yystack
[$this->yyidx +
0]->minor
;
2024 #line 1045 "../smarty/lexer/smarty_internal_templateparser.y"
2027 if ($this->security
) {
2028 $this->compiler
->trigger_template_error(self
::Err2
);
2030 $this->_retvalue
= '->{' . $this->compiler
->compileVariable($this->yystack
[$this->yyidx +
- 1]->minor
) . $this->yystack
[$this->yyidx +
0]->minor
. '}';
2033 #line 1052 "../smarty/lexer/smarty_internal_templateparser.y"
2036 if ($this->security
) {
2037 $this->compiler
->trigger_template_error(self
::Err2
);
2039 $this->_retvalue
= '->{' . $this->yystack
[$this->yyidx +
- 2]->minor
. $this->yystack
[$this->yyidx +
0]->minor
. '}';
2042 #line 1059 "../smarty/lexer/smarty_internal_templateparser.y"
2045 if ($this->security
) {
2046 $this->compiler
->trigger_template_error(self
::Err2
);
2048 $this->_retvalue
= '->{\'' . $this->yystack
[$this->yyidx +
- 4]->minor
. '\'.' . $this->yystack
[$this->yyidx +
- 2]->minor
. $this->yystack
[$this->yyidx +
0]->minor
. '}';
2051 #line 1067 "../smarty/lexer/smarty_internal_templateparser.y"
2054 $this->_retvalue
= '->' . $this->yystack
[$this->yyidx +
0]->minor
;
2057 #line 1075 "../smarty/lexer/smarty_internal_templateparser.y"
2060 if (!$this->security ||
$this->security
->isTrustedPhpFunction($this->yystack
[$this->yyidx +
- 3]->minor
, $this->compiler
)) {
2061 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
)) {
2062 $func_name = strtolower($this->yystack
[$this->yyidx +
- 3]->minor
);
2063 if ($func_name == 'isset') {
2064 if (count($this->yystack
[$this->yyidx +
- 1]->minor
) == 0) {
2065 $this->compiler
->trigger_template_error('Illegal number of paramer in "isset()"');
2067 $par = implode(',', $this->yystack
[$this->yyidx +
- 1]->minor
);
2068 if (strncasecmp($par, '$_smarty_tpl->getConfigVariable', strlen('$_smarty_tpl->getConfigVariable')) === 0) {
2069 self
::$prefix_number ++
;
2070 $this->compiler
->prefix_code
[] = '<?php $_tmp' . self
::$prefix_number . '=' . str_replace(')', ', false)', $par) . ';?>';
2071 $isset_par = '$_tmp' . self
::$prefix_number;
2073 $isset_par = str_replace("')->value", "',null,true,false)->value", $par);
2075 $this->_retvalue
= $this->yystack
[$this->yyidx +
- 3]->minor
. "(" . $isset_par . ")";
2076 } elseif (in_array($func_name, array('empty', 'reset', 'current', 'end', 'prev', 'next'))) {
2077 if (count($this->yystack
[$this->yyidx +
- 1]->minor
) != 1) {
2078 $this->compiler
->trigger_template_error('Illegal number of paramer in "empty()"');
2080 if ($func_name == 'empty') {
2081 $this->_retvalue
= $func_name . '(' . str_replace("')->value", "',null,true,false)->value", $this->yystack
[$this->yyidx +
- 1]->minor
[0]) . ')';
2083 $this->_retvalue
= $func_name . '(' . $this->yystack
[$this->yyidx +
- 1]->minor
[0] . ')';
2086 $this->_retvalue
= $this->yystack
[$this->yyidx +
- 3]->minor
. "(" . implode(',', $this->yystack
[$this->yyidx +
- 1]->minor
) . ")";
2089 $this->compiler
->trigger_template_error("unknown function \"" . $this->yystack
[$this->yyidx +
- 3]->minor
. "\"");
2094 #line 1114 "../smarty/lexer/smarty_internal_templateparser.y"
2097 if ($this->security
&& substr($this->yystack
[$this->yyidx +
- 3]->minor
, 0, 1) == '_') {
2098 $this->compiler
->trigger_template_error(self
::Err1
);
2100 $this->_retvalue
= $this->yystack
[$this->yyidx +
- 3]->minor
. "(" . implode(',', $this->yystack
[$this->yyidx +
- 1]->minor
) . ")";
2103 #line 1121 "../smarty/lexer/smarty_internal_templateparser.y"
2106 if ($this->security
) {
2107 $this->compiler
->trigger_template_error(self
::Err2
);
2109 self
::$prefix_number ++
;
2110 $this->compiler
->prefix_code
[] = '<?php $_tmp' . self
::$prefix_number . '=' . $this->compiler
->compileVariable('\'' . substr($this->yystack
[$this->yyidx +
- 3]->minor
, 1) . '\'') . ';?>';
2111 $this->_retvalue
= '$_tmp' . self
::$prefix_number . '(' . implode(',', $this->yystack
[$this->yyidx +
- 1]->minor
) . ')';
2114 #line 1132 "../smarty/lexer/smarty_internal_templateparser.y"
2117 $this->_retvalue
= array_merge($this->yystack
[$this->yyidx +
- 2]->minor
, array($this->yystack
[$this->yyidx +
0]->minor
));
2120 #line 1149 "../smarty/lexer/smarty_internal_templateparser.y"
2123 $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
)));
2126 #line 1153 "../smarty/lexer/smarty_internal_templateparser.y"
2129 $this->_retvalue
= array(array_merge($this->yystack
[$this->yyidx +
- 1]->minor
, $this->yystack
[$this->yyidx +
0]->minor
));
2132 #line 1161 "../smarty/lexer/smarty_internal_templateparser.y"
2135 $this->_retvalue
= array($this->yystack
[$this->yyidx +
0]->minor
);
2138 #line 1169 "../smarty/lexer/smarty_internal_templateparser.y"
2141 $this->_retvalue
= array_merge($this->yystack
[$this->yyidx +
- 1]->minor
, $this->yystack
[$this->yyidx +
0]->minor
);
2144 #line 1188 "../smarty/lexer/smarty_internal_templateparser.y"
2147 $this->_retvalue
= array($this->yystack
[$this->yyidx +
0]->minor
, '', 'method');
2150 #line 1193 "../smarty/lexer/smarty_internal_templateparser.y"
2153 $this->_retvalue
= array($this->yystack
[$this->yyidx +
- 1]->minor
, $this->yystack
[$this->yyidx +
0]->minor
,
2157 #line 1198 "../smarty/lexer/smarty_internal_templateparser.y"
2160 $this->_retvalue
= array($this->yystack
[$this->yyidx +
0]->minor
, '');
2163 #line 1203 "../smarty/lexer/smarty_internal_templateparser.y"
2166 $this->_retvalue
= array($this->yystack
[$this->yyidx +
- 1]->minor
, $this->yystack
[$this->yyidx +
0]->minor
,
2170 #line 1208 "../smarty/lexer/smarty_internal_templateparser.y"
2173 $this->_retvalue
= array($this->yystack
[$this->yyidx +
- 2]->minor
,
2174 $this->yystack
[$this->yyidx +
- 1]->minor
. $this->yystack
[$this->yyidx +
0]->minor
, 'property');
2177 #line 1214 "../smarty/lexer/smarty_internal_templateparser.y"
2180 $this->_retvalue
['op'] = ' ' . trim($this->yystack
[$this->yyidx +
0]->minor
) . ' ';
2183 #line 1218 "../smarty/lexer/smarty_internal_templateparser.y"
2186 static $lops = array('eq' => array('op' => ' == ', 'pre' => null),
2187 'ne' => array('op' => ' != ', 'pre' => null),
2188 'neq' => array('op' => ' != ', 'pre' => null),
2189 'gt' => array('op' => ' > ', 'pre' => null),
2190 'ge' => array('op' => ' >= ', 'pre' => null),
2191 'gte' => array('op' => ' >= ', 'pre' => null),
2192 'lt' => array('op' => ' < ', 'pre' => null),
2193 'le' => array('op' => ' <= ', 'pre' => null),
2194 'lte' => array('op' => ' <= ', 'pre' => null),
2195 'mod' => array('op' => ' % ', 'pre' => null),
2196 'and' => array('op' => ' && ', 'pre' => null),
2197 'or' => array('op' => ' || ', 'pre' => null),
2198 'xor' => array('op' => ' xor ', 'pre' => null),
2199 'isdivby' => array('op' => ' % ', 'pre' => '!('),
2200 'isnotdivby' => array('op' => ' % ', 'pre' => '('),
2201 'isevenby' => array('op' => ' / ', 'pre' => '!(1 & '),
2202 'isnotevenby' => array('op' => ' / ', 'pre' => '(1 & '),
2203 'isoddby' => array('op' => ' / ', 'pre' => '(1 & '),
2204 'isnotoddby' => array('op' => ' / ', 'pre' => '!(1 & '),);
2205 $op = strtolower(str_replace(' ', '', $this->yystack
[$this->yyidx +
0]->minor
));
2206 $this->_retvalue
= $lops[$op];
2209 #line 1244 "../smarty/lexer/smarty_internal_templateparser.y"
2212 static $scond = array('iseven' => '!(1 & ', 'isnoteven' => '(1 & ', 'isodd' => '(1 & ',
2213 'isnotodd' => '!(1 & ',);
2214 $op = strtolower(str_replace(' ', '', $this->yystack
[$this->yyidx +
0]->minor
));
2215 $this->_retvalue
= $scond[$op];
2218 #line 1258 "../smarty/lexer/smarty_internal_templateparser.y"
2221 $this->_retvalue
= 'array(' . $this->yystack
[$this->yyidx +
- 1]->minor
. ')';
2224 #line 1266 "../smarty/lexer/smarty_internal_templateparser.y"
2227 $this->_retvalue
= $this->yystack
[$this->yyidx +
- 2]->minor
. ',' . $this->yystack
[$this->yyidx +
0]->minor
;
2230 #line 1274 "../smarty/lexer/smarty_internal_templateparser.y"
2233 $this->_retvalue
= $this->yystack
[$this->yyidx +
- 2]->minor
. '=>' . $this->yystack
[$this->yyidx +
0]->minor
;
2236 #line 1278 "../smarty/lexer/smarty_internal_templateparser.y"
2239 $this->_retvalue
= '\'' . $this->yystack
[$this->yyidx +
- 2]->minor
. '\'=>' . $this->yystack
[$this->yyidx +
0]->minor
;
2242 #line 1294 "../smarty/lexer/smarty_internal_templateparser.y"
2245 $this->_retvalue
= $this->yystack
[$this->yyidx +
- 1]->minor
->to_smarty_php();
2248 #line 1299 "../smarty/lexer/smarty_internal_templateparser.y"
2251 $this->yystack
[$this->yyidx +
- 1]->minor
->append_subtree($this->yystack
[$this->yyidx +
0]->minor
);
2252 $this->_retvalue
= $this->yystack
[$this->yyidx +
- 1]->minor
;
2255 #line 1304 "../smarty/lexer/smarty_internal_templateparser.y"
2258 $this->_retvalue
= new Smarty_Internal_ParseTree_Dq($this, $this->yystack
[$this->yyidx +
0]->minor
);
2261 #line 1308 "../smarty/lexer/smarty_internal_templateparser.y"
2264 $this->_retvalue
= new Smarty_Internal_ParseTree_Code($this, '(string)' . $this->yystack
[$this->yyidx +
- 1]->minor
);
2267 #line 1316 "../smarty/lexer/smarty_internal_templateparser.y"
2270 $this->_retvalue
= new Smarty_Internal_ParseTree_Code($this, '(string)$_smarty_tpl->tpl_vars[\'' . substr($this->yystack
[$this->yyidx +
0]->minor
, 1) . '\']->value');
2273 #line 1324 "../smarty/lexer/smarty_internal_templateparser.y"
2276 $this->_retvalue
= new Smarty_Internal_ParseTree_Code($this, '(string)(' . $this->yystack
[$this->yyidx +
- 1]->minor
. ')');
2279 #line 1328 "../smarty/lexer/smarty_internal_templateparser.y"
2282 $this->_retvalue
= new Smarty_Internal_ParseTree_Tag($this, $this->yystack
[$this->yyidx +
0]->minor
);
2285 #line 1332 "../smarty/lexer/smarty_internal_templateparser.y"
2288 $this->_retvalue
= new Smarty_Internal_ParseTree_DqContent($this, $this->yystack
[$this->yyidx +
0]->minor
);
2293 public function yy_reduce($yyruleno)
2295 if ($this->yyTraceFILE
&& $yyruleno >= 0 && $yyruleno < count(self
::$yyRuleName)) {
2296 fprintf($this->yyTraceFILE
, "%sReduce (%d) [%s].\n", $this->yyTracePrompt
, $yyruleno, self
::$yyRuleName[$yyruleno]);
2299 $this->_retvalue
= $yy_lefthand_side = null;
2300 if (isset(self
::$yyReduceMap[$yyruleno])) {
2302 $this->_retvalue
= null;
2303 $this->{'yy_r' . self
::$yyReduceMap[$yyruleno]}();
2304 $yy_lefthand_side = $this->_retvalue
;
2306 $yygoto = self
::$yyRuleInfo[$yyruleno][0];
2307 $yysize = self
::$yyRuleInfo[$yyruleno][1];
2308 $this->yyidx
-= $yysize;
2309 for ($i = $yysize; $i; $i --) {
2310 // pop all of the right-hand side parameters
2311 array_pop($this->yystack
);
2313 $yyact = $this->yy_find_reduce_action($this->yystack
[$this->yyidx
]->stateno
, $yygoto);
2314 if ($yyact < self
::YYNSTATE
) {
2315 if (!$this->yyTraceFILE
&& $yysize) {
2317 $x = new TP_yyStackEntry
;
2318 $x->stateno
= $yyact;
2319 $x->major
= $yygoto;
2320 $x->minor
= $yy_lefthand_side;
2321 $this->yystack
[$this->yyidx
] = $x;
2323 $this->yy_shift($yyact, $yygoto, $yy_lefthand_side);
2325 } elseif ($yyact == self
::YYNSTATE + self
::YYNRULE +
1) {
2330 public function yy_parse_failed()
2332 if ($this->yyTraceFILE
) {
2333 fprintf($this->yyTraceFILE
, "%sFail!\n", $this->yyTracePrompt
);
2335 while ($this->yyidx
>= 0) {
2336 $this->yy_pop_parser_stack();
2340 public function yy_syntax_error($yymajor, $TOKEN)
2342 #line 183 "../smarty/lexer/smarty_internal_templateparser.y"
2344 $this->internalError
= true;
2345 $this->yymajor
= $yymajor;
2346 $this->compiler
->trigger_template_error();
2349 public function yy_accept()
2351 if ($this->yyTraceFILE
) {
2352 fprintf($this->yyTraceFILE
, "%sAccept!\n", $this->yyTracePrompt
);
2354 while ($this->yyidx
>= 0) {
2355 $this->yy_pop_parser_stack();
2357 #line 176 "../smarty/lexer/smarty_internal_templateparser.y"
2359 $this->successful
= !$this->internalError
;
2360 $this->internalError
= false;
2361 $this->retvalue
= $this->_retvalue
;
2364 public function doParse($yymajor, $yytokenvalue)
2366 $yyerrorhit = 0; /* True if yymajor has invoked an error */
2368 if ($this->yyidx
=== null ||
$this->yyidx
< 0) {
2370 $this->yyerrcnt
= - 1;
2371 $x = new TP_yyStackEntry
;
2374 $this->yystack
= array();
2375 $this->yystack
[] = $x;
2377 $yyendofinput = ($yymajor == 0);
2379 if ($this->yyTraceFILE
) {
2380 fprintf($this->yyTraceFILE
, "%sInput %s\n", $this->yyTracePrompt
, $this->yyTokenName
[$yymajor]);
2384 $yyact = $this->yy_find_shift_action($yymajor);
2385 if ($yymajor < self
::YYERRORSYMBOL
&& !$this->yy_is_expected_token($yymajor)) {
2386 // force a syntax error
2387 $yyact = self
::YY_ERROR_ACTION
;
2389 if ($yyact < self
::YYNSTATE
) {
2390 $this->yy_shift($yyact, $yymajor, $yytokenvalue);
2392 if ($yyendofinput && $this->yyidx
>= 0) {
2395 $yymajor = self
::YYNOCODE
;
2397 } elseif ($yyact < self
::YYNSTATE + self
::YYNRULE
) {
2398 $this->yy_reduce($yyact - self
::YYNSTATE
);
2399 } elseif ($yyact == self
::YY_ERROR_ACTION
) {
2400 if ($this->yyTraceFILE
) {
2401 fprintf($this->yyTraceFILE
, "%sSyntax Error!\n", $this->yyTracePrompt
);
2403 if (self
::YYERRORSYMBOL
) {
2404 if ($this->yyerrcnt
< 0) {
2405 $this->yy_syntax_error($yymajor, $yytokenvalue);
2407 $yymx = $this->yystack
[$this->yyidx
]->major
;
2408 if ($yymx == self
::YYERRORSYMBOL ||
$yyerrorhit) {
2409 if ($this->yyTraceFILE
) {
2410 fprintf($this->yyTraceFILE
, "%sDiscard input token %s\n", $this->yyTracePrompt
, $this->yyTokenName
[$yymajor]);
2412 $this->yy_destructor($yymajor, $yytokenvalue);
2413 $yymajor = self
::YYNOCODE
;
2415 while ($this->yyidx
>= 0 && $yymx != self
::YYERRORSYMBOL
&& ($yyact = $this->yy_find_shift_action(self
::YYERRORSYMBOL
)) >= self
::YYNSTATE
) {
2416 $this->yy_pop_parser_stack();
2418 if ($this->yyidx
< 0 ||
$yymajor == 0) {
2419 $this->yy_destructor($yymajor, $yytokenvalue);
2420 $this->yy_parse_failed();
2421 $yymajor = self
::YYNOCODE
;
2422 } elseif ($yymx != self
::YYERRORSYMBOL
) {
2424 $this->yy_shift($yyact, self
::YYERRORSYMBOL
, $u2);
2427 $this->yyerrcnt
= 3;
2430 if ($this->yyerrcnt
<= 0) {
2431 $this->yy_syntax_error($yymajor, $yytokenvalue);
2433 $this->yyerrcnt
= 3;
2434 $this->yy_destructor($yymajor, $yytokenvalue);
2435 if ($yyendofinput) {
2436 $this->yy_parse_failed();
2438 $yymajor = self
::YYNOCODE
;
2442 $yymajor = self
::YYNOCODE
;
2444 } while ($yymajor != self
::YYNOCODE
&& $this->yyidx
>= 0);