source: pro-violet-viettel/sourcecode/application/third_party/Smarty/sysplugins/smarty_internal_templateparser.php @ 345

Last change on this file since 345 was 345, checked in by quyenla, 11 years ago

collaborator page

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