1<?php 2 3class TP_yyToken implements ArrayAccess 4{ 5 public $string = ''; 6 7 public $metadata = array(); 8 9 public function __construct($s, $m = array()) 10 { 11 if ($s instanceof TP_yyToken) { 12 $this->string = $s->string; 13 $this->metadata = $s->metadata; 14 } else { 15 $this->string = (string) $s; 16 if ($m instanceof TP_yyToken) { 17 $this->metadata = $m->metadata; 18 } elseif (is_array($m)) { 19 $this->metadata = $m; 20 } 21 } 22 } 23 24 public function __toString() 25 { 26 return $this->string; 27 } 28 29 public function offsetExists($offset) 30 { 31 return isset($this->metadata[ $offset ]); 32 } 33 34 public function offsetGet($offset) 35 { 36 return $this->metadata[ $offset ]; 37 } 38 39 public function offsetSet($offset, $value) 40 { 41 if ($offset === null) { 42 if (isset($value[ 0 ])) { 43 $x = ($value instanceof TP_yyToken) ? $value->metadata : $value; 44 $this->metadata = array_merge($this->metadata, $x); 45 46 return; 47 } 48 $offset = count($this->metadata); 49 } 50 if ($value === null) { 51 return; 52 } 53 if ($value instanceof TP_yyToken) { 54 if ($value->metadata) { 55 $this->metadata[ $offset ] = $value->metadata; 56 } 57 } elseif ($value) { 58 $this->metadata[ $offset ] = $value; 59 } 60 } 61 62 public function offsetUnset($offset) 63 { 64 unset($this->metadata[ $offset ]); 65 } 66} 67 68class TP_yyStackEntry 69{ 70 public $stateno; /* The state-number */ 71 public $major; /* The major token value. This is the code 72 ** number for the token at this stack level */ 73 public $minor; /* The user-supplied minor token value. This 74 ** is the value of the token */ 75} 76 77; 78 79#line 11 "../smarty/lexer/smarty_internal_templateparser.y" 80 81/** 82 * Smarty Template Parser Class 83 * 84 * This is the template parser. 85 * It is generated from the smarty_internal_templateparser.y file 86 * 87 * @author Uwe Tews <uwe.tews@googlemail.com> 88 */ 89class Smarty_Internal_Templateparser 90{ 91 #line 23 "../smarty/lexer/smarty_internal_templateparser.y" 92 93 const Err1 = "Security error: Call to private object member not allowed"; 94 95 const Err2 = "Security error: Call to dynamic object member not allowed"; 96 97 const Err3 = "PHP in template not allowed. Use SmartyBC to enable it"; 98 99 /** 100 * result status 101 * 102 * @var bool 103 */ 104 public $successful = true; 105 106 /** 107 * return value 108 * 109 * @var mixed 110 */ 111 public $retvalue = 0; 112 113 /** 114 * @var 115 */ 116 public $yymajor; 117 118 /** 119 * last index of array variable 120 * 121 * @var mixed 122 */ 123 public $last_index; 124 125 /** 126 * last variable name 127 * 128 * @var string 129 */ 130 public $last_variable; 131 132 /** 133 * root parse tree buffer 134 * 135 * @var Smarty_Internal_ParseTree 136 */ 137 public $root_buffer; 138 139 /** 140 * current parse tree object 141 * 142 * @var Smarty_Internal_ParseTree 143 */ 144 public $current_buffer; 145 146 /** 147 * lexer object 148 * 149 * @var Smarty_Internal_Templatelexer 150 */ 151 public $lex; 152 153 /** 154 * internal error flag 155 * 156 * @var bool 157 */ 158 private $internalError = false; 159 160 /** 161 * {strip} status 162 * 163 * @var bool 164 */ 165 public $strip = false; 166 167 /** 168 * compiler object 169 * 170 * @var Smarty_Internal_TemplateCompilerBase 171 */ 172 public $compiler = null; 173 174 /** 175 * smarty object 176 * 177 * @var Smarty 178 */ 179 public $smarty = null; 180 181 /** 182 * template object 183 * 184 * @var Smarty_Internal_Template 185 */ 186 public $template = null; 187 188 /** 189 * block nesting level 190 * 191 * @var int 192 */ 193 public $block_nesting_level = 0; 194 195 /** 196 * security object 197 * 198 * @var Smarty_Security 199 */ 200 public $security = null; 201 202 /** 203 * template prefix array 204 * 205 * @var \Smarty_Internal_ParseTree[] 206 */ 207 public $template_prefix = array(); 208 209 /** 210 * security object 211 * 212 * @var \Smarty_Internal_ParseTree[] 213 */ 214 public $template_postfix = array(); 215 216 /** 217 * constructor 218 * 219 * @param Smarty_Internal_Templatelexer $lex 220 * @param Smarty_Internal_TemplateCompilerBase $compiler 221 */ 222 function __construct(Smarty_Internal_Templatelexer $lex, Smarty_Internal_TemplateCompilerBase $compiler) 223 { 224 $this->lex = $lex; 225 $this->compiler = $compiler; 226 $this->template = $this->compiler->template; 227 $this->smarty = $this->template->smarty; 228 $this->security = isset($this->smarty->security_policy) ? $this->smarty->security_policy : false; 229 $this->current_buffer = $this->root_buffer = new Smarty_Internal_ParseTree_Template(); 230 } 231 232 /** 233 * insert PHP code in current buffer 234 * 235 * @param string $code 236 */ 237 public function insertPhpCode($code) 238 { 239 $this->current_buffer->append_subtree($this, new Smarty_Internal_ParseTree_Tag($this, $code)); 240 } 241 242 /** 243 * merge PHP code with prefix code and return parse tree tag object 244 * 245 * @param string $code 246 * 247 * @return Smarty_Internal_ParseTree_Tag 248 */ 249 public function mergePrefixCode($code) 250 { 251 $tmp = ''; 252 foreach ($this->compiler->prefix_code as $preCode) { 253 $tmp .= $preCode; 254 } 255 $this->compiler->prefix_code = array(); 256 $tmp .= $code; 257 return new Smarty_Internal_ParseTree_Tag($this, $this->compiler->processNocacheCode($tmp, true)); 258 } 259 260 const TP_VERT = 1; 261 262 const TP_COLON = 2; 263 264 const TP_PHP = 3; 265 266 const TP_TEXT = 4; 267 268 const TP_STRIPON = 5; 269 270 const TP_STRIPOFF = 6; 271 272 const TP_LITERALSTART = 7; 273 274 const TP_LITERALEND = 8; 275 276 const TP_LITERAL = 9; 277 278 const TP_RDEL = 10; 279 280 const TP_SIMPELOUTPUT = 11; 281 282 const TP_LDEL = 12; 283 284 const TP_DOLLARID = 13; 285 286 const TP_EQUAL = 14; 287 288 const TP_SIMPLETAG = 15; 289 290 const TP_ID = 16; 291 292 const TP_PTR = 17; 293 294 const TP_LDELMAKENOCACHE = 18; 295 296 const TP_LDELIF = 19; 297 298 const TP_LDELFOR = 20; 299 300 const TP_SEMICOLON = 21; 301 302 const TP_INCDEC = 22; 303 304 const TP_TO = 23; 305 306 const TP_STEP = 24; 307 308 const TP_LDELFOREACH = 25; 309 310 const TP_SPACE = 26; 311 312 const TP_AS = 27; 313 314 const TP_APTR = 28; 315 316 const TP_LDELSETFILTER = 29; 317 318 const TP_SMARTYBLOCKCHILDPARENT = 30; 319 320 const TP_CLOSETAG = 31; 321 322 const TP_LDELSLASH = 32; 323 324 const TP_ATTR = 33; 325 326 const TP_INTEGER = 34; 327 328 const TP_COMMA = 35; 329 330 const TP_OPENP = 36; 331 332 const TP_CLOSEP = 37; 333 334 const TP_MATH = 38; 335 336 const TP_UNIMATH = 39; 337 338 const TP_ISIN = 40; 339 340 const TP_QMARK = 41; 341 342 const TP_NOT = 42; 343 344 const TP_TYPECAST = 43; 345 346 const TP_HEX = 44; 347 348 const TP_DOT = 45; 349 350 const TP_INSTANCEOF = 46; 351 352 const TP_SINGLEQUOTESTRING = 47; 353 354 const TP_DOUBLECOLON = 48; 355 356 const TP_NAMESPACE = 49; 357 358 const TP_AT = 50; 359 360 const TP_HATCH = 51; 361 362 const TP_OPENB = 52; 363 364 const TP_CLOSEB = 53; 365 366 const TP_DOLLAR = 54; 367 368 const TP_LOGOP = 55; 369 370 const TP_SLOGOP = 56; 371 372 const TP_TLOGOP = 57; 373 374 const TP_SINGLECOND = 58; 375 376 const TP_QUOTE = 59; 377 378 const TP_BACKTICK = 60; 379 380 const YY_NO_ACTION = 532; 381 382 const YY_ACCEPT_ACTION = 531; 383 384 const YY_ERROR_ACTION = 530; 385 386 const YY_SZ_ACTTAB = 2114; 387 388 static public $yy_action = array(268, 8, 132, 210, 245, 197, 183, 228, 7, 84, 176, 264, 275, 302, 112, 44, 36, 278, 389 233, 136, 305, 221, 281, 203, 237, 26, 234, 202, 41, 104, 189, 39, 42, 256, 213, 390 216, 224, 78, 207, 129, 82, 1, 316, 297, 102, 268, 8, 133, 79, 245, 80, 302, 228, 391 7, 84, 330, 299, 82, 272, 112, 297, 273, 325, 233, 285, 305, 221, 214, 231, 34, 26, 392 3, 101, 41, 230, 78, 39, 42, 256, 213, 35, 239, 314, 207, 300, 82, 1, 13, 297, 333, 393 268, 8, 135, 79, 245, 201, 302, 228, 7, 84, 35, 85, 322, 109, 112, 29, 196, 13, 394 233, 269, 305, 221, 237, 231, 249, 26, 136, 104, 41, 219, 78, 39, 42, 256, 213, 395 459, 239, 267, 207, 355, 82, 1, 459, 297, 446, 268, 8, 135, 79, 245, 193, 302, 228, 396 7, 84, 35, 446, 297, 28, 112, 247, 263, 13, 233, 82, 305, 221, 297, 231, 309, 26, 397 185, 292, 41, 298, 78, 39, 42, 256, 213, 27, 239, 237, 207, 232, 82, 1, 104, 297, 398 459, 268, 8, 135, 79, 245, 195, 459, 228, 7, 84, 446, 297, 283, 11, 112, 25, 188, 399 282, 233, 236, 305, 221, 446, 204, 294, 26, 32, 318, 41, 90, 210, 39, 42, 256, 213, 400 174, 239, 137, 207, 402, 82, 1, 210, 297, 9, 268, 8, 136, 79, 245, 201, 223, 228, 401 7, 84, 402, 142, 235, 225, 112, 22, 227, 402, 233, 166, 305, 221, 35, 231, 27, 33, 402 210, 101, 41, 13, 210, 39, 42, 256, 213, 361, 239, 302, 207, 399, 82, 1, 210, 297, 403 101, 268, 8, 135, 79, 245, 201, 402, 228, 7, 84, 399, 235, 297, 109, 112, 447, 78, 404 399, 233, 319, 305, 221, 402, 194, 172, 26, 279, 447, 41, 402, 307, 39, 42, 256, 405 213, 182, 239, 16, 207, 296, 82, 1, 210, 297, 101, 268, 8, 131, 79, 245, 201, 357, 406 228, 7, 84, 283, 11, 475, 475, 112, 282, 303, 475, 233, 24, 305, 221, 35, 231, 175, 407 4, 279, 271, 41, 13, 109, 39, 42, 256, 213, 181, 239, 178, 207, 12, 82, 1, 16, 297, 408 274, 268, 8, 135, 79, 245, 200, 475, 228, 7, 84, 475, 475, 283, 11, 112, 475, 189, 409 282, 233, 210, 305, 221, 20, 231, 38, 26, 179, 292, 41, 148, 446, 39, 42, 256, 213, 410 229, 239, 180, 207, 332, 82, 1, 446, 297, 190, 268, 8, 134, 79, 245, 201, 215, 228, 411 7, 84, 168, 16, 188, 243, 112, 104, 189, 303, 233, 140, 305, 221, 325, 231, 255, 412 26, 177, 214, 41, 218, 312, 39, 42, 256, 213, 277, 239, 128, 207, 101, 82, 1, 92, 413 297, 2, 268, 8, 136, 79, 245, 201, 23, 228, 7, 84, 210, 108, 251, 184, 112, 297, 414 304, 289, 233, 367, 305, 221, 137, 231, 315, 33, 220, 5, 41, 9, 5, 39, 42, 256, 415 213, 35, 239, 189, 207, 113, 82, 311, 13, 297, 106, 446, 214, 212, 79, 116, 72, 416 114, 258, 260, 261, 222, 102, 446, 214, 257, 280, 187, 308, 334, 270, 206, 242, 417 152, 299, 210, 128, 83, 262, 250, 252, 253, 176, 332, 211, 329, 268, 8, 151, 143, 418 245, 189, 178, 228, 7, 84, 210, 265, 332, 332, 112, 188, 21, 311, 233, 153, 305, 419 221, 214, 212, 17, 122, 67, 114, 164, 141, 189, 13, 102, 149, 266, 257, 280, 183, 420 332, 332, 270, 206, 242, 332, 299, 295, 44, 36, 278, 235, 311, 208, 279, 145, 169, 421 214, 212, 91, 122, 67, 114, 189, 320, 332, 167, 102, 146, 139, 257, 280, 94, 171, 422 159, 270, 206, 242, 332, 299, 210, 38, 311, 189, 332, 155, 209, 214, 212, 317, 122, 423 53, 107, 123, 232, 332, 189, 102, 291, 400, 257, 280, 6, 217, 276, 270, 206, 242, 424 311, 299, 297, 158, 313, 214, 212, 400, 122, 49, 107, 154, 117, 332, 400, 102, 30, 425 446, 257, 280, 248, 332, 173, 270, 206, 242, 279, 299, 324, 446, 186, 292, 332, 95, 426 279, 268, 10, 326, 170, 245, 88, 87, 228, 7, 84, 279, 138, 89, 279, 112, 86, 309, 427 311, 233, 115, 305, 221, 214, 212, 254, 122, 67, 114, 105, 303, 163, 165, 102, 303, 428 93, 257, 280, 303, 303, 303, 270, 206, 242, 303, 299, 303, 303, 303, 286, 19, 311, 429 205, 303, 303, 303, 214, 212, 303, 116, 72, 114, 303, 43, 40, 37, 102, 303, 303, 430 257, 280, 303, 303, 303, 270, 206, 242, 303, 299, 324, 327, 323, 288, 287, 303, 431 303, 268, 10, 326, 331, 245, 303, 303, 228, 7, 84, 303, 303, 303, 303, 112, 303, 432 303, 311, 233, 303, 305, 221, 214, 212, 303, 122, 70, 114, 303, 303, 303, 303, 102, 433 303, 303, 257, 280, 303, 283, 11, 270, 206, 242, 282, 299, 303, 311, 303, 290, 19, 434 303, 214, 212, 35, 122, 54, 114, 303, 303, 303, 13, 102, 162, 303, 257, 280, 183, 435 303, 303, 270, 206, 242, 332, 299, 311, 44, 36, 278, 303, 214, 212, 303, 122, 68, 436 114, 303, 303, 303, 303, 102, 189, 303, 257, 280, 303, 303, 303, 270, 206, 242, 437 303, 299, 311, 303, 303, 303, 303, 214, 212, 303, 100, 73, 114, 303, 303, 303, 303, 438 102, 303, 303, 257, 280, 303, 303, 303, 270, 206, 242, 303, 299, 311, 303, 303, 439 303, 303, 214, 212, 303, 122, 77, 114, 303, 303, 303, 303, 102, 147, 303, 257, 280, 440 183, 303, 303, 270, 206, 242, 332, 299, 311, 44, 36, 278, 303, 214, 212, 303, 122, 441 76, 114, 303, 303, 303, 303, 102, 189, 303, 257, 280, 303, 303, 303, 270, 206, 242, 442 303, 299, 311, 303, 303, 303, 303, 214, 212, 303, 99, 71, 114, 303, 303, 303, 303, 443 102, 161, 303, 257, 280, 183, 303, 303, 270, 206, 242, 332, 299, 311, 44, 36, 278, 444 303, 214, 212, 303, 122, 47, 114, 303, 303, 303, 303, 102, 189, 303, 257, 280, 303, 445 303, 303, 270, 206, 242, 303, 299, 311, 303, 303, 303, 303, 214, 212, 303, 122, 59, 446 114, 303, 303, 303, 303, 102, 150, 303, 257, 280, 183, 303, 303, 270, 206, 242, 447 332, 299, 311, 44, 36, 278, 303, 214, 198, 303, 118, 55, 114, 303, 303, 303, 303, 448 102, 189, 303, 257, 280, 303, 303, 303, 270, 206, 242, 303, 299, 311, 303, 303, 449 303, 303, 214, 212, 303, 122, 69, 114, 303, 303, 303, 303, 102, 160, 303, 257, 280, 450 183, 303, 303, 270, 206, 242, 332, 299, 311, 44, 36, 278, 303, 214, 97, 303, 81, 451 48, 103, 303, 303, 303, 303, 102, 189, 303, 257, 280, 303, 303, 303, 270, 206, 242, 452 303, 299, 311, 303, 303, 303, 303, 214, 212, 303, 122, 57, 114, 303, 303, 303, 303, 453 102, 303, 303, 257, 280, 303, 303, 303, 270, 206, 242, 303, 299, 311, 303, 303, 454 303, 303, 214, 212, 303, 122, 65, 114, 303, 303, 303, 303, 102, 303, 303, 257, 280, 455 303, 303, 303, 270, 206, 242, 303, 299, 311, 303, 303, 303, 303, 214, 96, 303, 81, 456 46, 103, 303, 303, 303, 303, 102, 303, 303, 257, 280, 303, 303, 303, 270, 206, 242, 457 303, 299, 311, 303, 303, 303, 303, 214, 212, 303, 111, 50, 114, 303, 303, 303, 303, 458 102, 303, 303, 257, 280, 303, 303, 303, 270, 206, 242, 303, 299, 311, 303, 303, 459 303, 303, 214, 212, 303, 98, 61, 114, 303, 303, 303, 303, 102, 303, 303, 257, 280, 460 303, 303, 303, 270, 206, 242, 303, 299, 311, 303, 303, 303, 303, 214, 199, 303, 461 122, 56, 114, 303, 303, 303, 303, 102, 303, 303, 257, 280, 303, 303, 303, 270, 206, 462 242, 303, 299, 311, 303, 303, 303, 303, 214, 212, 303, 122, 51, 114, 303, 303, 303, 463 303, 102, 303, 303, 257, 280, 303, 303, 303, 270, 206, 242, 303, 299, 311, 303, 464 303, 303, 303, 214, 212, 303, 122, 58, 114, 303, 303, 303, 303, 102, 303, 303, 257, 465 280, 303, 303, 303, 270, 206, 242, 303, 299, 311, 303, 303, 303, 303, 214, 212, 466 303, 122, 74, 114, 303, 303, 303, 303, 102, 303, 303, 257, 280, 303, 303, 303, 270, 467 206, 242, 303, 299, 311, 303, 303, 303, 303, 214, 212, 303, 122, 62, 114, 303, 303, 468 303, 303, 102, 303, 303, 257, 280, 303, 303, 303, 270, 206, 242, 303, 299, 311, 469 303, 303, 303, 303, 214, 212, 303, 122, 60, 114, 303, 303, 303, 303, 102, 303, 303, 470 257, 280, 303, 303, 303, 270, 206, 242, 303, 299, 311, 303, 303, 303, 303, 214, 471 212, 303, 122, 45, 114, 303, 303, 303, 303, 102, 303, 303, 257, 280, 303, 303, 303, 472 270, 206, 242, 303, 299, 311, 303, 303, 303, 303, 214, 212, 303, 122, 64, 114, 303, 473 303, 303, 303, 102, 303, 303, 257, 280, 303, 303, 303, 270, 206, 242, 303, 299, 474 311, 303, 303, 303, 303, 214, 212, 303, 122, 75, 114, 303, 303, 303, 303, 102, 303, 475 303, 257, 280, 303, 303, 303, 270, 206, 242, 303, 299, 311, 303, 303, 303, 303, 476 214, 212, 303, 122, 63, 114, 303, 303, 303, 303, 102, 303, 303, 257, 280, 303, 303, 477 303, 270, 206, 242, 303, 299, 311, 303, 303, 303, 303, 214, 212, 303, 122, 66, 114, 478 303, 303, 303, 303, 102, 303, 303, 257, 280, 303, 412, 412, 270, 206, 242, 303, 479 299, 311, 303, 303, 303, 303, 214, 212, 303, 122, 53, 114, 303, 303, 303, 303, 102, 480 303, 303, 257, 280, 210, 303, 303, 270, 206, 242, 303, 299, 446, 301, 412, 412, 481 412, 303, 531, 52, 259, 260, 261, 222, 446, 303, 214, 303, 303, 35, 303, 412, 412, 482 412, 412, 303, 13, 303, 303, 303, 303, 43, 40, 37, 210, 303, 303, 311, 303, 303, 483 303, 303, 214, 212, 210, 130, 303, 114, 327, 323, 288, 287, 102, 303, 303, 303, 484 241, 31, 303, 35, 270, 206, 242, 303, 299, 303, 13, 303, 303, 35, 303, 43, 40, 37, 485 303, 303, 13, 303, 303, 303, 303, 43, 40, 37, 303, 303, 303, 311, 327, 323, 288, 486 287, 214, 212, 210, 124, 303, 114, 327, 323, 288, 287, 102, 192, 303, 303, 310, 487 303, 303, 303, 270, 206, 242, 311, 299, 226, 303, 303, 214, 212, 303, 120, 303, 488 114, 475, 475, 303, 28, 102, 475, 459, 43, 40, 37, 303, 303, 270, 206, 242, 303, 489 299, 303, 303, 303, 303, 303, 303, 311, 327, 323, 288, 287, 214, 212, 303, 126, 490 303, 114, 459, 303, 303, 459, 102, 475, 303, 459, 226, 303, 303, 303, 270, 206, 491 242, 303, 299, 475, 475, 226, 18, 303, 475, 459, 303, 303, 303, 303, 475, 475, 303, 492 303, 226, 475, 459, 283, 11, 303, 303, 303, 282, 475, 475, 303, 303, 303, 475, 459, 493 303, 303, 35, 459, 144, 303, 459, 303, 475, 13, 459, 303, 303, 303, 459, 303, 303, 494 459, 311, 475, 303, 459, 321, 214, 212, 303, 119, 459, 114, 303, 459, 303, 475, 495 102, 459, 303, 303, 303, 303, 303, 303, 270, 206, 242, 303, 299, 311, 210, 14, 303, 496 303, 214, 212, 303, 127, 303, 114, 303, 284, 303, 303, 102, 129, 303, 303, 303, 497 303, 102, 303, 270, 206, 242, 311, 299, 210, 303, 293, 214, 212, 299, 121, 303, 498 114, 311, 43, 40, 37, 102, 214, 212, 303, 125, 303, 114, 303, 270, 206, 242, 102, 499 299, 156, 327, 323, 288, 287, 210, 270, 206, 242, 210, 299, 43, 40, 37, 210, 303, 500 303, 303, 244, 303, 303, 303, 303, 303, 303, 110, 303, 303, 327, 323, 288, 287, 501 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 43, 40, 37, 210, 43, 40, 37, 210, 502 303, 43, 40, 37, 240, 210, 303, 303, 191, 327, 323, 288, 287, 327, 323, 288, 287, 503 303, 327, 323, 288, 287, 303, 306, 303, 303, 303, 303, 303, 303, 303, 303, 43, 40, 504 37, 303, 43, 40, 37, 210, 303, 238, 43, 40, 37, 303, 303, 303, 303, 327, 323, 288, 505 287, 327, 323, 288, 287, 15, 303, 327, 323, 288, 287, 303, 303, 303, 475, 475, 303, 506 303, 303, 475, 459, 210, 303, 246, 43, 40, 37, 210, 303, 303, 303, 303, 303, 475, 507 475, 283, 11, 303, 475, 459, 282, 327, 323, 288, 287, 303, 303, 303, 459, 303, 35, 508 459, 157, 475, 303, 459, 303, 13, 43, 40, 37, 303, 303, 303, 43, 40, 37, 459, 303, 509 303, 459, 303, 475, 328, 459, 327, 323, 288, 287, 303, 303, 327, 323, 288, 287, 510 303, 406, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 406, 303, 406, 303, 511 303, 406, 303, 303, 303, 303, 303, 303, 406, 303, 406, 303, 406, 303, 303, 303, 512 303, 303, 303, 303, 235,); 513 514 static public $yy_lookahead = array(11, 12, 13, 1, 15, 16, 76, 18, 19, 20, 7, 8, 9, 22, 25, 85, 86, 87, 29, 13, 31, 515 32, 16, 34, 75, 36, 77, 78, 39, 80, 100, 42, 43, 44, 45, 71, 47, 46, 49, 75, 51, 516 52, 53, 54, 80, 11, 12, 13, 59, 15, 16, 22, 18, 19, 20, 49, 92, 51, 66, 25, 54, 517 69, 65, 29, 30, 31, 32, 70, 34, 14, 36, 35, 17, 39, 16, 46, 42, 43, 44, 45, 26, 518 47, 53, 49, 10, 51, 52, 33, 54, 53, 11, 12, 13, 59, 15, 16, 22, 18, 19, 20, 26, 519 104, 105, 48, 25, 12, 13, 33, 29, 16, 31, 32, 75, 34, 77, 36, 13, 80, 39, 16, 520 46, 42, 43, 44, 45, 45, 47, 34, 49, 10, 51, 52, 52, 54, 36, 11, 12, 13, 59, 15, 521 16, 22, 18, 19, 20, 26, 48, 54, 14, 25, 13, 34, 33, 29, 51, 31, 32, 54, 34, 94, 522 36, 96, 97, 39, 97, 46, 42, 43, 44, 45, 14, 47, 75, 49, 77, 51, 52, 80, 54, 45, 523 11, 12, 13, 59, 15, 16, 52, 18, 19, 20, 36, 54, 11, 12, 25, 21, 100, 16, 29, 45, 524 31, 32, 48, 34, 16, 36, 14, 53, 39, 35, 1, 42, 43, 44, 45, 93, 47, 45, 49, 10, 525 51, 52, 1, 54, 52, 11, 12, 13, 59, 15, 16, 50, 18, 19, 20, 26, 27, 45, 50, 25, 526 12, 13, 33, 29, 16, 31, 32, 26, 34, 14, 36, 1, 17, 39, 33, 1, 42, 43, 44, 45, 527 10, 47, 22, 49, 10, 51, 52, 1, 54, 17, 11, 12, 13, 59, 15, 16, 10, 18, 19, 20, 528 26, 45, 54, 48, 25, 36, 46, 33, 29, 53, 31, 32, 26, 34, 93, 36, 95, 48, 39, 33, 529 60, 42, 43, 44, 45, 81, 47, 35, 49, 37, 51, 52, 1, 54, 17, 11, 12, 13, 59, 15, 530 16, 10, 18, 19, 20, 11, 12, 11, 12, 25, 16, 101, 16, 29, 14, 31, 32, 26, 34, 93, 531 36, 95, 22, 39, 33, 48, 42, 43, 44, 45, 81, 47, 76, 49, 41, 51, 52, 35, 54, 37, 532 11, 12, 13, 59, 15, 16, 50, 18, 19, 20, 11, 12, 11, 12, 25, 16, 100, 16, 29, 1, 533 31, 32, 28, 34, 2, 36, 96, 97, 39, 72, 36, 42, 43, 44, 45, 17, 47, 76, 49, 82, 534 51, 52, 48, 54, 16, 11, 12, 13, 59, 15, 16, 50, 18, 19, 20, 75, 35, 100, 37, 25, 535 80, 100, 101, 29, 13, 31, 32, 65, 34, 37, 36, 13, 70, 39, 16, 91, 42, 43, 44, 536 45, 16, 47, 98, 49, 17, 51, 52, 36, 54, 36, 11, 12, 13, 59, 15, 16, 12, 18, 19, 537 20, 1, 48, 4, 76, 25, 54, 16, 105, 29, 10, 31, 32, 45, 34, 53, 36, 17, 36, 39, 538 52, 36, 42, 43, 44, 45, 26, 47, 100, 49, 16, 51, 65, 33, 54, 80, 36, 70, 71, 59, 539 73, 74, 75, 64, 65, 66, 67, 80, 48, 70, 83, 84, 76, 98, 91, 88, 89, 90, 72, 92, 540 1, 98, 16, 3, 4, 5, 6, 7, 82, 102, 103, 11, 12, 72, 72, 15, 100, 76, 18, 19, 20, 541 1, 16, 82, 82, 25, 100, 28, 65, 29, 51, 31, 32, 70, 71, 26, 73, 74, 75, 72, 72, 542 100, 33, 80, 72, 10, 83, 84, 76, 82, 82, 88, 89, 90, 82, 92, 16, 85, 86, 87, 45, 543 65, 99, 95, 72, 51, 70, 71, 76, 73, 74, 75, 100, 53, 82, 93, 80, 72, 13, 83, 84, 544 76, 93, 72, 88, 89, 90, 82, 92, 1, 2, 65, 100, 82, 72, 99, 70, 71, 53, 73, 74, 545 75, 16, 77, 82, 100, 80, 16, 10, 83, 84, 36, 14, 34, 88, 89, 90, 65, 92, 54, 72, 546 13, 70, 71, 26, 73, 74, 75, 72, 77, 82, 33, 80, 23, 36, 83, 84, 82, 82, 72, 88, 547 89, 90, 95, 92, 4, 48, 96, 97, 82, 81, 95, 11, 12, 13, 93, 15, 80, 80, 18, 19, 548 20, 95, 80, 80, 95, 25, 80, 94, 65, 29, 79, 31, 32, 70, 71, 8, 73, 74, 75, 68, 549 106, 93, 93, 80, 106, 93, 83, 84, 106, 106, 106, 88, 89, 90, 106, 92, 106, 106, 550 106, 59, 60, 65, 99, 106, 106, 106, 70, 71, 106, 73, 74, 75, 106, 38, 39, 40, 551 80, 106, 106, 83, 84, 106, 106, 106, 88, 89, 90, 106, 92, 4, 55, 56, 57, 58, 552 106, 106, 11, 12, 13, 103, 15, 106, 106, 18, 19, 20, 106, 106, 106, 106, 25, 553 106, 106, 65, 29, 106, 31, 32, 70, 71, 106, 73, 74, 75, 106, 106, 106, 106, 80, 554 106, 106, 83, 84, 106, 11, 12, 88, 89, 90, 16, 92, 106, 65, 106, 59, 60, 106, 555 70, 71, 26, 73, 74, 75, 106, 106, 106, 33, 80, 72, 106, 83, 84, 76, 106, 106, 556 88, 89, 90, 82, 92, 65, 85, 86, 87, 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, 557 106, 80, 100, 106, 83, 84, 106, 106, 106, 88, 89, 90, 106, 92, 65, 106, 106, 558 106, 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, 106, 80, 106, 106, 83, 84, 559 106, 106, 106, 88, 89, 90, 106, 92, 65, 106, 106, 106, 106, 70, 71, 106, 73, 74, 560 75, 106, 106, 106, 106, 80, 72, 106, 83, 84, 76, 106, 106, 88, 89, 90, 82, 92, 561 65, 85, 86, 87, 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, 106, 80, 100, 106, 562 83, 84, 106, 106, 106, 88, 89, 90, 106, 92, 65, 106, 106, 106, 106, 70, 71, 106, 563 73, 74, 75, 106, 106, 106, 106, 80, 72, 106, 83, 84, 76, 106, 106, 88, 89, 90, 564 82, 92, 65, 85, 86, 87, 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, 106, 80, 565 100, 106, 83, 84, 106, 106, 106, 88, 89, 90, 106, 92, 65, 106, 106, 106, 106, 566 70, 71, 106, 73, 74, 75, 106, 106, 106, 106, 80, 72, 106, 83, 84, 76, 106, 106, 567 88, 89, 90, 82, 92, 65, 85, 86, 87, 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, 568 106, 80, 100, 106, 83, 84, 106, 106, 106, 88, 89, 90, 106, 92, 65, 106, 106, 569 106, 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, 106, 80, 72, 106, 83, 84, 76, 570 106, 106, 88, 89, 90, 82, 92, 65, 85, 86, 87, 106, 70, 71, 106, 73, 74, 75, 106, 571 106, 106, 106, 80, 100, 106, 83, 84, 106, 106, 106, 88, 89, 90, 106, 92, 65, 572 106, 106, 106, 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, 106, 80, 106, 106, 573 83, 84, 106, 106, 106, 88, 89, 90, 106, 92, 65, 106, 106, 106, 106, 70, 71, 106, 574 73, 74, 75, 106, 106, 106, 106, 80, 106, 106, 83, 84, 106, 106, 106, 88, 89, 90, 575 106, 92, 65, 106, 106, 106, 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, 106, 576 80, 106, 106, 83, 84, 106, 106, 106, 88, 89, 90, 106, 92, 65, 106, 106, 106, 577 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, 106, 80, 106, 106, 83, 84, 106, 578 106, 106, 88, 89, 90, 106, 92, 65, 106, 106, 106, 106, 70, 71, 106, 73, 74, 75, 579 106, 106, 106, 106, 80, 106, 106, 83, 84, 106, 106, 106, 88, 89, 90, 106, 92, 580 65, 106, 106, 106, 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, 106, 80, 106, 581 106, 83, 84, 106, 106, 106, 88, 89, 90, 106, 92, 65, 106, 106, 106, 106, 70, 71, 582 106, 73, 74, 75, 106, 106, 106, 106, 80, 106, 106, 83, 84, 106, 106, 106, 88, 583 89, 90, 106, 92, 65, 106, 106, 106, 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, 584 106, 80, 106, 106, 83, 84, 106, 106, 106, 88, 89, 90, 106, 92, 65, 106, 106, 585 106, 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, 106, 80, 106, 106, 83, 84, 586 106, 106, 106, 88, 89, 90, 106, 92, 65, 106, 106, 106, 106, 70, 71, 106, 73, 74, 587 75, 106, 106, 106, 106, 80, 106, 106, 83, 84, 106, 106, 106, 88, 89, 90, 106, 588 92, 65, 106, 106, 106, 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, 106, 80, 589 106, 106, 83, 84, 106, 106, 106, 88, 89, 90, 106, 92, 65, 106, 106, 106, 106, 590 70, 71, 106, 73, 74, 75, 106, 106, 106, 106, 80, 106, 106, 83, 84, 106, 106, 591 106, 88, 89, 90, 106, 92, 65, 106, 106, 106, 106, 70, 71, 106, 73, 74, 75, 106, 592 106, 106, 106, 80, 106, 106, 83, 84, 106, 106, 106, 88, 89, 90, 106, 92, 65, 593 106, 106, 106, 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, 106, 80, 106, 106, 594 83, 84, 106, 106, 106, 88, 89, 90, 106, 92, 65, 106, 106, 106, 106, 70, 71, 106, 595 73, 74, 75, 106, 106, 106, 106, 80, 106, 106, 83, 84, 106, 106, 106, 88, 89, 90, 596 106, 92, 65, 106, 106, 106, 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, 106, 597 80, 106, 106, 83, 84, 106, 1, 2, 88, 89, 90, 106, 92, 65, 106, 106, 106, 106, 598 70, 71, 106, 73, 74, 75, 106, 106, 106, 106, 80, 106, 106, 83, 84, 1, 106, 106, 599 88, 89, 90, 106, 92, 36, 10, 38, 39, 40, 106, 62, 63, 64, 65, 66, 67, 48, 106, 600 70, 106, 106, 26, 106, 55, 56, 57, 58, 106, 33, 106, 106, 106, 106, 38, 39, 40, 601 1, 106, 106, 65, 106, 106, 106, 106, 70, 71, 1, 73, 106, 75, 55, 56, 57, 58, 80, 602 106, 106, 106, 84, 24, 106, 26, 88, 89, 90, 106, 92, 106, 33, 106, 106, 26, 106, 603 38, 39, 40, 106, 106, 33, 106, 106, 106, 106, 38, 39, 40, 106, 106, 106, 65, 55, 604 56, 57, 58, 70, 71, 1, 73, 106, 75, 55, 56, 57, 58, 80, 10, 106, 106, 84, 106, 605 106, 106, 88, 89, 90, 65, 92, 2, 106, 106, 70, 71, 106, 73, 106, 75, 11, 12, 606 106, 14, 80, 16, 17, 38, 39, 40, 106, 106, 88, 89, 90, 106, 92, 106, 106, 106, 607 106, 106, 106, 65, 55, 56, 57, 58, 70, 71, 106, 73, 106, 75, 45, 106, 106, 48, 608 80, 50, 106, 52, 2, 106, 106, 106, 88, 89, 90, 106, 92, 11, 12, 2, 14, 106, 16, 609 17, 106, 106, 106, 106, 11, 12, 106, 106, 2, 16, 17, 11, 12, 106, 106, 106, 16, 610 11, 12, 106, 106, 106, 16, 17, 106, 106, 26, 45, 28, 106, 48, 106, 50, 33, 52, 611 106, 106, 106, 45, 106, 106, 48, 65, 50, 106, 52, 53, 70, 71, 106, 73, 45, 75, 612 106, 48, 106, 50, 80, 52, 106, 106, 106, 106, 106, 106, 88, 89, 90, 106, 92, 65, 613 1, 2, 106, 106, 70, 71, 106, 73, 106, 75, 106, 71, 106, 106, 80, 75, 106, 106, 614 106, 106, 80, 106, 88, 89, 90, 65, 92, 1, 106, 89, 70, 71, 92, 73, 106, 75, 65, 615 38, 39, 40, 80, 70, 71, 106, 73, 106, 75, 106, 88, 89, 90, 80, 92, 27, 55, 56, 616 57, 58, 1, 88, 89, 90, 1, 92, 38, 39, 40, 1, 106, 106, 106, 10, 106, 106, 106, 617 106, 106, 106, 21, 106, 106, 55, 56, 57, 58, 106, 106, 106, 106, 106, 106, 106, 618 106, 106, 106, 38, 39, 40, 1, 38, 39, 40, 1, 106, 38, 39, 40, 10, 1, 106, 106, 619 10, 55, 56, 57, 58, 55, 56, 57, 58, 106, 55, 56, 57, 58, 106, 60, 106, 106, 106, 620 106, 106, 106, 106, 106, 38, 39, 40, 106, 38, 39, 40, 1, 106, 37, 38, 39, 40, 621 106, 106, 106, 106, 55, 56, 57, 58, 55, 56, 57, 58, 2, 106, 55, 56, 57, 58, 106, 622 106, 106, 11, 12, 106, 106, 106, 16, 17, 1, 106, 37, 38, 39, 40, 1, 106, 106, 623 106, 106, 106, 11, 12, 11, 12, 106, 16, 17, 16, 55, 56, 57, 58, 106, 106, 106, 624 45, 106, 26, 48, 28, 50, 106, 52, 106, 33, 38, 39, 40, 106, 106, 106, 38, 39, 625 40, 45, 106, 106, 48, 106, 50, 53, 52, 55, 56, 57, 58, 106, 106, 55, 56, 57, 58, 626 106, 10, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 21, 106, 23, 106, 627 106, 26, 106, 106, 106, 106, 106, 106, 33, 106, 35, 106, 37, 106, 106, 106, 106, 628 106, 106, 106, 45,); 629 630 const YY_SHIFT_USE_DFLT = - 12; 631 632 const YY_SHIFT_MAX = 238; 633 634 static public $yy_shift_ofst = array(519, 349, 79, 349, 304, 79, 79, 304, 34, - 11, 34, 79, 394, 79, 79, 124, 79, 635 169, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 259, 79, 79, 79, 79, 79, 79, 169, 636 79, 214, 214, 439, 439, 439, 439, 439, 439, 1617, 1577, 1627, 1627, 1627, 1627, 637 1627, 519, 1944, 1978, 2012, 1903, 1938, 1677, 1836, 1934, 1863, 1898, 1894, 638 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 695, 639 695, 6, 660, 459, 311, 103, 221, 411, 745, 1766, 2016, 783, 783, 411, 221, 411, 640 427, 221, 607, 74, 119, 209, 266, 254, 228, 181, 55, 314, 3, 314, 235, 418, 641 418, 584, 250, 528, 378, 297, 54, 518, 54, 539, 2, 2, 2, 2, 2, 2, 2, 2, 2, 252, 642 252, - 12, 1697, 1759, 1748, 1995, 1772, 2014, 93, 361, 359, 134, 54, 137, 54, 643 137, 54, 54, 54, 54, 54, 54, 54, 54, 80, 54, 54, 137, 137, 54, 54, 54, 54, 54, 644 172, 54, 172, 444, 172, 320, 80, 172, 172, 172, 54, 172, 172, 687, 594, 2, 252, 645 2, 382, 382, 2, 2, 252, 252, 2, - 12, - 12, - 12, - 12, - 12, 1550, 2068, 617, 646 316, 154, 29, 240, 354, 98, 174, 236, 192, 272, 413, 249, 322, 381, 188, 36, 647 - 9, 598, 554, 424, 533, 525, 441, 498, 505, 473, 458, 450, 421, 559, 610, 594, 648 627, 605, 564, 534, 392, 388, 629, 117, 58, 156, 313,); 649 650 const YY_REDUCE_USE_DFLT = - 71; 651 652 const YY_REDUCE_MAX = 192; 653 654 static public $yy_reduce_ofst = array(1530, 426, 482, 656, 545, 515, 623, 571, 1017, 961, 1101, 1325, 933, 793, 849, 655 821, 1465, 1157, 1129, 1185, 1073, 989, 1045, 1241, 1381, 1437, 1493, 1409, 656 1269, 1297, 1353, 1213, 708, 737, 905, 877, 765, 1606, 1556, 1632, 1808, 1797, 657 1771, 1666, 1743, 886, 491, 830, 491, 746, 942, 998, 438, - 70, - 70, - 70, 658 - 70, - 70, - 70, - 70, - 70, - 70, - 70, - 70, - 70, - 70, - 70, - 70, - 70, 659 - 70, - 70, - 70, - 70, - 70, - 70, - 70, - 70, - 70, 1777, - 3, 524, 460, 660 - 36, 511, - 51, 362, 487, 575, 567, 586, 37, 445, 97, 65, 317, 321, 541, 541, 661 276, 276, 276, 414, 246, 290, 246, - 8, 201, 290, 344, 422, 340, 276, 461, 662 387, 290, 486, 276, 530, 276, 276, 276, 276, 276, 435, 276, 276, 276, 276, 663 570, 290, 276, 122, 122, 122, 122, 122, 122, 602, 589, 122, 122, 574, 606, 664 574, 603, 574, 574, 574, 574, 574, 574, 574, 574, 581, 574, 574, 597, 596, 665 574, 574, 574, 574, 574, 593, 574, 593, 609, 593, 611, 608, 593, 593, 593, 666 574, 593, 593, 631, 612, 96, 67, 96, 230, 230, 96, 96, 67, 67, 96, 269, 224, 667 588, 508, 501,); 668 669 static public $yyExpectedTokens = array(array(3, 4, 5, 6, 7, 11, 12, 15, 18, 19, 20, 25, 29, 31, 32,), 670 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 671 44, 45, 47, 49, 51, 52, 54, 59,), 672 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 673 44, 45, 47, 49, 51, 52, 54, 59,), 674 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 675 44, 45, 47, 49, 51, 52, 54, 59,), 676 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 677 44, 45, 47, 49, 51, 52, 54, 59,), 678 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 679 44, 45, 47, 49, 51, 52, 54, 59,), 680 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 681 44, 45, 47, 49, 51, 52, 54, 59,), 682 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 683 44, 45, 47, 49, 51, 52, 54, 59,), 684 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 30, 31, 32, 34, 36, 39, 42, 685 43, 44, 45, 47, 49, 51, 52, 54, 59,), 686 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 687 44, 45, 47, 49, 51, 52, 53, 54, 59,), 688 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 30, 31, 32, 34, 36, 39, 42, 689 43, 44, 45, 47, 49, 51, 52, 54, 59,), 690 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 691 44, 45, 47, 49, 51, 52, 54, 59,), 692 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 693 44, 45, 47, 49, 51, 52, 54, 59,), 694 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 695 44, 45, 47, 49, 51, 52, 54, 59,), 696 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 697 44, 45, 47, 49, 51, 52, 54, 59,), 698 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 699 44, 45, 47, 49, 51, 52, 54, 59,), 700 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 701 44, 45, 47, 49, 51, 52, 54, 59,), 702 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 703 44, 45, 47, 49, 51, 52, 54, 59,), 704 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 705 44, 45, 47, 49, 51, 52, 54, 59,), 706 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 707 44, 45, 47, 49, 51, 52, 54, 59,), 708 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 709 44, 45, 47, 49, 51, 52, 54, 59,), 710 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 711 44, 45, 47, 49, 51, 52, 54, 59,), 712 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 713 44, 45, 47, 49, 51, 52, 54, 59,), 714 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 715 44, 45, 47, 49, 51, 52, 54, 59,), 716 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 717 44, 45, 47, 49, 51, 52, 54, 59,), 718 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 719 44, 45, 47, 49, 51, 52, 54, 59,), 720 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 721 44, 45, 47, 49, 51, 52, 54, 59,), 722 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 723 44, 45, 47, 49, 51, 52, 54, 59,), 724 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 725 44, 45, 47, 49, 51, 52, 54, 59,), 726 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 727 44, 45, 47, 49, 51, 52, 54, 59,), 728 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 729 44, 45, 47, 49, 51, 52, 54, 59,), 730 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 731 44, 45, 47, 49, 51, 52, 54, 59,), 732 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 733 44, 45, 47, 49, 51, 52, 54, 59,), 734 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 735 44, 45, 47, 49, 51, 52, 54, 59,), 736 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 737 44, 45, 47, 49, 51, 52, 54, 59,), 738 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 739 44, 45, 47, 49, 51, 52, 54, 59,), 740 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 741 44, 45, 47, 49, 51, 52, 54, 59,), 742 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 743 44, 45, 47, 49, 51, 52, 54, 59,), 744 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 745 44, 45, 47, 49, 51, 52, 54, 59,), 746 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 747 44, 45, 47, 49, 51, 54, 59,), 748 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 749 44, 45, 47, 49, 51, 54, 59,), 750 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 751 44, 45, 47, 49, 51, 54, 59,), 752 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 753 44, 45, 47, 49, 51, 54, 59,), 754 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 755 44, 45, 47, 49, 51, 54, 59,), 756 array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, 757 44, 45, 47, 49, 51, 54, 59,), 758 array(1, 24, 26, 33, 38, 39, 40, 55, 56, 57, 58,), 759 array(1, 10, 26, 33, 38, 39, 40, 55, 56, 57, 58,), 760 array(1, 26, 33, 38, 39, 40, 55, 56, 57, 58,), 761 array(1, 26, 33, 38, 39, 40, 55, 56, 57, 58,), 762 array(1, 26, 33, 38, 39, 40, 55, 56, 57, 58,), 763 array(1, 26, 33, 38, 39, 40, 55, 56, 57, 58,), 764 array(1, 26, 33, 38, 39, 40, 55, 56, 57, 58,), 765 array(3, 4, 5, 6, 7, 11, 12, 15, 18, 19, 20, 25, 29, 31, 32,), 766 array(1, 37, 38, 39, 40, 55, 56, 57, 58,), 767 array(1, 37, 38, 39, 40, 55, 56, 57, 58,), 768 array(1, 38, 39, 40, 53, 55, 56, 57, 58,), 769 array(1, 38, 39, 40, 55, 56, 57, 58, 60,), 770 array(1, 10, 38, 39, 40, 55, 56, 57, 58,), 771 array(1, 10, 38, 39, 40, 55, 56, 57, 58,), 772 array(1, 2, 38, 39, 40, 55, 56, 57, 58,), 773 array(1, 10, 38, 39, 40, 55, 56, 57, 58,), 774 array(1, 27, 38, 39, 40, 55, 56, 57, 58,), 775 array(1, 10, 38, 39, 40, 55, 56, 57, 58,), 776 array(1, 21, 38, 39, 40, 55, 56, 57, 58,), 777 array(1, 38, 39, 40, 55, 56, 57, 58,), 778 array(1, 38, 39, 40, 55, 56, 57, 58,), 779 array(1, 38, 39, 40, 55, 56, 57, 58,), 780 array(1, 38, 39, 40, 55, 56, 57, 58,), 781 array(1, 38, 39, 40, 55, 56, 57, 58,), 782 array(1, 38, 39, 40, 55, 56, 57, 58,), 783 array(1, 38, 39, 40, 55, 56, 57, 58,), 784 array(1, 38, 39, 40, 55, 56, 57, 58,), 785 array(1, 38, 39, 40, 55, 56, 57, 58,), 786 array(1, 38, 39, 40, 55, 56, 57, 58,), 787 array(1, 38, 39, 40, 55, 56, 57, 58,), 788 array(1, 38, 39, 40, 55, 56, 57, 58,), array(38, 39, 40, 55, 56, 57, 58,), 789 array(38, 39, 40, 55, 56, 57, 58,), array(13, 16, 49, 51, 54,), 790 array(4, 11, 12, 13, 15, 18, 19, 20, 25, 29, 31, 32, 59, 60,), 791 array(1, 10, 17, 26, 33, 36, 48,), array(1, 10, 26, 33,), 792 array(13, 16, 51, 54,), array(1, 26, 33,), array(13, 36, 54,), 793 array(4, 11, 12, 13, 15, 18, 19, 20, 25, 29, 31, 32, 59, 60,), 794 array(11, 12, 16, 26, 28, 33,), array(11, 12, 16, 26, 28, 33,), 795 array(11, 12, 16, 26, 33,), array(11, 12, 16, 26, 33,), array(13, 36, 54,), 796 array(1, 26, 33,), array(13, 36, 54,), array(17, 45, 52,), 797 array(1, 26, 33,), array(1, 2,), array(10, 22, 26, 33, 46,), 798 array(10, 22, 26, 33, 46,), array(1, 10, 26, 27, 33,), 799 array(1, 10, 26, 33,), array(1, 10, 26, 33,), array(12, 13, 16, 54,), 800 array(11, 12, 16, 50,), array(14, 17, 48,), array(11, 12, 16,), 801 array(7, 8, 9,), array(11, 12, 16,), array(14, 17, 48,), array(13, 16,), 802 array(13, 16,), array(13, 54,), array(1, 10,), array(26, 33,), 803 array(1, 17,), array(17, 48,), array(26, 33,), array(1, 28,), 804 array(26, 33,), array(1, 53,), array(1,), array(1,), array(1,), array(1,), 805 array(1,), array(1,), array(1,), array(1,), array(1,), array(17,), 806 array(17,), array(), array(2, 11, 12, 14, 16, 17, 45, 48, 50, 52,), 807 array(2, 11, 12, 16, 17, 45, 48, 50, 52, 53,), 808 array(2, 11, 12, 14, 16, 17, 45, 48, 50, 52,), 809 array(2, 11, 12, 16, 17, 45, 48, 50, 52,), 810 array(2, 11, 12, 16, 17, 45, 48, 50, 52,), 811 array(11, 12, 16, 17, 45, 48, 50, 52,), array(12, 13, 16, 34, 54,), 812 array(11, 12, 16, 50,), array(11, 12, 16,), array(14, 45, 52,), 813 array(26, 33,), array(13, 54,), array(26, 33,), array(13, 54,), 814 array(26, 33,), array(26, 33,), array(26, 33,), array(26, 33,), 815 array(26, 33,), array(26, 33,), array(26, 33,), array(26, 33,), 816 array(45, 52,), array(26, 33,), array(26, 33,), array(13, 54,), 817 array(13, 54,), array(26, 33,), array(26, 33,), array(26, 33,), 818 array(26, 33,), array(26, 33,), array(45, 52,), array(26, 33,), 819 array(45, 52,), array(12, 36,), array(45, 52,), array(14, 22,), 820 array(45, 52,), array(45, 52,), array(45, 52,), array(45, 52,), 821 array(26, 33,), array(45, 52,), array(45, 52,), array(8,), array(36,), 822 array(1,), array(17,), array(1,), array(2,), array(2,), array(1,), 823 array(1,), array(17,), array(17,), array(1,), array(), array(), array(), 824 array(), array(), array(1, 2, 36, 38, 39, 40, 48, 55, 56, 57, 58,), 825 array(10, 21, 23, 26, 33, 35, 37, 45,), array(10, 14, 26, 33, 36, 48,), 826 array(11, 12, 16, 50,), array(36, 45, 48, 53,), array(22, 46, 53,), 827 array(22, 46, 60,), array(28, 36, 48,), array(36, 48,), array(21, 35,), 828 array(45, 53,), array(14, 45,), array(35, 37,), array(36, 48,), 829 array(36, 48,), array(35, 37,), array(35, 37,), array(16, 50,), 830 array(35, 53,), array(22, 46,), array(34,), array(10,), array(16,), 831 array(51,), array(16,), array(36,), array(51,), array(16,), array(16,), 832 array(4,), array(16,), array(53,), array(16,), array(16,), array(36,), 833 array(13,), array(16,), array(53,), array(45,), array(37,), array(16,), 834 array(23,), array(34,), array(16,), array(14,), array(41,), array(), 835 array(), array(), array(), array(), array(), array(), array(), array(), 836 array(), array(), array(), array(), array(), array(), array(), array(), 837 array(), array(), array(), array(), array(), array(), array(), array(), 838 array(), array(), array(), array(), array(), array(), array(), array(), 839 array(), array(), array(), array(), array(), array(), array(), array(), 840 array(), array(), array(), array(), array(), array(), array(), array(), 841 array(), array(), array(), array(), array(), array(), array(), array(), 842 array(), array(), array(), array(), array(), array(), array(), array(), 843 array(), array(), array(), array(), array(), array(), array(), array(), 844 array(), array(), array(), array(), array(), array(), array(), array(), 845 array(), array(), array(), array(), array(), array(), array(), array(), 846 array(), array(), array(), array(), array(), array(), array(),); 847 848 static public $yy_default = array(338, 515, 494, 530, 530, 494, 494, 530, 530, 530, 530, 530, 530, 530, 530, 530, 849 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 850 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 396, 530, 396, 851 359, 372, 362, 396, 335, 530, 530, 530, 530, 530, 530, 530, 530, 401, 530, 530, 852 377, 517, 492, 493, 418, 516, 403, 401, 518, 398, 407, 408, 423, 422, 530, 530, 853 434, 410, 530, 396, 530, 530, 396, 396, 396, 396, 530, 396, 530, 506, 396, 386, 854 424, 424, 410, 410, 410, 530, 459, 449, 459, 530, 459, 449, 530, 530, 530, 410, 855 396, 390, 449, 396, 410, 374, 410, 417, 426, 425, 410, 392, 421, 414, 413, 427, 856 503, 449, 501, 448, 448, 448, 448, 448, 448, 530, 461, 459, 475, 382, 530, 381, 857 530, 369, 366, 364, 368, 360, 363, 358, 370, 452, 384, 356, 530, 530, 385, 375, 858 380, 379, 373, 455, 376, 484, 459, 487, 530, 454, 453, 486, 485, 383, 456, 457, 859 350, 459, 443, 481, 387, 495, 496, 416, 391, 507, 504, 393, 500, 500, 500, 459, 860 459, 434, 430, 434, 460, 434, 424, 424, 434, 434, 530, 430, 430, 530, 530, 444, 861 530, 530, 530, 530, 424, 530, 530, 530, 530, 530, 505, 530, 530, 530, 342, 530, 862 439, 530, 530, 475, 530, 530, 530, 430, 530, 530, 404, 432, 530, 530, 436, 439, 863 480, 502, 440, 490, 465, 365, 436, 475, 394, 405, 343, 344, 345, 346, 347, 409, 864 429, 411, 337, 336, 339, 340, 341, 431, 348, 397, 353, 464, 354, 463, 435, 378, 865 351, 349, 489, 352, 433, 462, 419, 477, 415, 446, 478, 479, 438, 388, 519, 511, 866 510, 521, 520, 412, 482, 437, 498, 497, 491, 476, 483, 451, 526, 527, 428, 499, 867 450, 389, 524, 523, 488, 458, 420, 442, 445, 371, 471, 468, 474, 467, 466, 469, 868 472, 470, 522, 509, 529, 528, 525, 508, 473, 513, 447, 514, 395, 512, 441,); 869 870 const YYNOCODE = 107; 871 872 const YYSTACKDEPTH = 500; 873 874 const YYNSTATE = 335; 875 876 const YYNRULE = 195; 877 878 const YYERRORSYMBOL = 61; 879 880 const YYERRSYMDT = 'yy0'; 881 882 const YYFALLBACK = 0; 883 884 public static $yyFallback = array(); 885 886 public function Trace($TraceFILE, $zTracePrompt) 887 { 888 if (!$TraceFILE) { 889 $zTracePrompt = 0; 890 } elseif (!$zTracePrompt) { 891 $TraceFILE = 0; 892 } 893 $this->yyTraceFILE = $TraceFILE; 894 $this->yyTracePrompt = $zTracePrompt; 895 } 896 897 public function PrintTrace() 898 { 899 $this->yyTraceFILE = fopen('php://output', 'w'); 900 $this->yyTracePrompt = '<br>'; 901 } 902 903 public $yyTraceFILE; 904 905 public $yyTracePrompt; 906 907 public $yyidx; /* Index of top element in stack */ 908 public $yyerrcnt; /* Shifts left before out of the error */ 909 public $yystack = array(); /* The parser's stack */ 910 911 public $yyTokenName = array('$', 'VERT', 'COLON', 'PHP', 'TEXT', 'STRIPON', 'STRIPOFF', 'LITERALSTART', 912 'LITERALEND', 'LITERAL', 'RDEL', 'SIMPELOUTPUT', 'LDEL', 'DOLLARID', 'EQUAL', 913 'SIMPLETAG', 'ID', 'PTR', 'LDELMAKENOCACHE', 'LDELIF', 'LDELFOR', 'SEMICOLON', 'INCDEC', 914 'TO', 'STEP', 'LDELFOREACH', 'SPACE', 'AS', 'APTR', 'LDELSETFILTER', 915 'SMARTYBLOCKCHILDPARENT', 'CLOSETAG', 'LDELSLASH', 'ATTR', 'INTEGER', 'COMMA', 'OPENP', 916 'CLOSEP', 'MATH', 'UNIMATH', 'ISIN', 'QMARK', 'NOT', 'TYPECAST', 'HEX', 'DOT', 917 'INSTANCEOF', 'SINGLEQUOTESTRING', 'DOUBLECOLON', 'NAMESPACE', 'AT', 'HATCH', 'OPENB', 918 'CLOSEB', 'DOLLAR', 'LOGOP', 'SLOGOP', 'TLOGOP', 'SINGLECOND', 'QUOTE', 'BACKTICK', 919 'error', 'start', 'template', 'template_element', 'smartytag', 'literal', 920 'text_content', 'literal_elements', 'literal_element', 'tag', 'variable', 'attributes', 921 'value', 'expr', 'varindexed', 'modifierlist', 'statement', 'statements', 'foraction', 922 'varvar', 'modparameters', 'attribute', 'ternary', 'array', 'tlop', 'lop', 'scond', 923 'function', 'ns1', 'doublequoted_with_quotes', 'static_class_access', 'object', 924 'arrayindex', 'indexdef', 'varvarele', 'objectchain', 'objectelement', 'method', 925 'params', 'modifier', 'modparameter', 'arrayelements', 'arrayelement', 'doublequoted', 926 'doublequotedcontent',); 927 928 public static $yyRuleName = array('start ::= template', 'template ::= template_element', 929 'template ::= template template_element', 'template ::=', 930 'template_element ::= smartytag', 'template_element ::= literal', 931 'template_element ::= PHP', 'template_element ::= text_content', 932 'text_content ::= TEXT', 'text_content ::= text_content TEXT', 933 'template_element ::= STRIPON', 'template_element ::= STRIPOFF', 934 'literal ::= LITERALSTART LITERALEND', 935 'literal ::= LITERALSTART literal_elements LITERALEND', 936 'literal_elements ::= literal_elements literal_element', 'literal_elements ::=', 937 'literal_element ::= literal', 'literal_element ::= LITERAL', 938 'smartytag ::= tag RDEL', 'smartytag ::= SIMPELOUTPUT', 'tag ::= LDEL variable', 939 'tag ::= LDEL variable attributes', 'tag ::= LDEL value', 940 'tag ::= LDEL value attributes', 'tag ::= LDEL expr', 941 'tag ::= LDEL expr attributes', 'tag ::= LDEL DOLLARID EQUAL value', 942 'tag ::= LDEL DOLLARID EQUAL expr', 'tag ::= LDEL DOLLARID EQUAL expr attributes', 943 'tag ::= LDEL varindexed EQUAL expr attributes', 'smartytag ::= SIMPLETAG', 944 'tag ::= LDEL ID attributes', 'tag ::= LDEL ID', 945 'tag ::= LDEL ID modifierlist attributes', 'tag ::= LDEL ID PTR ID attributes', 946 'tag ::= LDEL ID PTR ID modifierlist attributes', 947 'tag ::= LDELMAKENOCACHE DOLLARID', 'tag ::= LDELIF expr', 948 'tag ::= LDELIF expr attributes', 'tag ::= LDELIF statement', 949 'tag ::= LDELIF statement attributes', 950 'tag ::= LDELFOR statements SEMICOLON expr SEMICOLON varindexed foraction attributes', 951 'foraction ::= EQUAL expr', 'foraction ::= INCDEC', 952 'tag ::= LDELFOR statement TO expr attributes', 953 'tag ::= LDELFOR statement TO expr STEP expr attributes', 954 'tag ::= LDELFOREACH attributes', 955 'tag ::= LDELFOREACH SPACE value AS varvar attributes', 956 'tag ::= LDELFOREACH SPACE value AS varvar APTR varvar attributes', 957 'tag ::= LDELFOREACH SPACE expr AS varvar attributes', 958 'tag ::= LDELFOREACH SPACE expr AS varvar APTR varvar attributes', 959 'tag ::= LDELSETFILTER ID modparameters', 960 'tag ::= LDELSETFILTER ID modparameters modifierlist', 961 'tag ::= LDEL SMARTYBLOCKCHILDPARENT', 'smartytag ::= CLOSETAG', 962 'tag ::= LDELSLASH ID', 'tag ::= LDELSLASH ID modifierlist', 963 'tag ::= LDELSLASH ID PTR ID', 'tag ::= LDELSLASH ID PTR ID modifierlist', 964 'attributes ::= attributes attribute', 'attributes ::= attribute', 965 'attributes ::=', 'attribute ::= SPACE ID EQUAL ID', 'attribute ::= ATTR expr', 966 'attribute ::= ATTR value', 'attribute ::= SPACE ID', 'attribute ::= SPACE expr', 967 'attribute ::= SPACE value', 'attribute ::= SPACE INTEGER EQUAL expr', 968 'statements ::= statement', 'statements ::= statements COMMA statement', 969 'statement ::= DOLLARID EQUAL INTEGER', 'statement ::= DOLLARID EQUAL expr', 970 'statement ::= varindexed EQUAL expr', 'statement ::= OPENP statement CLOSEP', 971 'expr ::= value', 'expr ::= ternary', 'expr ::= DOLLARID COLON ID', 972 'expr ::= expr MATH value', 'expr ::= expr UNIMATH value', 'expr ::= array', 973 'expr ::= expr modifierlist', 'expr ::= expr tlop value', 974 'expr ::= expr lop expr', 'expr ::= expr scond', 'expr ::= expr ISIN array', 975 'expr ::= expr ISIN value', 976 'ternary ::= OPENP expr CLOSEP QMARK DOLLARID COLON expr', 977 'ternary ::= OPENP expr CLOSEP QMARK expr COLON expr', 'value ::= variable', 978 'value ::= UNIMATH value', 'value ::= NOT value', 'value ::= TYPECAST value', 979 'value ::= variable INCDEC', 'value ::= HEX', 'value ::= INTEGER', 980 'value ::= INTEGER DOT INTEGER', 'value ::= INTEGER DOT', 'value ::= DOT INTEGER', 981 'value ::= ID', 'value ::= function', 'value ::= OPENP expr CLOSEP', 982 'value ::= variable INSTANCEOF ns1', 'value ::= variable INSTANCEOF variable', 983 'value ::= SINGLEQUOTESTRING', 'value ::= doublequoted_with_quotes', 984 'value ::= varindexed DOUBLECOLON static_class_access', 'value ::= smartytag', 985 'value ::= value modifierlist', 'value ::= NAMESPACE', 986 'value ::= ns1 DOUBLECOLON static_class_access', 'ns1 ::= ID', 987 'ns1 ::= NAMESPACE', 'variable ::= DOLLARID', 'variable ::= varindexed', 988 'variable ::= varvar AT ID', 'variable ::= object', 'variable ::= HATCH ID HATCH', 989 'variable ::= HATCH ID HATCH arrayindex', 'variable ::= HATCH variable HATCH', 990 'variable ::= HATCH variable HATCH arrayindex', 991 'varindexed ::= DOLLARID arrayindex', 'varindexed ::= varvar arrayindex', 992 'arrayindex ::= arrayindex indexdef', 'arrayindex ::=', 993 'indexdef ::= DOT DOLLARID', 'indexdef ::= DOT varvar', 994 'indexdef ::= DOT varvar AT ID', 'indexdef ::= DOT ID', 995 'indexdef ::= DOT INTEGER', 'indexdef ::= DOT LDEL expr RDEL', 996 'indexdef ::= OPENB ID CLOSEB', 'indexdef ::= OPENB ID DOT ID CLOSEB', 997 'indexdef ::= OPENB SINGLEQUOTESTRING CLOSEB', 998 'indexdef ::= OPENB INTEGER CLOSEB', 'indexdef ::= OPENB DOLLARID CLOSEB', 999 'indexdef ::= OPENB variable CLOSEB', 'indexdef ::= OPENB value CLOSEB', 1000 'indexdef ::= OPENB expr CLOSEB', 'indexdef ::= OPENB CLOSEB', 1001 'varvar ::= DOLLARID', 'varvar ::= DOLLAR', 'varvar ::= varvar varvarele', 1002 'varvarele ::= ID', 'varvarele ::= SIMPELOUTPUT', 'varvarele ::= LDEL expr RDEL', 1003 'object ::= varindexed objectchain', 'objectchain ::= objectelement', 1004 'objectchain ::= objectchain objectelement', 1005 'objectelement ::= PTR ID arrayindex', 'objectelement ::= PTR varvar arrayindex', 1006 'objectelement ::= PTR LDEL expr RDEL arrayindex', 1007 'objectelement ::= PTR ID LDEL expr RDEL arrayindex', 1008 'objectelement ::= PTR method', 'function ::= ns1 OPENP params CLOSEP', 1009 'method ::= ID OPENP params CLOSEP', 'method ::= DOLLARID OPENP params CLOSEP', 1010 'params ::= params COMMA expr', 'params ::= expr', 'params ::=', 1011 'modifierlist ::= modifierlist modifier modparameters', 1012 'modifierlist ::= modifier modparameters', 'modifier ::= VERT AT ID', 1013 'modifier ::= VERT ID', 'modparameters ::= modparameters modparameter', 1014 'modparameters ::=', 'modparameter ::= COLON value', 1015 'modparameter ::= COLON array', 'static_class_access ::= method', 1016 'static_class_access ::= method objectchain', 'static_class_access ::= ID', 1017 'static_class_access ::= DOLLARID arrayindex', 1018 'static_class_access ::= DOLLARID arrayindex objectchain', 'lop ::= LOGOP', 1019 'lop ::= SLOGOP', 'tlop ::= TLOGOP', 'scond ::= SINGLECOND', 1020 'array ::= OPENB arrayelements CLOSEB', 'arrayelements ::= arrayelement', 1021 'arrayelements ::= arrayelements COMMA arrayelement', 'arrayelements ::=', 1022 'arrayelement ::= value APTR expr', 'arrayelement ::= ID APTR expr', 1023 'arrayelement ::= expr', 'doublequoted_with_quotes ::= QUOTE QUOTE', 1024 'doublequoted_with_quotes ::= QUOTE doublequoted QUOTE', 1025 'doublequoted ::= doublequoted doublequotedcontent', 1026 'doublequoted ::= doublequotedcontent', 1027 'doublequotedcontent ::= BACKTICK variable BACKTICK', 1028 'doublequotedcontent ::= BACKTICK expr BACKTICK', 1029 'doublequotedcontent ::= DOLLARID', 'doublequotedcontent ::= LDEL variable RDEL', 1030 'doublequotedcontent ::= LDEL expr RDEL', 'doublequotedcontent ::= smartytag', 1031 'doublequotedcontent ::= TEXT',); 1032 1033 public function tokenName($tokenType) 1034 { 1035 if ($tokenType === 0) { 1036 return 'End of Input'; 1037 } 1038 if ($tokenType > 0 && $tokenType < count($this->yyTokenName)) { 1039 return $this->yyTokenName[ $tokenType ]; 1040 } else { 1041 return "Unknown"; 1042 } 1043 } 1044 1045 public static function yy_destructor($yymajor, $yypminor) 1046 { 1047 switch ($yymajor) { 1048 default: 1049 break; /* If no destructor action specified: do nothing */ 1050 } 1051 } 1052 1053 public function yy_pop_parser_stack() 1054 { 1055 if (empty($this->yystack)) { 1056 return; 1057 } 1058 $yytos = array_pop($this->yystack); 1059 if ($this->yyTraceFILE && $this->yyidx >= 0) { 1060 fwrite($this->yyTraceFILE, $this->yyTracePrompt . 'Popping ' . $this->yyTokenName[ $yytos->major ] . "\n"); 1061 } 1062 $yymajor = $yytos->major; 1063 self::yy_destructor($yymajor, $yytos->minor); 1064 $this->yyidx --; 1065 1066 return $yymajor; 1067 } 1068 1069 public function __destruct() 1070 { 1071 while ($this->yystack !== Array()) { 1072 $this->yy_pop_parser_stack(); 1073 } 1074 if (is_resource($this->yyTraceFILE)) { 1075 fclose($this->yyTraceFILE); 1076 } 1077 } 1078 1079 public function yy_get_expected_tokens($token) 1080 { 1081 static $res3 = array(); 1082 static $res4 = array(); 1083 $state = $this->yystack[ $this->yyidx ]->stateno; 1084 $expected = self::$yyExpectedTokens[ $state ]; 1085 if (isset($res3[ $state ][ $token ])) { 1086 if ($res3[ $state ][ $token ]) { 1087 return $expected; 1088 } 1089 } else { 1090 if ($res3[ $state ][ $token ] = in_array($token, self::$yyExpectedTokens[ $state ], true)) { 1091 return $expected; 1092 } 1093 } 1094 $stack = $this->yystack; 1095 $yyidx = $this->yyidx; 1096 do { 1097 $yyact = $this->yy_find_shift_action($token); 1098 if ($yyact >= self::YYNSTATE && $yyact < self::YYNSTATE + self::YYNRULE) { 1099 // reduce action 1100 $done = 0; 1101 do { 1102 if ($done ++ == 100) { 1103 $this->yyidx = $yyidx; 1104 $this->yystack = $stack; 1105 // too much recursion prevents proper detection 1106 // so give up 1107 return array_unique($expected); 1108 } 1109 $yyruleno = $yyact - self::YYNSTATE; 1110 $this->yyidx -= self::$yyRuleInfo[ $yyruleno ][ 1 ]; 1111 $nextstate = $this->yy_find_reduce_action($this->yystack[ $this->yyidx ]->stateno, 1112 self::$yyRuleInfo[ $yyruleno ][ 0 ]); 1113 if (isset(self::$yyExpectedTokens[ $nextstate ])) { 1114 $expected = array_merge($expected, self::$yyExpectedTokens[ $nextstate ]); 1115 if (isset($res4[ $nextstate ][ $token ])) { 1116 if ($res4[ $nextstate ][ $token ]) { 1117 $this->yyidx = $yyidx; 1118 $this->yystack = $stack; 1119 return array_unique($expected); 1120 } 1121 } else { 1122 if ($res4[ $nextstate ][ $token ] = 1123 in_array($token, self::$yyExpectedTokens[ $nextstate ], true) 1124 ) { 1125 $this->yyidx = $yyidx; 1126 $this->yystack = $stack; 1127 return array_unique($expected); 1128 } 1129 } 1130 } 1131 if ($nextstate < self::YYNSTATE) { 1132 // we need to shift a non-terminal 1133 $this->yyidx ++; 1134 $x = new TP_yyStackEntry; 1135 $x->stateno = $nextstate; 1136 $x->major = self::$yyRuleInfo[ $yyruleno ][ 0 ]; 1137 $this->yystack[ $this->yyidx ] = $x; 1138 continue 2; 1139 } elseif ($nextstate == self::YYNSTATE + self::YYNRULE + 1) { 1140 $this->yyidx = $yyidx; 1141 $this->yystack = $stack; 1142 // the last token was just ignored, we can't accept 1143 // by ignoring input, this is in essence ignoring a 1144 // syntax error! 1145 return array_unique($expected); 1146 } elseif ($nextstate === self::YY_NO_ACTION) { 1147 $this->yyidx = $yyidx; 1148 $this->yystack = $stack; 1149 // input accepted, but not shifted (I guess) 1150 return $expected; 1151 } else { 1152 $yyact = $nextstate; 1153 } 1154 } 1155 while (true); 1156 } 1157 break; 1158 } 1159 while (true); 1160 $this->yyidx = $yyidx; 1161 $this->yystack = $stack; 1162 1163 return array_unique($expected); 1164 } 1165 1166 public function yy_is_expected_token($token) 1167 { 1168 static $res = array(); 1169 static $res2 = array(); 1170 if ($token === 0) { 1171 return true; // 0 is not part of this 1172 } 1173 $state = $this->yystack[ $this->yyidx ]->stateno; 1174 if (isset($res[ $state ][ $token ])) { 1175 if ($res[ $state ][ $token ]) { 1176 return true; 1177 } 1178 } else { 1179 if ($res[ $state ][ $token ] = in_array($token, self::$yyExpectedTokens[ $state ], true)) { 1180 return true; 1181 } 1182 } 1183 $stack = $this->yystack; 1184 $yyidx = $this->yyidx; 1185 do { 1186 $yyact = $this->yy_find_shift_action($token); 1187 if ($yyact >= self::YYNSTATE && $yyact < self::YYNSTATE + self::YYNRULE) { 1188 // reduce action 1189 $done = 0; 1190 do { 1191 if ($done ++ == 100) { 1192 $this->yyidx = $yyidx; 1193 $this->yystack = $stack; 1194 // too much recursion prevents proper detection 1195 // so give up 1196 return true; 1197 } 1198 $yyruleno = $yyact - self::YYNSTATE; 1199 $this->yyidx -= self::$yyRuleInfo[ $yyruleno ][ 1 ]; 1200 $nextstate = $this->yy_find_reduce_action($this->yystack[ $this->yyidx ]->stateno, 1201 self::$yyRuleInfo[ $yyruleno ][ 0 ]); 1202 if (isset($res2[ $nextstate ][ $token ])) { 1203 if ($res2[ $nextstate ][ $token ]) { 1204 $this->yyidx = $yyidx; 1205 $this->yystack = $stack; 1206 return true; 1207 } 1208 } else { 1209 if ($res2[ $nextstate ][ $token ] = (isset(self::$yyExpectedTokens[ $nextstate ]) && 1210 in_array($token, self::$yyExpectedTokens[ $nextstate ], 1211 true)) 1212 ) { 1213 $this->yyidx = $yyidx; 1214 $this->yystack = $stack; 1215 return true; 1216 } 1217 } 1218 if ($nextstate < self::YYNSTATE) { 1219 // we need to shift a non-terminal 1220 $this->yyidx ++; 1221 $x = new TP_yyStackEntry; 1222 $x->stateno = $nextstate; 1223 $x->major = self::$yyRuleInfo[ $yyruleno ][ 0 ]; 1224 $this->yystack[ $this->yyidx ] = $x; 1225 continue 2; 1226 } elseif ($nextstate == self::YYNSTATE + self::YYNRULE + 1) { 1227 $this->yyidx = $yyidx; 1228 $this->yystack = $stack; 1229 if (!$token) { 1230 // end of input: this is valid 1231 return true; 1232 } 1233 // the last token was just ignored, we can't accept 1234 // by ignoring input, this is in essence ignoring a 1235 // syntax error! 1236 return false; 1237 } elseif ($nextstate === self::YY_NO_ACTION) { 1238 $this->yyidx = $yyidx; 1239 $this->yystack = $stack; 1240 // input accepted, but not shifted (I guess) 1241 return true; 1242 } else { 1243 $yyact = $nextstate; 1244 } 1245 } 1246 while (true); 1247 } 1248 break; 1249 } 1250 while (true); 1251 $this->yyidx = $yyidx; 1252 $this->yystack = $stack; 1253 1254 return true; 1255 } 1256 1257 public function yy_find_shift_action($iLookAhead) 1258 { 1259 $stateno = $this->yystack[ $this->yyidx ]->stateno; 1260 1261 /* if ($this->yyidx < 0) return self::YY_NO_ACTION; */ 1262 if (!isset(self::$yy_shift_ofst[ $stateno ])) { 1263 // no shift actions 1264 return self::$yy_default[ $stateno ]; 1265 } 1266 $i = self::$yy_shift_ofst[ $stateno ]; 1267 if ($i === self::YY_SHIFT_USE_DFLT) { 1268 return self::$yy_default[ $stateno ]; 1269 } 1270 if ($iLookAhead == self::YYNOCODE) { 1271 return self::YY_NO_ACTION; 1272 } 1273 $i += $iLookAhead; 1274 if ($i < 0 || $i >= self::YY_SZ_ACTTAB || self::$yy_lookahead[ $i ] != $iLookAhead) { 1275 if (count(self::$yyFallback) && $iLookAhead < count(self::$yyFallback) && 1276 ($iFallback = self::$yyFallback[ $iLookAhead ]) != 0 1277 ) { 1278 if ($this->yyTraceFILE) { 1279 fwrite($this->yyTraceFILE, 1280 $this->yyTracePrompt . "FALLBACK " . $this->yyTokenName[ $iLookAhead ] . " => " . 1281 $this->yyTokenName[ $iFallback ] . "\n"); 1282 } 1283 1284 return $this->yy_find_shift_action($iFallback); 1285 } 1286 1287 return self::$yy_default[ $stateno ]; 1288 } else { 1289 return self::$yy_action[ $i ]; 1290 } 1291 } 1292 1293 public function yy_find_reduce_action($stateno, $iLookAhead) 1294 { 1295 /* $stateno = $this->yystack[$this->yyidx]->stateno; */ 1296 1297 if (!isset(self::$yy_reduce_ofst[ $stateno ])) { 1298 return self::$yy_default[ $stateno ]; 1299 } 1300 $i = self::$yy_reduce_ofst[ $stateno ]; 1301 if ($i == self::YY_REDUCE_USE_DFLT) { 1302 return self::$yy_default[ $stateno ]; 1303 } 1304 if ($iLookAhead == self::YYNOCODE) { 1305 return self::YY_NO_ACTION; 1306 } 1307 $i += $iLookAhead; 1308 if ($i < 0 || $i >= self::YY_SZ_ACTTAB || self::$yy_lookahead[ $i ] != $iLookAhead) { 1309 return self::$yy_default[ $stateno ]; 1310 } else { 1311 return self::$yy_action[ $i ]; 1312 } 1313 } 1314 1315 public function yy_shift($yyNewState, $yyMajor, $yypMinor) 1316 { 1317 $this->yyidx ++; 1318 if ($this->yyidx >= self::YYSTACKDEPTH) { 1319 $this->yyidx --; 1320 if ($this->yyTraceFILE) { 1321 fprintf($this->yyTraceFILE, "%sStack Overflow!\n", $this->yyTracePrompt); 1322 } 1323 while ($this->yyidx >= 0) { 1324 $this->yy_pop_parser_stack(); 1325 } 1326 #line 207 "../smarty/lexer/smarty_internal_templateparser.y" 1327 1328 $this->internalError = true; 1329 $this->compiler->trigger_template_error("Stack overflow in template parser"); 1330 1331 return; 1332 } 1333 $yytos = new TP_yyStackEntry; 1334 $yytos->stateno = $yyNewState; 1335 $yytos->major = $yyMajor; 1336 $yytos->minor = $yypMinor; 1337 $this->yystack[] = $yytos; 1338 if ($this->yyTraceFILE && $this->yyidx > 0) { 1339 fprintf($this->yyTraceFILE, "%sShift %d\n", $this->yyTracePrompt, $yyNewState); 1340 fprintf($this->yyTraceFILE, "%sStack:", $this->yyTracePrompt); 1341 for ($i = 1; $i <= $this->yyidx; $i ++) { 1342 fprintf($this->yyTraceFILE, " %s", $this->yyTokenName[ $this->yystack[ $i ]->major ]); 1343 } 1344 fwrite($this->yyTraceFILE, "\n"); 1345 } 1346 } 1347 1348 public static $yyRuleInfo = array(array(0 => 62, 1 => 1), array(0 => 63, 1 => 1), array(0 => 63, 1 => 2), 1349 array(0 => 63, 1 => 0), array(0 => 64, 1 => 1), array(0 => 64, 1 => 1), 1350 array(0 => 64, 1 => 1), array(0 => 64, 1 => 1), array(0 => 67, 1 => 1), 1351 array(0 => 67, 1 => 2), array(0 => 64, 1 => 1), array(0 => 64, 1 => 1), 1352 array(0 => 66, 1 => 2), array(0 => 66, 1 => 3), array(0 => 68, 1 => 2), 1353 array(0 => 68, 1 => 0), array(0 => 69, 1 => 1), array(0 => 69, 1 => 1), 1354 array(0 => 65, 1 => 2), array(0 => 65, 1 => 1), array(0 => 70, 1 => 2), 1355 array(0 => 70, 1 => 3), array(0 => 70, 1 => 2), array(0 => 70, 1 => 3), 1356 array(0 => 70, 1 => 2), array(0 => 70, 1 => 3), array(0 => 70, 1 => 4), 1357 array(0 => 70, 1 => 4), array(0 => 70, 1 => 5), array(0 => 70, 1 => 5), 1358 array(0 => 65, 1 => 1), array(0 => 70, 1 => 3), array(0 => 70, 1 => 2), 1359 array(0 => 70, 1 => 4), array(0 => 70, 1 => 5), array(0 => 70, 1 => 6), 1360 array(0 => 70, 1 => 2), array(0 => 70, 1 => 2), array(0 => 70, 1 => 3), 1361 array(0 => 70, 1 => 2), array(0 => 70, 1 => 3), array(0 => 70, 1 => 8), 1362 array(0 => 79, 1 => 2), array(0 => 79, 1 => 1), array(0 => 70, 1 => 5), 1363 array(0 => 70, 1 => 7), array(0 => 70, 1 => 2), array(0 => 70, 1 => 6), 1364 array(0 => 70, 1 => 8), array(0 => 70, 1 => 6), array(0 => 70, 1 => 8), 1365 array(0 => 70, 1 => 3), array(0 => 70, 1 => 4), array(0 => 70, 1 => 2), 1366 array(0 => 65, 1 => 1), array(0 => 70, 1 => 2), array(0 => 70, 1 => 3), 1367 array(0 => 70, 1 => 4), array(0 => 70, 1 => 5), array(0 => 72, 1 => 2), 1368 array(0 => 72, 1 => 1), array(0 => 72, 1 => 0), array(0 => 82, 1 => 4), 1369 array(0 => 82, 1 => 2), array(0 => 82, 1 => 2), array(0 => 82, 1 => 2), 1370 array(0 => 82, 1 => 2), array(0 => 82, 1 => 2), array(0 => 82, 1 => 4), 1371 array(0 => 78, 1 => 1), array(0 => 78, 1 => 3), array(0 => 77, 1 => 3), 1372 array(0 => 77, 1 => 3), array(0 => 77, 1 => 3), array(0 => 77, 1 => 3), 1373 array(0 => 74, 1 => 1), array(0 => 74, 1 => 1), array(0 => 74, 1 => 3), 1374 array(0 => 74, 1 => 3), array(0 => 74, 1 => 3), array(0 => 74, 1 => 1), 1375 array(0 => 74, 1 => 2), array(0 => 74, 1 => 3), array(0 => 74, 1 => 3), 1376 array(0 => 74, 1 => 2), array(0 => 74, 1 => 3), array(0 => 74, 1 => 3), 1377 array(0 => 83, 1 => 7), array(0 => 83, 1 => 7), array(0 => 73, 1 => 1), 1378 array(0 => 73, 1 => 2), array(0 => 73, 1 => 2), array(0 => 73, 1 => 2), 1379 array(0 => 73, 1 => 2), array(0 => 73, 1 => 1), array(0 => 73, 1 => 1), 1380 array(0 => 73, 1 => 3), array(0 => 73, 1 => 2), array(0 => 73, 1 => 2), 1381 array(0 => 73, 1 => 1), array(0 => 73, 1 => 1), array(0 => 73, 1 => 3), 1382 array(0 => 73, 1 => 3), array(0 => 73, 1 => 3), array(0 => 73, 1 => 1), 1383 array(0 => 73, 1 => 1), array(0 => 73, 1 => 3), array(0 => 73, 1 => 1), 1384 array(0 => 73, 1 => 2), array(0 => 73, 1 => 1), array(0 => 73, 1 => 3), 1385 array(0 => 89, 1 => 1), array(0 => 89, 1 => 1), array(0 => 71, 1 => 1), 1386 array(0 => 71, 1 => 1), array(0 => 71, 1 => 3), array(0 => 71, 1 => 1), 1387 array(0 => 71, 1 => 3), array(0 => 71, 1 => 4), array(0 => 71, 1 => 3), 1388 array(0 => 71, 1 => 4), array(0 => 75, 1 => 2), array(0 => 75, 1 => 2), 1389 array(0 => 93, 1 => 2), array(0 => 93, 1 => 0), array(0 => 94, 1 => 2), 1390 array(0 => 94, 1 => 2), array(0 => 94, 1 => 4), array(0 => 94, 1 => 2), 1391 array(0 => 94, 1 => 2), array(0 => 94, 1 => 4), array(0 => 94, 1 => 3), 1392 array(0 => 94, 1 => 5), array(0 => 94, 1 => 3), array(0 => 94, 1 => 3), 1393 array(0 => 94, 1 => 3), array(0 => 94, 1 => 3), array(0 => 94, 1 => 3), 1394 array(0 => 94, 1 => 3), array(0 => 94, 1 => 2), array(0 => 80, 1 => 1), 1395 array(0 => 80, 1 => 1), array(0 => 80, 1 => 2), array(0 => 95, 1 => 1), 1396 array(0 => 95, 1 => 1), array(0 => 95, 1 => 3), array(0 => 92, 1 => 2), 1397 array(0 => 96, 1 => 1), array(0 => 96, 1 => 2), array(0 => 97, 1 => 3), 1398 array(0 => 97, 1 => 3), array(0 => 97, 1 => 5), array(0 => 97, 1 => 6), 1399 array(0 => 97, 1 => 2), array(0 => 88, 1 => 4), array(0 => 98, 1 => 4), 1400 array(0 => 98, 1 => 4), array(0 => 99, 1 => 3), array(0 => 99, 1 => 1), 1401 array(0 => 99, 1 => 0), array(0 => 76, 1 => 3), array(0 => 76, 1 => 2), 1402 array(0 => 100, 1 => 3), array(0 => 100, 1 => 2), array(0 => 81, 1 => 2), 1403 array(0 => 81, 1 => 0), array(0 => 101, 1 => 2), array(0 => 101, 1 => 2), 1404 array(0 => 91, 1 => 1), array(0 => 91, 1 => 2), array(0 => 91, 1 => 1), 1405 array(0 => 91, 1 => 2), array(0 => 91, 1 => 3), array(0 => 86, 1 => 1), 1406 array(0 => 86, 1 => 1), array(0 => 85, 1 => 1), array(0 => 87, 1 => 1), 1407 array(0 => 84, 1 => 3), array(0 => 102, 1 => 1), array(0 => 102, 1 => 3), 1408 array(0 => 102, 1 => 0), array(0 => 103, 1 => 3), array(0 => 103, 1 => 3), 1409 array(0 => 103, 1 => 1), array(0 => 90, 1 => 2), array(0 => 90, 1 => 3), 1410 array(0 => 104, 1 => 2), array(0 => 104, 1 => 1), array(0 => 105, 1 => 3), 1411 array(0 => 105, 1 => 3), array(0 => 105, 1 => 1), array(0 => 105, 1 => 3), 1412 array(0 => 105, 1 => 3), array(0 => 105, 1 => 1), array(0 => 105, 1 => 1),); 1413 1414 public static $yyReduceMap = array(0 => 0, 1 => 1, 2 => 2, 4 => 4, 5 => 5, 6 => 6, 7 => 7, 8 => 8, 16 => 8, 17 => 8, 1415 43 => 8, 66 => 8, 67 => 8, 75 => 8, 76 => 8, 80 => 8, 89 => 8, 94 => 8, 95 => 8, 1416 100 => 8, 104 => 8, 105 => 8, 109 => 8, 111 => 8, 116 => 8, 178 => 8, 183 => 8, 1417 9 => 9, 10 => 10, 11 => 11, 12 => 12, 15 => 12, 13 => 13, 74 => 13, 14 => 14, 1418 90 => 14, 92 => 14, 93 => 14, 123 => 14, 18 => 18, 19 => 19, 20 => 20, 22 => 20, 1419 24 => 20, 21 => 21, 23 => 21, 25 => 21, 26 => 26, 27 => 26, 28 => 28, 29 => 29, 1420 30 => 30, 31 => 31, 32 => 32, 33 => 33, 34 => 34, 35 => 35, 36 => 36, 37 => 37, 1421 38 => 38, 40 => 38, 39 => 39, 41 => 41, 42 => 42, 44 => 44, 45 => 45, 46 => 46, 1422 47 => 47, 49 => 47, 48 => 48, 50 => 48, 51 => 51, 52 => 52, 53 => 53, 54 => 54, 1423 55 => 55, 56 => 56, 57 => 57, 58 => 58, 59 => 59, 60 => 60, 69 => 60, 158 => 60, 1424 162 => 60, 166 => 60, 167 => 60, 61 => 61, 159 => 61, 165 => 61, 62 => 62, 1425 63 => 63, 64 => 63, 65 => 65, 143 => 65, 68 => 68, 70 => 70, 71 => 71, 72 => 71, 1426 73 => 73, 77 => 77, 78 => 78, 79 => 78, 81 => 81, 108 => 81, 82 => 82, 83 => 83, 1427 84 => 84, 85 => 85, 86 => 86, 87 => 87, 88 => 88, 91 => 91, 96 => 96, 97 => 97, 1428 98 => 98, 99 => 99, 101 => 101, 102 => 102, 103 => 102, 106 => 106, 107 => 107, 1429 110 => 110, 112 => 112, 113 => 113, 114 => 114, 115 => 115, 117 => 117, 1430 118 => 118, 119 => 119, 120 => 120, 121 => 121, 122 => 122, 124 => 124, 1431 180 => 124, 125 => 125, 126 => 126, 127 => 127, 128 => 128, 129 => 129, 1432 130 => 130, 138 => 130, 131 => 131, 132 => 132, 133 => 133, 134 => 133, 1433 136 => 133, 137 => 133, 135 => 135, 139 => 139, 140 => 140, 141 => 141, 1434 184 => 141, 142 => 142, 144 => 144, 145 => 145, 146 => 146, 147 => 147, 1435 148 => 148, 149 => 149, 150 => 150, 151 => 151, 152 => 152, 153 => 153, 1436 154 => 154, 155 => 155, 156 => 156, 157 => 157, 160 => 160, 161 => 161, 1437 163 => 163, 164 => 164, 168 => 168, 169 => 169, 170 => 170, 171 => 171, 1438 172 => 172, 173 => 173, 174 => 174, 175 => 175, 176 => 176, 177 => 177, 1439 179 => 179, 181 => 181, 182 => 182, 185 => 185, 186 => 186, 187 => 187, 1440 188 => 188, 189 => 188, 191 => 188, 190 => 190, 192 => 192, 193 => 193, 1441 194 => 194,); 1442 1443 #line 218 "../smarty/lexer/smarty_internal_templateparser.y" 1444 function yy_r0() 1445 { 1446 $this->root_buffer->prepend_array($this, $this->template_prefix); 1447 $this->root_buffer->append_array($this, $this->template_postfix); 1448 $this->_retvalue = $this->root_buffer->to_smarty_php($this); 1449 } 1450 1451 #line 228 "../smarty/lexer/smarty_internal_templateparser.y" 1452 function yy_r1() 1453 { 1454 if ($this->yystack[ $this->yyidx + 0 ]->minor != null) { 1455 $this->current_buffer->append_subtree($this, $this->yystack[ $this->yyidx + 0 ]->minor); 1456 } 1457 } 1458 1459 #line 235 "../smarty/lexer/smarty_internal_templateparser.y" 1460 function yy_r2() 1461 { 1462 if ($this->yystack[ $this->yyidx + 0 ]->minor != null) { 1463 // because of possible code injection 1464 $this->current_buffer->append_subtree($this, $this->yystack[ $this->yyidx + 0 ]->minor); 1465 } 1466 } 1467 1468 #line 249 "../smarty/lexer/smarty_internal_templateparser.y" 1469 function yy_r4() 1470 { 1471 if ($this->compiler->has_code) { 1472 $this->_retvalue = $this->mergePrefixCode($this->yystack[ $this->yyidx + 0 ]->minor); 1473 } else { 1474 $this->_retvalue = null; 1475 } 1476 $this->compiler->has_variable_string = false; 1477 $this->block_nesting_level = count($this->compiler->_tag_stack); 1478 } 1479 1480 #line 260 "../smarty/lexer/smarty_internal_templateparser.y" 1481 function yy_r5() 1482 { 1483 $this->_retvalue = new Smarty_Internal_ParseTree_Text($this->yystack[ $this->yyidx + 0 ]->minor); 1484 } 1485 1486 #line 264 "../smarty/lexer/smarty_internal_templateparser.y" 1487 function yy_r6() 1488 { 1489 $code = $this->compiler->compileTag('private_php', 1490 array(array('code' => $this->yystack[ $this->yyidx + 0 ]->minor), 1491 array('type' => $this->lex->phpType)), array()); 1492 if ($this->compiler->has_code && !empty($code)) { 1493 $tmp = ''; 1494 foreach ($this->compiler->prefix_code as $code) { 1495 $tmp .= $code; 1496 } 1497 $this->compiler->prefix_code = array(); 1498 $this->_retvalue = 1499 new Smarty_Internal_ParseTree_Tag($this, $this->compiler->processNocacheCode($tmp . $code, true)); 1500 } else { 1501 $this->_retvalue = null; 1502 } 1503 } 1504 1505 #line 275 "../smarty/lexer/smarty_internal_templateparser.y" 1506 function yy_r7() 1507 { 1508 $this->_retvalue = $this->compiler->processText($this->yystack[ $this->yyidx + 0 ]->minor); 1509 } 1510 1511 #line 279 "../smarty/lexer/smarty_internal_templateparser.y" 1512 function yy_r8() 1513 { 1514 $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor; 1515 } 1516 1517 #line 283 "../smarty/lexer/smarty_internal_templateparser.y" 1518 function yy_r9() 1519 { 1520 $this->_retvalue = $this->yystack[ $this->yyidx + - 1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor; 1521 } 1522 1523 #line 288 "../smarty/lexer/smarty_internal_templateparser.y" 1524 function yy_r10() 1525 { 1526 $this->strip = true; 1527 } 1528 1529 #line 292 "../smarty/lexer/smarty_internal_templateparser.y" 1530 function yy_r11() 1531 { 1532 $this->strip = false; 1533 } 1534 1535 #line 297 "../smarty/lexer/smarty_internal_templateparser.y" 1536 function yy_r12() 1537 { 1538 $this->_retvalue = ''; 1539 } 1540 1541 #line 301 "../smarty/lexer/smarty_internal_templateparser.y" 1542 function yy_r13() 1543 { 1544 $this->_retvalue = $this->yystack[ $this->yyidx + - 1 ]->minor; 1545 } 1546 1547 #line 305 "../smarty/lexer/smarty_internal_templateparser.y" 1548 function yy_r14() 1549 { 1550 $this->_retvalue = $this->yystack[ $this->yyidx + - 1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor; 1551 } 1552 1553 #line 321 "../smarty/lexer/smarty_internal_templateparser.y" 1554 function yy_r18() 1555 { 1556 $this->_retvalue = $this->yystack[ $this->yyidx + - 1 ]->minor; 1557 } 1558 1559 #line 327 "../smarty/lexer/smarty_internal_templateparser.y" 1560 function yy_r19() 1561 { 1562 $var = 1563 trim(substr($this->yystack[ $this->yyidx + 0 ]->minor, $this->lex->ldel_length, - $this->lex->rdel_length), 1564 ' $'); 1565 if (preg_match('/^(.*)(\s+nocache)$/', $var, $match)) { 1566 $this->_retvalue = $this->compiler->compileTag('private_print_expression', array('nocache'), 1567 array('value' => $this->compiler->compileVariable('\'' . 1568 $match[ 1 ] . 1569 '\''))); 1570 } else { 1571 $this->_retvalue = $this->compiler->compileTag('private_print_expression', array(), 1572 array('value' => $this->compiler->compileVariable('\'' . 1573 $var . 1574 '\''))); 1575 } 1576 } 1577 1578 #line 337 "../smarty/lexer/smarty_internal_templateparser.y" 1579 function yy_r20() 1580 { 1581 $this->_retvalue = $this->compiler->compileTag('private_print_expression', array(), 1582 array('value' => $this->yystack[ $this->yyidx + 0 ]->minor)); 1583 } 1584 1585 #line 341 "../smarty/lexer/smarty_internal_templateparser.y" 1586 function yy_r21() 1587 { 1588 $this->_retvalue = 1589 $this->compiler->compileTag('private_print_expression', $this->yystack[ $this->yyidx + 0 ]->minor, 1590 array('value' => $this->yystack[ $this->yyidx + - 1 ]->minor)); 1591 } 1592 1593 #line 364 "../smarty/lexer/smarty_internal_templateparser.y" 1594 function yy_r26() 1595 { 1596 $this->_retvalue = $this->compiler->compileTag('assign', array(array('value' => $this->yystack[ $this->yyidx + 1597 0 ]->minor), 1598 array('var' => '\'' . 1599 substr($this->yystack[ $this->yyidx + 1600 - 2 ]->minor, 1601 1) . '\''))); 1602 } 1603 1604 #line 372 "../smarty/lexer/smarty_internal_templateparser.y" 1605 function yy_r28() 1606 { 1607 $this->_retvalue = $this->compiler->compileTag('assign', 1608 array_merge(array(array('value' => $this->yystack[ $this->yyidx + 1609 - 1 ]->minor), 1610 array('var' => '\'' . 1611 substr($this->yystack[ $this->yyidx + 1612 - 3 ]->minor, 1613 1) . '\'')), 1614 $this->yystack[ $this->yyidx + 0 ]->minor)); 1615 } 1616 1617 #line 376 "../smarty/lexer/smarty_internal_templateparser.y" 1618 function yy_r29() 1619 { 1620 $this->_retvalue = $this->compiler->compileTag('assign', 1621 array_merge(array(array('value' => $this->yystack[ $this->yyidx + 1622 - 1 ]->minor), 1623 array('var' => $this->yystack[ $this->yyidx + 1624 - 3 ]->minor[ 'var' ])), 1625 $this->yystack[ $this->yyidx + 0 ]->minor), 1626 array('smarty_internal_index' => $this->yystack[ $this->yyidx + 1627 - 3 ]->minor[ 'smarty_internal_index' ])); 1628 } 1629 1630 #line 381 "../smarty/lexer/smarty_internal_templateparser.y" 1631 function yy_r30() 1632 { 1633 $tag = 1634 trim(substr($this->yystack[ $this->yyidx + 0 ]->minor, $this->lex->ldel_length, - $this->lex->rdel_length)); 1635 if ($tag == 'strip') { 1636 $this->strip = true; 1637 $this->_retvalue = null;; 1638 } else { 1639 if (defined($tag)) { 1640 if ($this->security) { 1641 $this->security->isTrustedConstant($tag, $this->compiler); 1642 } 1643 $this->_retvalue = 1644 $this->compiler->compileTag('private_print_expression', array(), array('value' => $tag)); 1645 } else { 1646 if (preg_match('/^(.*)(\s+nocache)$/', $tag, $match)) { 1647 $this->_retvalue = $this->compiler->compileTag($match[ 1 ], array("'nocache'")); 1648 } else { 1649 $this->_retvalue = $this->compiler->compileTag($tag, array()); 1650 } 1651 } 1652 } 1653 } 1654 1655 #line 403 "../smarty/lexer/smarty_internal_templateparser.y" 1656 function yy_r31() 1657 { 1658 if (defined($this->yystack[ $this->yyidx + - 1 ]->minor)) { 1659 if ($this->security) { 1660 $this->security->isTrustedConstant($this->yystack[ $this->yyidx + - 1 ]->minor, $this->compiler); 1661 } 1662 $this->_retvalue = 1663 $this->compiler->compileTag('private_print_expression', $this->yystack[ $this->yyidx + 0 ]->minor, 1664 array('value' => $this->yystack[ $this->yyidx + - 1 ]->minor)); 1665 } else { 1666 $this->_retvalue = $this->compiler->compileTag($this->yystack[ $this->yyidx + - 1 ]->minor, 1667 $this->yystack[ $this->yyidx + 0 ]->minor); 1668 } 1669 } 1670 1671 #line 413 "../smarty/lexer/smarty_internal_templateparser.y" 1672 function yy_r32() 1673 { 1674 if (defined($this->yystack[ $this->yyidx + 0 ]->minor)) { 1675 if ($this->security) { 1676 $this->security->isTrustedConstant($this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler); 1677 } 1678 $this->_retvalue = $this->compiler->compileTag('private_print_expression', array(), 1679 array('value' => $this->yystack[ $this->yyidx + 0 ]->minor)); 1680 } else { 1681 $this->_retvalue = $this->compiler->compileTag($this->yystack[ $this->yyidx + 0 ]->minor, array()); 1682 } 1683 } 1684 1685 #line 426 "../smarty/lexer/smarty_internal_templateparser.y" 1686 function yy_r33() 1687 { 1688 if (defined($this->yystack[ $this->yyidx + - 2 ]->minor)) { 1689 if ($this->security) { 1690 $this->security->isTrustedConstant($this->yystack[ $this->yyidx + - 2 ]->minor, $this->compiler); 1691 } 1692 $this->_retvalue = 1693 $this->compiler->compileTag('private_print_expression', $this->yystack[ $this->yyidx + 0 ]->minor, 1694 array('value' => $this->yystack[ $this->yyidx + - 2 ]->minor, 1695 'modifierlist' => $this->yystack[ $this->yyidx + - 1 ]->minor)); 1696 } else { 1697 $this->_retvalue = $this->compiler->compileTag($this->yystack[ $this->yyidx + - 2 ]->minor, 1698 $this->yystack[ $this->yyidx + 0 ]->minor, 1699 array('modifierlist' => $this->yystack[ $this->yyidx + 1700 - 1 ]->minor)); 1701 } 1702 } 1703 1704 #line 438 "../smarty/lexer/smarty_internal_templateparser.y" 1705 function yy_r34() 1706 { 1707 $this->_retvalue = $this->compiler->compileTag($this->yystack[ $this->yyidx + - 3 ]->minor, 1708 $this->yystack[ $this->yyidx + 0 ]->minor, 1709 array('object_method' => $this->yystack[ $this->yyidx + 1710 - 1 ]->minor)); 1711 } 1712 1713 #line 443 "../smarty/lexer/smarty_internal_templateparser.y" 1714 function yy_r35() 1715 { 1716 $this->_retvalue = $this->compiler->compileTag($this->yystack[ $this->yyidx + - 4 ]->minor, 1717 $this->yystack[ $this->yyidx + 0 ]->minor, 1718 array('modifierlist' => $this->yystack[ $this->yyidx + 1719 - 1 ]->minor, 1720 'object_method' => $this->yystack[ $this->yyidx + 1721 - 2 ]->minor)); 1722 } 1723 1724 #line 448 "../smarty/lexer/smarty_internal_templateparser.y" 1725 function yy_r36() 1726 { 1727 $this->_retvalue = $this->compiler->compileTag('make_nocache', array(array('var' => '\'' . 1728 substr($this->yystack[ $this->yyidx + 1729 0 ]->minor, 1730 1) . '\''))); 1731 } 1732 1733 #line 453 "../smarty/lexer/smarty_internal_templateparser.y" 1734 function yy_r37() 1735 { 1736 $tag = trim(substr($this->yystack[ $this->yyidx + - 1 ]->minor, $this->lex->ldel_length)); 1737 $this->_retvalue = $this->compiler->compileTag(($tag == 'else if') ? 'elseif' : $tag, array(), 1738 array('if condition' => $this->yystack[ $this->yyidx + 1739 0 ]->minor)); 1740 } 1741 1742 #line 458 "../smarty/lexer/smarty_internal_templateparser.y" 1743 function yy_r38() 1744 { 1745 $tag = trim(substr($this->yystack[ $this->yyidx + - 2 ]->minor, $this->lex->ldel_length)); 1746 $this->_retvalue = $this->compiler->compileTag(($tag == 'else if') ? 'elseif' : $tag, 1747 $this->yystack[ $this->yyidx + 0 ]->minor, 1748 array('if condition' => $this->yystack[ $this->yyidx + 1749 - 1 ]->minor)); 1750 } 1751 1752 #line 463 "../smarty/lexer/smarty_internal_templateparser.y" 1753 function yy_r39() 1754 { 1755 $tag = trim(substr($this->yystack[ $this->yyidx + - 1 ]->minor, $this->lex->ldel_length)); 1756 $this->_retvalue = $this->compiler->compileTag(($tag == 'else if') ? 'elseif' : $tag, array(), 1757 array('if condition' => $this->yystack[ $this->yyidx + 1758 0 ]->minor)); 1759 } 1760 1761 #line 474 "../smarty/lexer/smarty_internal_templateparser.y" 1762 function yy_r41() 1763 { 1764 $this->_retvalue = $this->compiler->compileTag('for', array_merge($this->yystack[ $this->yyidx + 0 ]->minor, 1765 array(array('start' => $this->yystack[ $this->yyidx + 1766 - 6 ]->minor), 1767 array('ifexp' => $this->yystack[ $this->yyidx + 1768 - 4 ]->minor), 1769 array('var' => $this->yystack[ $this->yyidx + 1770 - 2 ]->minor), 1771 array('step' => $this->yystack[ $this->yyidx + 1772 - 1 ]->minor))), 1773 1); 1774 } 1775 1776 #line 478 "../smarty/lexer/smarty_internal_templateparser.y" 1777 function yy_r42() 1778 { 1779 $this->_retvalue = '=' . $this->yystack[ $this->yyidx + 0 ]->minor; 1780 } 1781 1782 #line 486 "../smarty/lexer/smarty_internal_templateparser.y" 1783 function yy_r44() 1784 { 1785 $this->_retvalue = $this->compiler->compileTag('for', array_merge($this->yystack[ $this->yyidx + 0 ]->minor, 1786 array(array('start' => $this->yystack[ $this->yyidx + 1787 - 3 ]->minor), 1788 array('to' => $this->yystack[ $this->yyidx + 1789 - 1 ]->minor))), 1790 0); 1791 } 1792 1793 #line 490 "../smarty/lexer/smarty_internal_templateparser.y" 1794 function yy_r45() 1795 { 1796 $this->_retvalue = $this->compiler->compileTag('for', array_merge($this->yystack[ $this->yyidx + 0 ]->minor, 1797 array(array('start' => $this->yystack[ $this->yyidx + 1798 - 5 ]->minor), 1799 array('to' => $this->yystack[ $this->yyidx + 1800 - 3 ]->minor), 1801 array('step' => $this->yystack[ $this->yyidx + 1802 - 1 ]->minor))), 1803 0); 1804 } 1805 1806 #line 495 "../smarty/lexer/smarty_internal_templateparser.y" 1807 function yy_r46() 1808 { 1809 $this->_retvalue = $this->compiler->compileTag('foreach', $this->yystack[ $this->yyidx + 0 ]->minor); 1810 } 1811 1812 #line 500 "../smarty/lexer/smarty_internal_templateparser.y" 1813 function yy_r47() 1814 { 1815 $this->_retvalue = $this->compiler->compileTag('foreach', array_merge($this->yystack[ $this->yyidx + 0 ]->minor, 1816 array(array('from' => $this->yystack[ $this->yyidx + 1817 - 3 ]->minor), 1818 array('item' => $this->yystack[ $this->yyidx + 1819 - 1 ]->minor)))); 1820 } 1821 1822 #line 504 "../smarty/lexer/smarty_internal_templateparser.y" 1823 function yy_r48() 1824 { 1825 $this->_retvalue = $this->compiler->compileTag('foreach', array_merge($this->yystack[ $this->yyidx + 0 ]->minor, 1826 array(array('from' => $this->yystack[ $this->yyidx + 1827 - 5 ]->minor), 1828 array('item' => $this->yystack[ $this->yyidx + 1829 - 1 ]->minor), 1830 array('key' => $this->yystack[ $this->yyidx + 1831 - 3 ]->minor)))); 1832 } 1833 1834 #line 517 "../smarty/lexer/smarty_internal_templateparser.y" 1835 function yy_r51() 1836 { 1837 $this->_retvalue = $this->compiler->compileTag('setfilter', array(), 1838 array('modifier_list' => array(array_merge(array($this->yystack[ $this->yyidx + 1839 - 1 ]->minor), 1840 $this->yystack[ $this->yyidx + 1841 0 ]->minor)))); 1842 } 1843 1844 #line 521 "../smarty/lexer/smarty_internal_templateparser.y" 1845 function yy_r52() 1846 { 1847 $this->_retvalue = $this->compiler->compileTag('setfilter', array(), 1848 array('modifier_list' => array_merge(array(array_merge(array($this->yystack[ $this->yyidx + 1849 - 2 ]->minor), 1850 $this->yystack[ $this->yyidx + 1851 - 1 ]->minor)), 1852 $this->yystack[ $this->yyidx + 1853 0 ]->minor))); 1854 } 1855 1856 #line 526 "../smarty/lexer/smarty_internal_templateparser.y" 1857 function yy_r53() 1858 { 1859 $j = strrpos($this->yystack[ $this->yyidx + 0 ]->minor, '.'); 1860 if ($this->yystack[ $this->yyidx + 0 ]->minor[ $j + 1 ] == 'c') { 1861 // {$smarty.block.child} 1862 $this->_retvalue = $this->compiler->compileTag('block_child', array());; 1863 } else { 1864 // {$smarty.block.parent} 1865 $this->_retvalue = $this->compiler->compileTag('block_parent', array());; 1866 } 1867 } 1868 1869 #line 539 "../smarty/lexer/smarty_internal_templateparser.y" 1870 function yy_r54() 1871 { 1872 $tag = 1873 trim(substr($this->yystack[ $this->yyidx + 0 ]->minor, $this->lex->ldel_length, - $this->lex->rdel_length), 1874 ' /'); 1875 if ($tag == 'strip') { 1876 $this->strip = false; 1877 $this->_retvalue = null; 1878 } else { 1879 $this->_retvalue = $this->compiler->compileTag($tag . 'close', array()); 1880 } 1881 } 1882 1883 #line 548 "../smarty/lexer/smarty_internal_templateparser.y" 1884 function yy_r55() 1885 { 1886 $this->_retvalue = $this->compiler->compileTag($this->yystack[ $this->yyidx + 0 ]->minor . 'close', array()); 1887 } 1888 1889 #line 552 "../smarty/lexer/smarty_internal_templateparser.y" 1890 function yy_r56() 1891 { 1892 $this->_retvalue = $this->compiler->compileTag($this->yystack[ $this->yyidx + - 1 ]->minor . 'close', array(), 1893 array('modifier_list' => $this->yystack[ $this->yyidx + 1894 0 ]->minor)); 1895 } 1896 1897 #line 557 "../smarty/lexer/smarty_internal_templateparser.y" 1898 function yy_r57() 1899 { 1900 $this->_retvalue = $this->compiler->compileTag($this->yystack[ $this->yyidx + - 2 ]->minor . 'close', array(), 1901 array('object_method' => $this->yystack[ $this->yyidx + 1902 0 ]->minor)); 1903 } 1904 1905 #line 561 "../smarty/lexer/smarty_internal_templateparser.y" 1906 function yy_r58() 1907 { 1908 $this->_retvalue = $this->compiler->compileTag($this->yystack[ $this->yyidx + - 3 ]->minor . 'close', array(), 1909 array('object_method' => $this->yystack[ $this->yyidx + 1910 - 1 ]->minor, 1911 'modifier_list' => $this->yystack[ $this->yyidx + 1912 0 ]->minor)); 1913 } 1914 1915 #line 569 "../smarty/lexer/smarty_internal_templateparser.y" 1916 function yy_r59() 1917 { 1918 $this->_retvalue = $this->yystack[ $this->yyidx + - 1 ]->minor; 1919 $this->_retvalue[] = $this->yystack[ $this->yyidx + 0 ]->minor; 1920 } 1921 1922 #line 575 "../smarty/lexer/smarty_internal_templateparser.y" 1923 function yy_r60() 1924 { 1925 $this->_retvalue = array($this->yystack[ $this->yyidx + 0 ]->minor); 1926 } 1927 1928 #line 580 "../smarty/lexer/smarty_internal_templateparser.y" 1929 function yy_r61() 1930 { 1931 $this->_retvalue = array(); 1932 } 1933 1934 #line 585 "../smarty/lexer/smarty_internal_templateparser.y" 1935 function yy_r62() 1936 { 1937 if (defined($this->yystack[ $this->yyidx + 0 ]->minor)) { 1938 if ($this->security) { 1939 $this->security->isTrustedConstant($this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler); 1940 } 1941 $this->_retvalue = 1942 array($this->yystack[ $this->yyidx + - 2 ]->minor => $this->yystack[ $this->yyidx + 0 ]->minor); 1943 } else { 1944 $this->_retvalue = 1945 array($this->yystack[ $this->yyidx + - 2 ]->minor => '\'' . $this->yystack[ $this->yyidx + 0 ]->minor . 1946 '\''); 1947 } 1948 } 1949 1950 #line 596 "../smarty/lexer/smarty_internal_templateparser.y" 1951 function yy_r63() 1952 { 1953 $this->_retvalue = 1954 array(trim($this->yystack[ $this->yyidx + - 1 ]->minor, " =\n\r\t") => $this->yystack[ $this->yyidx + 1955 0 ]->minor); 1956 } 1957 1958 #line 604 "../smarty/lexer/smarty_internal_templateparser.y" 1959 function yy_r65() 1960 { 1961 $this->_retvalue = '\'' . $this->yystack[ $this->yyidx + 0 ]->minor . '\''; 1962 } 1963 1964 #line 616 "../smarty/lexer/smarty_internal_templateparser.y" 1965 function yy_r68() 1966 { 1967 $this->_retvalue = 1968 array($this->yystack[ $this->yyidx + - 2 ]->minor => $this->yystack[ $this->yyidx + 0 ]->minor); 1969 } 1970 1971 #line 629 "../smarty/lexer/smarty_internal_templateparser.y" 1972 function yy_r70() 1973 { 1974 $this->yystack[ $this->yyidx + - 2 ]->minor[] = $this->yystack[ $this->yyidx + 0 ]->minor; 1975 $this->_retvalue = $this->yystack[ $this->yyidx + - 2 ]->minor; 1976 } 1977 1978 #line 634 "../smarty/lexer/smarty_internal_templateparser.y" 1979 function yy_r71() 1980 { 1981 $this->_retvalue = array('var' => '\'' . substr($this->yystack[ $this->yyidx + - 2 ]->minor, 1) . '\'', 1982 'value' => $this->yystack[ $this->yyidx + 0 ]->minor); 1983 } 1984 1985 #line 641 "../smarty/lexer/smarty_internal_templateparser.y" 1986 function yy_r73() 1987 { 1988 $this->_retvalue = array('var' => $this->yystack[ $this->yyidx + - 2 ]->minor, 1989 'value' => $this->yystack[ $this->yyidx + 0 ]->minor); 1990 } 1991 1992 #line 665 "../smarty/lexer/smarty_internal_templateparser.y" 1993 function yy_r77() 1994 { 1995 $this->_retvalue = 1996 '$_smarty_tpl->getStreamVariable(\'' . substr($this->yystack[ $this->yyidx + - 2 ]->minor, 1) . '://' . 1997 $this->yystack[ $this->yyidx + 0 ]->minor . '\')'; 1998 } 1999 2000 #line 670 "../smarty/lexer/smarty_internal_templateparser.y" 2001 function yy_r78() 2002 { 2003 $this->_retvalue = 2004 $this->yystack[ $this->yyidx + - 2 ]->minor . trim($this->yystack[ $this->yyidx + - 1 ]->minor) . 2005 $this->yystack[ $this->yyidx + 0 ]->minor; 2006 } 2007 2008 #line 684 "../smarty/lexer/smarty_internal_templateparser.y" 2009 function yy_r81() 2010 { 2011 $this->_retvalue = $this->compiler->compileTag('private_modifier', array(), 2012 array('value' => $this->yystack[ $this->yyidx + - 1 ]->minor, 2013 'modifierlist' => $this->yystack[ $this->yyidx + 2014 0 ]->minor)); 2015 } 2016 2017 #line 690 "../smarty/lexer/smarty_internal_templateparser.y" 2018 function yy_r82() 2019 { 2020 $this->_retvalue = 2021 $this->yystack[ $this->yyidx + - 1 ]->minor[ 'pre' ] . $this->yystack[ $this->yyidx + - 2 ]->minor . 2022 $this->yystack[ $this->yyidx + - 1 ]->minor[ 'op' ] . $this->yystack[ $this->yyidx + 0 ]->minor . ')'; 2023 } 2024 2025 #line 694 "../smarty/lexer/smarty_internal_templateparser.y" 2026 function yy_r83() 2027 { 2028 $this->_retvalue = $this->yystack[ $this->yyidx + - 2 ]->minor . $this->yystack[ $this->yyidx + - 1 ]->minor . 2029 $this->yystack[ $this->yyidx + 0 ]->minor; 2030 } 2031 2032 #line 698 "../smarty/lexer/smarty_internal_templateparser.y" 2033 function yy_r84() 2034 { 2035 $this->_retvalue = 2036 $this->yystack[ $this->yyidx + 0 ]->minor . $this->yystack[ $this->yyidx + - 1 ]->minor . ')'; 2037 } 2038 2039 #line 702 "../smarty/lexer/smarty_internal_templateparser.y" 2040 function yy_r85() 2041 { 2042 $this->_retvalue = 'in_array(' . $this->yystack[ $this->yyidx + - 2 ]->minor . ',' . 2043 $this->yystack[ $this->yyidx + 0 ]->minor . ')'; 2044 } 2045 2046 #line 706 "../smarty/lexer/smarty_internal_templateparser.y" 2047 function yy_r86() 2048 { 2049 $this->_retvalue = 'in_array(' . $this->yystack[ $this->yyidx + - 2 ]->minor . ',(array)' . 2050 $this->yystack[ $this->yyidx + 0 ]->minor . ')'; 2051 } 2052 2053 #line 714 "../smarty/lexer/smarty_internal_templateparser.y" 2054 function yy_r87() 2055 { 2056 $this->_retvalue = $this->yystack[ $this->yyidx + - 5 ]->minor . ' ? ' . $this->compiler->compileVariable('\'' . 2057 substr($this->yystack[ $this->yyidx + 2058 - 2 ]->minor, 2059 1) . 2060 '\'') . 2061 ' : ' . $this->yystack[ $this->yyidx + 0 ]->minor; 2062 } 2063 2064 #line 718 "../smarty/lexer/smarty_internal_templateparser.y" 2065 function yy_r88() 2066 { 2067 $this->_retvalue = 2068 $this->yystack[ $this->yyidx + - 5 ]->minor . ' ? ' . $this->yystack[ $this->yyidx + - 2 ]->minor . ' : ' . 2069 $this->yystack[ $this->yyidx + 0 ]->minor; 2070 } 2071 2072 #line 733 "../smarty/lexer/smarty_internal_templateparser.y" 2073 function yy_r91() 2074 { 2075 $this->_retvalue = '!' . $this->yystack[ $this->yyidx + 0 ]->minor; 2076 } 2077 2078 #line 754 "../smarty/lexer/smarty_internal_templateparser.y" 2079 function yy_r96() 2080 { 2081 $this->_retvalue = 2082 $this->yystack[ $this->yyidx + - 2 ]->minor . '.' . $this->yystack[ $this->yyidx + 0 ]->minor; 2083 } 2084 2085 #line 758 "../smarty/lexer/smarty_internal_templateparser.y" 2086 function yy_r97() 2087 { 2088 $this->_retvalue = $this->yystack[ $this->yyidx + - 1 ]->minor . '.'; 2089 } 2090 2091 #line 762 "../smarty/lexer/smarty_internal_templateparser.y" 2092 function yy_r98() 2093 { 2094 $this->_retvalue = '.' . $this->yystack[ $this->yyidx + 0 ]->minor; 2095 } 2096 2097 #line 767 "../smarty/lexer/smarty_internal_templateparser.y" 2098 function yy_r99() 2099 { 2100 if (defined($this->yystack[ $this->yyidx + 0 ]->minor)) { 2101 if ($this->security) { 2102 $this->security->isTrustedConstant($this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler); 2103 } 2104 $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor; 2105 } else { 2106 $this->_retvalue = '\'' . $this->yystack[ $this->yyidx + 0 ]->minor . '\''; 2107 } 2108 } 2109 2110 #line 784 "../smarty/lexer/smarty_internal_templateparser.y" 2111 function yy_r101() 2112 { 2113 $this->_retvalue = "(" . $this->yystack[ $this->yyidx + - 1 ]->minor . ")"; 2114 } 2115 2116 #line 788 "../smarty/lexer/smarty_internal_templateparser.y" 2117 function yy_r102() 2118 { 2119 $this->_retvalue = $this->yystack[ $this->yyidx + - 2 ]->minor . $this->yystack[ $this->yyidx + - 1 ]->minor . 2120 $this->yystack[ $this->yyidx + 0 ]->minor; 2121 } 2122 2123 #line 806 "../smarty/lexer/smarty_internal_templateparser.y" 2124 function yy_r106() 2125 { 2126 $prefixVar = $this->compiler->getNewPrefixVariable(); 2127 if ($this->yystack[ $this->yyidx + - 2 ]->minor[ 'var' ] == '\'smarty\'') { 2128 $this->compiler->appendPrefixCode("<?php $prefixVar" . ' = ' . 2129 $this->compiler->compileTag('private_special_variable', array(), 2130 $this->yystack[ $this->yyidx + 2131 - 2 ]->minor[ 'smarty_internal_index' ]) . 2132 ';?>'); 2133 } else { 2134 $this->compiler->appendPrefixCode("<?php $prefixVar" . ' = ' . 2135 $this->compiler->compileVariable($this->yystack[ $this->yyidx + 2136 - 2 ]->minor[ 'var' ]) . 2137 $this->yystack[ $this->yyidx + - 2 ]->minor[ 'smarty_internal_index' ] . 2138 ';?>'); 2139 } 2140 $this->_retvalue = $prefixVar . '::' . $this->yystack[ $this->yyidx + 0 ]->minor[ 0 ] . 2141 $this->yystack[ $this->yyidx + 0 ]->minor[ 1 ]; 2142 } 2143 2144 #line 817 "../smarty/lexer/smarty_internal_templateparser.y" 2145 function yy_r107() 2146 { 2147 $prefixVar = $this->compiler->getNewPrefixVariable(); 2148 $tmp = $this->compiler->appendCode('<?php ob_start();?>', $this->yystack[ $this->yyidx + 0 ]->minor); 2149 $this->compiler->appendPrefixCode($this->compiler->appendCode($tmp, "<?php $prefixVar" . '=ob_get_clean();?>')); 2150 $this->_retvalue = $prefixVar; 2151 } 2152 2153 #line 834 "../smarty/lexer/smarty_internal_templateparser.y" 2154 function yy_r110() 2155 { 2156 if (!in_array(strtolower($this->yystack[ $this->yyidx + - 2 ]->minor), array('self', 'parent')) && 2157 (!$this->security || 2158 $this->security->isTrustedStaticClassAccess($this->yystack[ $this->yyidx + - 2 ]->minor, 2159 $this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler)) 2160 ) { 2161 if (isset($this->smarty->registered_classes[ $this->yystack[ $this->yyidx + - 2 ]->minor ])) { 2162 $this->_retvalue = 2163 $this->smarty->registered_classes[ $this->yystack[ $this->yyidx + - 2 ]->minor ] . '::' . 2164 $this->yystack[ $this->yyidx + 0 ]->minor[ 0 ] . $this->yystack[ $this->yyidx + 0 ]->minor[ 1 ]; 2165 } else { 2166 $this->_retvalue = $this->yystack[ $this->yyidx + - 2 ]->minor . '::' . 2167 $this->yystack[ $this->yyidx + 0 ]->minor[ 0 ] . 2168 $this->yystack[ $this->yyidx + 0 ]->minor[ 1 ]; 2169 } 2170 } else { 2171 $this->compiler->trigger_template_error("static class '" . $this->yystack[ $this->yyidx + - 2 ]->minor . 2172 "' is undefined or not allowed by security setting"); 2173 } 2174 } 2175 2176 #line 853 "../smarty/lexer/smarty_internal_templateparser.y" 2177 function yy_r112() 2178 { 2179 $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor; 2180 } 2181 2182 #line 864 "../smarty/lexer/smarty_internal_templateparser.y" 2183 function yy_r113() 2184 { 2185 $this->_retvalue = 2186 $this->compiler->compileVariable('\'' . substr($this->yystack[ $this->yyidx + 0 ]->minor, 1) . '\''); 2187 } 2188 2189 #line 867 "../smarty/lexer/smarty_internal_templateparser.y" 2190 function yy_r114() 2191 { 2192 if ($this->yystack[ $this->yyidx + 0 ]->minor[ 'var' ] == '\'smarty\'') { 2193 $smarty_var = $this->compiler->compileTag('private_special_variable', array(), 2194 $this->yystack[ $this->yyidx + 2195 0 ]->minor[ 'smarty_internal_index' ]); 2196 $this->_retvalue = $smarty_var; 2197 } else { 2198 // used for array reset,next,prev,end,current 2199 $this->last_variable = $this->yystack[ $this->yyidx + 0 ]->minor[ 'var' ]; 2200 $this->last_index = $this->yystack[ $this->yyidx + 0 ]->minor[ 'smarty_internal_index' ]; 2201 $this->_retvalue = $this->compiler->compileVariable($this->yystack[ $this->yyidx + 0 ]->minor[ 'var' ]) . 2202 $this->yystack[ $this->yyidx + 0 ]->minor[ 'smarty_internal_index' ]; 2203 } 2204 } 2205 2206 #line 880 "../smarty/lexer/smarty_internal_templateparser.y" 2207 function yy_r115() 2208 { 2209 $this->_retvalue = '$_smarty_tpl->tpl_vars[' . $this->yystack[ $this->yyidx + - 2 ]->minor . ']->' . 2210 $this->yystack[ $this->yyidx + 0 ]->minor; 2211 } 2212 2213 #line 890 "../smarty/lexer/smarty_internal_templateparser.y" 2214 function yy_r117() 2215 { 2216 $this->_retvalue = 2217 $this->compiler->compileConfigVariable("'" . $this->yystack[ $this->yyidx + - 1 ]->minor . "'"); 2218 } 2219 2220 #line 894 "../smarty/lexer/smarty_internal_templateparser.y" 2221 function yy_r118() 2222 { 2223 $this->_retvalue = '(is_array($tmp = ' . 2224 $this->compiler->compileConfigVariable("'" . $this->yystack[ $this->yyidx + - 2 ]->minor . 2225 "'") . ') ? $tmp' . 2226 $this->yystack[ $this->yyidx + 0 ]->minor . ' :null)'; 2227 } 2228 2229 #line 898 "../smarty/lexer/smarty_internal_templateparser.y" 2230 function yy_r119() 2231 { 2232 $this->_retvalue = $this->compiler->compileConfigVariable($this->yystack[ $this->yyidx + - 1 ]->minor); 2233 } 2234 2235 #line 902 "../smarty/lexer/smarty_internal_templateparser.y" 2236 function yy_r120() 2237 { 2238 $this->_retvalue = 2239 '(is_array($tmp = ' . $this->compiler->compileConfigVariable($this->yystack[ $this->yyidx + - 2 ]->minor) . 2240 ') ? $tmp' . $this->yystack[ $this->yyidx + 0 ]->minor . ' : null)'; 2241 } 2242 2243 #line 906 "../smarty/lexer/smarty_internal_templateparser.y" 2244 function yy_r121() 2245 { 2246 $this->_retvalue = array('var' => '\'' . substr($this->yystack[ $this->yyidx + - 1 ]->minor, 1) . '\'', 2247 'smarty_internal_index' => $this->yystack[ $this->yyidx + 0 ]->minor); 2248 } 2249 2250 #line 909 "../smarty/lexer/smarty_internal_templateparser.y" 2251 function yy_r122() 2252 { 2253 $this->_retvalue = array('var' => $this->yystack[ $this->yyidx + - 1 ]->minor, 2254 'smarty_internal_index' => $this->yystack[ $this->yyidx + 0 ]->minor); 2255 } 2256 2257 #line 922 "../smarty/lexer/smarty_internal_templateparser.y" 2258 function yy_r124() 2259 { 2260 return; 2261 } 2262 2263 #line 928 "../smarty/lexer/smarty_internal_templateparser.y" 2264 function yy_r125() 2265 { 2266 $this->_retvalue = 2267 '[' . $this->compiler->compileVariable('\'' . substr($this->yystack[ $this->yyidx + 0 ]->minor, 1) . '\'') . 2268 ']'; 2269 } 2270 2271 #line 931 "../smarty/lexer/smarty_internal_templateparser.y" 2272 function yy_r126() 2273 { 2274 $this->_retvalue = '[' . $this->compiler->compileVariable($this->yystack[ $this->yyidx + 0 ]->minor) . ']'; 2275 } 2276 2277 #line 935 "../smarty/lexer/smarty_internal_templateparser.y" 2278 function yy_r127() 2279 { 2280 $this->_retvalue = '[' . $this->compiler->compileVariable($this->yystack[ $this->yyidx + - 2 ]->minor) . '->' . 2281 $this->yystack[ $this->yyidx + 0 ]->minor . ']'; 2282 } 2283 2284 #line 939 "../smarty/lexer/smarty_internal_templateparser.y" 2285 function yy_r128() 2286 { 2287 $this->_retvalue = "['" . $this->yystack[ $this->yyidx + 0 ]->minor . "']"; 2288 } 2289 2290 #line 943 "../smarty/lexer/smarty_internal_templateparser.y" 2291 function yy_r129() 2292 { 2293 $this->_retvalue = '[' . $this->yystack[ $this->yyidx + 0 ]->minor . ']'; 2294 } 2295 2296 #line 948 "../smarty/lexer/smarty_internal_templateparser.y" 2297 function yy_r130() 2298 { 2299 $this->_retvalue = '[' . $this->yystack[ $this->yyidx + - 1 ]->minor . ']'; 2300 } 2301 2302 #line 953 "../smarty/lexer/smarty_internal_templateparser.y" 2303 function yy_r131() 2304 { 2305 $this->_retvalue = '[' . $this->compiler->compileTag('private_special_variable', array(), '[\'section\'][\'' . 2306 $this->yystack[ $this->yyidx + 2307 - 1 ]->minor . 2308 '\'][\'index\']') . 2309 ']'; 2310 } 2311 2312 #line 957 "../smarty/lexer/smarty_internal_templateparser.y" 2313 function yy_r132() 2314 { 2315 $this->_retvalue = '[' . $this->compiler->compileTag('private_special_variable', array(), '[\'section\'][\'' . 2316 $this->yystack[ $this->yyidx + 2317 - 3 ]->minor . 2318 '\'][\'' . 2319 $this->yystack[ $this->yyidx + 2320 - 1 ]->minor . 2321 '\']') . ']'; 2322 } 2323 2324 #line 960 "../smarty/lexer/smarty_internal_templateparser.y" 2325 function yy_r133() 2326 { 2327 $this->_retvalue = '[' . $this->yystack[ $this->yyidx + - 1 ]->minor . ']'; 2328 } 2329 2330 #line 966 "../smarty/lexer/smarty_internal_templateparser.y" 2331 function yy_r135() 2332 { 2333 $this->_retvalue = '[' . $this->compiler->compileVariable('\'' . 2334 substr($this->yystack[ $this->yyidx + - 1 ]->minor, 2335 1) . '\'') . ']';; 2336 } 2337 2338 #line 982 "../smarty/lexer/smarty_internal_templateparser.y" 2339 function yy_r139() 2340 { 2341 $this->_retvalue = '[]'; 2342 } 2343 2344 #line 992 "../smarty/lexer/smarty_internal_templateparser.y" 2345 function yy_r140() 2346 { 2347 $this->_retvalue = '\'' . substr($this->yystack[ $this->yyidx + 0 ]->minor, 1) . '\''; 2348 } 2349 2350 #line 996 "../smarty/lexer/smarty_internal_templateparser.y" 2351 function yy_r141() 2352 { 2353 $this->_retvalue = "''"; 2354 } 2355 2356 #line 1001 "../smarty/lexer/smarty_internal_templateparser.y" 2357 function yy_r142() 2358 { 2359 $this->_retvalue = 2360 $this->yystack[ $this->yyidx + - 1 ]->minor . '.' . $this->yystack[ $this->yyidx + 0 ]->minor; 2361 } 2362 2363 #line 1009 "../smarty/lexer/smarty_internal_templateparser.y" 2364 function yy_r144() 2365 { 2366 $var = 2367 trim(substr($this->yystack[ $this->yyidx + 0 ]->minor, $this->lex->ldel_length, - $this->lex->rdel_length), 2368 ' $'); 2369 $this->_retvalue = $this->compiler->compileVariable('\'' . $var . '\''); 2370 } 2371 2372 #line 1015 "../smarty/lexer/smarty_internal_templateparser.y" 2373 function yy_r145() 2374 { 2375 $this->_retvalue = '(' . $this->yystack[ $this->yyidx + - 1 ]->minor . ')'; 2376 } 2377 2378 #line 1022 "../smarty/lexer/smarty_internal_templateparser.y" 2379 function yy_r146() 2380 { 2381 if ($this->yystack[ $this->yyidx + - 1 ]->minor[ 'var' ] == '\'smarty\'') { 2382 $this->_retvalue = $this->compiler->compileTag('private_special_variable', array(), 2383 $this->yystack[ $this->yyidx + 2384 - 1 ]->minor[ 'smarty_internal_index' ]) . 2385 $this->yystack[ $this->yyidx + 0 ]->minor; 2386 } else { 2387 $this->_retvalue = $this->compiler->compileVariable($this->yystack[ $this->yyidx + - 1 ]->minor[ 'var' ]) . 2388 $this->yystack[ $this->yyidx + - 1 ]->minor[ 'smarty_internal_index' ] . 2389 $this->yystack[ $this->yyidx + 0 ]->minor; 2390 } 2391 } 2392 2393 #line 1031 "../smarty/lexer/smarty_internal_templateparser.y" 2394 function yy_r147() 2395 { 2396 $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor; 2397 } 2398 2399 #line 1036 "../smarty/lexer/smarty_internal_templateparser.y" 2400 function yy_r148() 2401 { 2402 $this->_retvalue = $this->yystack[ $this->yyidx + - 1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor; 2403 } 2404 2405 #line 1041 "../smarty/lexer/smarty_internal_templateparser.y" 2406 function yy_r149() 2407 { 2408 if ($this->security && substr($this->yystack[ $this->yyidx + - 1 ]->minor, 0, 1) == '_') { 2409 $this->compiler->trigger_template_error(self::Err1); 2410 } 2411 $this->_retvalue = 2412 '->' . $this->yystack[ $this->yyidx + - 1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor; 2413 } 2414 2415 #line 1048 "../smarty/lexer/smarty_internal_templateparser.y" 2416 function yy_r150() 2417 { 2418 if ($this->security) { 2419 $this->compiler->trigger_template_error(self::Err2); 2420 } 2421 $this->_retvalue = '->{' . $this->compiler->compileVariable($this->yystack[ $this->yyidx + - 1 ]->minor) . 2422 $this->yystack[ $this->yyidx + 0 ]->minor . '}'; 2423 } 2424 2425 #line 1055 "../smarty/lexer/smarty_internal_templateparser.y" 2426 function yy_r151() 2427 { 2428 if ($this->security) { 2429 $this->compiler->trigger_template_error(self::Err2); 2430 } 2431 $this->_retvalue = 2432 '->{' . $this->yystack[ $this->yyidx + - 2 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor . '}'; 2433 } 2434 2435 #line 1062 "../smarty/lexer/smarty_internal_templateparser.y" 2436 function yy_r152() 2437 { 2438 if ($this->security) { 2439 $this->compiler->trigger_template_error(self::Err2); 2440 } 2441 $this->_retvalue = '->{\'' . $this->yystack[ $this->yyidx + - 4 ]->minor . '\'.' . 2442 $this->yystack[ $this->yyidx + - 2 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor . 2443 '}'; 2444 } 2445 2446 #line 1070 "../smarty/lexer/smarty_internal_templateparser.y" 2447 function yy_r153() 2448 { 2449 $this->_retvalue = '->' . $this->yystack[ $this->yyidx + 0 ]->minor; 2450 } 2451 2452 #line 1078 "../smarty/lexer/smarty_internal_templateparser.y" 2453 function yy_r154() 2454 { 2455 $this->_retvalue = $this->compiler->compilePHPFunctionCall($this->yystack[ $this->yyidx + - 3 ]->minor, 2456 $this->yystack[ $this->yyidx + - 1 ]->minor); 2457 } 2458 2459 #line 1086 "../smarty/lexer/smarty_internal_templateparser.y" 2460 function yy_r155() 2461 { 2462 if ($this->security && substr($this->yystack[ $this->yyidx + - 3 ]->minor, 0, 1) == '_') { 2463 $this->compiler->trigger_template_error(self::Err1); 2464 } 2465 $this->_retvalue = $this->yystack[ $this->yyidx + - 3 ]->minor . "(" . 2466 implode(',', $this->yystack[ $this->yyidx + - 1 ]->minor) . ")"; 2467 } 2468 2469 #line 1093 "../smarty/lexer/smarty_internal_templateparser.y" 2470 function yy_r156() 2471 { 2472 if ($this->security) { 2473 $this->compiler->trigger_template_error(self::Err2); 2474 } 2475 $prefixVar = $this->compiler->getNewPrefixVariable(); 2476 $this->compiler->appendPrefixCode("<?php $prefixVar" . '=' . $this->compiler->compileVariable('\'' . 2477 substr($this->yystack[ $this->yyidx + 2478 - 3 ]->minor, 2479 1) . 2480 '\'') . ';?>'); 2481 $this->_retvalue = $prefixVar . '(' . implode(',', $this->yystack[ $this->yyidx + - 1 ]->minor) . ')'; 2482 } 2483 2484 #line 1104 "../smarty/lexer/smarty_internal_templateparser.y" 2485 function yy_r157() 2486 { 2487 $this->_retvalue = 2488 array_merge($this->yystack[ $this->yyidx + - 2 ]->minor, array($this->yystack[ $this->yyidx + 0 ]->minor)); 2489 } 2490 2491 #line 1121 "../smarty/lexer/smarty_internal_templateparser.y" 2492 function yy_r160() 2493 { 2494 $this->_retvalue = array_merge($this->yystack[ $this->yyidx + - 2 ]->minor, 2495 array(array_merge($this->yystack[ $this->yyidx + - 1 ]->minor, 2496 $this->yystack[ $this->yyidx + 0 ]->minor))); 2497 } 2498 2499 #line 1125 "../smarty/lexer/smarty_internal_templateparser.y" 2500 function yy_r161() 2501 { 2502 $this->_retvalue = 2503 array(array_merge($this->yystack[ $this->yyidx + - 1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor)); 2504 } 2505 2506 #line 1133 "../smarty/lexer/smarty_internal_templateparser.y" 2507 function yy_r163() 2508 { 2509 $this->_retvalue = array($this->yystack[ $this->yyidx + 0 ]->minor); 2510 } 2511 2512 #line 1141 "../smarty/lexer/smarty_internal_templateparser.y" 2513 function yy_r164() 2514 { 2515 $this->_retvalue = 2516 array_merge($this->yystack[ $this->yyidx + - 1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor); 2517 } 2518 2519 #line 1160 "../smarty/lexer/smarty_internal_templateparser.y" 2520 function yy_r168() 2521 { 2522 $this->_retvalue = array($this->yystack[ $this->yyidx + 0 ]->minor, '', 'method'); 2523 } 2524 2525 #line 1165 "../smarty/lexer/smarty_internal_templateparser.y" 2526 function yy_r169() 2527 { 2528 $this->_retvalue = 2529 array($this->yystack[ $this->yyidx + - 1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor, 'method'); 2530 } 2531 2532 #line 1170 "../smarty/lexer/smarty_internal_templateparser.y" 2533 function yy_r170() 2534 { 2535 $this->_retvalue = array($this->yystack[ $this->yyidx + 0 ]->minor, ''); 2536 } 2537 2538 #line 1175 "../smarty/lexer/smarty_internal_templateparser.y" 2539 function yy_r171() 2540 { 2541 $this->_retvalue = 2542 array($this->yystack[ $this->yyidx + - 1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor, 'property'); 2543 } 2544 2545 #line 1180 "../smarty/lexer/smarty_internal_templateparser.y" 2546 function yy_r172() 2547 { 2548 $this->_retvalue = array($this->yystack[ $this->yyidx + - 2 ]->minor, 2549 $this->yystack[ $this->yyidx + - 1 ]->minor . 2550 $this->yystack[ $this->yyidx + 0 ]->minor, 'property'); 2551 } 2552 2553 #line 1186 "../smarty/lexer/smarty_internal_templateparser.y" 2554 function yy_r173() 2555 { 2556 $this->_retvalue = ' ' . trim($this->yystack[ $this->yyidx + 0 ]->minor) . ' '; 2557 } 2558 2559 #line 1190 "../smarty/lexer/smarty_internal_templateparser.y" 2560 function yy_r174() 2561 { 2562 static $lops = 2563 array('eq' => ' == ', 'ne' => ' != ', 'neq' => ' != ', 'gt' => ' > ', 'ge' => ' >= ', 'gte' => ' >= ', 2564 'lt' => ' < ', 'le' => ' <= ', 'lte' => ' <= ', 'mod' => ' % ', 'and' => ' && ', 'or' => ' || ', 2565 'xor' => ' xor ',); 2566 $op = strtolower(preg_replace('/\s*/', '', $this->yystack[ $this->yyidx + 0 ]->minor)); 2567 $this->_retvalue = $lops[ $op ]; 2568 } 2569 2570 #line 1209 "../smarty/lexer/smarty_internal_templateparser.y" 2571 function yy_r175() 2572 { 2573 static $tlops = 2574 array('isdivby' => array('op' => ' % ', 'pre' => '!('), 'isnotdivby' => array('op' => ' % ', 'pre' => '('), 2575 'isevenby' => array('op' => ' / ', 'pre' => '!(1 & '), 2576 'isnotevenby' => array('op' => ' / ', 'pre' => '(1 & '), 2577 'isoddby' => array('op' => ' / ', 'pre' => '(1 & '), 2578 'isnotoddby' => array('op' => ' / ', 'pre' => '!(1 & '),); 2579 $op = strtolower(preg_replace('/\s*/', '', $this->yystack[ $this->yyidx + 0 ]->minor)); 2580 $this->_retvalue = $tlops[ $op ]; 2581 } 2582 2583 #line 1222 "../smarty/lexer/smarty_internal_templateparser.y" 2584 function yy_r176() 2585 { 2586 static $scond = 2587 array('iseven' => '!(1 & ', 'isnoteven' => '(1 & ', 'isodd' => '(1 & ', 'isnotodd' => '!(1 & ',); 2588 $op = strtolower(str_replace(' ', '', $this->yystack[ $this->yyidx + 0 ]->minor)); 2589 $this->_retvalue = $scond[ $op ]; 2590 } 2591 2592 #line 1236 "../smarty/lexer/smarty_internal_templateparser.y" 2593 function yy_r177() 2594 { 2595 $this->_retvalue = 'array(' . $this->yystack[ $this->yyidx + - 1 ]->minor . ')'; 2596 } 2597 2598 #line 1244 "../smarty/lexer/smarty_internal_templateparser.y" 2599 function yy_r179() 2600 { 2601 $this->_retvalue = 2602 $this->yystack[ $this->yyidx + - 2 ]->minor . ',' . $this->yystack[ $this->yyidx + 0 ]->minor; 2603 } 2604 2605 #line 1252 "../smarty/lexer/smarty_internal_templateparser.y" 2606 function yy_r181() 2607 { 2608 $this->_retvalue = 2609 $this->yystack[ $this->yyidx + - 2 ]->minor . '=>' . $this->yystack[ $this->yyidx + 0 ]->minor; 2610 } 2611 2612 #line 1256 "../smarty/lexer/smarty_internal_templateparser.y" 2613 function yy_r182() 2614 { 2615 $this->_retvalue = 2616 '\'' . $this->yystack[ $this->yyidx + - 2 ]->minor . '\'=>' . $this->yystack[ $this->yyidx + 0 ]->minor; 2617 } 2618 2619 #line 1272 "../smarty/lexer/smarty_internal_templateparser.y" 2620 function yy_r185() 2621 { 2622 $this->_retvalue = $this->yystack[ $this->yyidx + - 1 ]->minor->to_smarty_php($this); 2623 } 2624 2625 #line 1277 "../smarty/lexer/smarty_internal_templateparser.y" 2626 function yy_r186() 2627 { 2628 $this->yystack[ $this->yyidx + - 1 ]->minor->append_subtree($this, $this->yystack[ $this->yyidx + 0 ]->minor); 2629 $this->_retvalue = $this->yystack[ $this->yyidx + - 1 ]->minor; 2630 } 2631 2632 #line 1282 "../smarty/lexer/smarty_internal_templateparser.y" 2633 function yy_r187() 2634 { 2635 $this->_retvalue = new Smarty_Internal_ParseTree_Dq($this, $this->yystack[ $this->yyidx + 0 ]->minor); 2636 } 2637 2638 #line 1286 "../smarty/lexer/smarty_internal_templateparser.y" 2639 function yy_r188() 2640 { 2641 $this->_retvalue = new Smarty_Internal_ParseTree_Code('(string)' . $this->yystack[ $this->yyidx + - 1 ]->minor); 2642 } 2643 2644 #line 1294 "../smarty/lexer/smarty_internal_templateparser.y" 2645 function yy_r190() 2646 { 2647 $this->_retvalue = new Smarty_Internal_ParseTree_Code('(string)$_smarty_tpl->tpl_vars[\'' . 2648 substr($this->yystack[ $this->yyidx + 0 ]->minor, 1) . 2649 '\']->value'); 2650 } 2651 2652 #line 1302 "../smarty/lexer/smarty_internal_templateparser.y" 2653 function yy_r192() 2654 { 2655 $this->_retvalue = 2656 new Smarty_Internal_ParseTree_Code('(string)(' . $this->yystack[ $this->yyidx + - 1 ]->minor . ')'); 2657 } 2658 2659 #line 1306 "../smarty/lexer/smarty_internal_templateparser.y" 2660 function yy_r193() 2661 { 2662 $this->_retvalue = new Smarty_Internal_ParseTree_Tag($this, $this->yystack[ $this->yyidx + 0 ]->minor); 2663 } 2664 2665 #line 1310 "../smarty/lexer/smarty_internal_templateparser.y" 2666 function yy_r194() 2667 { 2668 $this->_retvalue = new Smarty_Internal_ParseTree_DqContent($this->yystack[ $this->yyidx + 0 ]->minor); 2669 } 2670 2671 private $_retvalue; 2672 2673 public function yy_reduce($yyruleno) 2674 { 2675 if ($this->yyTraceFILE && $yyruleno >= 0 && $yyruleno < count(self::$yyRuleName)) { 2676 fprintf($this->yyTraceFILE, "%sReduce (%d) [%s].\n", $this->yyTracePrompt, $yyruleno, 2677 self::$yyRuleName[ $yyruleno ]); 2678 } 2679 2680 $this->_retvalue = $yy_lefthand_side = null; 2681 if (isset(self::$yyReduceMap[ $yyruleno ])) { 2682 // call the action 2683 $this->_retvalue = null; 2684 $this->{'yy_r' . self::$yyReduceMap[ $yyruleno ]}(); 2685 $yy_lefthand_side = $this->_retvalue; 2686 } 2687 $yygoto = self::$yyRuleInfo[ $yyruleno ][ 0 ]; 2688 $yysize = self::$yyRuleInfo[ $yyruleno ][ 1 ]; 2689 $this->yyidx -= $yysize; 2690 for ($i = $yysize; $i; $i --) { 2691 // pop all of the right-hand side parameters 2692 array_pop($this->yystack); 2693 } 2694 $yyact = $this->yy_find_reduce_action($this->yystack[ $this->yyidx ]->stateno, $yygoto); 2695 if ($yyact < self::YYNSTATE) { 2696 if (!$this->yyTraceFILE && $yysize) { 2697 $this->yyidx ++; 2698 $x = new TP_yyStackEntry; 2699 $x->stateno = $yyact; 2700 $x->major = $yygoto; 2701 $x->minor = $yy_lefthand_side; 2702 $this->yystack[ $this->yyidx ] = $x; 2703 } else { 2704 $this->yy_shift($yyact, $yygoto, $yy_lefthand_side); 2705 } 2706 } elseif ($yyact == self::YYNSTATE + self::YYNRULE + 1) { 2707 $this->yy_accept(); 2708 } 2709 } 2710 2711 public function yy_parse_failed() 2712 { 2713 if ($this->yyTraceFILE) { 2714 fprintf($this->yyTraceFILE, "%sFail!\n", $this->yyTracePrompt); 2715 } 2716 while ($this->yyidx >= 0) { 2717 $this->yy_pop_parser_stack(); 2718 } 2719 } 2720 2721 public function yy_syntax_error($yymajor, $TOKEN) 2722 { 2723 #line 200 "../smarty/lexer/smarty_internal_templateparser.y" 2724 2725 $this->internalError = true; 2726 $this->yymajor = $yymajor; 2727 $this->compiler->trigger_template_error(); 2728 } 2729 2730 public function yy_accept() 2731 { 2732 if ($this->yyTraceFILE) { 2733 fprintf($this->yyTraceFILE, "%sAccept!\n", $this->yyTracePrompt); 2734 } 2735 while ($this->yyidx >= 0) { 2736 $this->yy_pop_parser_stack(); 2737 } 2738 #line 193 "../smarty/lexer/smarty_internal_templateparser.y" 2739 2740 $this->successful = !$this->internalError; 2741 $this->internalError = false; 2742 $this->retvalue = $this->_retvalue; 2743 } 2744 2745 public function doParse($yymajor, $yytokenvalue) 2746 { 2747 $yyerrorhit = 0; /* True if yymajor has invoked an error */ 2748 2749 if ($this->yyidx === null || $this->yyidx < 0) { 2750 $this->yyidx = 0; 2751 $this->yyerrcnt = - 1; 2752 $x = new TP_yyStackEntry; 2753 $x->stateno = 0; 2754 $x->major = 0; 2755 $this->yystack = array(); 2756 $this->yystack[] = $x; 2757 } 2758 $yyendofinput = ($yymajor == 0); 2759 2760 if ($this->yyTraceFILE) { 2761 fprintf($this->yyTraceFILE, "%sInput %s\n", $this->yyTracePrompt, $this->yyTokenName[ $yymajor ]); 2762 } 2763 2764 do { 2765 $yyact = $this->yy_find_shift_action($yymajor); 2766 if ($yymajor < self::YYERRORSYMBOL && !$this->yy_is_expected_token($yymajor)) { 2767 // force a syntax error 2768 $yyact = self::YY_ERROR_ACTION; 2769 } 2770 if ($yyact < self::YYNSTATE) { 2771 $this->yy_shift($yyact, $yymajor, $yytokenvalue); 2772 $this->yyerrcnt --; 2773 if ($yyendofinput && $this->yyidx >= 0) { 2774 $yymajor = 0; 2775 } else { 2776 $yymajor = self::YYNOCODE; 2777 } 2778 } elseif ($yyact < self::YYNSTATE + self::YYNRULE) { 2779 $this->yy_reduce($yyact - self::YYNSTATE); 2780 } elseif ($yyact == self::YY_ERROR_ACTION) { 2781 if ($this->yyTraceFILE) { 2782 fprintf($this->yyTraceFILE, "%sSyntax Error!\n", $this->yyTracePrompt); 2783 } 2784 if (self::YYERRORSYMBOL) { 2785 if ($this->yyerrcnt < 0) { 2786 $this->yy_syntax_error($yymajor, $yytokenvalue); 2787 } 2788 $yymx = $this->yystack[ $this->yyidx ]->major; 2789 if ($yymx == self::YYERRORSYMBOL || $yyerrorhit) { 2790 if ($this->yyTraceFILE) { 2791 fprintf($this->yyTraceFILE, "%sDiscard input token %s\n", $this->yyTracePrompt, 2792 $this->yyTokenName[ $yymajor ]); 2793 } 2794 $this->yy_destructor($yymajor, $yytokenvalue); 2795 $yymajor = self::YYNOCODE; 2796 } else { 2797 while ($this->yyidx >= 0 && $yymx != self::YYERRORSYMBOL && 2798 ($yyact = $this->yy_find_shift_action(self::YYERRORSYMBOL)) >= self::YYNSTATE) { 2799 $this->yy_pop_parser_stack(); 2800 } 2801 if ($this->yyidx < 0 || $yymajor == 0) { 2802 $this->yy_destructor($yymajor, $yytokenvalue); 2803 $this->yy_parse_failed(); 2804 $yymajor = self::YYNOCODE; 2805 } elseif ($yymx != self::YYERRORSYMBOL) { 2806 $u2 = 0; 2807 $this->yy_shift($yyact, self::YYERRORSYMBOL, $u2); 2808 } 2809 } 2810 $this->yyerrcnt = 3; 2811 $yyerrorhit = 1; 2812 } else { 2813 if ($this->yyerrcnt <= 0) { 2814 $this->yy_syntax_error($yymajor, $yytokenvalue); 2815 } 2816 $this->yyerrcnt = 3; 2817 $this->yy_destructor($yymajor, $yytokenvalue); 2818 if ($yyendofinput) { 2819 $this->yy_parse_failed(); 2820 } 2821 $yymajor = self::YYNOCODE; 2822 } 2823 } else { 2824 $this->yy_accept(); 2825 $yymajor = self::YYNOCODE; 2826 } 2827 } 2828 while ($yymajor != self::YYNOCODE && $this->yyidx >= 0); 2829 } 2830} 2831 2832