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