From d21921de229119e95ba5589e7efdd8328437ddf8 Mon Sep 17 00:00:00 2001 From: Uwe Tews Date: Sat, 16 May 2015 14:47:12 +0200 Subject: [PATCH] - improvement reduce number of lexer tokens on operators and if conditions --- change_log.txt | 6 +- lexer/smarty_internal_templatelexer.plex | 98 +- lexer/smarty_internal_templateparser.y | 130 +- .../smarty_internal_templatelexer.php | 1408 ++++--- .../smarty_internal_templateparser.php | 3283 +++++++++++------ 5 files changed, 2820 insertions(+), 2105 deletions(-) diff --git a/change_log.txt b/change_log.txt index ac182246..7e76866a 100644 --- a/change_log.txt +++ b/change_log.txt @@ -1,4 +1,9 @@  ===== 3.1.24.dev ===== (xx.xx.2015) + 16.05.2015 + - bugfix {php}{/php} did work just for single lines https://github.com/smarty-php/smarty/issues/33 + - improvement remove not needed ?>]{2})\s*/ comment = /SMARTYldel\*([\S\s]*?)\*SMARTYrdel/ incdec = /\+\+|\-\-/ unimath = /\s*(\+|\-)\s*/ @@ -276,25 +276,9 @@ class Smarty_Internal_Templatelexer id = /[0-9]*[a-zA-Z_]\w*/ literal = /literal/ strip = /strip/ - equals = /\s*==\s*|\s+eq\s+/ - notequals = /\s*!=\s*|\s*<>\s*|\s+(ne|neq)\s+/ - greaterthan = /\s*>\s*|\s+gt\s+/ - lessthan = /\s*<\s*|\s+lt\s+/ - greaterequal = /\s*>=\s*|\s+(ge|gte)\s+/ - lessequal = /\s*<=\s*|\s+(le|lte)\s+/ - mod = /\s+mod\s+/ - identity = /\s*===\s*/ - noneidentity = /\s*!==\s*/ - isoddby = /\s+is\s+odd\s+by\s+/ - isnotoddby = /\s+is\s+not\s+odd\s+by\s+/ - isodd = /\s+is\s+odd/ - isnotodd = /\s+is\s+not\s+odd/ - isevenby = /\s+is\s+even\s+by\s+/ - isnotevenby = /\s+is\s+not\s+even\s+by\s+/ - iseven = /\s+is\s+even/ - isnoteven = /\s+is\s+not\s+even/ - isdivby = /\s+is\s+div\s+by\s+/ - isnotdivby = /\s+is\s+not\s+div\s+by\s+/ + lop = /\s*(([!=][=]{1,2})|([<][=>]?)|([>][=]?)|[&|]{2})\s*/ + tlop = /\s+(eq|ne|neg|gt|ge|gte|lt|le|lte|mod|and|or|xor|(is\s+(not\s+)?(odd|even|div)\s+by))\s+/ + scond = /\s+is\s+(not\s+)?(odd|even)/ isin = /\s+is\s+in\s+/ as = /\s+as\s+/ to = /\s+to\s+/ @@ -306,9 +290,6 @@ class Smarty_Internal_Templatelexer setfilter = /setfilter\s+/ instanceof = /\s+instanceof\s+/ not = /!\s*|not\s+/ - land = /\s*\&\&\s*|\s*and\s+/ - lor = /\s*\|\|\s*|\s*or\s+/ - lxor = /\s*xor\s+/ typecast = /\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\)\s*/ double_quote = /"/ single_quote = /'/ @@ -480,76 +461,18 @@ class Smarty_Internal_Templatelexer instanceof { $this->token = Smarty_Internal_Templateparser::TP_INSTANCEOF; } - identity{ - $this->token = Smarty_Internal_Templateparser::TP_IDENTITY; + lop { + $this->token = Smarty_Internal_Templateparser::TP_LOGOP; } - noneidentity{ - $this->token = Smarty_Internal_Templateparser::TP_NONEIDENTITY; + tlop { + $this->token = Smarty_Internal_Templateparser::TP_TLOGOP; } - equals{ - $this->token = Smarty_Internal_Templateparser::TP_EQUALS; - } - notequals{ - $this->token = Smarty_Internal_Templateparser::TP_NOTEQUALS; - } - greaterequal{ - $this->token = Smarty_Internal_Templateparser::TP_GREATEREQUAL; - } - lessequal{ - $this->token = Smarty_Internal_Templateparser::TP_LESSEQUAL; - } - greaterthan{ - $this->token = Smarty_Internal_Templateparser::TP_GREATERTHAN; - } - lessthan{ - $this->token = Smarty_Internal_Templateparser::TP_LESSTHAN; - } - mod{ - $this->token = Smarty_Internal_Templateparser::TP_MOD; + scond { + $this->token = Smarty_Internal_Templateparser::TP_SINGLECOND; } not{ $this->token = Smarty_Internal_Templateparser::TP_NOT; } - land { - $this->token = Smarty_Internal_Templateparser::TP_LAND; - } - lor { - $this->token = Smarty_Internal_Templateparser::TP_LOR; - } - lxor { - $this->token = Smarty_Internal_Templateparser::TP_LXOR; - } - isoddby { - $this->token = Smarty_Internal_Templateparser::TP_ISODDBY; - } - isnotoddby { - $this->token = Smarty_Internal_Templateparser::TP_ISNOTODDBY; - } - - isodd { - $this->token = Smarty_Internal_Templateparser::TP_ISODD; - } - isnotodd { - $this->token = Smarty_Internal_Templateparser::TP_ISNOTODD; - } - isevenby { - $this->token = Smarty_Internal_Templateparser::TP_ISEVENBY; - } - isnotevenby { - $this->token = Smarty_Internal_Templateparser::TP_ISNOTEVENBY; - } - iseven{ - $this->token = Smarty_Internal_Templateparser::TP_ISEVEN; - } - isnoteven { - $this->token = Smarty_Internal_Templateparser::TP_ISNOTEVEN; - } - isdivby { - $this->token = Smarty_Internal_Templateparser::TP_ISDIVBY; - } - isnotdivby { - $this->token = Smarty_Internal_Templateparser::TP_ISNOTDIVBY; - } typecast { $this->token = Smarty_Internal_Templateparser::TP_TYPECAST; } @@ -562,7 +485,6 @@ class Smarty_Internal_Templatelexer openB { $this->token = Smarty_Internal_Templateparser::TP_OPENB; } - closeB { $this->token = Smarty_Internal_Templateparser::TP_CLOSEB; } diff --git a/lexer/smarty_internal_templateparser.y b/lexer/smarty_internal_templateparser.y index f155efe3..77b3e84d 100644 --- a/lexer/smarty_internal_templateparser.y +++ b/lexer/smarty_internal_templateparser.y @@ -660,8 +660,11 @@ expr(res) ::= expr(e) modifierlist(l). { // if expression // simple expression -expr(res) ::= expr(e1) ifcond(c) expr(e2). { - res = e1.c.e2; +expr(res) ::= expr(e1) lop(c) expr(e2). { + res = (isset(c['pre']) ? c['pre'] : '') . e1.c['op'].e2 . (isset(c['pre']) ? ')' : ''); +} +expr(res) ::= expr(e1) scond(c). { + res = c . e1 . ')'; } expr(res) ::= expr(e1) ISIN array(a). { @@ -672,53 +675,9 @@ expr(res) ::= expr(e1) ISIN value(v). { res = 'in_array('.e1.',(array)'.v.')'; } -expr(res) ::= expr(e1) lop(o) expr(e2). { - res = e1.o.e2; -} - -expr(res) ::= expr(e1) ISDIVBY expr(e2). { - res = '!('.e1.' % '.e2.')'; -} - -expr(res) ::= expr(e1) ISNOTDIVBY expr(e2). { - res = '('.e1.' % '.e2.')'; -} - -expr(res) ::= expr(e1) ISEVEN. { - res = '!(1 & '.e1.')'; -} - -expr(res) ::= expr(e1) ISNOTEVEN. { - res = '(1 & '.e1.')'; -} - -expr(res) ::= expr(e1) ISEVENBY expr(e2). { - res = '!(1 & '.e1.' / '.e2.')'; -} - -expr(res) ::= expr(e1) ISNOTEVENBY expr(e2). { - res = '(1 & '.e1.' / '.e2.')'; -} - -expr(res) ::= expr(e1) ISODD. { - res = '(1 & '.e1.')'; -} - -expr(res) ::= expr(e1) ISNOTODD. { - res = '!(1 & '.e1.')'; -} - -expr(res) ::= expr(e1) ISODDBY expr(e2). { - res = '(1 & '.e1.' / '.e2.')'; -} - -expr(res) ::= expr(e1) ISNOTODDBY expr(e2). { - res = '!(1 & '.e1.' / '.e2.')'; -} - expr(res) ::= variable(v1) INSTANCEOF(i) ns1(v2). { res = v1.i.v2; - } +} // @@ -1199,52 +1158,45 @@ static_class_access(res) ::= DOLLAR ID(v) arrayindex(a) objectchain(oc). { // if conditions and operators -ifcond(res) ::= EQUALS. { - res = '=='; +lop(res) ::= LOGOP(o). { + res['op'] = ' '. trim(o) . ' '; } -ifcond(res) ::= NOTEQUALS. { - res = '!='; +lop(res) ::= TLOGOP(o). { + static $lops = array( + 'eq' => array('op' => ' == ', 'pre' => null), + 'ne' => array('op' => ' != ', 'pre' => null), + 'neq' => array('op' => ' != ', 'pre' => null), + 'gt' => array('op' => ' > ', 'pre' => null), + 'ge' => array('op' => ' >= ', 'pre' => null), + 'gte' => array('op' => ' >= ', 'pre' => null), + 'lt' => array('op' => ' < ', 'pre' => null), + 'le' => array('op' => ' <= ', 'pre' => null), + 'lte' => array('op' => ' <= ', 'pre' => null), + 'mod' => array('op' => ' % ', 'pre' => null), + 'and' => array('op' => ' && ', 'pre' => null), + 'or' => array('op' => ' || ', 'pre' => null), + 'xor' => array('op' => ' xor ', 'pre' => null), + '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(str_replace(' ', '', o)); + res = $lops[$op]; } -ifcond(res) ::= GREATERTHAN. { - res = '>'; -} - -ifcond(res) ::= LESSTHAN. { - res = '<'; -} - -ifcond(res) ::= GREATEREQUAL. { - res = '>='; -} - -ifcond(res) ::= LESSEQUAL. { - res = '<='; -} - -ifcond(res) ::= IDENTITY. { - res = '==='; -} - -ifcond(res) ::= NONEIDENTITY. { - res = '!=='; -} - -ifcond(res) ::= MOD. { - res = '%'; -} - -lop(res) ::= LAND. { - res = '&&'; -} - -lop(res) ::= LOR. { - res = '||'; -} - -lop(res) ::= LXOR. { - res = ' XOR '; +scond(res) ::= SINGLECOND(o). { + static $scond = array ( + 'iseven' => '!(1 & ', + 'isnoteven' => '(1 & ', + 'isodd' => '(1 & ', + 'isnotodd' => '!(1 & ', + ); + $op = strtolower(str_replace(' ', '', o)); + res = $scond[$op]; } // diff --git a/libs/sysplugins/smarty_internal_templatelexer.php b/libs/sysplugins/smarty_internal_templatelexer.php index 724e43a0..1240e0e5 100644 --- a/libs/sysplugins/smarty_internal_templatelexer.php +++ b/libs/sysplugins/smarty_internal_templatelexer.php @@ -19,147 +19,176 @@ */ class Smarty_Internal_Templatelexer { - /** * Source * * @var string */ public $data; - /** * byte counter * * @var int */ public $counter; - /** * token number * * @var int */ public $token; - /** * token value * * @var string */ public $value; - /** * current line * * @var int */ public $line; - /** * tag start line * * @var */ public $taglineno; - /** * flag if parsing php script * * @var bool */ public $is_phpScript = false; - - /** + /** * php code type * * @var string */ public $phpType = ''; - /** * escaped left delimiter * * @var string */ public $ldel = ''; - /** * escaped left delimiter length * * @var int */ public $ldel_length = 0; - /** * escaped right delimiter * * @var string */ public $rdel = ''; - /** * escaped right delimiter length * * @var int */ public $rdel_length = 0; - /** * state number * * @var int */ public $state = 1; - /** * Smarty object * * @var Smarty */ public $smarty = null; - /** * compiler object * * @var Smarty_Internal_TemplateCompilerBase */ private $compiler = null; - /** * literal tag nesting level * * @var int */ private $literal_cnt = 0; - /** * trace file * * @var resource */ public $yyTraceFILE; - /** * trace prompt * * @var string */ public $yyTracePrompt; - /** * state names * * @var array */ public $state_name = array(1 => 'TEXT', 2 => 'SMARTY', 3 => 'LITERAL', 4 => 'DOUBLEQUOTEDSTRING', 5 => 'CHILDBODY'); - /** * token names * * @var array */ public $smarty_token_names = array( // Text for parser error messages - 'IDENTITY' => '===', 'NONEIDENTITY' => '!==', 'EQUALS' => '==', 'NOTEQUALS' => '!=', 'GREATEREQUAL' => '(>=,ge)', 'LESSEQUAL' => '(<=,le)', 'GREATERTHAN' => '(>,gt)', 'LESSTHAN' => '(<,lt)', 'MOD' => '(%,mod)', 'NOT' => '(!,not)', 'LAND' => '(&&,and)', 'LOR' => '(||,or)', 'LXOR' => 'xor', 'OPENP' => '(', 'CLOSEP' => ')', 'OPENB' => '[', 'CLOSEB' => ']', 'PTR' => '->', 'APTR' => '=>', 'EQUAL' => '=', 'NUMBER' => 'number', 'UNIMATH' => '+" , "-', 'MATH' => '*" , "/" , "%', 'INCDEC' => '++" , "--', 'SPACE' => ' ', 'DOLLAR' => '$', 'SEMICOLON' => ';', 'COLON' => ':', 'DOUBLECOLON' => '::', 'AT' => '@', 'HATCH' => '#', 'QUOTE' => '"', 'BACKTICK' => '`', 'VERT' => '|', 'DOT' => '.', 'COMMA' => '","', 'ANDSYM' => '"&"', 'QMARK' => '"?"', 'ID' => 'identifier', 'TEXT' => 'text', 'FAKEPHPSTARTTAG' => 'Fake PHP start tag', 'PHPSTARTTAG' => 'PHP start tag', 'PHPENDTAG' => 'PHP end tag', 'LITERALSTART' => 'Literal start', 'LITERALEND' => 'Literal end', 'LDELSLASH' => 'closing tag', 'COMMENT' => 'comment', 'AS' => 'as', 'TO' => 'to',); + 'IDENTITY' => '===', + 'NONEIDENTITY' => '!==', + 'EQUALS' => '==', + 'NOTEQUALS' => '!=', + 'GREATEREQUAL' => '(>=,ge)', + 'LESSEQUAL' => '(<=,le)', + 'GREATERTHAN' => '(>,gt)', + 'LESSTHAN' => '(<,lt)', + 'MOD' => '(%,mod)', + 'NOT' => '(!,not)', + 'LAND' => '(&&,and)', + 'LOR' => '(||,or)', + 'LXOR' => 'xor', + 'OPENP' => '(', + 'CLOSEP' => ')', + 'OPENB' => '[', + 'CLOSEB' => ']', + 'PTR' => '->', + 'APTR' => '=>', + 'EQUAL' => '=', + 'NUMBER' => 'number', + 'UNIMATH' => '+" , "-', + 'MATH' => '*" , "/" , "%', + 'INCDEC' => '++" , "--', + 'SPACE' => ' ', + 'DOLLAR' => '$', + 'SEMICOLON' => ';', + 'COLON' => ':', + 'DOUBLECOLON' => '::', + 'AT' => '@', + 'HATCH' => '#', + 'QUOTE' => '"', + 'BACKTICK' => '`', + 'VERT' => '|', + 'DOT' => '.', + 'COMMA' => '","', + 'ANDSYM' => '"&"', + 'QMARK' => '"?"', + 'ID' => 'identifier', + 'TEXT' => 'text', + 'FAKEPHPSTARTTAG' => 'Fake PHP start tag', + 'PHPSTARTTAG' => 'PHP start tag', + 'PHPENDTAG' => 'PHP end tag', + 'LITERALSTART' => 'Literal start', + 'LITERALEND' => 'Literal end', + 'LDELSLASH' => 'closing tag', + 'COMMENT' => 'comment', + 'AS' => 'as', + 'TO' => 'to', + ); /** * constructor @@ -191,8 +220,8 @@ class Smarty_Internal_Templatelexer $this->yyTracePrompt = '
'; } + private $_yy_state = 1; - private $_yy_stack = array(); public function yylex() @@ -203,54 +232,80 @@ class Smarty_Internal_Templatelexer public function yypushstate($state) { if ($this->yyTraceFILE) { - fprintf($this->yyTraceFILE, "%sState push %s\n", $this->yyTracePrompt, isset($this->state_name[$this->_yy_state]) ? $this->state_name[$this->_yy_state] : $this->_yy_state); + fprintf($this->yyTraceFILE, "%sState push %s\n", $this->yyTracePrompt, isset($this->state_name[$this->_yy_state]) ? $this->state_name[$this->_yy_state] : $this->_yy_state); } array_push($this->_yy_stack, $this->_yy_state); $this->_yy_state = $state; if ($this->yyTraceFILE) { - fprintf($this->yyTraceFILE, "%snew State %s\n", $this->yyTracePrompt, isset($this->state_name[$this->_yy_state]) ? $this->state_name[$this->_yy_state] : $this->_yy_state); + fprintf($this->yyTraceFILE, "%snew State %s\n", $this->yyTracePrompt, isset($this->state_name[$this->_yy_state]) ? $this->state_name[$this->_yy_state] : $this->_yy_state); } } public function yypopstate() { - if ($this->yyTraceFILE) { - fprintf($this->yyTraceFILE, "%sState pop %s\n", $this->yyTracePrompt, isset($this->state_name[$this->_yy_state]) ? $this->state_name[$this->_yy_state] : $this->_yy_state); + if ($this->yyTraceFILE) { + fprintf($this->yyTraceFILE, "%sState pop %s\n", $this->yyTracePrompt, isset($this->state_name[$this->_yy_state]) ? $this->state_name[$this->_yy_state] : $this->_yy_state); } - $this->_yy_state = array_pop($this->_yy_stack); + $this->_yy_state = array_pop($this->_yy_stack); if ($this->yyTraceFILE) { - fprintf($this->yyTraceFILE, "%snew State %s\n", $this->yyTracePrompt, isset($this->state_name[$this->_yy_state]) ? $this->state_name[$this->_yy_state] : $this->_yy_state); + fprintf($this->yyTraceFILE, "%snew State %s\n", $this->yyTracePrompt, isset($this->state_name[$this->_yy_state]) ? $this->state_name[$this->_yy_state] : $this->_yy_state); } + } public function yybegin($state) { - $this->_yy_state = $state; + $this->_yy_state = $state; if ($this->yyTraceFILE) { - fprintf($this->yyTraceFILE, "%sState set %s\n", $this->yyTracePrompt, isset($this->state_name[$this->_yy_state]) ? $this->state_name[$this->_yy_state] : $this->_yy_state); + fprintf($this->yyTraceFILE, "%sState set %s\n", $this->yyTracePrompt, isset($this->state_name[$this->_yy_state]) ? $this->state_name[$this->_yy_state] : $this->_yy_state); } } + + public function yylex1() { - $tokenMap = array(1 => 0, 2 => 1, 4 => 0, 5 => 0, 6 => 0, 7 => 1, 9 => 0, 10 => 0, 11 => 0, 12 => 5, 18 => 0, 19 => 0, 20 => 0, 21 => 1, 23 => 5, 29 => 6, 36 => 5, 42 => 3, 46 => 0,); - if ($this->counter >= strlen($this->data)) { + $tokenMap = array ( + 1 => 0, + 2 => 1, + 4 => 0, + 5 => 0, + 6 => 0, + 7 => 1, + 9 => 0, + 10 => 0, + 11 => 0, + 12 => 5, + 18 => 0, + 19 => 0, + 20 => 0, + 21 => 1, + 23 => 5, + 29 => 6, + 36 => 5, + 42 => 3, + 46 => 0, + ); + if ($this->counter >= strlen($this->data)) { return false; // end of input } - $yy_global_pattern = "/\G(\\{\\})|\G(" . $this->ldel . "\\*([\S\s]*?)\\*" . $this->rdel . ")|\G(" . $this->ldel . "\\s*strip\\s*" . $this->rdel . ")|\G(" . $this->ldel . "\\s*\/strip\\s*" . $this->rdel . ")|\G(" . $this->ldel . "\\s*literal\\s*" . $this->rdel . ")|\G(" . $this->ldel . "\\s*(if|elseif|else if|while)\\s+)|\G(" . $this->ldel . "\\s*for\\s+)|\G(" . $this->ldel . "\\s*foreach(?![^\s]))|\G(" . $this->ldel . "\\s*setfilter\\s+)|\G((" . $this->ldel . "\\s*php\\s*(.)*?" . $this->rdel . "([\S\s]*?)" . $this->ldel . "\\s*\/php\\s*" . $this->rdel . ")|(" . $this->ldel . "\\s*[\/]?php\\s*(.)*?" . $this->rdel . "))|\G(" . $this->ldel . "\\s*\/)|\G(" . $this->ldel . "\\s*)|\G(\\s*" . $this->rdel . ")|\G(<\\?xml\\s+([\S\s]*?)\\?>)|\G(<%((('[^'\\\\]*(?:\\\\.[^'\\\\]*)*')|(\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\")|(\/\\*[\S\s]*?\\*\/)|[\S\s])*?)%>)|\G((<\\?(?:php\\s+|=)?)((('[^'\\\\]*(?:\\\\.[^'\\\\]*)*')|(\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\")|(\/\\*[\S\s]*?\\*\/)|[\S\s])*?)\\?>)|\G(((('[^'\\\\]*(?:\\\\.[^'\\\\]*)*')|(\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\")|(\/\\*[\S\s]*?\\*\/)|[\S\s])*?)<\/script>)|\G((<(\\?(?:php\\s+|=)?|(script\\s+language\\s*=\\s*[\"']?\\s*php\\s*[\"']?\\s*>)|%))|\\?>|%>)|\G([\S\s])/iS"; + $yy_global_pattern = "/\G(\\{\\})|\G(".$this->ldel."\\*([\S\s]*?)\\*".$this->rdel.")|\G(".$this->ldel."\\s*strip\\s*".$this->rdel.")|\G(".$this->ldel."\\s*\/strip\\s*".$this->rdel.")|\G(".$this->ldel."\\s*literal\\s*".$this->rdel.")|\G(".$this->ldel."\\s*(if|elseif|else if|while)\\s+)|\G(".$this->ldel."\\s*for\\s+)|\G(".$this->ldel."\\s*foreach(?![^\s]))|\G(".$this->ldel."\\s*setfilter\\s+)|\G((".$this->ldel."\\s*php\\s*(.)*?".$this->rdel."([\S\s]*?)".$this->ldel."\\s*\/php\\s*".$this->rdel.")|(".$this->ldel."\\s*[\/]?php\\s*(.)*?".$this->rdel."))|\G(".$this->ldel."\\s*\/)|\G(".$this->ldel."\\s*)|\G(\\s*".$this->rdel.")|\G(<\\?xml\\s+([\S\s]*?)\\?>)|\G(<%((('[^'\\\\]*(?:\\\\.[^'\\\\]*)*')|(\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\")|(\/\\*[\S\s]*?\\*\/)|[\S\s])*?)%>)|\G((<\\?(?:php\\s+|=)?)((('[^'\\\\]*(?:\\\\.[^'\\\\]*)*')|(\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\")|(\/\\*[\S\s]*?\\*\/)|[\S\s])*?)\\?>)|\G(((('[^'\\\\]*(?:\\\\.[^'\\\\]*)*')|(\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\")|(\/\\*[\S\s]*?\\*\/)|[\S\s])*?)<\/script>)|\G((<(\\?(?:php\\s+|=)?|(script\\s+language\\s*=\\s*[\"']?\\s*php\\s*[\"']?\\s*>)|%))|\\?>|%>)|\G([\S\s])/iS"; do { - if (preg_match($yy_global_pattern, $this->data, $yymatches, null, $this->counter)) { + if (preg_match($yy_global_pattern,$this->data, $yymatches, null, $this->counter)) { $yysubmatches = $yymatches; $yymatches = preg_grep("/(.|\s)+/", $yysubmatches); if (!count($yymatches)) { - throw new Exception('Error: lexing failed because a rule matched' . ' an empty string. Input "' . substr($this->data, $this->counter, 5) . '... state TEXT'); + throw new Exception('Error: lexing failed because a rule matched' . + ' an empty string. Input "' . substr($this->data, + $this->counter, 5) . '... state TEXT'); } next($yymatches); // skip global match $this->token = key($yymatches); // token number if ($tokenMap[$this->token]) { // extract sub-patterns for passing to lex function - $yysubmatches = array_slice($yysubmatches, $this->token + 1, $tokenMap[$this->token]); + $yysubmatches = array_slice($yysubmatches, $this->token + 1, + $tokenMap[$this->token]); } else { $yysubmatches = array(); } @@ -268,225 +323,261 @@ class Smarty_Internal_Templatelexer } elseif ($r === false) { $this->counter += strlen($this->value); $this->line += substr_count($this->value, "\n"); - if ($this->counter >= strlen($this->data)) { + if ($this->counter >= strlen($this->data)) { return false; // end of input } // skip this token continue; - } - } else { - throw new Exception('Unexpected input at line' . $this->line . ': ' . $this->data[$this->counter]); + } } else { + throw new Exception('Unexpected input at line' . $this->line . + ': ' . $this->data[$this->counter]); } break; } while (true); + } // end function - const TEXT = 1; + const TEXT = 1; function yy_r1_1($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_TEXT; - } - + $this->token = Smarty_Internal_Templateparser::TP_TEXT; + } function yy_r1_2($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_COMMENT; - } - + $this->token = Smarty_Internal_Templateparser::TP_COMMENT; + } function yy_r1_4($yy_subpatterns) { - if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { - $this->token = Smarty_Internal_Templateparser::TP_TEXT; - } else { - $this->token = Smarty_Internal_Templateparser::TP_STRIPON; - } - } - + if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { + $this->token = Smarty_Internal_Templateparser::TP_TEXT; + } else { + $this->token = Smarty_Internal_Templateparser::TP_STRIPON; + } + } function yy_r1_5($yy_subpatterns) { - if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { - $this->token = Smarty_Internal_Templateparser::TP_TEXT; - } else { - $this->token = Smarty_Internal_Templateparser::TP_STRIPOFF; - } - } - + if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { + $this->token = Smarty_Internal_Templateparser::TP_TEXT; + } else { + $this->token = Smarty_Internal_Templateparser::TP_STRIPOFF; + } + } function yy_r1_6($yy_subpatterns) { - if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { - $this->token = Smarty_Internal_Templateparser::TP_TEXT; - } else { - $this->token = Smarty_Internal_Templateparser::TP_LITERALSTART; - $this->yypushstate(self::LITERAL); + if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { + $this->token = Smarty_Internal_Templateparser::TP_TEXT; + } else { + $this->token = Smarty_Internal_Templateparser::TP_LITERALSTART; + $this->yypushstate(self::LITERAL); } - } - + } function yy_r1_7($yy_subpatterns) { - if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { - $this->token = Smarty_Internal_Templateparser::TP_TEXT; - } else { - $this->token = Smarty_Internal_Templateparser::TP_LDELIF; - $this->yypushstate(self::SMARTY); - $this->taglineno = $this->line; - } - } - + if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { + $this->token = Smarty_Internal_Templateparser::TP_TEXT; + } else { + $this->token = Smarty_Internal_Templateparser::TP_LDELIF; + $this->yypushstate(self::SMARTY); + $this->taglineno = $this->line; + } + } function yy_r1_9($yy_subpatterns) { - if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { - $this->token = Smarty_Internal_Templateparser::TP_TEXT; - } else { - $this->token = Smarty_Internal_Templateparser::TP_LDELFOR; - $this->yypushstate(self::SMARTY); - $this->taglineno = $this->line; - } - } - + if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { + $this->token = Smarty_Internal_Templateparser::TP_TEXT; + } else { + $this->token = Smarty_Internal_Templateparser::TP_LDELFOR; + $this->yypushstate(self::SMARTY); + $this->taglineno = $this->line; + } + } function yy_r1_10($yy_subpatterns) { - if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { - $this->token = Smarty_Internal_Templateparser::TP_TEXT; - } else { - $this->token = Smarty_Internal_Templateparser::TP_LDELFOREACH; - $this->yypushstate(self::SMARTY); - $this->taglineno = $this->line; - } - } - + if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { + $this->token = Smarty_Internal_Templateparser::TP_TEXT; + } else { + $this->token = Smarty_Internal_Templateparser::TP_LDELFOREACH; + $this->yypushstate(self::SMARTY); + $this->taglineno = $this->line; + } + } function yy_r1_11($yy_subpatterns) { - if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { - $this->token = Smarty_Internal_Templateparser::TP_TEXT; - } else { - $this->token = Smarty_Internal_Templateparser::TP_LDELSETFILTER; - $this->yypushstate(self::SMARTY); - $this->taglineno = $this->line; - } - } - + if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { + $this->token = Smarty_Internal_Templateparser::TP_TEXT; + } else { + $this->token = Smarty_Internal_Templateparser::TP_LDELSETFILTER; + $this->yypushstate(self::SMARTY); + $this->taglineno = $this->line; + } + } function yy_r1_12($yy_subpatterns) { - if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { - $this->token = Smarty_Internal_Templateparser::TP_TEXT; - } else { - $this->token = Smarty_Internal_Templateparser::TP_PHP; - $this->phpType = 'tag'; - $this->taglineno = $this->line; - } - } - + if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { + $this->token = Smarty_Internal_Templateparser::TP_TEXT; + } else { + $this->token = Smarty_Internal_Templateparser::TP_PHP; + $this->phpType = 'tag'; + $this->taglineno = $this->line; + } + } function yy_r1_18($yy_subpatterns) { - if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { - $this->token = Smarty_Internal_Templateparser::TP_TEXT; - } else { - $this->token = Smarty_Internal_Templateparser::TP_LDELSLASH; - $this->yypushstate(self::SMARTY); - $this->taglineno = $this->line; - } - } - + if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { + $this->token = Smarty_Internal_Templateparser::TP_TEXT; + } else { + $this->token = Smarty_Internal_Templateparser::TP_LDELSLASH; + $this->yypushstate(self::SMARTY); + $this->taglineno = $this->line; + } + } function yy_r1_19($yy_subpatterns) { - if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { - $this->token = Smarty_Internal_Templateparser::TP_TEXT; - } else { - $this->token = Smarty_Internal_Templateparser::TP_LDEL; - $this->yypushstate(self::SMARTY); - $this->taglineno = $this->line; - } - } - + if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { + $this->token = Smarty_Internal_Templateparser::TP_TEXT; + } else { + $this->token = Smarty_Internal_Templateparser::TP_LDEL; + $this->yypushstate(self::SMARTY); + $this->taglineno = $this->line; + } + } function yy_r1_20($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_TEXT; - } - + $this->token = Smarty_Internal_Templateparser::TP_TEXT; + } function yy_r1_21($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_XMLTAG; $this->taglineno = $this->line; - } - + } function yy_r1_23($yy_subpatterns) { $this->phpType = 'asp'; $this->taglineno = $this->line; $this->token = Smarty_Internal_Templateparser::TP_PHP; - } - + } function yy_r1_29($yy_subpatterns) { $this->phpType = 'php'; $this->taglineno = $this->line; $this->token = Smarty_Internal_Templateparser::TP_PHP; - } - + } function yy_r1_36($yy_subpatterns) { $this->phpType = 'script'; $this->taglineno = $this->line; $this->token = Smarty_Internal_Templateparser::TP_PHP; - } - + } function yy_r1_42($yy_subpatterns) { $this->phpType = 'unmatched'; $this->taglineno = $this->line; $this->token = Smarty_Internal_Templateparser::TP_PHP; - } - + } function yy_r1_46($yy_subpatterns) { - $to = strlen($this->data); - preg_match("/{$this->ldel}|<\?|<%|\?>|%>|/", $this->data, $match, PREG_OFFSET_CAPTURE, $this->counter); - if (isset($match[0][1])) { - $to = $match[0][1]; - } - $this->value = substr($this->data, $this->counter, $to - $this->counter); - $this->token = Smarty_Internal_Templateparser::TP_TEXT; - } + $to = strlen($this->data); + preg_match("/{$this->ldel}|<\?|<%|\?>|%>|/",$this->data,$match,PREG_OFFSET_CAPTURE,$this->counter); + if (isset($match[0][1])) { + $to = $match[0][1]; + } + $this->value = substr($this->data,$this->counter,$to-$this->counter); + $this->token = Smarty_Internal_Templateparser::TP_TEXT; + } + public function yylex2() { - $tokenMap = array(1 => 0, 2 => 0, 3 => 1, 5 => 0, 6 => 0, 7 => 0, 8 => 0, 9 => 0, 10 => 0, 11 => 0, 12 => 0, 13 => 0, 14 => 0, 15 => 1, 17 => 1, 19 => 1, 21 => 0, 22 => 0, 23 => 0, 24 => 0, 25 => 0, 26 => 0, 27 => 0, 28 => 0, 29 => 0, 30 => 0, 31 => 0, 32 => 0, 33 => 0, 34 => 0, 35 => 0, 36 => 0, 37 => 0, 38 => 3, 42 => 0, 43 => 0, 44 => 0, 45 => 0, 46 => 0, 47 => 0, 48 => 0, 49 => 0, 50 => 1, 52 => 1, 54 => 0, 55 => 0, 56 => 0, 57 => 2, 60 => 0, 61 => 0, 62 => 0, 63 => 0, 64 => 0, 65 => 0, 66 => 0, 67 => 0, 68 => 0, 69 => 0, 70 => 0, 71 => 0, 72 => 0, 73 => 1, 75 => 0, 76 => 0, 77 => 0, 78 => 0, 79 => 0,); - if ($this->counter >= strlen($this->data)) { + $tokenMap = array ( + 1 => 0, + 2 => 0, + 3 => 1, + 5 => 0, + 6 => 0, + 7 => 0, + 8 => 0, + 9 => 0, + 10 => 0, + 11 => 0, + 12 => 4, + 17 => 4, + 22 => 2, + 25 => 0, + 26 => 3, + 30 => 0, + 31 => 0, + 32 => 0, + 33 => 0, + 34 => 0, + 35 => 0, + 36 => 0, + 37 => 0, + 38 => 1, + 40 => 1, + 42 => 0, + 43 => 0, + 44 => 0, + 45 => 2, + 48 => 0, + 49 => 0, + 50 => 0, + 51 => 0, + 52 => 0, + 53 => 0, + 54 => 0, + 55 => 0, + 56 => 0, + 57 => 0, + 58 => 0, + 59 => 0, + 60 => 0, + 61 => 1, + 63 => 0, + 64 => 0, + 65 => 0, + 66 => 0, + 67 => 0, + ); + if ($this->counter >= strlen($this->data)) { return false; // end of input } - $yy_global_pattern = "/\G(\")|\G('[^'\\\\]*(?:\\\\.[^'\\\\]*)*')|\G([$]smarty\\.block\\.(child|parent))|\G(\\$)|\G(\\s*" . $this->rdel . ")|\G(\\s+is\\s+in\\s+)|\G(\\s+as\\s+)|\G(\\s+to\\s+)|\G(\\s+step\\s+)|\G(\\s+instanceof\\s+)|\G(\\s*===\\s*)|\G(\\s*!==\\s*)|\G(\\s*==\\s*|\\s+eq\\s+)|\G(\\s*!=\\s*|\\s*<>\\s*|\\s+(ne|neq)\\s+)|\G(\\s*>=\\s*|\\s+(ge|gte)\\s+)|\G(\\s*<=\\s*|\\s+(le|lte)\\s+)|\G(\\s*>\\s*|\\s+gt\\s+)|\G(\\s*<\\s*|\\s+lt\\s+)|\G(\\s+mod\\s+)|\G(!\\s*|not\\s+)|\G(\\s*&&\\s*|\\s*and\\s+)|\G(\\s*\\|\\|\\s*|\\s*or\\s+)|\G(\\s*xor\\s+)|\G(\\s+is\\s+odd\\s+by\\s+)|\G(\\s+is\\s+not\\s+odd\\s+by\\s+)|\G(\\s+is\\s+odd)|\G(\\s+is\\s+not\\s+odd)|\G(\\s+is\\s+even\\s+by\\s+)|\G(\\s+is\\s+not\\s+even\\s+by\\s+)|\G(\\s+is\\s+even)|\G(\\s+is\\s+not\\s+even)|\G(\\s+is\\s+div\\s+by\\s+)|\G(\\s+is\\s+not\\s+div\\s+by\\s+)|\G(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\)\\s*)|\G(\\s*\\(\\s*)|\G(\\s*\\))|\G(\\[\\s*)|\G(\\s*\\])|\G(\\s*->\\s*)|\G(\\s*=>\\s*)|\G(\\s*=\\s*)|\G(\\+\\+|--)|\G(\\s*(\\+|-)\\s*)|\G(\\s*(\\*|\/|%)\\s*)|\G(@)|\G(#)|\G(\\s+[0-9]*[a-zA-Z_][a-zA-Z0-9_\-:]*\\s*=\\s*)|\G(([0-9]*[a-zA-Z_]\\w*)?(\\\\[0-9]*[a-zA-Z_]\\w*)+)|\G([0-9]*[a-zA-Z_]\\w*)|\G(\\d+)|\G(`)|\G(\\|)|\G(\\.)|\G(\\s*,\\s*)|\G(\\s*;)|\G(::)|\G(\\s*:\\s*)|\G(\\s*&\\s*)|\G(\\s*\\?\\s*)|\G(0[xX][0-9a-fA-F]+)|\G(\\s+)|\G(" . $this->ldel . "\\s*(if|elseif|else if|while)\\s+)|\G(" . $this->ldel . "\\s*for\\s+)|\G(" . $this->ldel . "\\s*foreach(?![^\s]))|\G(" . $this->ldel . "\\s*\/)|\G(" . $this->ldel . "\\s*)|\G([\S\s])/iS"; + $yy_global_pattern = "/\G(\")|\G('[^'\\\\]*(?:\\\\.[^'\\\\]*)*')|\G([$]smarty\\.block\\.(child|parent))|\G(\\$)|\G(\\s*".$this->rdel.")|\G(\\s+is\\s+in\\s+)|\G(\\s+as\\s+)|\G(\\s+to\\s+)|\G(\\s+step\\s+)|\G(\\s+instanceof\\s+)|\G(\\s*(([!=][=]{1,2})|([<][=>]?)|([>][=]?)|[&|]{2})\\s*)|\G(\\s+(eq|ne|neg|gt|ge|gte|lt|le|lte|mod|and|or|xor|(is\\s+(not\\s+)?(odd|even|div)\\s+by))\\s+)|\G(\\s+is\\s+(not\\s+)?(odd|even))|\G(!\\s*|not\\s+)|\G(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\)\\s*)|\G(\\s*\\(\\s*)|\G(\\s*\\))|\G(\\[\\s*)|\G(\\s*\\])|\G(\\s*->\\s*)|\G(\\s*=>\\s*)|\G(\\s*=\\s*)|\G(\\+\\+|--)|\G(\\s*(\\+|-)\\s*)|\G(\\s*([*]{1,2}|[%\/^&]|[<>]{2})\\s*)|\G(@)|\G(#)|\G(\\s+[0-9]*[a-zA-Z_][a-zA-Z0-9_\-:]*\\s*=\\s*)|\G(([0-9]*[a-zA-Z_]\\w*)?(\\\\[0-9]*[a-zA-Z_]\\w*)+)|\G([0-9]*[a-zA-Z_]\\w*)|\G(\\d+)|\G(`)|\G(\\|)|\G(\\.)|\G(\\s*,\\s*)|\G(\\s*;)|\G(::)|\G(\\s*:\\s*)|\G(\\s*&\\s*)|\G(\\s*\\?\\s*)|\G(0[xX][0-9a-fA-F]+)|\G(\\s+)|\G(".$this->ldel."\\s*(if|elseif|else if|while)\\s+)|\G(".$this->ldel."\\s*for\\s+)|\G(".$this->ldel."\\s*foreach(?![^\s]))|\G(".$this->ldel."\\s*\/)|\G(".$this->ldel."\\s*)|\G([\S\s])/iS"; do { - if (preg_match($yy_global_pattern, $this->data, $yymatches, null, $this->counter)) { + if (preg_match($yy_global_pattern,$this->data, $yymatches, null, $this->counter)) { $yysubmatches = $yymatches; $yymatches = preg_grep("/(.|\s)+/", $yysubmatches); if (!count($yymatches)) { - throw new Exception('Error: lexing failed because a rule matched' . ' an empty string. Input "' . substr($this->data, $this->counter, 5) . '... state SMARTY'); + throw new Exception('Error: lexing failed because a rule matched' . + ' an empty string. Input "' . substr($this->data, + $this->counter, 5) . '... state SMARTY'); } next($yymatches); // skip global match $this->token = key($yymatches); // token number if ($tokenMap[$this->token]) { // extract sub-patterns for passing to lex function - $yysubmatches = array_slice($yysubmatches, $this->token + 1, $tokenMap[$this->token]); + $yysubmatches = array_slice($yysubmatches, $this->token + 1, + $tokenMap[$this->token]); } else { $yysubmatches = array(); } @@ -504,484 +595,333 @@ class Smarty_Internal_Templatelexer } elseif ($r === false) { $this->counter += strlen($this->value); $this->line += substr_count($this->value, "\n"); - if ($this->counter >= strlen($this->data)) { + if ($this->counter >= strlen($this->data)) { return false; // end of input } // skip this token continue; - } - } else { - throw new Exception('Unexpected input at line' . $this->line . ': ' . $this->data[$this->counter]); + } } else { + throw new Exception('Unexpected input at line' . $this->line . + ': ' . $this->data[$this->counter]); } break; } while (true); + } // end function - const SMARTY = 2; + const SMARTY = 2; function yy_r2_1($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_QUOTE; - $this->yypushstate(self::DOUBLEQUOTEDSTRING); - } - + $this->token = Smarty_Internal_Templateparser::TP_QUOTE; + $this->yypushstate(self::DOUBLEQUOTEDSTRING); + } function yy_r2_2($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_SINGLEQUOTESTRING; - } - + $this->token = Smarty_Internal_Templateparser::TP_SINGLEQUOTESTRING; + } function yy_r2_3($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_SMARTYBLOCKCHILDPARENT; - $this->taglineno = $this->line; - } - + $this->token = Smarty_Internal_Templateparser::TP_SMARTYBLOCKCHILDPARENT; + $this->taglineno = $this->line; + } function yy_r2_5($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_DOLLAR; - } - + $this->token = Smarty_Internal_Templateparser::TP_DOLLAR; + } function yy_r2_6($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_RDEL; - $this->yypopstate(); - } - + $this->token = Smarty_Internal_Templateparser::TP_RDEL; + $this->yypopstate(); + } function yy_r2_7($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_ISIN; - } - + $this->token = Smarty_Internal_Templateparser::TP_ISIN; + } function yy_r2_8($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_AS; - } - + $this->token = Smarty_Internal_Templateparser::TP_AS; + } function yy_r2_9($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_TO; - } - + $this->token = Smarty_Internal_Templateparser::TP_TO; + } function yy_r2_10($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_STEP; - } - + $this->token = Smarty_Internal_Templateparser::TP_STEP; + } function yy_r2_11($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_INSTANCEOF; - } - + $this->token = Smarty_Internal_Templateparser::TP_INSTANCEOF; + } function yy_r2_12($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_IDENTITY; - } - - function yy_r2_13($yy_subpatterns) - { - - $this->token = Smarty_Internal_Templateparser::TP_NONEIDENTITY; - } - - function yy_r2_14($yy_subpatterns) - { - - $this->token = Smarty_Internal_Templateparser::TP_EQUALS; - } - - function yy_r2_15($yy_subpatterns) - { - - $this->token = Smarty_Internal_Templateparser::TP_NOTEQUALS; - } - + $this->token = Smarty_Internal_Templateparser::TP_LOGOP; + } function yy_r2_17($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_GREATEREQUAL; - } - - function yy_r2_19($yy_subpatterns) - { - - $this->token = Smarty_Internal_Templateparser::TP_LESSEQUAL; - } - - function yy_r2_21($yy_subpatterns) - { - - $this->token = Smarty_Internal_Templateparser::TP_GREATERTHAN; - } - + $this->token = Smarty_Internal_Templateparser::TP_TLOGOP; + } function yy_r2_22($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_LESSTHAN; - } - - function yy_r2_23($yy_subpatterns) - { - - $this->token = Smarty_Internal_Templateparser::TP_MOD; - } - - function yy_r2_24($yy_subpatterns) - { - - $this->token = Smarty_Internal_Templateparser::TP_NOT; - } - + $this->token = Smarty_Internal_Templateparser::TP_SINGLECOND; + } function yy_r2_25($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_LAND; - } - + $this->token = Smarty_Internal_Templateparser::TP_NOT; + } function yy_r2_26($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_LOR; - } - - function yy_r2_27($yy_subpatterns) - { - - $this->token = Smarty_Internal_Templateparser::TP_LXOR; - } - - function yy_r2_28($yy_subpatterns) - { - - $this->token = Smarty_Internal_Templateparser::TP_ISODDBY; - } - - function yy_r2_29($yy_subpatterns) - { - - $this->token = Smarty_Internal_Templateparser::TP_ISNOTODDBY; - } - + $this->token = Smarty_Internal_Templateparser::TP_TYPECAST; + } function yy_r2_30($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_ISODD; - } - + $this->token = Smarty_Internal_Templateparser::TP_OPENP; + } function yy_r2_31($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_ISNOTODD; - } - + $this->token = Smarty_Internal_Templateparser::TP_CLOSEP; + } function yy_r2_32($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_ISEVENBY; - } - + $this->token = Smarty_Internal_Templateparser::TP_OPENB; + } function yy_r2_33($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_ISNOTEVENBY; - } - + $this->token = Smarty_Internal_Templateparser::TP_CLOSEB; + } function yy_r2_34($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_ISEVEN; - } - + $this->token = Smarty_Internal_Templateparser::TP_PTR; + } function yy_r2_35($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_ISNOTEVEN; - } - + $this->token = Smarty_Internal_Templateparser::TP_APTR; + } function yy_r2_36($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_ISDIVBY; - } - + $this->token = Smarty_Internal_Templateparser::TP_EQUAL; + } function yy_r2_37($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_ISNOTDIVBY; - } - + $this->token = Smarty_Internal_Templateparser::TP_INCDEC; + } function yy_r2_38($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_TYPECAST; - } + $this->token = Smarty_Internal_Templateparser::TP_UNIMATH; + } + function yy_r2_40($yy_subpatterns) + { + $this->token = Smarty_Internal_Templateparser::TP_MATH; + } function yy_r2_42($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_OPENP; - } - + $this->token = Smarty_Internal_Templateparser::TP_AT; + } function yy_r2_43($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_CLOSEP; - } - + $this->token = Smarty_Internal_Templateparser::TP_HATCH; + } function yy_r2_44($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_OPENB; - } - + // resolve conflicts with shorttag and right_delimiter starting with '=' + if (substr($this->data, $this->counter + strlen($this->value) - 1, $this->rdel_length) == $this->smarty->right_delimiter) { + preg_match("/\s+/",$this->value,$match); + $this->value = $match[0]; + $this->token = Smarty_Internal_Templateparser::TP_SPACE; + } else { + $this->token = Smarty_Internal_Templateparser::TP_ATTR; + } + } function yy_r2_45($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_CLOSEB; - } - - function yy_r2_46($yy_subpatterns) - { - - $this->token = Smarty_Internal_Templateparser::TP_PTR; - } - - function yy_r2_47($yy_subpatterns) - { - - $this->token = Smarty_Internal_Templateparser::TP_APTR; - } - + $this->token = Smarty_Internal_Templateparser::TP_NAMESPACE; + } function yy_r2_48($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_EQUAL; - } - + $this->token = Smarty_Internal_Templateparser::TP_ID; + } function yy_r2_49($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_INCDEC; - } - + $this->token = Smarty_Internal_Templateparser::TP_INTEGER; + } function yy_r2_50($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_UNIMATH; - } + $this->token = Smarty_Internal_Templateparser::TP_BACKTICK; + $this->yypopstate(); + } + function yy_r2_51($yy_subpatterns) + { + $this->token = Smarty_Internal_Templateparser::TP_VERT; + } function yy_r2_52($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_MATH; - } + $this->token = Smarty_Internal_Templateparser::TP_DOT; + } + function yy_r2_53($yy_subpatterns) + { + $this->token = Smarty_Internal_Templateparser::TP_COMMA; + } function yy_r2_54($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_AT; - } - + $this->token = Smarty_Internal_Templateparser::TP_SEMICOLON; + } function yy_r2_55($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_HATCH; - } - + $this->token = Smarty_Internal_Templateparser::TP_DOUBLECOLON; + } function yy_r2_56($yy_subpatterns) { - // resolve conflicts with shorttag and right_delimiter starting with '=' - if (substr($this->data, $this->counter + strlen($this->value) - 1, $this->rdel_length) == $this->smarty->right_delimiter) { - preg_match("/\s+/", $this->value, $match); - $this->value = $match[0]; - $this->token = Smarty_Internal_Templateparser::TP_SPACE; - } else { - $this->token = Smarty_Internal_Templateparser::TP_ATTR; - } - } - + $this->token = Smarty_Internal_Templateparser::TP_COLON; + } function yy_r2_57($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_NAMESPACE; - } + $this->token = Smarty_Internal_Templateparser::TP_ANDSYM; + } + function yy_r2_58($yy_subpatterns) + { + $this->token = Smarty_Internal_Templateparser::TP_QMARK; + } + function yy_r2_59($yy_subpatterns) + { + + $this->token = Smarty_Internal_Templateparser::TP_HEX; + } function yy_r2_60($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_ID; - } - + $this->token = Smarty_Internal_Templateparser::TP_SPACE; + } function yy_r2_61($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_INTEGER; - } - - function yy_r2_62($yy_subpatterns) - { - - $this->token = Smarty_Internal_Templateparser::TP_BACKTICK; - $this->yypopstate(); - } - + if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { + $this->token = Smarty_Internal_Templateparser::TP_TEXT; + } else { + $this->token = Smarty_Internal_Templateparser::TP_LDELIF; + $this->yypushstate(self::SMARTY); + $this->taglineno = $this->line; + } + } function yy_r2_63($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_VERT; - } - + if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { + $this->token = Smarty_Internal_Templateparser::TP_TEXT; + } else { + $this->token = Smarty_Internal_Templateparser::TP_LDELFOR; + $this->yypushstate(self::SMARTY); + $this->taglineno = $this->line; + } + } function yy_r2_64($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_DOT; - } - + if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { + $this->token = Smarty_Internal_Templateparser::TP_TEXT; + } else { + $this->token = Smarty_Internal_Templateparser::TP_LDELFOREACH; + $this->yypushstate(self::SMARTY); + $this->taglineno = $this->line; + } + } function yy_r2_65($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_COMMA; - } - + if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { + $this->token = Smarty_Internal_Templateparser::TP_TEXT; + } else { + $this->token = Smarty_Internal_Templateparser::TP_LDELSLASH; + $this->yypushstate(self::SMARTY); + $this->taglineno = $this->line; + } + } function yy_r2_66($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_SEMICOLON; - } - + if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { + $this->token = Smarty_Internal_Templateparser::TP_TEXT; + } else { + $this->token = Smarty_Internal_Templateparser::TP_LDEL; + $this->yypushstate(self::SMARTY); + $this->taglineno = $this->line; + } + } function yy_r2_67($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_DOUBLECOLON; - } + $this->token = Smarty_Internal_Templateparser::TP_TEXT; + } - function yy_r2_68($yy_subpatterns) - { - - $this->token = Smarty_Internal_Templateparser::TP_COLON; - } - - function yy_r2_69($yy_subpatterns) - { - - $this->token = Smarty_Internal_Templateparser::TP_ANDSYM; - } - - function yy_r2_70($yy_subpatterns) - { - - $this->token = Smarty_Internal_Templateparser::TP_QMARK; - } - - function yy_r2_71($yy_subpatterns) - { - - $this->token = Smarty_Internal_Templateparser::TP_HEX; - } - - function yy_r2_72($yy_subpatterns) - { - - $this->token = Smarty_Internal_Templateparser::TP_SPACE; - } - - function yy_r2_73($yy_subpatterns) - { - - if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { - $this->token = Smarty_Internal_Templateparser::TP_TEXT; - } else { - $this->token = Smarty_Internal_Templateparser::TP_LDELIF; - $this->yypushstate(self::SMARTY); - $this->taglineno = $this->line; - } - } - - function yy_r2_75($yy_subpatterns) - { - - if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { - $this->token = Smarty_Internal_Templateparser::TP_TEXT; - } else { - $this->token = Smarty_Internal_Templateparser::TP_LDELFOR; - $this->yypushstate(self::SMARTY); - $this->taglineno = $this->line; - } - } - - function yy_r2_76($yy_subpatterns) - { - - if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { - $this->token = Smarty_Internal_Templateparser::TP_TEXT; - } else { - $this->token = Smarty_Internal_Templateparser::TP_LDELFOREACH; - $this->yypushstate(self::SMARTY); - $this->taglineno = $this->line; - } - } - - function yy_r2_77($yy_subpatterns) - { - - if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { - $this->token = Smarty_Internal_Templateparser::TP_TEXT; - } else { - $this->token = Smarty_Internal_Templateparser::TP_LDELSLASH; - $this->yypushstate(self::SMARTY); - $this->taglineno = $this->line; - } - } - - function yy_r2_78($yy_subpatterns) - { - - if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { - $this->token = Smarty_Internal_Templateparser::TP_TEXT; - } else { - $this->token = Smarty_Internal_Templateparser::TP_LDEL; - $this->yypushstate(self::SMARTY); - $this->taglineno = $this->line; - } - } - - function yy_r2_79($yy_subpatterns) - { - - $this->token = Smarty_Internal_Templateparser::TP_TEXT; - } + public function yylex3() { - $tokenMap = array(1 => 0, 2 => 0, 3 => 0,); - if ($this->counter >= strlen($this->data)) { + $tokenMap = array ( + 1 => 0, + 2 => 0, + 3 => 0, + ); + if ($this->counter >= strlen($this->data)) { return false; // end of input } - $yy_global_pattern = "/\G(" . $this->ldel . "\\s*literal\\s*" . $this->rdel . ")|\G(" . $this->ldel . "\\s*\/literal\\s*" . $this->rdel . ")|\G([\S\s])/iS"; + $yy_global_pattern = "/\G(".$this->ldel."\\s*literal\\s*".$this->rdel.")|\G(".$this->ldel."\\s*\/literal\\s*".$this->rdel.")|\G([\S\s])/iS"; do { - if (preg_match($yy_global_pattern, $this->data, $yymatches, null, $this->counter)) { + if (preg_match($yy_global_pattern,$this->data, $yymatches, null, $this->counter)) { $yysubmatches = $yymatches; $yymatches = preg_grep("/(.|\s)+/", $yysubmatches); if (!count($yymatches)) { - throw new Exception('Error: lexing failed because a rule matched' . ' an empty string. Input "' . substr($this->data, $this->counter, 5) . '... state LITERAL'); + throw new Exception('Error: lexing failed because a rule matched' . + ' an empty string. Input "' . substr($this->data, + $this->counter, 5) . '... state LITERAL'); } next($yymatches); // skip global match $this->token = key($yymatches); // token number if ($tokenMap[$this->token]) { // extract sub-patterns for passing to lex function - $yysubmatches = array_slice($yysubmatches, $this->token + 1, $tokenMap[$this->token]); + $yysubmatches = array_slice($yysubmatches, $this->token + 1, + $tokenMap[$this->token]); } else { $yysubmatches = array(); } @@ -999,74 +939,91 @@ class Smarty_Internal_Templatelexer } elseif ($r === false) { $this->counter += strlen($this->value); $this->line += substr_count($this->value, "\n"); - if ($this->counter >= strlen($this->data)) { + if ($this->counter >= strlen($this->data)) { return false; // end of input } // skip this token continue; - } - } else { - throw new Exception('Unexpected input at line' . $this->line . ': ' . $this->data[$this->counter]); + } } else { + throw new Exception('Unexpected input at line' . $this->line . + ': ' . $this->data[$this->counter]); } break; } while (true); + } // end function - const LITERAL = 3; + const LITERAL = 3; function yy_r3_1($yy_subpatterns) { - $this->literal_cnt ++; - $this->token = Smarty_Internal_Templateparser::TP_LITERAL; - } - + $this->literal_cnt++; + $this->token = Smarty_Internal_Templateparser::TP_LITERAL; + } function yy_r3_2($yy_subpatterns) { - if ($this->literal_cnt) { - $this->literal_cnt --; - $this->token = Smarty_Internal_Templateparser::TP_LITERAL; - } else { - $this->token = Smarty_Internal_Templateparser::TP_LITERALEND; - $this->yypopstate(); - } - } - + if ($this->literal_cnt) { + $this->literal_cnt--; + $this->token = Smarty_Internal_Templateparser::TP_LITERAL; + } else { + $this->token = Smarty_Internal_Templateparser::TP_LITERALEND; + $this->yypopstate(); + } + } function yy_r3_3($yy_subpatterns) { - $to = strlen($this->data); - preg_match("/{$this->ldel}\/?literal{$this->rdel}/", $this->data, $match, PREG_OFFSET_CAPTURE, $this->counter); - if (isset($match[0][1])) { - $to = $match[0][1]; - } else { - $this->compiler->trigger_template_error("missing or misspelled literal closing tag"); - } - $this->value = substr($this->data, $this->counter, $to - $this->counter); - $this->token = Smarty_Internal_Templateparser::TP_LITERAL; - } + $to = strlen($this->data); + preg_match("/{$this->ldel}\/?literal{$this->rdel}/",$this->data,$match,PREG_OFFSET_CAPTURE,$this->counter); + if (isset($match[0][1])) { + $to = $match[0][1]; + } else { + $this->compiler->trigger_template_error ("missing or misspelled literal closing tag"); + } + $this->value = substr($this->data,$this->counter,$to-$this->counter); + $this->token = Smarty_Internal_Templateparser::TP_LITERAL; + } + public function yylex4() { - $tokenMap = array(1 => 1, 3 => 0, 4 => 0, 5 => 0, 6 => 0, 7 => 0, 8 => 0, 9 => 0, 10 => 0, 11 => 0, 12 => 0, 13 => 3, 17 => 0,); - if ($this->counter >= strlen($this->data)) { + $tokenMap = array ( + 1 => 1, + 3 => 0, + 4 => 0, + 5 => 0, + 6 => 0, + 7 => 0, + 8 => 0, + 9 => 0, + 10 => 0, + 11 => 0, + 12 => 0, + 13 => 3, + 17 => 0, + ); + if ($this->counter >= strlen($this->data)) { return false; // end of input } - $yy_global_pattern = "/\G(" . $this->ldel . "\\s*(if|elseif|else if|while)\\s+)|\G(" . $this->ldel . "\\s*for\\s+)|\G(" . $this->ldel . "\\s*foreach(?![^\s]))|\G(" . $this->ldel . "\\s*literal\\s*" . $this->rdel . ")|\G(" . $this->ldel . "\\s*\/literal\\s*" . $this->rdel . ")|\G(" . $this->ldel . "\\s*\/)|\G(" . $this->ldel . "\\s*)|\G(\")|\G(`\\$)|\G(\\$[0-9]*[a-zA-Z_]\\w*)|\G(\\$)|\G(([^\"\\\\]*?)((?:\\\\.[^\"\\\\]*?)*?)(?=(" . $this->ldel . "|\\$|`\\$|\")))|\G([\S\s])/iS"; + $yy_global_pattern = "/\G(".$this->ldel."\\s*(if|elseif|else if|while)\\s+)|\G(".$this->ldel."\\s*for\\s+)|\G(".$this->ldel."\\s*foreach(?![^\s]))|\G(".$this->ldel."\\s*literal\\s*".$this->rdel.")|\G(".$this->ldel."\\s*\/literal\\s*".$this->rdel.")|\G(".$this->ldel."\\s*\/)|\G(".$this->ldel."\\s*)|\G(\")|\G(`\\$)|\G(\\$[0-9]*[a-zA-Z_]\\w*)|\G(\\$)|\G(([^\"\\\\]*?)((?:\\\\.[^\"\\\\]*?)*?)(?=(".$this->ldel."|\\$|`\\$|\")))|\G([\S\s])/iS"; do { - if (preg_match($yy_global_pattern, $this->data, $yymatches, null, $this->counter)) { + if (preg_match($yy_global_pattern,$this->data, $yymatches, null, $this->counter)) { $yysubmatches = $yymatches; $yymatches = preg_grep("/(.|\s)+/", $yysubmatches); if (!count($yymatches)) { - throw new Exception('Error: lexing failed because a rule matched' . ' an empty string. Input "' . substr($this->data, $this->counter, 5) . '... state DOUBLEQUOTEDSTRING'); + throw new Exception('Error: lexing failed because a rule matched' . + ' an empty string. Input "' . substr($this->data, + $this->counter, 5) . '... state DOUBLEQUOTEDSTRING'); } next($yymatches); // skip global match $this->token = key($yymatches); // token number if ($tokenMap[$this->token]) { // extract sub-patterns for passing to lex function - $yysubmatches = array_slice($yysubmatches, $this->token + 1, $tokenMap[$this->token]); + $yysubmatches = array_slice($yysubmatches, $this->token + 1, + $tokenMap[$this->token]); } else { $yysubmatches = array(); } @@ -1084,155 +1041,153 @@ class Smarty_Internal_Templatelexer } elseif ($r === false) { $this->counter += strlen($this->value); $this->line += substr_count($this->value, "\n"); - if ($this->counter >= strlen($this->data)) { + if ($this->counter >= strlen($this->data)) { return false; // end of input } // skip this token continue; - } - } else { - throw new Exception('Unexpected input at line' . $this->line . ': ' . $this->data[$this->counter]); + } } else { + throw new Exception('Unexpected input at line' . $this->line . + ': ' . $this->data[$this->counter]); } break; } while (true); + } // end function - const DOUBLEQUOTEDSTRING = 4; + const DOUBLEQUOTEDSTRING = 4; function yy_r4_1($yy_subpatterns) { - if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { - $this->token = Smarty_Internal_Templateparser::TP_TEXT; - } else { - $this->token = Smarty_Internal_Templateparser::TP_LDELIF; - $this->yypushstate(self::SMARTY); - $this->taglineno = $this->line; - } - } - + if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { + $this->token = Smarty_Internal_Templateparser::TP_TEXT; + } else { + $this->token = Smarty_Internal_Templateparser::TP_LDELIF; + $this->yypushstate(self::SMARTY); + $this->taglineno = $this->line; + } + } function yy_r4_3($yy_subpatterns) { - if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { - $this->token = Smarty_Internal_Templateparser::TP_TEXT; - } else { - $this->token = Smarty_Internal_Templateparser::TP_LDELFOR; - $this->yypushstate(self::SMARTY); - $this->taglineno = $this->line; - } - } - + if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { + $this->token = Smarty_Internal_Templateparser::TP_TEXT; + } else { + $this->token = Smarty_Internal_Templateparser::TP_LDELFOR; + $this->yypushstate(self::SMARTY); + $this->taglineno = $this->line; + } + } function yy_r4_4($yy_subpatterns) { - if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { - $this->token = Smarty_Internal_Templateparser::TP_TEXT; - } else { - $this->token = Smarty_Internal_Templateparser::TP_LDELFOREACH; - $this->yypushstate(self::SMARTY); - $this->taglineno = $this->line; - } - } - + if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { + $this->token = Smarty_Internal_Templateparser::TP_TEXT; + } else { + $this->token = Smarty_Internal_Templateparser::TP_LDELFOREACH; + $this->yypushstate(self::SMARTY); + $this->taglineno = $this->line; + } + } function yy_r4_5($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_TEXT; - } - + $this->token = Smarty_Internal_Templateparser::TP_TEXT; + } function yy_r4_6($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_TEXT; - } - + $this->token = Smarty_Internal_Templateparser::TP_TEXT; + } function yy_r4_7($yy_subpatterns) { - if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { - $this->token = Smarty_Internal_Templateparser::TP_TEXT; - } else { - $this->token = Smarty_Internal_Templateparser::TP_LDELSLASH; - $this->yypushstate(self::SMARTY); - $this->taglineno = $this->line; - } - } - + if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { + $this->token = Smarty_Internal_Templateparser::TP_TEXT; + } else { + $this->token = Smarty_Internal_Templateparser::TP_LDELSLASH; + $this->yypushstate(self::SMARTY); + $this->taglineno = $this->line; + } + } function yy_r4_8($yy_subpatterns) { - if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { - $this->token = Smarty_Internal_Templateparser::TP_TEXT; - } else { - $this->token = Smarty_Internal_Templateparser::TP_LDEL; - $this->yypushstate(self::SMARTY); - $this->taglineno = $this->line; - } - } - + if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { + $this->token = Smarty_Internal_Templateparser::TP_TEXT; + } else { + $this->token = Smarty_Internal_Templateparser::TP_LDEL; + $this->yypushstate(self::SMARTY); + $this->taglineno = $this->line; + } + } function yy_r4_9($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_QUOTE; - $this->yypopstate(); - } - + $this->token = Smarty_Internal_Templateparser::TP_QUOTE; + $this->yypopstate(); + } function yy_r4_10($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_BACKTICK; - $this->value = substr($this->value, 0, - 1); - $this->yypushstate(self::SMARTY); - $this->taglineno = $this->line; - } - + $this->token = Smarty_Internal_Templateparser::TP_BACKTICK; + $this->value = substr($this->value,0,-1); + $this->yypushstate(self::SMARTY); + $this->taglineno = $this->line; + } function yy_r4_11($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_DOLLARID; - } - + $this->token = Smarty_Internal_Templateparser::TP_DOLLARID; + } function yy_r4_12($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_TEXT; - } - + $this->token = Smarty_Internal_Templateparser::TP_TEXT; + } function yy_r4_13($yy_subpatterns) { - $this->token = Smarty_Internal_Templateparser::TP_TEXT; - } - + $this->token = Smarty_Internal_Templateparser::TP_TEXT; + } function yy_r4_17($yy_subpatterns) { - $to = strlen($this->data); - $this->value = substr($this->data, $this->counter, $to - $this->counter); - $this->token = Smarty_Internal_Templateparser::TP_TEXT; - } + $to = strlen($this->data); + $this->value = substr($this->data,$this->counter,$to-$this->counter); + $this->token = Smarty_Internal_Templateparser::TP_TEXT; + } + public function yylex5() { - $tokenMap = array(1 => 0, 2 => 0, 3 => 0, 4 => 0,); - if ($this->counter >= strlen($this->data)) { + $tokenMap = array ( + 1 => 0, + 2 => 0, + 3 => 0, + 4 => 0, + ); + if ($this->counter >= strlen($this->data)) { return false; // end of input } - $yy_global_pattern = "/\G(" . $this->ldel . "\\s*strip\\s*" . $this->rdel . ")|\G(" . $this->ldel . "\\s*\/strip\\s*" . $this->rdel . ")|\G(" . $this->ldel . "\\s*block)|\G([\S\s])/iS"; + $yy_global_pattern = "/\G(".$this->ldel."\\s*strip\\s*".$this->rdel.")|\G(".$this->ldel."\\s*\/strip\\s*".$this->rdel.")|\G(".$this->ldel."\\s*block)|\G([\S\s])/iS"; do { - if (preg_match($yy_global_pattern, $this->data, $yymatches, null, $this->counter)) { + if (preg_match($yy_global_pattern,$this->data, $yymatches, null, $this->counter)) { $yysubmatches = $yymatches; $yymatches = preg_grep("/(.|\s)+/", $yysubmatches); if (!count($yymatches)) { - throw new Exception('Error: lexing failed because a rule matched' . ' an empty string. Input "' . substr($this->data, $this->counter, 5) . '... state CHILDBODY'); + throw new Exception('Error: lexing failed because a rule matched' . + ' an empty string. Input "' . substr($this->data, + $this->counter, 5) . '... state CHILDBODY'); } next($yymatches); // skip global match $this->token = key($yymatches); // token number if ($tokenMap[$this->token]) { // extract sub-patterns for passing to lex function - $yysubmatches = array_slice($yysubmatches, $this->token + 1, $tokenMap[$this->token]); + $yysubmatches = array_slice($yysubmatches, $this->token + 1, + $tokenMap[$this->token]); } else { $yysubmatches = array(); } @@ -1250,84 +1205,92 @@ class Smarty_Internal_Templatelexer } elseif ($r === false) { $this->counter += strlen($this->value); $this->line += substr_count($this->value, "\n"); - if ($this->counter >= strlen($this->data)) { + if ($this->counter >= strlen($this->data)) { return false; // end of input } // skip this token continue; - } - } else { - throw new Exception('Unexpected input at line' . $this->line . ': ' . $this->data[$this->counter]); + } } else { + throw new Exception('Unexpected input at line' . $this->line . + ': ' . $this->data[$this->counter]); } break; } while (true); + } // end function - const CHILDBODY = 5; + const CHILDBODY = 5; function yy_r5_1($yy_subpatterns) { - if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { - return false; - } else { - $this->token = Smarty_Internal_Templateparser::TP_STRIPON; - } - } - + if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { + return false; + } else { + $this->token = Smarty_Internal_Templateparser::TP_STRIPON; + } + } function yy_r5_2($yy_subpatterns) { - if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { - return false; - } else { - $this->token = Smarty_Internal_Templateparser::TP_STRIPOFF; - } - } - + if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { + return false; + } else { + $this->token = Smarty_Internal_Templateparser::TP_STRIPOFF; + } + } function yy_r5_3($yy_subpatterns) { - if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { - return false; - } else { - $this->yypopstate(); - return true; - } - } - + if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { + return false; + } else { + $this->yypopstate(); + return true; + } + } function yy_r5_4($yy_subpatterns) { - $to = strlen($this->data); - preg_match("/" . $this->ldel . "\s*((\/)?strip\s*" . $this->rdel . "|block\s+)/", $this->data, $match, PREG_OFFSET_CAPTURE, $this->counter); - if (isset($match[0][1])) { - $to = $match[0][1]; - } - $this->value = substr($this->data, $this->counter, $to - $this->counter); - return false; - } + $to = strlen($this->data); + preg_match("/".$this->ldel."\s*((\/)?strip\s*".$this->rdel."|block\s+)/",$this->data,$match,PREG_OFFSET_CAPTURE,$this->counter); + if (isset($match[0][1])) { + $to = $match[0][1]; + } + $this->value = substr($this->data,$this->counter,$to-$this->counter); + return false; + } + public function yylex6() { - $tokenMap = array(1 => 0, 2 => 0, 3 => 0, 4 => 1, 6 => 0,); - if ($this->counter >= strlen($this->data)) { + $tokenMap = array ( + 1 => 0, + 2 => 0, + 3 => 0, + 4 => 1, + 6 => 0, + ); + if ($this->counter >= strlen($this->data)) { return false; // end of input } - $yy_global_pattern = "/\G(" . $this->ldel . "\\s*literal\\s*" . $this->rdel . ")|\G(" . $this->ldel . "\\s*block)|\G(" . $this->ldel . "\\s*\/block)|\G(" . $this->ldel . "\\s*[$]smarty\\.block\\.(child|parent))|\G([\S\s])/iS"; + $yy_global_pattern = "/\G(".$this->ldel."\\s*literal\\s*".$this->rdel.")|\G(".$this->ldel."\\s*block)|\G(".$this->ldel."\\s*\/block)|\G(".$this->ldel."\\s*[$]smarty\\.block\\.(child|parent))|\G([\S\s])/iS"; do { - if (preg_match($yy_global_pattern, $this->data, $yymatches, null, $this->counter)) { + if (preg_match($yy_global_pattern,$this->data, $yymatches, null, $this->counter)) { $yysubmatches = $yymatches; $yymatches = preg_grep("/(.|\s)+/", $yysubmatches); if (!count($yymatches)) { - throw new Exception('Error: lexing failed because a rule matched' . ' an empty string. Input "' . substr($this->data, $this->counter, 5) . '... state CHILDBLOCK'); + throw new Exception('Error: lexing failed because a rule matched' . + ' an empty string. Input "' . substr($this->data, + $this->counter, 5) . '... state CHILDBLOCK'); } next($yymatches); // skip global match $this->token = key($yymatches); // token number if ($tokenMap[$this->token]) { // extract sub-patterns for passing to lex function - $yysubmatches = array_slice($yysubmatches, $this->token + 1, $tokenMap[$this->token]); + $yysubmatches = array_slice($yysubmatches, $this->token + 1, + $tokenMap[$this->token]); } else { $yysubmatches = array(); } @@ -1345,97 +1308,102 @@ class Smarty_Internal_Templatelexer } elseif ($r === false) { $this->counter += strlen($this->value); $this->line += substr_count($this->value, "\n"); - if ($this->counter >= strlen($this->data)) { + if ($this->counter >= strlen($this->data)) { return false; // end of input } // skip this token continue; - } - } else { - throw new Exception('Unexpected input at line' . $this->line . ': ' . $this->data[$this->counter]); + } } else { + throw new Exception('Unexpected input at line' . $this->line . + ': ' . $this->data[$this->counter]); } break; } while (true); + } // end function - const CHILDBLOCK = 6; + const CHILDBLOCK = 6; function yy_r6_1($yy_subpatterns) { - if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { - $this->token = Smarty_Internal_Templateparser::TP_BLOCKSOURCE; - } else { - $this->token = Smarty_Internal_Templateparser::TP_BLOCKSOURCE; - $this->yypushstate(self::CHILDLITERAL); + if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { + $this->token = Smarty_Internal_Templateparser::TP_BLOCKSOURCE; + } else { + $this->token = Smarty_Internal_Templateparser::TP_BLOCKSOURCE; + $this->yypushstate(self::CHILDLITERAL); } - } - + } function yy_r6_2($yy_subpatterns) { - if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { - $this->token = Smarty_Internal_Templateparser::TP_BLOCKSOURCE; - } else { - $this->yypopstate(); - return true; - } - } - + if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { + $this->token = Smarty_Internal_Templateparser::TP_BLOCKSOURCE; + } else { + $this->yypopstate(); + return true; + } + } function yy_r6_3($yy_subpatterns) { - if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { - $this->token = Smarty_Internal_Templateparser::TP_BLOCKSOURCE; - } else { - $this->yypopstate(); - return true; - } - } - + if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { + $this->token = Smarty_Internal_Templateparser::TP_BLOCKSOURCE; + } else { + $this->yypopstate(); + return true; + } + } function yy_r6_4($yy_subpatterns) { - if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { - $this->token = Smarty_Internal_Templateparser::TP_BLOCKSOURCE; - } else { - $this->yypopstate(); - return true; - } - } - + if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { + $this->token = Smarty_Internal_Templateparser::TP_BLOCKSOURCE; + } else { + $this->yypopstate(); + return true; + } + } function yy_r6_6($yy_subpatterns) { - $to = strlen($this->data); - preg_match("/" . $this->ldel . "\s*(literal\s*" . $this->rdel . "|(\/)?block(\s|" . $this->rdel . ")|[\$]smarty\.block\.(child|parent))/", $this->data, $match, PREG_OFFSET_CAPTURE, $this->counter); - if (isset($match[0][1])) { - $to = $match[0][1]; - } - $this->value = substr($this->data, $this->counter, $to - $this->counter); - $this->token = Smarty_Internal_Templateparser::TP_BLOCKSOURCE; - } + $to = strlen($this->data); + preg_match("/".$this->ldel."\s*(literal\s*".$this->rdel."|(\/)?block(\s|".$this->rdel.")|[\$]smarty\.block\.(child|parent))/",$this->data,$match,PREG_OFFSET_CAPTURE,$this->counter); + if (isset($match[0][1])) { + $to = $match[0][1]; + } + $this->value = substr($this->data,$this->counter,$to-$this->counter); + $this->token = Smarty_Internal_Templateparser::TP_BLOCKSOURCE; + } + public function yylex7() { - $tokenMap = array(1 => 0, 2 => 0, 3 => 0,); - if ($this->counter >= strlen($this->data)) { + $tokenMap = array ( + 1 => 0, + 2 => 0, + 3 => 0, + ); + if ($this->counter >= strlen($this->data)) { return false; // end of input } - $yy_global_pattern = "/\G(" . $this->ldel . "\\s*literal\\s*" . $this->rdel . ")|\G(" . $this->ldel . "\\s*\/literal\\s*" . $this->rdel . ")|\G([\S\s])/iS"; + $yy_global_pattern = "/\G(".$this->ldel."\\s*literal\\s*".$this->rdel.")|\G(".$this->ldel."\\s*\/literal\\s*".$this->rdel.")|\G([\S\s])/iS"; do { - if (preg_match($yy_global_pattern, $this->data, $yymatches, null, $this->counter)) { + if (preg_match($yy_global_pattern,$this->data, $yymatches, null, $this->counter)) { $yysubmatches = $yymatches; $yymatches = preg_grep("/(.|\s)+/", $yysubmatches); if (!count($yymatches)) { - throw new Exception('Error: lexing failed because a rule matched' . ' an empty string. Input "' . substr($this->data, $this->counter, 5) . '... state CHILDLITERAL'); + throw new Exception('Error: lexing failed because a rule matched' . + ' an empty string. Input "' . substr($this->data, + $this->counter, 5) . '... state CHILDLITERAL'); } next($yymatches); // skip global match $this->token = key($yymatches); // token number if ($tokenMap[$this->token]) { // extract sub-patterns for passing to lex function - $yysubmatches = array_slice($yysubmatches, $this->token + 1, $tokenMap[$this->token]); + $yysubmatches = array_slice($yysubmatches, $this->token + 1, + $tokenMap[$this->token]); } else { $yysubmatches = array(); } @@ -1453,56 +1421,56 @@ class Smarty_Internal_Templatelexer } elseif ($r === false) { $this->counter += strlen($this->value); $this->line += substr_count($this->value, "\n"); - if ($this->counter >= strlen($this->data)) { + if ($this->counter >= strlen($this->data)) { return false; // end of input } // skip this token continue; - } - } else { - throw new Exception('Unexpected input at line' . $this->line . ': ' . $this->data[$this->counter]); + } } else { + throw new Exception('Unexpected input at line' . $this->line . + ': ' . $this->data[$this->counter]); } break; } while (true); + } // end function - const CHILDLITERAL = 7; + const CHILDLITERAL = 7; function yy_r7_1($yy_subpatterns) { - if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { - $this->token = Smarty_Internal_Templateparser::TP_BLOCKSOURCE; - } else { - $this->token = Smarty_Internal_Templateparser::TP_BLOCKSOURCE; - $this->yypushstate(self::CHILDLITERAL); - } - } - + if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { + $this->token = Smarty_Internal_Templateparser::TP_BLOCKSOURCE; + } else { + $this->token = Smarty_Internal_Templateparser::TP_BLOCKSOURCE; + $this->yypushstate(self::CHILDLITERAL); + } + } function yy_r7_2($yy_subpatterns) { - if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { - $this->token = Smarty_Internal_Templateparser::TP_BLOCKSOURCE; - } else { - $this->token = Smarty_Internal_Templateparser::TP_BLOCKSOURCE; - $this->yypopstate(); - } - } - + if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) { + $this->token = Smarty_Internal_Templateparser::TP_BLOCKSOURCE; + } else { + $this->token = Smarty_Internal_Templateparser::TP_BLOCKSOURCE; + $this->yypopstate(); + } + } function yy_r7_3($yy_subpatterns) { - $to = strlen($this->data); - preg_match("/{$this->ldel}\/?literal\s*{$this->rdel}/", $this->data, $match, PREG_OFFSET_CAPTURE, $this->counter); - if (isset($match[0][1])) { - $to = $match[0][1]; - } else { - $this->compiler->trigger_template_error("missing or misspelled literal closing tag"); - } - $this->value = substr($this->data, $this->counter, $to - $this->counter); - $this->token = Smarty_Internal_Templateparser::TP_BLOCKSOURCE; - } -} + $to = strlen($this->data); + preg_match("/{$this->ldel}\/?literal\s*{$this->rdel}/",$this->data,$match,PREG_OFFSET_CAPTURE,$this->counter); + if (isset($match[0][1])) { + $to = $match[0][1]; + } else { + $this->compiler->trigger_template_error ("missing or misspelled literal closing tag"); + } + $this->value = substr($this->data,$this->counter,$to-$this->counter); + $this->token = Smarty_Internal_Templateparser::TP_BLOCKSOURCE; + } + + } \ No newline at end of file diff --git a/libs/sysplugins/smarty_internal_templateparser.php b/libs/sysplugins/smarty_internal_templateparser.php index 4c348889..25262077 100644 --- a/libs/sysplugins/smarty_internal_templateparser.php +++ b/libs/sysplugins/smarty_internal_templateparser.php @@ -1,10 +1,7 @@ metadata : $value; + $x = ($value instanceof TP_yyToken) ? + $value->metadata : $value; $this->metadata = array_merge($this->metadata, $x); return; @@ -68,37 +66,31 @@ class TP_yyToken implements ArrayAccess 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 13 "../smarty/lexer/smarty_internal_templateparser.y" /** - * Smarty Internal Plugin Templateparser - * - * This is the template parser. - * It is generated from the smarty_internal_templateparser.y file - * - * @package Smarty - * @subpackage Compiler - * @author Uwe Tews - */ +* Smarty Internal Plugin Templateparser +* +* This is the template parser. +* It is generated from the smarty_internal_templateparser.y file +* @package Smarty +* @subpackage Compiler +* @author Uwe Tews +*/ class Smarty_Internal_Templateparser { - - #line 26 "../smarty/lexer/smarty_internal_templateparser.y" +#line 26 "../smarty/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"; /** @@ -107,96 +99,82 @@ class Smarty_Internal_Templateparser * @var bool */ public $successful = true; - /** * return value * * @var mixed */ public $retvalue = 0; - /** * counter for prefix code * * @var int */ public static $prefix_number = 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 */ public $root_buffer; - /** * current parse tree object * * @var Smarty_Internal_ParseTree */ public $current_buffer; - /** * lexer object * * @var Smarty_Internal_Templatelexer */ private $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 * @@ -211,7 +189,7 @@ class Smarty_Internal_Templateparser */ private $security = null; - /** + /** * PHP tag handling mode * * @var int @@ -250,7 +228,7 @@ class Smarty_Internal_Templateparser $this->current_buffer->append_subtree(new Smarty_Internal_ParseTree_Tag($this, $code)); } - /** + /** * merge PHP code with prefix code and return parse tree tag object * * @param string $code @@ -259,215 +237,829 @@ class Smarty_Internal_Templateparser */ public function mergePrefixCode($code) { - $tmp = ''; + $tmp =''; foreach ($this->compiler->prefix_code as $preCode) { $tmp = empty($tmp) ? $preCode : $this->compiler->appendCode($tmp, $preCode); } - $this->compiler->prefix_code = array(); + $this->compiler->prefix_code=array(); $tmp = empty($tmp) ? $code : $this->compiler->appendCode($tmp, $code); - return new Smarty_Internal_ParseTree_Tag($this, $this->compiler->processNocacheCode($tmp, true)); + return new Smarty_Internal_ParseTree_Tag($this, $this->compiler->processNocacheCode($tmp,true)); } - const TP_VERT = 1; - - const TP_COLON = 2; - - const TP_RDEL = 3; - - const TP_COMMENT = 4; - - const TP_PHP = 5; - - const TP_XMLTAG = 6; - - const TP_TEXT = 7; - - const TP_STRIPON = 8; - - const TP_STRIPOFF = 9; - - const TP_BLOCKSOURCE = 10; - - const TP_LITERALSTART = 11; - - const TP_LITERALEND = 12; - - const TP_LITERAL = 13; - - const TP_LDEL = 14; - - const TP_DOLLAR = 15; - - const TP_ID = 16; - - const TP_EQUAL = 17; - - const TP_PTR = 18; - - const TP_LDELIF = 19; - - const TP_LDELFOR = 20; - - const TP_SEMICOLON = 21; - - const TP_INCDEC = 22; - - const TP_TO = 23; - - const TP_STEP = 24; - - const TP_LDELFOREACH = 25; - - const TP_SPACE = 26; - - const TP_AS = 27; - - const TP_APTR = 28; - - const TP_LDELSETFILTER = 29; - - const TP_SMARTYBLOCKCHILDPARENT = 30; - - const TP_LDELSLASH = 31; - - const TP_ATTR = 32; - - const TP_INTEGER = 33; - - const TP_COMMA = 34; - - const TP_OPENP = 35; - - const TP_CLOSEP = 36; - - const TP_MATH = 37; - - const TP_UNIMATH = 38; - - const TP_ANDSYM = 39; - - const TP_ISIN = 40; - - const TP_ISDIVBY = 41; - - const TP_ISNOTDIVBY = 42; - - const TP_ISEVEN = 43; - - const TP_ISNOTEVEN = 44; - - const TP_ISEVENBY = 45; - - const TP_ISNOTEVENBY = 46; - - const TP_ISODD = 47; - - const TP_ISNOTODD = 48; - - const TP_ISODDBY = 49; - - const TP_ISNOTODDBY = 50; - - const TP_INSTANCEOF = 51; - - const TP_QMARK = 52; - - const TP_NOT = 53; - - const TP_TYPECAST = 54; - - const TP_HEX = 55; - - const TP_DOT = 56; - - const TP_SINGLEQUOTESTRING = 57; - - const TP_DOUBLECOLON = 58; - - const TP_NAMESPACE = 59; - - const TP_AT = 60; - - const TP_HATCH = 61; - - const TP_OPENB = 62; - - const TP_CLOSEB = 63; - - const TP_EQUALS = 64; - - const TP_NOTEQUALS = 65; - - const TP_GREATERTHAN = 66; - - const TP_LESSTHAN = 67; - - const TP_GREATEREQUAL = 68; - - const TP_LESSEQUAL = 69; - - const TP_IDENTITY = 70; - - const TP_NONEIDENTITY = 71; - - const TP_MOD = 72; - - const TP_LAND = 73; - - const TP_LOR = 74; - - const TP_LXOR = 75; - - const TP_QUOTE = 76; - - const TP_BACKTICK = 77; - - const TP_DOLLARID = 78; - - const YY_NO_ACTION = 564; - - const YY_ACCEPT_ACTION = 563; - - const YY_ERROR_ACTION = 562; - - const YY_SZ_ACTTAB = 2263; - - static public $yy_action = array(218, 147, 326, 198, 325, 308, 304, 301, 303, 309, 310, 316, 201, 329, 340, 9, 288, 34, 348, 264, 5, 108, 201, 318, 311, 43, 123, 35, 126, 175, 251, 28, 250, 193, 127, 327, 49, 51, 46, 44, 31, 38, 346, 345, 39, 42, 342, 343, 17, 12, 563, 91, 268, 247, 305, 246, 306, 247, 305, 246, 244, 206, 286, 344, 279, 350, 351, 357, 358, 359, 356, 355, 352, 353, 354, 218, 188, 147, 328, 23, 106, 299, 43, 336, 23, 313, 299, 13, 28, 230, 8, 43, 24, 249, 348, 5, 108, 28, 37, 161, 43, 123, 218, 207, 425, 251, 28, 250, 313, 195, 325, 49, 51, 46, 44, 31, 38, 346, 345, 39, 42, 342, 343, 17, 12, 218, 207, 425, 248, 23, 240, 299, 29, 425, 238, 252, 227, 272, 344, 279, 350, 351, 357, 358, 359, 356, 355, 352, 353, 354, 43, 202, 323, 25, 338, 218, 28, 419, 122, 20, 158, 49, 51, 46, 44, 31, 38, 346, 345, 39, 42, 342, 343, 17, 12, 218, 218, 263, 425, 206, 43, 477, 34, 23, 262, 299, 28, 3, 344, 279, 350, 351, 357, 358, 359, 356, 355, 352, 353, 354, 139, 425, 232, 218, 477, 422, 23, 425, 299, 278, 121, 49, 51, 46, 44, 31, 38, 346, 345, 39, 42, 342, 343, 17, 12, 218, 162, 269, 422, 254, 218, 40, 140, 295, 422, 313, 127, 231, 344, 279, 350, 351, 357, 358, 359, 356, 355, 352, 353, 354, 294, 15, 240, 23, 218, 299, 13, 21, 477, 41, 158, 49, 51, 46, 44, 31, 38, 346, 345, 39, 42, 342, 343, 17, 12, 218, 99, 160, 218, 43, 382, 477, 106, 477, 314, 28, 313, 315, 344, 279, 350, 351, 357, 358, 359, 356, 355, 352, 353, 354, 139, 196, 218, 43, 206, 296, 477, 190, 325, 28, 257, 49, 51, 46, 44, 31, 38, 346, 345, 39, 42, 342, 343, 17, 12, 218, 214, 203, 4, 206, 478, 34, 10, 360, 218, 36, 387, 32, 344, 279, 350, 351, 357, 358, 359, 356, 355, 352, 353, 354, 181, 164, 489, 478, 218, 45, 6, 332, 489, 313, 313, 49, 51, 46, 44, 31, 38, 346, 345, 39, 42, 342, 343, 17, 12, 218, 235, 207, 207, 23, 189, 299, 135, 317, 23, 117, 233, 194, 344, 279, 350, 351, 357, 358, 359, 356, 355, 352, 353, 354, 137, 298, 131, 23, 23, 261, 242, 23, 206, 225, 275, 49, 51, 46, 44, 31, 38, 346, 345, 39, 42, 342, 343, 17, 12, 218, 173, 27, 300, 234, 260, 297, 116, 28, 136, 111, 97, 229, 344, 279, 350, 351, 357, 358, 359, 356, 355, 352, 353, 354, 298, 298, 298, 320, 238, 243, 238, 271, 207, 166, 145, 49, 51, 46, 44, 31, 38, 346, 345, 39, 42, 342, 343, 17, 12, 218, 330, 172, 168, 197, 300, 319, 192, 107, 16, 133, 313, 274, 344, 279, 350, 351, 357, 358, 359, 356, 355, 352, 353, 354, 103, 167, 6, 270, 159, 128, 280, 287, 199, 98, 313, 49, 51, 46, 44, 31, 38, 346, 345, 39, 42, 342, 343, 17, 12, 298, 293, 171, 206, 7, 154, 235, 241, 145, 290, 158, 313, 281, 344, 279, 350, 351, 357, 358, 359, 356, 355, 352, 353, 354, 218, 331, 165, 200, 258, 101, 169, 20, 266, 152, 144, 313, 68, 115, 243, 313, 11, 33, 11, 33, 191, 283, 341, 214, 300, 213, 217, 282, 292, 10, 348, 206, 228, 206, 124, 120, 49, 51, 46, 44, 31, 38, 346, 345, 39, 42, 342, 343, 17, 12, 218, 105, 182, 170, 289, 205, 22, 267, 307, 186, 302, 313, 313, 344, 279, 350, 351, 357, 358, 359, 356, 355, 352, 353, 354, 300, 256, 339, 183, 206, 158, 95, 312, 300, 296, 102, 49, 51, 46, 44, 31, 38, 346, 345, 39, 42, 342, 343, 17, 12, 218, 298, 204, 184, 277, 286, 176, 185, 273, 45, 100, 157, 313, 344, 279, 350, 351, 357, 358, 359, 356, 355, 352, 353, 354, 300, 298, 298, 104, 245, 14, 187, 326, 326, 326, 326, 49, 51, 46, 44, 31, 38, 346, 345, 39, 42, 342, 343, 17, 12, 218, 18, 326, 163, 349, 326, 326, 326, 326, 326, 326, 130, 313, 344, 279, 350, 351, 357, 358, 359, 356, 355, 352, 353, 354, 300, 300, 326, 326, 326, 326, 326, 326, 326, 326, 158, 49, 51, 46, 44, 31, 38, 346, 345, 39, 42, 342, 343, 17, 12, 218, 326, 326, 326, 326, 326, 326, 326, 326, 326, 113, 118, 326, 344, 279, 350, 351, 357, 358, 359, 356, 355, 352, 353, 354, 139, 298, 298, 326, 326, 326, 326, 326, 326, 326, 326, 49, 51, 46, 44, 31, 38, 346, 345, 39, 42, 342, 343, 17, 12, 326, 229, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 344, 279, 350, 351, 357, 358, 359, 356, 355, 352, 353, 354, 49, 51, 46, 44, 31, 38, 346, 345, 39, 42, 342, 343, 17, 12, 109, 335, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 344, 279, 350, 351, 357, 358, 359, 356, 355, 352, 353, 354, 326, 326, 241, 9, 141, 92, 326, 326, 5, 108, 326, 326, 326, 23, 123, 299, 336, 30, 251, 321, 250, 326, 236, 8, 26, 43, 326, 48, 5, 108, 326, 28, 326, 326, 123, 23, 326, 299, 251, 285, 250, 285, 47, 50, 284, 239, 291, 43, 219, 255, 106, 1, 479, 28, 479, 326, 218, 9, 134, 212, 326, 326, 5, 108, 326, 96, 326, 326, 123, 326, 93, 326, 251, 237, 250, 479, 236, 479, 26, 200, 180, 48, 326, 326, 326, 324, 25, 338, 326, 313, 326, 326, 11, 33, 326, 326, 47, 50, 284, 239, 291, 326, 219, 326, 106, 1, 265, 206, 326, 326, 326, 9, 134, 221, 326, 326, 5, 108, 258, 96, 326, 326, 123, 146, 326, 326, 251, 138, 250, 326, 236, 326, 26, 200, 178, 48, 347, 326, 326, 215, 217, 282, 292, 313, 348, 326, 11, 33, 326, 326, 47, 50, 284, 239, 291, 326, 219, 326, 106, 1, 326, 206, 326, 326, 326, 9, 127, 221, 326, 258, 5, 108, 326, 96, 156, 326, 123, 326, 138, 326, 251, 326, 250, 326, 236, 326, 19, 276, 326, 48, 215, 217, 282, 292, 326, 348, 326, 326, 326, 326, 326, 200, 174, 326, 47, 50, 284, 239, 291, 326, 219, 313, 106, 1, 11, 33, 326, 326, 326, 9, 134, 209, 326, 258, 5, 108, 326, 96, 155, 206, 123, 326, 138, 326, 251, 326, 250, 326, 226, 326, 26, 200, 177, 48, 215, 217, 282, 292, 326, 348, 326, 313, 326, 326, 11, 33, 326, 326, 47, 50, 284, 239, 291, 326, 219, 326, 106, 1, 326, 206, 326, 326, 326, 9, 134, 216, 326, 258, 5, 108, 326, 96, 148, 326, 123, 326, 138, 326, 251, 326, 250, 326, 236, 326, 26, 200, 179, 48, 215, 217, 282, 292, 326, 348, 326, 313, 326, 326, 11, 33, 326, 326, 47, 50, 284, 239, 291, 326, 219, 326, 106, 1, 326, 206, 326, 326, 326, 9, 132, 221, 326, 258, 5, 108, 326, 96, 151, 326, 123, 326, 138, 326, 251, 326, 250, 326, 236, 326, 2, 326, 326, 48, 215, 217, 282, 292, 326, 348, 326, 326, 326, 326, 326, 326, 326, 326, 47, 50, 284, 239, 291, 326, 219, 326, 106, 1, 326, 326, 326, 326, 326, 9, 129, 221, 326, 258, 5, 108, 326, 96, 150, 326, 123, 326, 138, 326, 251, 326, 250, 326, 236, 326, 26, 326, 326, 48, 215, 217, 282, 292, 326, 348, 326, 326, 326, 326, 326, 326, 326, 326, 47, 50, 284, 239, 291, 326, 219, 326, 106, 1, 326, 326, 326, 326, 326, 9, 134, 208, 326, 258, 5, 108, 326, 96, 153, 326, 123, 326, 138, 326, 251, 326, 250, 326, 236, 326, 26, 326, 326, 48, 215, 217, 282, 292, 326, 348, 326, 326, 326, 326, 326, 326, 326, 326, 47, 50, 284, 239, 291, 326, 219, 326, 106, 1, 326, 326, 326, 326, 326, 9, 127, 221, 326, 258, 5, 108, 326, 96, 149, 326, 123, 326, 138, 326, 251, 326, 250, 326, 236, 326, 19, 326, 423, 48, 215, 217, 282, 292, 326, 348, 326, 322, 326, 326, 326, 326, 259, 326, 47, 50, 284, 239, 291, 326, 219, 423, 106, 326, 258, 326, 285, 423, 326, 125, 477, 326, 73, 138, 218, 326, 392, 96, 326, 479, 326, 283, 341, 326, 326, 213, 217, 282, 292, 467, 348, 253, 326, 477, 326, 93, 326, 326, 326, 43, 224, 334, 479, 326, 326, 28, 326, 467, 477, 467, 467, 326, 467, 467, 326, 326, 326, 326, 467, 326, 467, 477, 467, 326, 326, 326, 326, 326, 326, 326, 326, 477, 326, 326, 326, 326, 326, 326, 258, 326, 326, 326, 326, 152, 477, 326, 71, 138, 326, 467, 326, 326, 326, 326, 326, 283, 341, 326, 326, 213, 217, 282, 292, 467, 348, 258, 326, 326, 326, 326, 125, 220, 326, 73, 138, 326, 326, 326, 326, 285, 326, 326, 283, 341, 326, 326, 213, 217, 282, 292, 326, 348, 479, 326, 326, 326, 258, 326, 326, 326, 326, 152, 333, 326, 71, 138, 326, 326, 93, 326, 326, 326, 326, 283, 341, 479, 326, 213, 217, 282, 292, 326, 348, 326, 326, 326, 326, 258, 326, 223, 326, 326, 152, 326, 337, 71, 138, 326, 326, 326, 326, 326, 326, 326, 283, 341, 326, 258, 213, 217, 282, 292, 152, 348, 326, 57, 115, 143, 258, 326, 222, 326, 326, 152, 283, 341, 87, 138, 213, 217, 282, 292, 326, 348, 326, 283, 341, 326, 326, 213, 217, 282, 292, 326, 348, 258, 326, 326, 326, 326, 152, 326, 326, 75, 138, 326, 326, 326, 326, 326, 326, 326, 283, 341, 326, 326, 213, 217, 282, 292, 326, 348, 326, 258, 326, 326, 326, 326, 152, 326, 326, 67, 138, 326, 326, 326, 326, 326, 326, 326, 283, 341, 326, 258, 213, 217, 282, 292, 152, 348, 326, 69, 138, 326, 258, 326, 326, 326, 326, 152, 283, 341, 84, 138, 213, 217, 282, 292, 326, 348, 326, 283, 341, 326, 258, 213, 217, 282, 292, 152, 348, 326, 72, 138, 326, 326, 326, 326, 326, 326, 326, 283, 341, 326, 326, 213, 217, 282, 292, 326, 348, 258, 326, 326, 326, 326, 152, 326, 326, 88, 138, 326, 258, 326, 326, 326, 326, 152, 283, 341, 86, 138, 213, 217, 282, 292, 326, 348, 326, 283, 341, 326, 258, 213, 217, 282, 292, 94, 348, 326, 52, 119, 326, 258, 326, 326, 326, 326, 152, 283, 341, 68, 138, 210, 217, 282, 292, 326, 348, 326, 283, 341, 326, 258, 213, 217, 282, 292, 152, 348, 326, 66, 138, 326, 326, 326, 326, 326, 326, 326, 283, 341, 326, 326, 213, 217, 282, 292, 326, 348, 258, 326, 326, 326, 326, 94, 326, 326, 55, 119, 326, 258, 326, 326, 326, 326, 152, 283, 341, 60, 138, 213, 217, 282, 292, 326, 348, 326, 283, 341, 326, 258, 213, 217, 282, 292, 152, 348, 326, 53, 138, 326, 258, 326, 326, 326, 326, 152, 283, 341, 89, 138, 213, 217, 282, 292, 326, 348, 326, 283, 341, 326, 258, 213, 217, 282, 292, 152, 348, 326, 90, 138, 326, 326, 326, 326, 326, 326, 326, 283, 341, 326, 326, 213, 217, 282, 292, 326, 348, 258, 326, 326, 326, 326, 152, 326, 326, 59, 138, 326, 258, 326, 326, 326, 326, 142, 283, 341, 56, 138, 211, 217, 282, 292, 326, 348, 326, 283, 341, 326, 258, 213, 217, 282, 292, 152, 348, 326, 70, 138, 326, 258, 326, 326, 326, 326, 152, 283, 341, 65, 138, 213, 217, 282, 292, 326, 348, 326, 283, 341, 326, 258, 213, 217, 282, 292, 152, 348, 326, 58, 138, 326, 326, 326, 326, 326, 326, 326, 283, 341, 326, 326, 213, 217, 282, 292, 326, 348, 258, 326, 326, 326, 326, 152, 326, 326, 81, 138, 326, 258, 326, 326, 326, 326, 114, 283, 341, 80, 138, 213, 217, 282, 292, 326, 348, 326, 283, 341, 326, 258, 213, 217, 282, 292, 112, 348, 326, 74, 138, 326, 258, 326, 326, 326, 326, 152, 283, 341, 85, 138, 213, 217, 282, 292, 326, 348, 326, 283, 341, 326, 258, 213, 217, 282, 292, 152, 348, 326, 79, 138, 326, 326, 326, 326, 326, 326, 326, 283, 341, 326, 326, 213, 217, 282, 292, 326, 348, 258, 326, 326, 326, 326, 152, 326, 326, 77, 138, 326, 258, 326, 326, 326, 326, 152, 283, 341, 62, 138, 213, 217, 282, 292, 326, 348, 326, 283, 341, 326, 258, 213, 217, 282, 292, 152, 348, 326, 83, 138, 326, 258, 326, 326, 326, 326, 152, 283, 341, 76, 138, 213, 217, 282, 292, 326, 348, 326, 283, 341, 326, 258, 213, 217, 282, 292, 152, 348, 326, 64, 138, 326, 326, 326, 326, 326, 326, 326, 283, 341, 326, 326, 213, 217, 282, 292, 326, 348, 258, 326, 326, 326, 326, 152, 326, 326, 63, 138, 326, 258, 326, 326, 326, 326, 110, 283, 341, 61, 138, 213, 217, 282, 292, 326, 348, 326, 283, 341, 326, 258, 213, 217, 282, 292, 152, 348, 326, 82, 138, 326, 258, 326, 326, 326, 326, 152, 283, 341, 54, 138, 213, 217, 282, 292, 326, 348, 326, 283, 341, 326, 258, 213, 217, 282, 292, 152, 348, 326, 78, 138, 326, 326, 326, 326, 326, 326, 326, 283, 341, 326, 326, 213, 217, 282, 292, 326, 348,); - - static public $yy_lookahead = array(1, 92, 3, 113, 114, 4, 5, 6, 7, 8, 9, 10, 11, 104, 105, 14, 16, 34, 109, 36, 19, 20, 11, 12, 13, 26, 25, 14, 15, 16, 29, 32, 31, 89, 15, 16, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 80, 81, 82, 83, 84, 85, 82, 83, 84, 85, 60, 117, 118, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 1, 90, 92, 59, 14, 61, 16, 26, 7, 14, 99, 16, 17, 32, 104, 14, 26, 2, 28, 109, 19, 20, 32, 24, 90, 26, 25, 1, 117, 3, 29, 32, 31, 99, 113, 114, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 1, 117, 26, 27, 14, 60, 16, 17, 32, 92, 93, 94, 22, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 26, 89, 76, 77, 78, 1, 32, 3, 15, 17, 18, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 1, 1, 3, 3, 117, 26, 35, 34, 14, 36, 16, 32, 35, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 58, 26, 56, 1, 58, 3, 14, 32, 16, 63, 58, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 1, 90, 3, 26, 60, 1, 14, 15, 16, 32, 99, 15, 16, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 33, 28, 60, 14, 1, 16, 17, 28, 35, 17, 18, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 1, 89, 90, 1, 26, 3, 58, 61, 35, 84, 32, 99, 87, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 58, 89, 1, 26, 117, 111, 58, 113, 114, 32, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 1, 56, 3, 34, 117, 35, 34, 62, 36, 1, 14, 3, 17, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 90, 90, 56, 58, 1, 2, 35, 63, 62, 99, 99, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 1, 56, 117, 117, 14, 89, 16, 15, 12, 14, 96, 16, 21, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 34, 112, 35, 14, 14, 16, 16, 14, 117, 16, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 1, 110, 26, 112, 15, 16, 16, 86, 32, 96, 96, 96, 83, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 112, 112, 112, 108, 92, 93, 92, 93, 117, 110, 115, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 1, 122, 90, 110, 98, 112, 3, 98, 98, 52, 15, 99, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 89, 90, 35, 16, 110, 16, 33, 16, 16, 96, 99, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 112, 108, 90, 117, 35, 16, 56, 2, 115, 16, 18, 99, 33, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 1, 77, 90, 89, 83, 89, 90, 17, 36, 88, 15, 99, 91, 92, 93, 99, 102, 103, 102, 103, 21, 100, 101, 56, 112, 104, 105, 106, 107, 62, 109, 117, 16, 117, 15, 15, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 1, 89, 90, 90, 16, 16, 23, 63, 3, 61, 7, 99, 99, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 112, 27, 3, 61, 117, 18, 16, 99, 112, 111, 96, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 1, 112, 3, 90, 26, 118, 110, 110, 115, 2, 96, 96, 99, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 112, 112, 112, 110, 95, 95, 110, 123, 123, 123, 123, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 1, 2, 123, 90, 114, 123, 123, 123, 123, 123, 123, 97, 99, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 112, 112, 123, 123, 123, 123, 123, 123, 123, 123, 18, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 1, 123, 123, 123, 123, 123, 123, 123, 123, 123, 96, 96, 123, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 58, 112, 112, 123, 123, 123, 123, 123, 123, 123, 123, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 123, 83, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 121, 122, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 123, 123, 2, 14, 15, 16, 123, 123, 19, 20, 123, 123, 123, 14, 25, 16, 7, 17, 29, 30, 31, 123, 33, 14, 35, 26, 123, 38, 19, 20, 123, 32, 123, 123, 25, 14, 123, 16, 29, 22, 31, 22, 53, 54, 55, 56, 57, 26, 59, 28, 61, 62, 35, 32, 35, 123, 1, 14, 15, 16, 123, 123, 19, 20, 123, 76, 123, 123, 25, 123, 51, 123, 29, 18, 31, 58, 33, 58, 35, 89, 90, 38, 123, 123, 123, 76, 77, 78, 123, 99, 123, 123, 102, 103, 123, 123, 53, 54, 55, 56, 57, 123, 59, 123, 61, 62, 63, 117, 123, 123, 123, 14, 15, 16, 123, 123, 19, 20, 83, 76, 123, 123, 25, 88, 123, 123, 29, 92, 31, 123, 33, 123, 35, 89, 90, 38, 101, 123, 123, 104, 105, 106, 107, 99, 109, 123, 102, 103, 123, 123, 53, 54, 55, 56, 57, 123, 59, 123, 61, 62, 123, 117, 123, 123, 123, 14, 15, 16, 123, 83, 19, 20, 123, 76, 88, 123, 25, 123, 92, 123, 29, 123, 31, 123, 33, 123, 35, 101, 123, 38, 104, 105, 106, 107, 123, 109, 123, 123, 123, 123, 123, 89, 90, 123, 53, 54, 55, 56, 57, 123, 59, 99, 61, 62, 102, 103, 123, 123, 123, 14, 15, 16, 123, 83, 19, 20, 123, 76, 88, 117, 25, 123, 92, 123, 29, 123, 31, 123, 33, 123, 35, 89, 90, 38, 104, 105, 106, 107, 123, 109, 123, 99, 123, 123, 102, 103, 123, 123, 53, 54, 55, 56, 57, 123, 59, 123, 61, 62, 123, 117, 123, 123, 123, 14, 15, 16, 123, 83, 19, 20, 123, 76, 88, 123, 25, 123, 92, 123, 29, 123, 31, 123, 33, 123, 35, 89, 90, 38, 104, 105, 106, 107, 123, 109, 123, 99, 123, 123, 102, 103, 123, 123, 53, 54, 55, 56, 57, 123, 59, 123, 61, 62, 123, 117, 123, 123, 123, 14, 15, 16, 123, 83, 19, 20, 123, 76, 88, 123, 25, 123, 92, 123, 29, 123, 31, 123, 33, 123, 35, 123, 123, 38, 104, 105, 106, 107, 123, 109, 123, 123, 123, 123, 123, 123, 123, 123, 53, 54, 55, 56, 57, 123, 59, 123, 61, 62, 123, 123, 123, 123, 123, 14, 15, 16, 123, 83, 19, 20, 123, 76, 88, 123, 25, 123, 92, 123, 29, 123, 31, 123, 33, 123, 35, 123, 123, 38, 104, 105, 106, 107, 123, 109, 123, 123, 123, 123, 123, 123, 123, 123, 53, 54, 55, 56, 57, 123, 59, 123, 61, 62, 123, 123, 123, 123, 123, 14, 15, 16, 123, 83, 19, 20, 123, 76, 88, 123, 25, 123, 92, 123, 29, 123, 31, 123, 33, 123, 35, 123, 123, 38, 104, 105, 106, 107, 123, 109, 123, 123, 123, 123, 123, 123, 123, 123, 53, 54, 55, 56, 57, 123, 59, 123, 61, 62, 123, 123, 123, 123, 123, 14, 15, 16, 123, 83, 19, 20, 123, 76, 88, 123, 25, 123, 92, 123, 29, 123, 31, 123, 33, 123, 35, 123, 3, 38, 104, 105, 106, 107, 123, 109, 123, 3, 123, 123, 123, 123, 17, 123, 53, 54, 55, 56, 57, 123, 59, 26, 61, 123, 83, 123, 22, 32, 123, 88, 35, 123, 91, 92, 1, 123, 3, 76, 123, 35, 123, 100, 101, 123, 123, 104, 105, 106, 107, 3, 109, 18, 123, 58, 123, 51, 123, 123, 123, 26, 119, 120, 58, 123, 123, 32, 123, 21, 35, 23, 24, 123, 26, 27, 123, 123, 123, 123, 32, 123, 34, 35, 36, 123, 123, 123, 123, 123, 123, 123, 123, 58, 123, 123, 123, 123, 123, 123, 83, 123, 123, 123, 123, 88, 58, 123, 91, 92, 123, 63, 123, 123, 123, 123, 123, 100, 101, 123, 123, 104, 105, 106, 107, 77, 109, 83, 123, 123, 123, 123, 88, 116, 123, 91, 92, 123, 123, 123, 123, 22, 123, 123, 100, 101, 123, 123, 104, 105, 106, 107, 123, 109, 35, 123, 123, 123, 83, 123, 123, 123, 123, 88, 120, 123, 91, 92, 123, 123, 51, 123, 123, 123, 123, 100, 101, 58, 123, 104, 105, 106, 107, 123, 109, 123, 123, 123, 123, 83, 123, 116, 123, 123, 88, 123, 77, 91, 92, 123, 123, 123, 123, 123, 123, 123, 100, 101, 123, 83, 104, 105, 106, 107, 88, 109, 123, 91, 92, 93, 83, 123, 116, 123, 123, 88, 100, 101, 91, 92, 104, 105, 106, 107, 123, 109, 123, 100, 101, 123, 123, 104, 105, 106, 107, 123, 109, 83, 123, 123, 123, 123, 88, 123, 123, 91, 92, 123, 123, 123, 123, 123, 123, 123, 100, 101, 123, 123, 104, 105, 106, 107, 123, 109, 123, 83, 123, 123, 123, 123, 88, 123, 123, 91, 92, 123, 123, 123, 123, 123, 123, 123, 100, 101, 123, 83, 104, 105, 106, 107, 88, 109, 123, 91, 92, 123, 83, 123, 123, 123, 123, 88, 100, 101, 91, 92, 104, 105, 106, 107, 123, 109, 123, 100, 101, 123, 83, 104, 105, 106, 107, 88, 109, 123, 91, 92, 123, 123, 123, 123, 123, 123, 123, 100, 101, 123, 123, 104, 105, 106, 107, 123, 109, 83, 123, 123, 123, 123, 88, 123, 123, 91, 92, 123, 83, 123, 123, 123, 123, 88, 100, 101, 91, 92, 104, 105, 106, 107, 123, 109, 123, 100, 101, 123, 83, 104, 105, 106, 107, 88, 109, 123, 91, 92, 123, 83, 123, 123, 123, 123, 88, 100, 101, 91, 92, 104, 105, 106, 107, 123, 109, 123, 100, 101, 123, 83, 104, 105, 106, 107, 88, 109, 123, 91, 92, 123, 123, 123, 123, 123, 123, 123, 100, 101, 123, 123, 104, 105, 106, 107, 123, 109, 83, 123, 123, 123, 123, 88, 123, 123, 91, 92, 123, 83, 123, 123, 123, 123, 88, 100, 101, 91, 92, 104, 105, 106, 107, 123, 109, 123, 100, 101, 123, 83, 104, 105, 106, 107, 88, 109, 123, 91, 92, 123, 83, 123, 123, 123, 123, 88, 100, 101, 91, 92, 104, 105, 106, 107, 123, 109, 123, 100, 101, 123, 83, 104, 105, 106, 107, 88, 109, 123, 91, 92, 123, 123, 123, 123, 123, 123, 123, 100, 101, 123, 123, 104, 105, 106, 107, 123, 109, 83, 123, 123, 123, 123, 88, 123, 123, 91, 92, 123, 83, 123, 123, 123, 123, 88, 100, 101, 91, 92, 104, 105, 106, 107, 123, 109, 123, 100, 101, 123, 83, 104, 105, 106, 107, 88, 109, 123, 91, 92, 123, 83, 123, 123, 123, 123, 88, 100, 101, 91, 92, 104, 105, 106, 107, 123, 109, 123, 100, 101, 123, 83, 104, 105, 106, 107, 88, 109, 123, 91, 92, 123, 123, 123, 123, 123, 123, 123, 100, 101, 123, 123, 104, 105, 106, 107, 123, 109, 83, 123, 123, 123, 123, 88, 123, 123, 91, 92, 123, 83, 123, 123, 123, 123, 88, 100, 101, 91, 92, 104, 105, 106, 107, 123, 109, 123, 100, 101, 123, 83, 104, 105, 106, 107, 88, 109, 123, 91, 92, 123, 83, 123, 123, 123, 123, 88, 100, 101, 91, 92, 104, 105, 106, 107, 123, 109, 123, 100, 101, 123, 83, 104, 105, 106, 107, 88, 109, 123, 91, 92, 123, 123, 123, 123, 123, 123, 123, 100, 101, 123, 123, 104, 105, 106, 107, 123, 109, 83, 123, 123, 123, 123, 88, 123, 123, 91, 92, 123, 83, 123, 123, 123, 123, 88, 100, 101, 91, 92, 104, 105, 106, 107, 123, 109, 123, 100, 101, 123, 83, 104, 105, 106, 107, 88, 109, 123, 91, 92, 123, 83, 123, 123, 123, 123, 88, 100, 101, 91, 92, 104, 105, 106, 107, 123, 109, 123, 100, 101, 123, 83, 104, 105, 106, 107, 88, 109, 123, 91, 92, 123, 123, 123, 123, 123, 123, 123, 100, 101, 123, 123, 104, 105, 106, 107, 123, 109, 83, 123, 123, 123, 123, 88, 123, 123, 91, 92, 123, 83, 123, 123, 123, 123, 88, 100, 101, 91, 92, 104, 105, 106, 107, 123, 109, 123, 100, 101, 123, 83, 104, 105, 106, 107, 88, 109, 123, 91, 92, 123, 83, 123, 123, 123, 123, 88, 100, 101, 91, 92, 104, 105, 106, 107, 123, 109, 123, 100, 101, 123, 83, 104, 105, 106, 107, 88, 109, 123, 91, 92, 123, 123, 123, 123, 123, 123, 123, 100, 101, 123, 123, 104, 105, 106, 107, 123, 109,); - - const YY_SHIFT_USE_DFLT = - 18; - - const YY_SHIFT_MAX = 261; - - static public $yy_shift_ofst = array(1, 1123, 1177, 961, 1123, 1177, 961, 961, 853, 853, 907, 961, 961, 961, 961, 961, 1231, 961, 961, 961, 961, 961, 961, 961, 1285, 961, 961, 1069, 961, 961, 961, 961, 961, 961, 961, 961, 961, 961, 961, 961, 961, 961, 961, 1069, 1015, 1015, 1339, 1339, 1339, 1339, 1339, 1339, - 1, 74, 124, 124, 124, 124, 124, 474, 424, 599, 649, 699, 324, 174, 224, 374, 274, 549, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 788, 788, 1, 1411, 19, 277, 253, 76, 885, 65, 154, 863, 154, 863, 253, 517, 253, 221, 353, 367, 873, 101, 70, 175, 115, 202, 142, 11, 192, 239, 242, 365, 414, 365, 401, 365, 229, 370, 365, 919, 389, 56, 367, 390, 365, 390, 365, 365, 367, 717, 414, 365, 393, 333, 56, 365, 612, 301, 612, 301, 301, 301, 301, 301, 301, 301, 301, - 18, 169, 13, 270, 56, 56, 56, 56, 56, 56, 270, 56, 270, 56, 56, 56, 56, 270, 56, 321, 270, 56, 56, 56, 56, 56, 56, 296, 56, 270, 296, 270, 56, 301, 612, 628, 657, 301, 628, 612, 301, 657, 612, 494, 301, 371, 301, - 18, - 18, - 18, - 18, - 18, 1424, 1373, 1382, 1495, 146, 883, 217, 881, 223, 152, 0, 295, - 17, 248, 148, 297, 294, 864, 320, 366, 544, 624, 567, 548, 566, 494, 492, 473, 475, 514, 540, 504, 518, 588, 530, 522, 491, 545, 603, 605, 570, 569, 489, 589, 583, 615, 415, 143, 470, 432, 478, 487, 467, 90,); - - const YY_REDUCE_USE_DFLT = - 111; - - const YY_REDUCE_MAX = 207; - - static public $yy_reduce_ofst = array(- 30, 1319, 471, 1393, 1420, 1502, 1482, 1451, 1677, 1735, 1746, 1599, 1540, 1619, 1588, 2033, 2091, 1855, 1777, 1568, 1646, 1657, 1766, 1708, 1797, 1824, 1688, 2102, 1924, 1955, 1835, 2002, 2153, 2044, 1513, 2013, 2064, 2133, 2122, 1975, 1866, 1886, 1913, 1944, 899, 950, 1274, 1166, 1220, 1058, 1004, 1112, 466, 908, 854, 466, 1016, 976, 1070, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, - 26, 411, - 91, 187, 512, 718, 563, 613, 260, 513, 9, 462, - 14, 194, 261, - 15, - 56, 42, 354, 62, 316, 62, 614, 62, - 110, 200, 316, 316, - 110, 413, 345, 539, 387, 564, 62, 338, 289, 291, 289, 136, 362, 339, 340, 289, 665, 368, 364, - 110, 418, 565, 289, 62, 437, 664, - 4, 62, - 110, 62, 62, 62, 62, 62, 62, 212, 62, 62, 521, 543, 523, 533, 533, 533, 533, 533, 533, 523, 533, 523, 533, 533, 533, 533, 523, 533, 546, 523, 533, 533, 533, 533, 533, 533, 547, 533, 523, 571, 523, 533, 341, 590, 584, 537, 341, 585, 590, 341, 537, 590, 568, 341, 346, 341, 349, 394, 385, 381, 384,); - - static public $yyExpectedTokens = array(array(4, 5, 6, 7, 8, 9, 10, 11, 14, 19, 20, 25, 29, 31,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 30, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 30, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 63, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 62, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 76,), array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 53, 54, 55, 56, 57, 59, 61, 76,), array(1, 3, 26, 32, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,), array(1, 24, 26, 32, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,), array(1, 26, 32, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,), array(1, 26, 32, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,), array(1, 26, 32, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,), array(1, 26, 32, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,), array(1, 26, 32, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,), array(1, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 77,), array(1, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,), array(1, 27, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,), array(1, 3, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,), array(1, 2, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,), array(1, 3, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,), array(1, 3, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,), array(1, 3, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,), array(1, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,), array(1, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,), array(1, 21, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,), array(1, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,), array(1, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,), array(1, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,), array(1, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,), array(1, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,), array(1, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,), array(1, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,), array(1, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,), array(1, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,), array(1, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,), array(1, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,), array(1, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,), array(1, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,), array(1, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,), array(1, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,), array(1, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,), array(1, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,), array(1, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,), array(1, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,), array(37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,), array(37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,), array(4, 5, 6, 7, 8, 9, 10, 11, 14, 19, 20, 25, 29, 31,), array(1, 3, 18, 26, 32, 35, 58,), array(15, 16, 59, 61,), array(1, 3, 26, 32,), array(1, 26, 32,), array(7, 14, 19, 20, 25, 29, 31, 76, 77, 78,), array(14, 16, 26, 28, 32,), array(14, 16, 26, 28, 32,), array(1, 3, 26, 32,), array(14, 16, 26, 32,), array(1, 3, 26, 32,), array(14, 16, 26, 32,), array(1, 26, 32,), array(18, 56, 62,), array(1, 26, 32,), array(15, 16, 61,), array(1, 2,), array(15, 35,), array(7, 14, 19, 20, 25, 29, 31, 76, 77, 78,), array(1, 3, 26, 27, 32,), array(14, 16, 17, 60,), array(1, 3, 26, 32,), array(14, 16, 17, 22,), array(1, 3, 26, 32,), array(17, 18, 58,), array(11, 12, 13,), array(14, 16, 60,), array(14, 16, 17,), array(17, 18, 58,), array(14, 16,), array(15, 16,), array(14, 16,), array(26, 32,), array(14, 16,), array(1, 28,), array(14, 16,), array(14, 16,), array(1, 18,), array(14, 16,), array(26, 32,), array(15, 35,), array(14, 16,), array(14, 16,), array(14, 16,), array(14, 16,), array(14, 16,), array(15, 35,), array(18, 58,), array(15, 16,), array(14, 16,), array(14, 16,), array(1, 3,), array(26, 32,), array(14, 16,), array(18,), array(1,), array(18,), array(1,), array(1,), array(1,), array(1,), array(1,), array(1,), array(1,), array(1,), array(), array(14, 16, 60,), array(14, 15, 16,), array(56, 62,), array(26, 32,), array(26, 32,), array(26, 32,), array(26, 32,), array(26, 32,), array(26, 32,), array(56, 62,), array(26, 32,), array(56, 62,), array(26, 32,), array(26, 32,), array(26, 32,), array(26, 32,), array(56, 62,), array(26, 32,), array(14, 35,), array(56, 62,), array(26, 32,), array(26, 32,), array(26, 32,), array(26, 32,), array(26, 32,), array(26, 32,), array(56, 62,), array(26, 32,), array(56, 62,), array(56, 62,), array(56, 62,), array(26, 32,), array(1,), array(18,), array(26,), array(2,), array(1,), array(26,), array(18,), array(1,), array(2,), array(18,), array(35,), array(1,), array(12,), array(1,), array(), array(), array(), array(), array(), array(3, 21, 23, 24, 26, 27, 32, 34, 35, 36, 58, 63, 77,), array(3, 17, 26, 32, 35, 58,), array(3, 22, 35, 51, 58,), array(22, 35, 51, 58, 77,), array(35, 56, 58, 63,), array(22, 35, 51, 58,), array(14, 15, 16, 33,), array(22, 35, 58,), array(28, 35, 58,), array(35, 58,), array(16, 60,), array(35, 58,), array(34, 36,), array(35, 58,), array(34, 36,), array(34, 36,), array(34, 63,), array(2, 17,), array(17, 56,), array(21, 34,), array(63,), array(3,), array(61,), array(61,), array(16,), array(35,), array(16,), array(33,), array(56,), array(16,), array(17,), array(33,), array(16,), array(16,), array(2,), array(36,), array(16,), array(15,), array(7,), array(3,), array(15,), array(15,), array(16,), array(16,), array(23,), array(16,), array(16,), array(15,), array(15,), array(52,), array(3,), array(16,), array(35,), array(2,), 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(), array(), array(), array(),); - - static public $yy_default = array(364, 545, 562, 516, 562, 562, 516, 516, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 419, 419, 419, 388, 396, 419, 562, 562, 424, 562, 562, 562, 562, 562, 562, 562, 562, 452, 515, 429, 548, 424, 453, 443, 444, 426, 448, 421, 449, 445, 547, 440, 401, 546, 514, 430, 456, 455, 361, 467, 562, 432, 419, 562, 419, 419, 474, 419, 439, 419, 419, 528, 419, 562, 410, 562, 562, 432, 489, 432, 562, 432, 480, 562, 489, 489, 480, 562, 562, 562, 419, 562, 432, 562, 562, 413, 562, 419, 562, 562, 562, 562, 562, 489, 562, 480, 562, 562, 562, 432, 398, 562, 525, 442, 480, 435, 437, 459, 436, 432, 458, 415, 460, 523, 490, 562, 508, 384, 385, 400, 406, 395, 409, 509, 391, 507, 386, 407, 399, 405, 487, 397, 489, 506, 389, 403, 390, 404, 383, 394, 485, 408, 486, 483, 484, 393, 414, 529, 561, 517, 411, 561, 526, 416, 518, 503, 489, 439, 379, 474, 489, 489, 522, 522, 522, 434, 467, 457, 457, 467, 457, 562, 457, 467, 562, 562, 475, 562, 467, 562, 562, 562, 501, 463, 562, 562, 562, 562, 562, 562, 501, 562, 465, 463, 562, 562, 562, 562, 562, 501, 562, 562, 562, 370, 562, 562, 562, 562, 562, 427, 562, 562, 562, 562, 469, 562, 562, 527, 501, 512, 494, 511, 498, 431, 496, 362, 502, 420, 428, 402, 510, 497, 469, 524, 560, 495, 531, 464, 466, 468, 433, 462, 461, 521, 519, 520, 434, 481, 470, 471, 472, 493, 492, 488, 491, 499, 501, 500, 369, 372, 371, 368, 367, 363, 365, 366, 373, 374, 381, 417, 418, 380, 378, 375, 376, 377, 473, 476, 412, 556, 549, 550, 504, 557, 477, 478, 479, 551, 554, 542, 544, 543, 552, 559, 553, 555, 558, 454, 438, 450, 451, 530, 447, 446, 441, 482, 505, 532, 533, 539, 540, 541, 538, 537, 534, 535, 536, 513,); - - const YYNOCODE = 124; + const TP_VERT = 1; + const TP_COLON = 2; + const TP_RDEL = 3; + const TP_COMMENT = 4; + const TP_PHP = 5; + const TP_XMLTAG = 6; + const TP_TEXT = 7; + const TP_STRIPON = 8; + const TP_STRIPOFF = 9; + const TP_BLOCKSOURCE = 10; + const TP_LITERALSTART = 11; + const TP_LITERALEND = 12; + const TP_LITERAL = 13; + const TP_LDEL = 14; + const TP_DOLLAR = 15; + const TP_ID = 16; + const TP_EQUAL = 17; + const TP_PTR = 18; + const TP_LDELIF = 19; + const TP_LDELFOR = 20; + const TP_SEMICOLON = 21; + const TP_INCDEC = 22; + const TP_TO = 23; + const TP_STEP = 24; + const TP_LDELFOREACH = 25; + const TP_SPACE = 26; + const TP_AS = 27; + const TP_APTR = 28; + const TP_LDELSETFILTER = 29; + const TP_SMARTYBLOCKCHILDPARENT = 30; + const TP_LDELSLASH = 31; + const TP_ATTR = 32; + const TP_INTEGER = 33; + const TP_COMMA = 34; + const TP_OPENP = 35; + const TP_CLOSEP = 36; + const TP_MATH = 37; + const TP_UNIMATH = 38; + const TP_ANDSYM = 39; + const TP_ISIN = 40; + const TP_INSTANCEOF = 41; + const TP_QMARK = 42; + const TP_NOT = 43; + const TP_TYPECAST = 44; + const TP_HEX = 45; + const TP_DOT = 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_LOGOP = 54; + const TP_TLOGOP = 55; + const TP_SINGLECOND = 56; + const TP_QUOTE = 57; + const TP_BACKTICK = 58; + const TP_DOLLARID = 59; + const YY_NO_ACTION = 519; + const YY_ACCEPT_ACTION = 518; + const YY_ERROR_ACTION = 517; + + const YY_SZ_ACTTAB = 1543; +static public $yy_action = array( + 10, 121, 77, 199, 306, 5, 94, 106, 20, 8, + 270, 130, 13, 112, 161, 234, 305, 240, 83, 230, + 24, 31, 242, 265, 40, 20, 12, 270, 17, 43, + 42, 266, 216, 323, 275, 211, 443, 92, 1, 10, + 114, 198, 79, 82, 5, 94, 166, 88, 163, 443, + 130, 186, 182, 171, 234, 280, 240, 280, 230, 81, + 31, 227, 280, 40, 127, 36, 319, 268, 43, 42, + 266, 216, 323, 192, 211, 189, 92, 1, 262, 314, + 189, 158, 82, 10, 107, 204, 9, 167, 5, 94, + 280, 5, 94, 20, 130, 270, 280, 130, 234, 209, + 240, 234, 230, 240, 16, 24, 265, 40, 20, 269, + 270, 12, 43, 42, 266, 216, 323, 34, 211, 443, + 92, 1, 10, 114, 204, 79, 82, 5, 94, 304, + 30, 307, 443, 130, 453, 264, 182, 234, 6, 240, + 453, 230, 302, 31, 223, 20, 40, 270, 17, 36, + 319, 43, 42, 266, 216, 323, 20, 211, 270, 92, + 1, 10, 114, 195, 189, 82, 5, 94, 24, 235, + 214, 20, 130, 270, 12, 233, 234, 23, 240, 253, + 208, 20, 31, 270, 33, 40, 179, 294, 293, 261, + 43, 42, 266, 216, 323, 209, 211, 356, 92, 1, + 10, 114, 194, 209, 82, 5, 94, 227, 89, 168, + 136, 130, 120, 95, 315, 234, 37, 240, 280, 230, + 24, 31, 329, 330, 40, 144, 12, 325, 24, 43, + 42, 266, 216, 323, 12, 211, 189, 92, 1, 10, + 119, 204, 226, 82, 5, 94, 11, 128, 298, 24, + 130, 107, 327, 199, 234, 12, 240, 29, 230, 8, + 31, 14, 144, 40, 273, 299, 178, 316, 43, 42, + 266, 216, 323, 209, 211, 393, 92, 1, 10, 124, + 204, 160, 82, 5, 94, 328, 23, 92, 310, 130, + 280, 21, 125, 234, 19, 240, 185, 230, 24, 7, + 12, 265, 40, 269, 12, 27, 15, 43, 42, 266, + 216, 323, 441, 211, 443, 92, 1, 10, 114, 202, + 79, 82, 5, 94, 189, 441, 192, 443, 130, 176, + 316, 23, 234, 252, 240, 238, 230, 187, 31, 22, + 144, 40, 228, 243, 206, 233, 43, 42, 266, 216, + 323, 209, 211, 396, 92, 1, 10, 107, 204, 157, + 82, 5, 94, 287, 222, 285, 246, 130, 280, 292, + 125, 234, 291, 240, 215, 230, 396, 16, 175, 134, + 40, 269, 396, 129, 300, 43, 42, 266, 216, 323, + 265, 211, 320, 92, 2, 201, 212, 278, 324, 82, + 325, 397, 111, 443, 286, 282, 283, 289, 290, 296, + 297, 179, 174, 313, 10, 219, 443, 215, 275, 5, + 94, 280, 132, 184, 397, 130, 129, 215, 172, 234, + 397, 240, 117, 441, 269, 73, 129, 280, 201, 212, + 278, 324, 136, 325, 279, 263, 441, 159, 200, 212, + 278, 324, 215, 325, 217, 192, 280, 117, 441, 325, + 73, 129, 155, 205, 309, 93, 180, 86, 156, 279, + 263, 441, 441, 200, 212, 278, 324, 280, 325, 215, + 36, 319, 177, 221, 133, 441, 442, 67, 129, 312, + 249, 3, 107, 218, 189, 189, 279, 263, 154, 442, + 200, 212, 278, 324, 110, 325, 20, 280, 270, 215, + 189, 268, 213, 18, 133, 181, 316, 67, 129, 518, + 52, 254, 222, 285, 246, 192, 279, 263, 92, 215, + 200, 212, 278, 324, 133, 325, 118, 67, 129, 209, + 37, 20, 207, 245, 103, 108, 279, 263, 105, 215, + 200, 212, 278, 324, 133, 325, 122, 56, 101, 231, + 275, 20, 203, 220, 275, 99, 279, 263, 244, 224, + 200, 212, 278, 324, 215, 325, 209, 284, 317, 133, + 151, 275, 48, 101, 116, 39, 41, 44, 38, 90, + 169, 279, 263, 209, 85, 200, 212, 278, 324, 280, + 325, 24, 332, 333, 331, 209, 209, 12, 361, 164, + 275, 269, 39, 41, 44, 38, 215, 189, 209, 229, + 28, 133, 232, 226, 56, 129, 165, 408, 408, 332, + 333, 331, 260, 279, 263, 280, 126, 200, 212, 278, + 324, 35, 325, 24, 209, 209, 399, 366, 20, 12, + 237, 269, 318, 192, 39, 41, 44, 38, 146, 140, + 269, 441, 241, 408, 408, 408, 408, 123, 87, 399, + 24, 332, 333, 331, 441, 399, 12, 143, 215, 441, + 408, 408, 408, 133, 275, 238, 68, 129, 209, 215, + 144, 22, 441, 275, 133, 279, 263, 69, 129, 200, + 212, 278, 324, 209, 325, 399, 279, 263, 183, 150, + 200, 212, 278, 324, 215, 325, 4, 84, 280, 133, + 125, 288, 47, 129, 39, 41, 44, 38, 399, 225, + 97, 279, 263, 275, 399, 200, 212, 278, 324, 215, + 325, 332, 333, 331, 133, 322, 275, 55, 129, 228, + 250, 257, 140, 228, 231, 274, 279, 263, 188, 215, + 200, 212, 278, 324, 133, 325, 277, 76, 129, 215, + 113, 20, 6, 210, 135, 255, 279, 263, 129, 215, + 200, 212, 278, 324, 133, 325, 189, 70, 129, 248, + 201, 212, 278, 324, 153, 325, 279, 263, 267, 191, + 200, 212, 278, 324, 215, 325, 276, 271, 32, 133, + 109, 272, 66, 129, 148, 137, 321, 26, 308, 152, + 147, 279, 263, 273, 215, 200, 212, 278, 324, 133, + 325, 281, 54, 129, 215, 144, 149, 269, 311, 141, + 104, 279, 263, 129, 215, 200, 212, 278, 324, 133, + 325, 326, 75, 129, 295, 201, 212, 278, 324, 91, + 325, 279, 263, 247, 288, 200, 212, 278, 324, 215, + 325, 288, 288, 288, 80, 288, 288, 49, 102, 288, + 288, 288, 288, 288, 288, 288, 279, 263, 288, 215, + 200, 212, 278, 324, 133, 325, 288, 51, 129, 215, + 288, 288, 288, 288, 139, 288, 279, 263, 129, 215, + 200, 212, 278, 324, 133, 325, 288, 59, 129, 288, + 201, 212, 278, 324, 288, 325, 279, 263, 288, 288, + 200, 212, 278, 324, 215, 325, 288, 288, 288, 133, + 288, 288, 60, 129, 288, 288, 288, 288, 288, 288, + 288, 279, 263, 288, 215, 196, 212, 278, 324, 133, + 325, 288, 58, 129, 215, 288, 288, 288, 288, 138, + 288, 279, 263, 129, 215, 200, 212, 278, 324, 80, + 325, 288, 45, 102, 288, 201, 212, 278, 324, 288, + 325, 279, 263, 288, 288, 197, 212, 278, 324, 215, + 325, 288, 288, 288, 98, 288, 288, 64, 129, 288, + 288, 288, 288, 288, 288, 288, 279, 263, 288, 215, + 200, 212, 278, 324, 96, 325, 288, 53, 129, 215, + 288, 288, 288, 288, 131, 288, 279, 263, 129, 215, + 200, 212, 278, 324, 133, 325, 288, 46, 129, 288, + 201, 212, 278, 324, 288, 325, 279, 263, 288, 288, + 200, 212, 278, 324, 215, 325, 182, 145, 288, 133, + 288, 288, 61, 129, 288, 288, 280, 288, 288, 36, + 319, 279, 263, 288, 215, 200, 212, 278, 324, 133, + 325, 288, 71, 129, 189, 288, 288, 288, 288, 288, + 288, 279, 263, 288, 215, 200, 212, 278, 324, 133, + 325, 288, 63, 129, 288, 288, 288, 288, 288, 288, + 288, 279, 263, 288, 288, 200, 212, 278, 324, 215, + 325, 182, 173, 288, 115, 288, 288, 50, 129, 288, + 288, 280, 288, 288, 36, 319, 279, 263, 288, 215, + 200, 212, 278, 324, 133, 325, 288, 78, 129, 189, + 288, 288, 288, 288, 288, 288, 279, 263, 288, 215, + 200, 212, 278, 324, 100, 325, 288, 72, 129, 288, + 288, 288, 288, 288, 288, 288, 279, 263, 288, 288, + 200, 212, 278, 324, 215, 325, 182, 162, 288, 133, + 288, 288, 74, 129, 288, 288, 280, 288, 288, 36, + 319, 279, 263, 288, 215, 200, 212, 278, 324, 133, + 325, 288, 65, 129, 189, 288, 288, 288, 288, 288, + 288, 279, 263, 288, 215, 200, 212, 278, 324, 133, + 325, 288, 57, 129, 288, 288, 288, 288, 288, 288, + 288, 279, 263, 209, 288, 200, 212, 278, 324, 215, + 325, 288, 288, 288, 133, 288, 288, 62, 129, 288, + 288, 288, 288, 288, 288, 288, 279, 263, 24, 288, + 200, 212, 278, 324, 12, 325, 288, 209, 288, 39, + 41, 44, 38, 288, 288, 288, 288, 314, 288, 288, + 288, 288, 288, 288, 9, 288, 332, 333, 331, 5, + 94, 288, 288, 288, 288, 130, 288, 288, 288, 234, + 288, 240, 256, 39, 41, 44, 38, 288, 288, 288, + 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, + 332, 333, 331, 288, 209, 215, 259, 303, 30, 307, + 142, 209, 288, 288, 129, 288, 209, 288, 190, 288, + 288, 288, 288, 258, 288, 288, 201, 212, 278, 324, + 288, 325, 288, 288, 288, 288, 288, 288, 288, 288, + 39, 41, 44, 38, 209, 288, 288, 39, 41, 44, + 38, 288, 39, 41, 44, 38, 288, 332, 333, 331, + 288, 288, 288, 334, 332, 333, 331, 209, 25, 332, + 333, 331, 209, 288, 251, 288, 209, 288, 193, 239, + 39, 41, 44, 38, 288, 288, 288, 288, 288, 288, + 288, 288, 288, 288, 288, 288, 288, 332, 333, 331, + 209, 288, 288, 39, 41, 44, 38, 209, 39, 41, + 44, 38, 39, 41, 44, 38, 288, 288, 288, 288, + 332, 333, 331, 288, 288, 332, 333, 331, 209, 332, + 333, 331, 288, 236, 288, 288, 39, 41, 44, 38, + 288, 288, 288, 39, 41, 44, 38, 288, 288, 288, + 288, 288, 288, 332, 333, 331, 288, 301, 288, 288, + 332, 333, 331, 288, 39, 41, 44, 38, 288, 288, + 288, 288, 288, 288, 182, 170, 288, 288, 288, 288, + 288, 332, 333, 331, 280, 288, 288, 36, 319, 288, + 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, + 288, 288, 189, + ); + static public $yy_lookahead = array( + 14, 15, 16, 46, 3, 19, 20, 15, 14, 52, + 16, 25, 14, 15, 16, 29, 30, 31, 77, 33, + 26, 35, 28, 22, 38, 14, 32, 16, 17, 43, + 44, 45, 46, 47, 93, 49, 35, 51, 52, 14, + 15, 16, 41, 57, 19, 20, 71, 70, 71, 48, + 25, 21, 70, 71, 29, 80, 31, 80, 33, 16, + 35, 50, 80, 38, 34, 83, 84, 99, 43, 44, + 45, 46, 47, 98, 49, 98, 51, 52, 53, 7, + 98, 71, 57, 14, 15, 16, 14, 71, 19, 20, + 80, 19, 20, 14, 25, 16, 80, 25, 29, 1, + 31, 29, 33, 31, 35, 26, 22, 38, 14, 93, + 16, 32, 43, 44, 45, 46, 47, 14, 49, 35, + 51, 52, 14, 15, 16, 41, 57, 19, 20, 57, + 58, 59, 48, 25, 46, 16, 70, 29, 35, 31, + 52, 33, 58, 35, 50, 14, 38, 16, 17, 83, + 84, 43, 44, 45, 46, 47, 14, 49, 16, 51, + 52, 14, 15, 16, 98, 57, 19, 20, 26, 50, + 28, 14, 25, 16, 32, 64, 29, 34, 31, 36, + 33, 14, 35, 16, 17, 38, 11, 12, 13, 22, + 43, 44, 45, 46, 47, 1, 49, 3, 51, 52, + 14, 15, 16, 1, 57, 19, 20, 50, 70, 71, + 73, 25, 16, 102, 103, 29, 2, 31, 80, 33, + 26, 35, 85, 86, 38, 18, 32, 90, 26, 43, + 44, 45, 46, 47, 32, 49, 98, 51, 52, 14, + 15, 16, 2, 57, 19, 20, 14, 15, 16, 26, + 25, 15, 16, 46, 29, 32, 31, 17, 33, 52, + 35, 17, 18, 38, 92, 33, 94, 95, 43, 44, + 45, 46, 47, 1, 49, 3, 51, 52, 14, 15, + 16, 71, 57, 19, 20, 49, 34, 51, 36, 25, + 80, 76, 48, 29, 26, 31, 70, 33, 26, 35, + 32, 22, 38, 93, 32, 28, 17, 43, 44, 45, + 46, 47, 35, 49, 35, 51, 52, 14, 15, 16, + 41, 57, 19, 20, 98, 48, 98, 48, 25, 94, + 95, 34, 29, 36, 31, 46, 33, 79, 35, 17, + 18, 38, 73, 74, 75, 64, 43, 44, 45, 46, + 47, 1, 49, 3, 51, 52, 14, 15, 16, 71, + 57, 19, 20, 63, 64, 65, 66, 25, 80, 65, + 48, 29, 68, 31, 64, 33, 26, 35, 79, 69, + 38, 93, 32, 73, 103, 43, 44, 45, 46, 47, + 22, 49, 82, 51, 34, 85, 86, 87, 88, 57, + 90, 3, 77, 35, 4, 5, 6, 7, 8, 9, + 10, 11, 71, 53, 14, 17, 48, 64, 93, 19, + 20, 80, 69, 16, 26, 25, 73, 64, 71, 29, + 32, 31, 69, 35, 93, 72, 73, 80, 85, 86, + 87, 88, 73, 90, 81, 82, 48, 71, 85, 86, + 87, 88, 64, 90, 85, 98, 80, 69, 35, 90, + 72, 73, 91, 100, 101, 79, 70, 70, 71, 81, + 82, 48, 35, 85, 86, 87, 88, 80, 90, 64, + 83, 84, 70, 46, 69, 48, 35, 72, 73, 101, + 53, 35, 15, 16, 98, 98, 81, 82, 71, 48, + 85, 86, 87, 88, 48, 90, 14, 80, 16, 64, + 98, 99, 97, 23, 69, 94, 95, 72, 73, 61, + 62, 63, 64, 65, 66, 98, 81, 82, 51, 64, + 85, 86, 87, 88, 69, 90, 15, 72, 73, 1, + 2, 14, 97, 16, 77, 15, 81, 82, 77, 64, + 85, 86, 87, 88, 69, 90, 35, 72, 73, 74, + 93, 14, 97, 16, 93, 77, 81, 82, 15, 16, + 85, 86, 87, 88, 64, 90, 1, 7, 3, 69, + 91, 93, 72, 73, 74, 37, 38, 39, 40, 70, + 71, 81, 82, 1, 77, 85, 86, 87, 88, 80, + 90, 26, 54, 55, 56, 1, 1, 32, 3, 91, + 93, 93, 37, 38, 39, 40, 64, 98, 1, 16, + 28, 69, 18, 2, 72, 73, 71, 1, 2, 54, + 55, 56, 26, 81, 82, 80, 78, 85, 86, 87, + 88, 24, 90, 26, 1, 1, 3, 3, 14, 32, + 16, 93, 89, 98, 37, 38, 39, 40, 91, 96, + 93, 35, 18, 37, 38, 39, 40, 15, 77, 26, + 26, 54, 55, 56, 48, 32, 32, 77, 64, 35, + 54, 55, 56, 69, 93, 46, 72, 73, 1, 64, + 18, 17, 48, 93, 69, 81, 82, 72, 73, 85, + 86, 87, 88, 1, 90, 3, 81, 82, 21, 71, + 85, 86, 87, 88, 64, 90, 35, 77, 80, 69, + 48, 3, 72, 73, 37, 38, 39, 40, 26, 27, + 77, 81, 82, 93, 32, 85, 86, 87, 88, 64, + 90, 54, 55, 56, 69, 89, 93, 72, 73, 73, + 74, 16, 96, 73, 74, 16, 81, 82, 70, 64, + 85, 86, 87, 88, 69, 90, 16, 72, 73, 64, + 15, 14, 35, 16, 69, 53, 81, 82, 73, 64, + 85, 86, 87, 88, 69, 90, 98, 72, 73, 36, + 85, 86, 87, 88, 51, 90, 81, 82, 16, 16, + 85, 86, 87, 88, 64, 90, 16, 33, 2, 69, + 15, 33, 72, 73, 51, 16, 3, 42, 3, 91, + 91, 81, 82, 92, 64, 85, 86, 87, 88, 69, + 90, 80, 72, 73, 64, 18, 91, 93, 96, 69, + 67, 81, 82, 73, 64, 85, 86, 87, 88, 69, + 90, 95, 72, 73, 12, 85, 86, 87, 88, 91, + 90, 81, 82, 76, 104, 85, 86, 87, 88, 64, + 90, 104, 104, 104, 69, 104, 104, 72, 73, 104, + 104, 104, 104, 104, 104, 104, 81, 82, 104, 64, + 85, 86, 87, 88, 69, 90, 104, 72, 73, 64, + 104, 104, 104, 104, 69, 104, 81, 82, 73, 64, + 85, 86, 87, 88, 69, 90, 104, 72, 73, 104, + 85, 86, 87, 88, 104, 90, 81, 82, 104, 104, + 85, 86, 87, 88, 64, 90, 104, 104, 104, 69, + 104, 104, 72, 73, 104, 104, 104, 104, 104, 104, + 104, 81, 82, 104, 64, 85, 86, 87, 88, 69, + 90, 104, 72, 73, 64, 104, 104, 104, 104, 69, + 104, 81, 82, 73, 64, 85, 86, 87, 88, 69, + 90, 104, 72, 73, 104, 85, 86, 87, 88, 104, + 90, 81, 82, 104, 104, 85, 86, 87, 88, 64, + 90, 104, 104, 104, 69, 104, 104, 72, 73, 104, + 104, 104, 104, 104, 104, 104, 81, 82, 104, 64, + 85, 86, 87, 88, 69, 90, 104, 72, 73, 64, + 104, 104, 104, 104, 69, 104, 81, 82, 73, 64, + 85, 86, 87, 88, 69, 90, 104, 72, 73, 104, + 85, 86, 87, 88, 104, 90, 81, 82, 104, 104, + 85, 86, 87, 88, 64, 90, 70, 71, 104, 69, + 104, 104, 72, 73, 104, 104, 80, 104, 104, 83, + 84, 81, 82, 104, 64, 85, 86, 87, 88, 69, + 90, 104, 72, 73, 98, 104, 104, 104, 104, 104, + 104, 81, 82, 104, 64, 85, 86, 87, 88, 69, + 90, 104, 72, 73, 104, 104, 104, 104, 104, 104, + 104, 81, 82, 104, 104, 85, 86, 87, 88, 64, + 90, 70, 71, 104, 69, 104, 104, 72, 73, 104, + 104, 80, 104, 104, 83, 84, 81, 82, 104, 64, + 85, 86, 87, 88, 69, 90, 104, 72, 73, 98, + 104, 104, 104, 104, 104, 104, 81, 82, 104, 64, + 85, 86, 87, 88, 69, 90, 104, 72, 73, 104, + 104, 104, 104, 104, 104, 104, 81, 82, 104, 104, + 85, 86, 87, 88, 64, 90, 70, 71, 104, 69, + 104, 104, 72, 73, 104, 104, 80, 104, 104, 83, + 84, 81, 82, 104, 64, 85, 86, 87, 88, 69, + 90, 104, 72, 73, 98, 104, 104, 104, 104, 104, + 104, 81, 82, 104, 64, 85, 86, 87, 88, 69, + 90, 104, 72, 73, 104, 104, 104, 104, 104, 104, + 104, 81, 82, 1, 104, 85, 86, 87, 88, 64, + 90, 104, 104, 104, 69, 104, 104, 72, 73, 104, + 104, 104, 104, 104, 104, 104, 81, 82, 26, 104, + 85, 86, 87, 88, 32, 90, 104, 1, 104, 37, + 38, 39, 40, 104, 104, 104, 104, 7, 104, 104, + 104, 104, 104, 104, 14, 104, 54, 55, 56, 19, + 20, 104, 104, 104, 104, 25, 104, 104, 104, 29, + 104, 31, 36, 37, 38, 39, 40, 104, 104, 104, + 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, + 54, 55, 56, 104, 1, 64, 3, 57, 58, 59, + 69, 1, 104, 104, 73, 104, 1, 104, 3, 104, + 104, 104, 104, 82, 104, 104, 85, 86, 87, 88, + 104, 90, 104, 104, 104, 104, 104, 104, 104, 104, + 37, 38, 39, 40, 1, 104, 104, 37, 38, 39, + 40, 104, 37, 38, 39, 40, 104, 54, 55, 56, + 104, 104, 104, 53, 54, 55, 56, 1, 2, 54, + 55, 56, 1, 104, 3, 104, 1, 104, 3, 36, + 37, 38, 39, 40, 104, 104, 104, 104, 104, 104, + 104, 104, 104, 104, 104, 104, 104, 54, 55, 56, + 1, 104, 104, 37, 38, 39, 40, 1, 37, 38, + 39, 40, 37, 38, 39, 40, 104, 104, 104, 104, + 54, 55, 56, 104, 104, 54, 55, 56, 1, 54, + 55, 56, 104, 27, 104, 104, 37, 38, 39, 40, + 104, 104, 104, 37, 38, 39, 40, 104, 104, 104, + 104, 104, 104, 54, 55, 56, 104, 58, 104, 104, + 54, 55, 56, 104, 37, 38, 39, 40, 104, 104, + 104, 104, 104, 104, 70, 71, 104, 104, 104, 104, + 104, 54, 55, 56, 80, 104, 104, 83, 84, 104, + 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, + 104, 104, 98, +); + const YY_SHIFT_USE_DFLT = -44; + const YY_SHIFT_MAX = 247; + static public $yy_shift_ofst = array( + 400, 303, 303, 108, 108, 264, 108, 264, 25, -14, + -14, 108, 108, 108, 108, 108, 108, 108, 108, 147, + 108, 108, 108, 108, 147, 108, 225, 108, 108, 108, + 108, 108, 186, 108, 108, 108, 108, 69, 69, 342, + 342, 342, 342, 342, 342, 575, 617, 1252, 1252, 1252, + 1252, 1252, 400, 1446, 1286, 1355, 1383, 1411, 1343, 1415, + 1439, 1406, 687, 1350, 1467, 1467, 1467, 1467, 1467, 1467, + 1467, 1467, 1467, 1467, 1467, 1467, 548, 644, 548, 236, + 194, 202, 72, 142, -6, 79, 272, 79, 272, 202, + 202, 207, 477, 538, 521, 1290, 702, 11, 350, 167, + 643, 322, 244, 157, 175, 131, 492, 492, 492, 492, + 553, 492, 547, 492, 527, 605, 223, 592, 492, 634, + 604, 757, 521, 492, 527, 553, 223, 521, 492, 672, + 268, 98, 98, 98, 98, 98, 817, 98, 98, 98, + 817, 98, -44, 94, -2, 223, -43, -43, 88, -43, + 223, -43, -43, 88, 223, -43, 223, 223, 223, 223, + 223, 103, 223, 223, -43, 223, 223, 223, 223, 223, + 223, 223, 223, 223, 223, 214, 817, 98, 817, 842, + 98, 817, 98, 606, 681, 98, 606, 214, 98, -44, + -44, -44, -44, -44, 626, 398, 84, 1, 437, 232, + 279, 368, 277, 143, 423, 360, 30, 297, 289, 119, + 240, 451, 456, 252, 795, 813, 778, 763, 743, 735, + 681, 603, 718, 739, 737, 755, 750, 790, 674, 722, + 639, 753, 799, 815, 783, 782, 652, 806, 774, 775, + 196, 43, 530, 490, 407, 621, 570, -8, +); + const YY_REDUCE_USE_DFLT = -60; + const YY_REDUCE_MAX = 193; + static public $yy_reduce_ofst = array( + 458, 363, 388, 445, 415, 510, 465, 485, 1040, 910, + 805, 890, 935, 845, 825, 740, 760, 780, 975, 955, + 1170, 1195, 1150, 1130, 1105, 1085, 1000, 1020, 715, 1065, + 870, 552, 695, 625, 675, 650, 614, 1281, 310, 965, + 900, 835, 353, 705, 770, 397, 1126, 996, -18, 397, + 1061, 1444, 300, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 519, 66, 137, + -23, 138, 111, 210, 288, 341, 427, 16, 555, -25, + 357, 172, 369, 412, 269, 281, 226, 567, 226, 558, + 226, 421, 421, 567, 304, 567, 488, 467, 517, 591, + 563, 518, 325, -59, 467, 226, 10, 226, 471, 467, + 688, 467, 680, 640, 653, 656, 376, 676, 600, 421, + 638, 226, 226, 226, 226, 226, 421, 396, 226, 226, + 235, 226, 226, 744, 742, 751, 731, 731, 745, 731, + 751, 731, 731, 729, 751, 731, 751, 751, 751, 751, + 751, 728, 751, 751, 731, 751, 751, 751, 751, 751, + 751, 751, 751, 751, 751, -32, 756, 228, 756, 773, + 228, 756, 228, 787, 768, 228, 215, -32, 228, 258, + 489, 386, 299, 371, +); + static public $yyExpectedTokens = array( + array(4, 5, 6, 7, 8, 9, 10, 11, 14, 19, 20, 25, 29, 31, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 52, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 52, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 52, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 52, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 52, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 52, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 52, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 52, 53, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 30, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 52, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 30, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 52, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 52, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 52, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 52, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 52, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 52, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 52, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 52, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 52, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 52, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 52, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 52, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 52, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 52, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 52, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 52, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 52, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 52, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 52, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 52, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 52, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 52, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 52, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 52, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 52, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 52, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 52, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 52, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 52, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 57, ), + array(14, 15, 16, 19, 20, 25, 29, 31, 33, 35, 38, 43, 44, 45, 46, 47, 49, 51, 57, ), + array(1, 3, 26, 32, 37, 38, 39, 40, 54, 55, 56, ), + array(1, 24, 26, 32, 37, 38, 39, 40, 54, 55, 56, ), + array(1, 26, 32, 37, 38, 39, 40, 54, 55, 56, ), + array(1, 26, 32, 37, 38, 39, 40, 54, 55, 56, ), + array(1, 26, 32, 37, 38, 39, 40, 54, 55, 56, ), + array(1, 26, 32, 37, 38, 39, 40, 54, 55, 56, ), + array(1, 26, 32, 37, 38, 39, 40, 54, 55, 56, ), + array(4, 5, 6, 7, 8, 9, 10, 11, 14, 19, 20, 25, 29, 31, ), + array(1, 27, 37, 38, 39, 40, 54, 55, 56, ), + array(1, 36, 37, 38, 39, 40, 54, 55, 56, ), + array(1, 3, 37, 38, 39, 40, 54, 55, 56, ), + array(1, 36, 37, 38, 39, 40, 54, 55, 56, ), + array(1, 3, 37, 38, 39, 40, 54, 55, 56, ), + array(1, 3, 37, 38, 39, 40, 54, 55, 56, ), + array(1, 3, 37, 38, 39, 40, 54, 55, 56, ), + array(1, 37, 38, 39, 40, 54, 55, 56, 58, ), + array(1, 2, 37, 38, 39, 40, 54, 55, 56, ), + array(1, 21, 37, 38, 39, 40, 54, 55, 56, ), + array(1, 37, 38, 39, 40, 53, 54, 55, 56, ), + array(1, 37, 38, 39, 40, 54, 55, 56, ), + array(1, 37, 38, 39, 40, 54, 55, 56, ), + array(1, 37, 38, 39, 40, 54, 55, 56, ), + array(1, 37, 38, 39, 40, 54, 55, 56, ), + array(1, 37, 38, 39, 40, 54, 55, 56, ), + array(1, 37, 38, 39, 40, 54, 55, 56, ), + array(1, 37, 38, 39, 40, 54, 55, 56, ), + array(1, 37, 38, 39, 40, 54, 55, 56, ), + array(1, 37, 38, 39, 40, 54, 55, 56, ), + array(1, 37, 38, 39, 40, 54, 55, 56, ), + array(1, 37, 38, 39, 40, 54, 55, 56, ), + array(1, 37, 38, 39, 40, 54, 55, 56, ), + array(37, 38, 39, 40, 54, 55, 56, ), + array(1, 3, 18, 26, 32, 35, 48, ), + array(37, 38, 39, 40, 54, 55, 56, ), + array(15, 16, 49, 51, ), + array(1, 3, 26, 32, ), + array(1, 26, 32, ), + array(7, 14, 19, 20, 25, 29, 31, 57, 58, 59, ), + array(14, 16, 26, 28, 32, ), + array(14, 16, 26, 28, 32, ), + array(14, 16, 26, 32, ), + array(1, 3, 26, 32, ), + array(14, 16, 26, 32, ), + array(1, 3, 26, 32, ), + array(1, 26, 32, ), + array(1, 26, 32, ), + array(18, 46, 52, ), + array(15, 16, 51, ), + array(1, 2, ), + array(15, 35, ), + array(7, 14, 19, 20, 25, 29, 31, 57, 58, 59, ), + array(1, 3, 26, 27, 32, ), + array(14, 16, 17, 50, ), + array(1, 3, 26, 32, ), + array(14, 16, 17, 22, ), + array(1, 3, 26, 32, ), + array(17, 18, 48, ), + array(17, 18, 48, ), + array(14, 16, 50, ), + array(11, 12, 13, ), + array(14, 16, 17, ), + array(14, 16, ), + array(14, 16, ), + array(14, 16, ), + array(14, 16, ), + array(15, 16, ), + array(14, 16, ), + array(14, 16, ), + array(14, 16, ), + array(14, 16, ), + array(1, 3, ), + array(26, 32, ), + array(1, 28, ), + array(14, 16, ), + array(14, 16, ), + array(1, 18, ), + array(14, 16, ), + array(15, 35, ), + array(14, 16, ), + array(14, 16, ), + array(15, 16, ), + array(26, 32, ), + array(15, 35, ), + array(14, 16, ), + array(18, 48, ), + array(26, 32, ), + array(1, ), + array(1, ), + array(1, ), + array(1, ), + array(1, ), + array(18, ), + array(1, ), + array(1, ), + array(1, ), + array(18, ), + array(1, ), + array(), + array(14, 16, 50, ), + array(14, 15, 16, ), + array(26, 32, ), + array(46, 52, ), + array(46, 52, ), + array(46, 52, ), + array(46, 52, ), + array(26, 32, ), + array(46, 52, ), + array(46, 52, ), + array(46, 52, ), + array(26, 32, ), + array(46, 52, ), + array(26, 32, ), + array(26, 32, ), + array(26, 32, ), + array(26, 32, ), + array(26, 32, ), + array(14, 35, ), + array(26, 32, ), + array(26, 32, ), + array(46, 52, ), + array(26, 32, ), + array(26, 32, ), + array(26, 32, ), + array(26, 32, ), + array(26, 32, ), + array(26, 32, ), + array(26, 32, ), + array(26, 32, ), + array(26, 32, ), + array(26, 32, ), + array(2, ), + array(18, ), + array(1, ), + array(18, ), + array(12, ), + array(1, ), + array(18, ), + array(1, ), + array(26, ), + array(35, ), + array(1, ), + array(26, ), + array(2, ), + array(1, ), + array(), + array(), + array(), + array(), + array(), + array(1, 2, 35, 37, 38, 39, 40, 48, 54, 55, 56, ), + array(3, 17, 26, 32, 35, 48, ), + array(22, 35, 41, 48, 58, ), + array(3, 22, 35, 41, 48, ), + array(35, 46, 48, 53, ), + array(14, 15, 16, 33, ), + array(22, 35, 41, 48, ), + array(22, 35, 48, ), + array(28, 35, 48, ), + array(34, 36, ), + array(35, 48, ), + array(34, 53, ), + array(21, 34, ), + array(34, 36, ), + array(17, 46, ), + array(16, 50, ), + array(2, 17, ), + array(35, 48, ), + array(35, 48, ), + array(34, 36, ), + array(15, ), + array(3, ), + array(33, ), + array(51, ), + array(51, ), + array(16, ), + array(35, ), + array(16, ), + array(3, ), + array(16, ), + array(35, ), + array(15, ), + array(16, ), + array(16, ), + array(17, ), + array(53, ), + array(46, ), + array(36, ), + array(16, ), + array(3, ), + array(16, ), + array(16, ), + array(15, ), + array(2, ), + array(33, ), + array(42, ), + array(16, ), + array(16, ), + array(15, ), + array(23, ), + array(16, ), + array(2, ), + array(7, ), + array(15, ), + 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(), +); + static public $yy_default = array( + 338, 500, 517, 480, 480, 517, 480, 517, 517, 517, + 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, + 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, + 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, + 517, 517, 517, 517, 517, 517, 393, 393, 370, 393, + 362, 393, 335, 398, 517, 517, 517, 517, 517, 517, + 517, 517, 517, 517, 395, 404, 400, 479, 414, 375, + 501, 502, 398, 503, 478, 403, 419, 431, 420, 517, + 406, 393, 517, 393, 393, 393, 413, 393, 438, 393, + 393, 492, 517, 384, 517, 517, 406, 453, 406, 517, + 406, 444, 444, 453, 517, 453, 517, 517, 517, 517, + 517, 453, 517, 517, 517, 406, 372, 406, 517, 517, + 387, 517, 517, 517, 517, 517, 393, 517, 517, 444, + 393, 409, 424, 406, 417, 423, 444, 389, 422, 410, + 489, 411, 487, 454, 517, 378, 451, 448, 449, 450, + 379, 473, 470, 447, 359, 472, 360, 382, 373, 374, + 380, 453, 377, 358, 471, 357, 369, 381, 368, 365, + 364, 371, 367, 363, 383, 481, 490, 385, 493, 353, + 390, 467, 413, 516, 453, 438, 516, 482, 388, 486, + 453, 486, 486, 453, 431, 431, 421, 421, 431, 517, + 421, 421, 431, 517, 431, 517, 517, 517, 427, 517, + 465, 439, 517, 517, 517, 517, 517, 517, 517, 517, + 465, 517, 517, 517, 491, 517, 517, 517, 517, 517, + 427, 517, 517, 517, 517, 517, 517, 465, 429, 433, + 517, 517, 517, 401, 517, 465, 344, 517, 405, 459, + 402, 466, 475, 476, 336, 460, 433, 394, 488, 458, + 515, 376, 462, 412, 484, 425, 426, 483, 485, 464, + 465, 428, 430, 452, 455, 463, 445, 408, 432, 407, + 392, 391, 342, 343, 346, 341, 340, 337, 339, 345, + 347, 352, 354, 355, 351, 350, 348, 349, 456, 457, + 506, 509, 508, 505, 504, 386, 511, 510, 513, 498, + 477, 474, 499, 497, 514, 507, 468, 512, 440, 415, + 416, 437, 436, 434, 435, 446, 469, 441, 442, 443, + 418, 496, 494, 495, 461, +); + const YYNOCODE = 105; const YYSTACKDEPTH = 500; - - const YYNSTATE = 361; - - const YYNRULE = 201; - - const YYERRORSYMBOL = 79; - + const YYNSTATE = 335; + const YYNRULE = 182; + const YYERRORSYMBOL = 60; const YYERRSYMDT = 'yy0'; - const YYFALLBACK = 0; - - public static $yyFallback = array(); - + public static $yyFallback = array( + ); public function Trace($TraceFILE, $zTracePrompt) { if (!$TraceFILE) { @@ -486,16 +1078,224 @@ class Smarty_Internal_Templateparser } 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', 'RDEL', 'COMMENT', 'PHP', 'XMLTAG', 'TEXT', 'STRIPON', 'STRIPOFF', 'BLOCKSOURCE', 'LITERALSTART', 'LITERALEND', 'LITERAL', 'LDEL', 'DOLLAR', 'ID', 'EQUAL', 'PTR', 'LDELIF', 'LDELFOR', 'SEMICOLON', 'INCDEC', 'TO', 'STEP', 'LDELFOREACH', 'SPACE', 'AS', 'APTR', 'LDELSETFILTER', 'SMARTYBLOCKCHILDPARENT', 'LDELSLASH', 'ATTR', 'INTEGER', 'COMMA', 'OPENP', 'CLOSEP', 'MATH', 'UNIMATH', 'ANDSYM', 'ISIN', 'ISDIVBY', 'ISNOTDIVBY', 'ISEVEN', 'ISNOTEVEN', 'ISEVENBY', 'ISNOTEVENBY', 'ISODD', 'ISNOTODD', 'ISODDBY', 'ISNOTODDBY', 'INSTANCEOF', 'QMARK', 'NOT', 'TYPECAST', 'HEX', 'DOT', 'SINGLEQUOTESTRING', 'DOUBLECOLON', 'NAMESPACE', 'AT', 'HATCH', 'OPENB', 'CLOSEB', 'EQUALS', 'NOTEQUALS', 'GREATERTHAN', 'LESSTHAN', 'GREATEREQUAL', 'LESSEQUAL', 'IDENTITY', 'NONEIDENTITY', 'MOD', 'LAND', 'LOR', 'LXOR', 'QUOTE', 'BACKTICK', 'DOLLARID', 'error', 'start', 'template', 'template_element', 'smartytag', 'literal', 'text_content', 'literal_elements', 'literal_element', 'value', 'modifierlist', 'attributes', 'expr', 'varindexed', 'statement', 'statements', 'optspace', 'varvar', 'foraction', 'modparameters', 'attribute', 'ternary', 'array', 'ifcond', 'lop', 'variable', 'ns1', 'function', 'doublequoted_with_quotes', 'static_class_access', 'object', 'arrayindex', 'indexdef', 'varvarele', 'objectchain', 'objectelement', 'method', 'params', 'modifier', 'modparameter', 'arrayelements', 'arrayelement', 'doublequoted', 'doublequotedcontent',); + public $yyTokenName = array( + '$', 'VERT', 'COLON', 'RDEL', + 'COMMENT', 'PHP', 'XMLTAG', 'TEXT', + 'STRIPON', 'STRIPOFF', 'BLOCKSOURCE', 'LITERALSTART', + 'LITERALEND', 'LITERAL', 'LDEL', 'DOLLAR', + 'ID', 'EQUAL', 'PTR', 'LDELIF', + 'LDELFOR', 'SEMICOLON', 'INCDEC', 'TO', + 'STEP', 'LDELFOREACH', 'SPACE', 'AS', + 'APTR', 'LDELSETFILTER', 'SMARTYBLOCKCHILDPARENT', 'LDELSLASH', + 'ATTR', 'INTEGER', 'COMMA', 'OPENP', + 'CLOSEP', 'MATH', 'UNIMATH', 'ANDSYM', + 'ISIN', 'INSTANCEOF', 'QMARK', 'NOT', + 'TYPECAST', 'HEX', 'DOT', 'SINGLEQUOTESTRING', + 'DOUBLECOLON', 'NAMESPACE', 'AT', 'HATCH', + 'OPENB', 'CLOSEB', 'LOGOP', 'TLOGOP', + 'SINGLECOND', 'QUOTE', 'BACKTICK', 'DOLLARID', + 'error', 'start', 'template', 'template_element', + 'smartytag', 'literal', 'text_content', 'literal_elements', + 'literal_element', 'value', 'modifierlist', 'attributes', + 'expr', 'varindexed', 'statement', 'statements', + 'optspace', 'varvar', 'foraction', 'modparameters', + 'attribute', 'ternary', 'array', 'lop', + 'scond', 'variable', 'ns1', 'function', + 'doublequoted_with_quotes', 'static_class_access', 'object', 'arrayindex', + 'indexdef', 'varvarele', 'objectchain', 'objectelement', + 'method', 'params', 'modifier', 'modparameter', + 'arrayelements', 'arrayelement', 'doublequoted', 'doublequotedcontent', + ); - public static $yyRuleName = array("start ::= template", "template ::= template_element", "template ::= template template_element", "template ::=", "template_element ::= smartytag RDEL", "template_element ::= COMMENT", "template_element ::= literal", "template_element ::= PHP", "template_element ::= XMLTAG", "template_element ::= text_content", "text_content ::= TEXT", "text_content ::= text_content TEXT", "template_element ::= STRIPON", "template_element ::= STRIPOFF", "template_element ::= BLOCKSOURCE", "literal ::= LITERALSTART LITERALEND", "literal ::= LITERALSTART literal_elements LITERALEND", "literal_elements ::= literal_elements literal_element", "literal_elements ::=", "literal_element ::= literal", "literal_element ::= LITERAL", "smartytag ::= LDEL value", "smartytag ::= LDEL value modifierlist attributes", "smartytag ::= LDEL value attributes", "smartytag ::= LDEL expr modifierlist attributes", "smartytag ::= LDEL expr attributes", "smartytag ::= LDEL DOLLAR ID EQUAL value", "smartytag ::= LDEL DOLLAR ID EQUAL expr", "smartytag ::= LDEL DOLLAR ID EQUAL expr attributes", "smartytag ::= LDEL varindexed EQUAL expr attributes", "smartytag ::= LDEL ID attributes", "smartytag ::= LDEL ID", "smartytag ::= LDEL ID modifierlist attributes", "smartytag ::= LDEL ID PTR ID attributes", "smartytag ::= LDEL ID PTR ID modifierlist attributes", "smartytag ::= LDELIF expr", "smartytag ::= LDELIF expr attributes", "smartytag ::= LDELIF statement", "smartytag ::= LDELIF statement attributes", "smartytag ::= LDELFOR statements SEMICOLON optspace expr SEMICOLON optspace DOLLAR varvar foraction attributes", "foraction ::= EQUAL expr", "foraction ::= INCDEC", "smartytag ::= LDELFOR statement TO expr attributes", "smartytag ::= LDELFOR statement TO expr STEP expr attributes", "smartytag ::= LDELFOREACH attributes", "smartytag ::= LDELFOREACH SPACE value AS DOLLAR varvar attributes", "smartytag ::= LDELFOREACH SPACE value AS DOLLAR varvar APTR DOLLAR varvar attributes", "smartytag ::= LDELFOREACH SPACE expr AS DOLLAR varvar attributes", "smartytag ::= LDELFOREACH SPACE expr AS DOLLAR varvar APTR DOLLAR varvar attributes", "smartytag ::= LDELSETFILTER ID modparameters", "smartytag ::= LDELSETFILTER ID modparameters modifierlist", "smartytag ::= LDEL SMARTYBLOCKCHILDPARENT", "smartytag ::= LDELSLASH ID", "smartytag ::= LDELSLASH ID modifierlist", "smartytag ::= LDELSLASH ID PTR ID", "smartytag ::= 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 ::= DOLLAR varvar EQUAL expr", "statement ::= varindexed EQUAL expr", "statement ::= OPENP statement CLOSEP", "expr ::= value", "expr ::= ternary", "expr ::= DOLLAR ID COLON ID", "expr ::= expr MATH value", "expr ::= expr UNIMATH value", "expr ::= expr ANDSYM value", "expr ::= array", "expr ::= expr modifierlist", "expr ::= expr ifcond expr", "expr ::= expr ISIN array", "expr ::= expr ISIN value", "expr ::= expr lop expr", "expr ::= expr ISDIVBY expr", "expr ::= expr ISNOTDIVBY expr", "expr ::= expr ISEVEN", "expr ::= expr ISNOTEVEN", "expr ::= expr ISEVENBY expr", "expr ::= expr ISNOTEVENBY expr", "expr ::= expr ISODD", "expr ::= expr ISNOTODD", "expr ::= expr ISODDBY expr", "expr ::= expr ISNOTODDBY expr", "expr ::= variable INSTANCEOF ns1", "ternary ::= OPENP expr CLOSEP QMARK DOLLAR ID 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 ::= SINGLEQUOTESTRING", "value ::= doublequoted_with_quotes", "value ::= varindexed DOUBLECOLON static_class_access", "value ::= smartytag RDEL", "value ::= value modifierlist", "value ::= NAMESPACE", "value ::= ns1 DOUBLECOLON static_class_access", "ns1 ::= ID", "ns1 ::= NAMESPACE", "ns1 ::= variable", "variable ::= varindexed", "variable ::= DOLLAR varvar AT ID", "variable ::= object", "variable ::= HATCH ID HATCH", "variable ::= HATCH ID HATCH arrayindex", "variable ::= HATCH variable HATCH", "variable ::= HATCH variable HATCH arrayindex", "varindexed ::= DOLLAR varvar arrayindex", "arrayindex ::= arrayindex indexdef", "arrayindex ::=", "indexdef ::= DOT DOLLAR varvar", "indexdef ::= DOT DOLLAR 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 expr CLOSEB", "indexdef ::= OPENB CLOSEB", "varvar ::= varvarele", "varvar ::= varvar varvarele", "varvarele ::= ID", "varvarele ::= LDEL expr RDEL", "object ::= varindexed objectchain", "objectchain ::= objectelement", "objectchain ::= objectchain objectelement", "objectelement ::= PTR ID arrayindex", "objectelement ::= PTR DOLLAR 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 ::= DOLLAR ID 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 array", "static_class_access ::= method", "static_class_access ::= method objectchain", "static_class_access ::= ID", "static_class_access ::= DOLLAR ID arrayindex", "static_class_access ::= DOLLAR ID arrayindex objectchain", "ifcond ::= EQUALS", "ifcond ::= NOTEQUALS", "ifcond ::= GREATERTHAN", "ifcond ::= LESSTHAN", "ifcond ::= GREATEREQUAL", "ifcond ::= LESSEQUAL", "ifcond ::= IDENTITY", "ifcond ::= NONEIDENTITY", "ifcond ::= MOD", "lop ::= LAND", "lop ::= LOR", "lop ::= LXOR", "array ::= OPENB arrayelements CLOSEB", "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 RDEL", "doublequotedcontent ::= TEXT", "optspace ::= SPACE", "optspace ::=",); + public static $yyRuleName = array( + "start ::= template", + "template ::= template_element", + "template ::= template template_element", + "template ::=", + "template_element ::= smartytag RDEL", + "template_element ::= COMMENT", + "template_element ::= literal", + "template_element ::= PHP", + "template_element ::= XMLTAG", + "template_element ::= text_content", + "text_content ::= TEXT", + "text_content ::= text_content TEXT", + "template_element ::= STRIPON", + "template_element ::= STRIPOFF", + "template_element ::= BLOCKSOURCE", + "literal ::= LITERALSTART LITERALEND", + "literal ::= LITERALSTART literal_elements LITERALEND", + "literal_elements ::= literal_elements literal_element", + "literal_elements ::=", + "literal_element ::= literal", + "literal_element ::= LITERAL", + "smartytag ::= LDEL value", + "smartytag ::= LDEL value modifierlist attributes", + "smartytag ::= LDEL value attributes", + "smartytag ::= LDEL expr modifierlist attributes", + "smartytag ::= LDEL expr attributes", + "smartytag ::= LDEL DOLLAR ID EQUAL value", + "smartytag ::= LDEL DOLLAR ID EQUAL expr", + "smartytag ::= LDEL DOLLAR ID EQUAL expr attributes", + "smartytag ::= LDEL varindexed EQUAL expr attributes", + "smartytag ::= LDEL ID attributes", + "smartytag ::= LDEL ID", + "smartytag ::= LDEL ID modifierlist attributes", + "smartytag ::= LDEL ID PTR ID attributes", + "smartytag ::= LDEL ID PTR ID modifierlist attributes", + "smartytag ::= LDELIF expr", + "smartytag ::= LDELIF expr attributes", + "smartytag ::= LDELIF statement", + "smartytag ::= LDELIF statement attributes", + "smartytag ::= LDELFOR statements SEMICOLON optspace expr SEMICOLON optspace DOLLAR varvar foraction attributes", + "foraction ::= EQUAL expr", + "foraction ::= INCDEC", + "smartytag ::= LDELFOR statement TO expr attributes", + "smartytag ::= LDELFOR statement TO expr STEP expr attributes", + "smartytag ::= LDELFOREACH attributes", + "smartytag ::= LDELFOREACH SPACE value AS DOLLAR varvar attributes", + "smartytag ::= LDELFOREACH SPACE value AS DOLLAR varvar APTR DOLLAR varvar attributes", + "smartytag ::= LDELFOREACH SPACE expr AS DOLLAR varvar attributes", + "smartytag ::= LDELFOREACH SPACE expr AS DOLLAR varvar APTR DOLLAR varvar attributes", + "smartytag ::= LDELSETFILTER ID modparameters", + "smartytag ::= LDELSETFILTER ID modparameters modifierlist", + "smartytag ::= LDEL SMARTYBLOCKCHILDPARENT", + "smartytag ::= LDELSLASH ID", + "smartytag ::= LDELSLASH ID modifierlist", + "smartytag ::= LDELSLASH ID PTR ID", + "smartytag ::= 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 ::= DOLLAR varvar EQUAL expr", + "statement ::= varindexed EQUAL expr", + "statement ::= OPENP statement CLOSEP", + "expr ::= value", + "expr ::= ternary", + "expr ::= DOLLAR ID COLON ID", + "expr ::= expr MATH value", + "expr ::= expr UNIMATH value", + "expr ::= expr ANDSYM value", + "expr ::= array", + "expr ::= expr modifierlist", + "expr ::= expr lop expr", + "expr ::= expr scond", + "expr ::= expr ISIN array", + "expr ::= expr ISIN value", + "expr ::= variable INSTANCEOF ns1", + "ternary ::= OPENP expr CLOSEP QMARK DOLLAR ID 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 ::= SINGLEQUOTESTRING", + "value ::= doublequoted_with_quotes", + "value ::= varindexed DOUBLECOLON static_class_access", + "value ::= smartytag RDEL", + "value ::= value modifierlist", + "value ::= NAMESPACE", + "value ::= ns1 DOUBLECOLON static_class_access", + "ns1 ::= ID", + "ns1 ::= NAMESPACE", + "ns1 ::= variable", + "variable ::= varindexed", + "variable ::= DOLLAR varvar AT ID", + "variable ::= object", + "variable ::= HATCH ID HATCH", + "variable ::= HATCH ID HATCH arrayindex", + "variable ::= HATCH variable HATCH", + "variable ::= HATCH variable HATCH arrayindex", + "varindexed ::= DOLLAR varvar arrayindex", + "arrayindex ::= arrayindex indexdef", + "arrayindex ::=", + "indexdef ::= DOT DOLLAR varvar", + "indexdef ::= DOT DOLLAR 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 expr CLOSEB", + "indexdef ::= OPENB CLOSEB", + "varvar ::= varvarele", + "varvar ::= varvar varvarele", + "varvarele ::= ID", + "varvarele ::= LDEL expr RDEL", + "object ::= varindexed objectchain", + "objectchain ::= objectelement", + "objectchain ::= objectchain objectelement", + "objectelement ::= PTR ID arrayindex", + "objectelement ::= PTR DOLLAR 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 ::= DOLLAR ID 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 array", + "static_class_access ::= method", + "static_class_access ::= method objectchain", + "static_class_access ::= ID", + "static_class_access ::= DOLLAR ID arrayindex", + "static_class_access ::= DOLLAR ID arrayindex objectchain", + "lop ::= LOGOP", + "lop ::= TLOGOP", + "scond ::= SINGLECOND", + "array ::= OPENB arrayelements CLOSEB", + "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 RDEL", + "doublequotedcontent ::= TEXT", + "optspace ::= SPACE", + "optspace ::=", + ); public function tokenName($tokenType) { @@ -512,8 +1312,7 @@ class Smarty_Internal_Templateparser public static function yy_destructor($yymajor, $yypminor) { switch ($yymajor) { - default: - break; /* If no destructor action specified: do nothing */ + default: break; /* If no destructor action specified: do nothing */ } } @@ -524,11 +1323,13 @@ class Smarty_Internal_Templateparser } $yytos = array_pop($this->yystack); if ($this->yyTraceFILE && $this->yyidx >= 0) { - fwrite($this->yyTraceFILE, $this->yyTracePrompt . 'Popping ' . $this->yyTokenName[$yytos->major] . "\n"); + fwrite($this->yyTraceFILE, + $this->yyTracePrompt . 'Popping ' . $this->yyTokenName[$yytos->major] . + "\n"); } $yymajor = $yytos->major; self::yy_destructor($yymajor, $yytos->minor); - $this->yyidx --; + $this->yyidx--; return $yymajor; } @@ -558,7 +1359,7 @@ class Smarty_Internal_Templateparser // reduce action $done = 0; do { - if ($done ++ == 100) { + if ($done++ == 100) { $this->yyidx = $yyidx; $this->yystack = $stack; // too much recursion prevents proper detection @@ -567,10 +1368,13 @@ class Smarty_Internal_Templateparser } $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]); + $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 (in_array($token, self::$yyExpectedTokens[$nextstate], true)) { + $expected = array_merge($expected, self::$yyExpectedTokens[$nextstate]); + if (in_array($token, + self::$yyExpectedTokens[$nextstate], true)) { $this->yyidx = $yyidx; $this->yystack = $stack; @@ -579,7 +1383,7 @@ class Smarty_Internal_Templateparser } if ($nextstate < self::YYNSTATE) { // we need to shift a non-terminal - $this->yyidx ++; + $this->yyidx++; $x = new TP_yyStackEntry; $x->stateno = $nextstate; $x->major = self::$yyRuleInfo[$yyruleno][0]; @@ -604,8 +1408,8 @@ class Smarty_Internal_Templateparser } break; } while (true); - $this->yyidx = $yyidx; - $this->yystack = $stack; + $this->yyidx = $yyidx; + $this->yystack = $stack; return array_unique($expected); } @@ -627,7 +1431,7 @@ class Smarty_Internal_Templateparser // reduce action $done = 0; do { - if ($done ++ == 100) { + if ($done++ == 100) { $this->yyidx = $yyidx; $this->yystack = $stack; // too much recursion prevents proper detection @@ -636,8 +1440,11 @@ class Smarty_Internal_Templateparser } $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]) && in_array($token, self::$yyExpectedTokens[$nextstate], true)) { + $nextstate = $this->yy_find_reduce_action( + $this->yystack[$this->yyidx]->stateno, + self::$yyRuleInfo[$yyruleno][0]); + if (isset(self::$yyExpectedTokens[$nextstate]) && + in_array($token, self::$yyExpectedTokens[$nextstate], true)) { $this->yyidx = $yyidx; $this->yystack = $stack; @@ -645,7 +1452,7 @@ class Smarty_Internal_Templateparser } if ($nextstate < self::YYNSTATE) { // we need to shift a non-terminal - $this->yyidx ++; + $this->yyidx++; $x = new TP_yyStackEntry; $x->stateno = $nextstate; $x->major = self::$yyRuleInfo[$yyruleno][0]; @@ -680,7 +1487,7 @@ class Smarty_Internal_Templateparser return true; } - public function yy_find_shift_action($iLookAhead) + public function yy_find_shift_action($iLookAhead) { $stateno = $this->yystack[$this->yyidx]->stateno; @@ -697,10 +1504,14 @@ class Smarty_Internal_Templateparser 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 ($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"); + fwrite($this->yyTraceFILE, $this->yyTracePrompt . "FALLBACK " . + $this->yyTokenName[$iLookAhead] . " => " . + $this->yyTokenName[$iFallback] . "\n"); } return $this->yy_find_shift_action($iFallback); @@ -727,7 +1538,8 @@ class Smarty_Internal_Templateparser return self::YY_NO_ACTION; } $i += $iLookAhead; - if ($i < 0 || $i >= self::YY_SZ_ACTTAB || self::$yy_lookahead[$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]; @@ -736,19 +1548,19 @@ class Smarty_Internal_Templateparser public function yy_shift($yyNewState, $yyMajor, $yypMinor) { - $this->yyidx ++; + $this->yyidx++; if ($this->yyidx >= self::YYSTACKDEPTH) { - $this->yyidx --; + $this->yyidx--; if ($this->yyTraceFILE) { fprintf($this->yyTraceFILE, "%sStack Overflow!\n", $this->yyTracePrompt); } while ($this->yyidx >= 0) { $this->yy_pop_parser_stack(); } - #line 203 "../smarty/lexer/smarty_internal_templateparser.y" +#line 203 "../smarty/lexer/smarty_internal_templateparser.y" - $this->internalError = true; - $this->compiler->trigger_template_error("Stack overflow in template parser"); + $this->internalError = true; + $this->compiler->trigger_template_error("Stack overflow in template parser"); return; } @@ -758,1047 +1570,1096 @@ class Smarty_Internal_Templateparser $yytos->minor = $yypMinor; array_push($this->yystack, $yytos); if ($this->yyTraceFILE && $this->yyidx > 0) { - fprintf($this->yyTraceFILE, "%sShift %d\n", $this->yyTracePrompt, $yyNewState); + 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]); + for ($i = 1; $i <= $this->yyidx; $i++) { + fprintf($this->yyTraceFILE, " %s", + $this->yyTokenName[$this->yystack[$i]->major]); } - fwrite($this->yyTraceFILE, "\n"); + fwrite($this->yyTraceFILE,"\n"); } } - public static $yyRuleInfo = array(array(0 => 80, 1 => 1), array(0 => 81, 1 => 1), array(0 => 81, 1 => 2), array(0 => 81, 1 => 0), array(0 => 82, 1 => 2), array(0 => 82, 1 => 1), array(0 => 82, 1 => 1), array(0 => 82, 1 => 1), array(0 => 82, 1 => 1), array(0 => 82, 1 => 1), array(0 => 85, 1 => 1), array(0 => 85, 1 => 2), array(0 => 82, 1 => 1), array(0 => 82, 1 => 1), array(0 => 82, 1 => 1), array(0 => 84, 1 => 2), array(0 => 84, 1 => 3), array(0 => 86, 1 => 2), array(0 => 86, 1 => 0), array(0 => 87, 1 => 1), array(0 => 87, 1 => 1), array(0 => 83, 1 => 2), array(0 => 83, 1 => 4), array(0 => 83, 1 => 3), array(0 => 83, 1 => 4), array(0 => 83, 1 => 3), array(0 => 83, 1 => 5), array(0 => 83, 1 => 5), array(0 => 83, 1 => 6), array(0 => 83, 1 => 5), array(0 => 83, 1 => 3), array(0 => 83, 1 => 2), array(0 => 83, 1 => 4), array(0 => 83, 1 => 5), array(0 => 83, 1 => 6), array(0 => 83, 1 => 2), array(0 => 83, 1 => 3), array(0 => 83, 1 => 2), array(0 => 83, 1 => 3), array(0 => 83, 1 => 11), array(0 => 97, 1 => 2), array(0 => 97, 1 => 1), array(0 => 83, 1 => 5), array(0 => 83, 1 => 7), array(0 => 83, 1 => 2), array(0 => 83, 1 => 7), array(0 => 83, 1 => 10), array(0 => 83, 1 => 7), array(0 => 83, 1 => 10), array(0 => 83, 1 => 3), array(0 => 83, 1 => 4), array(0 => 83, 1 => 2), array(0 => 83, 1 => 2), array(0 => 83, 1 => 3), array(0 => 83, 1 => 4), array(0 => 83, 1 => 5), array(0 => 90, 1 => 2), array(0 => 90, 1 => 1), array(0 => 90, 1 => 0), array(0 => 99, 1 => 4), array(0 => 99, 1 => 2), array(0 => 99, 1 => 2), array(0 => 99, 1 => 2), array(0 => 99, 1 => 2), array(0 => 99, 1 => 2), array(0 => 99, 1 => 4), array(0 => 94, 1 => 1), array(0 => 94, 1 => 3), array(0 => 93, 1 => 4), array(0 => 93, 1 => 3), array(0 => 93, 1 => 3), array(0 => 91, 1 => 1), array(0 => 91, 1 => 1), array(0 => 91, 1 => 4), array(0 => 91, 1 => 3), array(0 => 91, 1 => 3), array(0 => 91, 1 => 3), array(0 => 91, 1 => 1), array(0 => 91, 1 => 2), array(0 => 91, 1 => 3), array(0 => 91, 1 => 3), array(0 => 91, 1 => 3), array(0 => 91, 1 => 3), array(0 => 91, 1 => 3), array(0 => 91, 1 => 3), array(0 => 91, 1 => 2), array(0 => 91, 1 => 2), array(0 => 91, 1 => 3), array(0 => 91, 1 => 3), array(0 => 91, 1 => 2), array(0 => 91, 1 => 2), array(0 => 91, 1 => 3), array(0 => 91, 1 => 3), array(0 => 91, 1 => 3), array(0 => 100, 1 => 8), array(0 => 100, 1 => 7), array(0 => 88, 1 => 1), array(0 => 88, 1 => 2), array(0 => 88, 1 => 2), array(0 => 88, 1 => 2), array(0 => 88, 1 => 2), array(0 => 88, 1 => 1), array(0 => 88, 1 => 1), array(0 => 88, 1 => 3), array(0 => 88, 1 => 2), array(0 => 88, 1 => 2), array(0 => 88, 1 => 1), array(0 => 88, 1 => 1), array(0 => 88, 1 => 3), array(0 => 88, 1 => 1), array(0 => 88, 1 => 1), array(0 => 88, 1 => 3), array(0 => 88, 1 => 2), array(0 => 88, 1 => 2), array(0 => 88, 1 => 1), array(0 => 88, 1 => 3), array(0 => 105, 1 => 1), array(0 => 105, 1 => 1), array(0 => 105, 1 => 1), array(0 => 104, 1 => 1), array(0 => 104, 1 => 4), array(0 => 104, 1 => 1), array(0 => 104, 1 => 3), array(0 => 104, 1 => 4), array(0 => 104, 1 => 3), array(0 => 104, 1 => 4), array(0 => 92, 1 => 3), array(0 => 110, 1 => 2), array(0 => 110, 1 => 0), array(0 => 111, 1 => 3), array(0 => 111, 1 => 5), array(0 => 111, 1 => 2), array(0 => 111, 1 => 2), array(0 => 111, 1 => 4), array(0 => 111, 1 => 3), array(0 => 111, 1 => 5), array(0 => 111, 1 => 3), array(0 => 111, 1 => 2), array(0 => 96, 1 => 1), array(0 => 96, 1 => 2), array(0 => 112, 1 => 1), array(0 => 112, 1 => 3), array(0 => 109, 1 => 2), array(0 => 113, 1 => 1), array(0 => 113, 1 => 2), array(0 => 114, 1 => 3), array(0 => 114, 1 => 4), array(0 => 114, 1 => 5), array(0 => 114, 1 => 6), array(0 => 114, 1 => 2), array(0 => 106, 1 => 4), array(0 => 115, 1 => 4), array(0 => 115, 1 => 5), array(0 => 116, 1 => 3), array(0 => 116, 1 => 1), array(0 => 116, 1 => 0), array(0 => 89, 1 => 3), array(0 => 89, 1 => 2), array(0 => 117, 1 => 3), array(0 => 117, 1 => 2), array(0 => 98, 1 => 2), array(0 => 98, 1 => 0), array(0 => 118, 1 => 2), array(0 => 118, 1 => 2), array(0 => 108, 1 => 1), array(0 => 108, 1 => 2), array(0 => 108, 1 => 1), array(0 => 108, 1 => 3), array(0 => 108, 1 => 4), array(0 => 102, 1 => 1), array(0 => 102, 1 => 1), array(0 => 102, 1 => 1), array(0 => 102, 1 => 1), array(0 => 102, 1 => 1), array(0 => 102, 1 => 1), array(0 => 102, 1 => 1), array(0 => 102, 1 => 1), array(0 => 102, 1 => 1), array(0 => 103, 1 => 1), array(0 => 103, 1 => 1), array(0 => 103, 1 => 1), array(0 => 101, 1 => 3), array(0 => 119, 1 => 1), array(0 => 119, 1 => 3), array(0 => 119, 1 => 0), array(0 => 120, 1 => 3), array(0 => 120, 1 => 3), array(0 => 120, 1 => 1), array(0 => 107, 1 => 2), array(0 => 107, 1 => 3), array(0 => 121, 1 => 2), array(0 => 121, 1 => 1), array(0 => 122, 1 => 3), array(0 => 122, 1 => 3), array(0 => 122, 1 => 1), array(0 => 122, 1 => 3), array(0 => 122, 1 => 3), array(0 => 122, 1 => 2), array(0 => 122, 1 => 1), array(0 => 95, 1 => 1), array(0 => 95, 1 => 0),); + public static $yyRuleInfo = array( + array( 0 => 61, 1 => 1 ), + array( 0 => 62, 1 => 1 ), + array( 0 => 62, 1 => 2 ), + array( 0 => 62, 1 => 0 ), + array( 0 => 63, 1 => 2 ), + array( 0 => 63, 1 => 1 ), + array( 0 => 63, 1 => 1 ), + array( 0 => 63, 1 => 1 ), + array( 0 => 63, 1 => 1 ), + array( 0 => 63, 1 => 1 ), + array( 0 => 66, 1 => 1 ), + array( 0 => 66, 1 => 2 ), + array( 0 => 63, 1 => 1 ), + array( 0 => 63, 1 => 1 ), + array( 0 => 63, 1 => 1 ), + array( 0 => 65, 1 => 2 ), + array( 0 => 65, 1 => 3 ), + array( 0 => 67, 1 => 2 ), + array( 0 => 67, 1 => 0 ), + array( 0 => 68, 1 => 1 ), + array( 0 => 68, 1 => 1 ), + array( 0 => 64, 1 => 2 ), + array( 0 => 64, 1 => 4 ), + array( 0 => 64, 1 => 3 ), + array( 0 => 64, 1 => 4 ), + array( 0 => 64, 1 => 3 ), + array( 0 => 64, 1 => 5 ), + array( 0 => 64, 1 => 5 ), + array( 0 => 64, 1 => 6 ), + array( 0 => 64, 1 => 5 ), + array( 0 => 64, 1 => 3 ), + array( 0 => 64, 1 => 2 ), + array( 0 => 64, 1 => 4 ), + array( 0 => 64, 1 => 5 ), + array( 0 => 64, 1 => 6 ), + array( 0 => 64, 1 => 2 ), + array( 0 => 64, 1 => 3 ), + array( 0 => 64, 1 => 2 ), + array( 0 => 64, 1 => 3 ), + array( 0 => 64, 1 => 11 ), + array( 0 => 78, 1 => 2 ), + array( 0 => 78, 1 => 1 ), + array( 0 => 64, 1 => 5 ), + array( 0 => 64, 1 => 7 ), + array( 0 => 64, 1 => 2 ), + array( 0 => 64, 1 => 7 ), + array( 0 => 64, 1 => 10 ), + array( 0 => 64, 1 => 7 ), + array( 0 => 64, 1 => 10 ), + array( 0 => 64, 1 => 3 ), + array( 0 => 64, 1 => 4 ), + array( 0 => 64, 1 => 2 ), + array( 0 => 64, 1 => 2 ), + array( 0 => 64, 1 => 3 ), + array( 0 => 64, 1 => 4 ), + array( 0 => 64, 1 => 5 ), + array( 0 => 71, 1 => 2 ), + array( 0 => 71, 1 => 1 ), + array( 0 => 71, 1 => 0 ), + array( 0 => 80, 1 => 4 ), + array( 0 => 80, 1 => 2 ), + array( 0 => 80, 1 => 2 ), + array( 0 => 80, 1 => 2 ), + array( 0 => 80, 1 => 2 ), + array( 0 => 80, 1 => 2 ), + array( 0 => 80, 1 => 4 ), + array( 0 => 75, 1 => 1 ), + array( 0 => 75, 1 => 3 ), + array( 0 => 74, 1 => 4 ), + array( 0 => 74, 1 => 3 ), + array( 0 => 74, 1 => 3 ), + array( 0 => 72, 1 => 1 ), + array( 0 => 72, 1 => 1 ), + array( 0 => 72, 1 => 4 ), + array( 0 => 72, 1 => 3 ), + array( 0 => 72, 1 => 3 ), + array( 0 => 72, 1 => 3 ), + array( 0 => 72, 1 => 1 ), + array( 0 => 72, 1 => 2 ), + array( 0 => 72, 1 => 3 ), + array( 0 => 72, 1 => 2 ), + array( 0 => 72, 1 => 3 ), + array( 0 => 72, 1 => 3 ), + array( 0 => 72, 1 => 3 ), + array( 0 => 81, 1 => 8 ), + array( 0 => 81, 1 => 7 ), + array( 0 => 69, 1 => 1 ), + array( 0 => 69, 1 => 2 ), + array( 0 => 69, 1 => 2 ), + array( 0 => 69, 1 => 2 ), + array( 0 => 69, 1 => 2 ), + array( 0 => 69, 1 => 1 ), + array( 0 => 69, 1 => 1 ), + array( 0 => 69, 1 => 3 ), + array( 0 => 69, 1 => 2 ), + array( 0 => 69, 1 => 2 ), + array( 0 => 69, 1 => 1 ), + array( 0 => 69, 1 => 1 ), + array( 0 => 69, 1 => 3 ), + array( 0 => 69, 1 => 1 ), + array( 0 => 69, 1 => 1 ), + array( 0 => 69, 1 => 3 ), + array( 0 => 69, 1 => 2 ), + array( 0 => 69, 1 => 2 ), + array( 0 => 69, 1 => 1 ), + array( 0 => 69, 1 => 3 ), + array( 0 => 86, 1 => 1 ), + array( 0 => 86, 1 => 1 ), + array( 0 => 86, 1 => 1 ), + array( 0 => 85, 1 => 1 ), + array( 0 => 85, 1 => 4 ), + array( 0 => 85, 1 => 1 ), + array( 0 => 85, 1 => 3 ), + array( 0 => 85, 1 => 4 ), + array( 0 => 85, 1 => 3 ), + array( 0 => 85, 1 => 4 ), + array( 0 => 73, 1 => 3 ), + array( 0 => 91, 1 => 2 ), + array( 0 => 91, 1 => 0 ), + array( 0 => 92, 1 => 3 ), + array( 0 => 92, 1 => 5 ), + array( 0 => 92, 1 => 2 ), + array( 0 => 92, 1 => 2 ), + array( 0 => 92, 1 => 4 ), + array( 0 => 92, 1 => 3 ), + array( 0 => 92, 1 => 5 ), + array( 0 => 92, 1 => 3 ), + array( 0 => 92, 1 => 2 ), + array( 0 => 77, 1 => 1 ), + array( 0 => 77, 1 => 2 ), + array( 0 => 93, 1 => 1 ), + array( 0 => 93, 1 => 3 ), + array( 0 => 90, 1 => 2 ), + array( 0 => 94, 1 => 1 ), + array( 0 => 94, 1 => 2 ), + array( 0 => 95, 1 => 3 ), + array( 0 => 95, 1 => 4 ), + array( 0 => 95, 1 => 5 ), + array( 0 => 95, 1 => 6 ), + array( 0 => 95, 1 => 2 ), + array( 0 => 87, 1 => 4 ), + array( 0 => 96, 1 => 4 ), + array( 0 => 96, 1 => 5 ), + array( 0 => 97, 1 => 3 ), + array( 0 => 97, 1 => 1 ), + array( 0 => 97, 1 => 0 ), + array( 0 => 70, 1 => 3 ), + array( 0 => 70, 1 => 2 ), + array( 0 => 98, 1 => 3 ), + array( 0 => 98, 1 => 2 ), + array( 0 => 79, 1 => 2 ), + array( 0 => 79, 1 => 0 ), + array( 0 => 99, 1 => 2 ), + array( 0 => 99, 1 => 2 ), + array( 0 => 89, 1 => 1 ), + array( 0 => 89, 1 => 2 ), + array( 0 => 89, 1 => 1 ), + array( 0 => 89, 1 => 3 ), + array( 0 => 89, 1 => 4 ), + array( 0 => 83, 1 => 1 ), + array( 0 => 83, 1 => 1 ), + array( 0 => 84, 1 => 1 ), + array( 0 => 82, 1 => 3 ), + array( 0 => 100, 1 => 1 ), + array( 0 => 100, 1 => 3 ), + array( 0 => 100, 1 => 0 ), + array( 0 => 101, 1 => 3 ), + array( 0 => 101, 1 => 3 ), + array( 0 => 101, 1 => 1 ), + array( 0 => 88, 1 => 2 ), + array( 0 => 88, 1 => 3 ), + array( 0 => 102, 1 => 2 ), + array( 0 => 102, 1 => 1 ), + array( 0 => 103, 1 => 3 ), + array( 0 => 103, 1 => 3 ), + array( 0 => 103, 1 => 1 ), + array( 0 => 103, 1 => 3 ), + array( 0 => 103, 1 => 3 ), + array( 0 => 103, 1 => 2 ), + array( 0 => 103, 1 => 1 ), + array( 0 => 76, 1 => 1 ), + array( 0 => 76, 1 => 0 ), + ); - public static $yyReduceMap = array(0 => 0, 1 => 1, 2 => 2, 4 => 4, 5 => 5, 6 => 6, 7 => 7, 8 => 8, 9 => 9, 10 => 10, 19 => 10, 20 => 10, 41 => 10, 63 => 10, 64 => 10, 71 => 10, 72 => 10, 77 => 10, 96 => 10, 101 => 10, 102 => 10, 107 => 10, 109 => 10, 110 => 10, 114 => 10, 116 => 10, 117 => 10, 118 => 10, 121 => 10, 138 => 10, 182 => 10, 187 => 10, 199 => 10, 11 => 11, 12 => 12, 13 => 13, 14 => 14, 15 => 15, 18 => 15, 200 => 15, 16 => 16, 70 => 16, 17 => 17, 97 => 17, 99 => 17, 100 => 17, 127 => 17, 21 => 21, 22 => 22, 23 => 23, 25 => 23, 24 => 24, 26 => 26, 27 => 26, 28 => 28, 29 => 29, 30 => 30, 31 => 31, 32 => 32, 33 => 33, 34 => 34, 35 => 35, 36 => 36, 38 => 36, 37 => 37, 39 => 39, 40 => 40, 42 => 42, 43 => 43, 44 => 44, 45 => 45, 47 => 45, 46 => 46, 48 => 46, 49 => 49, 50 => 50, 51 => 51, 52 => 52, 53 => 53, 54 => 54, 55 => 55, 56 => 56, 57 => 57, 66 => 57, 154 => 57, 158 => 57, 162 => 57, 163 => 57, 58 => 58, 155 => 58, 161 => 58, 59 => 59, 60 => 60, 61 => 60, 62 => 62, 65 => 65, 67 => 67, 68 => 68, 69 => 68, 73 => 73, 74 => 74, 75 => 74, 76 => 74, 78 => 78, 113 => 78, 79 => 79, 82 => 79, 80 => 80, 81 => 81, 83 => 83, 84 => 84, 85 => 85, 90 => 85, 86 => 86, 89 => 86, 87 => 87, 92 => 87, 88 => 88, 91 => 88, 93 => 93, 94 => 94, 95 => 95, 98 => 98, 103 => 103, 104 => 104, 105 => 105, 106 => 106, 108 => 108, 111 => 111, 112 => 112, 115 => 115, 119 => 119, 120 => 120, 122 => 122, 123 => 123, 124 => 124, 125 => 125, 126 => 126, 128 => 128, 184 => 128, 129 => 129, 130 => 130, 131 => 131, 132 => 132, 133 => 133, 136 => 133, 134 => 134, 135 => 135, 137 => 137, 139 => 139, 140 => 140, 141 => 141, 142 => 142, 143 => 143, 144 => 144, 145 => 145, 146 => 146, 147 => 147, 148 => 148, 149 => 149, 150 => 150, 151 => 151, 152 => 152, 153 => 153, 156 => 156, 157 => 157, 159 => 159, 160 => 160, 164 => 164, 165 => 165, 166 => 166, 167 => 167, 168 => 168, 169 => 169, 170 => 170, 171 => 171, 172 => 172, 173 => 173, 174 => 174, 175 => 175, 176 => 176, 177 => 177, 178 => 178, 179 => 179, 180 => 180, 181 => 181, 183 => 183, 185 => 185, 186 => 186, 188 => 188, 189 => 189, 190 => 190, 191 => 191, 192 => 192, 193 => 192, 195 => 192, 194 => 194, 196 => 196, 197 => 197, 198 => 198,); - - #line 214 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r0() - { - $this->_retvalue = $this->root_buffer->to_smarty_php(); + public static $yyReduceMap = array( + 0 => 0, + 1 => 1, + 2 => 2, + 4 => 4, + 5 => 5, + 6 => 6, + 7 => 7, + 8 => 8, + 9 => 9, + 10 => 10, + 19 => 10, + 20 => 10, + 41 => 10, + 63 => 10, + 64 => 10, + 71 => 10, + 72 => 10, + 77 => 10, + 86 => 10, + 91 => 10, + 92 => 10, + 97 => 10, + 99 => 10, + 100 => 10, + 104 => 10, + 106 => 10, + 107 => 10, + 108 => 10, + 111 => 10, + 128 => 10, + 163 => 10, + 168 => 10, + 180 => 10, + 11 => 11, + 12 => 12, + 13 => 13, + 14 => 14, + 15 => 15, + 18 => 15, + 181 => 15, + 16 => 16, + 70 => 16, + 17 => 17, + 87 => 17, + 89 => 17, + 90 => 17, + 117 => 17, + 21 => 21, + 22 => 22, + 23 => 23, + 25 => 23, + 24 => 24, + 26 => 26, + 27 => 26, + 28 => 28, + 29 => 29, + 30 => 30, + 31 => 31, + 32 => 32, + 33 => 33, + 34 => 34, + 35 => 35, + 36 => 36, + 38 => 36, + 37 => 37, + 39 => 39, + 40 => 40, + 42 => 42, + 43 => 43, + 44 => 44, + 45 => 45, + 47 => 45, + 46 => 46, + 48 => 46, + 49 => 49, + 50 => 50, + 51 => 51, + 52 => 52, + 53 => 53, + 54 => 54, + 55 => 55, + 56 => 56, + 57 => 57, + 66 => 57, + 144 => 57, + 148 => 57, + 152 => 57, + 153 => 57, + 58 => 58, + 145 => 58, + 151 => 58, + 59 => 59, + 60 => 60, + 61 => 60, + 62 => 62, + 65 => 65, + 67 => 67, + 68 => 68, + 69 => 68, + 73 => 73, + 74 => 74, + 75 => 74, + 76 => 74, + 78 => 78, + 103 => 78, + 79 => 79, + 80 => 80, + 81 => 81, + 82 => 82, + 83 => 83, + 84 => 84, + 85 => 85, + 88 => 88, + 93 => 93, + 94 => 94, + 95 => 95, + 96 => 96, + 98 => 98, + 101 => 101, + 102 => 102, + 105 => 105, + 109 => 109, + 110 => 110, + 112 => 112, + 113 => 113, + 114 => 114, + 115 => 115, + 116 => 116, + 118 => 118, + 165 => 118, + 119 => 119, + 120 => 120, + 121 => 121, + 122 => 122, + 123 => 123, + 126 => 123, + 124 => 124, + 125 => 125, + 127 => 127, + 129 => 129, + 130 => 130, + 131 => 131, + 132 => 132, + 133 => 133, + 134 => 134, + 135 => 135, + 136 => 136, + 137 => 137, + 138 => 138, + 139 => 139, + 140 => 140, + 141 => 141, + 142 => 142, + 143 => 143, + 146 => 146, + 147 => 147, + 149 => 149, + 150 => 150, + 154 => 154, + 155 => 155, + 156 => 156, + 157 => 157, + 158 => 158, + 159 => 159, + 160 => 160, + 161 => 161, + 162 => 162, + 164 => 164, + 166 => 166, + 167 => 167, + 169 => 169, + 170 => 170, + 171 => 171, + 172 => 172, + 173 => 173, + 174 => 173, + 176 => 173, + 175 => 175, + 177 => 177, + 178 => 178, + 179 => 179, + ); +#line 214 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r0(){ + $this->_retvalue = $this->root_buffer->to_smarty_php(); } - - #line 222 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r1() - { - if ($this->yystack[$this->yyidx + 0]->minor != null) { - $this->current_buffer->append_subtree($this->yystack[$this->yyidx + 0]->minor); - } +#line 222 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r1(){ + if ($this->yystack[$this->yyidx + 0]->minor != null) { + $this->current_buffer->append_subtree($this->yystack[$this->yyidx + 0]->minor); } - - #line 229 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r2() - { - if ($this->yystack[$this->yyidx + 0]->minor != null) { - // because of possible code injection - $this->current_buffer->append_subtree($this->yystack[$this->yyidx + 0]->minor); - } } - - #line 243 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r4() - { - if ($this->compiler->has_code) { - $this->_retvalue = $this->mergePrefixCode($this->yystack[$this->yyidx + - 1]->minor); - } else { - $this->_retvalue = null; - } - $this->compiler->has_variable_string = false; - $this->block_nesting_level = count($this->compiler->_tag_stack); +#line 229 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r2(){ + if ($this->yystack[$this->yyidx + 0]->minor != null) { + // because of possible code injection + $this->current_buffer->append_subtree($this->yystack[$this->yyidx + 0]->minor); } - - #line 254 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r5() - { + } +#line 243 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r4(){ + if ($this->compiler->has_code) { + $this->_retvalue = $this->mergePrefixCode($this->yystack[$this->yyidx + -1]->minor); + } else { + $this->_retvalue = null; + } + $this->compiler->has_variable_string = false; + $this->block_nesting_level = count($this->compiler->_tag_stack); + } +#line 254 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r5(){ + $this->_retvalue = null; + } +#line 259 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r6(){ + $this->_retvalue = new Smarty_Internal_ParseTree_Text($this, $this->yystack[$this->yyidx + 0]->minor); + } +#line 263 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r7(){ + $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->_retvalue = new Smarty_Internal_ParseTree_Tag($this, $this->compiler->processNocacheCode($tmp.$code,true)); + } else { $this->_retvalue = null; } - - #line 259 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r6() - { - $this->_retvalue = new Smarty_Internal_ParseTree_Text($this, $this->yystack[$this->yyidx + 0]->minor); } - - #line 263 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r7() - { - $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->_retvalue = new Smarty_Internal_ParseTree_Tag($this, $this->compiler->processNocacheCode($tmp . $code, true)); - } else { - $this->_retvalue = null; - } +#line 276 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r8(){ + $this->compiler->tag_nocache = true; + $xml = $this->yystack[$this->yyidx + 0]->minor; + $save = $this->template->has_nocache_code; + $this->_retvalue = new Smarty_Internal_ParseTree_Tag($this, $this->compiler->processNocacheCode("", $this->compiler, true)); + $this->template->has_nocache_code = $save; } - - #line 276 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r8() - { - $this->compiler->tag_nocache = true; - $xml = $this->yystack[$this->yyidx + 0]->minor; - $save = $this->template->has_nocache_code; - $this->_retvalue = new Smarty_Internal_ParseTree_Tag($this, $this->compiler->processNocacheCode("", $this->compiler, true)); - $this->template->has_nocache_code = $save; - } - - #line 285 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r9() - { +#line 285 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r9(){ $this->_retvalue = $this->compiler->processText($this->yystack[$this->yyidx + 0]->minor); } - - #line 289 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r10() - { - $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; +#line 289 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r10(){ + $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; } - - #line 293 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r11() - { - $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor . $this->yystack[$this->yyidx + 0]->minor; +#line 293 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r11(){ + $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor . $this->yystack[$this->yyidx + 0]->minor; } - - #line 298 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r12() - { - $this->strip = true; +#line 298 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r12(){ + $this->strip = true; } - - #line 302 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r13() - { - $this->strip = false; +#line 302 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r13(){ + $this->strip = false; } - - #line 306 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r14() - { +#line 306 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r14(){ if ($this->strip) { SMARTY_INTERNAL_COMPILE_BLOCK::blockSource($this->compiler, preg_replace('![\t ]*[\r\n]+[\t ]*!', '', $this->yystack[$this->yyidx + 0]->minor)); } else { SMARTY_INTERNAL_COMPILE_BLOCK::blockSource($this->compiler, $this->yystack[$this->yyidx + 0]->minor); } } - - #line 315 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r15() - { - $this->_retvalue = ''; +#line 315 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r15(){ + $this->_retvalue = ''; } - - #line 319 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r16() - { - $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor; +#line 319 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r16(){ + $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor; } - - #line 323 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r17() - { - $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor . $this->yystack[$this->yyidx + 0]->minor; +#line 323 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r17(){ + $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; } - - #line 344 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r21() - { - $this->_retvalue = $this->compiler->compileTag('private_print_expression', array(), array('value' => $this->yystack[$this->yyidx + 0]->minor)); +#line 344 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r21(){ + $this->_retvalue = $this->compiler->compileTag('private_print_expression',array(),array('value'=>$this->yystack[$this->yyidx + 0]->minor)); } - - #line 348 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r22() - { - $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)); +#line 348 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r22(){ + $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)); } - - #line 352 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r23() - { - $this->_retvalue = $this->compiler->compileTag('private_print_expression', $this->yystack[$this->yyidx + 0]->minor, array('value' => $this->yystack[$this->yyidx + - 1]->minor)); +#line 352 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r23(){ + $this->_retvalue = $this->compiler->compileTag('private_print_expression',$this->yystack[$this->yyidx + 0]->minor,array('value'=>$this->yystack[$this->yyidx + -1]->minor)); } - - #line 356 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r24() - { - $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)); +#line 356 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r24(){ + $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)); } - - #line 369 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r26() - { - $this->_retvalue = $this->compiler->compileTag('assign', array(array('value' => $this->yystack[$this->yyidx + 0]->minor), array('var' => "'" . $this->yystack[$this->yyidx + - 2]->minor . "'"))); +#line 369 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r26(){ + $this->_retvalue = $this->compiler->compileTag('assign',array(array('value'=>$this->yystack[$this->yyidx + 0]->minor),array('var'=>"'".$this->yystack[$this->yyidx + -2]->minor."'"))); } - - #line 377 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r28() - { - $this->_retvalue = $this->compiler->compileTag('assign', array_merge(array(array('value' => $this->yystack[$this->yyidx + - 1]->minor), array('var' => "'" . $this->yystack[$this->yyidx + - 3]->minor . "'")), $this->yystack[$this->yyidx + 0]->minor)); +#line 377 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r28(){ + $this->_retvalue = $this->compiler->compileTag('assign',array_merge(array(array('value'=>$this->yystack[$this->yyidx + -1]->minor),array('var'=>"'".$this->yystack[$this->yyidx + -3]->minor."'")),$this->yystack[$this->yyidx + 0]->minor)); } - - #line 381 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r29() - { - $this->_retvalue = $this->compiler->compileTag('assign', array_merge(array(array('value' => $this->yystack[$this->yyidx + - 1]->minor), array('var' => $this->yystack[$this->yyidx + - 3]->minor['var'])), $this->yystack[$this->yyidx + 0]->minor), array('smarty_internal_index' => $this->yystack[$this->yyidx + - 3]->minor['smarty_internal_index'])); +#line 381 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r29(){ + $this->_retvalue = $this->compiler->compileTag('assign',array_merge(array(array('value'=>$this->yystack[$this->yyidx + -1]->minor),array('var'=>$this->yystack[$this->yyidx + -3]->minor['var'])),$this->yystack[$this->yyidx + 0]->minor),array('smarty_internal_index'=>$this->yystack[$this->yyidx + -3]->minor['smarty_internal_index'])); } - - #line 386 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r30() - { - if (defined($this->yystack[$this->yyidx + - 1]->minor)) { +#line 386 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r30(){ + if (defined($this->yystack[$this->yyidx + -1]->minor)) { if (isset($this->smarty->security_policy)) { - $this->smarty->security_policy->isTrustedConstant($this->yystack[$this->yyidx + - 1]->minor, $this->compiler); + $this->smarty->security_policy->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)); + $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); + $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor); } } - - #line 396 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r31() - { +#line 396 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r31(){ if (defined($this->yystack[$this->yyidx + 0]->minor)) { if (isset($this->smarty->security_policy)) { $this->smarty->security_policy->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)); + $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()); + $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + 0]->minor,array()); } } - - #line 409 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r32() - { - if (defined($this->yystack[$this->yyidx + - 2]->minor)) { +#line 409 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r32(){ + if (defined($this->yystack[$this->yyidx + -2]->minor)) { if (isset($this->smarty->security_policy)) { - $this->smarty->security_policy->isTrustedConstant($this->yystack[$this->yyidx + - 2]->minor, $this->compiler); + $this->smarty->security_policy->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)); + $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) . '_retvalue .= $this->compiler->compileTag('private_modifier', array(), array('modifierlist' => $this->yystack[$this->yyidx + - 1]->minor, 'value' => 'ob_get_clean()')) . ';?>'; + $this->_retvalue = ''.$this->compiler->compileTag($this->yystack[$this->yyidx + -2]->minor,$this->yystack[$this->yyidx + 0]->minor).'_retvalue .= $this->compiler->compileTag('private_modifier',array(),array('modifierlist'=>$this->yystack[$this->yyidx + -1]->minor,'value'=>'ob_get_clean()')).';?>'; } } - - #line 422 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r33() - { - $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 422 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r33(){ + $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 427 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r34() - { - $this->_retvalue = '' . $this->compiler->compileTag($this->yystack[$this->yyidx + - 4]->minor, $this->yystack[$this->yyidx + 0]->minor, array('object_method' => $this->yystack[$this->yyidx + - 2]->minor)) . '_retvalue .= $this->compiler->compileTag('private_modifier', array(), array('modifierlist' => $this->yystack[$this->yyidx + - 1]->minor, 'value' => 'ob_get_clean()')) . ';?>'; +#line 427 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r34(){ + $this->_retvalue = ''.$this->compiler->compileTag($this->yystack[$this->yyidx + -4]->minor,$this->yystack[$this->yyidx + 0]->minor,array('object_method'=>$this->yystack[$this->yyidx + -2]->minor)).'_retvalue .= $this->compiler->compileTag('private_modifier',array(),array('modifierlist'=>$this->yystack[$this->yyidx + -1]->minor,'value'=>'ob_get_clean()')).';?>'; } - - #line 433 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r35() - { - $tag = trim(substr($this->yystack[$this->yyidx + - 1]->minor, $this->lex->ldel_length)); - $this->_retvalue = $this->compiler->compileTag(($tag == 'else if') ? 'elseif' : $tag, array(), array('if condition' => $this->yystack[$this->yyidx + 0]->minor)); +#line 433 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r35(){ + $tag = trim(substr($this->yystack[$this->yyidx + -1]->minor,$this->lex->ldel_length)); + $this->_retvalue = $this->compiler->compileTag(($tag == 'else if')? 'elseif' : $tag,array(),array('if condition'=>$this->yystack[$this->yyidx + 0]->minor)); } - - #line 438 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r36() - { - $tag = trim(substr($this->yystack[$this->yyidx + - 2]->minor, $this->lex->ldel_length)); - $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 438 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r36(){ + $tag = trim(substr($this->yystack[$this->yyidx + -2]->minor,$this->lex->ldel_length)); + $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 443 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r37() - { - $tag = trim(substr($this->yystack[$this->yyidx + - 1]->minor, $this->lex->ldel_length)); - $this->_retvalue = $this->compiler->compileTag(($tag == 'else if') ? 'elseif' : $tag, array(), array('if condition' => $this->yystack[$this->yyidx + 0]->minor)); +#line 443 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r37(){ + $tag = trim(substr($this->yystack[$this->yyidx + -1]->minor,$this->lex->ldel_length)); + $this->_retvalue = $this->compiler->compileTag(($tag == 'else if')? 'elseif' : $tag,array(),array('if condition'=>$this->yystack[$this->yyidx + 0]->minor)); } - - #line 454 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r39() - { - $this->_retvalue = $this->compiler->compileTag('for', array_merge($this->yystack[$this->yyidx + 0]->minor, array(array('start' => $this->yystack[$this->yyidx + - 9]->minor), array('ifexp' => $this->yystack[$this->yyidx + - 6]->minor), array('var' => $this->yystack[$this->yyidx + - 2]->minor), array('step' => $this->yystack[$this->yyidx + - 1]->minor))), 1); +#line 454 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r39(){ + $this->_retvalue = $this->compiler->compileTag('for',array_merge($this->yystack[$this->yyidx + 0]->minor,array(array('start'=>$this->yystack[$this->yyidx + -9]->minor),array('ifexp'=>$this->yystack[$this->yyidx + -6]->minor),array('var'=>$this->yystack[$this->yyidx + -2]->minor),array('step'=>$this->yystack[$this->yyidx + -1]->minor))),1); } - - #line 458 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r40() - { - $this->_retvalue = '=' . $this->yystack[$this->yyidx + 0]->minor; +#line 458 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r40(){ + $this->_retvalue = '='.$this->yystack[$this->yyidx + 0]->minor; } - - #line 466 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r42() - { - $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 466 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r42(){ + $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 470 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r43() - { - $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 470 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r43(){ + $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 475 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r44() - { - $this->_retvalue = $this->compiler->compileTag('foreach', $this->yystack[$this->yyidx + 0]->minor); +#line 475 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r44(){ + $this->_retvalue = $this->compiler->compileTag('foreach',$this->yystack[$this->yyidx + 0]->minor); } - - #line 480 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r45() - { - $this->_retvalue = $this->compiler->compileTag('foreach', array_merge($this->yystack[$this->yyidx + 0]->minor, array(array('from' => $this->yystack[$this->yyidx + - 4]->minor), array('item' => $this->yystack[$this->yyidx + - 1]->minor)))); +#line 480 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r45(){ + $this->_retvalue = $this->compiler->compileTag('foreach',array_merge($this->yystack[$this->yyidx + 0]->minor,array(array('from'=>$this->yystack[$this->yyidx + -4]->minor),array('item'=>$this->yystack[$this->yyidx + -1]->minor)))); } - - #line 484 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r46() - { - $this->_retvalue = $this->compiler->compileTag('foreach', array_merge($this->yystack[$this->yyidx + 0]->minor, array(array('from' => $this->yystack[$this->yyidx + - 7]->minor), array('item' => $this->yystack[$this->yyidx + - 1]->minor), array('key' => $this->yystack[$this->yyidx + - 4]->minor)))); +#line 484 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r46(){ + $this->_retvalue = $this->compiler->compileTag('foreach',array_merge($this->yystack[$this->yyidx + 0]->minor,array(array('from'=>$this->yystack[$this->yyidx + -7]->minor),array('item'=>$this->yystack[$this->yyidx + -1]->minor),array('key'=>$this->yystack[$this->yyidx + -4]->minor)))); } - - #line 497 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r49() - { - $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 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r49(){ + $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 501 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r50() - { - $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 501 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r50(){ + $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 506 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r51() - { - $j = strrpos($this->yystack[$this->yyidx + 0]->minor, '.'); - if ($this->yystack[$this->yyidx + 0]->minor[$j + 1] == 'c') { - // {$smarty.block.child} - $this->_retvalue = SMARTY_INTERNAL_COMPILE_BLOCK::compileChildBlock($this->compiler); - } else { - // {$smarty.block.parent} - $this->_retvalue = SMARTY_INTERNAL_COMPILE_BLOCK::compileParentBlock($this->compiler); +#line 506 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r51(){ + $j = strrpos($this->yystack[$this->yyidx + 0]->minor,'.'); + if ($this->yystack[$this->yyidx + 0]->minor[$j+1] == 'c') { + // {$smarty.block.child} + $this->_retvalue = SMARTY_INTERNAL_COMPILE_BLOCK::compileChildBlock($this->compiler); + } else { + // {$smarty.block.parent} + $this->_retvalue = SMARTY_INTERNAL_COMPILE_BLOCK::compileParentBlock($this->compiler); + } + } +#line 519 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r52(){ + $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + 0]->minor.'close',array()); + } +#line 523 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r53(){ + $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -1]->minor.'close',array(),array('modifier_list'=>$this->yystack[$this->yyidx + 0]->minor)); + } +#line 528 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r54(){ + $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -2]->minor.'close',array(),array('object_method'=>$this->yystack[$this->yyidx + 0]->minor)); + } +#line 532 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r55(){ + $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 540 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r56(){ + $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor; + $this->_retvalue[] = $this->yystack[$this->yyidx + 0]->minor; + } +#line 546 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r57(){ + $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor); + } +#line 551 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r58(){ + $this->_retvalue = array(); + } +#line 556 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r59(){ + if (defined($this->yystack[$this->yyidx + 0]->minor)) { + if (isset($this->smarty->security_policy)) { + $this->smarty->security_policy->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 519 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r52() - { - $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + 0]->minor . 'close', array()); } - - #line 523 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r53() - { - $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + - 1]->minor . 'close', array(), array('modifier_list' => $this->yystack[$this->yyidx + 0]->minor)); +#line 567 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r60(){ + $this->_retvalue = array(trim($this->yystack[$this->yyidx + -1]->minor," =\n\r\t")=>$this->yystack[$this->yyidx + 0]->minor); } - - #line 528 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r54() - { - $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + - 2]->minor . 'close', array(), array('object_method' => $this->yystack[$this->yyidx + 0]->minor)); +#line 575 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r62(){ + $this->_retvalue = "'".$this->yystack[$this->yyidx + 0]->minor."'"; } - - #line 532 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r55() - { - $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 587 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r65(){ + $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>$this->yystack[$this->yyidx + 0]->minor); } - - #line 540 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r56() - { - $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor; - $this->_retvalue[] = $this->yystack[$this->yyidx + 0]->minor; +#line 600 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r67(){ + $this->yystack[$this->yyidx + -2]->minor[]=$this->yystack[$this->yyidx + 0]->minor; + $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor; } - - #line 546 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r57() - { - $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor); +#line 605 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r68(){ + $this->_retvalue = array('var' => $this->yystack[$this->yyidx + -2]->minor, 'value'=>$this->yystack[$this->yyidx + 0]->minor); } - - #line 551 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r58() - { - $this->_retvalue = array(); +#line 633 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r73(){ + $this->_retvalue = '$_smarty_tpl->getStreamVariable(\''. $this->yystack[$this->yyidx + -2]->minor .'://'. $this->yystack[$this->yyidx + 0]->minor . '\')'; } - - #line 556 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r59() - { - if (defined($this->yystack[$this->yyidx + 0]->minor)) { - if (isset($this->smarty->security_policy)) { - $this->smarty->security_policy->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 638 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r74(){ + $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor . trim($this->yystack[$this->yyidx + -1]->minor) . $this->yystack[$this->yyidx + 0]->minor; + } +#line 657 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r78(){ + $this->_retvalue = $this->compiler->compileTag('private_modifier',array(),array('value'=>$this->yystack[$this->yyidx + -1]->minor,'modifierlist'=>$this->yystack[$this->yyidx + 0]->minor)); + } +#line 663 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r79(){ + $this->_retvalue = (isset($this->yystack[$this->yyidx + -1]->minor['pre']) ? $this->yystack[$this->yyidx + -1]->minor['pre'] : '') . $this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor['op'].$this->yystack[$this->yyidx + 0]->minor . (isset($this->yystack[$this->yyidx + -1]->minor['pre']) ? ')' : ''); + } +#line 666 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r80(){ + $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor . $this->yystack[$this->yyidx + -1]->minor . ')'; + } +#line 670 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r81(){ + $this->_retvalue = 'in_array('.$this->yystack[$this->yyidx + -2]->minor.','.$this->yystack[$this->yyidx + 0]->minor.')'; + } +#line 674 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r82(){ + $this->_retvalue = 'in_array('.$this->yystack[$this->yyidx + -2]->minor.',(array)'.$this->yystack[$this->yyidx + 0]->minor.')'; + } +#line 678 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r83(){ + $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; + } +#line 686 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r84(){ + $this->_retvalue = $this->yystack[$this->yyidx + -6]->minor.' ? '. $this->compiler->compileVariable("'".$this->yystack[$this->yyidx + -2]->minor."'") . ' : '.$this->yystack[$this->yyidx + 0]->minor; + } +#line 690 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r85(){ + $this->_retvalue = $this->yystack[$this->yyidx + -5]->minor.' ? '.$this->yystack[$this->yyidx + -2]->minor.' : '.$this->yystack[$this->yyidx + 0]->minor; + } +#line 705 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r88(){ + $this->_retvalue = '!'.$this->yystack[$this->yyidx + 0]->minor; + } +#line 726 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r93(){ + $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'.'.$this->yystack[$this->yyidx + 0]->minor; + } +#line 730 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r94(){ + $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.'.'; + } +#line 734 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r95(){ + $this->_retvalue = '.'.$this->yystack[$this->yyidx + 0]->minor; + } +#line 739 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r96(){ + if (defined($this->yystack[$this->yyidx + 0]->minor)) { + if (isset($this->smarty->security_policy)) { + $this->smarty->security_policy->isTrustedConstant($this->yystack[$this->yyidx + 0]->minor, $this->compiler); } - } - - #line 567 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r60() - { - $this->_retvalue = array(trim($this->yystack[$this->yyidx + - 1]->minor, " =\n\r\t") => $this->yystack[$this->yyidx + 0]->minor); - } - - #line 575 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r62() - { - $this->_retvalue = "'" . $this->yystack[$this->yyidx + 0]->minor . "'"; - } - - #line 587 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r65() - { - $this->_retvalue = array($this->yystack[$this->yyidx + - 2]->minor => $this->yystack[$this->yyidx + 0]->minor); - } - - #line 600 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r67() - { - $this->yystack[$this->yyidx + - 2]->minor[] = $this->yystack[$this->yyidx + 0]->minor; - $this->_retvalue = $this->yystack[$this->yyidx + - 2]->minor; - } - - #line 605 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r68() - { - $this->_retvalue = array('var' => $this->yystack[$this->yyidx + - 2]->minor, 'value' => $this->yystack[$this->yyidx + 0]->minor); - } - - #line 633 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r73() - { - $this->_retvalue = '$_smarty_tpl->getStreamVariable(\'' . $this->yystack[$this->yyidx + - 2]->minor . '://' . $this->yystack[$this->yyidx + 0]->minor . '\')'; - } - - #line 638 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r74() - { - $this->_retvalue = $this->yystack[$this->yyidx + - 2]->minor . trim($this->yystack[$this->yyidx + - 1]->minor) . $this->yystack[$this->yyidx + 0]->minor; - } - - #line 657 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r78() - { - $this->_retvalue = $this->compiler->compileTag('private_modifier', array(), array('value' => $this->yystack[$this->yyidx + - 1]->minor, 'modifierlist' => $this->yystack[$this->yyidx + 0]->minor)); - } - - #line 663 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r79() - { - $this->_retvalue = $this->yystack[$this->yyidx + - 2]->minor . $this->yystack[$this->yyidx + - 1]->minor . $this->yystack[$this->yyidx + 0]->minor; - } - - #line 667 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r80() - { - $this->_retvalue = 'in_array(' . $this->yystack[$this->yyidx + - 2]->minor . ',' . $this->yystack[$this->yyidx + 0]->minor . ')'; - } - - #line 671 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r81() - { - $this->_retvalue = 'in_array(' . $this->yystack[$this->yyidx + - 2]->minor . ',(array)' . $this->yystack[$this->yyidx + 0]->minor . ')'; - } - - #line 679 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r83() - { - $this->_retvalue = '!(' . $this->yystack[$this->yyidx + - 2]->minor . ' % ' . $this->yystack[$this->yyidx + 0]->minor . ')'; - } - - #line 683 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r84() - { - $this->_retvalue = '(' . $this->yystack[$this->yyidx + - 2]->minor . ' % ' . $this->yystack[$this->yyidx + 0]->minor . ')'; - } - - #line 687 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r85() - { - $this->_retvalue = '!(1 & ' . $this->yystack[$this->yyidx + - 1]->minor . ')'; - } - - #line 691 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r86() - { - $this->_retvalue = '(1 & ' . $this->yystack[$this->yyidx + - 1]->minor . ')'; - } - - #line 695 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r87() - { - $this->_retvalue = '!(1 & ' . $this->yystack[$this->yyidx + - 2]->minor . ' / ' . $this->yystack[$this->yyidx + 0]->minor . ')'; - } - - #line 699 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r88() - { - $this->_retvalue = '(1 & ' . $this->yystack[$this->yyidx + - 2]->minor . ' / ' . $this->yystack[$this->yyidx + 0]->minor . ')'; - } - - #line 719 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r93() - { - $this->_retvalue = $this->yystack[$this->yyidx + - 2]->minor . $this->yystack[$this->yyidx + - 1]->minor . $this->yystack[$this->yyidx + 0]->minor; - } - - #line 727 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r94() - { - $this->_retvalue = $this->yystack[$this->yyidx + - 6]->minor . ' ? ' . $this->compiler->compileVariable("'" . $this->yystack[$this->yyidx + - 2]->minor . "'") . ' : ' . $this->yystack[$this->yyidx + 0]->minor; - } - - #line 731 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r95() - { - $this->_retvalue = $this->yystack[$this->yyidx + - 5]->minor . ' ? ' . $this->yystack[$this->yyidx + - 2]->minor . ' : ' . $this->yystack[$this->yyidx + 0]->minor; - } - - #line 746 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r98() - { - $this->_retvalue = '!' . $this->yystack[$this->yyidx + 0]->minor; - } - - #line 767 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r103() - { - $this->_retvalue = $this->yystack[$this->yyidx + - 2]->minor . '.' . $this->yystack[$this->yyidx + 0]->minor; - } - - #line 771 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r104() - { - $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor . '.'; - } - - #line 775 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r105() - { - $this->_retvalue = '.' . $this->yystack[$this->yyidx + 0]->minor; - } - - #line 780 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r106() - { - if (defined($this->yystack[$this->yyidx + 0]->minor)) { - if (isset($this->smarty->security_policy)) { - $this->smarty->security_policy->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 797 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r108() - { - $this->_retvalue = "(" . $this->yystack[$this->yyidx + - 1]->minor . ")"; - } - - #line 812 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r111() - { - self::$prefix_number ++; - if ($this->yystack[$this->yyidx + - 2]->minor['var'] == '\'smarty\'') { - $this->compiler->prefix_code[] = 'compiler->compileTag('private_special_variable', array(), $this->yystack[$this->yyidx + - 2]->minor['smarty_internal_index']) . ';?>'; - } else { - $this->compiler->prefix_code[] = 'compiler->compileVariable($this->yystack[$this->yyidx + - 2]->minor['var']) . $this->yystack[$this->yyidx + - 2]->minor['smarty_internal_index'] . ';?>'; - } - $this->_retvalue = '$_tmp' . self::$prefix_number . '::' . $this->yystack[$this->yyidx + 0]->minor[0] . $this->yystack[$this->yyidx + 0]->minor[1]; - } - - #line 824 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r112() - { - self::$prefix_number ++; - $tmp = $this->compiler->appendCode('', $this->yystack[$this->yyidx + - 1]->minor); - $this->compiler->prefix_code[] = $this->compiler->appendCode($tmp, ''); - $this->_retvalue = '$_tmp' . self::$prefix_number; - } - - #line 841 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r115() - { - if (!in_array(strtolower($this->yystack[$this->yyidx + - 2]->minor), array('self', 'parent')) && (!$this->security || $this->smarty->security_policy->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 875 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r119() - { - 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 888 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r120() - { - $this->_retvalue = '$_smarty_tpl->tpl_vars[' . $this->yystack[$this->yyidx + - 2]->minor . ']->' . $this->yystack[$this->yyidx + 0]->minor; - } - - #line 898 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r122() - { - $this->_retvalue = '$_smarty_tpl->getConfigVariable( \'' . $this->yystack[$this->yyidx + - 1]->minor . '\')'; - } - - #line 902 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r123() - { - $this->_retvalue = '(is_array($tmp = $_smarty_tpl->getConfigVariable( \'' . $this->yystack[$this->yyidx + - 2]->minor . '\')) ? $tmp' . $this->yystack[$this->yyidx + 0]->minor . ' :null)'; - } - - #line 906 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r124() - { - $this->_retvalue = '$_smarty_tpl->getConfigVariable( ' . $this->yystack[$this->yyidx + - 1]->minor . ')'; - } - - #line 910 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r125() - { - $this->_retvalue = '(is_array($tmp = $_smarty_tpl->getConfigVariable( ' . $this->yystack[$this->yyidx + - 2]->minor . ')) ? $tmp' . $this->yystack[$this->yyidx + 0]->minor . ' : null)'; - } - - #line 914 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r126() - { - $this->_retvalue = array('var' => $this->yystack[$this->yyidx + - 1]->minor, 'smarty_internal_index' => $this->yystack[$this->yyidx + 0]->minor); - } - - #line 927 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r128() - { - return; - } - - #line 933 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r129() - { - $this->_retvalue = '[' . $this->compiler->compileVariable($this->yystack[$this->yyidx + 0]->minor) . ']'; - } - - #line 937 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r130() - { - $this->_retvalue = '[' . $this->compiler->compileVariable($this->yystack[$this->yyidx + - 2]->minor) . '->' . $this->yystack[$this->yyidx + 0]->minor . ']'; - } - - #line 941 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r131() - { - if (defined($this->yystack[$this->yyidx + 0]->minor)) { - if (isset($this->smarty->security_policy)) { - $this->smarty->security_policy->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 952 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r132() - { - $this->_retvalue = "[" . $this->yystack[$this->yyidx + 0]->minor . "]"; - } - - #line 957 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r133() - { - $this->_retvalue = "[" . $this->yystack[$this->yyidx + - 1]->minor . "]"; - } - - #line 962 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r134() - { - $this->_retvalue = '[' . $this->compiler->compileTag('private_special_variable', array(), '[\'section\'][\'' . $this->yystack[$this->yyidx + - 1]->minor . '\'][\'index\']') . ']'; - } - - #line 966 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r135() - { - $this->_retvalue = '[' . $this->compiler->compileTag('private_special_variable', array(), '[\'section\'][\'' . $this->yystack[$this->yyidx + - 3]->minor . '\'][\'' . $this->yystack[$this->yyidx + - 1]->minor . '\']') . ']'; - } - - #line 976 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r137() - { - $this->_retvalue = '[]'; - } - - #line 990 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r139() - { - $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor . '.' . $this->yystack[$this->yyidx + 0]->minor; - } - - #line 995 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r140() - { - $this->_retvalue = '\'' . $this->yystack[$this->yyidx + 0]->minor . '\''; - } - - #line 1000 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r141() - { - $this->_retvalue = '(' . $this->yystack[$this->yyidx + - 1]->minor . ')'; - } - - #line 1007 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r142() - { - 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 1016 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r143() - { $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; + } else { + $this->_retvalue = "'".$this->yystack[$this->yyidx + 0]->minor."'"; } - - #line 1021 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r144() - { - $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor . $this->yystack[$this->yyidx + 0]->minor; } +#line 756 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r98(){ + $this->_retvalue = "(". $this->yystack[$this->yyidx + -1]->minor .")"; + } +#line 771 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r101(){ + self::$prefix_number++; + if ($this->yystack[$this->yyidx + -2]->minor['var'] == '\'smarty\'') { + $this->compiler->prefix_code[] = 'compiler->compileTag('private_special_variable',array(),$this->yystack[$this->yyidx + -2]->minor['smarty_internal_index']).';?>'; + } else { + $this->compiler->prefix_code[] = 'compiler->compileVariable($this->yystack[$this->yyidx + -2]->minor['var']).$this->yystack[$this->yyidx + -2]->minor['smarty_internal_index'].';?>'; + } + $this->_retvalue = '$_tmp'.self::$prefix_number.'::'.$this->yystack[$this->yyidx + 0]->minor[0].$this->yystack[$this->yyidx + 0]->minor[1]; - #line 1026 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r145() - { - if ($this->security && substr($this->yystack[$this->yyidx + - 1]->minor, 0, 1) == '_') { - $this->compiler->trigger_template_error(self::Err1); + } +#line 783 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r102(){ + self::$prefix_number++; + $tmp = $this->compiler->appendCode('', $this->yystack[$this->yyidx + -1]->minor); + $this->compiler->prefix_code[] = $this->compiler->appendCode($tmp, ''); + $this->_retvalue = '$_tmp'.self::$prefix_number; + } +#line 800 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r105(){ + if (!in_array(strtolower($this->yystack[$this->yyidx + -2]->minor), array('self', 'parent')) && (!$this->security || $this->smarty->security_policy->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 834 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r109(){ + 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 847 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r110(){ + $this->_retvalue = '$_smarty_tpl->tpl_vars['. $this->yystack[$this->yyidx + -2]->minor .']->'.$this->yystack[$this->yyidx + 0]->minor; + } +#line 857 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r112(){ + $this->_retvalue = '$_smarty_tpl->getConfigVariable( \''. $this->yystack[$this->yyidx + -1]->minor .'\')'; + } +#line 861 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r113(){ + $this->_retvalue = '(is_array($tmp = $_smarty_tpl->getConfigVariable( \''. $this->yystack[$this->yyidx + -2]->minor .'\')) ? $tmp'.$this->yystack[$this->yyidx + 0]->minor.' :null)'; + } +#line 865 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r114(){ + $this->_retvalue = '$_smarty_tpl->getConfigVariable( '. $this->yystack[$this->yyidx + -1]->minor .')'; + } +#line 869 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r115(){ + $this->_retvalue = '(is_array($tmp = $_smarty_tpl->getConfigVariable( '. $this->yystack[$this->yyidx + -2]->minor .')) ? $tmp'.$this->yystack[$this->yyidx + 0]->minor.' : null)'; + } +#line 873 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r116(){ + $this->_retvalue = array('var'=>$this->yystack[$this->yyidx + -1]->minor, 'smarty_internal_index'=>$this->yystack[$this->yyidx + 0]->minor); + } +#line 886 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r118(){ + return; + } +#line 892 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r119(){ + $this->_retvalue = '['.$this->compiler->compileVariable($this->yystack[$this->yyidx + 0]->minor).']'; + } +#line 896 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r120(){ + $this->_retvalue = '['.$this->compiler->compileVariable($this->yystack[$this->yyidx + -2]->minor).'->'.$this->yystack[$this->yyidx + 0]->minor.']'; + } +#line 900 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r121(){ + if (defined($this->yystack[$this->yyidx + 0]->minor)) { + if (isset($this->smarty->security_policy)) { + $this->smarty->security_policy->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 ."']"; } - $this->_retvalue = '->' . $this->yystack[$this->yyidx + - 1]->minor . $this->yystack[$this->yyidx + 0]->minor; } - - #line 1033 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r146() - { - 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 911 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r122(){ + $this->_retvalue = "[". $this->yystack[$this->yyidx + 0]->minor ."]"; } - - #line 1040 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r147() - { - 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 916 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r123(){ + $this->_retvalue = "[". $this->yystack[$this->yyidx + -1]->minor ."]"; } - - #line 1047 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r148() - { - 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 921 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r124(){ + $this->_retvalue = '['.$this->compiler->compileTag('private_special_variable',array(),'[\'section\'][\''.$this->yystack[$this->yyidx + -1]->minor.'\'][\'index\']').']'; } - - #line 1055 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r149() - { - $this->_retvalue = '->' . $this->yystack[$this->yyidx + 0]->minor; +#line 925 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r125(){ + $this->_retvalue = '['.$this->compiler->compileTag('private_special_variable',array(),'[\'section\'][\''.$this->yystack[$this->yyidx + -3]->minor.'\'][\''.$this->yystack[$this->yyidx + -1]->minor.'\']').']'; } - - #line 1063 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r150() - { - if (!$this->security || $this->smarty->security_policy->isTrustedPhpFunction($this->yystack[$this->yyidx + - 3]->minor, $this->compiler)) { - if (strcasecmp($this->yystack[$this->yyidx + - 3]->minor, 'isset') === 0 || strcasecmp($this->yystack[$this->yyidx + - 3]->minor, 'empty') === 0 || strcasecmp($this->yystack[$this->yyidx + - 3]->minor, 'array') === 0 || is_callable($this->yystack[$this->yyidx + - 3]->minor)) { - $func_name = strtolower($this->yystack[$this->yyidx + - 3]->minor); - if ($func_name == 'isset') { - if (count($this->yystack[$this->yyidx + - 1]->minor) == 0) { - $this->compiler->trigger_template_error('Illegal number of paramer in "isset()"'); - } - $par = implode(',', $this->yystack[$this->yyidx + - 1]->minor); - if (strncasecmp($par, '$_smarty_tpl->getConfigVariable', strlen('$_smarty_tpl->getConfigVariable')) === 0) { - self::$prefix_number ++; - $this->compiler->prefix_code[] = ''; - $isset_par = '$_tmp' . self::$prefix_number; - } else { - $isset_par = str_replace("')->value", "',null,true,false)->value", $par); - } - $this->_retvalue = $this->yystack[$this->yyidx + - 3]->minor . "(" . $isset_par . ")"; - } elseif (in_array($func_name, array('empty', 'reset', 'current', 'end', 'prev', 'next'))) { - if (count($this->yystack[$this->yyidx + - 1]->minor) != 1) { - $this->compiler->trigger_template_error('Illegal number of paramer in "empty()"'); - } - if ($func_name == 'empty') { - $this->_retvalue = $func_name . '(' . str_replace("')->value", "',null,true,false)->value", $this->yystack[$this->yyidx + - 1]->minor[0]) . ')'; - } else { - $this->_retvalue = $func_name . '(' . $this->yystack[$this->yyidx + - 1]->minor[0] . ')'; - } +#line 935 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r127(){ + $this->_retvalue = '[]'; + } +#line 949 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r129(){ + $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.'.'.$this->yystack[$this->yyidx + 0]->minor; + } +#line 954 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r130(){ + $this->_retvalue = '\''.$this->yystack[$this->yyidx + 0]->minor.'\''; + } +#line 959 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r131(){ + $this->_retvalue = '('.$this->yystack[$this->yyidx + -1]->minor.')'; + } +#line 966 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r132(){ + 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 975 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r133(){ + $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; + } +#line 980 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r134(){ + $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; + } +#line 985 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r135(){ + 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 992 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r136(){ + 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 999 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r137(){ + 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 1006 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r138(){ + 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 1014 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r139(){ + $this->_retvalue = '->'.$this->yystack[$this->yyidx + 0]->minor; + } +#line 1022 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r140(){ + if (!$this->security || $this->smarty->security_policy->isTrustedPhpFunction($this->yystack[$this->yyidx + -3]->minor, $this->compiler)) { + if (strcasecmp($this->yystack[$this->yyidx + -3]->minor,'isset') === 0 || strcasecmp($this->yystack[$this->yyidx + -3]->minor,'empty') === 0 || strcasecmp($this->yystack[$this->yyidx + -3]->minor,'array') === 0 || is_callable($this->yystack[$this->yyidx + -3]->minor)) { + $func_name = strtolower($this->yystack[$this->yyidx + -3]->minor); + if ($func_name == 'isset') { + if (count($this->yystack[$this->yyidx + -1]->minor) == 0) { + $this->compiler->trigger_template_error ('Illegal number of paramer in "isset()"'); + } + $par = implode(',',$this->yystack[$this->yyidx + -1]->minor); + if (strncasecmp($par,'$_smarty_tpl->getConfigVariable',strlen('$_smarty_tpl->getConfigVariable')) === 0) { + self::$prefix_number++; + $this->compiler->prefix_code[] = ''; + $isset_par = '$_tmp'.self::$prefix_number; } else { - $this->_retvalue = $this->yystack[$this->yyidx + - 3]->minor . "(" . implode(',', $this->yystack[$this->yyidx + - 1]->minor) . ")"; + $isset_par=str_replace("')->value","',null,true,false)->value",$par); + } + $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor . "(". $isset_par .")"; + } elseif (in_array($func_name,array('empty','reset','current','end','prev','next'))){ + if (count($this->yystack[$this->yyidx + -1]->minor) != 1) { + $this->compiler->trigger_template_error ('Illegal number of paramer in "empty()"'); + } + if ($func_name == 'empty') { + $this->_retvalue = $func_name.'('.str_replace("')->value","',null,true,false)->value",$this->yystack[$this->yyidx + -1]->minor[0]).')'; + } else { + $this->_retvalue = $func_name.'('.$this->yystack[$this->yyidx + -1]->minor[0].')'; } } else { - $this->compiler->trigger_template_error("unknown function \"" . $this->yystack[$this->yyidx + - 3]->minor . "\""); + $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor . "(". implode(',',$this->yystack[$this->yyidx + -1]->minor) .")"; } + } else { + $this->compiler->trigger_template_error ("unknown function \"" . $this->yystack[$this->yyidx + -3]->minor . "\""); } } - - #line 1102 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r151() - { - 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 1109 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r152() - { - if ($this->security) { - $this->compiler->trigger_template_error(self::Err2); - } - self::$prefix_number ++; - $this->compiler->prefix_code[] = 'compiler->compileVariable("'" . $this->yystack[$this->yyidx + - 3]->minor . "'") . ';?>'; - $this->_retvalue = '$_tmp' . self::$prefix_number . '(' . implode(',', $this->yystack[$this->yyidx + - 1]->minor) . ')'; +#line 1061 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r141(){ + if ($this->security && substr($this->yystack[$this->yyidx + -3]->minor,0,1) == '_') { + $this->compiler->trigger_template_error (self::Err1); } - - #line 1120 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r153() - { - $this->_retvalue = array_merge($this->yystack[$this->yyidx + - 2]->minor, array($this->yystack[$this->yyidx + 0]->minor)); + $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor . "(". implode(',',$this->yystack[$this->yyidx + -1]->minor) .")"; } - - #line 1137 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r156() - { - $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 1068 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r142(){ + if ($this->security) { + $this->compiler->trigger_template_error (self::Err2); } - - #line 1141 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r157() - { - $this->_retvalue = array(array_merge($this->yystack[$this->yyidx + - 1]->minor, $this->yystack[$this->yyidx + 0]->minor)); + self::$prefix_number++; + $this->compiler->prefix_code[] = 'compiler->compileVariable("'".$this->yystack[$this->yyidx + -3]->minor."'").';?>'; + $this->_retvalue = '$_tmp'.self::$prefix_number.'('. implode(',',$this->yystack[$this->yyidx + -1]->minor) .')'; } - - #line 1149 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r159() - { - $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor); +#line 1079 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r143(){ + $this->_retvalue = array_merge($this->yystack[$this->yyidx + -2]->minor,array($this->yystack[$this->yyidx + 0]->minor)); } - - #line 1157 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r160() - { - $this->_retvalue = array_merge($this->yystack[$this->yyidx + - 1]->minor, $this->yystack[$this->yyidx + 0]->minor); +#line 1096 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r146(){ + $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 1176 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r164() - { - $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor, '', 'method'); +#line 1100 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r147(){ + $this->_retvalue = array(array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor)); } - - #line 1181 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r165() - { - $this->_retvalue = array($this->yystack[$this->yyidx + - 1]->minor, $this->yystack[$this->yyidx + 0]->minor, 'method'); +#line 1108 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r149(){ + $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor); } - - #line 1186 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r166() - { - $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor, ''); +#line 1116 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r150(){ + $this->_retvalue = array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor); } - - #line 1191 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r167() - { - $this->_retvalue = array('$' . $this->yystack[$this->yyidx + - 1]->minor, $this->yystack[$this->yyidx + 0]->minor, 'property'); +#line 1135 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r154(){ + $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor, '', 'method'); } - - #line 1196 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r168() - { - $this->_retvalue = array('$' . $this->yystack[$this->yyidx + - 2]->minor, $this->yystack[$this->yyidx + - 1]->minor . $this->yystack[$this->yyidx + 0]->minor, 'property'); +#line 1140 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r155(){ + $this->_retvalue = array($this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor, 'method'); } - - #line 1202 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r169() - { - $this->_retvalue = '=='; +#line 1145 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r156(){ + $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor, ''); } - - #line 1206 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r170() - { - $this->_retvalue = '!='; +#line 1150 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r157(){ + $this->_retvalue = array('$'.$this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor, 'property'); } - - #line 1210 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r171() - { - $this->_retvalue = '>'; +#line 1155 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r158(){ + $this->_retvalue = array('$'.$this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor, 'property'); } - - #line 1214 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r172() - { - $this->_retvalue = '<'; +#line 1161 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r159(){ + $this->_retvalue['op'] = ' '. trim($this->yystack[$this->yyidx + 0]->minor) . ' '; } - - #line 1218 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r173() - { - $this->_retvalue = '>='; +#line 1165 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r160(){ + static $lops = array( + 'eq' => array('op' => ' == ', 'pre' => null), + 'ne' => array('op' => ' != ', 'pre' => null), + 'neq' => array('op' => ' != ', 'pre' => null), + 'gt' => array('op' => ' > ', 'pre' => null), + 'ge' => array('op' => ' >= ', 'pre' => null), + 'gte' => array('op' => ' >= ', 'pre' => null), + 'lt' => array('op' => ' < ', 'pre' => null), + 'le' => array('op' => ' <= ', 'pre' => null), + 'lte' => array('op' => ' <= ', 'pre' => null), + 'mod' => array('op' => ' % ', 'pre' => null), + 'and' => array('op' => ' && ', 'pre' => null), + 'or' => array('op' => ' || ', 'pre' => null), + 'xor' => array('op' => ' xor ', 'pre' => null), + '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(str_replace(' ', '', $this->yystack[$this->yyidx + 0]->minor)); + $this->_retvalue = $lops[$op]; } - - #line 1222 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r174() - { - $this->_retvalue = '<='; +#line 1191 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r161(){ + 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 1226 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r175() - { - $this->_retvalue = '==='; +#line 1205 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r162(){ + $this->_retvalue = 'array('.$this->yystack[$this->yyidx + -1]->minor.')'; } - - #line 1230 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r176() - { - $this->_retvalue = '!=='; +#line 1213 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r164(){ + $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.','.$this->yystack[$this->yyidx + 0]->minor; } - - #line 1234 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r177() - { - $this->_retvalue = '%'; +#line 1221 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r166(){ + $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'=>'.$this->yystack[$this->yyidx + 0]->minor; } - - #line 1238 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r178() - { - $this->_retvalue = '&&'; +#line 1225 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r167(){ + $this->_retvalue = '\''.$this->yystack[$this->yyidx + -2]->minor.'\'=>'.$this->yystack[$this->yyidx + 0]->minor; } - - #line 1242 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r179() - { - $this->_retvalue = '||'; +#line 1237 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r169(){ + $this->_retvalue = "''"; } - - #line 1246 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r180() - { - $this->_retvalue = ' XOR '; +#line 1241 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r170(){ + $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor->to_smarty_php(); } - - #line 1253 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r181() - { - $this->_retvalue = 'array(' . $this->yystack[$this->yyidx + - 1]->minor . ')'; +#line 1246 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r171(){ + $this->yystack[$this->yyidx + -1]->minor->append_subtree($this->yystack[$this->yyidx + 0]->minor); + $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor; } - - #line 1261 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r183() - { - $this->_retvalue = $this->yystack[$this->yyidx + - 2]->minor . ',' . $this->yystack[$this->yyidx + 0]->minor; +#line 1251 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r172(){ + $this->_retvalue = new Smarty_Internal_ParseTree_Dq($this, $this->yystack[$this->yyidx + 0]->minor); } - - #line 1269 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r185() - { - $this->_retvalue = $this->yystack[$this->yyidx + - 2]->minor . '=>' . $this->yystack[$this->yyidx + 0]->minor; +#line 1255 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r173(){ + $this->_retvalue = new Smarty_Internal_ParseTree_Code($this, '(string)'.$this->yystack[$this->yyidx + -1]->minor); } - - #line 1273 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r186() - { - $this->_retvalue = '\'' . $this->yystack[$this->yyidx + - 2]->minor . '\'=>' . $this->yystack[$this->yyidx + 0]->minor; +#line 1263 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r175(){ + $this->_retvalue = new Smarty_Internal_ParseTree_Code($this, '(string)$_smarty_tpl->tpl_vars[\''. substr($this->yystack[$this->yyidx + 0]->minor,1) .'\']->value'); } - - #line 1285 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r188() - { - $this->_retvalue = "''"; +#line 1271 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r177(){ + $this->_retvalue = new Smarty_Internal_ParseTree_Code($this, '(string)('.$this->yystack[$this->yyidx + -1]->minor.')'); } - - #line 1289 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r189() - { - $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor->to_smarty_php(); +#line 1275 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r178(){ + $this->_retvalue = new Smarty_Internal_ParseTree_Tag($this, $this->yystack[$this->yyidx + -1]->minor); } - - #line 1294 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r190() - { - $this->yystack[$this->yyidx + - 1]->minor->append_subtree($this->yystack[$this->yyidx + 0]->minor); - $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor; - } - - #line 1299 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r191() - { - $this->_retvalue = new Smarty_Internal_ParseTree_Dq($this, $this->yystack[$this->yyidx + 0]->minor); - } - - #line 1303 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r192() - { - $this->_retvalue = new Smarty_Internal_ParseTree_Code($this, '(string)' . $this->yystack[$this->yyidx + - 1]->minor); - } - - #line 1311 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r194() - { - $this->_retvalue = new Smarty_Internal_ParseTree_Code($this, '(string)$_smarty_tpl->tpl_vars[\'' . substr($this->yystack[$this->yyidx + 0]->minor, 1) . '\']->value'); - } - - #line 1319 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r196() - { - $this->_retvalue = new Smarty_Internal_ParseTree_Code($this, '(string)(' . $this->yystack[$this->yyidx + - 1]->minor . ')'); - } - - #line 1323 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r197() - { - $this->_retvalue = new Smarty_Internal_ParseTree_Tag($this, $this->yystack[$this->yyidx + - 1]->minor); - } - - #line 1327 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r198() - { - $this->_retvalue = new Smarty_Internal_ParseTree_DqContent($this, $this->yystack[$this->yyidx + 0]->minor); +#line 1279 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r179(){ + $this->_retvalue = new Smarty_Internal_ParseTree_DqContent($this, $this->yystack[$this->yyidx + 0]->minor); } private $_retvalue; @@ -1806,8 +2667,11 @@ class Smarty_Internal_Templateparser public function yy_reduce($yyruleno) { $yymsp = $this->yystack[$this->yyidx]; - if ($this->yyTraceFILE && $yyruleno >= 0 && $yyruleno < count(self::$yyRuleName)) { - fprintf($this->yyTraceFILE, "%sReduce (%d) [%s].\n", $this->yyTracePrompt, $yyruleno, self::$yyRuleName[$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; @@ -1820,14 +2684,14 @@ class Smarty_Internal_Templateparser $yygoto = self::$yyRuleInfo[$yyruleno][0]; $yysize = self::$yyRuleInfo[$yyruleno][1]; $this->yyidx -= $yysize; - for ($i = $yysize; $i; $i --) { + 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 ++; + $this->yyidx++; $x = new TP_yyStackEntry; $x->stateno = $yyact; $x->major = $yygoto; @@ -1845,34 +2709,32 @@ class Smarty_Internal_Templateparser { if ($this->yyTraceFILE) { fprintf($this->yyTraceFILE, "%sFail!\n", $this->yyTracePrompt); - } - while ($this->yyidx >= 0) { + } while ($this->yyidx >= 0) { $this->yy_pop_parser_stack(); } } public function yy_syntax_error($yymajor, $TOKEN) { - #line 196 "../smarty/lexer/smarty_internal_templateparser.y" +#line 196 "../smarty/lexer/smarty_internal_templateparser.y" - $this->internalError = true; - $this->yymajor = $yymajor; - $this->compiler->trigger_template_error(); + $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) { + } while ($this->yyidx >= 0) { $this->yy_pop_parser_stack(); } - #line 189 "../smarty/lexer/smarty_internal_templateparser.y" +#line 189 "../smarty/lexer/smarty_internal_templateparser.y" - $this->successful = !$this->internalError; - $this->internalError = false; - $this->retvalue = $this->_retvalue; + $this->successful = !$this->internalError; + $this->internalError = false; + $this->retvalue = $this->_retvalue; } public function doParse($yymajor, $yytokenvalue) @@ -1881,28 +2743,30 @@ class Smarty_Internal_Templateparser if ($this->yyidx === null || $this->yyidx < 0) { $this->yyidx = 0; - $this->yyerrcnt = - 1; + $this->yyerrcnt = -1; $x = new TP_yyStackEntry; $x->stateno = 0; $x->major = 0; $this->yystack = array(); array_push($this->yystack, $x); } - $yyendofinput = ($yymajor == 0); + $yyendofinput = ($yymajor==0); if ($this->yyTraceFILE) { - fprintf($this->yyTraceFILE, "%sInput %s\n", $this->yyTracePrompt, $this->yyTokenName[$yymajor]); + 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)) { + 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 --; + $this->yyerrcnt--; if ($yyendofinput && $this->yyidx >= 0) { $yymajor = 0; } else { @@ -1912,7 +2776,8 @@ class Smarty_Internal_Templateparser $this->yy_reduce($yyact - self::YYNSTATE); } elseif ($yyact == self::YY_ERROR_ACTION) { if ($this->yyTraceFILE) { - fprintf($this->yyTraceFILE, "%sSyntax Error!\n", $this->yyTracePrompt); + fprintf($this->yyTraceFILE, "%sSyntax Error!\n", + $this->yyTracePrompt); } if (self::YYERRORSYMBOL) { if ($this->yyerrcnt < 0) { @@ -1921,15 +2786,19 @@ class Smarty_Internal_Templateparser $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]); + 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) { + 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) { + if ($this->yyidx < 0 || $yymajor==0) { $this->yy_destructor($yymajor, $yytokenvalue); $this->yy_parse_failed(); $yymajor = self::YYNOCODE;