文件操作 - smarty_internal_templateparser.php
返回文件管理
返回主菜单
删除本文件
文件: /usr/share/php/smarty3/sysplugins/smarty_internal_templateparser.php
编辑文件内容
<?php class TP_yyStackEntry { public $stateno; /* The state-number */ public $major; /* The major token value. This is the code ** number for the token at this stack level */ public $minor; /* The user-supplied minor token value. This ** is the value of the token */ }; // line 11 "./lexer/smarty_internal_templateparser.y" /** * Smarty Template Parser Class * * This is the template parser. * It is generated from the smarty_internal_templateparser.y file * * @author Uwe Tews <uwe.tews@googlemail.com> */ class Smarty_Internal_Templateparser { // line 23 "./lexer/smarty_internal_templateparser.y" const ERR1 = 'Security error: Call to private object member not allowed'; const ERR2 = 'Security error: Call to dynamic object member not allowed'; const ERR3 = 'PHP in template not allowed. Use SmartyBC to enable it'; /** * result status * * @var bool */ public $successful = true; /** * return value * * @var mixed */ public $retvalue = 0; /** * @var */ public $yymajor; /** * last index of array variable * * @var mixed */ public $last_index; /** * last variable name * * @var string */ public $last_variable; /** * root parse tree buffer * * @var Smarty_Internal_ParseTree_Template */ public $root_buffer; /** * current parse tree object * * @var Smarty_Internal_ParseTree */ public $current_buffer; /** * lexer object * * @var Smarty_Internal_Templatelexer */ public $lex; /** * internal error flag * * @var bool */ private $internalError = false; /** * {strip} status * * @var bool */ public $strip = false; /** * compiler object * * @var Smarty_Internal_TemplateCompilerBase */ public $compiler = null; /** * smarty object * * @var Smarty */ public $smarty = null; /** * template object * * @var Smarty_Internal_Template */ public $template = null; /** * block nesting level * * @var int */ public $block_nesting_level = 0; /** * security object * * @var Smarty_Security */ public $security = null; /** * template prefix array * * @var \Smarty_Internal_ParseTree[] */ public $template_prefix = array(); /** * template prefix array * * @var \Smarty_Internal_ParseTree[] */ public $template_postfix = array(); /** * constructor * * @param Smarty_Internal_Templatelexer $lex * @param Smarty_Internal_TemplateCompilerBase $compiler */ public function __construct(Smarty_Internal_Templatelexer $lex, Smarty_Internal_TemplateCompilerBase $compiler) { $this->lex = $lex; $this->compiler = $compiler; $this->template = $this->compiler->template; $this->smarty = $this->template->smarty; $this->security = isset($this->smarty->security_policy) ? $this->smarty->security_policy : false; $this->current_buffer = $this->root_buffer = new Smarty_Internal_ParseTree_Template(); } /** * insert PHP code in current buffer * * @param string $code */ public function insertPhpCode($code) { $this->current_buffer->append_subtree($this, new Smarty_Internal_ParseTree_Tag($this, $code)); } /** * error rundown * */ public function errorRunDown() { while ($this->yystack !== array()) { $this->yy_pop_parser_stack(); } if (is_resource($this->yyTraceFILE)) { fclose($this->yyTraceFILE); } } /** * merge PHP code with prefix code and return parse tree tag object * * @param string $code * * @return Smarty_Internal_ParseTree_Tag */ public function mergePrefixCode($code) { $tmp = ''; foreach ($this->compiler->prefix_code as $preCode) { $tmp .= $preCode; } $this->compiler->prefix_code = array(); $tmp .= $code; return new Smarty_Internal_ParseTree_Tag($this, $this->compiler->processNocacheCode($tmp, true)); } const TP_VERT = 1; const TP_COLON = 2; const TP_PHP = 3; const TP_TEXT = 4; const TP_STRIPON = 5; const TP_STRIPOFF = 6; const TP_LITERALSTART = 7; const TP_LITERALEND = 8; const TP_LITERAL = 9; const TP_SIMPELOUTPUT = 10; const TP_SIMPLETAG = 11; const TP_SMARTYBLOCKCHILDPARENT = 12; const TP_LDEL = 13; const TP_RDEL = 14; const TP_DOLLARID = 15; const TP_EQUAL = 16; const TP_ID = 17; const TP_PTR = 18; const TP_LDELMAKENOCACHE = 19; const TP_LDELIF = 20; const TP_LDELFOR = 21; const TP_SEMICOLON = 22; const TP_INCDEC = 23; const TP_TO = 24; const TP_STEP = 25; const TP_LDELFOREACH = 26; const TP_SPACE = 27; const TP_AS = 28; const TP_APTR = 29; const TP_LDELSETFILTER = 30; const TP_CLOSETAG = 31; const TP_LDELSLASH = 32; const TP_ATTR = 33; const TP_INTEGER = 34; const TP_COMMA = 35; const TP_OPENP = 36; const TP_CLOSEP = 37; const TP_MATH = 38; const TP_UNIMATH = 39; const TP_ISIN = 40; const TP_QMARK = 41; const TP_NOT = 42; const TP_TYPECAST = 43; const TP_HEX = 44; const TP_DOT = 45; const TP_INSTANCEOF = 46; const TP_SINGLEQUOTESTRING = 47; const TP_DOUBLECOLON = 48; const TP_NAMESPACE = 49; const TP_AT = 50; const TP_HATCH = 51; const TP_OPENB = 52; const TP_CLOSEB = 53; const TP_DOLLAR = 54; const TP_LOGOP = 55; const TP_SLOGOP = 56; const TP_TLOGOP = 57; const TP_SINGLECOND = 58; const TP_ARRAYOPEN = 59; const TP_QUOTE = 60; const TP_BACKTICK = 61; const YY_NO_ACTION = 516; const YY_ACCEPT_ACTION = 515; const YY_ERROR_ACTION = 514; const YY_SZ_ACTTAB = 2042; public static $yy_action = array( 239, 240, 241, 1, 95, 127, 428, 185, 257, 207, 6, 53, 44, 21, 275, 224, 105, 389, 428, 192, 208, 254, 209, 312, 200, 389, 22, 389, 29, 41, 389, 49, 42, 43, 268, 216, 389, 226, 389, 195, 389, 52, 4, 315, 290, 383, 300, 227, 215, 5, 50, 7, 239, 240, 241, 1, 192, 93, 383, 51, 484, 207, 6, 53, 383, 515, 92, 428, 105, 350, 192, 37, 208, 254, 209, 245, 214, 135, 22, 428, 121, 41, 350, 259, 42, 43, 268, 216, 350, 272, 94, 195, 168, 52, 4, 131, 290, 260, 90, 258, 144, 5, 50, 288, 239, 240, 241, 1, 141, 129, 302, 194, 206, 207, 6, 53, 290, 176, 249, 19, 105, 184, 144, 264, 208, 254, 209, 192, 214, 261, 22, 52, 250, 41, 290, 95, 42, 43, 268, 216, 265, 272, 147, 195, 211, 52, 4, 131, 290, 222, 55, 304, 249, 5, 50, 294, 239, 240, 241, 1, 290, 129, 132, 186, 257, 207, 6, 53, 349, 12, 133, 175, 105, 145, 349, 250, 208, 254, 209, 302, 214, 206, 22, 52, 257, 41, 290, 49, 42, 43, 268, 216, 134, 272, 228, 195, 250, 52, 4, 247, 290, 230, 191, 349, 100, 5, 50, 49, 239, 240, 241, 1, 257, 128, 310, 194, 349, 207, 6, 53, 298, 13, 349, 121, 105, 292, 223, 14, 208, 254, 209, 290, 214, 94, 11, 49, 262, 41, 171, 293, 42, 43, 268, 216, 428, 272, 288, 195, 252, 52, 4, 18, 290, 170, 293, 251, 428, 5, 50, 192, 239, 240, 241, 1, 30, 129, 220, 181, 151, 207, 6, 53, 385, 136, 192, 3, 105, 95, 170, 293, 208, 254, 209, 249, 203, 385, 22, 382, 219, 41, 17, 385, 42, 43, 268, 216, 14, 272, 149, 195, 382, 52, 4, 322, 290, 290, 382, 108, 249, 5, 50, 192, 239, 240, 241, 1, 143, 130, 104, 194, 138, 207, 6, 53, 172, 293, 249, 175, 105, 238, 100, 206, 208, 254, 209, 192, 214, 13, 22, 83, 250, 41, 290, 14, 42, 43, 268, 216, 95, 272, 228, 195, 252, 52, 4, 18, 290, 325, 99, 251, 100, 5, 50, 84, 239, 240, 241, 1, 34, 129, 95, 179, 228, 207, 6, 53, 27, 309, 108, 229, 105, 15, 100, 428, 208, 254, 209, 280, 214, 150, 22, 250, 212, 41, 89, 428, 42, 43, 268, 216, 108, 272, 139, 195, 457, 52, 4, 457, 290, 165, 257, 457, 249, 5, 50, 192, 239, 240, 241, 1, 159, 129, 169, 194, 217, 207, 6, 53, 252, 162, 249, 18, 105, 49, 176, 251, 208, 254, 209, 249, 180, 262, 22, 26, 457, 41, 274, 152, 42, 43, 268, 216, 256, 272, 122, 195, 457, 52, 4, 457, 290, 163, 156, 457, 279, 5, 50, 175, 239, 240, 241, 1, 122, 131, 166, 194, 16, 207, 6, 53, 204, 189, 158, 324, 105, 210, 176, 253, 208, 254, 209, 173, 214, 237, 20, 236, 237, 45, 37, 176, 42, 43, 268, 216, 132, 272, 441, 195, 253, 52, 4, 12, 290, 441, 33, 8, 429, 5, 50, 85, 239, 240, 241, 1, 289, 131, 10, 194, 429, 207, 6, 53, 25, 190, 291, 9, 105, 305, 109, 91, 208, 254, 209, 441, 214, 164, 20, 9, 215, 41, 441, 167, 42, 43, 268, 216, 311, 272, 25, 195, 316, 52, 4, 32, 290, 308, 25, 103, 317, 5, 50, 277, 205, 206, 244, 235, 86, 102, 153, 183, 96, 82, 154, 39, 40, 38, 94, 146, 242, 266, 243, 87, 215, 248, 271, 196, 273, 249, 278, 288, 283, 284, 285, 286, 277, 205, 206, 244, 174, 86, 102, 106, 182, 96, 62, 255, 176, 113, 263, 94, 267, 269, 266, 270, 215, 23, 7, 271, 196, 273, 287, 278, 288, 231, 232, 233, 234, 125, 54, 155, 239, 240, 241, 1, 157, 160, 225, 34, 313, 207, 6, 53, 314, 323, 326, 249, 105, 44, 21, 275, 208, 254, 209, 277, 35, 206, 246, 298, 107, 102, 298, 183, 96, 82, 277, 298, 206, 298, 94, 107, 298, 266, 193, 111, 74, 298, 271, 196, 273, 94, 278, 288, 266, 298, 298, 298, 298, 271, 196, 273, 298, 278, 288, 298, 298, 298, 298, 298, 36, 277, 13, 206, 199, 307, 107, 298, 14, 193, 111, 74, 298, 39, 40, 38, 94, 298, 298, 266, 252, 298, 298, 18, 271, 196, 273, 251, 278, 288, 283, 284, 285, 286, 298, 140, 298, 13, 148, 198, 307, 298, 88, 14, 303, 39, 40, 38, 249, 298, 239, 240, 241, 2, 298, 301, 298, 298, 298, 207, 6, 53, 283, 284, 285, 286, 105, 176, 298, 298, 208, 254, 209, 298, 298, 298, 303, 298, 298, 298, 298, 298, 239, 240, 241, 2, 298, 301, 298, 298, 298, 207, 6, 53, 298, 298, 298, 298, 105, 298, 296, 28, 208, 254, 209, 298, 298, 298, 298, 298, 298, 298, 277, 298, 206, 298, 298, 101, 298, 298, 193, 114, 47, 298, 112, 298, 298, 94, 298, 298, 266, 298, 297, 28, 298, 271, 196, 273, 298, 278, 288, 298, 298, 298, 277, 13, 206, 298, 298, 107, 298, 14, 193, 114, 69, 298, 39, 40, 38, 94, 298, 298, 266, 298, 298, 298, 298, 271, 196, 273, 298, 278, 288, 283, 284, 285, 286, 298, 298, 202, 277, 298, 206, 298, 192, 107, 298, 298, 193, 114, 69, 298, 298, 298, 298, 94, 298, 353, 266, 298, 298, 221, 298, 271, 196, 273, 298, 278, 288, 298, 13, 298, 277, 298, 206, 197, 14, 107, 213, 428, 193, 111, 74, 298, 298, 298, 457, 94, 298, 457, 266, 428, 3, 457, 441, 271, 196, 273, 298, 278, 288, 298, 298, 298, 298, 298, 298, 277, 298, 206, 298, 306, 107, 298, 298, 193, 114, 69, 298, 298, 252, 441, 94, 18, 441, 266, 457, 251, 441, 298, 271, 196, 273, 298, 278, 288, 277, 13, 206, 142, 298, 101, 201, 14, 193, 114, 61, 298, 229, 298, 298, 94, 298, 319, 266, 298, 298, 298, 298, 271, 196, 273, 298, 278, 288, 277, 298, 206, 298, 298, 107, 298, 298, 188, 110, 60, 298, 39, 40, 38, 94, 298, 298, 266, 298, 298, 298, 298, 271, 196, 273, 298, 278, 288, 283, 284, 285, 286, 277, 298, 206, 298, 298, 107, 298, 298, 193, 97, 81, 277, 298, 206, 298, 94, 107, 298, 266, 193, 98, 80, 298, 271, 196, 273, 94, 278, 288, 266, 298, 298, 298, 298, 271, 196, 273, 298, 278, 288, 277, 298, 206, 298, 298, 107, 298, 298, 193, 114, 56, 298, 298, 298, 298, 94, 298, 298, 266, 298, 298, 298, 298, 271, 196, 273, 298, 278, 288, 298, 277, 298, 206, 298, 298, 107, 298, 298, 193, 114, 68, 277, 298, 206, 298, 94, 107, 298, 266, 193, 97, 57, 298, 271, 196, 273, 94, 278, 288, 266, 298, 298, 298, 298, 271, 196, 273, 298, 278, 288, 277, 298, 206, 298, 298, 107, 298, 298, 193, 114, 67, 298, 298, 298, 298, 94, 298, 298, 266, 298, 298, 298, 298, 271, 196, 273, 298, 278, 288, 298, 277, 298, 206, 298, 298, 107, 298, 298, 193, 114, 58, 277, 298, 206, 298, 94, 107, 298, 266, 193, 114, 59, 298, 271, 196, 273, 94, 278, 288, 266, 298, 298, 298, 298, 271, 196, 273, 298, 278, 288, 277, 298, 206, 298, 298, 107, 298, 298, 193, 114, 70, 298, 298, 298, 298, 94, 298, 298, 266, 298, 298, 298, 298, 271, 196, 273, 298, 278, 288, 298, 277, 298, 206, 298, 298, 107, 298, 298, 193, 114, 61, 277, 298, 206, 298, 94, 107, 298, 266, 193, 114, 66, 298, 271, 196, 273, 94, 278, 288, 266, 298, 298, 298, 298, 271, 196, 273, 298, 278, 288, 277, 298, 206, 298, 298, 107, 298, 298, 193, 114, 71, 298, 298, 298, 298, 94, 298, 298, 266, 298, 298, 298, 298, 271, 196, 273, 298, 278, 288, 298, 277, 298, 206, 298, 298, 107, 298, 298, 193, 114, 72, 277, 298, 206, 298, 94, 107, 298, 266, 193, 114, 73, 298, 271, 196, 273, 94, 278, 288, 266, 298, 298, 298, 298, 271, 196, 273, 298, 278, 288, 277, 298, 206, 298, 298, 107, 298, 298, 193, 114, 75, 298, 298, 298, 298, 94, 298, 298, 266, 298, 298, 298, 298, 271, 196, 273, 298, 278, 288, 298, 277, 298, 206, 298, 298, 107, 298, 298, 187, 114, 63, 277, 298, 206, 298, 94, 107, 298, 266, 193, 114, 64, 298, 271, 196, 273, 94, 278, 288, 266, 298, 298, 298, 298, 271, 196, 273, 298, 278, 288, 277, 298, 206, 298, 298, 107, 298, 298, 193, 114, 65, 298, 298, 298, 298, 94, 298, 298, 266, 298, 298, 298, 298, 271, 196, 273, 298, 278, 288, 298, 277, 298, 206, 298, 298, 107, 298, 298, 193, 114, 76, 277, 298, 206, 298, 94, 107, 298, 266, 193, 114, 77, 298, 271, 196, 273, 94, 278, 288, 266, 298, 298, 298, 298, 271, 196, 273, 298, 278, 288, 277, 298, 206, 298, 298, 107, 298, 298, 193, 114, 78, 298, 298, 298, 298, 94, 298, 298, 266, 298, 298, 298, 298, 271, 196, 273, 298, 278, 288, 298, 277, 298, 206, 298, 298, 107, 298, 298, 193, 114, 79, 277, 298, 206, 298, 94, 107, 298, 266, 193, 114, 46, 298, 271, 196, 273, 94, 278, 288, 266, 298, 298, 298, 298, 271, 196, 273, 298, 278, 288, 277, 298, 206, 298, 298, 107, 298, 298, 193, 114, 48, 298, 298, 298, 298, 94, 298, 298, 266, 298, 298, 298, 298, 271, 196, 273, 298, 278, 288, 298, 277, 298, 206, 298, 298, 107, 298, 298, 193, 126, 298, 277, 298, 206, 298, 94, 107, 298, 298, 193, 120, 298, 320, 271, 196, 273, 94, 278, 288, 298, 298, 298, 298, 276, 271, 196, 273, 298, 278, 288, 277, 298, 206, 298, 137, 107, 298, 298, 193, 124, 298, 298, 298, 298, 249, 94, 44, 21, 275, 298, 298, 298, 298, 271, 196, 273, 298, 278, 288, 298, 277, 298, 206, 298, 298, 107, 298, 298, 193, 115, 298, 277, 298, 206, 298, 94, 107, 298, 298, 193, 116, 298, 298, 271, 196, 273, 94, 278, 288, 298, 298, 298, 298, 298, 271, 196, 273, 298, 278, 288, 277, 298, 206, 298, 161, 107, 298, 298, 193, 117, 298, 298, 298, 298, 249, 94, 44, 21, 275, 298, 298, 298, 298, 271, 196, 273, 298, 278, 288, 298, 277, 298, 206, 298, 298, 107, 298, 298, 193, 118, 298, 277, 298, 206, 298, 94, 107, 298, 298, 193, 119, 298, 298, 271, 196, 273, 94, 278, 288, 298, 298, 298, 298, 298, 271, 196, 273, 298, 278, 288, 277, 298, 206, 213, 298, 107, 395, 298, 193, 123, 298, 457, 298, 298, 457, 94, 298, 298, 457, 441, 298, 213, 298, 271, 196, 273, 298, 278, 288, 457, 298, 298, 457, 298, 298, 33, 457, 441, 298, 298, 428, 298, 395, 395, 395, 298, 441, 298, 298, 441, 298, 457, 428, 441, 281, 298, 298, 213, 298, 395, 395, 395, 395, 298, 441, 457, 298, 441, 457, 457, 24, 441, 457, 441, 318, 39, 40, 38, 457, 298, 298, 457, 298, 298, 298, 457, 441, 298, 298, 298, 298, 298, 283, 284, 285, 286, 298, 298, 298, 298, 441, 298, 298, 441, 298, 457, 298, 441, 39, 40, 38, 298, 298, 441, 298, 295, 441, 298, 457, 298, 441, 298, 298, 282, 298, 283, 284, 285, 286, 298, 218, 39, 40, 38, 298, 298, 298, 298, 298, 39, 40, 38, 298, 298, 39, 40, 38, 177, 283, 284, 285, 286, 298, 298, 178, 298, 283, 284, 285, 286, 298, 283, 284, 285, 286, 31, 298, 299, 298, 298, 298, 39, 40, 38, 298, 298, 298, 298, 39, 40, 38, 298, 321, 298, 298, 298, 298, 298, 283, 284, 285, 286, 298, 298, 298, 283, 284, 285, 286, 298, 298, 39, 40, 38, 298, 298, 39, 40, 38, 457, 298, 298, 457, 298, 298, 298, 457, 441, 283, 284, 285, 286, 298, 283, 284, 285, 286, 298, 298, 298, 298, 298, 298, 298, 298, 39, 40, 38, 298, 298, 298, 298, 298, 298, 441, 298, 298, 441, 298, 457, 298, 441, 283, 284, 285, 286, ); public static $yy_lookahead = array( 10, 11, 12, 13, 18, 15, 36, 17, 23, 19, 20, 21, 86, 87, 88, 45, 26, 14, 48, 1, 30, 31, 32, 53, 34, 22, 36, 24, 13, 39, 27, 46, 42, 43, 44, 45, 33, 47, 35, 49, 37, 51, 52, 53, 54, 14, 61, 16, 45, 59, 60, 36, 10, 11, 12, 13, 1, 15, 27, 17, 1, 19, 20, 21, 33, 63, 64, 36, 26, 14, 1, 2, 30, 31, 32, 71, 34, 15, 36, 48, 72, 39, 27, 75, 42, 43, 44, 45, 33, 47, 82, 49, 78, 51, 52, 15, 54, 17, 36, 91, 96, 59, 60, 95, 10, 11, 12, 13, 74, 15, 67, 17, 69, 19, 20, 21, 54, 103, 84, 13, 26, 15, 96, 17, 30, 31, 32, 1, 34, 49, 36, 51, 98, 39, 54, 18, 42, 43, 44, 45, 34, 47, 74, 49, 18, 51, 52, 15, 54, 17, 107, 108, 84, 59, 60, 14, 10, 11, 12, 13, 54, 15, 45, 17, 23, 19, 20, 21, 27, 52, 82, 103, 26, 96, 33, 98, 30, 31, 32, 67, 34, 69, 36, 51, 23, 39, 54, 46, 42, 43, 44, 45, 15, 47, 72, 49, 98, 51, 52, 84, 54, 79, 80, 14, 82, 59, 60, 46, 10, 11, 12, 13, 23, 15, 53, 17, 27, 19, 20, 21, 108, 27, 33, 72, 26, 71, 75, 33, 30, 31, 32, 54, 34, 82, 36, 46, 97, 39, 99, 100, 42, 43, 44, 45, 36, 47, 95, 49, 10, 51, 52, 13, 54, 99, 100, 17, 48, 59, 60, 1, 10, 11, 12, 13, 13, 15, 15, 17, 17, 19, 20, 21, 14, 74, 1, 16, 26, 18, 99, 100, 30, 31, 32, 84, 34, 27, 36, 14, 50, 39, 27, 33, 42, 43, 44, 45, 33, 47, 74, 49, 27, 51, 52, 15, 54, 54, 33, 48, 84, 59, 60, 1, 10, 11, 12, 13, 74, 15, 81, 17, 72, 19, 20, 21, 99, 100, 84, 103, 26, 67, 82, 69, 30, 31, 32, 1, 34, 27, 36, 82, 98, 39, 54, 33, 42, 43, 44, 45, 18, 47, 72, 49, 10, 51, 52, 13, 54, 79, 82, 17, 82, 59, 60, 82, 10, 11, 12, 13, 16, 15, 18, 17, 72, 19, 20, 21, 29, 101, 48, 79, 26, 22, 82, 36, 30, 31, 32, 53, 34, 96, 36, 98, 50, 39, 35, 48, 42, 43, 44, 45, 48, 47, 74, 49, 10, 51, 52, 13, 54, 78, 23, 17, 84, 59, 60, 1, 10, 11, 12, 13, 74, 15, 15, 17, 17, 19, 20, 21, 10, 74, 84, 13, 26, 46, 103, 17, 30, 31, 32, 84, 34, 97, 36, 29, 50, 39, 93, 96, 42, 43, 44, 45, 17, 47, 101, 49, 10, 51, 52, 13, 54, 78, 96, 17, 93, 59, 60, 103, 10, 11, 12, 13, 101, 15, 78, 17, 16, 19, 20, 21, 65, 66, 96, 23, 26, 50, 103, 104, 30, 31, 32, 7, 34, 9, 36, 8, 9, 39, 2, 103, 42, 43, 44, 45, 45, 47, 45, 49, 104, 51, 52, 52, 54, 52, 16, 36, 36, 59, 60, 96, 10, 11, 12, 13, 100, 15, 36, 17, 48, 19, 20, 21, 35, 66, 37, 35, 26, 37, 48, 83, 30, 31, 32, 45, 34, 83, 36, 35, 45, 39, 52, 83, 42, 43, 44, 45, 53, 47, 35, 49, 37, 51, 52, 16, 54, 53, 35, 22, 37, 59, 60, 67, 68, 69, 70, 8, 72, 73, 96, 75, 76, 77, 96, 38, 39, 40, 82, 74, 14, 85, 14, 78, 45, 15, 90, 91, 92, 84, 94, 95, 55, 56, 57, 58, 67, 68, 69, 70, 17, 72, 73, 17, 75, 76, 77, 17, 103, 17, 17, 82, 17, 34, 85, 34, 45, 41, 36, 90, 91, 92, 17, 94, 95, 3, 4, 5, 6, 7, 17, 51, 10, 11, 12, 13, 51, 74, 17, 16, 53, 19, 20, 21, 53, 17, 37, 84, 26, 86, 87, 88, 30, 31, 32, 67, 24, 69, 70, 109, 72, 73, 109, 75, 76, 77, 67, 109, 69, 109, 82, 72, 109, 85, 75, 76, 77, 109, 90, 91, 92, 82, 94, 95, 85, 109, 109, 109, 109, 90, 91, 92, 109, 94, 95, 109, 109, 109, 109, 109, 25, 67, 27, 69, 105, 106, 72, 109, 33, 75, 76, 77, 109, 38, 39, 40, 82, 109, 109, 85, 10, 109, 109, 13, 90, 91, 92, 17, 94, 95, 55, 56, 57, 58, 109, 28, 109, 27, 74, 105, 106, 109, 78, 33, 4, 38, 39, 40, 84, 109, 10, 11, 12, 13, 109, 15, 109, 109, 109, 19, 20, 21, 55, 56, 57, 58, 26, 103, 109, 109, 30, 31, 32, 109, 109, 109, 4, 109, 109, 109, 109, 109, 10, 11, 12, 13, 109, 15, 109, 109, 109, 19, 20, 21, 109, 109, 109, 109, 26, 109, 60, 61, 30, 31, 32, 109, 109, 109, 109, 109, 109, 109, 67, 109, 69, 109, 109, 72, 109, 109, 75, 76, 77, 109, 79, 109, 109, 82, 109, 109, 85, 109, 60, 61, 109, 90, 91, 92, 109, 94, 95, 109, 109, 109, 67, 27, 69, 109, 109, 72, 109, 33, 75, 76, 77, 109, 38, 39, 40, 82, 109, 109, 85, 109, 109, 109, 109, 90, 91, 92, 109, 94, 95, 55, 56, 57, 58, 109, 109, 102, 67, 109, 69, 109, 1, 72, 109, 109, 75, 76, 77, 109, 109, 109, 109, 82, 109, 14, 85, 109, 109, 18, 109, 90, 91, 92, 109, 94, 95, 109, 27, 109, 67, 109, 69, 102, 33, 72, 2, 36, 75, 76, 77, 109, 109, 109, 10, 82, 109, 13, 85, 48, 16, 17, 18, 90, 91, 92, 109, 94, 95, 109, 109, 109, 109, 109, 109, 67, 109, 69, 109, 106, 72, 109, 109, 75, 76, 77, 109, 109, 10, 45, 82, 13, 48, 85, 50, 17, 52, 109, 90, 91, 92, 109, 94, 95, 67, 27, 69, 29, 109, 72, 102, 33, 75, 76, 77, 109, 79, 109, 109, 82, 109, 14, 85, 109, 109, 109, 109, 90, 91, 92, 109, 94, 95, 67, 109, 69, 109, 109, 72, 109, 109, 75, 76, 77, 109, 38, 39, 40, 82, 109, 109, 85, 109, 109, 109, 109, 90, 91, 92, 109, 94, 95, 55, 56, 57, 58, 67, 109, 69, 109, 109, 72, 109, 109, 75, 76, 77, 67, 109, 69, 109, 82, 72, 109, 85, 75, 76, 77, 109, 90, 91, 92, 82, 94, 95, 85, 109, 109, 109, 109, 90, 91, 92, 109, 94, 95, 67, 109, 69, 109, 109, 72, 109, 109, 75, 76, 77, 109, 109, 109, 109, 82, 109, 109, 85, 109, 109, 109, 109, 90, 91, 92, 109, 94, 95, 109, 67, 109, 69, 109, 109, 72, 109, 109, 75, 76, 77, 67, 109, 69, 109, 82, 72, 109, 85, 75, 76, 77, 109, 90, 91, 92, 82, 94, 95, 85, 109, 109, 109, 109, 90, 91, 92, 109, 94, 95, 67, 109, 69, 109, 109, 72, 109, 109, 75, 76, 77, 109, 109, 109, 109, 82, 109, 109, 85, 109, 109, 109, 109, 90, 91, 92, 109, 94, 95, 109, 67, 109, 69, 109, 109, 72, 109, 109, 75, 76, 77, 67, 109, 69, 109, 82, 72, 109, 85, 75, 76, 77, 109, 90, 91, 92, 82, 94, 95, 85, 109, 109, 109, 109, 90, 91, 92, 109, 94, 95, 67, 109, 69, 109, 109, 72, 109, 109, 75, 76, 77, 109, 109, 109, 109, 82, 109, 109, 85, 109, 109, 109, 109, 90, 91, 92, 109, 94, 95, 109, 67, 109, 69, 109, 109, 72, 109, 109, 75, 76, 77, 67, 109, 69, 109, 82, 72, 109, 85, 75, 76, 77, 109, 90, 91, 92, 82, 94, 95, 85, 109, 109, 109, 109, 90, 91, 92, 109, 94, 95, 67, 109, 69, 109, 109, 72, 109, 109, 75, 76, 77, 109, 109, 109, 109, 82, 109, 109, 85, 109, 109, 109, 109, 90, 91, 92, 109, 94, 95, 109, 67, 109, 69, 109, 109, 72, 109, 109, 75, 76, 77, 67, 109, 69, 109, 82, 72, 109, 85, 75, 76, 77, 109, 90, 91, 92, 82, 94, 95, 85, 109, 109, 109, 109, 90, 91, 92, 109, 94, 95, 67, 109, 69, 109, 109, 72, 109, 109, 75, 76, 77, 109, 109, 109, 109, 82, 109, 109, 85, 109, 109, 109, 109, 90, 91, 92, 109, 94, 95, 109, 67, 109, 69, 109, 109, 72, 109, 109, 75, 76, 77, 67, 109, 69, 109, 82, 72, 109, 85, 75, 76, 77, 109, 90, 91, 92, 82, 94, 95, 85, 109, 109, 109, 109, 90, 91, 92, 109, 94, 95, 67, 109, 69, 109, 109, 72, 109, 109, 75, 76, 77, 109, 109, 109, 109, 82, 109, 109, 85, 109, 109, 109, 109, 90, 91, 92, 109, 94, 95, 109, 67, 109, 69, 109, 109, 72, 109, 109, 75, 76, 77, 67, 109, 69, 109, 82, 72, 109, 85, 75, 76, 77, 109, 90, 91, 92, 82, 94, 95, 85, 109, 109, 109, 109, 90, 91, 92, 109, 94, 95, 67, 109, 69, 109, 109, 72, 109, 109, 75, 76, 77, 109, 109, 109, 109, 82, 109, 109, 85, 109, 109, 109, 109, 90, 91, 92, 109, 94, 95, 109, 67, 109, 69, 109, 109, 72, 109, 109, 75, 76, 77, 67, 109, 69, 109, 82, 72, 109, 85, 75, 76, 77, 109, 90, 91, 92, 82, 94, 95, 85, 109, 109, 109, 109, 90, 91, 92, 109, 94, 95, 67, 109, 69, 109, 109, 72, 109, 109, 75, 76, 77, 109, 109, 109, 109, 82, 109, 109, 85, 109, 109, 109, 109, 90, 91, 92, 109, 94, 95, 109, 67, 109, 69, 109, 109, 72, 109, 109, 75, 76, 109, 67, 109, 69, 109, 82, 72, 109, 109, 75, 76, 109, 89, 90, 91, 92, 82, 94, 95, 109, 109, 109, 109, 89, 90, 91, 92, 109, 94, 95, 67, 109, 69, 109, 74, 72, 109, 109, 75, 76, 109, 109, 109, 109, 84, 82, 86, 87, 88, 109, 109, 109, 109, 90, 91, 92, 109, 94, 95, 109, 67, 109, 69, 109, 109, 72, 109, 109, 75, 76, 109, 67, 109, 69, 109, 82, 72, 109, 109, 75, 76, 109, 109, 90, 91, 92, 82, 94, 95, 109, 109, 109, 109, 109, 90, 91, 92, 109, 94, 95, 67, 109, 69, 109, 74, 72, 109, 109, 75, 76, 109, 109, 109, 109, 84, 82, 86, 87, 88, 109, 109, 109, 109, 90, 91, 92, 109, 94, 95, 109, 67, 109, 69, 109, 109, 72, 109, 109, 75, 76, 109, 67, 109, 69, 109, 82, 72, 109, 109, 75, 76, 109, 109, 90, 91, 92, 82, 94, 95, 109, 109, 109, 109, 109, 90, 91, 92, 109, 94, 95, 67, 109, 69, 2, 109, 72, 2, 109, 75, 76, 109, 10, 109, 109, 13, 82, 109, 109, 17, 18, 109, 2, 109, 90, 91, 92, 109, 94, 95, 10, 109, 109, 13, 109, 109, 16, 17, 18, 109, 109, 36, 109, 38, 39, 40, 109, 45, 109, 109, 48, 109, 50, 48, 52, 53, 109, 109, 2, 109, 55, 56, 57, 58, 109, 45, 10, 109, 48, 13, 50, 2, 52, 17, 18, 37, 38, 39, 40, 10, 109, 109, 13, 109, 109, 109, 17, 18, 109, 109, 109, 109, 109, 55, 56, 57, 58, 109, 109, 109, 109, 45, 109, 109, 48, 109, 50, 109, 52, 38, 39, 40, 109, 109, 45, 109, 14, 48, 109, 50, 109, 52, 109, 109, 53, 109, 55, 56, 57, 58, 109, 37, 38, 39, 40, 109, 109, 109, 109, 109, 38, 39, 40, 109, 109, 38, 39, 40, 14, 55, 56, 57, 58, 109, 109, 14, 109, 55, 56, 57, 58, 109, 55, 56, 57, 58, 2, 109, 61, 109, 109, 109, 38, 39, 40, 109, 109, 109, 109, 38, 39, 40, 109, 14, 109, 109, 109, 109, 109, 55, 56, 57, 58, 109, 109, 109, 55, 56, 57, 58, 109, 109, 38, 39, 40, 109, 109, 38, 39, 40, 10, 109, 109, 13, 109, 109, 109, 17, 18, 55, 56, 57, 58, 109, 55, 56, 57, 58, 109, 109, 109, 109, 109, 109, 109, 109, 38, 39, 40, 109, 109, 109, 109, 109, 109, 45, 109, 109, 48, 109, 50, 109, 52, 55, 56, 57, 58, ); const YY_SHIFT_USE_DFLT = -31; const YY_SHIFT_MAX = 230; public static $yy_shift_ofst = array( -31, 42, 42, 94, 146, 146, 198, 94, 94, 146, 94, 198, -10, 250, 94, 94, 94, 250, 94, 94, 94, 94, 94, 302, 354, 94, 94, 94, 94, 94, 94, 94, 94, 406, 94, 94, 94, 458, 510, 510, 510, 510, 510, 510, 510, 510, 683, 826, 826, 80, 748, 891, 132, 62, 310, 780, 545, 715, 987, 1823, 1856, 1879, 1887, 1892, 1919, 1926, 1949, 1954, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 958, 718, 117, 259, 310, 310, 62, 62, 69, 630, 924, 238, 251, 55, 258, 273, 418, 418, 352, 194, 177, 194, 263, 126, 330, 407, 407, 334, 414, 194, 18, 18, 18, 18, 18, 18, 18, 18, -14, -14, 59, 18, -31, -31, 1787, 1805, 1841, 1854, 1985, 106, 342, 446, 498, 194, 194, 460, 194, 288, 194, 288, 194, 459, 459, 194, 194, 194, 194, 459, 15, 459, 459, 459, 461, 459, 461, 459, 194, 194, 194, 194, 18, 496, 18, 18, 496, 18, 479, -14, -14, -14, -31, -31, -31, -31, -31, -31, 1790, 3, 31, 141, 189, 394, -30, 347, -15, 161, 484, 487, 359, 435, 387, 208, 480, 490, 497, 500, 512, 503, 523, 531, 547, 567, 574, 576, 578, 591, 594, 598, 600, 601, 603, 579, 587, 589, 590, 584, 613, 479, 621, 588, 593, 629, 595, 599, 636, 631, 617, 640, ); const YY_REDUCE_USE_DFLT = -75; const YY_REDUCE_MAX = 178; public static $yy_reduce_ofst = array( 2, 504, 537, 596, 607, 642, 753, 785, 821, 853, 888, 917, 946, 979, 990, 1019, 1049, 1060, 1089, 1119, 1130, 1159, 1189, 1200, 1229, 1259, 1270, 1299, 1329, 1340, 1369, 1399, 1410, 1439, 1469, 1480, 1509, 1539, 1550, 1579, 1609, 1620, 1649, 1679, 1690, 1719, 571, 1576, 1646, 8, 43, 513, 151, 122, 672, 112, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, 34, 242, 139, 154, 68, 224, 278, 300, 383, 262, 4, 77, 276, 14, 14, 14, 293, 77, 179, 199, 248, 328, 346, 331, 179, 353, 371, 14, 14, 355, 396, 14, 14, 14, 14, 14, 14, 14, 179, 225, 14, 14, 415, 14, 26, 26, 26, 26, 26, 88, 98, 26, 26, 115, 115, 237, 115, 257, 115, 281, 115, 344, 344, 115, 115, 115, 115, 344, 351, 344, 344, 344, 366, 344, 386, 344, 115, 115, 115, 115, 364, 404, 364, 364, 404, 364, 423, 424, 424, 424, 467, 456, 462, 468, 482, 486, ); public static $yyExpectedTokens = array( array(), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 53, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ), array(25, 27, 33, 38, 39, 40, 55, 56, 57, 58, ), array(27, 33, 38, 39, 40, 55, 56, 57, 58, ), array(27, 33, 38, 39, 40, 55, 56, 57, 58, ), array(15, 17, 49, 51, 54, ), array(4, 10, 11, 12, 13, 15, 19, 20, 21, 26, 30, 31, 32, 60, 61, ), array(1, 14, 18, 27, 33, 36, 48, ), array(15, 17, 51, 54, ), array(15, 36, 54, ), array(1, 27, 33, ), array(4, 10, 11, 12, 13, 15, 19, 20, 21, 26, 30, 31, 32, 60, 61, ), array(22, 38, 39, 40, 55, 56, 57, 58, ), array(28, 38, 39, 40, 55, 56, 57, 58, ), array(14, 38, 39, 40, 55, 56, 57, 58, ), array(37, 38, 39, 40, 55, 56, 57, 58, ), array(38, 39, 40, 53, 55, 56, 57, 58, ), array(37, 38, 39, 40, 55, 56, 57, 58, ), array(14, 38, 39, 40, 55, 56, 57, 58, ), array(38, 39, 40, 55, 56, 57, 58, 61, ), array(14, 38, 39, 40, 55, 56, 57, 58, ), array(14, 38, 39, 40, 55, 56, 57, 58, ), array(2, 38, 39, 40, 55, 56, 57, 58, ), array(14, 38, 39, 40, 55, 56, 57, 58, ), array(38, 39, 40, 55, 56, 57, 58, ), array(38, 39, 40, 55, 56, 57, 58, ), array(38, 39, 40, 55, 56, 57, 58, ), array(38, 39, 40, 55, 56, 57, 58, ), array(38, 39, 40, 55, 56, 57, 58, ), array(38, 39, 40, 55, 56, 57, 58, ), array(38, 39, 40, 55, 56, 57, 58, ), array(38, 39, 40, 55, 56, 57, 58, ), array(38, 39, 40, 55, 56, 57, 58, ), array(38, 39, 40, 55, 56, 57, 58, ), array(38, 39, 40, 55, 56, 57, 58, ), array(38, 39, 40, 55, 56, 57, 58, ), array(38, 39, 40, 55, 56, 57, 58, ), array(38, 39, 40, 55, 56, 57, 58, ), array(38, 39, 40, 55, 56, 57, 58, ), array(10, 13, 17, 27, 29, 33, ), array(10, 13, 17, 27, 33, ), array(18, 45, 52, ), array(16, 18, 48, ), array(1, 27, 33, ), array(1, 27, 33, ), array(15, 36, 54, ), array(15, 36, 54, ), array(1, 2, ), array(3, 4, 5, 6, 7, 10, 11, 12, 13, 19, 20, 21, 26, 30, 31, 32, ), array(2, 10, 13, 16, 17, 18, 45, 48, 50, 52, ), array(10, 13, 17, 50, ), array(13, 15, 17, 54, ), array(1, 14, 27, 33, ), array(1, 14, 27, 33, ), array(1, 14, 27, 33, ), array(10, 13, 17, ), array(10, 13, 17, ), array(16, 18, 48, ), array(27, 33, ), array(15, 54, ), array(27, 33, ), array(27, 33, ), array(1, 18, ), array(18, 48, ), array(15, 17, ), array(15, 17, ), array(1, 53, ), array(1, 29, ), array(27, 33, ), array(1, ), array(1, ), array(1, ), array(1, ), array(1, ), array(1, ), array(1, ), array(1, ), array(18, ), array(18, ), array(1, ), array(1, ), array(), array(), array(2, 10, 13, 17, 18, 45, 48, 50, 52, 53, ), array(2, 10, 13, 16, 17, 18, 45, 48, 50, 52, ), array(2, 10, 13, 17, 18, 45, 48, 50, 52, ), array(2, 10, 13, 17, 18, 45, 48, 50, 52, ), array(10, 13, 17, 18, 45, 48, 50, 52, ), array(13, 15, 17, 34, 54, ), array(10, 13, 17, 50, ), array(10, 13, 17, ), array(16, 45, 52, ), array(27, 33, ), array(27, 33, ), array(16, 23, ), array(27, 33, ), array(15, 54, ), array(27, 33, ), array(15, 54, ), array(27, 33, ), array(45, 52, ), array(45, 52, ), array(27, 33, ), array(27, 33, ), array(27, 33, ), array(27, 33, ), array(45, 52, ), array(13, 36, ), array(45, 52, ), array(45, 52, ), array(45, 52, ), array(45, 52, ), array(45, 52, ), array(45, 52, ), array(45, 52, ), array(27, 33, ), array(27, 33, ), array(27, 33, ), array(27, 33, ), array(1, ), array(2, ), array(1, ), array(1, ), array(2, ), array(1, ), array(36, ), array(18, ), array(18, ), array(18, ), array(), array(), array(), array(), array(), array(), array(2, 36, 38, 39, 40, 48, 55, 56, 57, 58, ), array(14, 22, 24, 27, 33, 35, 37, 45, ), array(14, 16, 27, 33, 36, 48, ), array(14, 23, 27, 33, 46, ), array(14, 23, 27, 33, 46, ), array(10, 13, 17, 50, ), array(36, 45, 48, 53, ), array(29, 36, 48, ), array(23, 46, 61, ), array(23, 46, 53, ), array(7, 9, ), array(8, 9, ), array(22, 35, ), array(17, 50, ), array(23, 46, ), array(36, 48, ), array(36, 48, ), array(36, 48, ), array(35, 37, ), array(35, 37, ), array(35, 53, ), array(45, 53, ), array(35, 37, ), array(35, 37, ), array(16, 45, ), array(8, ), array(14, ), array(14, ), array(15, ), array(17, ), array(17, ), array(17, ), array(17, ), array(17, ), array(17, ), array(45, ), array(34, ), array(34, ), array(36, ), array(41, ), array(17, ), array(36, ), array(17, ), array(51, ), array(51, ), array(17, ), array(53, ), array(53, ), array(17, ), array(16, ), array(37, ), array(24, ), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), array(), ); public static $yy_default = array( 338, 514, 514, 514, 499, 499, 514, 476, 476, 514, 476, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 379, 358, 379, 514, 514, 415, 514, 514, 379, 514, 514, 384, 514, 514, 514, 514, 351, 514, 514, 514, 514, 514, 363, 475, 399, 403, 474, 500, 502, 501, 404, 386, 390, 391, 381, 384, 351, 379, 379, 489, 431, 379, 379, 514, 514, 370, 327, 430, 441, 514, 393, 393, 393, 441, 441, 431, 379, 514, 379, 379, 373, 431, 514, 514, 393, 393, 360, 375, 393, 397, 406, 407, 408, 398, 402, 431, 486, 406, 396, 336, 483, 430, 430, 430, 430, 430, 514, 443, 441, 457, 348, 359, 514, 362, 514, 367, 514, 368, 438, 439, 352, 354, 355, 356, 467, 441, 466, 469, 468, 434, 435, 436, 437, 369, 365, 366, 361, 371, 477, 374, 376, 478, 424, 441, 463, 490, 487, 336, 482, 482, 482, 441, 441, 415, 411, 415, 405, 405, 442, 415, 415, 405, 405, 334, 514, 514, 514, 405, 415, 425, 514, 514, 514, 514, 411, 514, 514, 411, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 411, 413, 514, 488, 417, 514, 457, 514, 514, 514, 514, 514, 420, 514, 514, 514, 387, 328, 329, 330, 331, 332, 333, 335, 337, 339, 340, 341, 342, 343, 344, 345, 347, 377, 357, 378, 459, 460, 461, 481, 372, 479, 480, 409, 418, 419, 428, 429, 440, 444, 445, 446, 394, 395, 410, 412, 414, 416, 420, 421, 422, 400, 401, 423, 426, 427, 454, 452, 455, 491, 492, 493, 494, 432, 433, 465, 458, 473, 346, 464, 510, 511, 503, 504, 505, 508, 507, 509, 512, 513, 506, 496, 498, 497, 495, 470, 453, 451, 448, 449, 450, 456, 471, 472, 417, 447, 485, 462, 457, 380, 364, 388, 392, ); const YYNOCODE = 110; const YYSTACKDEPTH = 500; const YYNSTATE = 327; const YYNRULE = 187; const YYERRORSYMBOL = 62; const YYERRSYMDT = 'yy0'; const YYFALLBACK = 0; public static $yyFallback = array( ); public function Trace($TraceFILE, $zTracePrompt) { if (!$TraceFILE) { $zTracePrompt = 0; } elseif (!$zTracePrompt) { $TraceFILE = 0; } $this->yyTraceFILE = $TraceFILE; $this->yyTracePrompt = $zTracePrompt; } public function PrintTrace() { $this->yyTraceFILE = fopen('php://output', 'w'); $this->yyTracePrompt = '<br>'; } public $yyTraceFILE; public $yyTracePrompt; public $yyidx; /* Index of top element in stack */ public $yyerrcnt; /* Shifts left before out of the error */ public $yystack = array(); /* The parser's stack */ public $yyTokenName = array( '$', 'VERT', 'COLON', 'PHP', 'TEXT', 'STRIPON', 'STRIPOFF', 'LITERALSTART', 'LITERALEND', 'LITERAL', 'SIMPELOUTPUT', 'SIMPLETAG', 'SMARTYBLOCKCHILDPARENT', 'LDEL', 'RDEL', 'DOLLARID', 'EQUAL', 'ID', 'PTR', 'LDELMAKENOCACHE', 'LDELIF', 'LDELFOR', 'SEMICOLON', 'INCDEC', 'TO', 'STEP', 'LDELFOREACH', 'SPACE', 'AS', 'APTR', 'LDELSETFILTER', 'CLOSETAG', 'LDELSLASH', 'ATTR', 'INTEGER', 'COMMA', 'OPENP', 'CLOSEP', 'MATH', 'UNIMATH', 'ISIN', 'QMARK', 'NOT', 'TYPECAST', 'HEX', 'DOT', 'INSTANCEOF', 'SINGLEQUOTESTRING', 'DOUBLECOLON', 'NAMESPACE', 'AT', 'HATCH', 'OPENB', 'CLOSEB', 'DOLLAR', 'LOGOP', 'SLOGOP', 'TLOGOP', 'SINGLECOND', 'ARRAYOPEN', 'QUOTE', 'BACKTICK', 'error', 'start', 'template', 'literal_e2', 'literal_e1', 'smartytag', 'tagbody', 'tag', 'outattr', 'eqoutattr', 'varindexed', 'output', 'attributes', 'variable', 'value', 'expr', 'modifierlist', 'statement', 'statements', 'foraction', 'varvar', 'modparameters', 'attribute', 'ternary', 'tlop', 'lop', 'scond', 'array', 'function', 'ns1', 'doublequoted_with_quotes', 'static_class_access', 'arraydef', 'object', 'arrayindex', 'indexdef', 'varvarele', 'objectchain', 'objectelement', 'method', 'params', 'modifier', 'modparameter', 'arrayelements', 'arrayelement', 'doublequoted', 'doublequotedcontent', ); public static $yyRuleName = array( 'start ::= template', 'template ::= template PHP', 'template ::= template TEXT', 'template ::= template STRIPON', 'template ::= template STRIPOFF', 'template ::= template LITERALSTART literal_e2 LITERALEND', 'literal_e2 ::= literal_e1 LITERALSTART literal_e1 LITERALEND', 'literal_e2 ::= literal_e1', 'literal_e1 ::= literal_e1 LITERAL', 'literal_e1 ::=', 'template ::= template smartytag', 'template ::=', 'smartytag ::= SIMPELOUTPUT', 'smartytag ::= SIMPLETAG', 'smartytag ::= SMARTYBLOCKCHILDPARENT', 'smartytag ::= LDEL tagbody RDEL', 'smartytag ::= tag RDEL', 'tagbody ::= outattr', 'tagbody ::= DOLLARID eqoutattr', 'tagbody ::= varindexed eqoutattr', 'eqoutattr ::= EQUAL outattr', 'outattr ::= output attributes', 'output ::= variable', 'output ::= value', 'output ::= expr', 'tag ::= LDEL ID attributes', 'tag ::= LDEL ID', 'tag ::= LDEL ID modifierlist attributes', 'tag ::= LDEL ID PTR ID attributes', 'tag ::= LDEL ID PTR ID modifierlist attributes', 'tag ::= LDELMAKENOCACHE DOLLARID', 'tag ::= LDELIF expr', 'tag ::= LDELIF expr attributes', 'tag ::= LDELIF statement', 'tag ::= LDELIF statement attributes', 'tag ::= LDELFOR statements SEMICOLON expr SEMICOLON varindexed foraction attributes', 'foraction ::= EQUAL expr', 'foraction ::= INCDEC', 'tag ::= LDELFOR statement TO expr attributes', 'tag ::= LDELFOR statement TO expr STEP expr attributes', 'tag ::= LDELFOREACH SPACE expr AS varvar attributes', 'tag ::= LDELFOREACH SPACE expr AS varvar APTR varvar attributes', 'tag ::= LDELFOREACH attributes', 'tag ::= LDELSETFILTER ID modparameters', 'tag ::= LDELSETFILTER ID modparameters modifierlist', 'smartytag ::= CLOSETAG', 'tag ::= LDELSLASH ID', 'tag ::= LDELSLASH ID modifierlist', 'tag ::= LDELSLASH ID PTR ID', 'tag ::= LDELSLASH ID PTR ID modifierlist', 'attributes ::= attributes attribute', 'attributes ::= attribute', 'attributes ::=', 'attribute ::= SPACE ID EQUAL ID', 'attribute ::= ATTR expr', 'attribute ::= ATTR value', 'attribute ::= SPACE ID', 'attribute ::= SPACE expr', 'attribute ::= SPACE value', 'attribute ::= SPACE INTEGER EQUAL expr', 'statements ::= statement', 'statements ::= statements COMMA statement', 'statement ::= DOLLARID EQUAL INTEGER', 'statement ::= DOLLARID EQUAL expr', 'statement ::= varindexed EQUAL expr', 'statement ::= OPENP statement CLOSEP', 'expr ::= value', 'expr ::= ternary', 'expr ::= DOLLARID COLON ID', 'expr ::= expr MATH value', 'expr ::= expr UNIMATH value', 'expr ::= expr tlop value', 'expr ::= expr lop expr', 'expr ::= expr scond', 'expr ::= expr ISIN array', 'expr ::= expr ISIN value', 'ternary ::= OPENP expr CLOSEP QMARK DOLLARID COLON expr', 'ternary ::= OPENP expr CLOSEP QMARK expr COLON expr', 'value ::= variable', 'value ::= UNIMATH value', 'value ::= NOT value', 'value ::= TYPECAST value', 'value ::= variable INCDEC', 'value ::= HEX', 'value ::= INTEGER', 'value ::= INTEGER DOT INTEGER', 'value ::= INTEGER DOT', 'value ::= DOT INTEGER', 'value ::= ID', 'value ::= function', 'value ::= OPENP expr CLOSEP', 'value ::= variable INSTANCEOF ns1', 'value ::= variable INSTANCEOF variable', 'value ::= SINGLEQUOTESTRING', 'value ::= doublequoted_with_quotes', 'value ::= varindexed DOUBLECOLON static_class_access', 'value ::= smartytag', 'value ::= value modifierlist', 'value ::= NAMESPACE', 'value ::= arraydef', 'value ::= ns1 DOUBLECOLON static_class_access', 'ns1 ::= ID', 'ns1 ::= NAMESPACE', 'variable ::= DOLLARID', 'variable ::= varindexed', 'variable ::= varvar AT ID', 'variable ::= object', 'variable ::= HATCH ID HATCH', 'variable ::= HATCH ID HATCH arrayindex', 'variable ::= HATCH variable HATCH', 'variable ::= HATCH variable HATCH arrayindex', 'varindexed ::= DOLLARID arrayindex', 'varindexed ::= varvar arrayindex', 'arrayindex ::= arrayindex indexdef', 'arrayindex ::=', 'indexdef ::= DOT DOLLARID', 'indexdef ::= DOT varvar', 'indexdef ::= DOT varvar AT ID', 'indexdef ::= DOT ID', 'indexdef ::= DOT INTEGER', 'indexdef ::= DOT LDEL expr RDEL', 'indexdef ::= OPENB ID CLOSEB', 'indexdef ::= OPENB ID DOT ID CLOSEB', 'indexdef ::= OPENB SINGLEQUOTESTRING CLOSEB', 'indexdef ::= OPENB INTEGER CLOSEB', 'indexdef ::= OPENB DOLLARID CLOSEB', 'indexdef ::= OPENB variable CLOSEB', 'indexdef ::= OPENB value CLOSEB', 'indexdef ::= OPENB expr CLOSEB', 'indexdef ::= OPENB CLOSEB', 'varvar ::= DOLLARID', 'varvar ::= DOLLAR', 'varvar ::= varvar varvarele', 'varvarele ::= ID', 'varvarele ::= SIMPELOUTPUT', 'varvarele ::= LDEL expr RDEL', 'object ::= varindexed objectchain', 'objectchain ::= objectelement', 'objectchain ::= objectchain objectelement', 'objectelement ::= PTR ID arrayindex', 'objectelement ::= PTR varvar arrayindex', 'objectelement ::= PTR LDEL expr RDEL arrayindex', 'objectelement ::= PTR ID LDEL expr RDEL arrayindex', 'objectelement ::= PTR method', 'function ::= ns1 OPENP params CLOSEP', 'method ::= ID OPENP params CLOSEP', 'method ::= DOLLARID OPENP params CLOSEP', 'params ::= params COMMA expr', 'params ::= expr', 'params ::=', 'modifierlist ::= modifierlist modifier modparameters', 'modifierlist ::= modifier modparameters', 'modifier ::= VERT AT ID', 'modifier ::= VERT ID', 'modparameters ::= modparameters modparameter', 'modparameters ::=', 'modparameter ::= COLON value', 'modparameter ::= COLON UNIMATH value', 'modparameter ::= COLON array', 'static_class_access ::= method', 'static_class_access ::= method objectchain', 'static_class_access ::= ID', 'static_class_access ::= DOLLARID arrayindex', 'static_class_access ::= DOLLARID arrayindex objectchain', 'lop ::= LOGOP', 'lop ::= SLOGOP', 'tlop ::= TLOGOP', 'scond ::= SINGLECOND', 'arraydef ::= OPENB arrayelements CLOSEB', 'arraydef ::= ARRAYOPEN arrayelements CLOSEP', 'arrayelements ::= arrayelement', 'arrayelements ::= arrayelements COMMA arrayelement', 'arrayelements ::=', 'arrayelement ::= value APTR expr', 'arrayelement ::= ID APTR expr', 'arrayelement ::= expr', 'doublequoted_with_quotes ::= QUOTE QUOTE', 'doublequoted_with_quotes ::= QUOTE doublequoted QUOTE', 'doublequoted ::= doublequoted doublequotedcontent', 'doublequoted ::= doublequotedcontent', 'doublequotedcontent ::= BACKTICK variable BACKTICK', 'doublequotedcontent ::= BACKTICK expr BACKTICK', 'doublequotedcontent ::= DOLLARID', 'doublequotedcontent ::= LDEL variable RDEL', 'doublequotedcontent ::= LDEL expr RDEL', 'doublequotedcontent ::= smartytag', 'doublequotedcontent ::= TEXT', ); public function tokenName($tokenType) { if ($tokenType === 0) { return 'End of Input'; } if ($tokenType > 0 && $tokenType < count($this->yyTokenName)) { return $this->yyTokenName[$tokenType]; } else { return 'Unknown'; } } public static function yy_destructor($yymajor, $yypminor) { switch ($yymajor) { default: break; /* If no destructor action specified: do nothing */ } } public function yy_pop_parser_stack() { if (empty($this->yystack)) { return; } $yytos = array_pop($this->yystack); if ($this->yyTraceFILE && $this->yyidx >= 0) { fwrite($this->yyTraceFILE, $this->yyTracePrompt . 'Popping ' . $this->yyTokenName[$yytos->major] . "\n"); } $yymajor = $yytos->major; self::yy_destructor($yymajor, $yytos->minor); $this->yyidx--; return $yymajor; } public function __destruct() { while ($this->yystack !== Array()) { $this->yy_pop_parser_stack(); } if (is_resource($this->yyTraceFILE)) { fclose($this->yyTraceFILE); } } public function yy_get_expected_tokens($token) { static $res3 = array(); static $res4 = array(); $state = $this->yystack[$this->yyidx]->stateno; $expected = self::$yyExpectedTokens[$state]; if (isset($res3[$state][$token])) { if ($res3[$state][$token]) { return $expected; } } else { if ($res3[$state][$token] = in_array($token, self::$yyExpectedTokens[$state], true)) { return $expected; } } $stack = $this->yystack; $yyidx = $this->yyidx; do { $yyact = $this->yy_find_shift_action($token); if ($yyact >= self::YYNSTATE && $yyact < self::YYNSTATE + self::YYNRULE) { // reduce action $done = 0; do { if ($done++ === 100) { $this->yyidx = $yyidx; $this->yystack = $stack; // too much recursion prevents proper detection // so give up return array_unique($expected); } $yyruleno = $yyact - self::YYNSTATE; $this->yyidx -= self::$yyRuleInfo[$yyruleno][1]; $nextstate = $this->yy_find_reduce_action( $this->yystack[$this->yyidx]->stateno, self::$yyRuleInfo[$yyruleno][0]); if (isset(self::$yyExpectedTokens[$nextstate])) { $expected = array_merge($expected, self::$yyExpectedTokens[$nextstate]); if (isset($res4[$nextstate][$token])) { if ($res4[$nextstate][$token]) { $this->yyidx = $yyidx; $this->yystack = $stack; return array_unique($expected); } } else { if ($res4[$nextstate][$token] = in_array($token, self::$yyExpectedTokens[$nextstate], true)) { $this->yyidx = $yyidx; $this->yystack = $stack; return array_unique($expected); } } } if ($nextstate < self::YYNSTATE) { // we need to shift a non-terminal $this->yyidx++; $x = new TP_yyStackEntry; $x->stateno = $nextstate; $x->major = self::$yyRuleInfo[$yyruleno][0]; $this->yystack[$this->yyidx] = $x; continue 2; } elseif ($nextstate === self::YYNSTATE + self::YYNRULE + 1) { $this->yyidx = $yyidx; $this->yystack = $stack; // the last token was just ignored, we can't accept // by ignoring input, this is in essence ignoring a // syntax error! return array_unique($expected); } elseif ($nextstate === self::YY_NO_ACTION) { $this->yyidx = $yyidx; $this->yystack = $stack; // input accepted, but not shifted (I guess) return $expected; } else { $yyact = $nextstate; } } while (true); } break; } while (true); $this->yyidx = $yyidx; $this->yystack = $stack; return array_unique($expected); } public function yy_is_expected_token($token) { static $res = array(); static $res2 = array(); if ($token === 0) { return true; // 0 is not part of this } $state = $this->yystack[$this->yyidx]->stateno; if (isset($res[$state][$token])) { if ($res[$state][$token]) { return true; } } else { if ($res[$state][$token] = in_array($token, self::$yyExpectedTokens[$state], true)) { return true; } } $stack = $this->yystack; $yyidx = $this->yyidx; do { $yyact = $this->yy_find_shift_action($token); if ($yyact >= self::YYNSTATE && $yyact < self::YYNSTATE + self::YYNRULE) { // reduce action $done = 0; do { if ($done++ === 100) { $this->yyidx = $yyidx; $this->yystack = $stack; // too much recursion prevents proper detection // so give up return true; } $yyruleno = $yyact - self::YYNSTATE; $this->yyidx -= self::$yyRuleInfo[$yyruleno][1]; $nextstate = $this->yy_find_reduce_action( $this->yystack[$this->yyidx]->stateno, self::$yyRuleInfo[$yyruleno][0]); if (isset($res2[$nextstate][$token])) { if ($res2[$nextstate][$token]) { $this->yyidx = $yyidx; $this->yystack = $stack; return true; } } else { if ($res2[$nextstate][$token] = (isset(self::$yyExpectedTokens[$nextstate]) && in_array($token, self::$yyExpectedTokens[$nextstate], true))) { $this->yyidx = $yyidx; $this->yystack = $stack; return true; } } if ($nextstate < self::YYNSTATE) { // we need to shift a non-terminal $this->yyidx++; $x = new TP_yyStackEntry; $x->stateno = $nextstate; $x->major = self::$yyRuleInfo[$yyruleno][0]; $this->yystack[$this->yyidx] = $x; continue 2; } elseif ($nextstate === self::YYNSTATE + self::YYNRULE + 1) { $this->yyidx = $yyidx; $this->yystack = $stack; if (!$token) { // end of input: this is valid return true; } // the last token was just ignored, we can't accept // by ignoring input, this is in essence ignoring a // syntax error! return false; } elseif ($nextstate === self::YY_NO_ACTION) { $this->yyidx = $yyidx; $this->yystack = $stack; // input accepted, but not shifted (I guess) return true; } else { $yyact = $nextstate; } } while (true); } break; } while (true); $this->yyidx = $yyidx; $this->yystack = $stack; return true; } public function yy_find_shift_action($iLookAhead) { $stateno = $this->yystack[$this->yyidx]->stateno; /* if ($this->yyidx < 0) return self::YY_NO_ACTION; */ if (!isset(self::$yy_shift_ofst[$stateno])) { // no shift actions return self::$yy_default[$stateno]; } $i = self::$yy_shift_ofst[$stateno]; if ($i === self::YY_SHIFT_USE_DFLT) { return self::$yy_default[$stateno]; } if ($iLookAhead === self::YYNOCODE) { return self::YY_NO_ACTION; } $i += $iLookAhead; if ($i < 0 || $i >= self::YY_SZ_ACTTAB || self::$yy_lookahead[$i] != $iLookAhead) { if (count(self::$yyFallback) && $iLookAhead < count(self::$yyFallback) && ($iFallback = self::$yyFallback[$iLookAhead]) != 0) { if ($this->yyTraceFILE) { fwrite($this->yyTraceFILE, $this->yyTracePrompt . 'FALLBACK ' . $this->yyTokenName[$iLookAhead] . ' => ' . $this->yyTokenName[$iFallback] . "\n"); } return $this->yy_find_shift_action($iFallback); } return self::$yy_default[$stateno]; } else { return self::$yy_action[$i]; } } public function yy_find_reduce_action($stateno, $iLookAhead) { /* $stateno = $this->yystack[$this->yyidx]->stateno; */ if (!isset(self::$yy_reduce_ofst[$stateno])) { return self::$yy_default[$stateno]; } $i = self::$yy_reduce_ofst[$stateno]; if ($i === self::YY_REDUCE_USE_DFLT) { return self::$yy_default[$stateno]; } if ($iLookAhead === self::YYNOCODE) { return self::YY_NO_ACTION; } $i += $iLookAhead; if ($i < 0 || $i >= self::YY_SZ_ACTTAB || self::$yy_lookahead[$i] != $iLookAhead) { return self::$yy_default[$stateno]; } else { return self::$yy_action[$i]; } } public function yy_shift($yyNewState, $yyMajor, $yypMinor) { $this->yyidx++; if ($this->yyidx >= self::YYSTACKDEPTH) { $this->yyidx--; if ($this->yyTraceFILE) { fprintf($this->yyTraceFILE, "%sStack Overflow!\n", $this->yyTracePrompt); } while ($this->yyidx >= 0) { $this->yy_pop_parser_stack(); } // line 221 "./lexer/smarty_internal_templateparser.y" $this->internalError = true; $this->compiler->trigger_template_error('Stack overflow in template parser'); return; } $yytos = new TP_yyStackEntry; $yytos->stateno = $yyNewState; $yytos->major = $yyMajor; $yytos->minor = $yypMinor; $this->yystack[] = $yytos; if ($this->yyTraceFILE && $this->yyidx > 0) { fprintf($this->yyTraceFILE, "%sShift %d\n", $this->yyTracePrompt, $yyNewState); fprintf($this->yyTraceFILE, "%sStack:", $this->yyTracePrompt); for ($i = 1; $i <= $this->yyidx; $i++) { fprintf($this->yyTraceFILE, " %s", $this->yyTokenName[$this->yystack[$i]->major]); } fwrite($this->yyTraceFILE,"\n"); } } public static $yyRuleInfo = array( array( 0 => 63, 1 => 1 ), array( 0 => 64, 1 => 2 ), array( 0 => 64, 1 => 2 ), array( 0 => 64, 1 => 2 ), array( 0 => 64, 1 => 2 ), array( 0 => 64, 1 => 4 ), array( 0 => 65, 1 => 4 ), array( 0 => 65, 1 => 1 ), array( 0 => 66, 1 => 2 ), array( 0 => 66, 1 => 0 ), array( 0 => 64, 1 => 2 ), array( 0 => 64, 1 => 0 ), array( 0 => 67, 1 => 1 ), array( 0 => 67, 1 => 1 ), array( 0 => 67, 1 => 1 ), array( 0 => 67, 1 => 3 ), array( 0 => 67, 1 => 2 ), array( 0 => 68, 1 => 1 ), array( 0 => 68, 1 => 2 ), array( 0 => 68, 1 => 2 ), array( 0 => 71, 1 => 2 ), array( 0 => 70, 1 => 2 ), array( 0 => 73, 1 => 1 ), array( 0 => 73, 1 => 1 ), array( 0 => 73, 1 => 1 ), array( 0 => 69, 1 => 3 ), array( 0 => 69, 1 => 2 ), array( 0 => 69, 1 => 4 ), array( 0 => 69, 1 => 5 ), array( 0 => 69, 1 => 6 ), array( 0 => 69, 1 => 2 ), array( 0 => 69, 1 => 2 ), array( 0 => 69, 1 => 3 ), array( 0 => 69, 1 => 2 ), array( 0 => 69, 1 => 3 ), array( 0 => 69, 1 => 8 ), array( 0 => 81, 1 => 2 ), array( 0 => 81, 1 => 1 ), array( 0 => 69, 1 => 5 ), array( 0 => 69, 1 => 7 ), array( 0 => 69, 1 => 6 ), array( 0 => 69, 1 => 8 ), array( 0 => 69, 1 => 2 ), array( 0 => 69, 1 => 3 ), array( 0 => 69, 1 => 4 ), array( 0 => 67, 1 => 1 ), array( 0 => 69, 1 => 2 ), array( 0 => 69, 1 => 3 ), array( 0 => 69, 1 => 4 ), array( 0 => 69, 1 => 5 ), array( 0 => 74, 1 => 2 ), array( 0 => 74, 1 => 1 ), array( 0 => 74, 1 => 0 ), array( 0 => 84, 1 => 4 ), array( 0 => 84, 1 => 2 ), array( 0 => 84, 1 => 2 ), array( 0 => 84, 1 => 2 ), array( 0 => 84, 1 => 2 ), array( 0 => 84, 1 => 2 ), array( 0 => 84, 1 => 4 ), array( 0 => 80, 1 => 1 ), array( 0 => 80, 1 => 3 ), array( 0 => 79, 1 => 3 ), array( 0 => 79, 1 => 3 ), array( 0 => 79, 1 => 3 ), array( 0 => 79, 1 => 3 ), array( 0 => 77, 1 => 1 ), array( 0 => 77, 1 => 1 ), array( 0 => 77, 1 => 3 ), array( 0 => 77, 1 => 3 ), array( 0 => 77, 1 => 3 ), array( 0 => 77, 1 => 3 ), array( 0 => 77, 1 => 3 ), array( 0 => 77, 1 => 2 ), array( 0 => 77, 1 => 3 ), array( 0 => 77, 1 => 3 ), array( 0 => 85, 1 => 7 ), array( 0 => 85, 1 => 7 ), array( 0 => 76, 1 => 1 ), array( 0 => 76, 1 => 2 ), array( 0 => 76, 1 => 2 ), array( 0 => 76, 1 => 2 ), array( 0 => 76, 1 => 2 ), array( 0 => 76, 1 => 1 ), array( 0 => 76, 1 => 1 ), array( 0 => 76, 1 => 3 ), array( 0 => 76, 1 => 2 ), array( 0 => 76, 1 => 2 ), array( 0 => 76, 1 => 1 ), array( 0 => 76, 1 => 1 ), array( 0 => 76, 1 => 3 ), array( 0 => 76, 1 => 3 ), array( 0 => 76, 1 => 3 ), array( 0 => 76, 1 => 1 ), array( 0 => 76, 1 => 1 ), array( 0 => 76, 1 => 3 ), array( 0 => 76, 1 => 1 ), array( 0 => 76, 1 => 2 ), array( 0 => 76, 1 => 1 ), array( 0 => 76, 1 => 1 ), array( 0 => 76, 1 => 3 ), array( 0 => 91, 1 => 1 ), array( 0 => 91, 1 => 1 ), array( 0 => 75, 1 => 1 ), array( 0 => 75, 1 => 1 ), array( 0 => 75, 1 => 3 ), array( 0 => 75, 1 => 1 ), array( 0 => 75, 1 => 3 ), array( 0 => 75, 1 => 4 ), array( 0 => 75, 1 => 3 ), array( 0 => 75, 1 => 4 ), array( 0 => 72, 1 => 2 ), array( 0 => 72, 1 => 2 ), array( 0 => 96, 1 => 2 ), array( 0 => 96, 1 => 0 ), array( 0 => 97, 1 => 2 ), array( 0 => 97, 1 => 2 ), array( 0 => 97, 1 => 4 ), array( 0 => 97, 1 => 2 ), array( 0 => 97, 1 => 2 ), array( 0 => 97, 1 => 4 ), array( 0 => 97, 1 => 3 ), array( 0 => 97, 1 => 5 ), array( 0 => 97, 1 => 3 ), array( 0 => 97, 1 => 3 ), array( 0 => 97, 1 => 3 ), array( 0 => 97, 1 => 3 ), array( 0 => 97, 1 => 3 ), array( 0 => 97, 1 => 3 ), array( 0 => 97, 1 => 2 ), array( 0 => 82, 1 => 1 ), array( 0 => 82, 1 => 1 ), array( 0 => 82, 1 => 2 ), array( 0 => 98, 1 => 1 ), array( 0 => 98, 1 => 1 ), array( 0 => 98, 1 => 3 ), array( 0 => 95, 1 => 2 ), array( 0 => 99, 1 => 1 ), array( 0 => 99, 1 => 2 ), array( 0 => 100, 1 => 3 ), array( 0 => 100, 1 => 3 ), array( 0 => 100, 1 => 5 ), array( 0 => 100, 1 => 6 ), array( 0 => 100, 1 => 2 ), array( 0 => 90, 1 => 4 ), array( 0 => 101, 1 => 4 ), array( 0 => 101, 1 => 4 ), array( 0 => 102, 1 => 3 ), array( 0 => 102, 1 => 1 ), array( 0 => 102, 1 => 0 ), array( 0 => 78, 1 => 3 ), array( 0 => 78, 1 => 2 ), array( 0 => 103, 1 => 3 ), array( 0 => 103, 1 => 2 ), array( 0 => 83, 1 => 2 ), array( 0 => 83, 1 => 0 ), array( 0 => 104, 1 => 2 ), array( 0 => 104, 1 => 3 ), array( 0 => 104, 1 => 2 ), array( 0 => 93, 1 => 1 ), array( 0 => 93, 1 => 2 ), array( 0 => 93, 1 => 1 ), array( 0 => 93, 1 => 2 ), array( 0 => 93, 1 => 3 ), array( 0 => 87, 1 => 1 ), array( 0 => 87, 1 => 1 ), array( 0 => 86, 1 => 1 ), array( 0 => 88, 1 => 1 ), array( 0 => 94, 1 => 3 ), array( 0 => 94, 1 => 3 ), array( 0 => 105, 1 => 1 ), array( 0 => 105, 1 => 3 ), array( 0 => 105, 1 => 0 ), array( 0 => 106, 1 => 3 ), array( 0 => 106, 1 => 3 ), array( 0 => 106, 1 => 1 ), array( 0 => 92, 1 => 2 ), array( 0 => 92, 1 => 3 ), array( 0 => 107, 1 => 2 ), array( 0 => 107, 1 => 1 ), array( 0 => 108, 1 => 3 ), array( 0 => 108, 1 => 3 ), array( 0 => 108, 1 => 1 ), array( 0 => 108, 1 => 3 ), array( 0 => 108, 1 => 3 ), array( 0 => 108, 1 => 1 ), array( 0 => 108, 1 => 1 ), ); public static $yyReduceMap = array( 0 => 0, 1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, 6 => 6, 7 => 7, 22 => 7, 23 => 7, 24 => 7, 37 => 7, 57 => 7, 58 => 7, 66 => 7, 67 => 7, 78 => 7, 83 => 7, 84 => 7, 89 => 7, 93 => 7, 94 => 7, 98 => 7, 99 => 7, 101 => 7, 106 => 7, 170 => 7, 175 => 7, 8 => 8, 9 => 9, 10 => 10, 12 => 12, 13 => 13, 14 => 14, 15 => 15, 16 => 16, 17 => 17, 18 => 18, 19 => 19, 20 => 20, 21 => 21, 25 => 25, 26 => 26, 27 => 27, 28 => 28, 29 => 29, 30 => 30, 31 => 31, 32 => 32, 34 => 32, 33 => 33, 35 => 35, 36 => 36, 38 => 38, 39 => 39, 40 => 40, 41 => 41, 42 => 42, 43 => 43, 44 => 44, 45 => 45, 46 => 46, 47 => 47, 48 => 48, 49 => 49, 50 => 50, 51 => 51, 60 => 51, 148 => 51, 152 => 51, 156 => 51, 158 => 51, 52 => 52, 149 => 52, 155 => 52, 53 => 53, 54 => 54, 55 => 54, 56 => 56, 133 => 56, 59 => 59, 61 => 61, 62 => 62, 63 => 62, 64 => 64, 65 => 65, 68 => 68, 69 => 69, 70 => 69, 71 => 71, 72 => 72, 73 => 73, 74 => 74, 75 => 75, 76 => 76, 77 => 77, 79 => 79, 81 => 79, 82 => 79, 113 => 79, 80 => 80, 85 => 85, 86 => 86, 87 => 87, 88 => 88, 90 => 90, 91 => 91, 92 => 91, 95 => 95, 96 => 96, 97 => 97, 100 => 100, 102 => 102, 103 => 103, 104 => 104, 105 => 105, 107 => 107, 108 => 108, 109 => 109, 110 => 110, 111 => 111, 112 => 112, 114 => 114, 172 => 114, 115 => 115, 116 => 116, 117 => 117, 118 => 118, 119 => 119, 120 => 120, 128 => 120, 121 => 121, 122 => 122, 123 => 123, 124 => 123, 126 => 123, 127 => 123, 125 => 125, 129 => 129, 130 => 130, 131 => 131, 176 => 131, 132 => 132, 134 => 134, 135 => 135, 136 => 136, 137 => 137, 138 => 138, 139 => 139, 140 => 140, 141 => 141, 142 => 142, 143 => 143, 144 => 144, 145 => 145, 146 => 146, 147 => 147, 150 => 150, 151 => 151, 153 => 153, 154 => 154, 157 => 157, 159 => 159, 160 => 160, 161 => 161, 162 => 162, 163 => 163, 164 => 164, 165 => 165, 166 => 166, 167 => 167, 168 => 168, 169 => 168, 171 => 171, 173 => 173, 174 => 174, 177 => 177, 178 => 178, 179 => 179, 180 => 180, 183 => 180, 181 => 181, 184 => 181, 182 => 182, 185 => 185, 186 => 186, ); // line 234 "./lexer/smarty_internal_templateparser.y" public function yy_r0(){ $this->root_buffer->prepend_array($this, $this->template_prefix); $this->root_buffer->append_array($this, $this->template_postfix); $this->_retvalue = $this->root_buffer->to_smarty_php($this); } // line 242 "./lexer/smarty_internal_templateparser.y" public function yy_r1(){ $code = $this->compiler->compileTag('private_php',array(array('code' => $this->yystack[$this->yyidx + 0]->minor), array('type' => $this->lex->phpType )),array()); if ($this->compiler->has_code && !empty($code)) { $tmp =''; foreach ($this->compiler->prefix_code as $code) {$tmp.=$code;} $this->compiler->prefix_code=array(); $this->current_buffer->append_subtree($this, new Smarty_Internal_ParseTree_Tag($this, $this->compiler->processNocacheCode($tmp.$code,true))); } } // line 251 "./lexer/smarty_internal_templateparser.y" public function yy_r2(){ $text = $this->yystack[ $this->yyidx + 0 ]->minor; if ((string)$text == '') { $this->current_buffer->append_subtree($this, null); } $this->current_buffer->append_subtree($this, new Smarty_Internal_ParseTree_Text($text, $this->strip)); } // line 261 "./lexer/smarty_internal_templateparser.y" public function yy_r3(){ $this->strip = true; } // line 265 "./lexer/smarty_internal_templateparser.y" public function yy_r4(){ $this->strip = false; } // line 270 "./lexer/smarty_internal_templateparser.y" public function yy_r5(){ $this->current_buffer->append_subtree($this, new Smarty_Internal_ParseTree_Text($this->yystack[$this->yyidx + -1]->minor)); } // line 275 "./lexer/smarty_internal_templateparser.y" public function yy_r6(){ $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor.$this->yystack[$this->yyidx + -1]->minor; } // line 278 "./lexer/smarty_internal_templateparser.y" public function yy_r7(){ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; } // line 282 "./lexer/smarty_internal_templateparser.y" public function yy_r8(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; } // line 287 "./lexer/smarty_internal_templateparser.y" public function yy_r9(){ $this->_retvalue = ''; } // line 291 "./lexer/smarty_internal_templateparser.y" public function yy_r10(){ if ($this->compiler->has_code) { $this->current_buffer->append_subtree($this, $this->mergePrefixCode($this->yystack[$this->yyidx + 0]->minor)); } $this->compiler->has_variable_string = false; $this->block_nesting_level = count($this->compiler->_tag_stack); } // line 303 "./lexer/smarty_internal_templateparser.y" public function yy_r12(){ $var = trim(substr($this->yystack[$this->yyidx + 0]->minor, $this->compiler->getLdelLength(), -$this->compiler->getRdelLength()), ' $'); if (preg_match('/^(.*)(\s+nocache)$/', $var, $match)) { $this->_retvalue = $this->compiler->compileTag('private_print_expression',array('nocache'),array('value'=>$this->compiler->compileVariable('\''.$match[1].'\''))); } else { $this->_retvalue = $this->compiler->compileTag('private_print_expression',array(),array('value'=>$this->compiler->compileVariable('\''.$var.'\''))); } } // line 313 "./lexer/smarty_internal_templateparser.y" public function yy_r13(){ $tag = trim(substr($this->yystack[$this->yyidx + 0]->minor, $this->compiler->getLdelLength(), -$this->compiler->getRdelLength())); if ($tag == 'strip') { $this->strip = true; $this->_retvalue = null; } else { if (defined($tag)) { if ($this->security) { $this->security->isTrustedConstant($tag, $this->compiler); } $this->_retvalue = $this->compiler->compileTag('private_print_expression',array(),array('value'=>$tag)); } else { if (preg_match('/^(.*)(\s+nocache)$/', $tag, $match)) { $this->_retvalue = $this->compiler->compileTag($match[1],array('\'nocache\'')); } else { $this->_retvalue = $this->compiler->compileTag($tag,array()); } } } } // line 334 "./lexer/smarty_internal_templateparser.y" public function yy_r14(){ $j = strrpos($this->yystack[$this->yyidx + 0]->minor,'.'); if ($this->yystack[$this->yyidx + 0]->minor[$j+1] == 'c') { // {$smarty.block.child} $this->_retvalue = $this->compiler->compileTag('child',array(),array($this->yystack[$this->yyidx + 0]->minor)); } else { // {$smarty.block.parent} $this->_retvalue = $this->compiler->compileTag('parent',array(),array($this->yystack[$this->yyidx + 0]->minor)); } } // line 345 "./lexer/smarty_internal_templateparser.y" public function yy_r15(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor; } // line 349 "./lexer/smarty_internal_templateparser.y" public function yy_r16(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor; } // line 353 "./lexer/smarty_internal_templateparser.y" public function yy_r17(){ $this->_retvalue = $this->compiler->compileTag('private_print_expression',$this->yystack[$this->yyidx + 0]->minor[1],array('value'=>$this->yystack[$this->yyidx + 0]->minor[0])); } // line 362 "./lexer/smarty_internal_templateparser.y" public function yy_r18(){ $this->_retvalue = $this->compiler->compileTag('assign',array_merge(array(array('value'=>$this->yystack[$this->yyidx + 0]->minor[0]),array('var'=>'\''.substr($this->yystack[$this->yyidx + -1]->minor,1).'\'')),$this->yystack[$this->yyidx + 0]->minor[1])); } // line 366 "./lexer/smarty_internal_templateparser.y" public function yy_r19(){ $this->_retvalue = $this->compiler->compileTag('assign',array_merge(array(array('value'=>$this->yystack[$this->yyidx + 0]->minor[0]),array('var'=>$this->yystack[$this->yyidx + -1]->minor['var'])),$this->yystack[$this->yyidx + 0]->minor[1]),array('smarty_internal_index'=>$this->yystack[$this->yyidx + -1]->minor['smarty_internal_index'])); } // line 370 "./lexer/smarty_internal_templateparser.y" public function yy_r20(){ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; } // line 374 "./lexer/smarty_internal_templateparser.y" public function yy_r21(){ $this->_retvalue = array($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor); } // line 389 "./lexer/smarty_internal_templateparser.y" public function yy_r25(){ if (defined($this->yystack[$this->yyidx + -1]->minor)) { if ($this->security) { $this->security->isTrustedConstant($this->yystack[$this->yyidx + -1]->minor, $this->compiler); } $this->_retvalue = $this->compiler->compileTag('private_print_expression',$this->yystack[$this->yyidx + 0]->minor,array('value'=>$this->yystack[$this->yyidx + -1]->minor)); } else { $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor); } } // line 399 "./lexer/smarty_internal_templateparser.y" public function yy_r26(){ if (defined($this->yystack[$this->yyidx + 0]->minor)) { if ($this->security) { $this->security->isTrustedConstant($this->yystack[$this->yyidx + 0]->minor, $this->compiler); } $this->_retvalue = $this->compiler->compileTag('private_print_expression',array(),array('value'=>$this->yystack[$this->yyidx + 0]->minor)); } else { $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + 0]->minor,array()); } } // line 412 "./lexer/smarty_internal_templateparser.y" public function yy_r27(){ if (defined($this->yystack[$this->yyidx + -2]->minor)) { if ($this->security) { $this->security->isTrustedConstant($this->yystack[$this->yyidx + -2]->minor, $this->compiler); } $this->_retvalue = $this->compiler->compileTag('private_print_expression',$this->yystack[$this->yyidx + 0]->minor,array('value'=>$this->yystack[$this->yyidx + -2]->minor, 'modifierlist'=>$this->yystack[$this->yyidx + -1]->minor)); } else { $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -2]->minor,$this->yystack[$this->yyidx + 0]->minor, array('modifierlist'=>$this->yystack[$this->yyidx + -1]->minor)); } } // line 424 "./lexer/smarty_internal_templateparser.y" public function yy_r28(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -3]->minor,$this->yystack[$this->yyidx + 0]->minor,array('object_method'=>$this->yystack[$this->yyidx + -1]->minor)); } // line 429 "./lexer/smarty_internal_templateparser.y" public function yy_r29(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -4]->minor,$this->yystack[$this->yyidx + 0]->minor,array('modifierlist'=>$this->yystack[$this->yyidx + -1]->minor, 'object_method'=>$this->yystack[$this->yyidx + -2]->minor)); } // line 434 "./lexer/smarty_internal_templateparser.y" public function yy_r30(){ $this->_retvalue = $this->compiler->compileTag('make_nocache',array(array('var'=>'\''.substr($this->yystack[$this->yyidx + 0]->minor,1).'\''))); } // line 439 "./lexer/smarty_internal_templateparser.y" public function yy_r31(){ $tag = trim(substr($this->yystack[$this->yyidx + -1]->minor,$this->compiler->getLdelLength())); $this->_retvalue = $this->compiler->compileTag(($tag === 'else if')? 'elseif' : $tag,array(),array('if condition'=>$this->yystack[$this->yyidx + 0]->minor)); } // line 444 "./lexer/smarty_internal_templateparser.y" public function yy_r32(){ $tag = trim(substr($this->yystack[$this->yyidx + -2]->minor,$this->compiler->getLdelLength())); $this->_retvalue = $this->compiler->compileTag(($tag === 'else if')? 'elseif' : $tag,$this->yystack[$this->yyidx + 0]->minor,array('if condition'=>$this->yystack[$this->yyidx + -1]->minor)); } // line 449 "./lexer/smarty_internal_templateparser.y" public function yy_r33(){ $tag = trim(substr($this->yystack[$this->yyidx + -1]->minor,$this->compiler->getLdelLength())); $this->_retvalue = $this->compiler->compileTag(($tag === 'else if')? 'elseif' : $tag,array(),array('if condition'=>$this->yystack[$this->yyidx + 0]->minor)); } // line 460 "./lexer/smarty_internal_templateparser.y" public function yy_r35(){ $this->_retvalue = $this->compiler->compileTag('for',array_merge($this->yystack[$this->yyidx + 0]->minor,array(array('start'=>$this->yystack[$this->yyidx + -6]->minor),array('ifexp'=>$this->yystack[$this->yyidx + -4]->minor),array('var'=>$this->yystack[$this->yyidx + -2]->minor),array('step'=>$this->yystack[$this->yyidx + -1]->minor))),1); } // line 464 "./lexer/smarty_internal_templateparser.y" public function yy_r36(){ $this->_retvalue = '='.$this->yystack[$this->yyidx + 0]->minor; } // line 472 "./lexer/smarty_internal_templateparser.y" public function yy_r38(){ $this->_retvalue = $this->compiler->compileTag('for',array_merge($this->yystack[$this->yyidx + 0]->minor,array(array('start'=>$this->yystack[$this->yyidx + -3]->minor),array('to'=>$this->yystack[$this->yyidx + -1]->minor))),0); } // line 476 "./lexer/smarty_internal_templateparser.y" public function yy_r39(){ $this->_retvalue = $this->compiler->compileTag('for',array_merge($this->yystack[$this->yyidx + 0]->minor,array(array('start'=>$this->yystack[$this->yyidx + -5]->minor),array('to'=>$this->yystack[$this->yyidx + -3]->minor),array('step'=>$this->yystack[$this->yyidx + -1]->minor))),0); } // line 481 "./lexer/smarty_internal_templateparser.y" public function yy_r40(){ $this->_retvalue = $this->compiler->compileTag('foreach',array_merge($this->yystack[$this->yyidx + 0]->minor,array(array('from'=>$this->yystack[$this->yyidx + -3]->minor),array('item'=>$this->yystack[$this->yyidx + -1]->minor)))); } // line 485 "./lexer/smarty_internal_templateparser.y" public function yy_r41(){ $this->_retvalue = $this->compiler->compileTag('foreach',array_merge($this->yystack[$this->yyidx + 0]->minor,array(array('from'=>$this->yystack[$this->yyidx + -5]->minor),array('item'=>$this->yystack[$this->yyidx + -1]->minor),array('key'=>$this->yystack[$this->yyidx + -3]->minor)))); } // line 488 "./lexer/smarty_internal_templateparser.y" public function yy_r42(){ $this->_retvalue = $this->compiler->compileTag('foreach',$this->yystack[$this->yyidx + 0]->minor); } // line 493 "./lexer/smarty_internal_templateparser.y" public function yy_r43(){ $this->_retvalue = $this->compiler->compileTag('setfilter',array(),array('modifier_list'=>array(array_merge(array($this->yystack[$this->yyidx + -1]->minor),$this->yystack[$this->yyidx + 0]->minor)))); } // line 497 "./lexer/smarty_internal_templateparser.y" public function yy_r44(){ $this->_retvalue = $this->compiler->compileTag('setfilter',array(),array('modifier_list'=>array_merge(array(array_merge(array($this->yystack[$this->yyidx + -2]->minor),$this->yystack[$this->yyidx + -1]->minor)),$this->yystack[$this->yyidx + 0]->minor))); } // line 503 "./lexer/smarty_internal_templateparser.y" public function yy_r45(){ $tag = trim(substr($this->yystack[$this->yyidx + 0]->minor, $this->compiler->getLdelLength(), -$this->compiler->getRdelLength()), ' /'); if ($tag === 'strip') { $this->strip = false; $this->_retvalue = null; } else { $this->_retvalue = $this->compiler->compileTag($tag.'close',array()); } } // line 512 "./lexer/smarty_internal_templateparser.y" public function yy_r46(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + 0]->minor.'close',array()); } // line 516 "./lexer/smarty_internal_templateparser.y" public function yy_r47(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -1]->minor.'close',array(),array('modifier_list'=>$this->yystack[$this->yyidx + 0]->minor)); } // line 521 "./lexer/smarty_internal_templateparser.y" public function yy_r48(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -2]->minor.'close',array(),array('object_method'=>$this->yystack[$this->yyidx + 0]->minor)); } // line 525 "./lexer/smarty_internal_templateparser.y" public function yy_r49(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -3]->minor.'close',array(),array('object_method'=>$this->yystack[$this->yyidx + -1]->minor, 'modifier_list'=>$this->yystack[$this->yyidx + 0]->minor)); } // line 533 "./lexer/smarty_internal_templateparser.y" public function yy_r50(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor; $this->_retvalue[] = $this->yystack[$this->yyidx + 0]->minor; } // line 539 "./lexer/smarty_internal_templateparser.y" public function yy_r51(){ $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor); } // line 544 "./lexer/smarty_internal_templateparser.y" public function yy_r52(){ $this->_retvalue = array(); } // line 549 "./lexer/smarty_internal_templateparser.y" public function yy_r53(){ if (defined($this->yystack[$this->yyidx + 0]->minor)) { if ($this->security) { $this->security->isTrustedConstant($this->yystack[$this->yyidx + 0]->minor, $this->compiler); } $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>$this->yystack[$this->yyidx + 0]->minor); } else { $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>'\''.$this->yystack[$this->yyidx + 0]->minor.'\''); } } // line 560 "./lexer/smarty_internal_templateparser.y" public function yy_r54(){ $this->_retvalue = array(trim($this->yystack[$this->yyidx + -1]->minor," =\n\r\t")=>$this->yystack[$this->yyidx + 0]->minor); } // line 568 "./lexer/smarty_internal_templateparser.y" public function yy_r56(){ $this->_retvalue = '\''.$this->yystack[$this->yyidx + 0]->minor.'\''; } // line 580 "./lexer/smarty_internal_templateparser.y" public function yy_r59(){ $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>$this->yystack[$this->yyidx + 0]->minor); } // line 593 "./lexer/smarty_internal_templateparser.y" public function yy_r61(){ $this->yystack[$this->yyidx + -2]->minor[]=$this->yystack[$this->yyidx + 0]->minor; $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor; } // line 598 "./lexer/smarty_internal_templateparser.y" public function yy_r62(){ $this->_retvalue = array('var' => '\''.substr($this->yystack[$this->yyidx + -2]->minor,1).'\'', 'value'=>$this->yystack[$this->yyidx + 0]->minor); } // line 605 "./lexer/smarty_internal_templateparser.y" public function yy_r64(){ $this->_retvalue = array('var' => $this->yystack[$this->yyidx + -2]->minor, 'value'=>$this->yystack[$this->yyidx + 0]->minor); } // line 609 "./lexer/smarty_internal_templateparser.y" public function yy_r65(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor; } // line 629 "./lexer/smarty_internal_templateparser.y" public function yy_r68(){ $this->_retvalue = '$_smarty_tpl->getStreamVariable(\''.substr($this->yystack[$this->yyidx + -2]->minor,1).'://' . $this->yystack[$this->yyidx + 0]->minor . '\')'; } // line 634 "./lexer/smarty_internal_templateparser.y" public function yy_r69(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor . trim($this->yystack[$this->yyidx + -1]->minor) . $this->yystack[$this->yyidx + 0]->minor; } // line 644 "./lexer/smarty_internal_templateparser.y" public function yy_r71(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor['pre']. $this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor['op'].$this->yystack[$this->yyidx + 0]->minor .')'; } // line 648 "./lexer/smarty_internal_templateparser.y" public function yy_r72(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; } // line 652 "./lexer/smarty_internal_templateparser.y" public function yy_r73(){ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor . $this->yystack[$this->yyidx + -1]->minor . ')'; } // line 656 "./lexer/smarty_internal_templateparser.y" public function yy_r74(){ $this->_retvalue = 'in_array('.$this->yystack[$this->yyidx + -2]->minor.','.$this->yystack[$this->yyidx + 0]->minor.')'; } // line 660 "./lexer/smarty_internal_templateparser.y" public function yy_r75(){ $this->_retvalue = 'in_array('.$this->yystack[$this->yyidx + -2]->minor.',(array)'.$this->yystack[$this->yyidx + 0]->minor.')'; } // line 668 "./lexer/smarty_internal_templateparser.y" public function yy_r76(){ $this->_retvalue = $this->yystack[$this->yyidx + -5]->minor.' ? '. $this->compiler->compileVariable('\''.substr($this->yystack[$this->yyidx + -2]->minor,1).'\'') . ' : '.$this->yystack[$this->yyidx + 0]->minor; } // line 672 "./lexer/smarty_internal_templateparser.y" public function yy_r77(){ $this->_retvalue = $this->yystack[$this->yyidx + -5]->minor.' ? '.$this->yystack[$this->yyidx + -2]->minor.' : '.$this->yystack[$this->yyidx + 0]->minor; } // line 682 "./lexer/smarty_internal_templateparser.y" public function yy_r79(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; } // line 687 "./lexer/smarty_internal_templateparser.y" public function yy_r80(){ $this->_retvalue = '!'.$this->yystack[$this->yyidx + 0]->minor; } // line 708 "./lexer/smarty_internal_templateparser.y" public function yy_r85(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'.'.$this->yystack[$this->yyidx + 0]->minor; } // line 712 "./lexer/smarty_internal_templateparser.y" public function yy_r86(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.'.'; } // line 716 "./lexer/smarty_internal_templateparser.y" public function yy_r87(){ $this->_retvalue = '.'.$this->yystack[$this->yyidx + 0]->minor; } // line 721 "./lexer/smarty_internal_templateparser.y" public function yy_r88(){ if (defined($this->yystack[$this->yyidx + 0]->minor)) { if ($this->security) { $this->security->isTrustedConstant($this->yystack[$this->yyidx + 0]->minor, $this->compiler); } $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; } else { $this->_retvalue = '\''.$this->yystack[$this->yyidx + 0]->minor.'\''; } } // line 738 "./lexer/smarty_internal_templateparser.y" public function yy_r90(){ $this->_retvalue = '('. $this->yystack[$this->yyidx + -1]->minor .')'; } // line 742 "./lexer/smarty_internal_templateparser.y" public function yy_r91(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; } // line 760 "./lexer/smarty_internal_templateparser.y" public function yy_r95(){ if ($this->security && $this->security->static_classes !== array()) { $this->compiler->trigger_template_error('dynamic static class not allowed by security setting'); } $prefixVar = $this->compiler->getNewPrefixVariable(); if ($this->yystack[$this->yyidx + -2]->minor['var'] === '\'smarty\'') { $this->compiler->appendPrefixCode("<?php {$prefixVar} = ". $this->compiler->compileTag('private_special_variable',array(),$this->yystack[$this->yyidx + -2]->minor['smarty_internal_index']).';?>'); } else { $this->compiler->appendPrefixCode("<?php {$prefixVar} = ". $this->compiler->compileVariable($this->yystack[$this->yyidx + -2]->minor['var']).$this->yystack[$this->yyidx + -2]->minor['smarty_internal_index'].';?>'); } $this->_retvalue = $prefixVar .'::'.$this->yystack[$this->yyidx + 0]->minor[0].$this->yystack[$this->yyidx + 0]->minor[1]; } // line 774 "./lexer/smarty_internal_templateparser.y" public function yy_r96(){ $prefixVar = $this->compiler->getNewPrefixVariable(); $tmp = $this->compiler->appendCode('<?php ob_start();?>', $this->yystack[$this->yyidx + 0]->minor); $this->compiler->appendPrefixCode($this->compiler->appendCode($tmp, "<?php {$prefixVar} = ob_get_clean();?>")); $this->_retvalue = $prefixVar; } // line 781 "./lexer/smarty_internal_templateparser.y" public function yy_r97(){ $this->_retvalue = $this->compiler->compileTag('private_modifier',array(),array('value'=>$this->yystack[$this->yyidx + -1]->minor,'modifierlist'=>$this->yystack[$this->yyidx + 0]->minor)); } // line 794 "./lexer/smarty_internal_templateparser.y" public function yy_r100(){ if (!in_array(strtolower($this->yystack[$this->yyidx + -2]->minor), array('self', 'parent')) && (!$this->security || $this->security->isTrustedStaticClassAccess($this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + 0]->minor, $this->compiler))) { if (isset($this->smarty->registered_classes[$this->yystack[$this->yyidx + -2]->minor])) { $this->_retvalue = $this->smarty->registered_classes[$this->yystack[$this->yyidx + -2]->minor].'::'.$this->yystack[$this->yyidx + 0]->minor[0].$this->yystack[$this->yyidx + 0]->minor[1]; } else { $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'::'.$this->yystack[$this->yyidx + 0]->minor[0].$this->yystack[$this->yyidx + 0]->minor[1]; } } else { $this->compiler->trigger_template_error ('static class \''.$this->yystack[$this->yyidx + -2]->minor.'\' is undefined or not allowed by security setting'); } } // line 813 "./lexer/smarty_internal_templateparser.y" public function yy_r102(){ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; } // line 824 "./lexer/smarty_internal_templateparser.y" public function yy_r103(){ $this->_retvalue = $this->compiler->compileVariable('\''.substr($this->yystack[$this->yyidx + 0]->minor,1).'\''); } // line 827 "./lexer/smarty_internal_templateparser.y" public function yy_r104(){ if ($this->yystack[$this->yyidx + 0]->minor['var'] === '\'smarty\'') { $smarty_var = $this->compiler->compileTag('private_special_variable',array(),$this->yystack[$this->yyidx + 0]->minor['smarty_internal_index']); $this->_retvalue = $smarty_var; } else { // used for array reset,next,prev,end,current $this->last_variable = $this->yystack[$this->yyidx + 0]->minor['var']; $this->last_index = $this->yystack[$this->yyidx + 0]->minor['smarty_internal_index']; $this->_retvalue = $this->compiler->compileVariable($this->yystack[$this->yyidx + 0]->minor['var']).$this->yystack[$this->yyidx + 0]->minor['smarty_internal_index']; } } // line 840 "./lexer/smarty_internal_templateparser.y" public function yy_r105(){ $this->_retvalue = '$_smarty_tpl->tpl_vars['. $this->yystack[$this->yyidx + -2]->minor .']->'.$this->yystack[$this->yyidx + 0]->minor; } // line 850 "./lexer/smarty_internal_templateparser.y" public function yy_r107(){ $this->_retvalue = $this->compiler->compileConfigVariable('\'' . $this->yystack[$this->yyidx + -1]->minor . '\''); } // line 854 "./lexer/smarty_internal_templateparser.y" public function yy_r108(){ $this->_retvalue = '(is_array($tmp = ' . $this->compiler->compileConfigVariable('\'' . $this->yystack[$this->yyidx + -2]->minor . '\'') . ') ? $tmp'.$this->yystack[$this->yyidx + 0]->minor.' :null)'; } // line 858 "./lexer/smarty_internal_templateparser.y" public function yy_r109(){ $this->_retvalue = $this->compiler->compileConfigVariable($this->yystack[$this->yyidx + -1]->minor); } // line 862 "./lexer/smarty_internal_templateparser.y" public function yy_r110(){ $this->_retvalue = '(is_array($tmp = ' . $this->compiler->compileConfigVariable($this->yystack[$this->yyidx + -2]->minor) . ') ? $tmp'.$this->yystack[$this->yyidx + 0]->minor.' : null)'; } // line 866 "./lexer/smarty_internal_templateparser.y" public function yy_r111(){ $this->_retvalue = array('var'=>'\''.substr($this->yystack[$this->yyidx + -1]->minor,1).'\'', 'smarty_internal_index'=>$this->yystack[$this->yyidx + 0]->minor); } // line 869 "./lexer/smarty_internal_templateparser.y" public function yy_r112(){ $this->_retvalue = array('var'=>$this->yystack[$this->yyidx + -1]->minor, 'smarty_internal_index'=>$this->yystack[$this->yyidx + 0]->minor); } // line 882 "./lexer/smarty_internal_templateparser.y" public function yy_r114(){ return; } // line 888 "./lexer/smarty_internal_templateparser.y" public function yy_r115(){ $this->_retvalue = '['.$this->compiler->compileVariable('\''.substr($this->yystack[$this->yyidx + 0]->minor,1).'\'').']'; } // line 891 "./lexer/smarty_internal_templateparser.y" public function yy_r116(){ $this->_retvalue = '['.$this->compiler->compileVariable($this->yystack[$this->yyidx + 0]->minor).']'; } // line 895 "./lexer/smarty_internal_templateparser.y" public function yy_r117(){ $this->_retvalue = '['.$this->compiler->compileVariable($this->yystack[$this->yyidx + -2]->minor).'->'.$this->yystack[$this->yyidx + 0]->minor.']'; } // line 899 "./lexer/smarty_internal_templateparser.y" public function yy_r118(){ $this->_retvalue = '[\''. $this->yystack[$this->yyidx + 0]->minor .'\']'; } // line 903 "./lexer/smarty_internal_templateparser.y" public function yy_r119(){ $this->_retvalue = '['. $this->yystack[$this->yyidx + 0]->minor .']'; } // line 908 "./lexer/smarty_internal_templateparser.y" public function yy_r120(){ $this->_retvalue = '['. $this->yystack[$this->yyidx + -1]->minor .']'; } // line 913 "./lexer/smarty_internal_templateparser.y" public function yy_r121(){ $this->_retvalue = '['.$this->compiler->compileTag('private_special_variable',array(),'[\'section\'][\''.$this->yystack[$this->yyidx + -1]->minor.'\'][\'index\']').']'; } // line 917 "./lexer/smarty_internal_templateparser.y" public function yy_r122(){ $this->_retvalue = '['.$this->compiler->compileTag('private_special_variable',array(),'[\'section\'][\''.$this->yystack[$this->yyidx + -3]->minor.'\'][\''.$this->yystack[$this->yyidx + -1]->minor.'\']').']'; } // line 920 "./lexer/smarty_internal_templateparser.y" public function yy_r123(){ $this->_retvalue = '['.$this->yystack[$this->yyidx + -1]->minor.']'; } // line 926 "./lexer/smarty_internal_templateparser.y" public function yy_r125(){ $this->_retvalue = '['.$this->compiler->compileVariable('\''.substr($this->yystack[$this->yyidx + -1]->minor,1).'\'').']'; } // line 942 "./lexer/smarty_internal_templateparser.y" public function yy_r129(){ $this->_retvalue = '[]'; } // line 952 "./lexer/smarty_internal_templateparser.y" public function yy_r130(){ $this->_retvalue = '\''.substr($this->yystack[$this->yyidx + 0]->minor,1).'\''; } // line 956 "./lexer/smarty_internal_templateparser.y" public function yy_r131(){ $this->_retvalue = '\'\''; } // line 961 "./lexer/smarty_internal_templateparser.y" public function yy_r132(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.'.'.$this->yystack[$this->yyidx + 0]->minor; } // line 969 "./lexer/smarty_internal_templateparser.y" public function yy_r134(){ $var = trim(substr($this->yystack[$this->yyidx + 0]->minor, $this->compiler->getLdelLength(), -$this->compiler->getRdelLength()), ' $'); $this->_retvalue = $this->compiler->compileVariable('\''.$var.'\''); } // line 975 "./lexer/smarty_internal_templateparser.y" public function yy_r135(){ $this->_retvalue = '('.$this->yystack[$this->yyidx + -1]->minor.')'; } // line 982 "./lexer/smarty_internal_templateparser.y" public function yy_r136(){ if ($this->yystack[$this->yyidx + -1]->minor['var'] === '\'smarty\'') { $this->_retvalue = $this->compiler->compileTag('private_special_variable',array(),$this->yystack[$this->yyidx + -1]->minor['smarty_internal_index']).$this->yystack[$this->yyidx + 0]->minor; } else { $this->_retvalue = $this->compiler->compileVariable($this->yystack[$this->yyidx + -1]->minor['var']).$this->yystack[$this->yyidx + -1]->minor['smarty_internal_index'].$this->yystack[$this->yyidx + 0]->minor; } } // line 991 "./lexer/smarty_internal_templateparser.y" public function yy_r137(){ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; } // line 996 "./lexer/smarty_internal_templateparser.y" public function yy_r138(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; } // line 1001 "./lexer/smarty_internal_templateparser.y" public function yy_r139(){ if ($this->security && substr($this->yystack[$this->yyidx + -1]->minor,0,1) === '_') { $this->compiler->trigger_template_error (self::ERR1); } $this->_retvalue = '->'.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; } // line 1008 "./lexer/smarty_internal_templateparser.y" public function yy_r140(){ if ($this->security) { $this->compiler->trigger_template_error (self::ERR2); } $this->_retvalue = '->{'.$this->compiler->compileVariable($this->yystack[$this->yyidx + -1]->minor).$this->yystack[$this->yyidx + 0]->minor.'}'; } // line 1015 "./lexer/smarty_internal_templateparser.y" public function yy_r141(){ if ($this->security) { $this->compiler->trigger_template_error (self::ERR2); } $this->_retvalue = '->{'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + 0]->minor.'}'; } // line 1022 "./lexer/smarty_internal_templateparser.y" public function yy_r142(){ if ($this->security) { $this->compiler->trigger_template_error (self::ERR2); } $this->_retvalue = '->{\''.$this->yystack[$this->yyidx + -4]->minor.'\'.'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + 0]->minor.'}'; } // line 1030 "./lexer/smarty_internal_templateparser.y" public function yy_r143(){ $this->_retvalue = '->'.$this->yystack[$this->yyidx + 0]->minor; } // line 1038 "./lexer/smarty_internal_templateparser.y" public function yy_r144(){ $this->_retvalue = $this->compiler->compilePHPFunctionCall($this->yystack[$this->yyidx + -3]->minor, $this->yystack[$this->yyidx + -1]->minor); } // line 1046 "./lexer/smarty_internal_templateparser.y" public function yy_r145(){ if ($this->security && substr($this->yystack[$this->yyidx + -3]->minor,0,1) === '_') { $this->compiler->trigger_template_error (self::ERR1); } $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor . '('. implode(',',$this->yystack[$this->yyidx + -1]->minor) .')'; } // line 1053 "./lexer/smarty_internal_templateparser.y" public function yy_r146(){ if ($this->security) { $this->compiler->trigger_template_error (self::ERR2); } $prefixVar = $this->compiler->getNewPrefixVariable(); $this->compiler->appendPrefixCode("<?php {$prefixVar} = ".$this->compiler->compileVariable('\''.substr($this->yystack[$this->yyidx + -3]->minor,1).'\'').';?>'); $this->_retvalue = $prefixVar .'('. implode(',',$this->yystack[$this->yyidx + -1]->minor) .')'; } // line 1064 "./lexer/smarty_internal_templateparser.y" public function yy_r147(){ $this->_retvalue = array_merge($this->yystack[$this->yyidx + -2]->minor,array($this->yystack[$this->yyidx + 0]->minor)); } // line 1081 "./lexer/smarty_internal_templateparser.y" public function yy_r150(){ $this->_retvalue = array_merge($this->yystack[$this->yyidx + -2]->minor,array(array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor))); } // line 1085 "./lexer/smarty_internal_templateparser.y" public function yy_r151(){ $this->_retvalue = array(array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor)); } // line 1093 "./lexer/smarty_internal_templateparser.y" public function yy_r153(){ $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor); } // line 1101 "./lexer/smarty_internal_templateparser.y" public function yy_r154(){ $this->_retvalue = array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor); } // line 1114 "./lexer/smarty_internal_templateparser.y" public function yy_r157(){ $this->_retvalue = array(trim($this->yystack[$this->yyidx + -1]->minor).$this->yystack[$this->yyidx + 0]->minor); } // line 1123 "./lexer/smarty_internal_templateparser.y" public function yy_r159(){ $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor, '', 'method'); } // line 1128 "./lexer/smarty_internal_templateparser.y" public function yy_r160(){ $this->_retvalue = array($this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor, 'method'); } // line 1133 "./lexer/smarty_internal_templateparser.y" public function yy_r161(){ $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor, ''); } // line 1138 "./lexer/smarty_internal_templateparser.y" public function yy_r162(){ $this->_retvalue = array($this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor, 'property'); } // line 1143 "./lexer/smarty_internal_templateparser.y" public function yy_r163(){ $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor, 'property'); } // line 1149 "./lexer/smarty_internal_templateparser.y" public function yy_r164(){ $this->_retvalue = ' '. trim($this->yystack[$this->yyidx + 0]->minor) . ' '; } // line 1153 "./lexer/smarty_internal_templateparser.y" public function yy_r165(){ static $lops = array( 'eq' => ' == ', 'ne' => ' != ', 'neq' => ' != ', 'gt' => ' > ', 'ge' => ' >= ', 'gte' => ' >= ', 'lt' => ' < ', 'le' => ' <= ', 'lte' => ' <= ', 'mod' => ' % ', 'and' => ' && ', 'or' => ' || ', 'xor' => ' xor ', ); $op = strtolower(preg_replace('/\s*/', '', $this->yystack[$this->yyidx + 0]->minor)); $this->_retvalue = $lops[$op]; } // line 1172 "./lexer/smarty_internal_templateparser.y" public function yy_r166(){ static $tlops = array( 'isdivby' => array('op' => ' % ', 'pre' => '!('), 'isnotdivby' => array('op' => ' % ', 'pre' => '('), 'isevenby' => array('op' => ' / ', 'pre' => '!(1 & '), 'isnotevenby' => array('op' => ' / ', 'pre' => '(1 & '), 'isoddby' => array('op' => ' / ', 'pre' => '(1 & '), 'isnotoddby' => array('op' => ' / ', 'pre' => '!(1 & '), ); $op = strtolower(preg_replace('/\s*/', '', $this->yystack[$this->yyidx + 0]->minor)); $this->_retvalue = $tlops[$op]; } // line 1185 "./lexer/smarty_internal_templateparser.y" public function yy_r167(){ static $scond = array ( 'iseven' => '!(1 & ', 'isnoteven' => '(1 & ', 'isodd' => '(1 & ', 'isnotodd' => '!(1 & ', ); $op = strtolower(str_replace(' ', '', $this->yystack[$this->yyidx + 0]->minor)); $this->_retvalue = $scond[$op]; } // line 1199 "./lexer/smarty_internal_templateparser.y" public function yy_r168(){ $this->_retvalue = 'array('.$this->yystack[$this->yyidx + -1]->minor.')'; } // line 1210 "./lexer/smarty_internal_templateparser.y" public function yy_r171(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.','.$this->yystack[$this->yyidx + 0]->minor; } // line 1218 "./lexer/smarty_internal_templateparser.y" public function yy_r173(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'=>'.$this->yystack[$this->yyidx + 0]->minor; } // line 1222 "./lexer/smarty_internal_templateparser.y" public function yy_r174(){ $this->_retvalue = '\''.$this->yystack[$this->yyidx + -2]->minor.'\'=>'.$this->yystack[$this->yyidx + 0]->minor; } // line 1238 "./lexer/smarty_internal_templateparser.y" public function yy_r177(){ $this->compiler->leaveDoubleQuote(); $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor->to_smarty_php($this); } // line 1244 "./lexer/smarty_internal_templateparser.y" public function yy_r178(){ $this->yystack[$this->yyidx + -1]->minor->append_subtree($this, $this->yystack[$this->yyidx + 0]->minor); $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor; } // line 1249 "./lexer/smarty_internal_templateparser.y" public function yy_r179(){ $this->_retvalue = new Smarty_Internal_ParseTree_Dq($this, $this->yystack[$this->yyidx + 0]->minor); } // line 1253 "./lexer/smarty_internal_templateparser.y" public function yy_r180(){ $this->_retvalue = new Smarty_Internal_ParseTree_Code('(string)'.$this->yystack[$this->yyidx + -1]->minor); } // line 1257 "./lexer/smarty_internal_templateparser.y" public function yy_r181(){ $this->_retvalue = new Smarty_Internal_ParseTree_Code('(string)('.$this->yystack[$this->yyidx + -1]->minor.')'); } // line 1261 "./lexer/smarty_internal_templateparser.y" public function yy_r182(){ $this->_retvalue = new Smarty_Internal_ParseTree_Code('(string)$_smarty_tpl->tpl_vars[\''. substr($this->yystack[$this->yyidx + 0]->minor,1) .'\']->value'); } // line 1273 "./lexer/smarty_internal_templateparser.y" public function yy_r185(){ $this->_retvalue = new Smarty_Internal_ParseTree_Tag($this, $this->yystack[$this->yyidx + 0]->minor); } // line 1277 "./lexer/smarty_internal_templateparser.y" public function yy_r186(){ $this->_retvalue = new Smarty_Internal_ParseTree_DqContent($this->yystack[$this->yyidx + 0]->minor); } private $_retvalue; public function yy_reduce($yyruleno) { if ($this->yyTraceFILE && $yyruleno >= 0 && $yyruleno < count(self::$yyRuleName)) { fprintf($this->yyTraceFILE, "%sReduce (%d) [%s].\n", $this->yyTracePrompt, $yyruleno, self::$yyRuleName[$yyruleno]); } $this->_retvalue = $yy_lefthand_side = null; if (isset(self::$yyReduceMap[$yyruleno])) { // call the action $this->_retvalue = null; $this->{'yy_r' . self::$yyReduceMap[$yyruleno]}(); $yy_lefthand_side = $this->_retvalue; } $yygoto = self::$yyRuleInfo[$yyruleno][0]; $yysize = self::$yyRuleInfo[$yyruleno][1]; $this->yyidx -= $yysize; for ($i = $yysize; $i; $i--) { // pop all of the right-hand side parameters array_pop($this->yystack); } $yyact = $this->yy_find_reduce_action($this->yystack[$this->yyidx]->stateno, $yygoto); if ($yyact < self::YYNSTATE) { if (!$this->yyTraceFILE && $yysize) { $this->yyidx++; $x = new TP_yyStackEntry; $x->stateno = $yyact; $x->major = $yygoto; $x->minor = $yy_lefthand_side; $this->yystack[$this->yyidx] = $x; } else { $this->yy_shift($yyact, $yygoto, $yy_lefthand_side); } } elseif ($yyact === self::YYNSTATE + self::YYNRULE + 1) { $this->yy_accept(); } } public function yy_parse_failed() { if ($this->yyTraceFILE) { fprintf($this->yyTraceFILE, "%sFail!\n", $this->yyTracePrompt); } while ($this->yyidx >= 0) { $this->yy_pop_parser_stack(); } } public function yy_syntax_error($yymajor, $TOKEN) { // line 214 "./lexer/smarty_internal_templateparser.y" $this->internalError = true; $this->yymajor = $yymajor; $this->compiler->trigger_template_error(); } public function yy_accept() { if ($this->yyTraceFILE) { fprintf($this->yyTraceFILE, "%sAccept!\n", $this->yyTracePrompt); } while ($this->yyidx >= 0) { $this->yy_pop_parser_stack(); } // line 207 "./lexer/smarty_internal_templateparser.y" $this->successful = !$this->internalError; $this->internalError = false; $this->retvalue = $this->_retvalue; } public function doParse($yymajor, $yytokenvalue) { $yyerrorhit = 0; /* True if yymajor has invoked an error */ if ($this->yyidx === null || $this->yyidx < 0) { $this->yyidx = 0; $this->yyerrcnt = -1; $x = new TP_yyStackEntry; $x->stateno = 0; $x->major = 0; $this->yystack = array(); $this->yystack[] = $x; } $yyendofinput = ($yymajor==0); if ($this->yyTraceFILE) { fprintf($this->yyTraceFILE, "%sInput %s\n", $this->yyTracePrompt, $this->yyTokenName[$yymajor]); } do { $yyact = $this->yy_find_shift_action($yymajor); if ($yymajor < self::YYERRORSYMBOL && !$this->yy_is_expected_token($yymajor)) { // force a syntax error $yyact = self::YY_ERROR_ACTION; } if ($yyact < self::YYNSTATE) { $this->yy_shift($yyact, $yymajor, $yytokenvalue); $this->yyerrcnt--; if ($yyendofinput && $this->yyidx >= 0) { $yymajor = 0; } else { $yymajor = self::YYNOCODE; } } elseif ($yyact < self::YYNSTATE + self::YYNRULE) { $this->yy_reduce($yyact - self::YYNSTATE); } elseif ($yyact === self::YY_ERROR_ACTION) { if ($this->yyTraceFILE) { fprintf($this->yyTraceFILE, "%sSyntax Error!\n", $this->yyTracePrompt); } if (self::YYERRORSYMBOL) { if ($this->yyerrcnt < 0) { $this->yy_syntax_error($yymajor, $yytokenvalue); } $yymx = $this->yystack[$this->yyidx]->major; if ($yymx === self::YYERRORSYMBOL || $yyerrorhit) { if ($this->yyTraceFILE) { fprintf($this->yyTraceFILE, "%sDiscard input token %s\n", $this->yyTracePrompt, $this->yyTokenName[$yymajor]); } $this->yy_destructor($yymajor, $yytokenvalue); $yymajor = self::YYNOCODE; } else { while ($this->yyidx >= 0 && $yymx !== self::YYERRORSYMBOL && ($yyact = $this->yy_find_shift_action(self::YYERRORSYMBOL)) >= self::YYNSTATE ){ $this->yy_pop_parser_stack(); } if ($this->yyidx < 0 || $yymajor==0) { $this->yy_destructor($yymajor, $yytokenvalue); $this->yy_parse_failed(); $yymajor = self::YYNOCODE; } elseif ($yymx !== self::YYERRORSYMBOL) { $u2 = 0; $this->yy_shift($yyact, self::YYERRORSYMBOL, $u2); } } $this->yyerrcnt = 3; $yyerrorhit = 1; } else { if ($this->yyerrcnt <= 0) { $this->yy_syntax_error($yymajor, $yytokenvalue); } $this->yyerrcnt = 3; $this->yy_destructor($yymajor, $yytokenvalue); if ($yyendofinput) { $this->yy_parse_failed(); } $yymajor = self::YYNOCODE; } } else { $this->yy_accept(); $yymajor = self::YYNOCODE; } } while ($yymajor !== self::YYNOCODE && $this->yyidx >= 0); } }
修改文件时间
将文件时间修改为当前时间的前一年
删除文件