diff --git a/change_log.txt b/change_log.txt index 19fccc1b..a06fc53c 100644 --- a/change_log.txt +++ b/change_log.txt @@ -1,4 +1,8 @@ ===== 3.1.32 - dev === +26.8.2017 + - bugfix chained modifier failed when last modifier parameter is a signed value + https://github.com/smarty-php/smarty/issues/327 + 09.8.2017 - improvement repeated delimiter like {{ and }} will be treated as literal https://groups.google.com/forum/#!topic/smarty-developers/h9r82Bx4KZw diff --git a/lexer/smarty_internal_templateparser.y b/lexer/smarty_internal_templateparser.y index 98add1c6..40cbe72a 100644 --- a/lexer/smarty_internal_templateparser.y +++ b/lexer/smarty_internal_templateparser.y @@ -211,6 +211,7 @@ class Smarty_Internal_Templateparser %left VERT. %left COLON. +%left UNIMATH. // // complete template diff --git a/libs/Smarty.class.php b/libs/Smarty.class.php index ab866ea0..fa0d2030 100644 --- a/libs/Smarty.class.php +++ b/libs/Smarty.class.php @@ -108,7 +108,7 @@ class Smarty extends Smarty_Internal_TemplateBase /** * smarty version */ - const SMARTY_VERSION = '3.1.32-dev-19'; + const SMARTY_VERSION = '3.1.32-dev-20'; /** * define variable scopes diff --git a/libs/sysplugins/smarty_internal_templateparser.php b/libs/sysplugins/smarty_internal_templateparser.php index cfe67104..21ea8568 100644 --- a/libs/sysplugins/smarty_internal_templateparser.php +++ b/libs/sysplugins/smarty_internal_templateparser.php @@ -93,207 +93,45 @@ class Smarty_Internal_Templateparser const Err1 = "Security error: Call to private object member not allowed"; const Err2 = "Security error: Call to dynamic object member not allowed"; const Err3 = "PHP in template not allowed. Use SmartyBC to enable it"; - - /** - * result status - * - * @var bool - */ - public $successful = true; - - /** - * return value - * - * @var mixed - */ - public $retvalue = 0; - - /** - * @var - */ - public $yymajor; - - /** - * last index of array variable - * - * @var mixed - */ - public $last_index; - - /** - * last variable name - * - * @var string - */ - public $last_variable; - - /** - * root parse tree buffer - * - * @var Smarty_Internal_ParseTree - */ - public $root_buffer; - - /** - * current parse tree object - * - * @var Smarty_Internal_ParseTree - */ - public $current_buffer; - - /** - * lexer object - * - * @var Smarty_Internal_Templatelexer - */ - public $lex; - - /** - * internal error flag - * - * @var bool - */ - private $internalError = false; - - /** - * {strip} status - * - * @var bool - */ - public $strip = false; - /** - * compiler object - * - * @var Smarty_Internal_TemplateCompilerBase - */ - public $compiler = null; - - /** - * smarty object - * - * @var Smarty - */ - public $smarty = null; - - /** - * template object - * - * @var Smarty_Internal_Template - */ - public $template = null; - - /** - * block nesting level - * - * @var int - */ - public $block_nesting_level = 0; - - /** - * security object - * - * @var Smarty_Security - */ - public $security = null; - - /** - * template prefix array - * - * @var \Smarty_Internal_ParseTree[] - */ - public $template_prefix = array(); - - /** - * security object - * - * @var \Smarty_Internal_ParseTree[] - */ - public $template_postfix = array(); - - /** - * constructor - * - * @param Smarty_Internal_Templatelexer $lex - * @param Smarty_Internal_TemplateCompilerBase $compiler - */ - function __construct(Smarty_Internal_Templatelexer $lex, Smarty_Internal_TemplateCompilerBase $compiler) - { - $this->lex = $lex; - $this->compiler = $compiler; - $this->template = $this->compiler->template; - $this->smarty = $this->template->smarty; - $this->security = isset($this->smarty->security_policy) ? $this->smarty->security_policy : false; - $this->current_buffer = $this->root_buffer = new Smarty_Internal_ParseTree_Template(); - } - - /** - * insert PHP code in current buffer - * - * @param string $code - */ - public function insertPhpCode($code) - { - $this->current_buffer->append_subtree($this, new Smarty_Internal_ParseTree_Tag($this, $code)); - } - - /** - * merge PHP code with prefix code and return parse tree tag object - * - * @param string $code - * - * @return Smarty_Internal_ParseTree_Tag - */ - public function mergePrefixCode($code) - { - $tmp = ''; - foreach ($this->compiler->prefix_code as $preCode) { - $tmp .= $preCode; - } - $this->compiler->prefix_code = array(); - $tmp .= $code; - return new Smarty_Internal_ParseTree_Tag($this, $this->compiler->processNocacheCode($tmp, true)); - } - - const TP_VERT = 1; const TP_COLON = 2; - const TP_PHP = 3; - const TP_TEXT = 4; - const TP_STRIPON = 5; - const TP_STRIPOFF = 6; - const TP_LITERALSTART = 7; - const TP_LITERALEND = 8; - const TP_LITERAL = 9; - const TP_RDEL = 10; - const TP_SIMPELOUTPUT = 11; - const TP_LDEL = 12; - const TP_DOLLARID = 13; - const TP_EQUAL = 14; - const TP_SIMPLETAG = 15; - const TP_ID = 16; - const TP_PTR = 17; - const TP_LDELMAKENOCACHE = 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_CLOSETAG = 31; - const TP_LDELSLASH = 32; - const TP_ATTR = 33; - const TP_INTEGER = 34; - const TP_COMMA = 35; - const TP_OPENP = 36; - const TP_CLOSEP = 37; - const TP_MATH = 38; - const TP_UNIMATH = 39; + const TP_UNIMATH = 3; + const TP_PHP = 4; + const TP_TEXT = 5; + const TP_STRIPON = 6; + const TP_STRIPOFF = 7; + const TP_LITERALSTART = 8; + const TP_LITERALEND = 9; + const TP_LITERAL = 10; + const TP_RDEL = 11; + const TP_SIMPELOUTPUT = 12; + const TP_LDEL = 13; + const TP_DOLLARID = 14; + const TP_EQUAL = 15; + const TP_SIMPLETAG = 16; + const TP_ID = 17; + const TP_PTR = 18; + const TP_LDELMAKENOCACHE = 19; + const TP_LDELIF = 20; + const TP_LDELFOR = 21; + const TP_SEMICOLON = 22; + const TP_INCDEC = 23; + const TP_TO = 24; + const TP_STEP = 25; + const TP_LDELFOREACH = 26; + const TP_SPACE = 27; + const TP_AS = 28; + const TP_APTR = 29; + const TP_LDELSETFILTER = 30; + const TP_SMARTYBLOCKCHILDPARENT = 31; + const TP_CLOSETAG = 32; + const TP_LDELSLASH = 33; + const TP_ATTR = 34; + const TP_INTEGER = 35; + const TP_COMMA = 36; + const TP_OPENP = 37; + const TP_CLOSEP = 38; + const TP_MATH = 39; const TP_ISIN = 40; const TP_QMARK = 41; const TP_NOT = 42; @@ -318,436 +156,457 @@ class Smarty_Internal_Templateparser const YY_NO_ACTION = 532; const YY_ACCEPT_ACTION = 531; const YY_ERROR_ACTION = 530; - - const YY_SZ_ACTTAB = 1993; - static public $yy_action = array(272, 8, 131, 237, 275, 80, 179, 230, 6, 84, 20, 324, 175, 101, 116, 41, 16, 327, - 225, 299, 257, 232, 277, 235, 214, 26, 216, 202, 42, 106, 190, 40, 43, 314, 234, - 278, 310, 244, 212, 355, 82, 1, 204, 291, 114, 272, 8, 132, 79, 275, 196, 246, - 230, 6, 84, 11, 177, 267, 269, 116, 21, 197, 14, 225, 252, 257, 232, 11, 205, - 31, 26, 223, 101, 42, 14, 78, 40, 43, 314, 234, 290, 220, 245, 212, 293, 82, 1, - 316, 291, 446, 272, 8, 134, 79, 275, 208, 246, 230, 6, 84, 11, 446, 291, 114, - 116, 15, 204, 14, 225, 136, 257, 232, 251, 235, 254, 26, 185, 298, 42, 90, 78, - 40, 43, 314, 234, 213, 310, 181, 212, 120, 82, 1, 204, 291, 99, 272, 8, 136, 79, - 275, 208, 402, 230, 6, 84, 253, 289, 82, 246, 116, 291, 190, 280, 225, 204, 257, - 232, 402, 235, 189, 12, 18, 17, 42, 402, 204, 40, 43, 314, 234, 228, 310, 78, - 212, 402, 82, 1, 204, 291, 326, 272, 8, 134, 79, 275, 208, 399, 230, 6, 84, 402, - 154, 459, 237, 116, 182, 23, 402, 225, 459, 257, 232, 399, 194, 239, 26, 184, - 298, 42, 399, 158, 40, 43, 314, 234, 106, 310, 246, 212, 190, 82, 1, 204, 291, - 7, 272, 8, 134, 79, 275, 195, 357, 230, 6, 84, 256, 19, 256, 19, 116, 279, 78, - 279, 225, 137, 257, 232, 11, 211, 183, 26, 9, 227, 42, 14, 306, 40, 43, 314, - 234, 93, 310, 214, 212, 270, 82, 1, 106, 291, 2, 272, 8, 134, 79, 275, 193, 224, - 230, 6, 84, 101, 109, 256, 19, 116, 29, 231, 279, 225, 141, 257, 232, 304, 235, - 214, 26, 217, 233, 42, 106, 11, 40, 43, 314, 234, 172, 310, 14, 212, 243, 82, 1, - 36, 291, 313, 272, 8, 135, 79, 275, 208, 222, 230, 6, 84, 446, 36, 291, 292, - 116, 246, 85, 302, 225, 218, 257, 232, 446, 235, 95, 26, 136, 321, 42, 221, 447, - 40, 43, 314, 234, 291, 310, 459, 212, 78, 82, 1, 447, 291, 459, 272, 8, 134, 79, - 275, 199, 35, 230, 6, 84, 475, 475, 475, 475, 116, 475, 140, 475, 225, 82, 257, - 232, 291, 235, 304, 26, 5, 101, 42, 233, 3, 40, 43, 314, 234, 36, 310, 311, 212, - 92, 82, 1, 105, 291, 297, 272, 8, 133, 79, 275, 208, 475, 230, 6, 84, 137, 149, - 291, 278, 116, 296, 180, 9, 225, 312, 257, 232, 27, 235, 176, 4, 139, 148, 42, - 147, 446, 40, 43, 314, 234, 242, 310, 33, 212, 277, 82, 1, 446, 291, 14, 272, 8, - 136, 79, 275, 208, 163, 230, 6, 84, 204, 171, 189, 178, 116, 204, 277, 161, 225, - 367, 257, 232, 291, 235, 361, 12, 236, 277, 42, 278, 101, 40, 43, 314, 234, 11, - 310, 190, 212, 204, 82, 329, 14, 291, 204, 446, 233, 209, 79, 117, 70, 113, 287, - 259, 260, 238, 99, 446, 233, 240, 286, 114, 325, 274, 320, 210, 323, 144, 289, - 129, 119, 24, 261, 263, 264, 265, 177, 277, 203, 294, 272, 8, 145, 143, 275, 3, - 94, 230, 6, 84, 247, 331, 277, 277, 116, 189, 188, 329, 225, 157, 257, 232, 233, - 209, 317, 117, 70, 113, 146, 277, 190, 258, 99, 319, 268, 240, 286, 25, 277, - 150, 320, 210, 323, 179, 289, 204, 38, 282, 165, 277, 219, 329, 41, 16, 327, - 284, 233, 209, 277, 122, 63, 103, 248, 217, 186, 298, 99, 190, 400, 240, 286, - 278, 215, 142, 320, 210, 323, 91, 289, 20, 329, 167, 30, 277, 400, 233, 209, - 276, 122, 67, 113, 400, 110, 330, 446, 99, 271, 187, 240, 286, 129, 190, 318, - 320, 210, 323, 446, 289, 237, 152, 329, 278, 83, 315, 206, 233, 209, 262, 122, - 67, 113, 190, 288, 280, 273, 99, 256, 19, 240, 286, 162, 279, 155, 320, 210, - 323, 182, 289, 303, 86, 168, 11, 277, 160, 201, 272, 10, 305, 14, 275, 254, 138, - 230, 6, 84, 159, 256, 19, 88, 116, 190, 279, 278, 225, 329, 257, 232, 166, 38, - 233, 209, 11, 122, 67, 113, 475, 475, 277, 14, 99, 475, 459, 240, 286, 111, 169, - 266, 320, 210, 323, 278, 289, 303, 300, 13, 104, 87, 89, 207, 272, 10, 305, 303, - 275, 303, 303, 230, 6, 84, 459, 303, 303, 459, 116, 475, 303, 459, 225, 329, - 257, 232, 303, 303, 233, 209, 303, 122, 47, 103, 303, 112, 303, 303, 99, 303, - 303, 240, 286, 303, 303, 303, 320, 210, 323, 303, 289, 303, 301, 13, 329, 303, - 303, 303, 303, 233, 209, 303, 108, 50, 113, 256, 19, 303, 303, 99, 279, 303, - 240, 286, 303, 303, 303, 320, 210, 323, 11, 289, 173, 303, 329, 303, 303, 14, - 303, 233, 209, 303, 122, 54, 113, 204, 303, 303, 303, 99, 303, 303, 240, 286, - 191, 303, 303, 320, 210, 323, 303, 289, 329, 303, 303, 303, 303, 233, 209, 303, - 122, 77, 113, 303, 303, 303, 303, 99, 303, 303, 240, 286, 44, 39, 37, 320, 210, - 323, 329, 289, 303, 303, 303, 233, 209, 303, 122, 74, 113, 322, 308, 307, 285, - 99, 303, 303, 240, 286, 303, 303, 303, 320, 210, 323, 303, 289, 303, 303, 329, - 303, 303, 303, 303, 233, 209, 303, 122, 49, 113, 204, 22, 303, 303, 99, 156, - 303, 240, 286, 179, 303, 303, 320, 210, 323, 277, 289, 329, 41, 16, 327, 303, - 233, 209, 303, 96, 53, 113, 303, 303, 303, 303, 99, 190, 303, 240, 286, 44, 39, - 37, 320, 210, 323, 329, 289, 303, 303, 303, 233, 209, 303, 122, 60, 113, 322, - 308, 307, 285, 99, 303, 303, 240, 286, 303, 303, 303, 320, 210, 323, 303, 289, - 303, 303, 329, 303, 303, 303, 303, 233, 209, 303, 122, 71, 113, 204, 303, 303, - 303, 99, 170, 303, 240, 286, 179, 303, 303, 320, 210, 323, 277, 289, 329, 41, - 16, 327, 303, 233, 198, 303, 115, 61, 113, 303, 303, 303, 303, 99, 190, 303, - 240, 286, 44, 39, 37, 320, 210, 323, 329, 289, 303, 303, 303, 233, 97, 303, 81, - 45, 107, 322, 308, 307, 285, 99, 255, 303, 240, 286, 303, 303, 303, 320, 210, - 323, 303, 289, 303, 303, 329, 303, 303, 303, 303, 233, 209, 303, 122, 62, 113, - 204, 303, 303, 303, 99, 303, 303, 240, 286, 283, 303, 303, 320, 210, 323, 303, - 289, 329, 303, 303, 303, 303, 233, 209, 303, 100, 69, 113, 303, 303, 303, 303, - 99, 303, 303, 240, 286, 44, 39, 37, 320, 210, 323, 329, 289, 303, 303, 303, 233, - 200, 303, 122, 58, 113, 322, 308, 307, 285, 99, 303, 303, 240, 286, 303, 303, - 303, 320, 210, 323, 303, 289, 303, 303, 329, 303, 303, 303, 303, 233, 209, 303, - 102, 68, 113, 204, 303, 303, 303, 99, 303, 303, 240, 286, 241, 303, 303, 320, - 210, 323, 303, 289, 329, 303, 303, 303, 303, 233, 209, 303, 122, 55, 113, 303, - 303, 303, 303, 99, 303, 303, 240, 286, 44, 39, 37, 320, 210, 323, 329, 289, 303, - 303, 303, 233, 209, 303, 122, 65, 113, 322, 308, 307, 285, 99, 303, 303, 240, - 286, 303, 303, 303, 320, 210, 323, 303, 289, 303, 303, 329, 303, 303, 303, 303, - 233, 209, 303, 122, 66, 113, 204, 303, 303, 303, 99, 303, 303, 240, 286, 192, - 303, 303, 320, 210, 323, 303, 289, 329, 303, 303, 303, 303, 233, 209, 303, 122, - 59, 113, 303, 303, 303, 303, 99, 303, 303, 240, 286, 44, 39, 37, 320, 210, 323, - 329, 289, 303, 303, 303, 233, 209, 303, 122, 56, 113, 322, 308, 307, 285, 99, - 303, 303, 240, 286, 303, 303, 303, 320, 210, 323, 303, 289, 303, 303, 329, 303, - 303, 303, 303, 233, 209, 303, 122, 75, 113, 204, 303, 303, 303, 99, 303, 303, - 240, 286, 303, 303, 303, 320, 210, 323, 303, 289, 329, 303, 303, 118, 303, 233, - 209, 303, 122, 51, 113, 303, 303, 303, 303, 99, 303, 303, 240, 286, 44, 39, 37, - 320, 210, 323, 329, 289, 303, 303, 303, 233, 209, 303, 122, 72, 113, 322, 308, - 307, 285, 99, 303, 303, 240, 286, 303, 303, 303, 320, 210, 323, 303, 289, 303, - 303, 329, 303, 303, 303, 303, 233, 209, 303, 122, 63, 113, 204, 303, 303, 303, - 99, 151, 303, 240, 286, 179, 303, 303, 320, 210, 323, 277, 289, 329, 41, 16, - 327, 303, 233, 209, 303, 122, 64, 113, 303, 303, 303, 303, 99, 190, 303, 240, - 286, 44, 39, 37, 320, 210, 323, 329, 289, 303, 303, 303, 233, 209, 303, 122, 46, - 113, 322, 308, 307, 285, 99, 303, 303, 240, 286, 303, 303, 303, 320, 210, 323, - 303, 289, 303, 303, 329, 303, 303, 303, 303, 233, 98, 303, 81, 48, 107, 303, - 303, 303, 303, 99, 153, 303, 240, 286, 179, 303, 303, 320, 210, 323, 277, 289, - 329, 41, 16, 327, 303, 233, 209, 303, 122, 73, 113, 303, 303, 303, 303, 99, 190, - 303, 240, 286, 44, 39, 37, 320, 210, 323, 329, 289, 303, 303, 303, 233, 209, - 303, 122, 57, 113, 322, 308, 307, 285, 99, 303, 303, 240, 286, 303, 303, 303, - 320, 210, 323, 303, 289, 303, 204, 329, 303, 303, 303, 303, 233, 209, 204, 122, - 76, 113, 303, 412, 412, 303, 99, 303, 303, 240, 286, 303, 303, 250, 320, 210, - 323, 120, 289, 303, 303, 28, 99, 11, 303, 303, 229, 44, 39, 37, 14, 249, 303, - 303, 289, 44, 39, 37, 446, 303, 412, 412, 412, 303, 322, 308, 307, 285, 303, - 303, 446, 303, 322, 308, 307, 285, 303, 412, 412, 412, 412, 303, 303, 329, 303, - 303, 303, 303, 233, 209, 303, 123, 303, 113, 303, 303, 303, 303, 99, 303, 406, - 303, 328, 303, 303, 303, 320, 210, 323, 329, 289, 406, 204, 406, 233, 209, 406, - 130, 303, 113, 303, 295, 303, 406, 99, 406, 303, 406, 281, 303, 303, 226, 320, - 210, 323, 237, 289, 11, 303, 303, 475, 475, 303, 18, 14, 475, 459, 303, 204, 44, - 39, 37, 303, 303, 531, 52, 334, 259, 260, 238, 303, 303, 233, 303, 303, 303, - 322, 308, 307, 285, 303, 303, 303, 11, 459, 303, 303, 459, 303, 475, 14, 459, - 303, 329, 303, 44, 39, 37, 233, 209, 303, 125, 303, 113, 303, 303, 303, 303, 99, - 303, 303, 303, 322, 308, 307, 285, 320, 210, 323, 329, 289, 303, 303, 303, 233, - 209, 303, 124, 303, 113, 303, 303, 303, 303, 99, 303, 303, 303, 303, 303, 303, - 303, 320, 210, 323, 329, 289, 303, 303, 303, 233, 209, 303, 121, 303, 113, 329, - 303, 303, 303, 99, 233, 209, 303, 127, 303, 113, 303, 320, 210, 323, 99, 289, - 303, 303, 226, 303, 303, 303, 320, 210, 323, 303, 289, 475, 475, 329, 303, 226, - 475, 459, 233, 209, 303, 128, 303, 113, 475, 475, 303, 34, 99, 475, 459, 204, - 303, 303, 303, 303, 320, 210, 323, 303, 289, 303, 204, 303, 303, 459, 303, 303, - 459, 329, 475, 303, 459, 332, 233, 209, 303, 126, 459, 113, 303, 459, 303, 475, - 99, 459, 303, 303, 44, 39, 37, 303, 320, 210, 323, 303, 289, 303, 309, 44, 39, - 37, 303, 333, 303, 322, 308, 307, 285, 303, 303, 226, 303, 303, 303, 303, 322, - 308, 307, 285, 475, 475, 32, 303, 303, 475, 459, 303, 303, 303, 164, 475, 475, - 303, 179, 303, 475, 459, 204, 303, 277, 303, 303, 41, 16, 327, 303, 303, 303, - 303, 303, 303, 303, 303, 459, 303, 303, 459, 190, 475, 303, 459, 303, 303, 174, - 459, 303, 303, 459, 303, 475, 303, 459, 303, 303, 44, 39, 37, 303, 303, 303, - 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 322, 308, 307, 285,); - static public $yy_lookahead = array(11, 12, 13, 45, 15, 16, 76, 18, 19, 20, 14, 53, 72, 17, 25, 85, 86, 87, 29, 30, - 31, 32, 82, 34, 75, 36, 77, 78, 39, 80, 100, 42, 43, 44, 45, 95, 47, 16, 49, 10, - 51, 52, 1, 54, 48, 11, 12, 13, 59, 15, 16, 22, 18, 19, 20, 26, 7, 8, 9, 25, 12, - 13, 33, 29, 16, 31, 32, 26, 34, 14, 36, 50, 17, 39, 33, 46, 42, 43, 44, 45, 97, - 47, 34, 49, 10, 51, 52, 53, 54, 36, 11, 12, 13, 59, 15, 16, 22, 18, 19, 20, 26, - 48, 54, 48, 25, 21, 1, 33, 29, 13, 31, 32, 16, 34, 94, 36, 96, 97, 39, 35, 46, - 42, 43, 44, 45, 71, 47, 76, 49, 75, 51, 52, 1, 54, 80, 11, 12, 13, 59, 15, 16, - 10, 18, 19, 20, 49, 92, 51, 22, 25, 54, 100, 101, 29, 1, 31, 32, 26, 34, 100, - 36, 14, 14, 39, 33, 1, 42, 43, 44, 45, 17, 47, 46, 49, 10, 51, 52, 1, 54, 53, - 11, 12, 13, 59, 15, 16, 10, 18, 19, 20, 26, 27, 45, 45, 25, 76, 14, 33, 29, 52, - 31, 32, 26, 34, 22, 36, 96, 97, 39, 33, 75, 42, 43, 44, 45, 80, 47, 22, 49, 100, - 51, 52, 1, 54, 36, 11, 12, 13, 59, 15, 16, 10, 18, 19, 20, 11, 12, 11, 12, 25, - 16, 46, 16, 29, 45, 31, 32, 26, 34, 13, 36, 52, 16, 39, 33, 60, 42, 43, 44, 45, - 93, 47, 75, 49, 77, 51, 52, 80, 54, 36, 11, 12, 13, 59, 15, 16, 50, 18, 19, 20, - 17, 48, 11, 12, 25, 12, 13, 16, 29, 16, 31, 32, 65, 34, 75, 36, 77, 70, 39, 80, - 26, 42, 43, 44, 45, 93, 47, 33, 49, 13, 51, 52, 35, 54, 37, 11, 12, 13, 59, 15, - 16, 50, 18, 19, 20, 36, 35, 54, 37, 25, 22, 104, 105, 29, 45, 31, 32, 48, 34, - 81, 36, 13, 53, 39, 16, 36, 42, 43, 44, 45, 54, 47, 45, 49, 46, 51, 52, 48, 54, - 52, 11, 12, 13, 59, 15, 16, 12, 18, 19, 20, 11, 12, 11, 12, 25, 16, 13, 16, 29, - 51, 31, 32, 54, 34, 65, 36, 35, 17, 39, 70, 36, 42, 43, 44, 45, 35, 47, 37, 49, - 36, 51, 52, 80, 54, 53, 11, 12, 13, 59, 15, 16, 50, 18, 19, 20, 45, 93, 54, 95, - 25, 98, 81, 52, 29, 105, 31, 32, 28, 34, 81, 36, 13, 93, 39, 72, 36, 42, 43, 44, - 45, 16, 47, 26, 49, 82, 51, 52, 48, 54, 33, 11, 12, 13, 59, 15, 16, 72, 18, 19, - 20, 1, 51, 100, 76, 25, 1, 82, 72, 29, 10, 31, 32, 54, 34, 10, 36, 17, 82, 39, - 95, 17, 42, 43, 44, 45, 26, 47, 100, 49, 1, 51, 65, 33, 54, 1, 36, 70, 71, 59, - 73, 74, 75, 64, 65, 66, 67, 80, 48, 70, 83, 84, 48, 91, 37, 88, 89, 90, 72, 92, - 98, 16, 28, 3, 4, 5, 6, 7, 82, 102, 103, 11, 12, 72, 72, 15, 36, 76, 18, 19, 20, - 16, 53, 82, 82, 25, 100, 16, 65, 29, 72, 31, 32, 70, 71, 53, 73, 74, 75, 72, 82, - 100, 66, 80, 53, 69, 83, 84, 23, 82, 72, 88, 89, 90, 76, 92, 1, 2, 16, 72, 82, - 16, 65, 85, 86, 87, 103, 70, 71, 82, 73, 74, 75, 16, 77, 96, 97, 80, 100, 10, - 83, 84, 95, 14, 72, 88, 89, 90, 76, 92, 14, 65, 51, 41, 82, 26, 70, 71, 13, 73, - 74, 75, 33, 16, 91, 36, 80, 10, 76, 83, 84, 98, 100, 34, 88, 89, 90, 48, 92, 45, - 93, 65, 95, 16, 34, 99, 70, 71, 4, 73, 74, 75, 100, 16, 101, 82, 80, 11, 12, 83, - 84, 93, 16, 72, 88, 89, 90, 76, 92, 4, 80, 93, 26, 82, 28, 99, 11, 12, 13, 33, - 15, 94, 80, 18, 19, 20, 93, 11, 12, 80, 25, 100, 16, 95, 29, 65, 31, 32, 72, 2, - 70, 71, 26, 73, 74, 75, 11, 12, 82, 33, 80, 16, 17, 83, 84, 79, 93, 8, 88, 89, - 90, 95, 92, 4, 59, 60, 68, 80, 80, 99, 11, 12, 13, 106, 15, 106, 106, 18, 19, - 20, 45, 106, 106, 48, 25, 50, 106, 52, 29, 65, 31, 32, 106, 106, 70, 71, 106, - 73, 74, 75, 106, 77, 106, 106, 80, 106, 106, 83, 84, 106, 106, 106, 88, 89, 90, - 106, 92, 106, 59, 60, 65, 106, 106, 106, 106, 70, 71, 106, 73, 74, 75, 11, 12, - 106, 106, 80, 16, 106, 83, 84, 106, 106, 106, 88, 89, 90, 26, 92, 28, 106, 65, - 106, 106, 33, 106, 70, 71, 106, 73, 74, 75, 1, 106, 106, 106, 80, 106, 106, 83, - 84, 10, 106, 106, 88, 89, 90, 106, 92, 65, 106, 106, 106, 106, 70, 71, 106, 73, - 74, 75, 106, 106, 106, 106, 80, 106, 106, 83, 84, 38, 39, 40, 88, 89, 90, 65, - 92, 106, 106, 106, 70, 71, 106, 73, 74, 75, 55, 56, 57, 58, 80, 106, 106, 83, - 84, 106, 106, 106, 88, 89, 90, 106, 92, 106, 106, 65, 106, 106, 106, 106, 70, - 71, 106, 73, 74, 75, 1, 2, 106, 106, 80, 72, 106, 83, 84, 76, 106, 106, 88, 89, - 90, 82, 92, 65, 85, 86, 87, 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, 106, - 80, 100, 106, 83, 84, 38, 39, 40, 88, 89, 90, 65, 92, 106, 106, 106, 70, 71, - 106, 73, 74, 75, 55, 56, 57, 58, 80, 106, 106, 83, 84, 106, 106, 106, 88, 89, - 90, 106, 92, 106, 106, 65, 106, 106, 106, 106, 70, 71, 106, 73, 74, 75, 1, 106, - 106, 106, 80, 72, 106, 83, 84, 76, 106, 106, 88, 89, 90, 82, 92, 65, 85, 86, 87, - 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, 106, 80, 100, 106, 83, 84, 38, 39, - 40, 88, 89, 90, 65, 92, 106, 106, 106, 70, 71, 106, 73, 74, 75, 55, 56, 57, 58, - 80, 60, 106, 83, 84, 106, 106, 106, 88, 89, 90, 106, 92, 106, 106, 65, 106, 106, - 106, 106, 70, 71, 106, 73, 74, 75, 1, 106, 106, 106, 80, 106, 106, 83, 84, 10, - 106, 106, 88, 89, 90, 106, 92, 65, 106, 106, 106, 106, 70, 71, 106, 73, 74, 75, - 106, 106, 106, 106, 80, 106, 106, 83, 84, 38, 39, 40, 88, 89, 90, 65, 92, 106, - 106, 106, 70, 71, 106, 73, 74, 75, 55, 56, 57, 58, 80, 106, 106, 83, 84, 106, - 106, 106, 88, 89, 90, 106, 92, 106, 106, 65, 106, 106, 106, 106, 70, 71, 106, - 73, 74, 75, 1, 106, 106, 106, 80, 106, 106, 83, 84, 10, 106, 106, 88, 89, 90, - 106, 92, 65, 106, 106, 106, 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, 106, - 80, 106, 106, 83, 84, 38, 39, 40, 88, 89, 90, 65, 92, 106, 106, 106, 70, 71, - 106, 73, 74, 75, 55, 56, 57, 58, 80, 106, 106, 83, 84, 106, 106, 106, 88, 89, - 90, 106, 92, 106, 106, 65, 106, 106, 106, 106, 70, 71, 106, 73, 74, 75, 1, 106, - 106, 106, 80, 106, 106, 83, 84, 10, 106, 106, 88, 89, 90, 106, 92, 65, 106, 106, - 106, 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, 106, 80, 106, 106, 83, 84, 38, - 39, 40, 88, 89, 90, 65, 92, 106, 106, 106, 70, 71, 106, 73, 74, 75, 55, 56, 57, - 58, 80, 106, 106, 83, 84, 106, 106, 106, 88, 89, 90, 106, 92, 106, 106, 65, 106, - 106, 106, 106, 70, 71, 106, 73, 74, 75, 1, 106, 106, 106, 80, 106, 106, 83, 84, - 106, 106, 106, 88, 89, 90, 106, 92, 65, 106, 106, 21, 106, 70, 71, 106, 73, 74, - 75, 106, 106, 106, 106, 80, 106, 106, 83, 84, 38, 39, 40, 88, 89, 90, 65, 92, - 106, 106, 106, 70, 71, 106, 73, 74, 75, 55, 56, 57, 58, 80, 106, 106, 83, 84, - 106, 106, 106, 88, 89, 90, 106, 92, 106, 106, 65, 106, 106, 106, 106, 70, 71, - 106, 73, 74, 75, 1, 106, 106, 106, 80, 72, 106, 83, 84, 76, 106, 106, 88, 89, - 90, 82, 92, 65, 85, 86, 87, 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, 106, - 80, 100, 106, 83, 84, 38, 39, 40, 88, 89, 90, 65, 92, 106, 106, 106, 70, 71, - 106, 73, 74, 75, 55, 56, 57, 58, 80, 106, 106, 83, 84, 106, 106, 106, 88, 89, - 90, 106, 92, 106, 106, 65, 106, 106, 106, 106, 70, 71, 106, 73, 74, 75, 106, + const YY_SZ_ACTTAB = 2144; + const YY_SHIFT_USE_DFLT = -23; + const YY_SHIFT_MAX = 238; + const YY_REDUCE_USE_DFLT = -94; + const YY_REDUCE_MAX = 192; + const YYNOCODE = 107; + const YYSTACKDEPTH = 500; + const YYNSTATE = 335; + const YYNRULE = 195; + const YYERRORSYMBOL = 61; + const YYERRSYMDT = 'yy0'; + const YYFALLBACK = 0; + static public $yy_action = array(42, 246, 20, 355, 290, 101, 18, 256, 19, 272, 8, 131, 279, 275, 80, 246, 230, 6, + 84, 11, 256, 19, 446, 116, 78, 279, 14, 225, 299, 257, 232, 326, 235, 446, 26, + 114, 459, 204, 78, 40, 43, 314, 234, 459, 310, 224, 212, 329, 82, 1, 42, 291, + 233, 209, 228, 125, 79, 113, 222, 272, 8, 132, 99, 275, 196, 145, 230, 6, 84, + 94, 320, 210, 323, 116, 289, 277, 214, 225, 270, 257, 232, 106, 205, 149, 26, + 278, 177, 267, 269, 40, 43, 314, 234, 190, 220, 237, 212, 137, 82, 1, 316, 291, + 42, 324, 9, 214, 79, 216, 202, 27, 106, 272, 8, 134, 293, 275, 208, 446, 230, 6, + 84, 287, 259, 260, 238, 116, 246, 233, 446, 225, 11, 257, 232, 204, 235, 39, 26, + 14, 11, 23, 101, 40, 43, 314, 234, 14, 310, 239, 212, 78, 82, 1, 42, 291, 256, + 19, 21, 197, 79, 279, 252, 272, 8, 136, 189, 275, 208, 137, 230, 6, 84, 44, 37, + 204, 9, 116, 29, 231, 245, 225, 141, 257, 232, 402, 235, 333, 12, 322, 308, 307, + 285, 40, 43, 314, 234, 204, 310, 291, 212, 402, 82, 1, 42, 291, 204, 402, 402, + 31, 79, 101, 101, 272, 8, 134, 399, 275, 208, 291, 230, 6, 84, 402, 154, 204, + 254, 116, 185, 298, 402, 225, 399, 257, 232, 204, 194, 39, 26, 399, 204, 114, + 114, 40, 43, 314, 234, 36, 310, 313, 212, 11, 82, 1, 42, 291, 204, 213, 14, 140, + 79, 120, 174, 272, 8, 134, 99, 275, 195, 147, 230, 6, 84, 44, 37, 475, 475, 116, + 289, 277, 475, 225, 92, 257, 232, 204, 211, 39, 26, 322, 308, 307, 285, 40, 43, + 314, 234, 189, 310, 291, 212, 2, 82, 1, 42, 291, 118, 250, 331, 175, 79, 120, + 109, 272, 8, 134, 99, 275, 193, 277, 230, 6, 84, 44, 37, 249, 246, 116, 289, 17, + 7, 225, 278, 257, 232, 204, 235, 39, 26, 322, 308, 307, 285, 40, 43, 314, 234, + 447, 310, 78, 212, 105, 82, 1, 42, 291, 182, 101, 447, 237, 79, 475, 475, 272, + 8, 135, 475, 275, 208, 296, 230, 6, 84, 44, 37, 204, 36, 116, 292, 136, 190, + 225, 221, 257, 232, 357, 235, 39, 26, 322, 308, 307, 285, 40, 43, 314, 234, 144, + 310, 475, 212, 11, 82, 1, 42, 291, 93, 277, 14, 36, 79, 311, 246, 272, 8, 134, + 82, 275, 199, 291, 230, 6, 84, 44, 37, 189, 244, 116, 184, 298, 5, 225, 242, + 257, 232, 78, 235, 181, 26, 322, 308, 307, 285, 40, 43, 314, 234, 297, 310, 306, + 212, 304, 82, 1, 42, 291, 233, 204, 446, 223, 79, 190, 280, 272, 8, 133, 218, + 275, 208, 446, 230, 6, 84, 214, 321, 217, 183, 116, 106, 227, 459, 225, 161, + 257, 232, 24, 235, 459, 4, 163, 85, 302, 277, 40, 43, 314, 234, 142, 310, 277, + 212, 91, 82, 1, 42, 291, 204, 277, 258, 243, 79, 268, 278, 272, 8, 136, 367, + 275, 208, 158, 230, 6, 84, 236, 106, 190, 15, 116, 186, 298, 304, 225, 11, 257, + 232, 233, 235, 35, 12, 14, 90, 139, 446, 40, 43, 314, 234, 179, 310, 291, 212, + 178, 82, 446, 95, 291, 41, 16, 327, 329, 79, 3, 165, 143, 233, 209, 204, 117, + 70, 113, 312, 190, 277, 277, 99, 190, 361, 240, 286, 166, 33, 291, 320, 210, + 323, 278, 289, 14, 157, 277, 180, 261, 263, 264, 265, 177, 203, 294, 277, 272, + 8, 172, 278, 275, 325, 148, 230, 6, 84, 475, 475, 127, 187, 116, 475, 459, 329, + 225, 146, 257, 232, 233, 209, 330, 117, 70, 113, 152, 277, 278, 127, 99, 204, + 38, 240, 286, 190, 176, 119, 320, 210, 323, 459, 289, 247, 459, 171, 475, 274, + 459, 329, 188, 317, 319, 284, 233, 209, 282, 122, 63, 103, 3, 217, 219, 248, 99, + 25, 20, 240, 286, 167, 256, 19, 320, 210, 323, 279, 289, 30, 329, 276, 110, 271, + 318, 233, 209, 11, 122, 67, 113, 256, 19, 83, 14, 99, 279, 237, 240, 286, 262, + 315, 288, 320, 210, 323, 11, 289, 160, 162, 329, 280, 273, 14, 206, 233, 209, + 168, 122, 67, 113, 254, 159, 38, 86, 99, 278, 169, 240, 286, 138, 303, 104, 320, + 210, 323, 88, 289, 272, 10, 305, 111, 275, 87, 201, 230, 6, 84, 266, 89, 303, + 303, 116, 303, 303, 329, 225, 303, 257, 232, 233, 209, 303, 122, 67, 113, 303, + 303, 303, 303, 99, 303, 303, 240, 286, 303, 303, 303, 320, 210, 323, 303, 289, + 303, 303, 300, 13, 303, 303, 207, 303, 272, 10, 305, 303, 275, 303, 303, 230, 6, + 84, 303, 303, 303, 303, 116, 303, 303, 329, 225, 303, 257, 232, 233, 209, 303, + 122, 47, 103, 303, 112, 303, 303, 99, 303, 303, 240, 286, 303, 303, 303, 320, + 210, 323, 303, 289, 329, 303, 301, 13, 303, 233, 209, 303, 108, 50, 113, 303, + 303, 303, 303, 99, 150, 303, 240, 286, 179, 303, 303, 320, 210, 323, 277, 289, + 329, 41, 16, 327, 303, 233, 209, 303, 122, 54, 113, 303, 303, 303, 303, 99, 190, + 303, 240, 286, 303, 303, 155, 320, 210, 323, 182, 289, 329, 303, 303, 303, 277, + 233, 209, 303, 122, 77, 113, 303, 303, 303, 303, 99, 156, 303, 240, 286, 179, + 303, 190, 320, 210, 323, 277, 289, 329, 41, 16, 327, 303, 233, 209, 303, 122, + 74, 113, 303, 303, 303, 303, 99, 190, 303, 240, 286, 303, 303, 303, 320, 210, + 323, 303, 289, 329, 303, 303, 303, 303, 233, 209, 303, 122, 49, 113, 303, 303, + 303, 303, 99, 170, 303, 240, 286, 179, 303, 303, 320, 210, 323, 277, 289, 329, + 41, 16, 327, 303, 233, 209, 303, 96, 53, 113, 303, 303, 303, 303, 99, 190, 303, + 240, 286, 303, 303, 303, 320, 210, 323, 303, 289, 329, 303, 303, 303, 303, 233, + 209, 303, 122, 60, 113, 303, 303, 303, 303, 99, 151, 303, 240, 286, 179, 303, + 303, 320, 210, 323, 277, 289, 329, 41, 16, 327, 303, 233, 209, 303, 122, 71, + 113, 303, 303, 303, 303, 99, 190, 303, 240, 286, 303, 303, 303, 320, 210, 323, + 303, 289, 329, 303, 303, 303, 303, 233, 198, 303, 115, 61, 113, 303, 303, 303, + 303, 99, 153, 303, 240, 286, 179, 303, 303, 320, 210, 323, 277, 289, 329, 41, + 16, 327, 303, 233, 97, 303, 81, 45, 107, 303, 303, 303, 303, 99, 190, 303, 240, + 286, 303, 303, 303, 320, 210, 323, 303, 289, 329, 303, 303, 303, 303, 233, 209, + 303, 122, 62, 113, 303, 303, 303, 303, 99, 164, 303, 240, 286, 179, 303, 303, + 320, 210, 323, 277, 289, 329, 41, 16, 327, 303, 233, 209, 303, 100, 69, 113, + 303, 303, 303, 303, 99, 190, 303, 240, 286, 303, 303, 303, 320, 210, 323, 303, + 289, 329, 303, 303, 303, 303, 233, 200, 303, 122, 58, 113, 303, 303, 303, 303, + 99, 303, 303, 240, 286, 303, 303, 303, 320, 210, 323, 303, 289, 329, 303, 303, + 303, 303, 233, 209, 303, 102, 68, 113, 303, 303, 303, 303, 99, 303, 303, 240, + 286, 303, 303, 303, 320, 210, 323, 303, 289, 329, 303, 303, 303, 303, 233, 209, + 303, 122, 55, 113, 303, 303, 303, 303, 99, 303, 303, 240, 286, 303, 303, 303, + 320, 210, 323, 303, 289, 329, 303, 303, 303, 303, 233, 209, 303, 122, 65, 113, + 303, 303, 303, 303, 99, 303, 303, 240, 286, 303, 303, 303, 320, 210, 323, 303, + 289, 329, 303, 303, 303, 303, 233, 209, 303, 122, 66, 113, 303, 303, 303, 303, + 99, 303, 303, 240, 286, 303, 303, 303, 320, 210, 323, 303, 289, 329, 303, 303, + 303, 303, 233, 209, 303, 122, 59, 113, 303, 303, 303, 303, 99, 303, 303, 240, + 286, 303, 303, 303, 320, 210, 323, 303, 289, 329, 303, 303, 303, 303, 233, 209, + 303, 122, 56, 113, 303, 303, 303, 303, 99, 303, 303, 240, 286, 303, 303, 303, + 320, 210, 323, 303, 289, 329, 303, 303, 303, 303, 233, 209, 303, 122, 75, 113, + 303, 303, 303, 303, 99, 303, 303, 240, 286, 303, 303, 303, 320, 210, 323, 303, + 289, 329, 303, 303, 303, 303, 233, 209, 303, 122, 51, 113, 303, 303, 303, 303, + 99, 303, 303, 240, 286, 303, 303, 303, 320, 210, 323, 303, 289, 329, 303, 303, + 303, 303, 233, 209, 303, 122, 72, 113, 303, 303, 303, 303, 99, 303, 303, 240, + 286, 303, 303, 303, 320, 210, 323, 303, 289, 329, 303, 303, 303, 303, 233, 209, + 303, 122, 63, 113, 303, 303, 303, 303, 99, 303, 303, 240, 286, 303, 303, 303, + 320, 210, 323, 303, 289, 329, 303, 303, 303, 303, 233, 209, 303, 122, 64, 113, + 303, 303, 303, 303, 99, 303, 303, 240, 286, 303, 303, 303, 320, 210, 323, 303, + 289, 329, 303, 303, 303, 303, 233, 209, 303, 122, 46, 113, 303, 303, 303, 303, + 99, 303, 303, 240, 286, 303, 303, 303, 320, 210, 323, 303, 289, 329, 303, 303, + 303, 303, 233, 98, 303, 81, 48, 107, 303, 303, 303, 303, 99, 303, 303, 240, 286, + 303, 303, 303, 320, 210, 323, 303, 289, 329, 303, 303, 303, 303, 233, 209, 303, + 122, 73, 113, 303, 303, 303, 303, 99, 303, 303, 240, 286, 303, 303, 303, 320, + 210, 323, 303, 289, 329, 303, 303, 303, 303, 233, 209, 303, 122, 57, 113, 303, + 303, 303, 303, 99, 303, 303, 240, 286, 303, 303, 303, 320, 210, 323, 303, 289, + 329, 303, 204, 303, 39, 233, 209, 303, 122, 76, 113, 136, 303, 303, 251, 99, + 303, 303, 240, 286, 303, 303, 303, 320, 210, 323, 28, 289, 11, 412, 412, 412, + 303, 303, 303, 14, 303, 329, 303, 303, 44, 37, 233, 209, 303, 124, 253, 113, 82, + 303, 303, 291, 99, 303, 303, 303, 322, 308, 307, 285, 320, 210, 323, 303, 289, + 446, 303, 412, 412, 303, 303, 303, 329, 303, 303, 303, 446, 233, 209, 204, 123, + 39, 113, 412, 412, 412, 412, 99, 303, 295, 303, 328, 303, 256, 19, 320, 210, + 323, 279, 289, 303, 329, 303, 303, 303, 11, 233, 209, 11, 130, 173, 113, 14, + 303, 303, 14, 99, 44, 37, 303, 281, 303, 303, 303, 320, 210, 323, 226, 289, 204, + 303, 39, 303, 322, 308, 307, 285, 475, 475, 303, 18, 303, 475, 459, 531, 52, + 334, 259, 260, 238, 303, 303, 233, 303, 303, 11, 303, 303, 303, 303, 303, 303, + 14, 303, 303, 303, 303, 44, 37, 303, 459, 303, 303, 459, 303, 475, 303, 459, + 303, 303, 303, 303, 329, 322, 308, 307, 285, 233, 209, 303, 121, 303, 113, 303, + 303, 303, 303, 99, 303, 303, 303, 303, 303, 303, 303, 320, 210, 323, 329, 289, + 226, 303, 303, 233, 209, 303, 128, 303, 113, 303, 475, 475, 303, 99, 303, 475, + 459, 303, 303, 303, 303, 320, 210, 323, 303, 289, 303, 303, 303, 329, 303, 303, + 303, 303, 233, 209, 303, 129, 303, 113, 303, 303, 303, 459, 99, 303, 459, 226, + 475, 303, 459, 332, 320, 210, 323, 303, 289, 475, 475, 303, 34, 329, 475, 459, + 303, 303, 233, 209, 204, 126, 39, 113, 204, 22, 39, 303, 99, 303, 191, 303, 204, + 303, 39, 303, 320, 210, 323, 303, 289, 303, 459, 303, 303, 459, 303, 475, 303, + 459, 303, 303, 303, 303, 303, 303, 303, 303, 44, 37, 303, 303, 44, 37, 204, 303, + 39, 303, 303, 229, 44, 37, 303, 303, 322, 308, 307, 285, 322, 308, 307, 285, + 406, 303, 303, 303, 322, 308, 307, 285, 204, 303, 39, 406, 303, 406, 303, 303, + 406, 303, 303, 309, 44, 37, 204, 406, 39, 406, 303, 406, 303, 303, 303, 303, + 283, 303, 237, 303, 322, 308, 307, 285, 303, 303, 303, 303, 303, 303, 44, 37, + 204, 303, 39, 303, 303, 303, 303, 303, 303, 303, 241, 303, 44, 37, 322, 308, + 307, 285, 303, 255, 303, 303, 303, 303, 303, 303, 303, 303, 322, 308, 307, 285, + 226, 303, 204, 303, 39, 303, 44, 37, 303, 303, 475, 475, 192, 303, 303, 475, + 459, 303, 32, 303, 303, 303, 322, 308, 307, 285, 303, 303, 475, 475, 303, 303, + 303, 475, 459, 303, 303, 303, 303, 303, 44, 37, 303, 459, 303, 303, 459, 303, + 475, 303, 459, 303, 303, 303, 303, 303, 322, 308, 307, 285, 303, 459, 303, 303, + 459, 303, 475, 303, 459, 400, 303, 303, 303, 215, 303, 303, 303, 303, 303, 303, + 303, 303, 303, 303, 303, 400, 303, 303, 303, 303, 303, 303, 400, 303, 303, 446, + 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 446,); + static public $yy_lookahead = array(3, 23, 15, 11, 97, 18, 15, 12, 13, 12, 13, 14, 17, 16, 17, 23, 19, 20, 21, 27, + 12, 13, 37, 26, 46, 17, 34, 30, 31, 32, 33, 53, 35, 48, 37, 48, 45, 1, 46, 42, + 43, 44, 45, 52, 47, 50, 49, 65, 51, 52, 3, 54, 70, 71, 18, 73, 59, 75, 50, 12, + 13, 14, 80, 16, 17, 72, 19, 20, 21, 76, 88, 89, 90, 26, 92, 82, 75, 30, 77, 32, + 33, 80, 35, 93, 37, 95, 8, 9, 10, 42, 43, 44, 45, 100, 47, 45, 49, 45, 51, 52, + 53, 54, 3, 53, 52, 75, 59, 77, 78, 29, 80, 12, 13, 14, 11, 16, 17, 37, 19, 20, + 21, 64, 65, 66, 67, 26, 23, 70, 48, 30, 27, 32, 33, 1, 35, 3, 37, 34, 27, 15, + 18, 42, 43, 44, 45, 34, 47, 23, 49, 46, 51, 52, 3, 54, 12, 13, 13, 14, 59, 17, + 17, 12, 13, 14, 100, 16, 17, 45, 19, 20, 21, 39, 40, 1, 52, 26, 13, 14, 35, 30, + 17, 32, 33, 11, 35, 53, 37, 55, 56, 57, 58, 42, 43, 44, 45, 1, 47, 54, 49, 27, + 51, 52, 3, 54, 1, 11, 34, 15, 59, 18, 18, 12, 13, 14, 11, 16, 17, 54, 19, 20, + 21, 27, 28, 1, 94, 26, 96, 97, 34, 30, 27, 32, 33, 1, 35, 3, 37, 34, 1, 48, 48, + 42, 43, 44, 45, 36, 47, 38, 49, 27, 51, 52, 3, 54, 1, 71, 34, 14, 59, 75, 28, + 12, 13, 14, 80, 16, 17, 72, 19, 20, 21, 39, 40, 12, 13, 26, 92, 82, 17, 30, 37, + 32, 33, 1, 35, 3, 37, 55, 56, 57, 58, 42, 43, 44, 45, 100, 47, 54, 49, 37, 51, + 52, 3, 54, 22, 71, 53, 72, 59, 75, 48, 12, 13, 14, 80, 16, 17, 82, 19, 20, 21, + 39, 40, 89, 23, 26, 92, 15, 37, 30, 95, 32, 33, 1, 35, 3, 37, 55, 56, 57, 58, + 42, 43, 44, 45, 37, 47, 46, 49, 80, 51, 52, 3, 54, 76, 18, 48, 45, 59, 12, 13, + 12, 13, 14, 17, 16, 17, 98, 19, 20, 21, 39, 40, 1, 36, 26, 38, 14, 100, 30, 17, + 32, 33, 11, 35, 3, 37, 55, 56, 57, 58, 42, 43, 44, 45, 72, 47, 50, 49, 27, 51, + 52, 3, 54, 93, 82, 34, 36, 59, 38, 23, 12, 13, 14, 51, 16, 17, 54, 19, 20, 21, + 39, 40, 100, 17, 26, 96, 97, 36, 30, 17, 32, 33, 46, 35, 76, 37, 55, 56, 57, 58, + 42, 43, 44, 45, 53, 47, 60, 49, 65, 51, 52, 3, 54, 70, 1, 37, 50, 59, 100, 101, + 12, 13, 14, 45, 16, 17, 48, 19, 20, 21, 75, 53, 77, 14, 26, 80, 17, 45, 30, 72, + 32, 33, 29, 35, 52, 37, 72, 104, 105, 82, 42, 43, 44, 45, 72, 47, 82, 49, 76, + 51, 52, 3, 54, 1, 82, 66, 14, 59, 69, 95, 12, 13, 14, 11, 16, 17, 75, 19, 20, + 21, 18, 80, 100, 22, 26, 96, 97, 65, 30, 27, 32, 33, 70, 35, 13, 37, 34, 36, 14, + 37, 42, 43, 44, 45, 76, 47, 54, 49, 76, 51, 48, 81, 54, 85, 86, 87, 65, 59, 37, + 72, 72, 70, 71, 1, 73, 74, 75, 105, 100, 82, 82, 80, 100, 11, 83, 84, 72, 27, + 54, 88, 89, 90, 95, 92, 34, 72, 82, 81, 4, 5, 6, 7, 8, 102, 103, 82, 12, 13, 93, + 95, 16, 91, 93, 19, 20, 21, 12, 13, 98, 76, 26, 17, 18, 65, 30, 72, 32, 33, 70, + 71, 91, 73, 74, 75, 93, 82, 95, 98, 80, 1, 2, 83, 84, 100, 81, 17, 88, 89, 90, + 45, 92, 17, 48, 51, 50, 38, 52, 65, 17, 53, 53, 103, 70, 71, 17, 73, 74, 75, 37, + 77, 17, 17, 80, 24, 15, 83, 84, 51, 12, 13, 88, 89, 90, 17, 92, 41, 65, 14, 17, + 11, 35, 70, 71, 27, 73, 74, 75, 12, 13, 17, 34, 80, 17, 45, 83, 84, 5, 35, 17, + 88, 89, 90, 27, 92, 29, 93, 65, 101, 82, 34, 99, 70, 71, 93, 73, 74, 75, 94, 93, + 2, 80, 80, 95, 93, 83, 84, 80, 5, 68, 88, 89, 90, 80, 92, 12, 13, 14, 79, 16, + 80, 99, 19, 20, 21, 9, 80, 106, 106, 26, 106, 106, 65, 30, 106, 32, 33, 70, 71, + 106, 73, 74, 75, 106, 106, 106, 106, 80, 106, 106, 83, 84, 106, 106, 106, 88, + 89, 90, 106, 92, 106, 5, 59, 60, 106, 106, 99, 106, 12, 13, 14, 106, 16, 106, + 106, 19, 20, 21, 106, 106, 106, 106, 26, 106, 106, 65, 30, 106, 32, 33, 70, 71, + 106, 73, 74, 75, 106, 77, 106, 106, 80, 106, 106, 83, 84, 106, 106, 106, 88, 89, + 90, 106, 92, 65, 106, 59, 60, 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, 106, + 80, 72, 106, 83, 84, 76, 106, 106, 88, 89, 90, 82, 92, 65, 85, 86, 87, 106, 70, + 71, 106, 73, 74, 75, 106, 106, 106, 106, 80, 100, 106, 83, 84, 106, 106, 72, 88, + 89, 90, 76, 92, 65, 106, 106, 106, 82, 70, 71, 106, 73, 74, 75, 106, 106, 106, + 106, 80, 72, 106, 83, 84, 76, 106, 100, 88, 89, 90, 82, 92, 65, 85, 86, 87, 106, + 70, 71, 106, 73, 74, 75, 106, 106, 106, 106, 80, 100, 106, 83, 84, 106, 106, + 106, 88, 89, 90, 106, 92, 65, 106, 106, 106, 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, 106, 80, 72, 106, 83, 84, 76, 106, 106, 88, 89, 90, 82, 92, 65, 85, 86, 87, 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, 106, 80, 100, 106, 83, 84, - 38, 39, 40, 88, 89, 90, 65, 92, 106, 106, 106, 70, 71, 106, 73, 74, 75, 55, 56, - 57, 58, 80, 106, 106, 83, 84, 106, 106, 106, 88, 89, 90, 106, 92, 106, 1, 65, - 106, 106, 106, 106, 70, 71, 1, 73, 74, 75, 106, 1, 2, 106, 80, 106, 106, 83, 84, - 106, 106, 71, 88, 89, 90, 75, 92, 106, 106, 24, 80, 26, 106, 106, 37, 38, 39, - 40, 33, 89, 106, 106, 92, 38, 39, 40, 36, 106, 38, 39, 40, 106, 55, 56, 57, 58, - 106, 106, 48, 106, 55, 56, 57, 58, 106, 55, 56, 57, 58, 106, 106, 65, 106, 106, - 106, 106, 70, 71, 106, 73, 106, 75, 106, 106, 106, 106, 80, 106, 10, 106, 84, - 106, 106, 106, 88, 89, 90, 65, 92, 21, 1, 23, 70, 71, 26, 73, 106, 75, 106, 10, - 106, 33, 80, 35, 106, 37, 84, 106, 106, 2, 88, 89, 90, 45, 92, 26, 106, 106, 11, - 12, 106, 14, 33, 16, 17, 106, 1, 38, 39, 40, 106, 106, 62, 63, 64, 65, 66, 67, - 106, 106, 70, 106, 106, 106, 55, 56, 57, 58, 106, 106, 106, 26, 45, 106, 106, - 48, 106, 50, 33, 52, 106, 65, 106, 38, 39, 40, 70, 71, 106, 73, 106, 75, 106, - 106, 106, 106, 80, 106, 106, 106, 55, 56, 57, 58, 88, 89, 90, 65, 92, 106, 106, - 106, 70, 71, 106, 73, 106, 75, 106, 106, 106, 106, 80, 106, 106, 106, 106, 106, - 106, 106, 88, 89, 90, 65, 92, 106, 106, 106, 70, 71, 106, 73, 106, 75, 65, 106, - 106, 106, 80, 70, 71, 106, 73, 106, 75, 106, 88, 89, 90, 80, 92, 106, 106, 2, - 106, 106, 106, 88, 89, 90, 106, 92, 11, 12, 65, 106, 2, 16, 17, 70, 71, 106, 73, - 106, 75, 11, 12, 106, 14, 80, 16, 17, 1, 106, 106, 106, 106, 88, 89, 90, 106, - 92, 106, 1, 106, 106, 45, 106, 106, 48, 65, 50, 106, 52, 53, 70, 71, 106, 73, - 45, 75, 106, 48, 106, 50, 80, 52, 106, 106, 38, 39, 40, 106, 88, 89, 90, 106, - 92, 106, 37, 38, 39, 40, 106, 53, 106, 55, 56, 57, 58, 106, 106, 2, 106, 106, - 106, 106, 55, 56, 57, 58, 11, 12, 2, 106, 106, 16, 17, 106, 106, 106, 72, 11, - 12, 106, 76, 106, 16, 17, 1, 106, 82, 106, 106, 85, 86, 87, 106, 106, 106, 106, - 106, 106, 106, 106, 45, 106, 106, 48, 100, 50, 106, 52, 106, 106, 27, 45, 106, - 106, 48, 106, 50, 106, 52, 106, 106, 38, 39, 40, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 55, 56, 57, 58,); - const YY_SHIFT_USE_DFLT = -43; - const YY_SHIFT_MAX = 238; - static public $yy_shift_ofst = array(519, 349, 79, 79, 394, 349, 394, 79, -11, 34, -11, 214, 79, 79, 79, 79, 79, 79, - 169, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 304, 79, 259, 214, 79, 79, 79, - 124, 124, 439, 439, 439, 439, 439, 439, 1665, 1571, 1701, 1701, 1701, 1701, - 1701, 519, 1934, 1239, 1323, 1155, 1071, 987, 1858, 903, 1847, 819, 1563, 1407, - 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1491, 1491, - 96, 664, 459, 221, 328, 41, 363, 718, 779, 645, 675, 675, 363, 41, 363, 370, - 41, 574, 164, 74, 29, 271, 131, 273, 176, -4, 49, 224, 224, 55, 464, 236, 153, - 274, 274, 463, 236, 488, 416, 493, 418, 105, 263, 105, 105, 105, 105, 105, 105, - 105, 105, 263, -43, 1830, 1817, 1683, 1906, 1917, 694, 48, 226, 359, 147, 354, - 274, 274, 274, 274, 274, 274, 199, 199, 274, 274, 199, 274, 296, 274, 274, 274, - 182, 199, 296, 274, 199, 274, 274, 274, 274, 307, 199, 199, 274, 307, 199, 296, - 296, 274, 696, 708, 105, 105, 696, 105, 105, 188, 263, 263, 263, 105, -43, -43, - -43, -43, -43, 1576, 1644, 588, 289, 361, 126, 399, 195, 360, 84, 351, 21, -42, - 291, 277, 53, 308, 233, 148, 309, 560, 595, 576, 544, 476, 564, 510, 501, 410, - 636, 424, 524, 530, 561, 499, 504, 571, 604, 188, 606, 616, 598, 593, 626, 609, - 643,); - const YY_REDUCE_USE_DFLT = -71; - const YY_REDUCE_MAX = 192; - static public $yy_reduce_ofst = array(1646, 426, 629, 575, 516, 482, 683, 545, 1416, 940, 966, 1024, 1192, 1050, - 1080, 1108, 1134, 1164, 912, 1218, 1360, 1470, 1500, 1444, 1248, 1386, 1332, - 1302, 1276, 996, 882, 828, 772, 856, 714, 744, 798, 1572, 1598, 1765, 1672, - 1724, 1735, 1698, 1801, 1425, 921, 1855, 1425, 1341, 497, 837, 438, -70, - -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, - -70, -70, -70, -70, -70, -70, -70, -70, -70, 1516, 227, 531, 590, 54, 460, - -51, 319, 625, 506, 384, -60, 187, 362, 219, 20, 445, 51, 119, 395, 395, - 323, 119, 322, 119, 110, 495, 546, 323, 110, 119, 532, 551, 486, 477, 110, - 421, 119, 461, 119, 135, 387, 110, 119, 119, 119, 119, 119, 119, 119, 119, - 498, 119, 577, 577, 577, 577, 577, 577, 601, 597, 577, 577, 592, 572, 572, - 572, 572, 572, 572, 586, 586, 572, 572, 586, 572, 589, 572, 572, 572, 635, - 586, 647, 572, 586, 572, 572, 572, 572, 567, 586, 586, 572, 622, 586, 608, - 646, 572, 552, 657, 59, 59, 552, 59, 59, 167, -17, -17, -17, 59, 258, 348, - 340, 212, 339,); - static public $yyExpectedTokens = array(array(3, 4, 5, 6, 7, 11, 12, 15, 18, 19, 20, 25, 29, 31, 32,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, + 106, 106, 106, 88, 89, 90, 106, 92, 65, 106, 106, 106, 106, 70, 71, 106, 73, 74, + 75, 106, 106, 106, 106, 80, 72, 106, 83, 84, 76, 106, 106, 88, 89, 90, 82, 92, + 65, 85, 86, 87, 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, 106, 80, 100, 106, + 83, 84, 106, 106, 106, 88, 89, 90, 106, 92, 65, 106, 106, 106, 106, 70, 71, 106, + 73, 74, 75, 106, 106, 106, 106, 80, 72, 106, 83, 84, 76, 106, 106, 88, 89, 90, + 82, 92, 65, 85, 86, 87, 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, 106, 80, + 100, 106, 83, 84, 106, 106, 106, 88, 89, 90, 106, 92, 65, 106, 106, 106, 106, + 70, 71, 106, 73, 74, 75, 106, 106, 106, 106, 80, 72, 106, 83, 84, 76, 106, 106, + 88, 89, 90, 82, 92, 65, 85, 86, 87, 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, + 106, 80, 100, 106, 83, 84, 106, 106, 106, 88, 89, 90, 106, 92, 65, 106, 106, + 106, 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, 106, 80, 106, 106, 83, 84, + 106, 106, 106, 88, 89, 90, 106, 92, 65, 106, 106, 106, 106, 70, 71, 106, 73, 74, + 75, 106, 106, 106, 106, 80, 106, 106, 83, 84, 106, 106, 106, 88, 89, 90, 106, + 92, 65, 106, 106, 106, 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, 106, 80, + 106, 106, 83, 84, 106, 106, 106, 88, 89, 90, 106, 92, 65, 106, 106, 106, 106, + 70, 71, 106, 73, 74, 75, 106, 106, 106, 106, 80, 106, 106, 83, 84, 106, 106, + 106, 88, 89, 90, 106, 92, 65, 106, 106, 106, 106, 70, 71, 106, 73, 74, 75, 106, + 106, 106, 106, 80, 106, 106, 83, 84, 106, 106, 106, 88, 89, 90, 106, 92, 65, + 106, 106, 106, 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, 106, 80, 106, 106, + 83, 84, 106, 106, 106, 88, 89, 90, 106, 92, 65, 106, 106, 106, 106, 70, 71, 106, + 73, 74, 75, 106, 106, 106, 106, 80, 106, 106, 83, 84, 106, 106, 106, 88, 89, 90, + 106, 92, 65, 106, 106, 106, 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, 106, + 80, 106, 106, 83, 84, 106, 106, 106, 88, 89, 90, 106, 92, 65, 106, 106, 106, + 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, 106, 80, 106, 106, 83, 84, 106, + 106, 106, 88, 89, 90, 106, 92, 65, 106, 106, 106, 106, 70, 71, 106, 73, 74, 75, + 106, 106, 106, 106, 80, 106, 106, 83, 84, 106, 106, 106, 88, 89, 90, 106, 92, + 65, 106, 106, 106, 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, 106, 80, 106, + 106, 83, 84, 106, 106, 106, 88, 89, 90, 106, 92, 65, 106, 106, 106, 106, 70, 71, + 106, 73, 74, 75, 106, 106, 106, 106, 80, 106, 106, 83, 84, 106, 106, 106, 88, + 89, 90, 106, 92, 65, 106, 106, 106, 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, + 106, 80, 106, 106, 83, 84, 106, 106, 106, 88, 89, 90, 106, 92, 65, 106, 106, + 106, 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, 106, 80, 106, 106, 83, 84, + 106, 106, 106, 88, 89, 90, 106, 92, 65, 106, 106, 106, 106, 70, 71, 106, 73, 74, + 75, 106, 106, 106, 106, 80, 106, 106, 83, 84, 106, 106, 106, 88, 89, 90, 106, + 92, 65, 106, 106, 106, 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, 106, 80, + 106, 106, 83, 84, 106, 106, 106, 88, 89, 90, 106, 92, 65, 106, 1, 106, 3, 70, + 71, 106, 73, 74, 75, 14, 106, 106, 17, 80, 106, 106, 83, 84, 106, 106, 106, 88, + 89, 90, 25, 92, 27, 1, 2, 3, 106, 106, 106, 34, 106, 65, 106, 106, 39, 40, 70, + 71, 106, 73, 49, 75, 51, 106, 106, 54, 80, 106, 106, 106, 55, 56, 57, 58, 88, + 89, 90, 106, 92, 37, 106, 39, 40, 106, 106, 106, 65, 106, 106, 106, 48, 70, 71, + 1, 73, 3, 75, 55, 56, 57, 58, 80, 106, 11, 106, 84, 106, 12, 13, 88, 89, 90, 17, + 92, 106, 65, 106, 106, 106, 27, 70, 71, 27, 73, 29, 75, 34, 106, 106, 34, 80, + 39, 40, 106, 84, 106, 106, 106, 88, 89, 90, 2, 92, 1, 106, 3, 106, 55, 56, 57, + 58, 12, 13, 106, 15, 106, 17, 18, 62, 63, 64, 65, 66, 67, 106, 106, 70, 106, + 106, 27, 106, 106, 106, 106, 106, 106, 34, 106, 106, 106, 106, 39, 40, 106, 45, + 106, 106, 48, 106, 50, 106, 52, 106, 106, 106, 106, 65, 55, 56, 57, 58, 70, 71, + 106, 73, 106, 75, 106, 106, 106, 106, 80, 106, 106, 106, 106, 106, 106, 106, 88, + 89, 90, 65, 92, 2, 106, 106, 70, 71, 106, 73, 106, 75, 106, 12, 13, 106, 80, + 106, 17, 18, 106, 106, 106, 106, 88, 89, 90, 106, 92, 106, 106, 106, 65, 106, + 106, 106, 106, 70, 71, 106, 73, 106, 75, 106, 106, 106, 45, 80, 106, 48, 2, 50, + 106, 52, 53, 88, 89, 90, 106, 92, 12, 13, 106, 15, 65, 17, 18, 106, 106, 70, 71, + 1, 73, 3, 75, 1, 2, 3, 106, 80, 106, 11, 106, 1, 106, 3, 106, 88, 89, 90, 106, + 92, 106, 45, 106, 106, 48, 106, 50, 106, 52, 106, 106, 106, 106, 106, 106, 106, + 106, 39, 40, 106, 106, 39, 40, 1, 106, 3, 106, 106, 38, 39, 40, 106, 106, 55, + 56, 57, 58, 55, 56, 57, 58, 11, 106, 106, 106, 55, 56, 57, 58, 1, 106, 3, 22, + 106, 24, 106, 106, 27, 106, 106, 38, 39, 40, 1, 34, 3, 36, 106, 38, 106, 106, + 106, 106, 11, 106, 45, 106, 55, 56, 57, 58, 106, 106, 106, 106, 106, 106, 39, + 40, 1, 106, 3, 106, 106, 106, 106, 106, 106, 106, 11, 106, 39, 40, 55, 56, 57, + 58, 106, 60, 106, 106, 106, 106, 106, 106, 106, 106, 55, 56, 57, 58, 2, 106, 1, + 106, 3, 106, 39, 40, 106, 106, 12, 13, 11, 106, 106, 17, 18, 106, 2, 106, 106, + 106, 55, 56, 57, 58, 106, 106, 12, 13, 106, 106, 106, 17, 18, 106, 106, 106, + 106, 106, 39, 40, 106, 45, 106, 106, 48, 106, 50, 106, 52, 106, 106, 106, 106, + 106, 55, 56, 57, 58, 106, 45, 106, 106, 48, 106, 50, 106, 52, 11, 106, 106, 106, + 15, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 27, 106, 106, 106, + 106, 106, 106, 34, 106, 106, 37, 106, 106, 106, 106, 106, 106, 106, 106, 106, + 106, 48,); + static public $yy_shift_ofst = array(585, 399, 99, 99, 449, 399, 449, 99, -3, 47, -3, 249, 99, 99, 99, 99, 99, 99, + 199, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 349, 99, 299, 249, 99, 99, 99, + 149, 149, 499, 499, 499, 499, 499, 499, 1695, 1618, 1745, 1745, 1745, 1745, + 1745, 585, 232, 2038, 282, 2004, 1978, 1964, 1938, 1898, 132, 1894, 1906, 332, + 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 382, 382, 1614, 723, + 503, 372, 363, 222, 243, 776, 1698, 676, 657, 657, 243, 222, 243, 122, 222, + 629, 194, 103, -8, 8, 172, 163, 203, -13, 78, 142, 142, 192, 563, 460, 36, 111, + 111, 191, 460, 253, 551, 454, 525, 237, 337, 237, 237, 237, 237, 237, 237, 337, + -23, -23, -23, 1872, 1825, 1742, 2035, 2053, 595, 143, -5, 261, -9, 522, 111, + 111, 111, 111, 111, 111, 52, 52, 111, 111, 52, 111, 493, 111, 111, 111, 124, + 52, 493, 111, 52, 111, 111, 111, 111, 433, 52, 52, 111, 433, 52, 493, 493, 111, + 718, 736, 237, 237, 718, 237, 237, 291, 337, 337, 337, 237, -23, -23, -23, -23, + -23, 1645, 1946, 2095, 419, 347, -22, 80, 387, 371, 502, 392, 407, 50, 338, + 209, -15, 301, 262, 312, 308, 617, 650, 645, 640, 608, 644, 598, 597, 593, 682, + 413, 625, 632, 638, 622, 619, 635, 664, 291, 662, 669, 646, 649, 673, 663, + 692,); + static public $yy_reduce_ofst = array(1699, 492, 687, 642, 583, 549, 740, 612, 1468, 992, 1020, 1076, 1244, 1104, + 1132, 1160, 1188, 1216, 964, 1272, 1412, 1524, 1552, 1496, 1300, 1440, 1384, + 1356, 1328, 1048, 936, 880, 824, 908, 768, 796, 852, 1624, 1653, 1791, -18, + 1734, 1760, 1589, 1823, 1001, 889, 1057, 1001, 945, 777, 833, 57, 469, 469, + 469, 469, 469, 469, 469, 469, 469, 469, 469, 469, 469, 469, 469, 469, 469, + 469, 469, 469, 469, 469, 469, 469, 469, 234, 384, 423, 811, 184, -7, 30, + 463, 505, 488, 415, 235, 1, 195, 396, 130, 323, 359, 278, 408, 408, -10, + 278, 269, 278, 330, 440, 532, -10, 330, 278, 530, 534, 544, 514, 330, 511, + 278, 489, 278, 442, 473, 330, 278, 278, 278, 278, 278, 278, 430, 278, 278, + 278, 621, 621, 621, 621, 621, 621, 647, 628, 621, 621, 626, 627, 627, 627, + 627, 627, 627, 624, 624, 627, 627, 624, 627, 641, 627, 627, 627, 659, 624, + 666, 627, 624, 627, 627, 627, 627, 613, 624, 624, 627, 631, 624, 653, 660, + 627, 607, 661, 64, 64, 607, 64, 64, 311, -93, -93, -93, 64, 471, 554, 507, + 506, 510,); + static public $yyExpectedTokens = array(array(4, 5, 6, 7, 8, 12, 13, 16, 19, 20, 21, 26, 30, 32, 33,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 52, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 52, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 52, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 52, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 52, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 52, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 52, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 52, 53, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 52, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 52, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 52, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 52, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 52, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 30, 31, 32, 34, 36, 39, 42, - 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 52, 53, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 30, 31, 32, 34, 36, 39, 42, - 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 52, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 52, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 52, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 52, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 52, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 52, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 52, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 52, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 52, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 52, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 52, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 52, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 52, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 52, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 52, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 52, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 52, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 52, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 52, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 52, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 52, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 52, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 52, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 52, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 52, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 52, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 52, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 52, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 54, 59,), - array(11, 12, 13, 15, 16, 18, 19, 20, 25, 29, 31, 32, 34, 36, 39, 42, 43, - 44, 45, 47, 49, 51, 54, 59,), - array(1, 10, 26, 33, 38, 39, 40, 55, 56, 57, 58,), - array(1, 24, 26, 33, 38, 39, 40, 55, 56, 57, 58,), - array(1, 26, 33, 38, 39, 40, 55, 56, 57, 58,), - array(1, 26, 33, 38, 39, 40, 55, 56, 57, 58,), - array(1, 26, 33, 38, 39, 40, 55, 56, 57, 58,), - array(1, 26, 33, 38, 39, 40, 55, 56, 57, 58,), - array(1, 26, 33, 38, 39, 40, 55, 56, 57, 58,), - array(3, 4, 5, 6, 7, 11, 12, 15, 18, 19, 20, 25, 29, 31, 32,), - array(1, 27, 38, 39, 40, 55, 56, 57, 58,), - array(1, 10, 38, 39, 40, 55, 56, 57, 58,), - array(1, 21, 38, 39, 40, 55, 56, 57, 58,), - array(1, 10, 38, 39, 40, 55, 56, 57, 58,), - array(1, 10, 38, 39, 40, 55, 56, 57, 58,), - array(1, 38, 39, 40, 55, 56, 57, 58, 60,), - array(1, 37, 38, 39, 40, 55, 56, 57, 58,), - array(1, 2, 38, 39, 40, 55, 56, 57, 58,), - array(1, 38, 39, 40, 53, 55, 56, 57, 58,), - array(1, 10, 38, 39, 40, 55, 56, 57, 58,), - array(1, 37, 38, 39, 40, 55, 56, 57, 58,), - array(1, 38, 39, 40, 55, 56, 57, 58,), - array(1, 38, 39, 40, 55, 56, 57, 58,), - array(1, 38, 39, 40, 55, 56, 57, 58,), - array(1, 38, 39, 40, 55, 56, 57, 58,), - array(1, 38, 39, 40, 55, 56, 57, 58,), - array(1, 38, 39, 40, 55, 56, 57, 58,), - array(1, 38, 39, 40, 55, 56, 57, 58,), - array(1, 38, 39, 40, 55, 56, 57, 58,), - array(1, 38, 39, 40, 55, 56, 57, 58,), - array(1, 38, 39, 40, 55, 56, 57, 58,), - array(1, 38, 39, 40, 55, 56, 57, 58,), - array(1, 38, 39, 40, 55, 56, 57, 58,), array(38, 39, 40, 55, 56, 57, 58,), - array(38, 39, 40, 55, 56, 57, 58,), array(13, 16, 49, 51, 54,), - array(4, 11, 12, 13, 15, 18, 19, 20, 25, 29, 31, 32, 59, 60,), - array(1, 10, 17, 26, 33, 36, 48,), array(1, 10, 26, 33,), - array(13, 16, 51, 54,), array(1, 26, 33,), array(13, 36, 54,), - array(4, 11, 12, 13, 15, 18, 19, 20, 25, 29, 31, 32, 59, 60,), - array(11, 12, 16, 26, 28, 33,), array(11, 12, 16, 26, 28, 33,), - array(11, 12, 16, 26, 33,), array(11, 12, 16, 26, 33,), array(13, 36, 54,), - array(1, 26, 33,), array(13, 36, 54,), array(17, 45, 52,), - array(1, 26, 33,), array(1, 2,), array(1, 10, 26, 27, 33,), - array(10, 22, 26, 33, 46,), array(10, 22, 26, 33, 46,), - array(11, 12, 16, 50,), array(1, 10, 26, 33,), array(12, 13, 16, 54,), - array(1, 10, 26, 33,), array(14, 17, 48,), array(7, 8, 9,), - array(11, 12, 16,), array(11, 12, 16,), array(14, 17, 48,), array(1, 10,), - array(13, 16,), array(1, 17,), array(26, 33,), array(26, 33,), - array(17, 48,), array(13, 16,), array(1, 53,), array(26, 33,), - array(1, 28,), array(13, 54,), array(1,), array(17,), array(1,), array(1,), - array(1,), array(1,), array(1,), array(1,), array(1,), array(1,), - array(17,), array(), array(2, 11, 12, 14, 16, 17, 45, 48, 50, 52,), - array(2, 11, 12, 16, 17, 45, 48, 50, 52, 53,), - array(2, 11, 12, 14, 16, 17, 45, 48, 50, 52,), - array(2, 11, 12, 16, 17, 45, 48, 50, 52,), - array(2, 11, 12, 16, 17, 45, 48, 50, 52,), - array(11, 12, 16, 17, 45, 48, 50, 52,), array(12, 13, 16, 34, 54,), - array(11, 12, 16, 50,), array(11, 12, 16,), array(14, 45, 52,), - array(12, 36,), array(26, 33,), array(26, 33,), array(26, 33,), - array(26, 33,), array(26, 33,), array(26, 33,), array(45, 52,), - array(45, 52,), array(26, 33,), array(26, 33,), array(45, 52,), - array(26, 33,), array(13, 54,), array(26, 33,), array(26, 33,), - array(26, 33,), array(14, 22,), array(45, 52,), array(13, 54,), - array(26, 33,), array(45, 52,), array(26, 33,), array(26, 33,), - array(26, 33,), array(26, 33,), array(45, 52,), array(45, 52,), - array(45, 52,), array(26, 33,), array(45, 52,), array(45, 52,), - array(13, 54,), array(13, 54,), array(26, 33,), array(2,), array(8,), - array(1,), array(1,), array(2,), array(1,), array(1,), array(36,), - array(17,), array(17,), array(17,), array(1,), array(), array(), array(), - array(), array(), array(1, 2, 36, 38, 39, 40, 48, 55, 56, 57, 58,), - array(10, 21, 23, 26, 33, 35, 37, 45,), array(10, 14, 26, 33, 36, 48,), - array(36, 45, 48, 53,), array(11, 12, 16, 50,), array(22, 46, 53,), - array(28, 36, 48,), array(22, 46, 60,), array(35, 37,), array(21, 35,), - array(35, 53,), array(16, 50,), array(45, 53,), array(35, 37,), - array(35, 37,), array(36, 48,), array(22, 46,), array(36, 48,), - array(14, 45,), array(36, 48,), array(51,), array(14,), array(16,), - array(23,), array(37,), array(16,), array(53,), array(53,), array(51,), - array(16,), array(16,), array(16,), array(16,), array(16,), array(36,), - array(16,), array(41,), array(13,), array(36,), array(16,), array(10,), - array(34,), array(45,), array(16,), array(34,), array(4,), array(), array(), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 52, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 52, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 52, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 52, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 52, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 52, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 52, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 52, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 52, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 52, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 52, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 52, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 52, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 52, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 52, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 52, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 52, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 52, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 52, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 52, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 52, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 52, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 52, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 52, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 52, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 52, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 52, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 52, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 54, 59,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, + 45, 47, 49, 51, 54, 59,), + array(1, 3, 11, 27, 34, 39, 40, 55, 56, 57, 58,), + array(1, 3, 25, 27, 34, 39, 40, 55, 56, 57, 58,), + array(1, 3, 27, 34, 39, 40, 55, 56, 57, 58,), + array(1, 3, 27, 34, 39, 40, 55, 56, 57, 58,), + array(1, 3, 27, 34, 39, 40, 55, 56, 57, 58,), + array(1, 3, 27, 34, 39, 40, 55, 56, 57, 58,), + array(1, 3, 27, 34, 39, 40, 55, 56, 57, 58,), + array(4, 5, 6, 7, 8, 12, 13, 16, 19, 20, 21, 26, 30, 32, 33,), + array(1, 3, 28, 39, 40, 55, 56, 57, 58,), + array(1, 3, 11, 39, 40, 55, 56, 57, 58,), + array(1, 3, 22, 39, 40, 55, 56, 57, 58,), + array(1, 3, 11, 39, 40, 55, 56, 57, 58,), + array(1, 3, 11, 39, 40, 55, 56, 57, 58,), + array(1, 3, 39, 40, 55, 56, 57, 58, 60,), + array(1, 3, 38, 39, 40, 55, 56, 57, 58,), + array(1, 2, 3, 39, 40, 55, 56, 57, 58,), + array(1, 3, 39, 40, 53, 55, 56, 57, 58,), + array(1, 3, 11, 39, 40, 55, 56, 57, 58,), + array(1, 3, 38, 39, 40, 55, 56, 57, 58,), + array(1, 3, 39, 40, 55, 56, 57, 58,), array(1, 3, 39, 40, 55, 56, 57, 58,), + array(1, 3, 39, 40, 55, 56, 57, 58,), array(1, 3, 39, 40, 55, 56, 57, 58,), + array(1, 3, 39, 40, 55, 56, 57, 58,), array(1, 3, 39, 40, 55, 56, 57, 58,), + array(1, 3, 39, 40, 55, 56, 57, 58,), array(1, 3, 39, 40, 55, 56, 57, 58,), + array(1, 3, 39, 40, 55, 56, 57, 58,), array(1, 3, 39, 40, 55, 56, 57, 58,), + array(1, 3, 39, 40, 55, 56, 57, 58,), array(1, 3, 39, 40, 55, 56, 57, 58,), + array(3, 39, 40, 55, 56, 57, 58,), array(3, 39, 40, 55, 56, 57, 58,), + array(14, 17, 49, 51, 54,), + array(5, 12, 13, 14, 16, 19, 20, 21, 26, 30, 32, 33, 59, 60,), + array(1, 11, 18, 27, 34, 37, 48,), array(1, 11, 27, 34,), + array(14, 17, 51, 54,), array(1, 27, 34,), array(14, 37, 54,), + array(5, 12, 13, 14, 16, 19, 20, 21, 26, 30, 32, 33, 59, 60,), + array(12, 13, 17, 27, 29, 34,), array(12, 13, 17, 27, 29, 34,), + array(12, 13, 17, 27, 34,), array(12, 13, 17, 27, 34,), array(14, 37, 54,), + array(1, 27, 34,), array(14, 37, 54,), array(18, 45, 52,), + array(1, 27, 34,), array(1, 2,), array(1, 11, 27, 28, 34,), + array(11, 23, 27, 34, 46,), array(11, 23, 27, 34, 46,), + array(12, 13, 17, 50,), array(1, 11, 27, 34,), array(13, 14, 17, 54,), + array(1, 11, 27, 34,), array(15, 18, 48,), array(8, 9, 10,), + array(12, 13, 17,), array(12, 13, 17,), array(15, 18, 48,), array(1, 11,), + array(14, 17,), array(1, 18,), array(27, 34,), array(27, 34,), + array(18, 48,), array(14, 17,), array(1, 53,), array(27, 34,), + array(1, 29,), array(14, 54,), array(1,), array(18,), array(1,), array(1,), + array(1,), array(1,), array(1,), array(1,), array(18,), array(), array(), + array(), array(2, 12, 13, 15, 17, 18, 45, 48, 50, 52,), + array(2, 12, 13, 17, 18, 45, 48, 50, 52, 53,), + array(2, 12, 13, 15, 17, 18, 45, 48, 50, 52,), + array(2, 12, 13, 17, 18, 45, 48, 50, 52,), + array(2, 12, 13, 17, 18, 45, 48, 50, 52,), + array(12, 13, 17, 18, 45, 48, 50, 52,), array(13, 14, 17, 35, 54,), + array(12, 13, 17, 50,), array(12, 13, 17,), array(15, 45, 52,), + array(13, 37,), array(27, 34,), array(27, 34,), array(27, 34,), + array(27, 34,), array(27, 34,), array(27, 34,), array(45, 52,), + array(45, 52,), array(27, 34,), array(27, 34,), array(45, 52,), + array(27, 34,), array(14, 54,), array(27, 34,), array(27, 34,), + array(27, 34,), array(15, 23,), array(45, 52,), array(14, 54,), + array(27, 34,), array(45, 52,), array(27, 34,), array(27, 34,), + array(27, 34,), array(27, 34,), array(45, 52,), array(45, 52,), + array(45, 52,), array(27, 34,), array(45, 52,), array(45, 52,), + array(14, 54,), array(14, 54,), array(27, 34,), array(2,), array(9,), + array(1,), array(1,), array(2,), array(1,), array(1,), array(37,), + array(18,), array(18,), array(18,), array(1,), array(), array(), array(), + array(), array(), array(1, 2, 3, 37, 39, 40, 48, 55, 56, 57, 58,), + array(11, 22, 24, 27, 34, 36, 38, 45,), array(11, 15, 27, 34, 37, 48,), + array(37, 45, 48, 53,), array(12, 13, 17, 50,), array(23, 46, 53,), + array(29, 37, 48,), array(23, 46, 60,), array(36, 38,), array(22, 36,), + array(36, 53,), array(17, 50,), array(45, 53,), array(36, 38,), + array(36, 38,), array(37, 48,), array(23, 46,), array(37, 48,), + array(15, 45,), array(37, 48,), array(51,), array(15,), array(17,), + array(24,), array(38,), array(17,), array(53,), array(53,), array(51,), + array(17,), array(17,), array(17,), array(17,), array(17,), array(37,), + array(17,), array(41,), array(14,), array(37,), array(17,), array(11,), + array(35,), array(45,), array(17,), array(35,), array(5,), 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(), @@ -768,7 +627,7 @@ class Smarty_Internal_Templateparser 516, 423, 422, 530, 530, 434, 410, 530, 396, 530, 530, 396, 396, 396, 396, 530, 396, 530, 506, 396, 386, 410, 424, 424, 459, 410, 530, 410, 449, 530, 459, 459, 449, 410, 530, 390, 396, 374, 449, 530, 410, 396, 410, 530, 392, - 449, 417, 410, 421, 427, 426, 413, 425, 414, 503, 501, 448, 448, 448, 448, + 449, 417, 410, 421, 427, 426, 413, 503, 425, 414, 501, 448, 448, 448, 448, 448, 448, 530, 461, 459, 475, 459, 366, 381, 370, 369, 376, 368, 487, 457, 363, 364, 485, 360, 530, 358, 380, 375, 530, 484, 530, 356, 455, 383, 373, 384, 382, 454, 456, 453, 379, 452, 486, 530, 530, 385, 495, 350, 393, 416, @@ -783,55 +642,7 @@ class Smarty_Internal_Templateparser 519, 520, 522, 529, 528, 525, 523, 510, 509, 436, 439, 490, 521, 489, 429, 431, 474, 468, 433, 467, 435, 466, 508, 440, 469, 441, 471, 419, 420, 442, 445, 472, 470, 473, 336,); - const YYNOCODE = 107; - const YYSTACKDEPTH = 500; - const YYNSTATE = 335; - const YYNRULE = 195; - const YYERRORSYMBOL = 61; - const YYERRSYMDT = 'yy0'; - const YYFALLBACK = 0; public static $yyFallback = array(); - - public function Trace($TraceFILE, $zTracePrompt) - { - if (!$TraceFILE) { - $zTracePrompt = 0; - } else if (!$zTracePrompt) { - $TraceFILE = 0; - } - $this->yyTraceFILE = $TraceFILE; - $this->yyTracePrompt = $zTracePrompt; - } - - public function PrintTrace() - { - $this->yyTraceFILE = fopen('php://output', 'w'); - $this->yyTracePrompt = '
'; - } - - public $yyTraceFILE; - public $yyTracePrompt; - public $yyidx; /* Index of top element in stack */ - public $yyerrcnt; /* Shifts left before out of the error */ - public $yystack = array(); /* The parser's stack */ - - public $yyTokenName = array('$', 'VERT', 'COLON', 'PHP', 'TEXT', 'STRIPON', 'STRIPOFF', 'LITERALSTART', - 'LITERALEND', 'LITERAL', 'RDEL', 'SIMPELOUTPUT', 'LDEL', 'DOLLARID', 'EQUAL', - 'SIMPLETAG', 'ID', 'PTR', 'LDELMAKENOCACHE', 'LDELIF', 'LDELFOR', 'SEMICOLON', 'INCDEC', - 'TO', 'STEP', 'LDELFOREACH', 'SPACE', 'AS', 'APTR', 'LDELSETFILTER', - 'SMARTYBLOCKCHILDPARENT', 'CLOSETAG', 'LDELSLASH', 'ATTR', 'INTEGER', 'COMMA', 'OPENP', - 'CLOSEP', 'MATH', 'UNIMATH', 'ISIN', 'QMARK', 'NOT', 'TYPECAST', 'HEX', 'DOT', - 'INSTANCEOF', 'SINGLEQUOTESTRING', 'DOUBLECOLON', 'NAMESPACE', 'AT', 'HATCH', 'OPENB', - 'CLOSEB', 'DOLLAR', 'LOGOP', 'SLOGOP', 'TLOGOP', 'SINGLECOND', 'QUOTE', 'BACKTICK', - 'error', 'start', 'template', 'template_element', 'smartytag', 'literal', - 'text_content', 'literal_elements', 'literal_element', 'tag', 'variable', 'attributes', - 'value', 'expr', 'varindexed', 'modifierlist', 'statement', 'statements', 'foraction', - 'varvar', 'modparameters', 'attribute', 'ternary', 'array', 'tlop', 'lop', 'scond', - 'function', 'ns1', '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', 'template_element ::= literal', @@ -936,6 +747,264 @@ class Smarty_Internal_Templateparser 'doublequotedcontent ::= DOLLARID', 'doublequotedcontent ::= LDEL variable RDEL', 'doublequotedcontent ::= LDEL expr RDEL', 'doublequotedcontent ::= smartytag', 'doublequotedcontent ::= TEXT',); + public static $yyRuleInfo = array(array(0 => 62, 1 => 1), array(0 => 63, 1 => 1), array(0 => 63, 1 => 2), + array(0 => 63, 1 => 0), array(0 => 64, 1 => 1), array(0 => 64, 1 => 1), + array(0 => 64, 1 => 1), array(0 => 64, 1 => 1), array(0 => 67, 1 => 1), + array(0 => 67, 1 => 2), array(0 => 64, 1 => 1), array(0 => 64, 1 => 1), + array(0 => 66, 1 => 2), array(0 => 66, 1 => 3), array(0 => 68, 1 => 2), + array(0 => 68, 1 => 0), array(0 => 69, 1 => 1), array(0 => 69, 1 => 1), + array(0 => 65, 1 => 2), array(0 => 65, 1 => 1), array(0 => 70, 1 => 2), + array(0 => 70, 1 => 3), array(0 => 70, 1 => 2), array(0 => 70, 1 => 3), + array(0 => 70, 1 => 2), array(0 => 70, 1 => 3), array(0 => 70, 1 => 4), + array(0 => 70, 1 => 4), array(0 => 70, 1 => 5), array(0 => 70, 1 => 5), + array(0 => 65, 1 => 1), array(0 => 70, 1 => 3), array(0 => 70, 1 => 2), + array(0 => 70, 1 => 4), array(0 => 70, 1 => 5), array(0 => 70, 1 => 6), + array(0 => 70, 1 => 2), array(0 => 70, 1 => 2), array(0 => 70, 1 => 3), + array(0 => 70, 1 => 2), array(0 => 70, 1 => 3), array(0 => 70, 1 => 8), + array(0 => 79, 1 => 2), array(0 => 79, 1 => 1), array(0 => 70, 1 => 5), + array(0 => 70, 1 => 7), array(0 => 70, 1 => 2), array(0 => 70, 1 => 6), + array(0 => 70, 1 => 8), array(0 => 70, 1 => 6), array(0 => 70, 1 => 8), + array(0 => 70, 1 => 3), array(0 => 70, 1 => 4), array(0 => 70, 1 => 2), + array(0 => 65, 1 => 1), array(0 => 70, 1 => 2), array(0 => 70, 1 => 3), + array(0 => 70, 1 => 4), array(0 => 70, 1 => 5), array(0 => 72, 1 => 2), + array(0 => 72, 1 => 1), array(0 => 72, 1 => 0), array(0 => 82, 1 => 4), + array(0 => 82, 1 => 2), array(0 => 82, 1 => 2), array(0 => 82, 1 => 2), + array(0 => 82, 1 => 2), array(0 => 82, 1 => 2), array(0 => 82, 1 => 4), + array(0 => 78, 1 => 1), array(0 => 78, 1 => 3), array(0 => 77, 1 => 3), + array(0 => 77, 1 => 3), array(0 => 77, 1 => 3), array(0 => 77, 1 => 3), + array(0 => 74, 1 => 1), array(0 => 74, 1 => 1), array(0 => 74, 1 => 3), + array(0 => 74, 1 => 3), array(0 => 74, 1 => 3), array(0 => 74, 1 => 1), + array(0 => 74, 1 => 2), array(0 => 74, 1 => 3), array(0 => 74, 1 => 3), + array(0 => 74, 1 => 2), array(0 => 74, 1 => 3), array(0 => 74, 1 => 3), + array(0 => 83, 1 => 7), array(0 => 83, 1 => 7), array(0 => 73, 1 => 1), + array(0 => 73, 1 => 2), array(0 => 73, 1 => 2), array(0 => 73, 1 => 2), + array(0 => 73, 1 => 2), array(0 => 73, 1 => 1), array(0 => 73, 1 => 1), + array(0 => 73, 1 => 3), array(0 => 73, 1 => 2), array(0 => 73, 1 => 2), + array(0 => 73, 1 => 1), array(0 => 73, 1 => 1), array(0 => 73, 1 => 3), + array(0 => 73, 1 => 3), array(0 => 73, 1 => 3), array(0 => 73, 1 => 1), + array(0 => 73, 1 => 1), array(0 => 73, 1 => 3), array(0 => 73, 1 => 1), + array(0 => 73, 1 => 2), array(0 => 73, 1 => 1), array(0 => 73, 1 => 3), + array(0 => 89, 1 => 1), array(0 => 89, 1 => 1), array(0 => 71, 1 => 1), + array(0 => 71, 1 => 1), array(0 => 71, 1 => 3), array(0 => 71, 1 => 1), + array(0 => 71, 1 => 3), array(0 => 71, 1 => 4), array(0 => 71, 1 => 3), + array(0 => 71, 1 => 4), array(0 => 75, 1 => 2), array(0 => 75, 1 => 2), + array(0 => 93, 1 => 2), array(0 => 93, 1 => 0), array(0 => 94, 1 => 2), + array(0 => 94, 1 => 2), array(0 => 94, 1 => 4), array(0 => 94, 1 => 2), + array(0 => 94, 1 => 2), array(0 => 94, 1 => 4), array(0 => 94, 1 => 3), + array(0 => 94, 1 => 5), array(0 => 94, 1 => 3), array(0 => 94, 1 => 3), + array(0 => 94, 1 => 3), array(0 => 94, 1 => 3), array(0 => 94, 1 => 3), + array(0 => 94, 1 => 3), array(0 => 94, 1 => 2), array(0 => 80, 1 => 1), + array(0 => 80, 1 => 1), array(0 => 80, 1 => 2), array(0 => 95, 1 => 1), + array(0 => 95, 1 => 1), array(0 => 95, 1 => 3), array(0 => 92, 1 => 2), + array(0 => 96, 1 => 1), array(0 => 96, 1 => 2), array(0 => 97, 1 => 3), + array(0 => 97, 1 => 3), array(0 => 97, 1 => 5), array(0 => 97, 1 => 6), + array(0 => 97, 1 => 2), array(0 => 88, 1 => 4), array(0 => 98, 1 => 4), + array(0 => 98, 1 => 4), array(0 => 99, 1 => 3), array(0 => 99, 1 => 1), + array(0 => 99, 1 => 0), array(0 => 76, 1 => 3), array(0 => 76, 1 => 2), + array(0 => 100, 1 => 3), array(0 => 100, 1 => 2), array(0 => 81, 1 => 2), + array(0 => 81, 1 => 0), array(0 => 101, 1 => 2), array(0 => 101, 1 => 2), + array(0 => 91, 1 => 1), array(0 => 91, 1 => 2), array(0 => 91, 1 => 1), + array(0 => 91, 1 => 2), array(0 => 91, 1 => 3), array(0 => 86, 1 => 1), + array(0 => 86, 1 => 1), array(0 => 85, 1 => 1), array(0 => 87, 1 => 1), + array(0 => 84, 1 => 3), array(0 => 102, 1 => 1), array(0 => 102, 1 => 3), + array(0 => 102, 1 => 0), array(0 => 103, 1 => 3), array(0 => 103, 1 => 3), + array(0 => 103, 1 => 1), array(0 => 90, 1 => 2), array(0 => 90, 1 => 3), + array(0 => 104, 1 => 2), array(0 => 104, 1 => 1), array(0 => 105, 1 => 3), + array(0 => 105, 1 => 3), array(0 => 105, 1 => 1), array(0 => 105, 1 => 3), + array(0 => 105, 1 => 3), array(0 => 105, 1 => 1), array(0 => 105, 1 => 1),); + public static $yyReduceMap = array(0 => 0, 1 => 1, 2 => 2, 4 => 4, 5 => 5, 6 => 6, 7 => 7, 8 => 8, 16 => 8, 17 => 8, + 43 => 8, 66 => 8, 67 => 8, 75 => 8, 76 => 8, 80 => 8, 89 => 8, 94 => 8, 95 => 8, + 100 => 8, 104 => 8, 105 => 8, 109 => 8, 111 => 8, 116 => 8, 178 => 8, 183 => 8, + 9 => 9, 10 => 10, 11 => 11, 12 => 12, 15 => 12, 13 => 13, 74 => 13, 14 => 14, + 90 => 14, 92 => 14, 93 => 14, 123 => 14, 18 => 18, 19 => 19, 20 => 20, 22 => 20, + 24 => 20, 21 => 21, 23 => 21, 25 => 21, 26 => 26, 27 => 26, 28 => 28, 29 => 29, + 30 => 30, 31 => 31, 32 => 32, 33 => 33, 34 => 34, 35 => 35, 36 => 36, 37 => 37, + 38 => 38, 40 => 38, 39 => 39, 41 => 41, 42 => 42, 44 => 44, 45 => 45, 46 => 46, + 47 => 47, 49 => 47, 48 => 48, 50 => 48, 51 => 51, 52 => 52, 53 => 53, 54 => 54, + 55 => 55, 56 => 56, 57 => 57, 58 => 58, 59 => 59, 60 => 60, 69 => 60, 158 => 60, + 162 => 60, 166 => 60, 167 => 60, 61 => 61, 159 => 61, 165 => 61, 62 => 62, + 63 => 63, 64 => 63, 65 => 65, 143 => 65, 68 => 68, 70 => 70, 71 => 71, 72 => 71, + 73 => 73, 77 => 77, 78 => 78, 79 => 78, 81 => 81, 108 => 81, 82 => 82, 83 => 83, + 84 => 84, 85 => 85, 86 => 86, 87 => 87, 88 => 88, 91 => 91, 96 => 96, 97 => 97, + 98 => 98, 99 => 99, 101 => 101, 102 => 102, 103 => 102, 106 => 106, 107 => 107, + 110 => 110, 112 => 112, 113 => 113, 114 => 114, 115 => 115, 117 => 117, + 118 => 118, 119 => 119, 120 => 120, 121 => 121, 122 => 122, 124 => 124, + 180 => 124, 125 => 125, 126 => 126, 127 => 127, 128 => 128, 129 => 129, + 130 => 130, 138 => 130, 131 => 131, 132 => 132, 133 => 133, 134 => 133, + 136 => 133, 137 => 133, 135 => 135, 139 => 139, 140 => 140, 141 => 141, + 184 => 141, 142 => 142, 144 => 144, 145 => 145, 146 => 146, 147 => 147, + 148 => 148, 149 => 149, 150 => 150, 151 => 151, 152 => 152, 153 => 153, + 154 => 154, 155 => 155, 156 => 156, 157 => 157, 160 => 160, 161 => 161, + 163 => 163, 164 => 164, 168 => 168, 169 => 169, 170 => 170, 171 => 171, + 172 => 172, 173 => 173, 174 => 174, 175 => 175, 176 => 176, 177 => 177, + 179 => 179, 181 => 181, 182 => 182, 185 => 185, 186 => 186, 187 => 187, + 188 => 188, 189 => 188, 191 => 188, 190 => 190, 192 => 192, 193 => 193, + 194 => 194,); + /** + * result status + * + * @var bool + */ + public $successful = true; + /** + * return value + * + * @var mixed + */ + public $retvalue = 0; + /** + * @var + */ + public $yymajor; + /** + * last index of array variable + * + * @var mixed + */ + public $last_index; + /** + * last variable name + * + * @var string + */ + public $last_variable; + /** + * root parse tree buffer + * + * @var Smarty_Internal_ParseTree + */ + public $root_buffer; + /** + * current parse tree object + * + * @var Smarty_Internal_ParseTree + */ + public $current_buffer; + /** + * lexer object + * + * @var Smarty_Internal_Templatelexer + */ + public $lex; + /** + * {strip} status + * + * @var bool + */ + public $strip = false; + /** + * compiler object + * + * @var Smarty_Internal_TemplateCompilerBase + */ + public $compiler = null; + /** + * smarty object + * + * @var Smarty + */ + public $smarty = null; + /** + * template object + * + * @var Smarty_Internal_Template + */ + public $template = null; + /** + * block nesting level + * + * @var int + */ + public $block_nesting_level = 0; + /** + * security object + * + * @var Smarty_Security + */ + public $security = null; + /** + * template prefix array + * + * @var \Smarty_Internal_ParseTree[] + */ + public $template_prefix = array(); + /** + * security object + * + * @var \Smarty_Internal_ParseTree[] + */ + public $template_postfix = array(); + public $yyTraceFILE; + public $yyTracePrompt; +public $yyidx; +public $yyerrcnt; +public $yystack = array(); + public $yyTokenName = array('$', 'VERT', 'COLON', 'UNIMATH', 'PHP', 'TEXT', 'STRIPON', 'STRIPOFF', 'LITERALSTART', + 'LITERALEND', 'LITERAL', 'RDEL', 'SIMPELOUTPUT', 'LDEL', 'DOLLARID', 'EQUAL', + 'SIMPLETAG', 'ID', 'PTR', 'LDELMAKENOCACHE', 'LDELIF', 'LDELFOR', 'SEMICOLON', 'INCDEC', + 'TO', 'STEP', 'LDELFOREACH', 'SPACE', 'AS', 'APTR', 'LDELSETFILTER', + 'SMARTYBLOCKCHILDPARENT', 'CLOSETAG', 'LDELSLASH', 'ATTR', 'INTEGER', 'COMMA', 'OPENP', + 'CLOSEP', 'MATH', 'ISIN', 'QMARK', 'NOT', 'TYPECAST', 'HEX', 'DOT', 'INSTANCEOF', + 'SINGLEQUOTESTRING', 'DOUBLECOLON', 'NAMESPACE', 'AT', 'HATCH', 'OPENB', 'CLOSEB', + 'DOLLAR', 'LOGOP', 'SLOGOP', 'TLOGOP', 'SINGLECOND', 'QUOTE', 'BACKTICK', 'error', + 'start', 'template', 'template_element', 'smartytag', 'literal', 'text_content', + 'literal_elements', 'literal_element', 'tag', 'variable', 'attributes', 'value', 'expr', + 'varindexed', 'modifierlist', 'statement', 'statements', 'foraction', 'varvar', + 'modparameters', 'attribute', 'ternary', 'array', 'tlop', 'lop', 'scond', 'function', + 'ns1', 'doublequoted_with_quotes', 'static_class_access', 'object', 'arrayindex', + 'indexdef', 'varvarele', 'objectchain', 'objectelement', 'method', 'params', 'modifier', + 'modparameter', 'arrayelements', 'arrayelement', 'doublequoted', + 'doublequotedcontent',); /* Index of top element in stack */ + /** + * internal error flag + * + * @var bool + */ + private $internalError = false; /* Shifts left before out of the error */ + private $_retvalue; /* The parser's stack */ + + /** + * constructor + * + * @param Smarty_Internal_Templatelexer $lex + * @param Smarty_Internal_TemplateCompilerBase $compiler + */ + function __construct(Smarty_Internal_Templatelexer $lex, Smarty_Internal_TemplateCompilerBase $compiler) + { + $this->lex = $lex; + $this->compiler = $compiler; + $this->template = $this->compiler->template; + $this->smarty = $this->template->smarty; + $this->security = isset($this->smarty->security_policy) ? $this->smarty->security_policy : false; + $this->current_buffer = $this->root_buffer = new Smarty_Internal_ParseTree_Template(); + } + + /** + * insert PHP code in current buffer + * + * @param string $code + */ + public function insertPhpCode($code) + { + $this->current_buffer->append_subtree($this, new Smarty_Internal_ParseTree_Tag($this, $code)); + } + + public function Trace($TraceFILE, $zTracePrompt) + { + if (!$TraceFILE) { + $zTracePrompt = 0; + } else if (!$zTracePrompt) { + $TraceFILE = 0; + } + $this->yyTraceFILE = $TraceFILE; + $this->yyTracePrompt = $zTracePrompt; + } + + public function PrintTrace() + { + $this->yyTraceFILE = fopen('php://output', 'w'); + $this->yyTracePrompt = '
'; + } public function tokenName($tokenType) { @@ -949,11 +1018,13 @@ class Smarty_Internal_Templateparser } } - public static function yy_destructor($yymajor, $yypminor) + public function __destruct() { - switch ($yymajor) { - default: - break; /* If no destructor action specified: do nothing */ + while ($this->yystack !== Array()) { + $this->yy_pop_parser_stack(); + } + if (is_resource($this->yyTraceFILE)) { + fclose($this->yyTraceFILE); } } @@ -974,13 +1045,11 @@ class Smarty_Internal_Templateparser return $yymajor; } - public function __destruct() + public static function yy_destructor($yymajor, $yypminor) { - while ($this->yystack !== Array()) { - $this->yy_pop_parser_stack(); - } - if (is_resource($this->yyTraceFILE)) { - fclose($this->yyTraceFILE); + switch ($yymajor) { + default: + break; /* If no destructor action specified: do nothing */ } } @@ -1068,95 +1137,6 @@ class Smarty_Internal_Templateparser return array_unique($expected); } - public function yy_is_expected_token($token) - { - static $res = array(); - static $res2 = array(); - if ($token === 0) { - return true; // 0 is not part of this - } - $state = $this->yystack[ $this->yyidx ]->stateno; - if (isset($res[ $state ][ $token ])) { - if ($res[ $state ][ $token ]) { - return true; - } - } else { - if ($res[ $state ][ $token ] = in_array($token, self::$yyExpectedTokens[ $state ], true)) { - return true; - } - } - $stack = $this->yystack; - $yyidx = $this->yyidx; - do { - $yyact = $this->yy_find_shift_action($token); - if ($yyact >= self::YYNSTATE && $yyact < self::YYNSTATE + self::YYNRULE) { - // reduce action - $done = 0; - do { - if ($done++ == 100) { - $this->yyidx = $yyidx; - $this->yystack = $stack; - // too much recursion prevents proper detection - // so give up - return true; - } - $yyruleno = $yyact - self::YYNSTATE; - $this->yyidx -= self::$yyRuleInfo[ $yyruleno ][1]; - $nextstate = $this->yy_find_reduce_action($this->yystack[ $this->yyidx ]->stateno, - self::$yyRuleInfo[ $yyruleno ][0]); - if (isset($res2[ $nextstate ][ $token ])) { - if ($res2[ $nextstate ][ $token ]) { - $this->yyidx = $yyidx; - $this->yystack = $stack; - return true; - } - } else { - if ($res2[ $nextstate ][ $token ] = (isset(self::$yyExpectedTokens[ $nextstate ]) && - in_array($token, - self::$yyExpectedTokens[ $nextstate ], - true))) { - $this->yyidx = $yyidx; - $this->yystack = $stack; - return true; - } - } - if ($nextstate < self::YYNSTATE) { - // we need to shift a non-terminal - $this->yyidx++; - $x = new TP_yyStackEntry; - $x->stateno = $nextstate; - $x->major = self::$yyRuleInfo[ $yyruleno ][0]; - $this->yystack[ $this->yyidx ] = $x; - continue 2; - } else if ($nextstate == self::YYNSTATE + self::YYNRULE + 1) { - $this->yyidx = $yyidx; - $this->yystack = $stack; - if (!$token) { - // end of input: this is valid - return true; - } - // the last token was just ignored, we can't accept - // by ignoring input, this is in essence ignoring a - // syntax error! - return false; - } else if ($nextstate === self::YY_NO_ACTION) { - $this->yyidx = $yyidx; - $this->yystack = $stack; - // input accepted, but not shifted (I guess) - return true; - } else { - $yyact = $nextstate; - } - } while (true); - } - break; - } while (true); - $this->yyidx = $yyidx; - $this->yystack = $stack; - - return true; - } - public function yy_find_shift_action($iLookAhead) { $stateno = $this->yystack[ $this->yyidx ]->stateno; @@ -1214,140 +1194,6 @@ class Smarty_Internal_Templateparser } } - public function yy_shift($yyNewState, $yyMajor, $yypMinor) - { - $this->yyidx++; - if ($this->yyidx >= self::YYSTACKDEPTH) { - $this->yyidx--; - if ($this->yyTraceFILE) { - fprintf($this->yyTraceFILE, "%sStack Overflow!\n", $this->yyTracePrompt); - } - while ($this->yyidx >= 0) { - $this->yy_pop_parser_stack(); - } - #line 207 "../smarty/lexer/smarty_internal_templateparser.y" - - $this->internalError = true; - $this->compiler->trigger_template_error("Stack overflow in template parser"); - - return; - } - $yytos = new TP_yyStackEntry; - $yytos->stateno = $yyNewState; - $yytos->major = $yyMajor; - $yytos->minor = $yypMinor; - $this->yystack[] = $yytos; - if ($this->yyTraceFILE && $this->yyidx > 0) { - fprintf($this->yyTraceFILE, - "%sShift %d\n", - $this->yyTracePrompt, - $yyNewState); - fprintf($this->yyTraceFILE, "%sStack:", $this->yyTracePrompt); - for ($i = 1; $i <= $this->yyidx; $i++) { - fprintf($this->yyTraceFILE, - " %s", - $this->yyTokenName[ $this->yystack[ $i ]->major ]); - } - fwrite($this->yyTraceFILE, "\n"); - } - } - - public static $yyRuleInfo = array(array(0 => 62, 1 => 1), array(0 => 63, 1 => 1), array(0 => 63, 1 => 2), - array(0 => 63, 1 => 0), array(0 => 64, 1 => 1), array(0 => 64, 1 => 1), - array(0 => 64, 1 => 1), array(0 => 64, 1 => 1), array(0 => 67, 1 => 1), - array(0 => 67, 1 => 2), array(0 => 64, 1 => 1), array(0 => 64, 1 => 1), - array(0 => 66, 1 => 2), array(0 => 66, 1 => 3), array(0 => 68, 1 => 2), - array(0 => 68, 1 => 0), array(0 => 69, 1 => 1), array(0 => 69, 1 => 1), - array(0 => 65, 1 => 2), array(0 => 65, 1 => 1), array(0 => 70, 1 => 2), - array(0 => 70, 1 => 3), array(0 => 70, 1 => 2), array(0 => 70, 1 => 3), - array(0 => 70, 1 => 2), array(0 => 70, 1 => 3), array(0 => 70, 1 => 4), - array(0 => 70, 1 => 4), array(0 => 70, 1 => 5), array(0 => 70, 1 => 5), - array(0 => 65, 1 => 1), array(0 => 70, 1 => 3), array(0 => 70, 1 => 2), - array(0 => 70, 1 => 4), array(0 => 70, 1 => 5), array(0 => 70, 1 => 6), - array(0 => 70, 1 => 2), array(0 => 70, 1 => 2), array(0 => 70, 1 => 3), - array(0 => 70, 1 => 2), array(0 => 70, 1 => 3), array(0 => 70, 1 => 8), - array(0 => 79, 1 => 2), array(0 => 79, 1 => 1), array(0 => 70, 1 => 5), - array(0 => 70, 1 => 7), array(0 => 70, 1 => 2), array(0 => 70, 1 => 6), - array(0 => 70, 1 => 8), array(0 => 70, 1 => 6), array(0 => 70, 1 => 8), - array(0 => 70, 1 => 3), array(0 => 70, 1 => 4), array(0 => 70, 1 => 2), - array(0 => 65, 1 => 1), array(0 => 70, 1 => 2), array(0 => 70, 1 => 3), - array(0 => 70, 1 => 4), array(0 => 70, 1 => 5), array(0 => 72, 1 => 2), - array(0 => 72, 1 => 1), array(0 => 72, 1 => 0), array(0 => 82, 1 => 4), - array(0 => 82, 1 => 2), array(0 => 82, 1 => 2), array(0 => 82, 1 => 2), - array(0 => 82, 1 => 2), array(0 => 82, 1 => 2), array(0 => 82, 1 => 4), - array(0 => 78, 1 => 1), array(0 => 78, 1 => 3), array(0 => 77, 1 => 3), - array(0 => 77, 1 => 3), array(0 => 77, 1 => 3), array(0 => 77, 1 => 3), - array(0 => 74, 1 => 1), array(0 => 74, 1 => 1), array(0 => 74, 1 => 3), - array(0 => 74, 1 => 3), array(0 => 74, 1 => 3), array(0 => 74, 1 => 1), - array(0 => 74, 1 => 2), array(0 => 74, 1 => 3), array(0 => 74, 1 => 3), - array(0 => 74, 1 => 2), array(0 => 74, 1 => 3), array(0 => 74, 1 => 3), - array(0 => 83, 1 => 7), array(0 => 83, 1 => 7), array(0 => 73, 1 => 1), - array(0 => 73, 1 => 2), array(0 => 73, 1 => 2), array(0 => 73, 1 => 2), - array(0 => 73, 1 => 2), array(0 => 73, 1 => 1), array(0 => 73, 1 => 1), - array(0 => 73, 1 => 3), array(0 => 73, 1 => 2), array(0 => 73, 1 => 2), - array(0 => 73, 1 => 1), array(0 => 73, 1 => 1), array(0 => 73, 1 => 3), - array(0 => 73, 1 => 3), array(0 => 73, 1 => 3), array(0 => 73, 1 => 1), - array(0 => 73, 1 => 1), array(0 => 73, 1 => 3), array(0 => 73, 1 => 1), - array(0 => 73, 1 => 2), array(0 => 73, 1 => 1), array(0 => 73, 1 => 3), - array(0 => 89, 1 => 1), array(0 => 89, 1 => 1), array(0 => 71, 1 => 1), - array(0 => 71, 1 => 1), array(0 => 71, 1 => 3), array(0 => 71, 1 => 1), - array(0 => 71, 1 => 3), array(0 => 71, 1 => 4), array(0 => 71, 1 => 3), - array(0 => 71, 1 => 4), array(0 => 75, 1 => 2), array(0 => 75, 1 => 2), - array(0 => 93, 1 => 2), array(0 => 93, 1 => 0), array(0 => 94, 1 => 2), - array(0 => 94, 1 => 2), array(0 => 94, 1 => 4), array(0 => 94, 1 => 2), - array(0 => 94, 1 => 2), array(0 => 94, 1 => 4), array(0 => 94, 1 => 3), - array(0 => 94, 1 => 5), array(0 => 94, 1 => 3), array(0 => 94, 1 => 3), - array(0 => 94, 1 => 3), array(0 => 94, 1 => 3), array(0 => 94, 1 => 3), - array(0 => 94, 1 => 3), array(0 => 94, 1 => 2), array(0 => 80, 1 => 1), - array(0 => 80, 1 => 1), array(0 => 80, 1 => 2), array(0 => 95, 1 => 1), - array(0 => 95, 1 => 1), array(0 => 95, 1 => 3), array(0 => 92, 1 => 2), - array(0 => 96, 1 => 1), array(0 => 96, 1 => 2), array(0 => 97, 1 => 3), - array(0 => 97, 1 => 3), array(0 => 97, 1 => 5), array(0 => 97, 1 => 6), - array(0 => 97, 1 => 2), array(0 => 88, 1 => 4), array(0 => 98, 1 => 4), - array(0 => 98, 1 => 4), array(0 => 99, 1 => 3), array(0 => 99, 1 => 1), - array(0 => 99, 1 => 0), array(0 => 76, 1 => 3), array(0 => 76, 1 => 2), - array(0 => 100, 1 => 3), array(0 => 100, 1 => 2), array(0 => 81, 1 => 2), - array(0 => 81, 1 => 0), array(0 => 101, 1 => 2), array(0 => 101, 1 => 2), - array(0 => 91, 1 => 1), array(0 => 91, 1 => 2), array(0 => 91, 1 => 1), - array(0 => 91, 1 => 2), array(0 => 91, 1 => 3), array(0 => 86, 1 => 1), - array(0 => 86, 1 => 1), array(0 => 85, 1 => 1), array(0 => 87, 1 => 1), - array(0 => 84, 1 => 3), array(0 => 102, 1 => 1), array(0 => 102, 1 => 3), - array(0 => 102, 1 => 0), array(0 => 103, 1 => 3), array(0 => 103, 1 => 3), - array(0 => 103, 1 => 1), array(0 => 90, 1 => 2), array(0 => 90, 1 => 3), - array(0 => 104, 1 => 2), array(0 => 104, 1 => 1), array(0 => 105, 1 => 3), - array(0 => 105, 1 => 3), array(0 => 105, 1 => 1), array(0 => 105, 1 => 3), - array(0 => 105, 1 => 3), array(0 => 105, 1 => 1), array(0 => 105, 1 => 1),); - - public static $yyReduceMap = array(0 => 0, 1 => 1, 2 => 2, 4 => 4, 5 => 5, 6 => 6, 7 => 7, 8 => 8, 16 => 8, 17 => 8, - 43 => 8, 66 => 8, 67 => 8, 75 => 8, 76 => 8, 80 => 8, 89 => 8, 94 => 8, 95 => 8, - 100 => 8, 104 => 8, 105 => 8, 109 => 8, 111 => 8, 116 => 8, 178 => 8, 183 => 8, - 9 => 9, 10 => 10, 11 => 11, 12 => 12, 15 => 12, 13 => 13, 74 => 13, 14 => 14, - 90 => 14, 92 => 14, 93 => 14, 123 => 14, 18 => 18, 19 => 19, 20 => 20, 22 => 20, - 24 => 20, 21 => 21, 23 => 21, 25 => 21, 26 => 26, 27 => 26, 28 => 28, 29 => 29, - 30 => 30, 31 => 31, 32 => 32, 33 => 33, 34 => 34, 35 => 35, 36 => 36, 37 => 37, - 38 => 38, 40 => 38, 39 => 39, 41 => 41, 42 => 42, 44 => 44, 45 => 45, 46 => 46, - 47 => 47, 49 => 47, 48 => 48, 50 => 48, 51 => 51, 52 => 52, 53 => 53, 54 => 54, - 55 => 55, 56 => 56, 57 => 57, 58 => 58, 59 => 59, 60 => 60, 69 => 60, 158 => 60, - 162 => 60, 166 => 60, 167 => 60, 61 => 61, 159 => 61, 165 => 61, 62 => 62, - 63 => 63, 64 => 63, 65 => 65, 143 => 65, 68 => 68, 70 => 70, 71 => 71, 72 => 71, - 73 => 73, 77 => 77, 78 => 78, 79 => 78, 81 => 81, 108 => 81, 82 => 82, 83 => 83, - 84 => 84, 85 => 85, 86 => 86, 87 => 87, 88 => 88, 91 => 91, 96 => 96, 97 => 97, - 98 => 98, 99 => 99, 101 => 101, 102 => 102, 103 => 102, 106 => 106, 107 => 107, - 110 => 110, 112 => 112, 113 => 113, 114 => 114, 115 => 115, 117 => 117, - 118 => 118, 119 => 119, 120 => 120, 121 => 121, 122 => 122, 124 => 124, - 180 => 124, 125 => 125, 126 => 126, 127 => 127, 128 => 128, 129 => 129, - 130 => 130, 138 => 130, 131 => 131, 132 => 132, 133 => 133, 134 => 133, - 136 => 133, 137 => 133, 135 => 135, 139 => 139, 140 => 140, 141 => 141, - 184 => 141, 142 => 142, 144 => 144, 145 => 145, 146 => 146, 147 => 147, - 148 => 148, 149 => 149, 150 => 150, 151 => 151, 152 => 152, 153 => 153, - 154 => 154, 155 => 155, 156 => 156, 157 => 157, 160 => 160, 161 => 161, - 163 => 163, 164 => 164, 168 => 168, 169 => 169, 170 => 170, 171 => 171, - 172 => 172, 173 => 173, 174 => 174, 175 => 175, 176 => 176, 177 => 177, - 179 => 179, 181 => 181, 182 => 182, 185 => 185, 186 => 186, 187 => 187, - 188 => 188, 189 => 188, 191 => 188, 190 => 190, 192 => 192, 193 => 193, - 194 => 194,); - - #line 218 "../smarty/lexer/smarty_internal_templateparser.y" function yy_r0() { $this->root_buffer->prepend_array($this, $this->template_prefix); @@ -1355,7 +1201,6 @@ class Smarty_Internal_Templateparser $this->_retvalue = $this->root_buffer->to_smarty_php($this); } - #line 228 "../smarty/lexer/smarty_internal_templateparser.y" function yy_r1() { if ($this->yystack[ $this->yyidx + 0 ]->minor != null) { @@ -1363,7 +1208,8 @@ class Smarty_Internal_Templateparser } } - #line 235 "../smarty/lexer/smarty_internal_templateparser.y" + #line 219 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r2() { if ($this->yystack[ $this->yyidx + 0 ]->minor != null) { @@ -1372,7 +1218,8 @@ class Smarty_Internal_Templateparser } } - #line 249 "../smarty/lexer/smarty_internal_templateparser.y" + #line 229 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r4() { if ($this->compiler->has_code) { @@ -1384,13 +1231,35 @@ class Smarty_Internal_Templateparser $this->block_nesting_level = count($this->compiler->_tag_stack); } - #line 260 "../smarty/lexer/smarty_internal_templateparser.y" + #line 236 "../smarty/lexer/smarty_internal_templateparser.y" + + /** + * merge PHP code with prefix code and return parse tree tag object + * + * @param string $code + * + * @return Smarty_Internal_ParseTree_Tag + */ + public function mergePrefixCode($code) + { + $tmp = ''; + foreach ($this->compiler->prefix_code as $preCode) { + $tmp .= $preCode; + } + $this->compiler->prefix_code = array(); + $tmp .= $code; + return new Smarty_Internal_ParseTree_Tag($this, $this->compiler->processNocacheCode($tmp, true)); + } + + #line 250 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r5() { $this->_retvalue = new Smarty_Internal_ParseTree_Text($this->yystack[ $this->yyidx + 0 ]->minor); } - #line 264 "../smarty/lexer/smarty_internal_templateparser.y" + #line 261 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r6() { $code = $this->compiler->compileTag('private_php', @@ -1410,61 +1279,71 @@ class Smarty_Internal_Templateparser } } - #line 275 "../smarty/lexer/smarty_internal_templateparser.y" + #line 265 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r7() { $this->_retvalue = $this->compiler->processText($this->yystack[ $this->yyidx + 0 ]->minor); } - #line 279 "../smarty/lexer/smarty_internal_templateparser.y" + #line 276 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r8() { $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 283 "../smarty/lexer/smarty_internal_templateparser.y" + #line 280 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r9() { $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 288 "../smarty/lexer/smarty_internal_templateparser.y" + #line 284 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r10() { $this->strip = true; } - #line 292 "../smarty/lexer/smarty_internal_templateparser.y" + #line 289 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r11() { $this->strip = false; } - #line 297 "../smarty/lexer/smarty_internal_templateparser.y" + #line 293 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r12() { $this->_retvalue = ''; } - #line 301 "../smarty/lexer/smarty_internal_templateparser.y" + #line 298 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r13() { $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor; } - #line 305 "../smarty/lexer/smarty_internal_templateparser.y" + #line 302 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r14() { $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 321 "../smarty/lexer/smarty_internal_templateparser.y" + #line 306 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r18() { $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor; } - #line 327 "../smarty/lexer/smarty_internal_templateparser.y" + #line 322 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r19() { $var = @@ -1485,7 +1364,8 @@ class Smarty_Internal_Templateparser } } - #line 337 "../smarty/lexer/smarty_internal_templateparser.y" + #line 328 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r20() { $this->_retvalue = $this->compiler->compileTag('private_print_expression', @@ -1493,7 +1373,8 @@ class Smarty_Internal_Templateparser array('value' => $this->yystack[ $this->yyidx + 0 ]->minor)); } - #line 341 "../smarty/lexer/smarty_internal_templateparser.y" + #line 338 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r21() { $this->_retvalue = $this->compiler->compileTag('private_print_expression', @@ -1501,7 +1382,8 @@ class Smarty_Internal_Templateparser array('value' => $this->yystack[ $this->yyidx + -1 ]->minor)); } - #line 364 "../smarty/lexer/smarty_internal_templateparser.y" + #line 342 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r26() { $this->_retvalue = $this->compiler->compileTag('assign', @@ -1512,7 +1394,8 @@ class Smarty_Internal_Templateparser 1) . '\''))); } - #line 372 "../smarty/lexer/smarty_internal_templateparser.y" + #line 365 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r28() { $this->_retvalue = $this->compiler->compileTag('assign', @@ -1525,7 +1408,8 @@ class Smarty_Internal_Templateparser $this->yystack[ $this->yyidx + 0 ]->minor)); } - #line 376 "../smarty/lexer/smarty_internal_templateparser.y" + #line 373 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r29() { $this->_retvalue = $this->compiler->compileTag('assign', @@ -1538,7 +1422,8 @@ class Smarty_Internal_Templateparser -3 ]->minor['smarty_internal_index'])); } - #line 381 "../smarty/lexer/smarty_internal_templateparser.y" + #line 377 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r30() { $tag = @@ -1563,7 +1448,8 @@ class Smarty_Internal_Templateparser } } - #line 403 "../smarty/lexer/smarty_internal_templateparser.y" + #line 382 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r31() { if (defined($this->yystack[ $this->yyidx + -1 ]->minor)) { @@ -1580,7 +1466,8 @@ class Smarty_Internal_Templateparser } } - #line 413 "../smarty/lexer/smarty_internal_templateparser.y" + #line 404 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r32() { if (defined($this->yystack[ $this->yyidx + 0 ]->minor)) { @@ -1595,7 +1482,8 @@ class Smarty_Internal_Templateparser } } - #line 426 "../smarty/lexer/smarty_internal_templateparser.y" + #line 414 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r33() { if (defined($this->yystack[ $this->yyidx + -2 ]->minor)) { @@ -1615,7 +1503,8 @@ class Smarty_Internal_Templateparser } } - #line 438 "../smarty/lexer/smarty_internal_templateparser.y" + #line 427 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r34() { $this->_retvalue = $this->compiler->compileTag($this->yystack[ $this->yyidx + -3 ]->minor, @@ -1624,7 +1513,8 @@ class Smarty_Internal_Templateparser -1 ]->minor)); } - #line 443 "../smarty/lexer/smarty_internal_templateparser.y" + #line 439 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r35() { $this->_retvalue = $this->compiler->compileTag($this->yystack[ $this->yyidx + -4 ]->minor, @@ -1635,7 +1525,8 @@ class Smarty_Internal_Templateparser -2 ]->minor)); } - #line 448 "../smarty/lexer/smarty_internal_templateparser.y" + #line 444 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r36() { $this->_retvalue = $this->compiler->compileTag('make_nocache', @@ -1644,7 +1535,8 @@ class Smarty_Internal_Templateparser 1) . '\''))); } - #line 453 "../smarty/lexer/smarty_internal_templateparser.y" + #line 449 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r37() { $tag = trim(substr($this->yystack[ $this->yyidx + -1 ]->minor, $this->lex->ldel_length)); @@ -1654,7 +1546,8 @@ class Smarty_Internal_Templateparser 0 ]->minor)); } - #line 458 "../smarty/lexer/smarty_internal_templateparser.y" + #line 454 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r38() { $tag = trim(substr($this->yystack[ $this->yyidx + -2 ]->minor, $this->lex->ldel_length)); @@ -1664,7 +1557,8 @@ class Smarty_Internal_Templateparser -1 ]->minor)); } - #line 463 "../smarty/lexer/smarty_internal_templateparser.y" + #line 459 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r39() { $tag = trim(substr($this->yystack[ $this->yyidx + -1 ]->minor, $this->lex->ldel_length)); @@ -1674,7 +1568,8 @@ class Smarty_Internal_Templateparser 0 ]->minor)); } - #line 474 "../smarty/lexer/smarty_internal_templateparser.y" + #line 464 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r41() { $this->_retvalue = $this->compiler->compileTag('for', @@ -1690,13 +1585,15 @@ class Smarty_Internal_Templateparser 1); } - #line 478 "../smarty/lexer/smarty_internal_templateparser.y" + #line 475 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r42() { $this->_retvalue = '=' . $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 486 "../smarty/lexer/smarty_internal_templateparser.y" + #line 479 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r44() { $this->_retvalue = $this->compiler->compileTag('for', @@ -1708,7 +1605,8 @@ class Smarty_Internal_Templateparser 0); } - #line 490 "../smarty/lexer/smarty_internal_templateparser.y" + #line 487 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r45() { $this->_retvalue = $this->compiler->compileTag('for', @@ -1722,13 +1620,15 @@ class Smarty_Internal_Templateparser 0); } - #line 495 "../smarty/lexer/smarty_internal_templateparser.y" + #line 491 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r46() { $this->_retvalue = $this->compiler->compileTag('foreach', $this->yystack[ $this->yyidx + 0 ]->minor); } - #line 500 "../smarty/lexer/smarty_internal_templateparser.y" + #line 496 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r47() { $this->_retvalue = $this->compiler->compileTag('foreach', @@ -1739,7 +1639,8 @@ class Smarty_Internal_Templateparser -1 ]->minor)))); } - #line 504 "../smarty/lexer/smarty_internal_templateparser.y" + #line 501 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r48() { $this->_retvalue = $this->compiler->compileTag('foreach', @@ -1752,7 +1653,8 @@ class Smarty_Internal_Templateparser -3 ]->minor)))); } - #line 517 "../smarty/lexer/smarty_internal_templateparser.y" + #line 505 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r51() { $this->_retvalue = $this->compiler->compileTag('setfilter', @@ -1763,7 +1665,8 @@ class Smarty_Internal_Templateparser 0 ]->minor)))); } - #line 521 "../smarty/lexer/smarty_internal_templateparser.y" + #line 518 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r52() { $this->_retvalue = $this->compiler->compileTag('setfilter', @@ -1776,7 +1679,8 @@ class Smarty_Internal_Templateparser 0 ]->minor))); } - #line 526 "../smarty/lexer/smarty_internal_templateparser.y" + #line 522 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r53() { $j = strrpos($this->yystack[ $this->yyidx + 0 ]->minor, '.'); @@ -1789,7 +1693,8 @@ class Smarty_Internal_Templateparser } } - #line 539 "../smarty/lexer/smarty_internal_templateparser.y" + #line 527 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r54() { $tag = @@ -1803,13 +1708,15 @@ class Smarty_Internal_Templateparser } } - #line 548 "../smarty/lexer/smarty_internal_templateparser.y" + #line 540 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r55() { $this->_retvalue = $this->compiler->compileTag($this->yystack[ $this->yyidx + 0 ]->minor . 'close', array()); } - #line 552 "../smarty/lexer/smarty_internal_templateparser.y" + #line 549 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r56() { $this->_retvalue = $this->compiler->compileTag($this->yystack[ $this->yyidx + -1 ]->minor . 'close', @@ -1818,7 +1725,8 @@ class Smarty_Internal_Templateparser 0 ]->minor)); } - #line 557 "../smarty/lexer/smarty_internal_templateparser.y" + #line 553 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r57() { $this->_retvalue = $this->compiler->compileTag($this->yystack[ $this->yyidx + -2 ]->minor . 'close', @@ -1827,7 +1735,8 @@ class Smarty_Internal_Templateparser 0 ]->minor)); } - #line 561 "../smarty/lexer/smarty_internal_templateparser.y" + #line 558 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r58() { $this->_retvalue = $this->compiler->compileTag($this->yystack[ $this->yyidx + -3 ]->minor . 'close', @@ -1838,26 +1747,30 @@ class Smarty_Internal_Templateparser 0 ]->minor)); } - #line 569 "../smarty/lexer/smarty_internal_templateparser.y" + #line 562 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r59() { $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor; $this->_retvalue[] = $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 575 "../smarty/lexer/smarty_internal_templateparser.y" + #line 570 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r60() { $this->_retvalue = array($this->yystack[ $this->yyidx + 0 ]->minor); } - #line 580 "../smarty/lexer/smarty_internal_templateparser.y" + #line 576 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r61() { $this->_retvalue = array(); } - #line 585 "../smarty/lexer/smarty_internal_templateparser.y" + #line 581 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r62() { if (defined($this->yystack[ $this->yyidx + 0 ]->minor)) { @@ -1873,7 +1786,8 @@ class Smarty_Internal_Templateparser } } - #line 596 "../smarty/lexer/smarty_internal_templateparser.y" + #line 586 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r63() { $this->_retvalue = @@ -1881,41 +1795,47 @@ class Smarty_Internal_Templateparser 0 ]->minor); } - #line 604 "../smarty/lexer/smarty_internal_templateparser.y" + #line 597 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r65() { $this->_retvalue = '\'' . $this->yystack[ $this->yyidx + 0 ]->minor . '\''; } - #line 616 "../smarty/lexer/smarty_internal_templateparser.y" + #line 605 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r68() { $this->_retvalue = array($this->yystack[ $this->yyidx + -2 ]->minor => $this->yystack[ $this->yyidx + 0 ]->minor); } - #line 629 "../smarty/lexer/smarty_internal_templateparser.y" + #line 617 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r70() { $this->yystack[ $this->yyidx + -2 ]->minor[] = $this->yystack[ $this->yyidx + 0 ]->minor; $this->_retvalue = $this->yystack[ $this->yyidx + -2 ]->minor; } - #line 634 "../smarty/lexer/smarty_internal_templateparser.y" + #line 630 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r71() { $this->_retvalue = array('var' => '\'' . substr($this->yystack[ $this->yyidx + -2 ]->minor, 1) . '\'', 'value' => $this->yystack[ $this->yyidx + 0 ]->minor); } - #line 641 "../smarty/lexer/smarty_internal_templateparser.y" + #line 635 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r73() { $this->_retvalue = array('var' => $this->yystack[ $this->yyidx + -2 ]->minor, 'value' => $this->yystack[ $this->yyidx + 0 ]->minor); } - #line 665 "../smarty/lexer/smarty_internal_templateparser.y" + #line 642 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r77() { $this->_retvalue = @@ -1923,7 +1843,8 @@ class Smarty_Internal_Templateparser $this->yystack[ $this->yyidx + 0 ]->minor . '\')'; } - #line 670 "../smarty/lexer/smarty_internal_templateparser.y" + #line 666 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r78() { $this->_retvalue = @@ -1931,7 +1852,8 @@ class Smarty_Internal_Templateparser $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 684 "../smarty/lexer/smarty_internal_templateparser.y" + #line 671 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r81() { $this->_retvalue = $this->compiler->compileTag('private_modifier', @@ -1941,7 +1863,8 @@ class Smarty_Internal_Templateparser 0 ]->minor)); } - #line 690 "../smarty/lexer/smarty_internal_templateparser.y" + #line 685 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r82() { $this->_retvalue = @@ -1949,20 +1872,23 @@ class Smarty_Internal_Templateparser $this->yystack[ $this->yyidx + -1 ]->minor['op'] . $this->yystack[ $this->yyidx + 0 ]->minor . ')'; } - #line 694 "../smarty/lexer/smarty_internal_templateparser.y" + #line 691 "../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 698 "../smarty/lexer/smarty_internal_templateparser.y" + #line 695 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r84() { $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor . $this->yystack[ $this->yyidx + -1 ]->minor . ')'; } - #line 702 "../smarty/lexer/smarty_internal_templateparser.y" + #line 699 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r85() { $this->_retvalue = @@ -1970,14 +1896,16 @@ class Smarty_Internal_Templateparser ')'; } - #line 706 "../smarty/lexer/smarty_internal_templateparser.y" + #line 703 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r86() { $this->_retvalue = 'in_array(' . $this->yystack[ $this->yyidx + -2 ]->minor . ',(array)' . $this->yystack[ $this->yyidx + 0 ]->minor . ')'; } - #line 714 "../smarty/lexer/smarty_internal_templateparser.y" + #line 707 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r87() { $this->_retvalue = $this->yystack[ $this->yyidx + -5 ]->minor . ' ? ' . $this->compiler->compileVariable('\'' . @@ -1988,7 +1916,8 @@ class Smarty_Internal_Templateparser ' : ' . $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 718 "../smarty/lexer/smarty_internal_templateparser.y" + #line 715 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r88() { $this->_retvalue = @@ -1996,31 +1925,36 @@ class Smarty_Internal_Templateparser $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 733 "../smarty/lexer/smarty_internal_templateparser.y" + #line 719 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r91() { $this->_retvalue = '!' . $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 754 "../smarty/lexer/smarty_internal_templateparser.y" + #line 734 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r96() { $this->_retvalue = $this->yystack[ $this->yyidx + -2 ]->minor . '.' . $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 758 "../smarty/lexer/smarty_internal_templateparser.y" + #line 755 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r97() { $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor . '.'; } - #line 762 "../smarty/lexer/smarty_internal_templateparser.y" + #line 759 "../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" + #line 763 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r99() { if (defined($this->yystack[ $this->yyidx + 0 ]->minor)) { @@ -2033,20 +1967,23 @@ class Smarty_Internal_Templateparser } } - #line 784 "../smarty/lexer/smarty_internal_templateparser.y" + #line 768 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r101() { $this->_retvalue = "(" . $this->yystack[ $this->yyidx + -1 ]->minor . ")"; } - #line 788 "../smarty/lexer/smarty_internal_templateparser.y" + #line 785 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r102() { $this->_retvalue = $this->yystack[ $this->yyidx + -2 ]->minor . $this->yystack[ $this->yyidx + -1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 806 "../smarty/lexer/smarty_internal_templateparser.y" + #line 789 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r106() { $prefixVar = $this->compiler->getNewPrefixVariable(); @@ -2068,7 +2005,8 @@ class Smarty_Internal_Templateparser $this->yystack[ $this->yyidx + 0 ]->minor[1]; } - #line 817 "../smarty/lexer/smarty_internal_templateparser.y" + #line 807 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r107() { $prefixVar = $this->compiler->getNewPrefixVariable(); @@ -2077,7 +2015,8 @@ class Smarty_Internal_Templateparser $this->_retvalue = $prefixVar; } - #line 834 "../smarty/lexer/smarty_internal_templateparser.y" + #line 818 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r110() { if (!in_array(strtolower($this->yystack[ $this->yyidx + -2 ]->minor), array('self', 'parent')) && @@ -2099,20 +2038,23 @@ class Smarty_Internal_Templateparser } } - #line 853 "../smarty/lexer/smarty_internal_templateparser.y" + #line 835 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r112() { $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 864 "../smarty/lexer/smarty_internal_templateparser.y" + #line 854 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r113() { $this->_retvalue = $this->compiler->compileVariable('\'' . substr($this->yystack[ $this->yyidx + 0 ]->minor, 1) . '\''); } - #line 867 "../smarty/lexer/smarty_internal_templateparser.y" + #line 865 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r114() { if ($this->yystack[ $this->yyidx + 0 ]->minor['var'] == '\'smarty\'') { @@ -2130,21 +2072,24 @@ class Smarty_Internal_Templateparser } } - #line 880 "../smarty/lexer/smarty_internal_templateparser.y" + #line 868 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r115() { $this->_retvalue = '$_smarty_tpl->tpl_vars[' . $this->yystack[ $this->yyidx + -2 ]->minor . ']->' . $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 890 "../smarty/lexer/smarty_internal_templateparser.y" + #line 881 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r117() { $this->_retvalue = $this->compiler->compileConfigVariable("'" . $this->yystack[ $this->yyidx + -1 ]->minor . "'"); } - #line 894 "../smarty/lexer/smarty_internal_templateparser.y" + #line 891 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r118() { $this->_retvalue = '(is_array($tmp = ' . @@ -2153,13 +2098,15 @@ class Smarty_Internal_Templateparser $this->yystack[ $this->yyidx + 0 ]->minor . ' :null)'; } - #line 898 "../smarty/lexer/smarty_internal_templateparser.y" + #line 895 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r119() { $this->_retvalue = $this->compiler->compileConfigVariable($this->yystack[ $this->yyidx + -1 ]->minor); } - #line 902 "../smarty/lexer/smarty_internal_templateparser.y" + #line 899 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r120() { $this->_retvalue = @@ -2167,27 +2114,31 @@ class Smarty_Internal_Templateparser ') ? $tmp' . $this->yystack[ $this->yyidx + 0 ]->minor . ' : null)'; } - #line 906 "../smarty/lexer/smarty_internal_templateparser.y" + #line 903 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r121() { $this->_retvalue = array('var' => '\'' . substr($this->yystack[ $this->yyidx + -1 ]->minor, 1) . '\'', 'smarty_internal_index' => $this->yystack[ $this->yyidx + 0 ]->minor); } - #line 909 "../smarty/lexer/smarty_internal_templateparser.y" + #line 907 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r122() { $this->_retvalue = array('var' => $this->yystack[ $this->yyidx + -1 ]->minor, 'smarty_internal_index' => $this->yystack[ $this->yyidx + 0 ]->minor); } - #line 922 "../smarty/lexer/smarty_internal_templateparser.y" + #line 910 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r124() { return; } - #line 928 "../smarty/lexer/smarty_internal_templateparser.y" + #line 923 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r125() { $this->_retvalue = @@ -2195,38 +2146,44 @@ class Smarty_Internal_Templateparser ']'; } - #line 931 "../smarty/lexer/smarty_internal_templateparser.y" + #line 929 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r126() { $this->_retvalue = '[' . $this->compiler->compileVariable($this->yystack[ $this->yyidx + 0 ]->minor) . ']'; } - #line 935 "../smarty/lexer/smarty_internal_templateparser.y" + #line 932 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r127() { $this->_retvalue = '[' . $this->compiler->compileVariable($this->yystack[ $this->yyidx + -2 ]->minor) . '->' . $this->yystack[ $this->yyidx + 0 ]->minor . ']'; } - #line 939 "../smarty/lexer/smarty_internal_templateparser.y" + #line 936 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r128() { $this->_retvalue = "['" . $this->yystack[ $this->yyidx + 0 ]->minor . "']"; } - #line 943 "../smarty/lexer/smarty_internal_templateparser.y" + #line 940 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r129() { $this->_retvalue = '[' . $this->yystack[ $this->yyidx + 0 ]->minor . ']'; } - #line 948 "../smarty/lexer/smarty_internal_templateparser.y" + #line 944 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r130() { $this->_retvalue = '[' . $this->yystack[ $this->yyidx + -1 ]->minor . ']'; } - #line 953 "../smarty/lexer/smarty_internal_templateparser.y" + #line 949 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r131() { $this->_retvalue = '[' . $this->compiler->compileTag('private_special_variable', @@ -2236,7 +2193,8 @@ class Smarty_Internal_Templateparser '\'][\'index\']') . ']'; } - #line 957 "../smarty/lexer/smarty_internal_templateparser.y" + #line 954 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r132() { $this->_retvalue = '[' . $this->compiler->compileTag('private_special_variable', @@ -2246,13 +2204,15 @@ class Smarty_Internal_Templateparser $this->yystack[ $this->yyidx + -1 ]->minor . '\']') . ']'; } - #line 960 "../smarty/lexer/smarty_internal_templateparser.y" + #line 958 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r133() { $this->_retvalue = '[' . $this->yystack[ $this->yyidx + -1 ]->minor . ']'; } - #line 966 "../smarty/lexer/smarty_internal_templateparser.y" + #line 961 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r135() { $this->_retvalue = '[' . $this->compiler->compileVariable('\'' . @@ -2260,31 +2220,36 @@ class Smarty_Internal_Templateparser 1) . '\'') . ']';; } - #line 982 "../smarty/lexer/smarty_internal_templateparser.y" + #line 967 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r139() { $this->_retvalue = '[]'; } - #line 992 "../smarty/lexer/smarty_internal_templateparser.y" + #line 983 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r140() { $this->_retvalue = '\'' . substr($this->yystack[ $this->yyidx + 0 ]->minor, 1) . '\''; } - #line 996 "../smarty/lexer/smarty_internal_templateparser.y" + #line 993 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r141() { $this->_retvalue = "''"; } - #line 1001 "../smarty/lexer/smarty_internal_templateparser.y" + #line 997 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r142() { $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor . '.' . $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 1009 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1002 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r144() { $var = @@ -2293,13 +2258,15 @@ class Smarty_Internal_Templateparser $this->_retvalue = $this->compiler->compileVariable('\'' . $var . '\''); } - #line 1015 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1010 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r145() { $this->_retvalue = '(' . $this->yystack[ $this->yyidx + -1 ]->minor . ')'; } - #line 1022 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1016 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r146() { if ($this->yystack[ $this->yyidx + -1 ]->minor['var'] == '\'smarty\'') { @@ -2315,19 +2282,22 @@ class Smarty_Internal_Templateparser } } - #line 1031 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1023 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r147() { $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 1036 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1032 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r148() { $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 1041 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1037 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r149() { if ($this->security && substr($this->yystack[ $this->yyidx + -1 ]->minor, 0, 1) == '_') { @@ -2337,7 +2307,8 @@ class Smarty_Internal_Templateparser '->' . $this->yystack[ $this->yyidx + -1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 1048 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1042 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r150() { if ($this->security) { @@ -2347,7 +2318,8 @@ class Smarty_Internal_Templateparser $this->yystack[ $this->yyidx + 0 ]->minor . '}'; } - #line 1055 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1049 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r151() { if ($this->security) { @@ -2357,7 +2329,8 @@ class Smarty_Internal_Templateparser '->{' . $this->yystack[ $this->yyidx + -2 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor . '}'; } - #line 1062 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1056 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r152() { if ($this->security) { @@ -2368,20 +2341,23 @@ class Smarty_Internal_Templateparser $this->yystack[ $this->yyidx + 0 ]->minor . '}'; } - #line 1070 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1063 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r153() { $this->_retvalue = '->' . $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 1078 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1071 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r154() { $this->_retvalue = $this->compiler->compilePHPFunctionCall($this->yystack[ $this->yyidx + -3 ]->minor, $this->yystack[ $this->yyidx + -1 ]->minor); } - #line 1086 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1079 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r155() { if ($this->security && substr($this->yystack[ $this->yyidx + -3 ]->minor, 0, 1) == '_') { @@ -2391,7 +2367,8 @@ class Smarty_Internal_Templateparser implode(',', $this->yystack[ $this->yyidx + -1 ]->minor) . ")"; } - #line 1093 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1087 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r156() { if ($this->security) { @@ -2406,14 +2383,16 @@ class Smarty_Internal_Templateparser $this->_retvalue = $prefixVar . '(' . implode(',', $this->yystack[ $this->yyidx + -1 ]->minor) . ')'; } - #line 1104 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1094 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r157() { $this->_retvalue = array_merge($this->yystack[ $this->yyidx + -2 ]->minor, array($this->yystack[ $this->yyidx + 0 ]->minor)); } - #line 1121 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1105 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r160() { $this->_retvalue = array_merge($this->yystack[ $this->yyidx + -2 ]->minor, @@ -2421,53 +2400,61 @@ class Smarty_Internal_Templateparser $this->yystack[ $this->yyidx + 0 ]->minor))); } - #line 1125 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1122 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r161() { $this->_retvalue = array(array_merge($this->yystack[ $this->yyidx + -1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor)); } - #line 1133 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1126 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r163() { $this->_retvalue = array($this->yystack[ $this->yyidx + 0 ]->minor); } - #line 1141 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1134 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r164() { $this->_retvalue = array_merge($this->yystack[ $this->yyidx + -1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor); } - #line 1160 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1142 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r168() { $this->_retvalue = array($this->yystack[ $this->yyidx + 0 ]->minor, '', 'method'); } - #line 1165 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1161 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r169() { $this->_retvalue = array($this->yystack[ $this->yyidx + -1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor, 'method'); } - #line 1170 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1166 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r170() { $this->_retvalue = array($this->yystack[ $this->yyidx + 0 ]->minor, ''); } - #line 1175 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1171 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r171() { $this->_retvalue = array($this->yystack[ $this->yyidx + -1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor, 'property'); } - #line 1180 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1176 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r172() { $this->_retvalue = array($this->yystack[ $this->yyidx + -2 ]->minor, @@ -2475,13 +2462,15 @@ class Smarty_Internal_Templateparser 'property'); } - #line 1186 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1181 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r173() { $this->_retvalue = ' ' . trim($this->yystack[ $this->yyidx + 0 ]->minor) . ' '; } - #line 1190 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1187 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r174() { static $lops = @@ -2492,7 +2481,8 @@ class Smarty_Internal_Templateparser $this->_retvalue = $lops[ $op ]; } - #line 1209 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1191 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r175() { static $tlops = @@ -2505,7 +2495,8 @@ class Smarty_Internal_Templateparser $this->_retvalue = $tlops[ $op ]; } - #line 1222 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1210 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r176() { static $scond = @@ -2514,58 +2505,67 @@ class Smarty_Internal_Templateparser $this->_retvalue = $scond[ $op ]; } - #line 1236 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1223 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r177() { $this->_retvalue = 'array(' . $this->yystack[ $this->yyidx + -1 ]->minor . ')'; } - #line 1244 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1237 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r179() { $this->_retvalue = $this->yystack[ $this->yyidx + -2 ]->minor . ',' . $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 1252 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1245 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r181() { $this->_retvalue = $this->yystack[ $this->yyidx + -2 ]->minor . '=>' . $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 1256 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1253 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r182() { $this->_retvalue = '\'' . $this->yystack[ $this->yyidx + -2 ]->minor . '\'=>' . $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 1272 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1257 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r185() { $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor->to_smarty_php($this); } - #line 1277 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1273 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r186() { $this->yystack[ $this->yyidx + -1 ]->minor->append_subtree($this, $this->yystack[ $this->yyidx + 0 ]->minor); $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor; } - #line 1282 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1278 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r187() { $this->_retvalue = new Smarty_Internal_ParseTree_Dq($this, $this->yystack[ $this->yyidx + 0 ]->minor); } - #line 1286 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1283 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r188() { $this->_retvalue = new Smarty_Internal_ParseTree_Code('(string)' . $this->yystack[ $this->yyidx + -1 ]->minor); } - #line 1294 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1287 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r190() { $this->_retvalue = new Smarty_Internal_ParseTree_Code('(string)$_smarty_tpl->tpl_vars[\'' . @@ -2573,101 +2573,29 @@ class Smarty_Internal_Templateparser '\']->value'); } - #line 1302 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1295 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r192() { $this->_retvalue = new Smarty_Internal_ParseTree_Code('(string)(' . $this->yystack[ $this->yyidx + -1 ]->minor . ')'); } - #line 1306 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1303 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r193() { $this->_retvalue = new Smarty_Internal_ParseTree_Tag($this, $this->yystack[ $this->yyidx + 0 ]->minor); } - #line 1310 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1307 "../smarty/lexer/smarty_internal_templateparser.y" + function yy_r194() { $this->_retvalue = new Smarty_Internal_ParseTree_DqContent($this->yystack[ $this->yyidx + 0 ]->minor); } - private $_retvalue; - - public function yy_reduce($yyruleno) - { - if ($this->yyTraceFILE && $yyruleno >= 0 && $yyruleno < count(self::$yyRuleName)) { - fprintf($this->yyTraceFILE, - "%sReduce (%d) [%s].\n", - $this->yyTracePrompt, - $yyruleno, - self::$yyRuleName[ $yyruleno ]); - } - - $this->_retvalue = $yy_lefthand_side = null; - if (isset(self::$yyReduceMap[ $yyruleno ])) { - // call the action - $this->_retvalue = null; - $this->{'yy_r' . self::$yyReduceMap[ $yyruleno ]}(); - $yy_lefthand_side = $this->_retvalue; - } - $yygoto = self::$yyRuleInfo[ $yyruleno ][0]; - $yysize = self::$yyRuleInfo[ $yyruleno ][1]; - $this->yyidx -= $yysize; - for ($i = $yysize; $i; $i--) { - // pop all of the right-hand side parameters - array_pop($this->yystack); - } - $yyact = $this->yy_find_reduce_action($this->yystack[ $this->yyidx ]->stateno, $yygoto); - if ($yyact < self::YYNSTATE) { - if (!$this->yyTraceFILE && $yysize) { - $this->yyidx++; - $x = new TP_yyStackEntry; - $x->stateno = $yyact; - $x->major = $yygoto; - $x->minor = $yy_lefthand_side; - $this->yystack[ $this->yyidx ] = $x; - } else { - $this->yy_shift($yyact, $yygoto, $yy_lefthand_side); - } - } else if ($yyact == self::YYNSTATE + self::YYNRULE + 1) { - $this->yy_accept(); - } - } - - public function yy_parse_failed() - { - if ($this->yyTraceFILE) { - fprintf($this->yyTraceFILE, "%sFail!\n", $this->yyTracePrompt); - } - while ($this->yyidx >= 0) { - $this->yy_pop_parser_stack(); - } - } - - public function yy_syntax_error($yymajor, $TOKEN) - { - #line 200 "../smarty/lexer/smarty_internal_templateparser.y" - - $this->internalError = true; - $this->yymajor = $yymajor; - $this->compiler->trigger_template_error(); - } - - public function yy_accept() - { - if ($this->yyTraceFILE) { - fprintf($this->yyTraceFILE, "%sAccept!\n", $this->yyTracePrompt); - } - while ($this->yyidx >= 0) { - $this->yy_pop_parser_stack(); - } - #line 193 "../smarty/lexer/smarty_internal_templateparser.y" - - $this->successful = !$this->internalError; - $this->internalError = false; - $this->retvalue = $this->_retvalue; - } + #line 1311 "../smarty/lexer/smarty_internal_templateparser.y" public function doParse($yymajor, $yytokenvalue) { @@ -2760,5 +2688,207 @@ class Smarty_Internal_Templateparser } } while ($yymajor != self::YYNOCODE && $this->yyidx >= 0); } + + public function yy_is_expected_token($token) + { + static $res = array(); + static $res2 = array(); + if ($token === 0) { + return true; // 0 is not part of this + } + $state = $this->yystack[ $this->yyidx ]->stateno; + if (isset($res[ $state ][ $token ])) { + if ($res[ $state ][ $token ]) { + return true; + } + } else { + if ($res[ $state ][ $token ] = in_array($token, self::$yyExpectedTokens[ $state ], true)) { + return true; + } + } + $stack = $this->yystack; + $yyidx = $this->yyidx; + do { + $yyact = $this->yy_find_shift_action($token); + if ($yyact >= self::YYNSTATE && $yyact < self::YYNSTATE + self::YYNRULE) { + // reduce action + $done = 0; + do { + if ($done++ == 100) { + $this->yyidx = $yyidx; + $this->yystack = $stack; + // too much recursion prevents proper detection + // so give up + return true; + } + $yyruleno = $yyact - self::YYNSTATE; + $this->yyidx -= self::$yyRuleInfo[ $yyruleno ][1]; + $nextstate = $this->yy_find_reduce_action($this->yystack[ $this->yyidx ]->stateno, + self::$yyRuleInfo[ $yyruleno ][0]); + if (isset($res2[ $nextstate ][ $token ])) { + if ($res2[ $nextstate ][ $token ]) { + $this->yyidx = $yyidx; + $this->yystack = $stack; + return true; + } + } else { + if ($res2[ $nextstate ][ $token ] = (isset(self::$yyExpectedTokens[ $nextstate ]) && + in_array($token, + self::$yyExpectedTokens[ $nextstate ], + true))) { + $this->yyidx = $yyidx; + $this->yystack = $stack; + return true; + } + } + if ($nextstate < self::YYNSTATE) { + // we need to shift a non-terminal + $this->yyidx++; + $x = new TP_yyStackEntry; + $x->stateno = $nextstate; + $x->major = self::$yyRuleInfo[ $yyruleno ][0]; + $this->yystack[ $this->yyidx ] = $x; + continue 2; + } else if ($nextstate == self::YYNSTATE + self::YYNRULE + 1) { + $this->yyidx = $yyidx; + $this->yystack = $stack; + if (!$token) { + // end of input: this is valid + return true; + } + // the last token was just ignored, we can't accept + // by ignoring input, this is in essence ignoring a + // syntax error! + return false; + } else if ($nextstate === self::YY_NO_ACTION) { + $this->yyidx = $yyidx; + $this->yystack = $stack; + // input accepted, but not shifted (I guess) + return true; + } else { + $yyact = $nextstate; + } + } while (true); + } + break; + } while (true); + $this->yyidx = $yyidx; + $this->yystack = $stack; + + return true; + } + + public function yy_shift($yyNewState, $yyMajor, $yypMinor) + { + $this->yyidx++; + if ($this->yyidx >= self::YYSTACKDEPTH) { + $this->yyidx--; + if ($this->yyTraceFILE) { + fprintf($this->yyTraceFILE, "%sStack Overflow!\n", $this->yyTracePrompt); + } + while ($this->yyidx >= 0) { + $this->yy_pop_parser_stack(); + } + #line 207 "../smarty/lexer/smarty_internal_templateparser.y" + + $this->internalError = true; + $this->compiler->trigger_template_error("Stack overflow in template parser"); + + return; + } + $yytos = new TP_yyStackEntry; + $yytos->stateno = $yyNewState; + $yytos->major = $yyMajor; + $yytos->minor = $yypMinor; + $this->yystack[] = $yytos; + if ($this->yyTraceFILE && $this->yyidx > 0) { + fprintf($this->yyTraceFILE, + "%sShift %d\n", + $this->yyTracePrompt, + $yyNewState); + fprintf($this->yyTraceFILE, "%sStack:", $this->yyTracePrompt); + for ($i = 1; $i <= $this->yyidx; $i++) { + fprintf($this->yyTraceFILE, + " %s", + $this->yyTokenName[ $this->yystack[ $i ]->major ]); + } + fwrite($this->yyTraceFILE, "\n"); + } + } + + public function yy_reduce($yyruleno) + { + if ($this->yyTraceFILE && $yyruleno >= 0 && $yyruleno < count(self::$yyRuleName)) { + fprintf($this->yyTraceFILE, + "%sReduce (%d) [%s].\n", + $this->yyTracePrompt, + $yyruleno, + self::$yyRuleName[ $yyruleno ]); + } + + $this->_retvalue = $yy_lefthand_side = null; + if (isset(self::$yyReduceMap[ $yyruleno ])) { + // call the action + $this->_retvalue = null; + $this->{'yy_r' . self::$yyReduceMap[ $yyruleno ]}(); + $yy_lefthand_side = $this->_retvalue; + } + $yygoto = self::$yyRuleInfo[ $yyruleno ][0]; + $yysize = self::$yyRuleInfo[ $yyruleno ][1]; + $this->yyidx -= $yysize; + for ($i = $yysize; $i; $i--) { + // pop all of the right-hand side parameters + array_pop($this->yystack); + } + $yyact = $this->yy_find_reduce_action($this->yystack[ $this->yyidx ]->stateno, $yygoto); + if ($yyact < self::YYNSTATE) { + if (!$this->yyTraceFILE && $yysize) { + $this->yyidx++; + $x = new TP_yyStackEntry; + $x->stateno = $yyact; + $x->major = $yygoto; + $x->minor = $yy_lefthand_side; + $this->yystack[ $this->yyidx ] = $x; + } else { + $this->yy_shift($yyact, $yygoto, $yy_lefthand_side); + } + } else if ($yyact == self::YYNSTATE + self::YYNRULE + 1) { + $this->yy_accept(); + } + } + + public function yy_accept() + { + if ($this->yyTraceFILE) { + fprintf($this->yyTraceFILE, "%sAccept!\n", $this->yyTracePrompt); + } + while ($this->yyidx >= 0) { + $this->yy_pop_parser_stack(); + } + #line 193 "../smarty/lexer/smarty_internal_templateparser.y" + + $this->successful = !$this->internalError; + $this->internalError = false; + $this->retvalue = $this->_retvalue; + } + + public function yy_syntax_error($yymajor, $TOKEN) + { + #line 200 "../smarty/lexer/smarty_internal_templateparser.y" + + $this->internalError = true; + $this->yymajor = $yymajor; + $this->compiler->trigger_template_error(); + } + + public function yy_parse_failed() + { + if ($this->yyTraceFILE) { + fprintf($this->yyTraceFILE, "%sFail!\n", $this->yyTracePrompt); + } + while ($this->yyidx >= 0) { + $this->yy_pop_parser_stack(); + } + } }