source: trunk/include/smarty/libs/sysplugins/smarty_internal_templateparser.php @ 23485

Last change on this file since 23485 was 23485, checked in by rvelices, 11 years ago

Smarty EOL style LF svn property

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