summaryrefslogtreecommitdiff
path: root/lib/smarty3/sysplugins/smarty_internal_templateparser.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/smarty3/sysplugins/smarty_internal_templateparser.php')
-rw-r--r--lib/smarty3/sysplugins/smarty_internal_templateparser.php3071
1 files changed, 3071 insertions, 0 deletions
diff --git a/lib/smarty3/sysplugins/smarty_internal_templateparser.php b/lib/smarty3/sysplugins/smarty_internal_templateparser.php
new file mode 100644
index 0000000..8503427
--- /dev/null
+++ b/lib/smarty3/sysplugins/smarty_internal_templateparser.php
@@ -0,0 +1,3071 @@
+<?php
+class TP_yyToken implements ArrayAccess
+{
+ public $string = '';
+ public $metadata = array();
+
+ public function __construct($s, $m = array())
+ {
+ if ($s instanceof TP_yyToken) {
+ $this->string = $s->string;
+ $this->metadata = $s->metadata;
+ } else {
+ $this->string = (string) $s;
+ if ($m instanceof TP_yyToken) {
+ $this->metadata = $m->metadata;
+ } elseif (is_array($m)) {
+ $this->metadata = $m;
+ }
+ }
+ }
+
+ public function __toString()
+ {
+ return $this->string;
+ }
+
+ public function offsetExists($offset)
+ {
+ return isset($this->metadata[$offset]);
+ }
+
+ public function offsetGet($offset)
+ {
+ return $this->metadata[$offset];
+ }
+
+ public function offsetSet($offset, $value)
+ {
+ if ($offset === null) {
+ if (isset($value[0])) {
+ $x = ($value instanceof TP_yyToken) ?
+ $value->metadata : $value;
+ $this->metadata = array_merge($this->metadata, $x);
+
+ return;
+ }
+ $offset = count($this->metadata);
+ }
+ if ($value === null) {
+ return;
+ }
+ if ($value instanceof TP_yyToken) {
+ if ($value->metadata) {
+ $this->metadata[$offset] = $value->metadata;
+ }
+ } elseif ($value) {
+ $this->metadata[$offset] = $value;
+ }
+ }
+
+ public function offsetUnset($offset)
+ {
+ unset($this->metadata[$offset]);
+ }
+}
+
+class TP_yyStackEntry
+{
+ public $stateno; /* The state-number */
+ public $major; /* The major token value. This is the code
+ ** number for the token at this stack level */
+ public $minor; /* The user-supplied minor token value. This
+ ** is the value of the token */
+};
+
+
+#line 11 "./lexer/smarty_internal_templateparser.y"
+
+/**
+* Smarty Template Parser Class
+*
+* This is the template parser.
+* It is generated from the smarty_internal_templateparser.y file
+*
+* @author Uwe Tews <uwe.tews@googlemail.com>
+*/
+class Smarty_Internal_Templateparser
+{
+#line 23 "./lexer/smarty_internal_templateparser.y"
+
+ const Err1 = "Security error: Call to private object member not allowed";
+ const Err2 = "Security error: Call to dynamic object member not allowed";
+ const Err3 = "PHP in template not allowed. Use SmartyBC to enable it";
+
+ /**
+ * result status
+ *
+ * @var bool
+ */
+ public $successful = true;
+
+ /**
+ * return value
+ *
+ * @var mixed
+ */
+ public $retvalue = 0;
+
+ /**
+ * @var
+ */
+ public $yymajor;
+
+ /**
+ * last index of array variable
+ *
+ * @var mixed
+ */
+ public $last_index;
+
+ /**
+ * last variable name
+ *
+ * @var string
+ */
+ public $last_variable;
+
+ /**
+ * root parse tree buffer
+ *
+ * @var Smarty_Internal_ParseTree
+ */
+ 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_NOCACHE = 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_UNIMATH = 40;
+ const TP_ISIN = 41;
+ const TP_QMARK = 42;
+ const TP_NOT = 43;
+ const TP_TYPECAST = 44;
+ const TP_HEX = 45;
+ const TP_DOT = 46;
+ const TP_INSTANCEOF = 47;
+ const TP_SINGLEQUOTESTRING = 48;
+ const TP_DOUBLECOLON = 49;
+ const TP_NAMESPACE = 50;
+ const TP_AT = 51;
+ const TP_HATCH = 52;
+ const TP_OPENB = 53;
+ const TP_CLOSEB = 54;
+ const TP_DOLLAR = 55;
+ const TP_LOGOP = 56;
+ const TP_SLOGOP = 57;
+ const TP_TLOGOP = 58;
+ const TP_SINGLECOND = 59;
+ const TP_QUOTE = 60;
+ const TP_BACKTICK = 61;
+ const YY_NO_ACTION = 534;
+ const YY_ACCEPT_ACTION = 533;
+ const YY_ERROR_ACTION = 532;
+
+ const YY_SZ_ACTTAB = 2044;
+static public $yy_action = array(
+ 251, 8, 133, 158, 281, 80, 321, 218, 5, 83,
+ 119, 177, 280, 243, 108, 102, 150, 308, 227, 296,
+ 289, 234, 223, 233, 322, 28, 299, 332, 39, 190,
+ 137, 40, 43, 268, 230, 461, 282, 9, 205, 357,
+ 82, 1, 461, 324, 190, 251, 8, 132, 79, 281,
+ 197, 326, 218, 5, 83, 25, 85, 306, 212, 108,
+ 27, 196, 13, 227, 277, 289, 234, 99, 204, 213,
+ 28, 216, 208, 39, 106, 78, 40, 43, 268, 230,
+ 219, 221, 267, 205, 119, 82, 1, 312, 324, 102,
+ 251, 8, 135, 79, 281, 201, 183, 218, 5, 83,
+ 334, 332, 324, 31, 108, 44, 30, 241, 227, 136,
+ 289, 234, 254, 233, 23, 28, 136, 99, 39, 214,
+ 192, 40, 43, 268, 230, 25, 282, 326, 205, 140,
+ 82, 1, 13, 324, 461, 251, 8, 136, 79, 281,
+ 201, 461, 218, 5, 83, 250, 212, 82, 109, 108,
+ 324, 78, 94, 227, 82, 289, 234, 324, 233, 179,
+ 33, 32, 18, 39, 99, 245, 40, 43, 268, 230,
+ 324, 282, 25, 205, 272, 82, 1, 259, 324, 13,
+ 251, 8, 135, 79, 281, 195, 7, 218, 5, 83,
+ 327, 262, 263, 220, 108, 109, 223, 213, 227, 258,
+ 289, 234, 106, 206, 181, 28, 6, 326, 39, 160,
+ 449, 40, 43, 268, 230, 11, 282, 310, 205, 299,
+ 82, 1, 449, 324, 300, 251, 8, 134, 79, 281,
+ 201, 78, 218, 5, 83, 257, 182, 190, 331, 108,
+ 17, 229, 95, 227, 155, 289, 234, 19, 233, 240,
+ 28, 187, 292, 39, 29, 239, 40, 43, 268, 230,
+ 192, 282, 176, 205, 156, 82, 1, 24, 324, 106,
+ 251, 8, 135, 79, 281, 193, 324, 218, 5, 83,
+ 180, 92, 324, 235, 108, 232, 192, 290, 227, 21,
+ 289, 234, 232, 233, 308, 28, 298, 448, 39, 223,
+ 329, 40, 43, 268, 230, 11, 282, 284, 205, 448,
+ 82, 1, 11, 324, 317, 251, 8, 135, 79, 281,
+ 201, 326, 218, 5, 83, 3, 477, 477, 186, 108,
+ 236, 477, 141, 227, 304, 289, 234, 112, 194, 213,
+ 28, 215, 99, 39, 106, 78, 40, 43, 268, 230,
+ 22, 282, 192, 205, 448, 82, 1, 13, 324, 171,
+ 251, 8, 135, 79, 281, 198, 448, 218, 5, 83,
+ 137, 293, 14, 178, 108, 242, 294, 9, 227, 38,
+ 289, 234, 120, 233, 189, 28, 185, 292, 39, 184,
+ 292, 40, 43, 268, 230, 121, 282, 192, 205, 279,
+ 82, 1, 103, 324, 309, 251, 8, 131, 79, 281,
+ 201, 174, 218, 5, 83, 212, 38, 165, 115, 108,
+ 287, 299, 154, 227, 295, 289, 234, 299, 233, 152,
+ 4, 295, 212, 39, 149, 212, 40, 43, 268, 230,
+ 295, 282, 363, 205, 299, 82, 1, 270, 324, 249,
+ 251, 8, 136, 79, 281, 201, 120, 218, 5, 83,
+ 330, 232, 175, 15, 108, 274, 212, 168, 227, 212,
+ 289, 234, 299, 233, 2, 33, 401, 299, 39, 161,
+ 212, 40, 43, 268, 230, 295, 282, 84, 205, 299,
+ 82, 173, 401, 324, 35, 293, 14, 238, 79, 401,
+ 294, 299, 264, 265, 261, 271, 273, 177, 212, 12,
+ 25, 251, 8, 144, 295, 281, 32, 13, 218, 5,
+ 83, 302, 252, 299, 169, 108, 325, 139, 183, 227,
+ 244, 289, 234, 224, 299, 248, 295, 44, 30, 241,
+ 223, 203, 323, 118, 73, 110, 41, 42, 37, 269,
+ 102, 99, 192, 266, 320, 333, 247, 153, 275, 211,
+ 260, 91, 332, 311, 316, 318, 319, 299, 324, 248,
+ 34, 7, 202, 286, 223, 203, 145, 127, 49, 105,
+ 276, 117, 109, 147, 102, 192, 402, 266, 320, 290,
+ 217, 164, 275, 211, 260, 93, 332, 256, 248, 90,
+ 116, 299, 402, 223, 203, 240, 127, 66, 110, 402,
+ 212, 138, 448, 102, 107, 159, 266, 320, 89, 192,
+ 369, 275, 211, 260, 448, 332, 278, 228, 88, 248,
+ 146, 295, 210, 86, 223, 203, 25, 127, 57, 105,
+ 87, 215, 143, 13, 102, 305, 448, 266, 320, 305,
+ 305, 305, 275, 211, 260, 248, 332, 305, 448, 305,
+ 223, 203, 305, 127, 66, 110, 212, 41, 42, 37,
+ 102, 305, 305, 266, 320, 305, 359, 305, 275, 211,
+ 260, 305, 332, 305, 311, 316, 318, 319, 248, 207,
+ 305, 305, 25, 223, 203, 212, 127, 66, 110, 13,
+ 212, 305, 305, 102, 305, 404, 266, 320, 305, 307,
+ 404, 275, 211, 260, 305, 332, 251, 10, 315, 305,
+ 281, 404, 209, 218, 5, 83, 404, 166, 404, 305,
+ 108, 307, 288, 404, 227, 305, 289, 234, 251, 10,
+ 315, 305, 281, 305, 326, 218, 5, 83, 25, 305,
+ 305, 305, 108, 305, 305, 13, 227, 305, 289, 234,
+ 305, 305, 162, 305, 301, 16, 183, 305, 78, 477,
+ 477, 305, 299, 248, 477, 44, 30, 241, 223, 203,
+ 305, 118, 73, 110, 305, 305, 303, 16, 102, 151,
+ 192, 266, 320, 186, 305, 305, 275, 211, 260, 299,
+ 332, 305, 305, 305, 248, 305, 305, 305, 477, 223,
+ 203, 297, 127, 59, 110, 305, 305, 192, 305, 102,
+ 142, 305, 266, 320, 183, 305, 305, 275, 211, 260,
+ 299, 332, 248, 44, 30, 241, 305, 223, 203, 305,
+ 127, 46, 110, 305, 305, 305, 305, 102, 192, 305,
+ 266, 320, 305, 305, 305, 275, 211, 260, 248, 332,
+ 212, 305, 305, 223, 203, 305, 127, 55, 110, 305,
+ 283, 305, 305, 102, 170, 305, 266, 320, 183, 305,
+ 305, 275, 211, 260, 299, 332, 248, 44, 30, 241,
+ 305, 223, 203, 305, 127, 47, 110, 305, 41, 42,
+ 37, 102, 192, 305, 266, 320, 305, 305, 305, 275,
+ 211, 260, 305, 332, 248, 311, 316, 318, 319, 223,
+ 203, 305, 127, 69, 110, 305, 305, 305, 305, 102,
+ 305, 305, 266, 320, 305, 305, 305, 275, 211, 260,
+ 248, 332, 212, 305, 305, 223, 203, 305, 127, 68,
+ 110, 305, 191, 305, 305, 102, 157, 305, 266, 320,
+ 183, 305, 305, 275, 211, 260, 299, 332, 248, 44,
+ 30, 241, 305, 223, 203, 305, 127, 51, 110, 305,
+ 41, 42, 37, 102, 192, 305, 266, 320, 305, 305,
+ 305, 275, 211, 260, 305, 332, 248, 311, 316, 318,
+ 319, 223, 203, 305, 127, 64, 110, 305, 305, 305,
+ 305, 102, 305, 305, 266, 320, 305, 305, 305, 275,
+ 211, 260, 248, 332, 212, 305, 305, 223, 203, 305,
+ 127, 61, 110, 293, 14, 305, 305, 102, 294, 305,
+ 266, 320, 305, 305, 305, 275, 211, 260, 305, 332,
+ 248, 167, 305, 305, 305, 223, 96, 305, 81, 50,
+ 104, 305, 41, 42, 37, 102, 305, 305, 266, 320,
+ 305, 305, 237, 275, 211, 260, 305, 332, 248, 311,
+ 316, 318, 319, 223, 199, 305, 113, 56, 110, 305,
+ 305, 305, 305, 102, 305, 305, 266, 320, 305, 305,
+ 305, 275, 211, 260, 248, 332, 212, 305, 305, 223,
+ 97, 305, 81, 45, 104, 305, 305, 305, 305, 102,
+ 163, 305, 266, 320, 183, 305, 305, 275, 211, 260,
+ 299, 332, 248, 44, 30, 241, 305, 223, 203, 305,
+ 127, 71, 110, 226, 41, 42, 37, 102, 192, 305,
+ 266, 320, 305, 305, 305, 275, 211, 260, 305, 332,
+ 248, 311, 316, 318, 319, 223, 203, 305, 127, 76,
+ 110, 305, 305, 305, 305, 102, 293, 14, 266, 320,
+ 305, 294, 305, 275, 211, 260, 248, 332, 212, 305,
+ 305, 223, 203, 305, 100, 72, 110, 305, 188, 305,
+ 305, 102, 305, 305, 266, 320, 305, 305, 305, 275,
+ 211, 260, 305, 332, 248, 231, 305, 305, 305, 223,
+ 203, 305, 127, 62, 110, 305, 41, 42, 37, 102,
+ 305, 305, 266, 320, 305, 305, 305, 275, 211, 260,
+ 305, 332, 248, 311, 316, 318, 319, 223, 203, 305,
+ 127, 65, 110, 305, 305, 305, 305, 102, 305, 305,
+ 266, 320, 305, 305, 305, 275, 211, 260, 248, 332,
+ 212, 305, 305, 223, 203, 305, 127, 70, 110, 305,
+ 305, 305, 305, 102, 305, 305, 266, 320, 305, 305,
+ 305, 275, 211, 260, 305, 332, 248, 305, 305, 305,
+ 305, 223, 200, 305, 127, 53, 110, 314, 41, 42,
+ 37, 102, 305, 305, 266, 320, 305, 305, 305, 275,
+ 211, 260, 305, 332, 248, 311, 316, 318, 319, 223,
+ 203, 305, 127, 54, 110, 305, 305, 305, 305, 102,
+ 305, 305, 266, 320, 305, 305, 305, 275, 211, 260,
+ 248, 332, 212, 305, 305, 223, 203, 305, 127, 75,
+ 110, 305, 313, 305, 305, 102, 305, 305, 266, 320,
+ 305, 305, 305, 275, 211, 260, 305, 332, 248, 305,
+ 305, 305, 305, 223, 203, 305, 111, 48, 110, 305,
+ 41, 42, 37, 102, 305, 305, 266, 320, 305, 305,
+ 305, 275, 211, 260, 305, 332, 248, 311, 316, 318,
+ 319, 223, 203, 305, 127, 67, 110, 305, 305, 305,
+ 305, 102, 305, 305, 266, 320, 305, 305, 305, 275,
+ 211, 260, 248, 332, 212, 305, 305, 223, 203, 305,
+ 98, 58, 110, 305, 305, 305, 305, 102, 305, 305,
+ 266, 320, 305, 305, 305, 275, 211, 260, 305, 332,
+ 248, 305, 305, 305, 305, 223, 203, 305, 127, 60,
+ 110, 305, 41, 42, 37, 102, 305, 305, 266, 320,
+ 305, 305, 305, 275, 211, 260, 305, 332, 248, 311,
+ 316, 318, 319, 223, 203, 305, 101, 74, 110, 305,
+ 305, 305, 305, 102, 305, 305, 266, 320, 305, 305,
+ 305, 275, 211, 260, 248, 332, 305, 305, 305, 223,
+ 203, 305, 127, 77, 110, 305, 305, 305, 305, 102,
+ 305, 305, 266, 320, 305, 305, 305, 275, 211, 260,
+ 305, 332, 248, 305, 305, 305, 305, 223, 203, 305,
+ 127, 63, 110, 305, 305, 305, 305, 102, 305, 305,
+ 266, 320, 212, 305, 305, 275, 211, 260, 305, 332,
+ 248, 305, 212, 305, 305, 223, 203, 305, 127, 57,
+ 110, 305, 291, 305, 305, 102, 305, 305, 266, 320,
+ 305, 293, 14, 275, 211, 260, 294, 332, 25, 305,
+ 41, 42, 37, 305, 305, 13, 25, 305, 148, 305,
+ 41, 42, 37, 13, 448, 255, 305, 311, 316, 318,
+ 319, 305, 305, 222, 305, 305, 448, 311, 316, 318,
+ 319, 328, 248, 225, 212, 305, 305, 223, 203, 305,
+ 130, 305, 110, 477, 477, 305, 31, 102, 477, 461,
+ 305, 285, 305, 305, 305, 275, 211, 260, 36, 332,
+ 25, 414, 414, 305, 293, 14, 305, 13, 305, 294,
+ 305, 305, 41, 42, 37, 305, 305, 461, 305, 25,
+ 461, 172, 477, 305, 461, 305, 13, 305, 305, 311,
+ 316, 318, 319, 305, 305, 305, 305, 448, 305, 414,
+ 414, 414, 305, 305, 305, 248, 305, 212, 305, 448,
+ 223, 203, 305, 128, 305, 110, 414, 414, 414, 414,
+ 102, 305, 305, 305, 246, 305, 305, 225, 275, 211,
+ 260, 305, 332, 25, 305, 305, 305, 477, 477, 305,
+ 13, 225, 477, 461, 305, 41, 42, 37, 305, 305,
+ 305, 477, 477, 305, 20, 305, 477, 461, 305, 305,
+ 305, 305, 311, 316, 318, 319, 305, 305, 305, 305,
+ 305, 461, 305, 305, 461, 305, 477, 305, 461, 253,
+ 305, 305, 305, 305, 305, 461, 305, 305, 461, 305,
+ 477, 305, 461, 305, 248, 305, 305, 305, 305, 223,
+ 203, 305, 124, 305, 110, 305, 305, 305, 305, 102,
+ 305, 305, 305, 305, 305, 305, 305, 275, 211, 260,
+ 305, 332, 305, 248, 305, 212, 305, 305, 223, 203,
+ 305, 125, 305, 110, 305, 305, 305, 305, 102, 305,
+ 305, 305, 305, 408, 305, 305, 275, 211, 260, 305,
+ 332, 305, 248, 305, 408, 305, 408, 223, 203, 408,
+ 122, 305, 110, 41, 42, 37, 408, 102, 408, 305,
+ 408, 305, 305, 305, 305, 275, 211, 260, 232, 332,
+ 311, 316, 318, 319, 248, 305, 305, 305, 305, 223,
+ 203, 305, 126, 305, 110, 248, 305, 305, 305, 102,
+ 223, 203, 305, 129, 305, 110, 305, 275, 211, 260,
+ 102, 332, 305, 305, 305, 305, 305, 305, 275, 211,
+ 260, 305, 332, 305, 248, 225, 305, 305, 305, 223,
+ 203, 305, 123, 305, 110, 477, 477, 305, 305, 102,
+ 477, 461, 26, 212, 305, 305, 305, 275, 211, 260,
+ 305, 332, 477, 477, 305, 305, 305, 477, 461, 305,
+ 305, 305, 305, 305, 114, 305, 305, 305, 305, 461,
+ 305, 305, 461, 305, 477, 305, 461, 305, 305, 305,
+ 305, 41, 42, 37, 305, 305, 461, 305, 305, 461,
+ 305, 477, 305, 461, 305, 305, 305, 305, 311, 316,
+ 318, 319, 477, 477, 305, 305, 305, 477, 461, 305,
+ 305, 533, 52, 335, 262, 263, 220, 305, 305, 223,
+ 305, 305, 305, 305, 305, 305, 305, 305, 305, 305,
+ 305, 305, 305, 305, 305, 305, 461, 305, 305, 461,
+ 305, 477, 305, 461,
+ );
+ static public $yy_lookahead = array(
+ 12, 13, 14, 94, 16, 17, 72, 19, 20, 21,
+ 76, 8, 9, 10, 26, 81, 73, 66, 30, 31,
+ 32, 33, 71, 35, 90, 37, 83, 93, 40, 101,
+ 46, 43, 44, 45, 46, 46, 48, 53, 50, 11,
+ 52, 53, 53, 55, 101, 12, 13, 14, 60, 16,
+ 17, 23, 19, 20, 21, 27, 105, 106, 1, 26,
+ 13, 14, 34, 30, 17, 32, 33, 18, 35, 76,
+ 37, 78, 79, 40, 81, 47, 43, 44, 45, 46,
+ 72, 48, 35, 50, 76, 52, 53, 54, 55, 81,
+ 12, 13, 14, 60, 16, 17, 77, 19, 20, 21,
+ 98, 93, 55, 15, 26, 86, 87, 88, 30, 14,
+ 32, 33, 17, 35, 15, 37, 14, 18, 40, 17,
+ 101, 43, 44, 45, 46, 27, 48, 23, 50, 14,
+ 52, 53, 34, 55, 46, 12, 13, 14, 60, 16,
+ 17, 53, 19, 20, 21, 50, 1, 52, 49, 26,
+ 55, 47, 37, 30, 52, 32, 33, 55, 35, 82,
+ 37, 15, 13, 40, 18, 61, 43, 44, 45, 46,
+ 55, 48, 27, 50, 67, 52, 53, 70, 55, 34,
+ 12, 13, 14, 60, 16, 17, 37, 19, 20, 21,
+ 65, 66, 67, 68, 26, 49, 71, 76, 30, 78,
+ 32, 33, 81, 35, 82, 37, 36, 23, 40, 73,
+ 37, 43, 44, 45, 46, 36, 48, 38, 50, 83,
+ 52, 53, 49, 55, 54, 12, 13, 14, 60, 16,
+ 17, 47, 19, 20, 21, 14, 77, 101, 54, 26,
+ 13, 14, 82, 30, 17, 32, 33, 15, 35, 95,
+ 37, 97, 98, 40, 15, 23, 43, 44, 45, 46,
+ 101, 48, 77, 50, 76, 52, 53, 22, 55, 81,
+ 12, 13, 14, 60, 16, 17, 55, 19, 20, 21,
+ 14, 36, 55, 17, 26, 46, 101, 102, 30, 29,
+ 32, 33, 46, 35, 66, 37, 17, 37, 40, 71,
+ 54, 43, 44, 45, 46, 36, 48, 38, 50, 49,
+ 52, 53, 36, 55, 38, 12, 13, 14, 60, 16,
+ 17, 23, 19, 20, 21, 37, 12, 13, 77, 26,
+ 51, 17, 94, 30, 106, 32, 33, 49, 35, 76,
+ 37, 78, 18, 40, 81, 47, 43, 44, 45, 46,
+ 27, 48, 101, 50, 37, 52, 53, 34, 55, 94,
+ 12, 13, 14, 60, 16, 17, 49, 19, 20, 21,
+ 46, 12, 13, 77, 26, 92, 17, 53, 30, 2,
+ 32, 33, 99, 35, 17, 37, 97, 98, 40, 97,
+ 98, 43, 44, 45, 46, 17, 48, 101, 50, 17,
+ 52, 53, 81, 55, 17, 12, 13, 14, 60, 16,
+ 17, 73, 19, 20, 21, 1, 2, 73, 17, 26,
+ 99, 83, 94, 30, 96, 32, 33, 83, 35, 94,
+ 37, 96, 1, 40, 73, 1, 43, 44, 45, 46,
+ 96, 48, 11, 50, 83, 52, 53, 35, 55, 92,
+ 12, 13, 14, 60, 16, 17, 99, 19, 20, 21,
+ 17, 46, 73, 29, 26, 35, 1, 73, 30, 1,
+ 32, 33, 83, 35, 37, 37, 11, 83, 40, 73,
+ 1, 43, 44, 45, 46, 96, 48, 17, 50, 83,
+ 52, 73, 27, 55, 42, 12, 13, 18, 60, 34,
+ 17, 83, 3, 4, 5, 6, 7, 8, 1, 2,
+ 27, 12, 13, 73, 96, 16, 15, 34, 19, 20,
+ 21, 17, 54, 83, 73, 26, 54, 14, 77, 30,
+ 11, 32, 33, 17, 83, 66, 96, 86, 87, 88,
+ 71, 72, 54, 74, 75, 76, 39, 40, 41, 5,
+ 81, 18, 101, 84, 85, 14, 17, 73, 89, 90,
+ 91, 77, 93, 56, 57, 58, 59, 83, 55, 66,
+ 24, 37, 103, 104, 71, 72, 52, 74, 75, 76,
+ 38, 78, 49, 52, 81, 101, 11, 84, 85, 102,
+ 15, 73, 89, 90, 91, 77, 93, 83, 66, 94,
+ 80, 83, 27, 71, 72, 95, 74, 75, 76, 34,
+ 1, 81, 37, 81, 69, 94, 84, 85, 81, 101,
+ 11, 89, 90, 91, 49, 93, 9, 18, 81, 66,
+ 94, 96, 100, 81, 71, 72, 27, 74, 75, 76,
+ 81, 78, 94, 34, 81, 107, 37, 84, 85, 107,
+ 107, 107, 89, 90, 91, 66, 93, 107, 49, 107,
+ 71, 72, 107, 74, 75, 76, 1, 39, 40, 41,
+ 81, 107, 107, 84, 85, 107, 11, 107, 89, 90,
+ 91, 107, 93, 107, 56, 57, 58, 59, 66, 100,
+ 107, 107, 27, 71, 72, 1, 74, 75, 76, 34,
+ 1, 107, 107, 81, 107, 11, 84, 85, 107, 5,
+ 11, 89, 90, 91, 107, 93, 12, 13, 14, 107,
+ 16, 27, 100, 19, 20, 21, 27, 28, 34, 107,
+ 26, 5, 11, 34, 30, 107, 32, 33, 12, 13,
+ 14, 107, 16, 107, 23, 19, 20, 21, 27, 107,
+ 107, 107, 26, 107, 107, 34, 30, 107, 32, 33,
+ 107, 107, 73, 107, 60, 61, 77, 107, 47, 12,
+ 13, 107, 83, 66, 17, 86, 87, 88, 71, 72,
+ 107, 74, 75, 76, 107, 107, 60, 61, 81, 73,
+ 101, 84, 85, 77, 107, 107, 89, 90, 91, 83,
+ 93, 107, 107, 107, 66, 107, 107, 107, 51, 71,
+ 72, 104, 74, 75, 76, 107, 107, 101, 107, 81,
+ 73, 107, 84, 85, 77, 107, 107, 89, 90, 91,
+ 83, 93, 66, 86, 87, 88, 107, 71, 72, 107,
+ 74, 75, 76, 107, 107, 107, 107, 81, 101, 107,
+ 84, 85, 107, 107, 107, 89, 90, 91, 66, 93,
+ 1, 107, 107, 71, 72, 107, 74, 75, 76, 107,
+ 11, 107, 107, 81, 73, 107, 84, 85, 77, 107,
+ 107, 89, 90, 91, 83, 93, 66, 86, 87, 88,
+ 107, 71, 72, 107, 74, 75, 76, 107, 39, 40,
+ 41, 81, 101, 107, 84, 85, 107, 107, 107, 89,
+ 90, 91, 107, 93, 66, 56, 57, 58, 59, 71,
+ 72, 107, 74, 75, 76, 107, 107, 107, 107, 81,
+ 107, 107, 84, 85, 107, 107, 107, 89, 90, 91,
+ 66, 93, 1, 107, 107, 71, 72, 107, 74, 75,
+ 76, 107, 11, 107, 107, 81, 73, 107, 84, 85,
+ 77, 107, 107, 89, 90, 91, 83, 93, 66, 86,
+ 87, 88, 107, 71, 72, 107, 74, 75, 76, 107,
+ 39, 40, 41, 81, 101, 107, 84, 85, 107, 107,
+ 107, 89, 90, 91, 107, 93, 66, 56, 57, 58,
+ 59, 71, 72, 107, 74, 75, 76, 107, 107, 107,
+ 107, 81, 107, 107, 84, 85, 107, 107, 107, 89,
+ 90, 91, 66, 93, 1, 107, 107, 71, 72, 107,
+ 74, 75, 76, 12, 13, 107, 107, 81, 17, 107,
+ 84, 85, 107, 107, 107, 89, 90, 91, 107, 93,
+ 66, 28, 107, 107, 107, 71, 72, 107, 74, 75,
+ 76, 107, 39, 40, 41, 81, 107, 107, 84, 85,
+ 107, 107, 51, 89, 90, 91, 107, 93, 66, 56,
+ 57, 58, 59, 71, 72, 107, 74, 75, 76, 107,
+ 107, 107, 107, 81, 107, 107, 84, 85, 107, 107,
+ 107, 89, 90, 91, 66, 93, 1, 107, 107, 71,
+ 72, 107, 74, 75, 76, 107, 107, 107, 107, 81,
+ 73, 107, 84, 85, 77, 107, 107, 89, 90, 91,
+ 83, 93, 66, 86, 87, 88, 107, 71, 72, 107,
+ 74, 75, 76, 38, 39, 40, 41, 81, 101, 107,
+ 84, 85, 107, 107, 107, 89, 90, 91, 107, 93,
+ 66, 56, 57, 58, 59, 71, 72, 107, 74, 75,
+ 76, 107, 107, 107, 107, 81, 12, 13, 84, 85,
+ 107, 17, 107, 89, 90, 91, 66, 93, 1, 107,
+ 107, 71, 72, 107, 74, 75, 76, 107, 11, 107,
+ 107, 81, 107, 107, 84, 85, 107, 107, 107, 89,
+ 90, 91, 107, 93, 66, 51, 107, 107, 107, 71,
+ 72, 107, 74, 75, 76, 107, 39, 40, 41, 81,
+ 107, 107, 84, 85, 107, 107, 107, 89, 90, 91,
+ 107, 93, 66, 56, 57, 58, 59, 71, 72, 107,
+ 74, 75, 76, 107, 107, 107, 107, 81, 107, 107,
+ 84, 85, 107, 107, 107, 89, 90, 91, 66, 93,
+ 1, 107, 107, 71, 72, 107, 74, 75, 76, 107,
+ 107, 107, 107, 81, 107, 107, 84, 85, 107, 107,
+ 107, 89, 90, 91, 107, 93, 66, 107, 107, 107,
+ 107, 71, 72, 107, 74, 75, 76, 38, 39, 40,
+ 41, 81, 107, 107, 84, 85, 107, 107, 107, 89,
+ 90, 91, 107, 93, 66, 56, 57, 58, 59, 71,
+ 72, 107, 74, 75, 76, 107, 107, 107, 107, 81,
+ 107, 107, 84, 85, 107, 107, 107, 89, 90, 91,
+ 66, 93, 1, 107, 107, 71, 72, 107, 74, 75,
+ 76, 107, 11, 107, 107, 81, 107, 107, 84, 85,
+ 107, 107, 107, 89, 90, 91, 107, 93, 66, 107,
+ 107, 107, 107, 71, 72, 107, 74, 75, 76, 107,
+ 39, 40, 41, 81, 107, 107, 84, 85, 107, 107,
+ 107, 89, 90, 91, 107, 93, 66, 56, 57, 58,
+ 59, 71, 72, 107, 74, 75, 76, 107, 107, 107,
+ 107, 81, 107, 107, 84, 85, 107, 107, 107, 89,
+ 90, 91, 66, 93, 1, 107, 107, 71, 72, 107,
+ 74, 75, 76, 107, 107, 107, 107, 81, 107, 107,
+ 84, 85, 107, 107, 107, 89, 90, 91, 107, 93,
+ 66, 107, 107, 107, 107, 71, 72, 107, 74, 75,
+ 76, 107, 39, 40, 41, 81, 107, 107, 84, 85,
+ 107, 107, 107, 89, 90, 91, 107, 93, 66, 56,
+ 57, 58, 59, 71, 72, 107, 74, 75, 76, 107,
+ 107, 107, 107, 81, 107, 107, 84, 85, 107, 107,
+ 107, 89, 90, 91, 66, 93, 107, 107, 107, 71,
+ 72, 107, 74, 75, 76, 107, 107, 107, 107, 81,
+ 107, 107, 84, 85, 107, 107, 107, 89, 90, 91,
+ 107, 93, 66, 107, 107, 107, 107, 71, 72, 107,
+ 74, 75, 76, 107, 107, 107, 107, 81, 107, 107,
+ 84, 85, 1, 107, 107, 89, 90, 91, 107, 93,
+ 66, 107, 1, 107, 107, 71, 72, 107, 74, 75,
+ 76, 107, 11, 107, 107, 81, 107, 107, 84, 85,
+ 107, 12, 13, 89, 90, 91, 17, 93, 27, 107,
+ 39, 40, 41, 107, 107, 34, 27, 107, 29, 107,
+ 39, 40, 41, 34, 37, 54, 107, 56, 57, 58,
+ 59, 107, 107, 46, 107, 107, 49, 56, 57, 58,
+ 59, 54, 66, 2, 1, 107, 107, 71, 72, 107,
+ 74, 107, 76, 12, 13, 107, 15, 81, 17, 18,
+ 107, 85, 107, 107, 107, 89, 90, 91, 25, 93,
+ 27, 1, 2, 107, 12, 13, 107, 34, 107, 17,
+ 107, 107, 39, 40, 41, 107, 107, 46, 107, 27,
+ 49, 29, 51, 107, 53, 107, 34, 107, 107, 56,
+ 57, 58, 59, 107, 107, 107, 107, 37, 107, 39,
+ 40, 41, 107, 107, 107, 66, 107, 1, 107, 49,
+ 71, 72, 107, 74, 107, 76, 56, 57, 58, 59,
+ 81, 107, 107, 107, 85, 107, 107, 2, 89, 90,
+ 91, 107, 93, 27, 107, 107, 107, 12, 13, 107,
+ 34, 2, 17, 18, 107, 39, 40, 41, 107, 107,
+ 107, 12, 13, 107, 15, 107, 17, 18, 107, 107,
+ 107, 107, 56, 57, 58, 59, 107, 107, 107, 107,
+ 107, 46, 107, 107, 49, 107, 51, 107, 53, 54,
+ 107, 107, 107, 107, 107, 46, 107, 107, 49, 107,
+ 51, 107, 53, 107, 66, 107, 107, 107, 107, 71,
+ 72, 107, 74, 107, 76, 107, 107, 107, 107, 81,
+ 107, 107, 107, 107, 107, 107, 107, 89, 90, 91,
+ 107, 93, 107, 66, 107, 1, 107, 107, 71, 72,
+ 107, 74, 107, 76, 107, 107, 107, 107, 81, 107,
+ 107, 107, 107, 11, 107, 107, 89, 90, 91, 107,
+ 93, 107, 66, 107, 22, 107, 24, 71, 72, 27,
+ 74, 107, 76, 39, 40, 41, 34, 81, 36, 107,
+ 38, 107, 107, 107, 107, 89, 90, 91, 46, 93,
+ 56, 57, 58, 59, 66, 61, 107, 107, 107, 71,
+ 72, 107, 74, 107, 76, 66, 107, 107, 107, 81,
+ 71, 72, 107, 74, 107, 76, 107, 89, 90, 91,
+ 81, 93, 107, 107, 107, 107, 107, 107, 89, 90,
+ 91, 107, 93, 107, 66, 2, 107, 107, 107, 71,
+ 72, 107, 74, 107, 76, 12, 13, 107, 107, 81,
+ 17, 18, 2, 1, 107, 107, 107, 89, 90, 91,
+ 107, 93, 12, 13, 107, 107, 107, 17, 18, 107,
+ 107, 107, 107, 107, 22, 107, 107, 107, 107, 46,
+ 107, 107, 49, 107, 51, 107, 53, 107, 107, 107,
+ 107, 39, 40, 41, 107, 107, 46, 107, 107, 49,
+ 107, 51, 107, 53, 107, 107, 107, 107, 56, 57,
+ 58, 59, 12, 13, 107, 107, 107, 17, 18, 107,
+ 107, 63, 64, 65, 66, 67, 68, 107, 107, 71,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 46, 107, 107, 49,
+ 107, 51, 107, 53,
+);
+ const YY_SHIFT_USE_DFLT = -17;
+ const YY_SHIFT_MAX = 238;
+ static public $yy_shift_ofst = array(
+ 499, 348, 78, 78, 393, 393, 348, 78, -12, 33,
+ -12, 78, 78, 78, 78, 78, 78, 78, 78, 78,
+ 78, 78, 168, 78, 78, 168, 258, 78, 78, 78,
+ 78, 303, 78, 78, 78, 213, 78, 123, 123, 438,
+ 438, 438, 438, 438, 438, 1571, 1633, 1706, 1706, 1706,
+ 1706, 1706, 499, 1824, 1187, 1269, 1561, 1105, 1023, 507,
+ 1942, 941, 859, 1351, 1433, 1433, 1433, 1433, 1433, 1433,
+ 1433, 1433, 1433, 1433, 1433, 1433, 628, 628, 95, 704,
+ 609, 665, 102, 115, 145, 726, 1579, 1652, 483, 483,
+ 324, 145, 115, 145, 115, 414, 28, 721, 699, 227,
+ 465, 694, 1164, 359, 99, 146, 359, 3, 323, 266,
+ 533, 431, 266, 468, 513, 479, 98, 98, 434, 49,
+ 49, 57, 57, 57, 57, 57, 57, 57, 57, 57,
+ -17, 1631, 1725, 1739, 1940, 1923, 1990, 47, 1021, 314,
+ 88, -16, 98, -16, 98, -11, -16, -11, 221, 98,
+ 98, 98, -16, 98, -16, 149, 232, 98, -16, -16,
+ 98, 98, 98, 98, 98, 98, 221, 221, 98, 98,
+ 98, -16, 221, 98, 98, 98, 57, 617, 57, 377,
+ 437, 377, 57, 57, 49, 49, 57, 49, -17, -17,
+ -17, -17, -17, 1660, 1832, 575, 757, 1577, 260, 184,
+ 104, 317, 170, 298, 246, 173, 239, 276, 245, 179,
+ 269, 288, 279, 501, 531, 542, 546, 539, 541, 524,
+ 544, 488, 516, 519, 472, 504, 452, 367, 470, 437,
+ 430, 443, 412, 415, 401, 534, 387, 382, 378,
+);
+ const YY_REDUCE_USE_DFLT = -92;
+ const YY_REDUCE_MAX = 192;
+ static public $yy_reduce_ofst = array(
+ 1948, 469, 622, 589, 563, 503, 707, 532, 984, 1012,
+ 1038, 1066, 1094, 1120, 1148, 1176, 1230, 956, 1258, 1284,
+ 1312, 1340, 1366, 902, 1394, 1422, 1448, 1476, 1504, 1202,
+ 930, 874, 848, 792, 766, 738, 820, 1639, 1566, 1829,
+ 1728, 1757, 1858, 1786, 1818, 883, 801, 451, 689, 747,
+ 883, 1047, 125, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, -66, -49,
+ 518, 716, 8, -7, 484, 228, 440, 418, 389, 344,
+ 154, -57, 121, 136, 263, 185, 338, 338, 251, 321,
+ 251, 251, 328, 335, 292, 292, 328, 107, 361, 283,
+ 292, 251, 357, 251, 188, 159, 406, 394, 251, 292,
+ 289, 296, 251, 251, 251, 251, 251, 251, 251, 251,
+ 251, 265, 265, 265, 265, 265, 265, 530, 535, 265,
+ 265, 510, 514, 510, 514, 548, 510, 536, 537, 514,
+ 514, 514, 510, 514, 510, 521, 520, 514, 510, 510,
+ 514, 514, 514, 514, 514, 514, 552, 559, 514, 514,
+ 514, 510, 547, 514, 514, 514, -72, 545, -72, 487,
+ 505, 487, -72, -72, 2, 2, -72, 2, -91, 160,
+ 77, 238, 122,
+);
+ static public $yyExpectedTokens = array(
+ array(3, 4, 5, 6, 7, 8, 12, 13, 16, 19, 20, 21, 26, 30, 32, 33, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 53, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 53, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 53, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 53, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 53, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 53, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 53, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 53, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 53, 54, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 53, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 53, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 53, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 53, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 53, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 53, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 53, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 53, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 53, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 53, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 53, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 53, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 53, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 53, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 53, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 53, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 53, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 53, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 53, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 53, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 53, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 53, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 53, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 53, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 53, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 53, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 53, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 53, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 53, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 55, 60, ),
+ array(12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 40, 43, 44, 45, 46, 48, 50, 52, 55, 60, ),
+ array(1, 11, 27, 34, 39, 40, 41, 56, 57, 58, 59, ),
+ array(1, 25, 27, 34, 39, 40, 41, 56, 57, 58, 59, ),
+ array(1, 27, 34, 39, 40, 41, 56, 57, 58, 59, ),
+ array(1, 27, 34, 39, 40, 41, 56, 57, 58, 59, ),
+ array(1, 27, 34, 39, 40, 41, 56, 57, 58, 59, ),
+ array(1, 27, 34, 39, 40, 41, 56, 57, 58, 59, ),
+ array(1, 27, 34, 39, 40, 41, 56, 57, 58, 59, ),
+ array(3, 4, 5, 6, 7, 8, 12, 13, 16, 19, 20, 21, 26, 30, 32, 33, ),
+ array(1, 39, 40, 41, 56, 57, 58, 59, 61, ),
+ array(1, 11, 39, 40, 41, 56, 57, 58, 59, ),
+ array(1, 38, 39, 40, 41, 56, 57, 58, 59, ),
+ array(1, 39, 40, 41, 54, 56, 57, 58, 59, ),
+ array(1, 38, 39, 40, 41, 56, 57, 58, 59, ),
+ array(1, 28, 39, 40, 41, 56, 57, 58, 59, ),
+ array(1, 2, 39, 40, 41, 56, 57, 58, 59, ),
+ array(1, 22, 39, 40, 41, 56, 57, 58, 59, ),
+ array(1, 11, 39, 40, 41, 56, 57, 58, 59, ),
+ array(1, 11, 39, 40, 41, 56, 57, 58, 59, ),
+ array(1, 11, 39, 40, 41, 56, 57, 58, 59, ),
+ array(1, 39, 40, 41, 56, 57, 58, 59, ),
+ array(1, 39, 40, 41, 56, 57, 58, 59, ),
+ array(1, 39, 40, 41, 56, 57, 58, 59, ),
+ array(1, 39, 40, 41, 56, 57, 58, 59, ),
+ array(1, 39, 40, 41, 56, 57, 58, 59, ),
+ array(1, 39, 40, 41, 56, 57, 58, 59, ),
+ array(1, 39, 40, 41, 56, 57, 58, 59, ),
+ array(1, 39, 40, 41, 56, 57, 58, 59, ),
+ array(1, 39, 40, 41, 56, 57, 58, 59, ),
+ array(1, 39, 40, 41, 56, 57, 58, 59, ),
+ array(1, 39, 40, 41, 56, 57, 58, 59, ),
+ array(1, 39, 40, 41, 56, 57, 58, 59, ),
+ array(39, 40, 41, 56, 57, 58, 59, ),
+ array(39, 40, 41, 56, 57, 58, 59, ),
+ array(14, 17, 50, 52, 55, ),
+ array(5, 12, 13, 14, 16, 19, 20, 21, 26, 30, 32, 33, 60, 61, ),
+ array(1, 11, 18, 27, 34, 37, 49, ),
+ array(1, 11, 27, 34, ),
+ array(14, 17, 52, 55, ),
+ array(14, 37, 55, ),
+ array(1, 27, 34, ),
+ array(5, 12, 13, 14, 16, 19, 20, 21, 26, 30, 32, 33, 60, 61, ),
+ 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(18, 46, 53, ),
+ array(1, 27, 34, ),
+ array(14, 37, 55, ),
+ array(1, 27, 34, ),
+ array(14, 37, 55, ),
+ array(1, 2, ),
+ array(11, 23, 27, 34, 47, ),
+ array(11, 23, 27, 34, 47, ),
+ array(1, 11, 27, 28, 34, ),
+ array(13, 14, 17, 55, ),
+ array(1, 11, 27, 34, ),
+ array(1, 11, 27, 34, ),
+ array(12, 13, 17, 51, ),
+ array(12, 13, 17, ),
+ array(15, 18, 49, ),
+ array(15, 18, 49, ),
+ array(12, 13, 17, ),
+ array(8, 9, 10, ),
+ array(27, 34, ),
+ array(14, 17, ),
+ array(18, 49, ),
+ array(1, 11, ),
+ array(14, 17, ),
+ array(1, 54, ),
+ array(14, 55, ),
+ array(1, 18, ),
+ array(27, 34, ),
+ array(27, 34, ),
+ array(1, 29, ),
+ array(18, ),
+ array(18, ),
+ array(1, ),
+ array(1, ),
+ array(1, ),
+ array(1, ),
+ array(1, ),
+ array(1, ),
+ array(1, ),
+ array(1, ),
+ array(1, ),
+ array(),
+ array(2, 12, 13, 15, 17, 18, 46, 49, 51, 53, ),
+ array(2, 12, 13, 17, 18, 46, 49, 51, 53, 54, ),
+ array(2, 12, 13, 15, 17, 18, 46, 49, 51, 53, ),
+ array(2, 12, 13, 17, 18, 46, 49, 51, 53, ),
+ array(2, 12, 13, 17, 18, 46, 49, 51, 53, ),
+ array(12, 13, 17, 18, 46, 49, 51, 53, ),
+ array(13, 14, 17, 35, 55, ),
+ array(12, 13, 17, 51, ),
+ array(12, 13, 17, ),
+ array(15, 46, 53, ),
+ array(46, 53, ),
+ array(27, 34, ),
+ array(46, 53, ),
+ array(27, 34, ),
+ array(46, 53, ),
+ array(46, 53, ),
+ array(46, 53, ),
+ array(14, 55, ),
+ array(27, 34, ),
+ array(27, 34, ),
+ array(27, 34, ),
+ array(46, 53, ),
+ array(27, 34, ),
+ array(46, 53, ),
+ array(13, 37, ),
+ array(15, 23, ),
+ array(27, 34, ),
+ array(46, 53, ),
+ array(46, 53, ),
+ array(27, 34, ),
+ array(27, 34, ),
+ array(27, 34, ),
+ array(27, 34, ),
+ array(27, 34, ),
+ array(27, 34, ),
+ array(14, 55, ),
+ array(14, 55, ),
+ array(27, 34, ),
+ array(27, 34, ),
+ array(27, 34, ),
+ array(46, 53, ),
+ array(14, 55, ),
+ array(27, 34, ),
+ array(27, 34, ),
+ array(27, 34, ),
+ array(1, ),
+ array(9, ),
+ array(1, ),
+ array(2, ),
+ array(37, ),
+ array(2, ),
+ array(1, ),
+ array(1, ),
+ array(18, ),
+ array(18, ),
+ array(1, ),
+ array(18, ),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(1, 2, 37, 39, 40, 41, 49, 56, 57, 58, 59, ),
+ array(11, 22, 24, 27, 34, 36, 38, 46, ),
+ array(11, 15, 27, 34, 37, 49, ),
+ array(12, 13, 17, 51, ),
+ array(37, 46, 49, 54, ),
+ array(29, 37, 49, ),
+ array(23, 47, 54, ),
+ array(23, 47, 61, ),
+ array(37, 49, ),
+ array(36, 54, ),
+ array(23, 47, ),
+ array(46, 54, ),
+ array(37, 49, ),
+ array(15, 46, ),
+ array(36, 38, ),
+ array(22, 36, ),
+ array(36, 38, ),
+ array(36, 38, ),
+ array(37, 49, ),
+ array(17, 51, ),
+ array(15, ),
+ array(52, ),
+ array(38, ),
+ array(24, ),
+ array(17, ),
+ array(14, ),
+ array(52, ),
+ array(5, ),
+ array(54, ),
+ array(17, ),
+ array(11, ),
+ array(54, ),
+ array(17, ),
+ array(42, ),
+ array(17, ),
+ array(17, ),
+ array(37, ),
+ array(35, ),
+ array(17, ),
+ array(35, ),
+ array(46, ),
+ array(17, ),
+ array(37, ),
+ array(17, ),
+ array(17, ),
+ array(17, ),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+);
+ static public $yy_default = array(
+ 339, 517, 496, 496, 532, 532, 532, 496, 532, 532,
+ 532, 532, 532, 532, 532, 532, 532, 532, 532, 532,
+ 532, 532, 532, 532, 532, 532, 532, 532, 532, 532,
+ 532, 532, 532, 532, 532, 532, 532, 532, 532, 532,
+ 532, 532, 532, 532, 532, 532, 398, 398, 364, 374,
+ 361, 398, 336, 532, 532, 532, 532, 532, 403, 532,
+ 532, 532, 532, 532, 420, 518, 495, 519, 409, 410,
+ 405, 494, 400, 520, 403, 379, 425, 424, 532, 532,
+ 436, 412, 532, 532, 398, 532, 398, 398, 398, 398,
+ 508, 398, 532, 398, 532, 388, 426, 426, 412, 532,
+ 412, 412, 461, 461, 451, 451, 461, 532, 398, 532,
+ 451, 412, 532, 412, 532, 392, 398, 376, 412, 451,
+ 505, 394, 429, 416, 428, 415, 419, 412, 423, 427,
+ 503, 450, 450, 450, 450, 450, 450, 532, 463, 461,
+ 477, 488, 375, 457, 384, 456, 455, 454, 532, 383,
+ 372, 360, 487, 371, 459, 461, 532, 362, 489, 486,
+ 370, 378, 365, 366, 368, 385, 532, 532, 377, 382,
+ 381, 458, 532, 386, 358, 387, 389, 352, 395, 497,
+ 461, 498, 393, 418, 483, 506, 445, 509, 461, 502,
+ 502, 461, 502, 436, 432, 436, 462, 436, 436, 426,
+ 426, 436, 532, 426, 432, 446, 432, 532, 532, 532,
+ 532, 532, 532, 532, 532, 532, 406, 532, 532, 532,
+ 344, 441, 532, 532, 532, 532, 438, 532, 532, 477,
+ 532, 532, 434, 432, 532, 507, 532, 532, 532, 380,
+ 460, 421, 443, 354, 355, 525, 422, 399, 444, 447,
+ 449, 356, 474, 472, 448, 475, 396, 477, 407, 351,
+ 442, 345, 340, 341, 342, 343, 413, 466, 431, 346,
+ 433, 347, 353, 348, 435, 437, 411, 465, 349, 464,
+ 350, 367, 441, 482, 492, 504, 515, 490, 528, 391,
+ 501, 529, 484, 481, 480, 479, 390, 516, 500, 397,
+ 514, 521, 414, 522, 523, 526, 524, 531, 530, 499,
+ 493, 510, 476, 467, 438, 527, 511, 491, 512, 513,
+ 417, 440, 439, 470, 478, 469, 430, 338, 468, 471,
+ 452, 473, 453, 373, 485, 337,
+);
+ const YYNOCODE = 108;
+ const YYSTACKDEPTH = 500;
+ const YYNSTATE = 336;
+ const YYNRULE = 196;
+ const YYERRORSYMBOL = 62;
+ const YYERRSYMDT = 'yy0';
+ const YYFALLBACK = 0;
+ public static $yyFallback = array(
+ );
+ public function Trace($TraceFILE, $zTracePrompt)
+ {
+ if (!$TraceFILE) {
+ $zTracePrompt = 0;
+ } elseif (!$zTracePrompt) {
+ $TraceFILE = 0;
+ }
+ $this->yyTraceFILE = $TraceFILE;
+ $this->yyTracePrompt = $zTracePrompt;
+ }
+
+ public function PrintTrace()
+ {
+ $this->yyTraceFILE = fopen('php://output', 'w');
+ $this->yyTracePrompt = '<br>';
+ }
+
+ public $yyTraceFILE;
+ public $yyTracePrompt;
+ public $yyidx; /* Index of top element in stack */
+ public $yyerrcnt; /* Shifts left before out of the error */
+ public $yystack = array(); /* The parser's stack */
+
+ public $yyTokenName = array(
+ '$', 'VERT', 'COLON', 'PHP',
+ 'NOCACHE', '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',
+ 'template_element ::= PHP',
+ 'template_element ::= NOCACHE',
+ 'template_element ::= text_content',
+ 'text_content ::= TEXT',
+ 'text_content ::= text_content TEXT',
+ 'template_element ::= STRIPON',
+ 'template_element ::= STRIPOFF',
+ 'literal ::= LITERALSTART LITERALEND',
+ 'literal ::= LITERALSTART literal_elements LITERALEND',
+ 'literal_elements ::= literal_elements literal_element',
+ 'literal_elements ::=',
+ 'literal_element ::= literal',
+ 'literal_element ::= LITERAL',
+ 'smartytag ::= tag RDEL',
+ 'smartytag ::= SIMPELOUTPUT',
+ 'tag ::= LDEL variable',
+ 'tag ::= LDEL variable attributes',
+ 'tag ::= LDEL value',
+ 'tag ::= LDEL value attributes',
+ 'tag ::= LDEL expr',
+ 'tag ::= LDEL expr attributes',
+ 'tag ::= LDEL DOLLARID EQUAL value',
+ 'tag ::= LDEL DOLLARID EQUAL expr',
+ 'tag ::= LDEL DOLLARID EQUAL expr attributes',
+ 'tag ::= LDEL varindexed EQUAL expr attributes',
+ 'smartytag ::= SIMPLETAG',
+ 'tag ::= LDEL ID attributes',
+ 'tag ::= LDEL ID',
+ 'tag ::= LDEL ID modifierlist attributes',
+ 'tag ::= LDEL ID PTR ID attributes',
+ 'tag ::= LDEL ID PTR ID modifierlist attributes',
+ 'tag ::= LDELMAKENOCACHE DOLLARID',
+ 'tag ::= LDELIF expr',
+ 'tag ::= LDELIF expr attributes',
+ 'tag ::= LDELIF statement',
+ 'tag ::= LDELIF statement attributes',
+ 'tag ::= LDELFOR statements SEMICOLON expr SEMICOLON varindexed foraction attributes',
+ 'foraction ::= EQUAL expr',
+ 'foraction ::= INCDEC',
+ 'tag ::= LDELFOR statement TO expr attributes',
+ 'tag ::= LDELFOR statement TO expr STEP expr attributes',
+ 'tag ::= LDELFOREACH attributes',
+ 'tag ::= LDELFOREACH SPACE value AS varvar attributes',
+ 'tag ::= LDELFOREACH SPACE value AS varvar APTR varvar attributes',
+ 'tag ::= LDELFOREACH SPACE expr AS varvar attributes',
+ 'tag ::= LDELFOREACH SPACE expr AS varvar APTR varvar attributes',
+ 'tag ::= LDELSETFILTER ID modparameters',
+ 'tag ::= LDELSETFILTER ID modparameters modifierlist',
+ 'tag ::= LDEL SMARTYBLOCKCHILDPARENT',
+ 'smartytag ::= CLOSETAG',
+ 'tag ::= LDELSLASH ID',
+ 'tag ::= LDELSLASH ID modifierlist',
+ 'tag ::= LDELSLASH ID PTR ID',
+ 'tag ::= LDELSLASH ID PTR ID modifierlist',
+ 'attributes ::= attributes attribute',
+ 'attributes ::= attribute',
+ 'attributes ::=',
+ 'attribute ::= SPACE ID EQUAL ID',
+ 'attribute ::= ATTR expr',
+ 'attribute ::= ATTR value',
+ 'attribute ::= SPACE ID',
+ 'attribute ::= SPACE expr',
+ 'attribute ::= SPACE value',
+ 'attribute ::= SPACE INTEGER EQUAL expr',
+ 'statements ::= statement',
+ 'statements ::= statements COMMA statement',
+ 'statement ::= DOLLARID EQUAL INTEGER',
+ 'statement ::= DOLLARID EQUAL expr',
+ 'statement ::= varindexed EQUAL expr',
+ 'statement ::= OPENP statement CLOSEP',
+ 'expr ::= value',
+ 'expr ::= ternary',
+ 'expr ::= DOLLARID COLON ID',
+ 'expr ::= expr MATH value',
+ 'expr ::= expr UNIMATH value',
+ 'expr ::= array',
+ 'expr ::= expr modifierlist',
+ 'expr ::= expr tlop value',
+ 'expr ::= expr lop expr',
+ 'expr ::= expr scond',
+ 'expr ::= expr ISIN array',
+ 'expr ::= expr ISIN value',
+ 'ternary ::= OPENP expr CLOSEP QMARK DOLLARID COLON expr',
+ 'ternary ::= OPENP expr CLOSEP QMARK expr COLON expr',
+ 'value ::= variable',
+ 'value ::= UNIMATH value',
+ 'value ::= NOT value',
+ 'value ::= TYPECAST value',
+ 'value ::= variable INCDEC',
+ 'value ::= HEX',
+ 'value ::= INTEGER',
+ 'value ::= INTEGER DOT INTEGER',
+ 'value ::= INTEGER DOT',
+ 'value ::= DOT INTEGER',
+ 'value ::= ID',
+ 'value ::= function',
+ 'value ::= OPENP expr CLOSEP',
+ 'value ::= variable INSTANCEOF ns1',
+ 'value ::= variable INSTANCEOF variable',
+ 'value ::= SINGLEQUOTESTRING',
+ 'value ::= doublequoted_with_quotes',
+ 'value ::= varindexed DOUBLECOLON static_class_access',
+ 'value ::= smartytag',
+ 'value ::= value modifierlist',
+ 'value ::= NAMESPACE',
+ 'value ::= ns1 DOUBLECOLON static_class_access',
+ 'ns1 ::= ID',
+ 'ns1 ::= NAMESPACE',
+ 'variable ::= DOLLARID',
+ 'variable ::= varindexed',
+ 'variable ::= varvar AT ID',
+ 'variable ::= object',
+ 'variable ::= HATCH ID HATCH',
+ 'variable ::= HATCH ID HATCH arrayindex',
+ 'variable ::= HATCH variable HATCH',
+ 'variable ::= HATCH variable HATCH arrayindex',
+ 'varindexed ::= DOLLARID arrayindex',
+ 'varindexed ::= varvar arrayindex',
+ 'arrayindex ::= arrayindex indexdef',
+ 'arrayindex ::=',
+ 'indexdef ::= DOT DOLLARID',
+ 'indexdef ::= DOT varvar',
+ 'indexdef ::= DOT varvar AT ID',
+ 'indexdef ::= DOT ID',
+ 'indexdef ::= DOT INTEGER',
+ 'indexdef ::= DOT LDEL expr RDEL',
+ 'indexdef ::= OPENB ID CLOSEB',
+ 'indexdef ::= OPENB ID DOT ID CLOSEB',
+ 'indexdef ::= OPENB SINGLEQUOTESTRING CLOSEB',
+ 'indexdef ::= OPENB INTEGER CLOSEB',
+ 'indexdef ::= OPENB DOLLARID CLOSEB',
+ 'indexdef ::= OPENB variable CLOSEB',
+ 'indexdef ::= OPENB value CLOSEB',
+ 'indexdef ::= OPENB expr CLOSEB',
+ 'indexdef ::= OPENB CLOSEB',
+ 'varvar ::= DOLLARID',
+ 'varvar ::= DOLLAR',
+ 'varvar ::= varvar varvarele',
+ 'varvarele ::= ID',
+ 'varvarele ::= SIMPELOUTPUT',
+ 'varvarele ::= LDEL expr RDEL',
+ 'object ::= varindexed objectchain',
+ 'objectchain ::= objectelement',
+ 'objectchain ::= objectchain objectelement',
+ 'objectelement ::= PTR ID arrayindex',
+ 'objectelement ::= PTR varvar arrayindex',
+ 'objectelement ::= PTR LDEL expr RDEL arrayindex',
+ 'objectelement ::= PTR ID LDEL expr RDEL arrayindex',
+ 'objectelement ::= PTR method',
+ 'function ::= ns1 OPENP params CLOSEP',
+ 'method ::= ID OPENP params CLOSEP',
+ 'method ::= DOLLARID OPENP params CLOSEP',
+ 'params ::= params COMMA expr',
+ 'params ::= expr',
+ 'params ::=',
+ 'modifierlist ::= modifierlist modifier modparameters',
+ 'modifierlist ::= modifier modparameters',
+ 'modifier ::= VERT AT ID',
+ 'modifier ::= VERT ID',
+ 'modparameters ::= modparameters modparameter',
+ 'modparameters ::=',
+ 'modparameter ::= COLON value',
+ 'modparameter ::= COLON array',
+ 'static_class_access ::= method',
+ 'static_class_access ::= method objectchain',
+ 'static_class_access ::= ID',
+ 'static_class_access ::= DOLLARID arrayindex',
+ 'static_class_access ::= DOLLARID arrayindex objectchain',
+ 'lop ::= LOGOP',
+ 'lop ::= SLOGOP',
+ 'tlop ::= TLOGOP',
+ 'scond ::= SINGLECOND',
+ 'array ::= OPENB arrayelements CLOSEB',
+ 'arrayelements ::= arrayelement',
+ 'arrayelements ::= arrayelements COMMA arrayelement',
+ 'arrayelements ::=',
+ 'arrayelement ::= value APTR expr',
+ 'arrayelement ::= ID APTR expr',
+ 'arrayelement ::= expr',
+ 'doublequoted_with_quotes ::= QUOTE QUOTE',
+ 'doublequoted_with_quotes ::= QUOTE doublequoted QUOTE',
+ 'doublequoted ::= doublequoted doublequotedcontent',
+ 'doublequoted ::= doublequotedcontent',
+ 'doublequotedcontent ::= BACKTICK variable BACKTICK',
+ 'doublequotedcontent ::= BACKTICK expr BACKTICK',
+ 'doublequotedcontent ::= DOLLARID',
+ 'doublequotedcontent ::= LDEL variable RDEL',
+ 'doublequotedcontent ::= LDEL expr RDEL',
+ 'doublequotedcontent ::= smartytag',
+ 'doublequotedcontent ::= TEXT',
+ );
+
+ public function tokenName($tokenType)
+ {
+ if ($tokenType === 0) {
+ return 'End of Input';
+ }
+ if ($tokenType > 0 && $tokenType < count($this->yyTokenName)) {
+ return $this->yyTokenName[$tokenType];
+ } else {
+ return "Unknown";
+ }
+ }
+
+ public static function yy_destructor($yymajor, $yypminor)
+ {
+ switch ($yymajor) {
+ default: break; /* If no destructor action specified: do nothing */
+ }
+ }
+
+ public function yy_pop_parser_stack()
+ {
+ if (empty($this->yystack)) {
+ return;
+ }
+ $yytos = array_pop($this->yystack);
+ if ($this->yyTraceFILE && $this->yyidx >= 0) {
+ fwrite($this->yyTraceFILE,
+ $this->yyTracePrompt . 'Popping ' . $this->yyTokenName[$yytos->major] .
+ "\n");
+ }
+ $yymajor = $yytos->major;
+ self::yy_destructor($yymajor, $yytos->minor);
+ $this->yyidx--;
+
+ return $yymajor;
+ }
+
+ public function __destruct()
+ {
+ while ($this->yystack !== Array()) {
+ $this->yy_pop_parser_stack();
+ }
+ if (is_resource($this->yyTraceFILE)) {
+ fclose($this->yyTraceFILE);
+ }
+ }
+
+ public function yy_get_expected_tokens($token)
+ {
+ static $res3 = array();
+ static $res4 = array();
+ $state = $this->yystack[$this->yyidx]->stateno;
+ $expected = self::$yyExpectedTokens[$state];
+ if (isset($res3[$state][$token])) {
+ if ($res3[$state][$token]) {
+ return $expected;
+ }
+ } else {
+ if ($res3[$state][$token] = in_array($token, self::$yyExpectedTokens[$state], true)) {
+ return $expected;
+ }
+ }
+ $stack = $this->yystack;
+ $yyidx = $this->yyidx;
+ do {
+ $yyact = $this->yy_find_shift_action($token);
+ if ($yyact >= self::YYNSTATE && $yyact < self::YYNSTATE + self::YYNRULE) {
+ // reduce action
+ $done = 0;
+ do {
+ if ($done++ == 100) {
+ $this->yyidx = $yyidx;
+ $this->yystack = $stack;
+ // too much recursion prevents proper detection
+ // so give up
+ return array_unique($expected);
+ }
+ $yyruleno = $yyact - self::YYNSTATE;
+ $this->yyidx -= self::$yyRuleInfo[$yyruleno][1];
+ $nextstate = $this->yy_find_reduce_action(
+ $this->yystack[$this->yyidx]->stateno,
+ self::$yyRuleInfo[$yyruleno][0]);
+ if (isset(self::$yyExpectedTokens[$nextstate])) {
+ $expected = array_merge($expected, self::$yyExpectedTokens[$nextstate]);
+ if (isset($res4[$nextstate][$token])) {
+ if ($res4[$nextstate][$token]) {
+ $this->yyidx = $yyidx;
+ $this->yystack = $stack;
+ return array_unique($expected);
+ }
+ } else {
+ if ($res4[$nextstate][$token] = in_array($token, self::$yyExpectedTokens[$nextstate], true)) {
+ $this->yyidx = $yyidx;
+ $this->yystack = $stack;
+ return array_unique($expected);
+ }
+ }
+ }
+ if ($nextstate < self::YYNSTATE) {
+ // we need to shift a non-terminal
+ $this->yyidx++;
+ $x = new TP_yyStackEntry;
+ $x->stateno = $nextstate;
+ $x->major = self::$yyRuleInfo[$yyruleno][0];
+ $this->yystack[$this->yyidx] = $x;
+ continue 2;
+ } elseif ($nextstate == self::YYNSTATE + self::YYNRULE + 1) {
+ $this->yyidx = $yyidx;
+ $this->yystack = $stack;
+ // the last token was just ignored, we can't accept
+ // by ignoring input, this is in essence ignoring a
+ // syntax error!
+ return array_unique($expected);
+ } elseif ($nextstate === self::YY_NO_ACTION) {
+ $this->yyidx = $yyidx;
+ $this->yystack = $stack;
+ // input accepted, but not shifted (I guess)
+ return $expected;
+ } else {
+ $yyact = $nextstate;
+ }
+ } while (true);
+ }
+ break;
+ } while (true);
+ $this->yyidx = $yyidx;
+ $this->yystack = $stack;
+
+ return array_unique($expected);
+ }
+
+ public function yy_is_expected_token($token)
+ {
+ static $res = array();
+ static $res2 = array();
+ if ($token === 0) {
+ return true; // 0 is not part of this
+ }
+ $state = $this->yystack[$this->yyidx]->stateno;
+ if (isset($res[$state][$token])) {
+ if ($res[$state][$token]) {
+ return true;
+ }
+ } else {
+ if ($res[$state][$token] = in_array($token, self::$yyExpectedTokens[$state], true)) {
+ return true;
+ }
+ }
+ $stack = $this->yystack;
+ $yyidx = $this->yyidx;
+ do {
+ $yyact = $this->yy_find_shift_action($token);
+ if ($yyact >= self::YYNSTATE && $yyact < self::YYNSTATE + self::YYNRULE) {
+ // reduce action
+ $done = 0;
+ do {
+ if ($done++ == 100) {
+ $this->yyidx = $yyidx;
+ $this->yystack = $stack;
+ // too much recursion prevents proper detection
+ // so give up
+ return true;
+ }
+ $yyruleno = $yyact - self::YYNSTATE;
+ $this->yyidx -= self::$yyRuleInfo[$yyruleno][1];
+ $nextstate = $this->yy_find_reduce_action(
+ $this->yystack[$this->yyidx]->stateno,
+ self::$yyRuleInfo[$yyruleno][0]);
+ if (isset($res2[$nextstate][$token])) {
+ if ($res2[$nextstate][$token]) {
+ $this->yyidx = $yyidx;
+ $this->yystack = $stack;
+ return true;
+ }
+ } else {
+ if ($res2[$nextstate][$token] = (isset(self::$yyExpectedTokens[$nextstate]) && in_array($token, self::$yyExpectedTokens[$nextstate], true))) {
+ $this->yyidx = $yyidx;
+ $this->yystack = $stack;
+ return true;
+ }
+ }
+ if ($nextstate < self::YYNSTATE) {
+ // we need to shift a non-terminal
+ $this->yyidx++;
+ $x = new TP_yyStackEntry;
+ $x->stateno = $nextstate;
+ $x->major = self::$yyRuleInfo[$yyruleno][0];
+ $this->yystack[$this->yyidx] = $x;
+ continue 2;
+ } elseif ($nextstate == self::YYNSTATE + self::YYNRULE + 1) {
+ $this->yyidx = $yyidx;
+ $this->yystack = $stack;
+ if (!$token) {
+ // end of input: this is valid
+ return true;
+ }
+ // the last token was just ignored, we can't accept
+ // by ignoring input, this is in essence ignoring a
+ // syntax error!
+ return false;
+ } elseif ($nextstate === self::YY_NO_ACTION) {
+ $this->yyidx = $yyidx;
+ $this->yystack = $stack;
+ // input accepted, but not shifted (I guess)
+ return true;
+ } else {
+ $yyact = $nextstate;
+ }
+ } while (true);
+ }
+ break;
+ } while (true);
+ $this->yyidx = $yyidx;
+ $this->yystack = $stack;
+
+ return true;
+ }
+
+ public function yy_find_shift_action($iLookAhead)
+ {
+ $stateno = $this->yystack[$this->yyidx]->stateno;
+
+ /* if ($this->yyidx < 0) return self::YY_NO_ACTION; */
+ if (!isset(self::$yy_shift_ofst[$stateno])) {
+ // no shift actions
+ return self::$yy_default[$stateno];
+ }
+ $i = self::$yy_shift_ofst[$stateno];
+ if ($i === self::YY_SHIFT_USE_DFLT) {
+ return self::$yy_default[$stateno];
+ }
+ if ($iLookAhead == self::YYNOCODE) {
+ return self::YY_NO_ACTION;
+ }
+ $i += $iLookAhead;
+ if ($i < 0 || $i >= self::YY_SZ_ACTTAB ||
+ self::$yy_lookahead[$i] != $iLookAhead) {
+ if (count(self::$yyFallback) && $iLookAhead < count(self::$yyFallback)
+ && ($iFallback = self::$yyFallback[$iLookAhead]) != 0) {
+ if ($this->yyTraceFILE) {
+ fwrite($this->yyTraceFILE, $this->yyTracePrompt . "FALLBACK " .
+ $this->yyTokenName[$iLookAhead] . " => " .
+ $this->yyTokenName[$iFallback] . "\n");
+ }
+
+ return $this->yy_find_shift_action($iFallback);
+ }
+
+ return self::$yy_default[$stateno];
+ } else {
+ return self::$yy_action[$i];
+ }
+ }
+
+ public function yy_find_reduce_action($stateno, $iLookAhead)
+ {
+ /* $stateno = $this->yystack[$this->yyidx]->stateno; */
+
+ if (!isset(self::$yy_reduce_ofst[$stateno])) {
+ return self::$yy_default[$stateno];
+ }
+ $i = self::$yy_reduce_ofst[$stateno];
+ if ($i == self::YY_REDUCE_USE_DFLT) {
+ return self::$yy_default[$stateno];
+ }
+ if ($iLookAhead == self::YYNOCODE) {
+ return self::YY_NO_ACTION;
+ }
+ $i += $iLookAhead;
+ if ($i < 0 || $i >= self::YY_SZ_ACTTAB ||
+ self::$yy_lookahead[$i] != $iLookAhead) {
+ return self::$yy_default[$stateno];
+ } else {
+ return self::$yy_action[$i];
+ }
+ }
+
+ public function yy_shift($yyNewState, $yyMajor, $yypMinor)
+ {
+ $this->yyidx++;
+ if ($this->yyidx >= self::YYSTACKDEPTH) {
+ $this->yyidx--;
+ if ($this->yyTraceFILE) {
+ fprintf($this->yyTraceFILE, "%sStack Overflow!\n", $this->yyTracePrompt);
+ }
+ while ($this->yyidx >= 0) {
+ $this->yy_pop_parser_stack();
+ }
+#line 207 "./lexer/smarty_internal_templateparser.y"
+
+ $this->internalError = true;
+ $this->compiler->trigger_template_error("Stack overflow in template parser");
+
+ return;
+ }
+ $yytos = new TP_yyStackEntry;
+ $yytos->stateno = $yyNewState;
+ $yytos->major = $yyMajor;
+ $yytos->minor = $yypMinor;
+ $this->yystack[] = $yytos;
+ if ($this->yyTraceFILE && $this->yyidx > 0) {
+ fprintf($this->yyTraceFILE, "%sShift %d\n", $this->yyTracePrompt,
+ $yyNewState);
+ fprintf($this->yyTraceFILE, "%sStack:", $this->yyTracePrompt);
+ for ($i = 1; $i <= $this->yyidx; $i++) {
+ fprintf($this->yyTraceFILE, " %s",
+ $this->yyTokenName[$this->yystack[$i]->major]);
+ }
+ fwrite($this->yyTraceFILE,"\n");
+ }
+ }
+
+ public static $yyRuleInfo = array(
+ array( 0 => 63, 1 => 1 ),
+ array( 0 => 64, 1 => 1 ),
+ array( 0 => 64, 1 => 2 ),
+ array( 0 => 64, 1 => 0 ),
+ array( 0 => 65, 1 => 1 ),
+ array( 0 => 65, 1 => 1 ),
+ array( 0 => 65, 1 => 1 ),
+ array( 0 => 65, 1 => 1 ),
+ array( 0 => 65, 1 => 1 ),
+ array( 0 => 68, 1 => 1 ),
+ array( 0 => 68, 1 => 2 ),
+ array( 0 => 65, 1 => 1 ),
+ array( 0 => 65, 1 => 1 ),
+ array( 0 => 67, 1 => 2 ),
+ array( 0 => 67, 1 => 3 ),
+ array( 0 => 69, 1 => 2 ),
+ array( 0 => 69, 1 => 0 ),
+ array( 0 => 70, 1 => 1 ),
+ array( 0 => 70, 1 => 1 ),
+ array( 0 => 66, 1 => 2 ),
+ array( 0 => 66, 1 => 1 ),
+ array( 0 => 71, 1 => 2 ),
+ array( 0 => 71, 1 => 3 ),
+ array( 0 => 71, 1 => 2 ),
+ array( 0 => 71, 1 => 3 ),
+ array( 0 => 71, 1 => 2 ),
+ array( 0 => 71, 1 => 3 ),
+ array( 0 => 71, 1 => 4 ),
+ array( 0 => 71, 1 => 4 ),
+ array( 0 => 71, 1 => 5 ),
+ array( 0 => 71, 1 => 5 ),
+ array( 0 => 66, 1 => 1 ),
+ array( 0 => 71, 1 => 3 ),
+ array( 0 => 71, 1 => 2 ),
+ array( 0 => 71, 1 => 4 ),
+ array( 0 => 71, 1 => 5 ),
+ array( 0 => 71, 1 => 6 ),
+ array( 0 => 71, 1 => 2 ),
+ array( 0 => 71, 1 => 2 ),
+ array( 0 => 71, 1 => 3 ),
+ array( 0 => 71, 1 => 2 ),
+ array( 0 => 71, 1 => 3 ),
+ array( 0 => 71, 1 => 8 ),
+ array( 0 => 80, 1 => 2 ),
+ array( 0 => 80, 1 => 1 ),
+ array( 0 => 71, 1 => 5 ),
+ array( 0 => 71, 1 => 7 ),
+ array( 0 => 71, 1 => 2 ),
+ array( 0 => 71, 1 => 6 ),
+ array( 0 => 71, 1 => 8 ),
+ array( 0 => 71, 1 => 6 ),
+ array( 0 => 71, 1 => 8 ),
+ array( 0 => 71, 1 => 3 ),
+ array( 0 => 71, 1 => 4 ),
+ array( 0 => 71, 1 => 2 ),
+ array( 0 => 66, 1 => 1 ),
+ array( 0 => 71, 1 => 2 ),
+ array( 0 => 71, 1 => 3 ),
+ array( 0 => 71, 1 => 4 ),
+ array( 0 => 71, 1 => 5 ),
+ array( 0 => 73, 1 => 2 ),
+ array( 0 => 73, 1 => 1 ),
+ array( 0 => 73, 1 => 0 ),
+ array( 0 => 83, 1 => 4 ),
+ array( 0 => 83, 1 => 2 ),
+ array( 0 => 83, 1 => 2 ),
+ array( 0 => 83, 1 => 2 ),
+ array( 0 => 83, 1 => 2 ),
+ array( 0 => 83, 1 => 2 ),
+ array( 0 => 83, 1 => 4 ),
+ array( 0 => 79, 1 => 1 ),
+ array( 0 => 79, 1 => 3 ),
+ array( 0 => 78, 1 => 3 ),
+ array( 0 => 78, 1 => 3 ),
+ array( 0 => 78, 1 => 3 ),
+ array( 0 => 78, 1 => 3 ),
+ array( 0 => 75, 1 => 1 ),
+ array( 0 => 75, 1 => 1 ),
+ array( 0 => 75, 1 => 3 ),
+ array( 0 => 75, 1 => 3 ),
+ array( 0 => 75, 1 => 3 ),
+ array( 0 => 75, 1 => 1 ),
+ array( 0 => 75, 1 => 2 ),
+ array( 0 => 75, 1 => 3 ),
+ array( 0 => 75, 1 => 3 ),
+ array( 0 => 75, 1 => 2 ),
+ array( 0 => 75, 1 => 3 ),
+ array( 0 => 75, 1 => 3 ),
+ array( 0 => 84, 1 => 7 ),
+ array( 0 => 84, 1 => 7 ),
+ array( 0 => 74, 1 => 1 ),
+ array( 0 => 74, 1 => 2 ),
+ array( 0 => 74, 1 => 2 ),
+ array( 0 => 74, 1 => 2 ),
+ array( 0 => 74, 1 => 2 ),
+ array( 0 => 74, 1 => 1 ),
+ array( 0 => 74, 1 => 1 ),
+ array( 0 => 74, 1 => 3 ),
+ array( 0 => 74, 1 => 2 ),
+ array( 0 => 74, 1 => 2 ),
+ 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 => 1 ),
+ array( 0 => 74, 1 => 3 ),
+ array( 0 => 74, 1 => 1 ),
+ array( 0 => 74, 1 => 2 ),
+ array( 0 => 74, 1 => 1 ),
+ array( 0 => 74, 1 => 3 ),
+ array( 0 => 90, 1 => 1 ),
+ array( 0 => 90, 1 => 1 ),
+ array( 0 => 72, 1 => 1 ),
+ array( 0 => 72, 1 => 1 ),
+ array( 0 => 72, 1 => 3 ),
+ array( 0 => 72, 1 => 1 ),
+ array( 0 => 72, 1 => 3 ),
+ array( 0 => 72, 1 => 4 ),
+ array( 0 => 72, 1 => 3 ),
+ array( 0 => 72, 1 => 4 ),
+ array( 0 => 76, 1 => 2 ),
+ array( 0 => 76, 1 => 2 ),
+ array( 0 => 94, 1 => 2 ),
+ array( 0 => 94, 1 => 0 ),
+ array( 0 => 95, 1 => 2 ),
+ array( 0 => 95, 1 => 2 ),
+ array( 0 => 95, 1 => 4 ),
+ array( 0 => 95, 1 => 2 ),
+ array( 0 => 95, 1 => 2 ),
+ array( 0 => 95, 1 => 4 ),
+ array( 0 => 95, 1 => 3 ),
+ array( 0 => 95, 1 => 5 ),
+ array( 0 => 95, 1 => 3 ),
+ array( 0 => 95, 1 => 3 ),
+ array( 0 => 95, 1 => 3 ),
+ array( 0 => 95, 1 => 3 ),
+ array( 0 => 95, 1 => 3 ),
+ array( 0 => 95, 1 => 3 ),
+ array( 0 => 95, 1 => 2 ),
+ array( 0 => 81, 1 => 1 ),
+ array( 0 => 81, 1 => 1 ),
+ array( 0 => 81, 1 => 2 ),
+ array( 0 => 96, 1 => 1 ),
+ array( 0 => 96, 1 => 1 ),
+ array( 0 => 96, 1 => 3 ),
+ array( 0 => 93, 1 => 2 ),
+ array( 0 => 97, 1 => 1 ),
+ array( 0 => 97, 1 => 2 ),
+ array( 0 => 98, 1 => 3 ),
+ array( 0 => 98, 1 => 3 ),
+ array( 0 => 98, 1 => 5 ),
+ array( 0 => 98, 1 => 6 ),
+ array( 0 => 98, 1 => 2 ),
+ array( 0 => 89, 1 => 4 ),
+ array( 0 => 99, 1 => 4 ),
+ array( 0 => 99, 1 => 4 ),
+ array( 0 => 100, 1 => 3 ),
+ array( 0 => 100, 1 => 1 ),
+ array( 0 => 100, 1 => 0 ),
+ array( 0 => 77, 1 => 3 ),
+ array( 0 => 77, 1 => 2 ),
+ array( 0 => 101, 1 => 3 ),
+ array( 0 => 101, 1 => 2 ),
+ array( 0 => 82, 1 => 2 ),
+ array( 0 => 82, 1 => 0 ),
+ array( 0 => 102, 1 => 2 ),
+ array( 0 => 102, 1 => 2 ),
+ array( 0 => 92, 1 => 1 ),
+ array( 0 => 92, 1 => 2 ),
+ array( 0 => 92, 1 => 1 ),
+ array( 0 => 92, 1 => 2 ),
+ array( 0 => 92, 1 => 3 ),
+ array( 0 => 87, 1 => 1 ),
+ array( 0 => 87, 1 => 1 ),
+ array( 0 => 86, 1 => 1 ),
+ array( 0 => 88, 1 => 1 ),
+ array( 0 => 85, 1 => 3 ),
+ array( 0 => 103, 1 => 1 ),
+ array( 0 => 103, 1 => 3 ),
+ array( 0 => 103, 1 => 0 ),
+ array( 0 => 104, 1 => 3 ),
+ array( 0 => 104, 1 => 3 ),
+ array( 0 => 104, 1 => 1 ),
+ array( 0 => 91, 1 => 2 ),
+ array( 0 => 91, 1 => 3 ),
+ array( 0 => 105, 1 => 2 ),
+ array( 0 => 105, 1 => 1 ),
+ array( 0 => 106, 1 => 3 ),
+ array( 0 => 106, 1 => 3 ),
+ array( 0 => 106, 1 => 1 ),
+ array( 0 => 106, 1 => 3 ),
+ array( 0 => 106, 1 => 3 ),
+ array( 0 => 106, 1 => 1 ),
+ array( 0 => 106, 1 => 1 ),
+ );
+
+ public static $yyReduceMap = array(
+ 0 => 0,
+ 1 => 1,
+ 2 => 2,
+ 4 => 4,
+ 5 => 5,
+ 6 => 6,
+ 7 => 7,
+ 8 => 8,
+ 9 => 9,
+ 17 => 9,
+ 18 => 9,
+ 44 => 9,
+ 67 => 9,
+ 68 => 9,
+ 76 => 9,
+ 77 => 9,
+ 81 => 9,
+ 90 => 9,
+ 95 => 9,
+ 96 => 9,
+ 101 => 9,
+ 105 => 9,
+ 106 => 9,
+ 110 => 9,
+ 112 => 9,
+ 117 => 9,
+ 179 => 9,
+ 184 => 9,
+ 10 => 10,
+ 11 => 11,
+ 12 => 12,
+ 13 => 13,
+ 16 => 13,
+ 14 => 14,
+ 75 => 14,
+ 15 => 15,
+ 91 => 15,
+ 93 => 15,
+ 94 => 15,
+ 124 => 15,
+ 19 => 19,
+ 20 => 20,
+ 21 => 21,
+ 23 => 21,
+ 25 => 21,
+ 22 => 22,
+ 24 => 22,
+ 26 => 22,
+ 27 => 27,
+ 28 => 27,
+ 29 => 29,
+ 30 => 30,
+ 31 => 31,
+ 32 => 32,
+ 33 => 33,
+ 34 => 34,
+ 35 => 35,
+ 36 => 36,
+ 37 => 37,
+ 38 => 38,
+ 39 => 39,
+ 41 => 39,
+ 40 => 40,
+ 42 => 42,
+ 43 => 43,
+ 45 => 45,
+ 46 => 46,
+ 47 => 47,
+ 48 => 48,
+ 50 => 48,
+ 49 => 49,
+ 51 => 49,
+ 52 => 52,
+ 53 => 53,
+ 54 => 54,
+ 55 => 55,
+ 56 => 56,
+ 57 => 57,
+ 58 => 58,
+ 59 => 59,
+ 60 => 60,
+ 61 => 61,
+ 70 => 61,
+ 159 => 61,
+ 163 => 61,
+ 167 => 61,
+ 168 => 61,
+ 62 => 62,
+ 160 => 62,
+ 166 => 62,
+ 63 => 63,
+ 64 => 64,
+ 65 => 64,
+ 66 => 66,
+ 144 => 66,
+ 69 => 69,
+ 71 => 71,
+ 72 => 72,
+ 73 => 72,
+ 74 => 74,
+ 78 => 78,
+ 79 => 79,
+ 80 => 79,
+ 82 => 82,
+ 109 => 82,
+ 83 => 83,
+ 84 => 84,
+ 85 => 85,
+ 86 => 86,
+ 87 => 87,
+ 88 => 88,
+ 89 => 89,
+ 92 => 92,
+ 97 => 97,
+ 98 => 98,
+ 99 => 99,
+ 100 => 100,
+ 102 => 102,
+ 103 => 103,
+ 104 => 103,
+ 107 => 107,
+ 108 => 108,
+ 111 => 111,
+ 113 => 113,
+ 114 => 114,
+ 115 => 115,
+ 116 => 116,
+ 118 => 118,
+ 119 => 119,
+ 120 => 120,
+ 121 => 121,
+ 122 => 122,
+ 123 => 123,
+ 125 => 125,
+ 181 => 125,
+ 126 => 126,
+ 127 => 127,
+ 128 => 128,
+ 129 => 129,
+ 130 => 130,
+ 131 => 131,
+ 139 => 131,
+ 132 => 132,
+ 133 => 133,
+ 134 => 134,
+ 135 => 134,
+ 137 => 134,
+ 138 => 134,
+ 136 => 136,
+ 140 => 140,
+ 141 => 141,
+ 142 => 142,
+ 185 => 142,
+ 143 => 143,
+ 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,
+ 158 => 158,
+ 161 => 161,
+ 162 => 162,
+ 164 => 164,
+ 165 => 165,
+ 169 => 169,
+ 170 => 170,
+ 171 => 171,
+ 172 => 172,
+ 173 => 173,
+ 174 => 174,
+ 175 => 175,
+ 176 => 176,
+ 177 => 177,
+ 178 => 178,
+ 180 => 180,
+ 182 => 182,
+ 183 => 183,
+ 186 => 186,
+ 187 => 187,
+ 188 => 188,
+ 189 => 189,
+ 190 => 189,
+ 192 => 189,
+ 191 => 191,
+ 193 => 193,
+ 194 => 194,
+ 195 => 195,
+ );
+#line 218 "./lexer/smarty_internal_templateparser.y"
+ function yy_r0(){
+ $this->root_buffer->prepend_array($this, $this->template_prefix);
+ $this->root_buffer->append_array($this, $this->template_postfix);
+ $this->_retvalue = $this->root_buffer->to_smarty_php($this);
+ }
+#line 228 "./lexer/smarty_internal_templateparser.y"
+ function yy_r1(){
+ if ($this->yystack[$this->yyidx + 0]->minor != null) {
+ $this->current_buffer->append_subtree($this, $this->yystack[$this->yyidx + 0]->minor);
+ }
+ }
+#line 235 "./lexer/smarty_internal_templateparser.y"
+ function yy_r2(){
+ if ($this->yystack[$this->yyidx + 0]->minor != null) {
+ // because of possible code injection
+ $this->current_buffer->append_subtree($this, $this->yystack[$this->yyidx + 0]->minor);
+ }
+ }
+#line 249 "./lexer/smarty_internal_templateparser.y"
+ function yy_r4(){
+ if ($this->compiler->has_code) {
+ $this->_retvalue = $this->mergePrefixCode($this->yystack[$this->yyidx + 0]->minor);
+ } else {
+ $this->_retvalue = null;
+ }
+ $this->compiler->has_variable_string = false;
+ $this->block_nesting_level = count($this->compiler->_tag_stack);
+ }
+#line 260 "./lexer/smarty_internal_templateparser.y"
+ function yy_r5(){
+ $this->_retvalue = new Smarty_Internal_ParseTree_Text($this->yystack[$this->yyidx + 0]->minor);
+ }
+#line 264 "./lexer/smarty_internal_templateparser.y"
+ function yy_r6(){
+ $code = $this->compiler->compileTag('private_php',array(array('code' => $this->yystack[$this->yyidx + 0]->minor), array('type' => $this->lex->phpType )),array());
+ if ($this->compiler->has_code && !empty($code)) {
+ $tmp =''; foreach ($this->compiler->prefix_code as $code) {$tmp.=$code;} $this->compiler->prefix_code=array();
+ $this->_retvalue = new Smarty_Internal_ParseTree_Tag($this, $this->compiler->processNocacheCode($tmp.$code,true));
+ } else {
+ $this->_retvalue = null;
+ }
+ }
+#line 275 "./lexer/smarty_internal_templateparser.y"
+ function yy_r7(){
+ $this->compiler->tag_nocache = true;
+ $save = $this->template->compiled->has_nocache_code;
+ $this->_retvalue = new Smarty_Internal_ParseTree_Tag($this, $this->compiler->processNocacheCode("<?php echo '{$this->yystack[$this->yyidx + 0]->minor}';?>\n", true));
+ $this->template->compiled->has_nocache_code = $save;
+ }
+#line 282 "./lexer/smarty_internal_templateparser.y"
+ function yy_r8(){
+ $this->_retvalue = $this->compiler->processText($this->yystack[$this->yyidx + 0]->minor);
+ }
+#line 286 "./lexer/smarty_internal_templateparser.y"
+ function yy_r9(){
+ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;
+ }
+#line 290 "./lexer/smarty_internal_templateparser.y"
+ function yy_r10(){
+ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor . $this->yystack[$this->yyidx + 0]->minor;
+ }
+#line 295 "./lexer/smarty_internal_templateparser.y"
+ function yy_r11(){
+ $this->strip = true;
+ }
+#line 299 "./lexer/smarty_internal_templateparser.y"
+ function yy_r12(){
+ $this->strip = false;
+ }
+#line 304 "./lexer/smarty_internal_templateparser.y"
+ function yy_r13(){
+ $this->_retvalue = '';
+ }
+#line 308 "./lexer/smarty_internal_templateparser.y"
+ function yy_r14(){
+ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor;
+ }
+#line 312 "./lexer/smarty_internal_templateparser.y"
+ function yy_r15(){
+ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;
+ }
+#line 328 "./lexer/smarty_internal_templateparser.y"
+ function yy_r19(){
+ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor;
+ }
+#line 334 "./lexer/smarty_internal_templateparser.y"
+ function yy_r20(){
+ $var = trim(substr($this->yystack[$this->yyidx + 0]->minor, $this->lex->ldel_length, -$this->lex->rdel_length), ' $');
+ if (preg_match('/^(.*)(\s+nocache)$/', $var, $match)) {
+ $this->_retvalue = $this->compiler->compileTag('private_print_expression',array('nocache'),array('value'=>$this->compiler->compileVariable('\''.$match[1].'\'')));
+ } else {
+ $this->_retvalue = $this->compiler->compileTag('private_print_expression',array(),array('value'=>$this->compiler->compileVariable('\''.$var.'\'')));
+ }
+ }
+#line 344 "./lexer/smarty_internal_templateparser.y"
+ function yy_r21(){
+ $this->_retvalue = $this->compiler->compileTag('private_print_expression',array(),array('value'=>$this->yystack[$this->yyidx + 0]->minor));
+ }
+#line 348 "./lexer/smarty_internal_templateparser.y"
+ function yy_r22(){
+ $this->_retvalue = $this->compiler->compileTag('private_print_expression',$this->yystack[$this->yyidx + 0]->minor,array('value'=>$this->yystack[$this->yyidx + -1]->minor));
+ }
+#line 371 "./lexer/smarty_internal_templateparser.y"
+ function yy_r27(){
+ $this->_retvalue = $this->compiler->compileTag('assign',array(array('value'=>$this->yystack[$this->yyidx + 0]->minor),array('var'=>'\''.substr($this->yystack[$this->yyidx + -2]->minor,1).'\'')));
+ }
+#line 379 "./lexer/smarty_internal_templateparser.y"
+ function yy_r29(){
+ $this->_retvalue = $this->compiler->compileTag('assign',array_merge(array(array('value'=>$this->yystack[$this->yyidx + -1]->minor),array('var'=>'\''.substr($this->yystack[$this->yyidx + -3]->minor,1).'\'')),$this->yystack[$this->yyidx + 0]->minor));
+ }
+#line 383 "./lexer/smarty_internal_templateparser.y"
+ function yy_r30(){
+ $this->_retvalue = $this->compiler->compileTag('assign',array_merge(array(array('value'=>$this->yystack[$this->yyidx + -1]->minor),array('var'=>$this->yystack[$this->yyidx + -3]->minor['var'])),$this->yystack[$this->yyidx + 0]->minor),array('smarty_internal_index'=>$this->yystack[$this->yyidx + -3]->minor['smarty_internal_index']));
+ }
+#line 388 "./lexer/smarty_internal_templateparser.y"
+ function yy_r31(){
+ $tag = trim(substr($this->yystack[$this->yyidx + 0]->minor, $this->lex->ldel_length, -$this->lex->rdel_length));
+ if ($tag == 'strip') {
+ $this->strip = true;
+ $this->_retvalue = null;;
+ } else {
+ if (defined($tag)) {
+ if ($this->security) {
+ $this->security->isTrustedConstant($tag, $this->compiler);
+ }
+ $this->_retvalue = $this->compiler->compileTag('private_print_expression',array(),array('value'=>$tag));
+ } else {
+ if (preg_match('/^(.*)(\s+nocache)$/', $tag, $match)) {
+ $this->_retvalue = $this->compiler->compileTag($match[1],array("'nocache'"));
+ } else {
+ $this->_retvalue = $this->compiler->compileTag($tag,array());
+ }
+ }
+ }
+ }
+#line 410 "./lexer/smarty_internal_templateparser.y"
+ function yy_r32(){
+ if (defined($this->yystack[$this->yyidx + -1]->minor)) {
+ if ($this->security) {
+ $this->security->isTrustedConstant($this->yystack[$this->yyidx + -1]->minor, $this->compiler);
+ }
+ $this->_retvalue = $this->compiler->compileTag('private_print_expression',$this->yystack[$this->yyidx + 0]->minor,array('value'=>$this->yystack[$this->yyidx + -1]->minor));
+ } else {
+ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor);
+ }
+ }
+#line 420 "./lexer/smarty_internal_templateparser.y"
+ function yy_r33(){
+ if (defined($this->yystack[$this->yyidx + 0]->minor)) {
+ if ($this->security) {
+ $this->security->isTrustedConstant($this->yystack[$this->yyidx + 0]->minor, $this->compiler);
+ }
+ $this->_retvalue = $this->compiler->compileTag('private_print_expression',array(),array('value'=>$this->yystack[$this->yyidx + 0]->minor));
+ } else {
+ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + 0]->minor,array());
+ }
+ }
+#line 433 "./lexer/smarty_internal_templateparser.y"
+ function yy_r34(){
+ if (defined($this->yystack[$this->yyidx + -2]->minor)) {
+ if ($this->security) {
+ $this->security->isTrustedConstant($this->yystack[$this->yyidx + -2]->minor, $this->compiler);
+ }
+ $this->_retvalue = $this->compiler->compileTag('private_print_expression',$this->yystack[$this->yyidx + 0]->minor,array('value'=>$this->yystack[$this->yyidx + -2]->minor, 'modifierlist'=>$this->yystack[$this->yyidx + -1]->minor));
+ } else {
+ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -2]->minor,$this->yystack[$this->yyidx + 0]->minor, array('modifierlist'=>$this->yystack[$this->yyidx + -1]->minor));
+ }
+ }
+#line 445 "./lexer/smarty_internal_templateparser.y"
+ function yy_r35(){
+ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -3]->minor,$this->yystack[$this->yyidx + 0]->minor,array('object_method'=>$this->yystack[$this->yyidx + -1]->minor));
+ }
+#line 450 "./lexer/smarty_internal_templateparser.y"
+ function yy_r36(){
+ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -4]->minor,$this->yystack[$this->yyidx + 0]->minor,array('modifierlist'=>$this->yystack[$this->yyidx + -1]->minor, 'object_method'=>$this->yystack[$this->yyidx + -2]->minor));
+ }
+#line 455 "./lexer/smarty_internal_templateparser.y"
+ function yy_r37(){
+ $this->_retvalue = $this->compiler->compileTag('make_nocache',array(array('var'=>'\''.substr($this->yystack[$this->yyidx + 0]->minor,1).'\'')));
+ }
+#line 460 "./lexer/smarty_internal_templateparser.y"
+ function yy_r38(){
+ $tag = trim(substr($this->yystack[$this->yyidx + -1]->minor,$this->lex->ldel_length));
+ $this->_retvalue = $this->compiler->compileTag(($tag == 'else if')? 'elseif' : $tag,array(),array('if condition'=>$this->yystack[$this->yyidx + 0]->minor));
+ }
+#line 465 "./lexer/smarty_internal_templateparser.y"
+ function yy_r39(){
+ $tag = trim(substr($this->yystack[$this->yyidx + -2]->minor,$this->lex->ldel_length));
+ $this->_retvalue = $this->compiler->compileTag(($tag == 'else if')? 'elseif' : $tag,$this->yystack[$this->yyidx + 0]->minor,array('if condition'=>$this->yystack[$this->yyidx + -1]->minor));
+ }
+#line 470 "./lexer/smarty_internal_templateparser.y"
+ function yy_r40(){
+ $tag = trim(substr($this->yystack[$this->yyidx + -1]->minor,$this->lex->ldel_length));
+ $this->_retvalue = $this->compiler->compileTag(($tag == 'else if')? 'elseif' : $tag,array(),array('if condition'=>$this->yystack[$this->yyidx + 0]->minor));
+ }
+#line 481 "./lexer/smarty_internal_templateparser.y"
+ function yy_r42(){
+ $this->_retvalue = $this->compiler->compileTag('for',array_merge($this->yystack[$this->yyidx + 0]->minor,array(array('start'=>$this->yystack[$this->yyidx + -6]->minor),array('ifexp'=>$this->yystack[$this->yyidx + -4]->minor),array('var'=>$this->yystack[$this->yyidx + -2]->minor),array('step'=>$this->yystack[$this->yyidx + -1]->minor))),1);
+ }
+#line 485 "./lexer/smarty_internal_templateparser.y"
+ function yy_r43(){
+ $this->_retvalue = '='.$this->yystack[$this->yyidx + 0]->minor;
+ }
+#line 493 "./lexer/smarty_internal_templateparser.y"
+ function yy_r45(){
+ $this->_retvalue = $this->compiler->compileTag('for',array_merge($this->yystack[$this->yyidx + 0]->minor,array(array('start'=>$this->yystack[$this->yyidx + -3]->minor),array('to'=>$this->yystack[$this->yyidx + -1]->minor))),0);
+ }
+#line 497 "./lexer/smarty_internal_templateparser.y"
+ function yy_r46(){
+ $this->_retvalue = $this->compiler->compileTag('for',array_merge($this->yystack[$this->yyidx + 0]->minor,array(array('start'=>$this->yystack[$this->yyidx + -5]->minor),array('to'=>$this->yystack[$this->yyidx + -3]->minor),array('step'=>$this->yystack[$this->yyidx + -1]->minor))),0);
+ }
+#line 502 "./lexer/smarty_internal_templateparser.y"
+ function yy_r47(){
+ $this->_retvalue = $this->compiler->compileTag('foreach',$this->yystack[$this->yyidx + 0]->minor);
+ }
+#line 507 "./lexer/smarty_internal_templateparser.y"
+ function yy_r48(){
+ $this->_retvalue = $this->compiler->compileTag('foreach',array_merge($this->yystack[$this->yyidx + 0]->minor,array(array('from'=>$this->yystack[$this->yyidx + -3]->minor),array('item'=>$this->yystack[$this->yyidx + -1]->minor))));
+ }
+#line 511 "./lexer/smarty_internal_templateparser.y"
+ function yy_r49(){
+ $this->_retvalue = $this->compiler->compileTag('foreach',array_merge($this->yystack[$this->yyidx + 0]->minor,array(array('from'=>$this->yystack[$this->yyidx + -5]->minor),array('item'=>$this->yystack[$this->yyidx + -1]->minor),array('key'=>$this->yystack[$this->yyidx + -3]->minor))));
+ }
+#line 524 "./lexer/smarty_internal_templateparser.y"
+ function yy_r52(){
+ $this->_retvalue = $this->compiler->compileTag('setfilter',array(),array('modifier_list'=>array(array_merge(array($this->yystack[$this->yyidx + -1]->minor),$this->yystack[$this->yyidx + 0]->minor))));
+ }
+#line 528 "./lexer/smarty_internal_templateparser.y"
+ function yy_r53(){
+ $this->_retvalue = $this->compiler->compileTag('setfilter',array(),array('modifier_list'=>array_merge(array(array_merge(array($this->yystack[$this->yyidx + -2]->minor),$this->yystack[$this->yyidx + -1]->minor)),$this->yystack[$this->yyidx + 0]->minor)));
+ }
+#line 533 "./lexer/smarty_internal_templateparser.y"
+ function yy_r54(){
+ $j = strrpos($this->yystack[$this->yyidx + 0]->minor,'.');
+ if ($this->yystack[$this->yyidx + 0]->minor[$j+1] == 'c') {
+ // {$smarty.block.child}
+ $this->_retvalue = SMARTY_INTERNAL_COMPILE_BLOCK::compileChildBlock($this->compiler);
+ } else {
+ // {$smarty.block.parent}
+ $this->_retvalue = SMARTY_INTERNAL_COMPILE_BLOCK::compileParentBlock($this->compiler);
+ }
+ }
+#line 546 "./lexer/smarty_internal_templateparser.y"
+ function yy_r55(){
+ $tag = trim(substr($this->yystack[$this->yyidx + 0]->minor, $this->lex->ldel_length, -$this->lex->rdel_length), ' /');
+ if ($tag == 'strip') {
+ $this->strip = false;
+ $this->_retvalue = null;
+ } else {
+ $this->_retvalue = $this->compiler->compileTag($tag.'close',array());
+ }
+ }
+#line 555 "./lexer/smarty_internal_templateparser.y"
+ function yy_r56(){
+ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + 0]->minor.'close',array());
+ }
+#line 559 "./lexer/smarty_internal_templateparser.y"
+ function yy_r57(){
+ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -1]->minor.'close',array(),array('modifier_list'=>$this->yystack[$this->yyidx + 0]->minor));
+ }
+#line 564 "./lexer/smarty_internal_templateparser.y"
+ function yy_r58(){
+ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -2]->minor.'close',array(),array('object_method'=>$this->yystack[$this->yyidx + 0]->minor));
+ }
+#line 568 "./lexer/smarty_internal_templateparser.y"
+ function yy_r59(){
+ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -3]->minor.'close',array(),array('object_method'=>$this->yystack[$this->yyidx + -1]->minor, 'modifier_list'=>$this->yystack[$this->yyidx + 0]->minor));
+ }
+#line 576 "./lexer/smarty_internal_templateparser.y"
+ function yy_r60(){
+ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor;
+ $this->_retvalue[] = $this->yystack[$this->yyidx + 0]->minor;
+ }
+#line 582 "./lexer/smarty_internal_templateparser.y"
+ function yy_r61(){
+ $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor);
+ }
+#line 587 "./lexer/smarty_internal_templateparser.y"
+ function yy_r62(){
+ $this->_retvalue = array();
+ }
+#line 592 "./lexer/smarty_internal_templateparser.y"
+ function yy_r63(){
+ if (defined($this->yystack[$this->yyidx + 0]->minor)) {
+ if ($this->security) {
+ $this->security->isTrustedConstant($this->yystack[$this->yyidx + 0]->minor, $this->compiler);
+ }
+ $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>$this->yystack[$this->yyidx + 0]->minor);
+ } else {
+ $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>'\''.$this->yystack[$this->yyidx + 0]->minor.'\'');
+ }
+ }
+#line 603 "./lexer/smarty_internal_templateparser.y"
+ function yy_r64(){
+ $this->_retvalue = array(trim($this->yystack[$this->yyidx + -1]->minor," =\n\r\t")=>$this->yystack[$this->yyidx + 0]->minor);
+ }
+#line 611 "./lexer/smarty_internal_templateparser.y"
+ function yy_r66(){
+ $this->_retvalue = '\''.$this->yystack[$this->yyidx + 0]->minor.'\'';
+ }
+#line 623 "./lexer/smarty_internal_templateparser.y"
+ function yy_r69(){
+ $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>$this->yystack[$this->yyidx + 0]->minor);
+ }
+#line 636 "./lexer/smarty_internal_templateparser.y"
+ function yy_r71(){
+ $this->yystack[$this->yyidx + -2]->minor[]=$this->yystack[$this->yyidx + 0]->minor;
+ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor;
+ }
+#line 641 "./lexer/smarty_internal_templateparser.y"
+ function yy_r72(){
+ $this->_retvalue = array('var' => '\''.substr($this->yystack[$this->yyidx + -2]->minor,1).'\'', 'value'=>$this->yystack[$this->yyidx + 0]->minor);
+ }
+#line 648 "./lexer/smarty_internal_templateparser.y"
+ function yy_r74(){
+ $this->_retvalue = array('var' => $this->yystack[$this->yyidx + -2]->minor, 'value'=>$this->yystack[$this->yyidx + 0]->minor);
+ }
+#line 672 "./lexer/smarty_internal_templateparser.y"
+ function yy_r78(){
+ $this->_retvalue = '$_smarty_tpl->getStreamVariable(\''.substr($this->yystack[$this->yyidx + -2]->minor,1).'://' . $this->yystack[$this->yyidx + 0]->minor . '\')';
+ }
+#line 677 "./lexer/smarty_internal_templateparser.y"
+ function yy_r79(){
+ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor . trim($this->yystack[$this->yyidx + -1]->minor) . $this->yystack[$this->yyidx + 0]->minor;
+ }
+#line 691 "./lexer/smarty_internal_templateparser.y"
+ function yy_r82(){
+ $this->_retvalue = $this->compiler->compileTag('private_modifier',array(),array('value'=>$this->yystack[$this->yyidx + -1]->minor,'modifierlist'=>$this->yystack[$this->yyidx + 0]->minor));
+ }
+#line 697 "./lexer/smarty_internal_templateparser.y"
+ function yy_r83(){
+ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor['pre']. $this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor['op'].$this->yystack[$this->yyidx + 0]->minor .')';
+ }
+#line 701 "./lexer/smarty_internal_templateparser.y"
+ function yy_r84(){
+ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;
+ }
+#line 705 "./lexer/smarty_internal_templateparser.y"
+ function yy_r85(){
+ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor . $this->yystack[$this->yyidx + -1]->minor . ')';
+ }
+#line 709 "./lexer/smarty_internal_templateparser.y"
+ function yy_r86(){
+ $this->_retvalue = 'in_array('.$this->yystack[$this->yyidx + -2]->minor.','.$this->yystack[$this->yyidx + 0]->minor.')';
+ }
+#line 713 "./lexer/smarty_internal_templateparser.y"
+ function yy_r87(){
+ $this->_retvalue = 'in_array('.$this->yystack[$this->yyidx + -2]->minor.',(array)'.$this->yystack[$this->yyidx + 0]->minor.')';
+ }
+#line 721 "./lexer/smarty_internal_templateparser.y"
+ function yy_r88(){
+ $this->_retvalue = $this->yystack[$this->yyidx + -5]->minor.' ? '. $this->compiler->compileVariable('\''.substr($this->yystack[$this->yyidx + -2]->minor,1).'\'') . ' : '.$this->yystack[$this->yyidx + 0]->minor;
+ }
+#line 725 "./lexer/smarty_internal_templateparser.y"
+ function yy_r89(){
+ $this->_retvalue = $this->yystack[$this->yyidx + -5]->minor.' ? '.$this->yystack[$this->yyidx + -2]->minor.' : '.$this->yystack[$this->yyidx + 0]->minor;
+ }
+#line 740 "./lexer/smarty_internal_templateparser.y"
+ function yy_r92(){
+ $this->_retvalue = '!'.$this->yystack[$this->yyidx + 0]->minor;
+ }
+#line 761 "./lexer/smarty_internal_templateparser.y"
+ function yy_r97(){
+ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'.'.$this->yystack[$this->yyidx + 0]->minor;
+ }
+#line 765 "./lexer/smarty_internal_templateparser.y"
+ function yy_r98(){
+ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.'.';
+ }
+#line 769 "./lexer/smarty_internal_templateparser.y"
+ function yy_r99(){
+ $this->_retvalue = '.'.$this->yystack[$this->yyidx + 0]->minor;
+ }
+#line 774 "./lexer/smarty_internal_templateparser.y"
+ function yy_r100(){
+ if (defined($this->yystack[$this->yyidx + 0]->minor)) {
+ if ($this->security) {
+ $this->security->isTrustedConstant($this->yystack[$this->yyidx + 0]->minor, $this->compiler);
+ }
+ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;
+ } else {
+ $this->_retvalue = '\''.$this->yystack[$this->yyidx + 0]->minor.'\'';
+ }
+ }
+#line 791 "./lexer/smarty_internal_templateparser.y"
+ function yy_r102(){
+ $this->_retvalue = "(". $this->yystack[$this->yyidx + -1]->minor .")";
+ }
+#line 795 "./lexer/smarty_internal_templateparser.y"
+ function yy_r103(){
+ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;
+ }
+#line 813 "./lexer/smarty_internal_templateparser.y"
+ function yy_r107(){
+ $prefixVar = $this->compiler->getNewPrefixVariable();
+ if ($this->yystack[$this->yyidx + -2]->minor['var'] == '\'smarty\'') {
+ $this->compiler->appendPrefixCode("<?php $prefixVar" .' = '. $this->compiler->compileTag('private_special_variable',array(),$this->yystack[$this->yyidx + -2]->minor['smarty_internal_index']).';?>');
+ } else {
+ $this->compiler->appendPrefixCode("<?php $prefixVar" .' = '. $this->compiler->compileVariable($this->yystack[$this->yyidx + -2]->minor['var']).$this->yystack[$this->yyidx + -2]->minor['smarty_internal_index'].';?>');
+ }
+ $this->_retvalue = $prefixVar .'::'.$this->yystack[$this->yyidx + 0]->minor[0].$this->yystack[$this->yyidx + 0]->minor[1];
+ }
+#line 824 "./lexer/smarty_internal_templateparser.y"
+ function yy_r108(){
+ $prefixVar = $this->compiler->getNewPrefixVariable();
+ $tmp = $this->compiler->appendCode('<?php ob_start();?>', $this->yystack[$this->yyidx + 0]->minor);
+ $this->compiler->appendPrefixCode($this->compiler->appendCode($tmp, "<?php $prefixVar" .'=ob_get_clean();?>'));
+ $this->_retvalue = $prefixVar;
+ }
+#line 841 "./lexer/smarty_internal_templateparser.y"
+ function yy_r111(){
+ if (!in_array(strtolower($this->yystack[$this->yyidx + -2]->minor), array('self', 'parent')) && (!$this->security || $this->security->isTrustedStaticClassAccess($this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + 0]->minor, $this->compiler))) {
+ if (isset($this->smarty->registered_classes[$this->yystack[$this->yyidx + -2]->minor])) {
+ $this->_retvalue = $this->smarty->registered_classes[$this->yystack[$this->yyidx + -2]->minor].'::'.$this->yystack[$this->yyidx + 0]->minor[0].$this->yystack[$this->yyidx + 0]->minor[1];
+ } else {
+ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'::'.$this->yystack[$this->yyidx + 0]->minor[0].$this->yystack[$this->yyidx + 0]->minor[1];
+ }
+ } else {
+ $this->compiler->trigger_template_error ("static class '".$this->yystack[$this->yyidx + -2]->minor."' is undefined or not allowed by security setting");
+ }
+ }
+#line 860 "./lexer/smarty_internal_templateparser.y"
+ function yy_r113(){
+ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;
+ }
+#line 871 "./lexer/smarty_internal_templateparser.y"
+ function yy_r114(){
+ $this->_retvalue = $this->compiler->compileVariable('\''.substr($this->yystack[$this->yyidx + 0]->minor,1).'\'');
+ }
+#line 874 "./lexer/smarty_internal_templateparser.y"
+ function yy_r115(){
+ if ($this->yystack[$this->yyidx + 0]->minor['var'] == '\'smarty\'') {
+ $smarty_var = $this->compiler->compileTag('private_special_variable',array(),$this->yystack[$this->yyidx + 0]->minor['smarty_internal_index']);
+ $this->_retvalue = $smarty_var;
+ } else {
+ // used for array reset,next,prev,end,current
+ $this->last_variable = $this->yystack[$this->yyidx + 0]->minor['var'];
+ $this->last_index = $this->yystack[$this->yyidx + 0]->minor['smarty_internal_index'];
+ $this->_retvalue = $this->compiler->compileVariable($this->yystack[$this->yyidx + 0]->minor['var']).$this->yystack[$this->yyidx + 0]->minor['smarty_internal_index'];
+ }
+ }
+#line 887 "./lexer/smarty_internal_templateparser.y"
+ function yy_r116(){
+ $this->_retvalue = '$_smarty_tpl->tpl_vars['. $this->yystack[$this->yyidx + -2]->minor .']->'.$this->yystack[$this->yyidx + 0]->minor;
+ }
+#line 897 "./lexer/smarty_internal_templateparser.y"
+ function yy_r118(){
+ $this->_retvalue = $this->compiler->compileConfigVariable("'" . $this->yystack[$this->yyidx + -1]->minor . "'");
+ }
+#line 901 "./lexer/smarty_internal_templateparser.y"
+ function yy_r119(){
+ $this->_retvalue = '(is_array($tmp = ' . $this->compiler->compileConfigVariable("'" . $this->yystack[$this->yyidx + -2]->minor . "'") . ') ? $tmp'.$this->yystack[$this->yyidx + 0]->minor.' :null)';
+ }
+#line 905 "./lexer/smarty_internal_templateparser.y"
+ function yy_r120(){
+ $this->_retvalue = $this->compiler->compileConfigVariable($this->yystack[$this->yyidx + -1]->minor);
+ }
+#line 909 "./lexer/smarty_internal_templateparser.y"
+ function yy_r121(){
+ $this->_retvalue = '(is_array($tmp = ' . $this->compiler->compileConfigVariable($this->yystack[$this->yyidx + -2]->minor) . ') ? $tmp'.$this->yystack[$this->yyidx + 0]->minor.' : null)';
+ }
+#line 913 "./lexer/smarty_internal_templateparser.y"
+ function yy_r122(){
+ $this->_retvalue = array('var'=>'\''.substr($this->yystack[$this->yyidx + -1]->minor,1).'\'', 'smarty_internal_index'=>$this->yystack[$this->yyidx + 0]->minor);
+ }
+#line 916 "./lexer/smarty_internal_templateparser.y"
+ function yy_r123(){
+ $this->_retvalue = array('var'=>$this->yystack[$this->yyidx + -1]->minor, 'smarty_internal_index'=>$this->yystack[$this->yyidx + 0]->minor);
+ }
+#line 929 "./lexer/smarty_internal_templateparser.y"
+ function yy_r125(){
+ return;
+ }
+#line 935 "./lexer/smarty_internal_templateparser.y"
+ function yy_r126(){
+ $this->_retvalue = '['.$this->compiler->compileVariable('\''.substr($this->yystack[$this->yyidx + 0]->minor,1).'\'').']';
+ }
+#line 938 "./lexer/smarty_internal_templateparser.y"
+ function yy_r127(){
+ $this->_retvalue = '['.$this->compiler->compileVariable($this->yystack[$this->yyidx + 0]->minor).']';
+ }
+#line 942 "./lexer/smarty_internal_templateparser.y"
+ function yy_r128(){
+ $this->_retvalue = '['.$this->compiler->compileVariable($this->yystack[$this->yyidx + -2]->minor).'->'.$this->yystack[$this->yyidx + 0]->minor.']';
+ }
+#line 946 "./lexer/smarty_internal_templateparser.y"
+ function yy_r129(){
+ $this->_retvalue = "['". $this->yystack[$this->yyidx + 0]->minor ."']";
+ }
+#line 950 "./lexer/smarty_internal_templateparser.y"
+ function yy_r130(){
+ $this->_retvalue = '['. $this->yystack[$this->yyidx + 0]->minor .']';
+ }
+#line 955 "./lexer/smarty_internal_templateparser.y"
+ function yy_r131(){
+ $this->_retvalue = '['. $this->yystack[$this->yyidx + -1]->minor .']';
+ }
+#line 960 "./lexer/smarty_internal_templateparser.y"
+ function yy_r132(){
+ $this->_retvalue = '['.$this->compiler->compileTag('private_special_variable',array(),'[\'section\'][\''.$this->yystack[$this->yyidx + -1]->minor.'\'][\'index\']').']';
+ }
+#line 964 "./lexer/smarty_internal_templateparser.y"
+ function yy_r133(){
+ $this->_retvalue = '['.$this->compiler->compileTag('private_special_variable',array(),'[\'section\'][\''.$this->yystack[$this->yyidx + -3]->minor.'\'][\''.$this->yystack[$this->yyidx + -1]->minor.'\']').']';
+ }
+#line 967 "./lexer/smarty_internal_templateparser.y"
+ function yy_r134(){
+ $this->_retvalue = '['.$this->yystack[$this->yyidx + -1]->minor.']';
+ }
+#line 973 "./lexer/smarty_internal_templateparser.y"
+ function yy_r136(){
+ $this->_retvalue = '['.$this->compiler->compileVariable('\''.substr($this->yystack[$this->yyidx + -1]->minor,1).'\'').']';;
+ }
+#line 989 "./lexer/smarty_internal_templateparser.y"
+ function yy_r140(){
+ $this->_retvalue = '[]';
+ }
+#line 999 "./lexer/smarty_internal_templateparser.y"
+ function yy_r141(){
+ $this->_retvalue = '\''.substr($this->yystack[$this->yyidx + 0]->minor,1).'\'';
+ }
+#line 1003 "./lexer/smarty_internal_templateparser.y"
+ function yy_r142(){
+ $this->_retvalue = "''";
+ }
+#line 1008 "./lexer/smarty_internal_templateparser.y"
+ function yy_r143(){
+ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.'.'.$this->yystack[$this->yyidx + 0]->minor;
+ }
+#line 1016 "./lexer/smarty_internal_templateparser.y"
+ function yy_r145(){
+ $var = trim(substr($this->yystack[$this->yyidx + 0]->minor, $this->lex->ldel_length, -$this->lex->rdel_length), ' $');
+ $this->_retvalue = $this->compiler->compileVariable('\''.$var.'\'');
+ }
+#line 1022 "./lexer/smarty_internal_templateparser.y"
+ function yy_r146(){
+ $this->_retvalue = '('.$this->yystack[$this->yyidx + -1]->minor.')';
+ }
+#line 1029 "./lexer/smarty_internal_templateparser.y"
+ function yy_r147(){
+ if ($this->yystack[$this->yyidx + -1]->minor['var'] == '\'smarty\'') {
+ $this->_retvalue = $this->compiler->compileTag('private_special_variable',array(),$this->yystack[$this->yyidx + -1]->minor['smarty_internal_index']).$this->yystack[$this->yyidx + 0]->minor;
+ } else {
+ $this->_retvalue = $this->compiler->compileVariable($this->yystack[$this->yyidx + -1]->minor['var']).$this->yystack[$this->yyidx + -1]->minor['smarty_internal_index'].$this->yystack[$this->yyidx + 0]->minor;
+ }
+ }
+#line 1038 "./lexer/smarty_internal_templateparser.y"
+ function yy_r148(){
+ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;
+ }
+#line 1043 "./lexer/smarty_internal_templateparser.y"
+ function yy_r149(){
+ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;
+ }
+#line 1048 "./lexer/smarty_internal_templateparser.y"
+ function yy_r150(){
+ if ($this->security && substr($this->yystack[$this->yyidx + -1]->minor,0,1) == '_') {
+ $this->compiler->trigger_template_error (self::Err1);
+ }
+ $this->_retvalue = '->'.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;
+ }
+#line 1055 "./lexer/smarty_internal_templateparser.y"
+ function yy_r151(){
+ if ($this->security) {
+ $this->compiler->trigger_template_error (self::Err2);
+ }
+ $this->_retvalue = '->{'.$this->compiler->compileVariable($this->yystack[$this->yyidx + -1]->minor).$this->yystack[$this->yyidx + 0]->minor.'}';
+ }
+#line 1062 "./lexer/smarty_internal_templateparser.y"
+ function yy_r152(){
+ if ($this->security) {
+ $this->compiler->trigger_template_error (self::Err2);
+ }
+ $this->_retvalue = '->{'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + 0]->minor.'}';
+ }
+#line 1069 "./lexer/smarty_internal_templateparser.y"
+ function yy_r153(){
+ if ($this->security) {
+ $this->compiler->trigger_template_error (self::Err2);
+ }
+ $this->_retvalue = '->{\''.$this->yystack[$this->yyidx + -4]->minor.'\'.'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + 0]->minor.'}';
+ }
+#line 1077 "./lexer/smarty_internal_templateparser.y"
+ function yy_r154(){
+ $this->_retvalue = '->'.$this->yystack[$this->yyidx + 0]->minor;
+ }
+#line 1085 "./lexer/smarty_internal_templateparser.y"
+ function yy_r155(){
+ if (!$this->security || $this->security->isTrustedPhpFunction($this->yystack[$this->yyidx + -3]->minor, $this->compiler)) {
+ if (strcasecmp($this->yystack[$this->yyidx + -3]->minor,'isset') === 0 || strcasecmp($this->yystack[$this->yyidx + -3]->minor,'empty') === 0 || strcasecmp($this->yystack[$this->yyidx + -3]->minor,'array') === 0 || is_callable($this->yystack[$this->yyidx + -3]->minor)) {
+ $func_name = strtolower($this->yystack[$this->yyidx + -3]->minor);
+ if ($func_name == 'isset') {
+ if (count($this->yystack[$this->yyidx + -1]->minor) == 0) {
+ $this->compiler->trigger_template_error ('Illegal number of paramer in "isset()"');
+ }
+ $par = implode(',',$this->yystack[$this->yyidx + -1]->minor);
+ if (strncasecmp($par,'$_smarty_tpl->smarty->ext->_config->_getConfigVariable',strlen('$_smarty_tpl->smarty->ext->_config->_getConfigVariable')) === 0) {
+ $prefixVar = $this->compiler->getNewPrefixVariable();
+ $this->compiler->appendPrefixCode("<?php $prefixVar" .'='.str_replace(')',', false)',$par).';?>');
+ $isset_par = $prefixVar;
+ } else {
+ $isset_par=str_replace("')->value","',null,true,false)->value",$par);
+ }
+ $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor . "(". $isset_par .")";
+ } elseif (in_array($func_name,array('empty','reset','current','end','prev','next'))){
+ if (count($this->yystack[$this->yyidx + -1]->minor) != 1) {
+ $this->compiler->trigger_template_error ('Illegal number of paramer in "empty()"');
+ }
+ if ($func_name == 'empty') {
+ $this->_retvalue = $func_name.'('.str_replace("')->value","',null,true,false)->value",$this->yystack[$this->yyidx + -1]->minor[0]).')';
+ } else {
+ $this->_retvalue = $func_name.'('.$this->yystack[$this->yyidx + -1]->minor[0].')';
+ }
+ } else {
+ $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor . "(". implode(',',$this->yystack[$this->yyidx + -1]->minor) .")";
+ }
+ } else {
+ $this->compiler->trigger_template_error ("unknown function \"" . $this->yystack[$this->yyidx + -3]->minor . "\"");
+ }
+ }
+ }
+#line 1124 "./lexer/smarty_internal_templateparser.y"
+ function yy_r156(){
+ if ($this->security && substr($this->yystack[$this->yyidx + -3]->minor,0,1) == '_') {
+ $this->compiler->trigger_template_error (self::Err1);
+ }
+ $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor . "(". implode(',',$this->yystack[$this->yyidx + -1]->minor) .")";
+ }
+#line 1131 "./lexer/smarty_internal_templateparser.y"
+ function yy_r157(){
+ if ($this->security) {
+ $this->compiler->trigger_template_error (self::Err2);
+ }
+ $prefixVar = $this->compiler->getNewPrefixVariable();
+ $this->compiler->appendPrefixCode("<?php $prefixVar" .'='.$this->compiler->compileVariable('\''.substr($this->yystack[$this->yyidx + -3]->minor,1).'\'').';?>');
+ $this->_retvalue = $prefixVar .'('. implode(',',$this->yystack[$this->yyidx + -1]->minor) .')';
+ }
+#line 1142 "./lexer/smarty_internal_templateparser.y"
+ function yy_r158(){
+ $this->_retvalue = array_merge($this->yystack[$this->yyidx + -2]->minor,array($this->yystack[$this->yyidx + 0]->minor));
+ }
+#line 1159 "./lexer/smarty_internal_templateparser.y"
+ function yy_r161(){
+ $this->_retvalue = array_merge($this->yystack[$this->yyidx + -2]->minor,array(array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor)));
+ }
+#line 1163 "./lexer/smarty_internal_templateparser.y"
+ function yy_r162(){
+ $this->_retvalue = array(array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor));
+ }
+#line 1171 "./lexer/smarty_internal_templateparser.y"
+ function yy_r164(){
+ $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor);
+ }
+#line 1179 "./lexer/smarty_internal_templateparser.y"
+ function yy_r165(){
+ $this->_retvalue = array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor);
+ }
+#line 1198 "./lexer/smarty_internal_templateparser.y"
+ function yy_r169(){
+ $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor, '', 'method');
+ }
+#line 1203 "./lexer/smarty_internal_templateparser.y"
+ function yy_r170(){
+ $this->_retvalue = array($this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor, 'method');
+ }
+#line 1208 "./lexer/smarty_internal_templateparser.y"
+ function yy_r171(){
+ $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor, '');
+ }
+#line 1213 "./lexer/smarty_internal_templateparser.y"
+ function yy_r172(){
+ $this->_retvalue = array($this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor, 'property');
+ }
+#line 1218 "./lexer/smarty_internal_templateparser.y"
+ function yy_r173(){
+ $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor, 'property');
+ }
+#line 1224 "./lexer/smarty_internal_templateparser.y"
+ function yy_r174(){
+ $this->_retvalue = ' '. trim($this->yystack[$this->yyidx + 0]->minor) . ' ';
+ }
+#line 1228 "./lexer/smarty_internal_templateparser.y"
+ function yy_r175(){
+ static $lops = array(
+ 'eq' => ' == ',
+ 'ne' => ' != ',
+ 'neq' => ' != ',
+ 'gt' => ' > ',
+ 'ge' => ' >= ',
+ 'gte' => ' >= ',
+ 'lt' => ' < ',
+ 'le' => ' <= ',
+ 'lte' => ' <= ',
+ 'mod' => ' % ',
+ 'and' => ' && ',
+ 'or' => ' || ',
+ 'xor' => ' xor ',
+ );
+ $op = strtolower(preg_replace('/\s*/', '', $this->yystack[$this->yyidx + 0]->minor));
+ $this->_retvalue = $lops[$op];
+ }
+#line 1247 "./lexer/smarty_internal_templateparser.y"
+ function yy_r176(){
+ static $tlops = array(
+ 'isdivby' => array('op' => ' % ', 'pre' => '!('),
+ 'isnotdivby' => array('op' => ' % ', 'pre' => '('),
+ 'isevenby' => array('op' => ' / ', 'pre' => '!(1 & '),
+ 'isnotevenby' => array('op' => ' / ', 'pre' => '(1 & '),
+ 'isoddby' => array('op' => ' / ', 'pre' => '(1 & '),
+ 'isnotoddby' => array('op' => ' / ', 'pre' => '!(1 & '),
+ );
+ $op = strtolower(preg_replace('/\s*/', '', $this->yystack[$this->yyidx + 0]->minor));
+ $this->_retvalue = $tlops[$op];
+ }
+#line 1260 "./lexer/smarty_internal_templateparser.y"
+ function yy_r177(){
+ static $scond = array (
+ 'iseven' => '!(1 & ',
+ 'isnoteven' => '(1 & ',
+ 'isodd' => '(1 & ',
+ 'isnotodd' => '!(1 & ',
+ );
+ $op = strtolower(str_replace(' ', '', $this->yystack[$this->yyidx + 0]->minor));
+ $this->_retvalue = $scond[$op];
+ }
+#line 1274 "./lexer/smarty_internal_templateparser.y"
+ function yy_r178(){
+ $this->_retvalue = 'array('.$this->yystack[$this->yyidx + -1]->minor.')';
+ }
+#line 1282 "./lexer/smarty_internal_templateparser.y"
+ function yy_r180(){
+ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.','.$this->yystack[$this->yyidx + 0]->minor;
+ }
+#line 1290 "./lexer/smarty_internal_templateparser.y"
+ function yy_r182(){
+ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'=>'.$this->yystack[$this->yyidx + 0]->minor;
+ }
+#line 1294 "./lexer/smarty_internal_templateparser.y"
+ function yy_r183(){
+ $this->_retvalue = '\''.$this->yystack[$this->yyidx + -2]->minor.'\'=>'.$this->yystack[$this->yyidx + 0]->minor;
+ }
+#line 1310 "./lexer/smarty_internal_templateparser.y"
+ function yy_r186(){
+ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor->to_smarty_php($this);
+ }
+#line 1315 "./lexer/smarty_internal_templateparser.y"
+ function yy_r187(){
+ $this->yystack[$this->yyidx + -1]->minor->append_subtree($this, $this->yystack[$this->yyidx + 0]->minor);
+ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor;
+ }
+#line 1320 "./lexer/smarty_internal_templateparser.y"
+ function yy_r188(){
+ $this->_retvalue = new Smarty_Internal_ParseTree_Dq($this, $this->yystack[$this->yyidx + 0]->minor);
+ }
+#line 1324 "./lexer/smarty_internal_templateparser.y"
+ function yy_r189(){
+ $this->_retvalue = new Smarty_Internal_ParseTree_Code('(string)'.$this->yystack[$this->yyidx + -1]->minor);
+ }
+#line 1332 "./lexer/smarty_internal_templateparser.y"
+ function yy_r191(){
+ $this->_retvalue = new Smarty_Internal_ParseTree_Code('(string)$_smarty_tpl->tpl_vars[\''. substr($this->yystack[$this->yyidx + 0]->minor,1) .'\']->value');
+ }
+#line 1340 "./lexer/smarty_internal_templateparser.y"
+ function yy_r193(){
+ $this->_retvalue = new Smarty_Internal_ParseTree_Code('(string)('.$this->yystack[$this->yyidx + -1]->minor.')');
+ }
+#line 1344 "./lexer/smarty_internal_templateparser.y"
+ function yy_r194(){
+ $this->_retvalue = new Smarty_Internal_ParseTree_Tag($this, $this->yystack[$this->yyidx + 0]->minor);
+ }
+#line 1348 "./lexer/smarty_internal_templateparser.y"
+ function yy_r195(){
+ $this->_retvalue = new Smarty_Internal_ParseTree_DqContent($this->yystack[$this->yyidx + 0]->minor);
+ }
+
+ private $_retvalue;
+
+ public function yy_reduce($yyruleno)
+ {
+ if ($this->yyTraceFILE && $yyruleno >= 0
+ && $yyruleno < count(self::$yyRuleName)) {
+ fprintf($this->yyTraceFILE, "%sReduce (%d) [%s].\n",
+ $this->yyTracePrompt, $yyruleno,
+ self::$yyRuleName[$yyruleno]);
+ }
+
+ $this->_retvalue = $yy_lefthand_side = null;
+ if (isset(self::$yyReduceMap[$yyruleno])) {
+ // call the action
+ $this->_retvalue = null;
+ $this->{'yy_r' . self::$yyReduceMap[$yyruleno]}();
+ $yy_lefthand_side = $this->_retvalue;
+ }
+ $yygoto = self::$yyRuleInfo[$yyruleno][0];
+ $yysize = self::$yyRuleInfo[$yyruleno][1];
+ $this->yyidx -= $yysize;
+ for ($i = $yysize; $i; $i--) {
+ // pop all of the right-hand side parameters
+ array_pop($this->yystack);
+ }
+ $yyact = $this->yy_find_reduce_action($this->yystack[$this->yyidx]->stateno, $yygoto);
+ if ($yyact < self::YYNSTATE) {
+ if (!$this->yyTraceFILE && $yysize) {
+ $this->yyidx++;
+ $x = new TP_yyStackEntry;
+ $x->stateno = $yyact;
+ $x->major = $yygoto;
+ $x->minor = $yy_lefthand_side;
+ $this->yystack[$this->yyidx] = $x;
+ } else {
+ $this->yy_shift($yyact, $yygoto, $yy_lefthand_side);
+ }
+ } elseif ($yyact == self::YYNSTATE + self::YYNRULE + 1) {
+ $this->yy_accept();
+ }
+ }
+
+ public function yy_parse_failed()
+ {
+ if ($this->yyTraceFILE) {
+ fprintf($this->yyTraceFILE, "%sFail!\n", $this->yyTracePrompt);
+ } while ($this->yyidx >= 0) {
+ $this->yy_pop_parser_stack();
+ }
+ }
+
+ public function yy_syntax_error($yymajor, $TOKEN)
+ {
+#line 200 "./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 "./lexer/smarty_internal_templateparser.y"
+
+ $this->successful = !$this->internalError;
+ $this->internalError = false;
+ $this->retvalue = $this->_retvalue;
+ }
+
+ public function doParse($yymajor, $yytokenvalue)
+ {
+ $yyerrorhit = 0; /* True if yymajor has invoked an error */
+
+ if ($this->yyidx === null || $this->yyidx < 0) {
+ $this->yyidx = 0;
+ $this->yyerrcnt = -1;
+ $x = new TP_yyStackEntry;
+ $x->stateno = 0;
+ $x->major = 0;
+ $this->yystack = array();
+ $this->yystack[] = $x;
+ }
+ $yyendofinput = ($yymajor==0);
+
+ if ($this->yyTraceFILE) {
+ fprintf($this->yyTraceFILE, "%sInput %s\n",
+ $this->yyTracePrompt, $this->yyTokenName[$yymajor]);
+ }
+
+ do {
+ $yyact = $this->yy_find_shift_action($yymajor);
+ if ($yymajor < self::YYERRORSYMBOL &&
+ !$this->yy_is_expected_token($yymajor)) {
+ // force a syntax error
+ $yyact = self::YY_ERROR_ACTION;
+ }
+ if ($yyact < self::YYNSTATE) {
+ $this->yy_shift($yyact, $yymajor, $yytokenvalue);
+ $this->yyerrcnt--;
+ if ($yyendofinput && $this->yyidx >= 0) {
+ $yymajor = 0;
+ } else {
+ $yymajor = self::YYNOCODE;
+ }
+ } elseif ($yyact < self::YYNSTATE + self::YYNRULE) {
+ $this->yy_reduce($yyact - self::YYNSTATE);
+ } elseif ($yyact == self::YY_ERROR_ACTION) {
+ if ($this->yyTraceFILE) {
+ fprintf($this->yyTraceFILE, "%sSyntax Error!\n",
+ $this->yyTracePrompt);
+ }
+ if (self::YYERRORSYMBOL) {
+ if ($this->yyerrcnt < 0) {
+ $this->yy_syntax_error($yymajor, $yytokenvalue);
+ }
+ $yymx = $this->yystack[$this->yyidx]->major;
+ if ($yymx == self::YYERRORSYMBOL || $yyerrorhit) {
+ if ($this->yyTraceFILE) {
+ fprintf($this->yyTraceFILE, "%sDiscard input token %s\n",
+ $this->yyTracePrompt, $this->yyTokenName[$yymajor]);
+ }
+ $this->yy_destructor($yymajor, $yytokenvalue);
+ $yymajor = self::YYNOCODE;
+ } else {
+ while ($this->yyidx >= 0 &&
+ $yymx != self::YYERRORSYMBOL &&
+ ($yyact = $this->yy_find_shift_action(self::YYERRORSYMBOL)) >= self::YYNSTATE
+ ){
+ $this->yy_pop_parser_stack();
+ }
+ if ($this->yyidx < 0 || $yymajor==0) {
+ $this->yy_destructor($yymajor, $yytokenvalue);
+ $this->yy_parse_failed();
+ $yymajor = self::YYNOCODE;
+ } elseif ($yymx != self::YYERRORSYMBOL) {
+ $u2 = 0;
+ $this->yy_shift($yyact, self::YYERRORSYMBOL, $u2);
+ }
+ }
+ $this->yyerrcnt = 3;
+ $yyerrorhit = 1;
+ } else {
+ if ($this->yyerrcnt <= 0) {
+ $this->yy_syntax_error($yymajor, $yytokenvalue);
+ }
+ $this->yyerrcnt = 3;
+ $this->yy_destructor($yymajor, $yytokenvalue);
+ if ($yyendofinput) {
+ $this->yy_parse_failed();
+ }
+ $yymajor = self::YYNOCODE;
+ }
+ } else {
+ $this->yy_accept();
+ $yymajor = self::YYNOCODE;
+ }
+ } while ($yymajor != self::YYNOCODE && $this->yyidx >= 0);
+ }
+}
+