Smarty_Internal_Templateparser::yy_r30()   A
last analyzed

Complexity

Conditions 2
Paths 1

Size

Total Lines 3
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 2
nc 1
nop 0
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
3
class TP_yyStackEntry
4
{
5
    public $stateno;       /* The state-number */
6
    public $major;         /* The major token value.  This is the code
7
                     ** number for the token at this stack level */
8
    public $minor; /* The user-supplied minor token value.  This
9
                     ** is the value of the token  */
10
};
11
12
13
// line 11 "../smarty/lexer/smarty_internal_templateparser.y"
14
15
/**
16
* Smarty Template Parser Class
17
*
18
* This is the template parser.
19
* It is generated from the smarty_internal_templateparser.y file
20
* 
21
* @author Uwe Tews <[email protected]>
22
*/
23
class Smarty_Internal_Templateparser
24
{
25
// line 23 "../smarty/lexer/smarty_internal_templateparser.y"
26
27
    const ERR1 = 'Security error: Call to private object member not allowed';
28
    const ERR2 = 'Security error: Call to dynamic object member not allowed';
29
30
    /**
31
     * result status
32
     *
33
     * @var bool
34
     */
35
    public $successful = true;
36
37
    /**
38
     * return value
39
     *
40
     * @var mixed
41
     */
42
    public $retvalue = 0;
43
44
    /**
45
     * @var
46
     */
47
    public $yymajor;
48
49
    /**
50
     * last index of array variable
51
     *
52
     * @var mixed
53
     */
54
    public $last_index;
55
56
    /**
57
     * last variable name
58
     *
59
     * @var string
60
     */
61
    public $last_variable;
62
63
    /**
64
     * root parse tree buffer
65
     *
66
     * @var Smarty_Internal_ParseTree_Template
67
     */
68
    public $root_buffer;
69
70
    /**
71
     * current parse tree object
72
     *
73
     * @var Smarty_Internal_ParseTree
74
     */
75
    public $current_buffer;
76
77
    /**
78
     * lexer object
79
     *
80
     * @var Smarty_Internal_Templatelexer
81
     */
82
    public $lex;
83
84
    /**
85
     * internal error flag
86
     *
87
     * @var bool
88
     */
89
    private $internalError = false;
90
91
    /**
92
     * {strip} status
93
     *
94
     * @var bool
95
     */
96
    public $strip = false;
97
    /**
98
     * compiler object
99
     *
100
     * @var Smarty_Internal_TemplateCompilerBase
101
     */
102
    public $compiler = null;
103
104
    /**
105
     * smarty object
106
     *
107
     * @var Smarty
108
     */
109
    public $smarty = null;
110
111
    /**
112
     * template object
113
     *
114
     * @var Smarty_Internal_Template
115
     */
116
    public $template = null;
117
118
    /**
119
     * block nesting level
120
     *
121
     * @var int
122
     */
123
    public $block_nesting_level = 0;
124
125
    /**
126
     * security object
127
     *
128
     * @var Smarty_Security
129
     */
130
    public $security = null;
131
132
    /**
133
     * template prefix array
134
     *
135
     * @var \Smarty_Internal_ParseTree[]
136
     */
137
    public $template_prefix = array();
138
139
    /**
140
     * template prefix array
141
     *
142
     * @var \Smarty_Internal_ParseTree[]
143
     */
144
    public $template_postfix = array();
145
146
    /**
147
     * constructor
148
     *
149
     * @param Smarty_Internal_Templatelexer        $lex
150
     * @param Smarty_Internal_TemplateCompilerBase $compiler
151
     */
152
    public function __construct(Smarty_Internal_Templatelexer $lex, Smarty_Internal_TemplateCompilerBase $compiler)
153
    {
154
        $this->lex = $lex;
155
        $this->compiler = $compiler;
156
        $this->template = $this->compiler->template;
157
        $this->smarty = $this->template->smarty;
158
        $this->security = isset($this->smarty->security_policy) ? $this->smarty->security_policy : false;
0 ignored issues
show
Documentation Bug introduced by
It seems like IssetNode ? $this->smart...security_policy : false can also be of type false. However, the property $security is declared as type Smarty_Security. Maybe add an additional type check?

Our type inference engine has found a suspicous assignment of a value to a property. This check raises an issue when a value that can be of a mixed type is assigned to a property that is type hinted more strictly.

For example, imagine you have a variable $accountId that can either hold an Id object or false (if there is no account id yet). Your code now assigns that value to the id property of an instance of the Account class. This class holds a proper account, so the id value must no longer be false.

Either this assignment is in error or a type check should be added for that assignment.

class Id
{
    public $id;

    public function __construct($id)
    {
        $this->id = $id;
    }

}

class Account
{
    /** @var  Id $id */
    public $id;
}

$account_id = false;

if (starsAreRight()) {
    $account_id = new Id(42);
}

$account = new Account();
if ($account instanceof Id)
{
    $account->id = $account_id;
}
Loading history...
159
        $this->current_buffer = $this->root_buffer = new Smarty_Internal_ParseTree_Template();
160
    }
161
162
     /**
163
     * insert PHP code in current buffer
164
     *
165
     * @param string $code
166
     */
167
    public function insertPhpCode($code)
168
    {
169
        $this->current_buffer->append_subtree($this, new Smarty_Internal_ParseTree_Tag($this, $code));
0 ignored issues
show
Bug introduced by
The method append_subtree() does not exist on Smarty_Internal_ParseTree. It seems like you code against a sub-type of Smarty_Internal_ParseTree such as Smarty_Internal_ParseTree_Template or Smarty_Internal_ParseTree_Dq. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

169
        $this->current_buffer->/** @scrutinizer ignore-call */ 
170
                               append_subtree($this, new Smarty_Internal_ParseTree_Tag($this, $code));
Loading history...
170
    }
171
172
    /**
173
     * error rundown
174
     *
175
     */
176
    public function errorRunDown()
177
    {
178
        while ($this->yystack !== array()) {
179
            $this->yy_pop_parser_stack();
180
        }
181
        if (is_resource($this->yyTraceFILE)) {
182
            fclose($this->yyTraceFILE);
183
        }
184
    }
185
186
    /**
187
     *  merge PHP code with prefix code and return parse tree tag object
188
     *
189
     * @param string $code
190
     *
191
     * @return Smarty_Internal_ParseTree_Tag
192
     */
193
    public function mergePrefixCode($code)
194
    {
195
        $tmp = '';
196
        foreach ($this->compiler->prefix_code as $preCode) {
197
            $tmp .= $preCode;
198
        }
199
        $this->compiler->prefix_code = array();
200
        $tmp .= $code;
201
        return new Smarty_Internal_ParseTree_Tag($this, $this->compiler->processNocacheCode($tmp, true));
202
    }
203
204
205
    const TP_VERT                           =  1;
206
    const TP_COLON                          =  2;
207
    const TP_TEXT                           =  3;
208
    const TP_STRIPON                        =  4;
209
    const TP_STRIPOFF                       =  5;
210
    const TP_LITERALSTART                   =  6;
211
    const TP_LITERALEND                     =  7;
212
    const TP_LITERAL                        =  8;
213
    const TP_SIMPELOUTPUT                   =  9;
214
    const TP_SIMPLETAG                      = 10;
215
    const TP_SMARTYBLOCKCHILDPARENT         = 11;
216
    const TP_LDEL                           = 12;
217
    const TP_RDEL                           = 13;
218
    const TP_DOLLARID                       = 14;
219
    const TP_EQUAL                          = 15;
220
    const TP_ID                             = 16;
221
    const TP_PTR                            = 17;
222
    const TP_LDELMAKENOCACHE                = 18;
223
    const TP_LDELIF                         = 19;
224
    const TP_LDELFOR                        = 20;
225
    const TP_SEMICOLON                      = 21;
226
    const TP_INCDEC                         = 22;
227
    const TP_TO                             = 23;
228
    const TP_STEP                           = 24;
229
    const TP_LDELFOREACH                    = 25;
230
    const TP_SPACE                          = 26;
231
    const TP_AS                             = 27;
232
    const TP_APTR                           = 28;
233
    const TP_LDELSETFILTER                  = 29;
234
    const TP_CLOSETAG                       = 30;
235
    const TP_LDELSLASH                      = 31;
236
    const TP_ATTR                           = 32;
237
    const TP_INTEGER                        = 33;
238
    const TP_COMMA                          = 34;
239
    const TP_OPENP                          = 35;
240
    const TP_CLOSEP                         = 36;
241
    const TP_MATH                           = 37;
242
    const TP_UNIMATH                        = 38;
243
    const TP_ISIN                           = 39;
244
    const TP_QMARK                          = 40;
245
    const TP_NOT                            = 41;
246
    const TP_TYPECAST                       = 42;
247
    const TP_HEX                            = 43;
248
    const TP_DOT                            = 44;
249
    const TP_INSTANCEOF                     = 45;
250
    const TP_SINGLEQUOTESTRING              = 46;
251
    const TP_DOUBLECOLON                    = 47;
252
    const TP_NAMESPACE                      = 48;
253
    const TP_AT                             = 49;
254
    const TP_HATCH                          = 50;
255
    const TP_OPENB                          = 51;
256
    const TP_CLOSEB                         = 52;
257
    const TP_DOLLAR                         = 53;
258
    const TP_LOGOP                          = 54;
259
    const TP_SLOGOP                         = 55;
260
    const TP_TLOGOP                         = 56;
261
    const TP_SINGLECOND                     = 57;
262
    const TP_ARRAYOPEN                      = 58;
263
    const TP_QUOTE                          = 59;
264
    const TP_BACKTICK                       = 60;
265
    const YY_NO_ACTION = 514;
266
    const YY_ACCEPT_ACTION = 513;
267
    const YY_ERROR_ACTION = 512;
268
269
    const YY_SZ_ACTTAB = 1997;
270
public static $yy_action = array(
271
    249,  250,  239,    1,   27,  127,  220,  184,  160,  213,
272
     11,   54,  278,   10,  173,   34,  108,  387,  282,  279,
273
    223,  321,  221,    8,  194,  387,   18,  387,   85,   41,
274
    387,  285,   42,   44,  264,  222,  387,  209,  387,  198,
275
    387,   52,    5,  307,  288,  288,  164,  283,  224,    4,
276
     50,  249,  250,  239,    1,  232,  131,  381,  189,  205,
277
    213,   11,   54,   39,   35,  243,   31,  108,   94,   17,
278
    381,  223,  321,  221,  439,  226,  381,   33,   49,  426,
279
     41,  439,   89,   42,   44,  264,  222,    9,  235,  163,
280
    198,  426,   52,    5,  131,  288,  212,  284,  102,  106,
281
      4,   50,  249,  250,  239,    1,  232,  129,  426,  189,
282
    347,  213,   11,   54,  175,  324,  347,  208,  108,   22,
283
    426,  301,  223,  321,  221,  302,  226,  135,   18,   49,
284
     52,   41,   26,  288,   42,   44,  264,  222,   16,  235,
285
    294,  198,  204,   52,    5,  170,  288,   32,   90,  267,
286
    268,    4,   50,  249,  250,  239,    1,   20,  129,  185,
287
    179,  255,  213,   11,   54,  455,  288,  192,  455,  108,
288
    175,  167,  455,  223,  321,  221,  439,  226,  256,   18,
289
     55,  292,   41,  439,  132,   42,   44,  264,  222,  427,
290
    235,   12,  198,  165,   52,    5,  232,  288,  288,  347,
291
    153,  427,    4,   50,  249,  250,  239,    1,  232,  129,
292
    286,  181,  347,  213,   11,   54,   24,   13,  347,   49,
293
    108,  232,  320,  426,  223,  321,  221,  195,  201,  173,
294
     18,   49,  139,   41,  296,  426,   42,   44,  264,  222,
295
      7,  235,  286,  198,   49,   52,    5,  147,  288,  117,
296
    150,  317,  263,    4,   50,  249,  250,  239,    1,   95,
297
    130,  173,  189,  155,  213,   11,   54,   22,  244,  271,
298
    192,  108,  323,  286,  101,  223,  321,  221,  294,  226,
299
    204,   18,  348,  257,   41,  166,  283,   42,   44,  264,
300
    222,   28,  235,  300,  198,  348,   52,    5,  247,  288,
301
    117,  348,   94,  206,    4,   50,  249,  250,  239,    1,
302
     95,  129,   22,  189,  277,  213,   11,   54,   91,  274,
303
    224,  426,  108,  323,  216,  156,  223,  321,  221,  132,
304
    180,  262,   18,  426,  100,   41,   12,  288,   42,   44,
305
    264,  222,   15,  235,  216,  198,  254,   52,    5,  233,
306
    288,  210,  190,  192,  100,    4,   50,  249,  250,  239,
307
      1,    3,  131,   94,  189,  192,  213,   11,   54,  269,
308
     10,  204,  290,  108,  325,  216,  224,  223,  321,  221,
309
     23,  226,  211,   33,  315,  100,   45,  513,   92,   42,
310
     44,  264,  222,  102,  235,  178,  198,  268,   52,    5,
311
    275,  288,  161,  192,   37,   25,    4,   50,  249,  250,
312
    239,    1,  286,  129,  172,  187,  305,  213,   11,   54,
313
    164,  283,  310,  141,  108,  281,  281,  236,  223,  321,
314
    221,  169,  226,  230,   18,  122,  171,   41,  225,  175,
315
     42,   44,  264,  222,  144,  235,  303,  198,  134,   52,
316
      5,  265,  288,  151,  286,  192,  175,    4,   50,  249,
317
    250,  239,    1,  286,  128,   94,  189,  143,  213,   11,
318
     54,  219,  152,  207,  193,  108,  149,  281,   31,  223,
319
    321,  221,  100,  226,   21,    6,  286,  288,   41,  158,
320
     16,   42,   44,  264,  222,  102,  235,  238,  198,  286,
321
     52,    5,  157,  288,  281,  122,  168,  283,    4,   50,
322
    249,  250,  239,    1,   30,   93,  308,   51,  215,  213,
323
     11,   54,   53,  251,  140,  248,  108,  245,  304,  116,
324
    223,  321,  221,  111,  226,  176,   18,  270,  266,   41,
325
    224,  322,   42,   44,  264,  222,    7,  235,  259,  198,
326
    147,   52,    5,  257,  288,   43,   40,   38,   83,    4,
327
     50,  241,  214,  204,  319,  280,   88,  107,  138,  182,
328
     97,   64,  311,  312,  313,  316,   95,  281,  298,  258,
329
    142,  234,   94,  105,  272,  197,  231,  482,  237,  323,
330
     37,  133,  324,  241,  214,  204,  319,  314,   88,  107,
331
    296,  183,   97,   82,   84,   43,   40,   38,   95,  296,
332
    296,  258,  296,  296,  296,  159,  272,  197,  231,  296,
333
    237,  323,  311,  312,  313,  316,  241,  296,  204,  296,
334
    296,  103,  296,  296,  199,  104,   77,  296,  296,  110,
335
    296,   95,  296,  296,  258,  278,  296,  296,   34,  272,
336
    197,  231,  279,  237,  323,   43,   40,   38,  296,  296,
337
    296,  241,   26,  204,  196,  276,  103,  296,   16,  199,
338
    104,   77,  311,  312,  313,  316,   95,  192,  296,  258,
339
    146,  296,  296,  296,  272,  197,  231,  296,  237,  323,
340
    286,  393,   39,   35,  243,  296,  296,  296,  296,  191,
341
    276,  296,   26,  318,  252,  253,  126,  296,   16,  249,
342
    250,  239,    1,  296,  296,  131,  296,  261,  213,   11,
343
     54,  296,  296,  296,  426,  108,  393,  393,  393,  223,
344
    321,  221,  241,  296,  204,  299,  426,  103,  107,  296,
345
    183,   97,   82,  393,  393,  393,  393,   95,  296,  260,
346
    258,   52,  296,  296,  288,  272,  197,  231,  296,  237,
347
    323,  293,  296,  296,  296,  296,  296,  249,  250,  239,
348
      2,  296,  295,  296,  296,  296,  213,   11,   54,  296,
349
    296,  177,  296,  108,  136,  296,  296,  223,  321,  221,
350
    296,  296,  296,  293,   43,   40,   38,  296,  296,  249,
351
    250,  239,    2,  296,  295,   43,   40,   38,  213,   11,
352
     54,  311,  312,  313,  316,  108,  296,  291,   14,  223,
353
    321,  221,  311,  312,  313,  316,  296,  296,  241,  296,
354
    204,  296,  192,  103,  296,  296,  199,  104,   77,  296,
355
    296,  296,  296,   95,  383,  296,  258,  296,  296,  297,
356
     14,  272,  197,  231,  296,  237,  323,  383,  296,  296,
357
    241,  296,  204,  383,  296,   99,  296,  287,  199,  120,
358
     48,  241,  112,  204,  296,   95,  103,  296,  258,  199,
359
    120,   74,  296,  272,  197,  231,   95,  237,  323,  258,
360
    455,  296,  296,  455,  272,  197,  231,  455,  237,  323,
361
    241,  296,  204,  296,  296,  103,  200,  296,  199,  120,
362
     74,  296,  296,  296,  296,   95,  296,  296,  258,  278,
363
    296,  296,   34,  272,  197,  231,  279,  237,  323,  241,
364
    455,  204,  296,  296,   99,  202,  296,  199,  120,   56,
365
    241,  211,  204,  296,   95,  103,  296,  258,  199,  120,
366
     74,  296,  272,  197,  231,   95,  237,  323,  258,  227,
367
    296,  296,  296,  272,  197,  231,  296,  237,  323,  241,
368
    296,  204,  148,  296,  103,  203,   86,  199,  120,   73,
369
    296,  296,  286,  296,   95,  296,  296,  258,  278,  296,
370
    296,   34,  272,  197,  231,  279,  237,  323,  241,  296,
371
    204,  175,  296,  103,  296,  296,  199,  120,   75,  241,
372
    296,  204,  296,   95,  103,  296,  258,  199,  120,   63,
373
    296,  272,  197,  231,   95,  237,  323,  258,  229,  192,
374
    296,  296,  272,  197,  231,  296,  237,  323,  241,  296,
375
    204,  380,  296,  103,  296,  296,  199,  120,   58,  296,
376
    296,  296,  296,   95,  380,  296,  258,  296,  296,  296,
377
    380,  272,  197,  231,  296,  237,  323,  241,  296,  204,
378
    296,  296,  103,  296,  296,  199,  120,   71,  241,  296,
379
    204,  296,   95,  103,  296,  258,  199,  120,   79,  296,
380
    272,  197,  231,   95,  237,  323,  258,  296,  296,  296,
381
    154,  272,  197,  231,   87,  237,  323,  241,  296,  204,
382
    286,  296,  103,  296,  296,  199,  120,   70,  296,  296,
383
    296,  296,   95,  296,  296,  258,  296,  296,  296,  175,
384
    272,  197,  231,  296,  237,  323,  241,  296,  204,  296,
385
    296,  103,  296,  296,  199,  120,   56,  241,  296,  204,
386
    296,   95,  103,  296,  258,  199,  120,   46,  296,  272,
387
    197,  231,   95,  237,  323,  258,  296,  296,  296,  296,
388
    272,  197,  231,  296,  237,  323,  241,  296,  204,  296,
389
    296,  103,  296,  296,  199,  120,   78,  296,  296,  296,
390
    296,   95,  296,  296,  258,  296,  296,  296,  296,  272,
391
    197,  231,  296,  237,  323,  241,  296,  204,  296,  296,
392
    103,  296,  296,  199,  120,   66,  241,  296,  204,  296,
393
     95,  103,  296,  258,  199,  120,   59,  296,  272,  197,
394
    231,   95,  237,  323,  258,  296,  296,  296,  296,  272,
395
    197,  231,  296,  237,  323,  241,  296,  204,  296,  296,
396
    103,  296,  296,  186,  109,   57,  296,  296,  296,  296,
397
     95,  296,  296,  258,  296,  296,  296,  296,  272,  197,
398
    231,  296,  237,  323,  241,  296,  204,  296,  296,  103,
399
    296,  296,  188,  120,   67,  241,  296,  204,  296,   95,
400
    103,  296,  258,  199,   96,   62,  296,  272,  197,  231,
401
     95,  237,  323,  258,  296,  296,  296,  296,  272,  197,
402
    231,  296,  237,  323,  241,  296,  204,  296,  296,  103,
403
    296,  296,  199,  120,   80,  296,  296,  296,  296,   95,
404
    296,  296,  258,  296,  296,  296,  296,  272,  197,  231,
405
    296,  237,  323,  241,  296,  204,  296,  296,  103,  296,
406
    296,  199,  120,   76,  241,  296,  204,  296,   95,  103,
407
    296,  258,  199,  120,   81,  296,  272,  197,  231,   95,
408
    237,  323,  258,  296,  296,  296,  296,  272,  197,  231,
409
    296,  237,  323,  241,  296,  204,  296,  296,  103,  296,
410
    296,  199,  120,   65,  296,  296,  296,  296,   95,  296,
411
    296,  258,  296,  296,  296,  296,  272,  197,  231,  296,
412
    237,  323,  241,  296,  204,  296,  296,  103,  296,  296,
413
    199,   96,   68,  241,  296,  204,  296,   95,  103,  296,
414
    258,  199,  120,   61,  296,  272,  197,  231,   95,  237,
415
    323,  258,  296,  296,  296,  296,  272,  197,  231,  296,
416
    237,  323,  241,  296,  204,  296,  296,  103,  296,  296,
417
    199,   98,   69,  296,  296,  296,  296,   95,  296,  296,
418
    258,  296,  296,  296,  296,  272,  197,  231,  296,  237,
419
    323,  241,  296,  204,  296,  296,  103,  296,  296,  199,
420
    120,   72,  241,  296,  204,  296,   95,  103,  296,  258,
421
    199,  120,   47,  296,  272,  197,  231,   95,  237,  323,
422
    258,  296,  296,  296,  296,  272,  197,  231,  296,  237,
423
    323,  241,  192,  204,  296,  296,  103,  296,  296,  199,
424
    120,   60,  296,  296,  351,  296,   95,  296,  217,  258,
425
    296,  296,  296,  296,  272,  197,  231,   26,  237,  323,
426
    241,  296,  204,   16,  296,  103,  426,  296,  199,  125,
427
    296,  241,  296,  204,  296,   95,  103,  296,  426,  199,
428
    118,  296,  242,  272,  197,  231,   95,  237,  323,  296,
429
    296,  296,  296,  246,  272,  197,  231,  296,  237,  323,
430
    241,  296,  204,  278,  296,  103,   34,  296,  199,  121,
431
    279,  296,  296,  296,  296,   95,  296,  296,  296,  296,
432
     26,  296,  162,  272,  197,  231,   16,  237,  323,  241,
433
    296,  204,  296,  296,  103,  296,  296,  199,  123,  296,
434
    241,  296,  204,  296,   95,  103,  296,  296,  199,  114,
435
    296,  296,  272,  197,  231,   95,  237,  323,  296,  296,
436
    296,  296,  296,  272,  197,  231,  296,  237,  323,  241,
437
    296,  204,  296,  145,  103,  296,  296,  199,  124,  296,
438
    296,  296,  296,  286,   95,   39,   35,  243,  296,  296,
439
    296,  296,  272,  197,  231,  296,  237,  323,  241,  296,
440
    204,  296,  296,  103,  296,  296,  199,  115,  296,  241,
441
    296,  204,  296,   95,  103,  296,  296,  199,  113,  296,
442
    296,  272,  197,  231,   95,  237,  323,  296,  296,  296,
443
    296,  296,  272,  197,  231,  228,  237,  323,  241,  296,
444
    204,  296,  455,  103,  296,  455,  199,  119,    3,  455,
445
    439,  296,  296,   95,  296,  296,  296,  296,  296,  296,
446
    296,  272,  197,  231,  228,  237,  323,  296,  296,  296,
447
    296,  455,  296,  296,  455,  296,  296,  439,  455,  439,
448
    439,  228,  455,  296,  439,  296,  296,  137,  455,  296,
449
    296,  455,  296,  296,   32,  455,  439,  286,  296,   39,
450
     35,  243,   29,  296,   26,  296,  439,  296,  296,  439,
451
     16,  455,  296,  439,  306,   43,   40,   38,  296,  296,
452
    296,  296,  296,  439,  296,  296,  439,  296,  455,  296,
453
    439,   26,  311,  312,  313,  316,  296,   16,  228,  296,
454
    296,  296,   43,   40,   38,  455,  296,  296,  455,  296,
455
    296,  296,  455,  439,  296,  296,   19,  296,  296,  311,
456
    312,  313,  316,  455,  296,  296,  455,  296,  296,  296,
457
    455,  439,  296,  296,  296,   43,   40,   38,  296,  296,
458
    439,  296,  296,  439,  174,  455,  296,  439,  296,  240,
459
    309,  296,  311,  312,  313,  316,  296,  289,  439,  296,
460
     36,  439,  296,  455,  296,  439,  296,  296,   43,   40,
461
     38,  296,  296,   43,   40,   38,  296,  296,  296,  296,
462
    296,   43,   40,   38,  296,  311,  312,  313,  316,  296,
463
    311,  312,  313,  316,  296,   43,   40,   38,  311,  312,
464
    313,  316,  273,   43,   40,   38,  296,  296,  296,  296,
465
    296,  296,  311,  312,  313,  316,  296,  296,  296,  296,
466
    311,  312,  313,  316,  455,  296,  296,  455,   43,   40,
467
     38,  455,  439,  218,   43,   40,   38,  296,  296,  296,
468
    296,  296,  296,  296,  296,  311,  312,  313,  316,  296,
469
    296,  311,  312,  313,  316,  296,  296,  296,  296,  439,
470
    296,  296,  439,  296,  455,  296,  439,
471
    );
472
    public static $yy_lookahead = array(
473
      9,   10,   11,   12,   12,   14,   14,   16,   16,   18,
474
     19,   20,    9,   34,  102,   12,   25,   13,   70,   16,
475
     29,   30,   31,   35,   33,   21,   35,   23,   95,   38,
476
     26,   52,   41,   42,   43,   44,   32,   46,   34,   48,
477
     36,   50,   51,   52,   53,   53,   98,   99,   44,   58,
478
     59,    9,   10,   11,   12,   22,   14,   13,   16,   15,
479
     18,   19,   20,   85,   86,   87,   15,   25,   17,   21,
480
     26,   29,   30,   31,   44,   33,   32,   35,   45,   35,
481
     38,   51,   34,   41,   42,   43,   44,   35,   46,   77,
482
     48,   47,   50,   51,   14,   53,   16,   13,   47,   47,
483
     58,   59,    9,   10,   11,   12,   22,   14,   35,   16,
484
     26,   18,   19,   20,  102,  103,   32,   44,   25,   34,
485
     47,   36,   29,   30,   31,   52,   33,   14,   35,   45,
486
     50,   38,   26,   53,   41,   42,   43,   44,   32,   46,
487
     66,   48,   68,   50,   51,   77,   53,   15,   35,    7,
488
      8,   58,   59,    9,   10,   11,   12,   12,   14,   14,
489
     16,   16,   18,   19,   20,    9,   53,    1,   12,   25,
490
    102,   82,   16,   29,   30,   31,   44,   33,   33,   35,
491
    106,  107,   38,   51,   44,   41,   42,   43,   44,   35,
492
     46,   51,   48,   82,   50,   51,   22,   53,   53,   13,
493
     73,   47,   58,   59,    9,   10,   11,   12,   22,   14,
494
     83,   16,   26,   18,   19,   20,   28,   12,   32,   45,
495
     25,   22,   70,   35,   29,   30,   31,   65,   33,  102,
496
     35,   45,   73,   38,   60,   47,   41,   42,   43,   44,
497
     35,   46,   83,   48,   45,   50,   51,   95,   53,   71,
498
     95,   52,   74,   58,   59,    9,   10,   11,   12,   81,
499
     14,  102,   16,   73,   18,   19,   20,   34,   90,   36,
500
      1,   25,   94,   83,   81,   29,   30,   31,   66,   33,
501
     68,   35,   13,   96,   38,   98,   99,   41,   42,   43,
502
     44,   15,   46,  100,   48,   26,   50,   51,   14,   53,
503
     71,   32,   17,   74,   58,   59,    9,   10,   11,   12,
504
     81,   14,   34,   16,   36,   18,   19,   20,   82,  107,
505
     44,   35,   25,   94,   71,   95,   29,   30,   31,   44,
506
     33,   78,   35,   47,   81,   38,   51,   53,   41,   42,
507
     43,   44,   15,   46,   71,   48,   16,   50,   51,   22,
508
     53,   78,   79,    1,   81,   58,   59,    9,   10,   11,
509
     12,   15,   14,   17,   16,    1,   18,   19,   20,   66,
510
     34,   68,   36,   25,   16,   71,   44,   29,   30,   31,
511
     28,   33,   78,   35,   52,   81,   38,   62,   63,   41,
512
     42,   43,   44,   47,   46,    6,   48,    8,   50,   51,
513
     16,   53,   73,    1,    2,   40,   58,   59,    9,   10,
514
     11,   12,   83,   14,   77,   16,   52,   18,   19,   20,
515
     98,   99,   52,   95,   25,   97,   97,   92,   29,   30,
516
     31,   77,   33,   49,   35,  100,   14,   38,   16,  102,
517
     41,   42,   43,   44,   73,   46,   14,   48,   14,   50,
518
     51,   36,   53,   73,   83,    1,  102,   58,   59,    9,
519
     10,   11,   12,   83,   14,   17,   16,   50,   18,   19,
520
     20,   17,   71,   64,   65,   25,   73,   97,   15,   29,
521
     30,   31,   81,   33,   26,   35,   83,   53,   38,   73,
522
     32,   41,   42,   43,   44,   47,   46,   92,   48,   83,
523
     50,   51,   95,   53,   97,  100,   98,   99,   58,   59,
524
      9,   10,   11,   12,   23,   14,   52,   16,   16,   18,
525
     19,   20,   16,    7,   50,   16,   25,   13,   13,   16,
526
     29,   30,   31,   16,   33,   16,   35,   33,   33,   38,
527
     44,   16,   41,   42,   43,   44,   35,   46,   16,   48,
528
     95,   50,   51,   96,   53,   37,   38,   39,   81,   58,
529
     59,   66,   67,   68,   69,   83,   71,   72,   95,   74,
530
     75,   76,   54,   55,   56,   57,   81,   97,   60,   84,
531
     95,   13,   17,   80,   89,   90,   91,    1,   93,   94,
532
      2,   81,  103,   66,   67,   68,   69,   99,   71,   72,
533
    108,   74,   75,   76,   81,   37,   38,   39,   81,  108,
534
    108,   84,  108,  108,  108,   95,   89,   90,   91,  108,
535
     93,   94,   54,   55,   56,   57,   66,  108,   68,  108,
536
    108,   71,  108,  108,   74,   75,   76,  108,  108,   21,
537
    108,   81,  108,  108,   84,    9,  108,  108,   12,   89,
538
     90,   91,   16,   93,   94,   37,   38,   39,  108,  108,
539
    108,   66,   26,   68,  104,  105,   71,  108,   32,   74,
540
     75,   76,   54,   55,   56,   57,   81,    1,  108,   84,
541
     73,  108,  108,  108,   89,   90,   91,  108,   93,   94,
542
     83,    2,   85,   86,   87,  108,  108,  108,  108,  104,
543
    105,  108,   26,    3,    4,    5,    6,  108,   32,    9,
544
     10,   11,   12,  108,  108,   14,  108,   16,   18,   19,
545
     20,  108,  108,  108,   35,   25,   37,   38,   39,   29,
546
     30,   31,   66,  108,   68,   69,   47,   71,   72,  108,
547
     74,   75,   76,   54,   55,   56,   57,   81,  108,   48,
548
     84,   50,  108,  108,   53,   89,   90,   91,  108,   93,
549
     94,    3,  108,  108,  108,  108,  108,    9,   10,   11,
550
     12,  108,   14,  108,  108,  108,   18,   19,   20,  108,
551
    108,   13,  108,   25,   27,  108,  108,   29,   30,   31,
552
    108,  108,  108,    3,   37,   38,   39,  108,  108,    9,
553
     10,   11,   12,  108,   14,   37,   38,   39,   18,   19,
554
     20,   54,   55,   56,   57,   25,  108,   59,   60,   29,
555
     30,   31,   54,   55,   56,   57,  108,  108,   66,  108,
556
     68,  108,    1,   71,  108,  108,   74,   75,   76,  108,
557
    108,  108,  108,   81,   13,  108,   84,  108,  108,   59,
558
     60,   89,   90,   91,  108,   93,   94,   26,  108,  108,
559
     66,  108,   68,   32,  108,   71,  108,  105,   74,   75,
560
     76,   66,   78,   68,  108,   81,   71,  108,   84,   74,
561
     75,   76,  108,   89,   90,   91,   81,   93,   94,   84,
562
      9,  108,  108,   12,   89,   90,   91,   16,   93,   94,
563
     66,  108,   68,  108,  108,   71,  101,  108,   74,   75,
564
     76,  108,  108,  108,  108,   81,  108,  108,   84,    9,
565
    108,  108,   12,   89,   90,   91,   16,   93,   94,   66,
566
     49,   68,  108,  108,   71,  101,  108,   74,   75,   76,
567
     66,   78,   68,  108,   81,   71,  108,   84,   74,   75,
568
     76,  108,   89,   90,   91,   81,   93,   94,   84,   49,
569
    108,  108,  108,   89,   90,   91,  108,   93,   94,   66,
570
    108,   68,   73,  108,   71,  101,   77,   74,   75,   76,
571
    108,  108,   83,  108,   81,  108,  108,   84,    9,  108,
572
    108,   12,   89,   90,   91,   16,   93,   94,   66,  108,
573
     68,  102,  108,   71,  108,  108,   74,   75,   76,   66,
574
    108,   68,  108,   81,   71,  108,   84,   74,   75,   76,
575
    108,   89,   90,   91,   81,   93,   94,   84,   49,    1,
576
    108,  108,   89,   90,   91,  108,   93,   94,   66,  108,
577
     68,   13,  108,   71,  108,  108,   74,   75,   76,  108,
578
    108,  108,  108,   81,   26,  108,   84,  108,  108,  108,
579
     32,   89,   90,   91,  108,   93,   94,   66,  108,   68,
580
    108,  108,   71,  108,  108,   74,   75,   76,   66,  108,
581
     68,  108,   81,   71,  108,   84,   74,   75,   76,  108,
582
     89,   90,   91,   81,   93,   94,   84,  108,  108,  108,
583
     73,   89,   90,   91,   77,   93,   94,   66,  108,   68,
584
     83,  108,   71,  108,  108,   74,   75,   76,  108,  108,
585
    108,  108,   81,  108,  108,   84,  108,  108,  108,  102,
586
     89,   90,   91,  108,   93,   94,   66,  108,   68,  108,
587
    108,   71,  108,  108,   74,   75,   76,   66,  108,   68,
588
    108,   81,   71,  108,   84,   74,   75,   76,  108,   89,
589
     90,   91,   81,   93,   94,   84,  108,  108,  108,  108,
590
     89,   90,   91,  108,   93,   94,   66,  108,   68,  108,
591
    108,   71,  108,  108,   74,   75,   76,  108,  108,  108,
592
    108,   81,  108,  108,   84,  108,  108,  108,  108,   89,
593
     90,   91,  108,   93,   94,   66,  108,   68,  108,  108,
594
     71,  108,  108,   74,   75,   76,   66,  108,   68,  108,
595
     81,   71,  108,   84,   74,   75,   76,  108,   89,   90,
596
     91,   81,   93,   94,   84,  108,  108,  108,  108,   89,
597
     90,   91,  108,   93,   94,   66,  108,   68,  108,  108,
598
     71,  108,  108,   74,   75,   76,  108,  108,  108,  108,
599
     81,  108,  108,   84,  108,  108,  108,  108,   89,   90,
600
     91,  108,   93,   94,   66,  108,   68,  108,  108,   71,
601
    108,  108,   74,   75,   76,   66,  108,   68,  108,   81,
602
     71,  108,   84,   74,   75,   76,  108,   89,   90,   91,
603
     81,   93,   94,   84,  108,  108,  108,  108,   89,   90,
604
     91,  108,   93,   94,   66,  108,   68,  108,  108,   71,
605
    108,  108,   74,   75,   76,  108,  108,  108,  108,   81,
606
    108,  108,   84,  108,  108,  108,  108,   89,   90,   91,
607
    108,   93,   94,   66,  108,   68,  108,  108,   71,  108,
608
    108,   74,   75,   76,   66,  108,   68,  108,   81,   71,
609
    108,   84,   74,   75,   76,  108,   89,   90,   91,   81,
610
     93,   94,   84,  108,  108,  108,  108,   89,   90,   91,
611
    108,   93,   94,   66,  108,   68,  108,  108,   71,  108,
612
    108,   74,   75,   76,  108,  108,  108,  108,   81,  108,
613
    108,   84,  108,  108,  108,  108,   89,   90,   91,  108,
614
     93,   94,   66,  108,   68,  108,  108,   71,  108,  108,
615
     74,   75,   76,   66,  108,   68,  108,   81,   71,  108,
616
     84,   74,   75,   76,  108,   89,   90,   91,   81,   93,
617
     94,   84,  108,  108,  108,  108,   89,   90,   91,  108,
618
     93,   94,   66,  108,   68,  108,  108,   71,  108,  108,
619
     74,   75,   76,  108,  108,  108,  108,   81,  108,  108,
620
     84,  108,  108,  108,  108,   89,   90,   91,  108,   93,
621
     94,   66,  108,   68,  108,  108,   71,  108,  108,   74,
622
     75,   76,   66,  108,   68,  108,   81,   71,  108,   84,
623
     74,   75,   76,  108,   89,   90,   91,   81,   93,   94,
624
     84,  108,  108,  108,  108,   89,   90,   91,  108,   93,
625
     94,   66,    1,   68,  108,  108,   71,  108,  108,   74,
626
     75,   76,  108,  108,   13,  108,   81,  108,   17,   84,
627
    108,  108,  108,  108,   89,   90,   91,   26,   93,   94,
628
     66,  108,   68,   32,  108,   71,   35,  108,   74,   75,
629
    108,   66,  108,   68,  108,   81,   71,  108,   47,   74,
630
     75,  108,   88,   89,   90,   91,   81,   93,   94,  108,
631
    108,  108,  108,   88,   89,   90,   91,  108,   93,   94,
632
     66,  108,   68,    9,  108,   71,   12,  108,   74,   75,
633
     16,  108,  108,  108,  108,   81,  108,  108,  108,  108,
634
     26,  108,   28,   89,   90,   91,   32,   93,   94,   66,
635
    108,   68,  108,  108,   71,  108,  108,   74,   75,  108,
636
     66,  108,   68,  108,   81,   71,  108,  108,   74,   75,
637
    108,  108,   89,   90,   91,   81,   93,   94,  108,  108,
638
    108,  108,  108,   89,   90,   91,  108,   93,   94,   66,
639
    108,   68,  108,   73,   71,  108,  108,   74,   75,  108,
640
    108,  108,  108,   83,   81,   85,   86,   87,  108,  108,
641
    108,  108,   89,   90,   91,  108,   93,   94,   66,  108,
642
     68,  108,  108,   71,  108,  108,   74,   75,  108,   66,
643
    108,   68,  108,   81,   71,  108,  108,   74,   75,  108,
644
    108,   89,   90,   91,   81,   93,   94,  108,  108,  108,
645
    108,  108,   89,   90,   91,    2,   93,   94,   66,  108,
646
     68,  108,    9,   71,  108,   12,   74,   75,   15,   16,
647
     17,  108,  108,   81,  108,  108,  108,  108,  108,  108,
648
    108,   89,   90,   91,    2,   93,   94,  108,  108,  108,
649
    108,    9,  108,  108,   12,  108,  108,   44,   16,   17,
650
     47,    2,   49,  108,   51,  108,  108,   73,    9,  108,
651
    108,   12,  108,  108,   15,   16,   17,   83,  108,   85,
652
     86,   87,   24,  108,   26,  108,   44,  108,  108,   47,
653
     32,   49,  108,   51,   52,   37,   38,   39,  108,  108,
654
    108,  108,  108,   44,  108,  108,   47,  108,   49,  108,
655
     51,   26,   54,   55,   56,   57,  108,   32,    2,  108,
656
    108,  108,   37,   38,   39,    9,  108,  108,   12,  108,
657
    108,  108,   16,   17,  108,  108,    2,  108,  108,   54,
658
     55,   56,   57,    9,  108,  108,   12,  108,  108,  108,
659
     16,   17,  108,  108,  108,   37,   38,   39,  108,  108,
660
     44,  108,  108,   47,   13,   49,  108,   51,  108,   13,
661
     52,  108,   54,   55,   56,   57,  108,   13,   44,  108,
662
      2,   47,  108,   49,  108,   51,  108,  108,   37,   38,
663
     39,  108,  108,   37,   38,   39,  108,  108,  108,  108,
664
    108,   37,   38,   39,  108,   54,   55,   56,   57,  108,
665
     54,   55,   56,   57,  108,   37,   38,   39,   54,   55,
666
     56,   57,   36,   37,   38,   39,  108,  108,  108,  108,
667
    108,  108,   54,   55,   56,   57,  108,  108,  108,  108,
668
     54,   55,   56,   57,    9,  108,  108,   12,   37,   38,
669
     39,   16,   17,   36,   37,   38,   39,  108,  108,  108,
670
    108,  108,  108,  108,  108,   54,   55,   56,   57,  108,
671
    108,   54,   55,   56,   57,  108,  108,  108,  108,   44,
672
    108,  108,   47,  108,   49,  108,   51,
673
);
674
    const YY_SHIFT_USE_DFLT = -22;
675
    const YY_SHIFT_MAX = 230;
676
    public static $yy_shift_ofst = array(
677
    -22,  501,  501,   93,  399,  399,  450,   93,   93,   93,
678
    399,  450,   -9,   93,   93,   93,   93,   93,   93,  144,
679
     93,  195,   93,   93,   93,  246,  195,   93,   93,   93,
680
     93,   93,  297,   93,   93,   93,   93,  348,   42,   42,
681
     42,   42,   42,   42,   42,   42, 1768, 1795, 1795,  701,
682
    758, 1521,   80,  676,  113,  790, 1927, 1828, 1896,  568,
683
    768, 1861,  757, 1866, 1874, 1888,  618,  518, 1921, 1921,
684
   1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921,
685
   1921, 1921, 1921, 1584,  636,  285,  676,  676,  346,  113,
686
    113,  402,  700, 1723,   -8,  910,  831,  269, 1028,   51,
687
      3,    3,  422,  448,  352,  106,  422,  106,  458,  364,
688
    434,  454,  106,  166,  166,  166,  166,  565,  166,  166,
689
    166,  586,  565,  166,  166,  -22,  -22, 1752, 1769, 1826,
690
   1844, 1945,  145,  979,  156,  132,  284,  106,  140,  106,
691
     30,  140,  140,   30,  106,  106,  106,  140,  106,  106,
692
    140,  106,  327,  106,  106,  106,  140,  140,  106,  140,
693
    205,  106,  284,  166,  565,  588,  565,  588,  565,  166,
694
    166,  -12,  166,  -22,  -22,  -22,  -22,  -22,  -22,  689,
695
      4,   44,   84,  186,   73,  881,  199,  188,  174,  286,
696
     48,  336,  384,  389,  332,  142,  -21,   52,  154,   33,
697
     85,  276,  278,  233,  515,  509,  474,  516,  502,  464,
698
    491,  415,  417,  432,  514,  370,  463,  506,  365,  513,
699
    -12,  517,  504,  519,  505,  511,  496,  525,  532,  330,
700
    358,
701
);
702
    const YY_REDUCE_USE_DFLT = -89;
703
    const YY_REDUCE_MAX = 178;
704
    public static $yy_reduce_ofst = array(
705
    325,  527,  495,  666,  595,  560,  863,  874,  834,  805,
706
    762,  794, 1179, 1455, 1208, 1012, 1386, 1139, 1070, 1110,
707
   1150, 1219, 1248, 1277, 1288, 1317, 1346, 1357, 1415, 1426,
708
   1081, 1041, 1001,  972,  943,  932,  903, 1484, 1495, 1622,
709
   1633, 1662, 1593, 1564, 1553, 1524, 1704,  607, 1590,  178,
710
     74, 1027,  229,  899,  273,  212,  -22,  -22,  -22,  -22,
711
    -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
712
    -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
713
    -22,  -22,  -22,  380,  329,  187,  159,  127,  -52,  253,
714
    304,   12,  303,  152,  193,  328,   68,   68,   68,  322,
715
    328,  407,  405,  322,   68,  190,  335,  416,  403,   68,
716
    401,  354,  371,   68,   68,   68,  337,  322,   68,   68,
717
     68,   68,  408,   68,   68,   68,  409,  455,  455,  455,
718
    455,  455,  510,  480,  455,  455,  477,  482,  457,  482,
719
    473,  457,  457,  485,  482,  482,  482,  457,  482,  482,
720
    457,  482,  503,  482,  482,  482,  457,  457,  482,  457,
721
    520,  482,  523,  -88,  498,  489,  498,  489,  498,  -88,
722
    -88,  -67,  -88,  111,  155,   89,  236,  230,  162,
723
);
724
    public static $yyExpectedTokens = array(
725
         array(),
726
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
727
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
728
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
729
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
730
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
731
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
732
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
733
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
734
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
735
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
736
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
737
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 52, 53, 58, 59, ),
738
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
739
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
740
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
741
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
742
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
743
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
744
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
745
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
746
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
747
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
748
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
749
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
750
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
751
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
752
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
753
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
754
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
755
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
756
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
757
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
758
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
759
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
760
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
761
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
762
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
763
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
764
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
765
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
766
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
767
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
768
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
769
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
770
         array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
771
         array(24, 26, 32, 37, 38, 39, 54, 55, 56, 57, ),
772
         array(26, 32, 37, 38, 39, 54, 55, 56, 57, ),
773
         array(26, 32, 37, 38, 39, 54, 55, 56, 57, ),
774
         array(14, 16, 48, 50, 53, ),
775
         array(3, 9, 10, 11, 12, 14, 18, 19, 20, 25, 29, 30, 31, 59, 60, ),
776
         array(1, 13, 17, 26, 32, 35, 47, ),
777
         array(14, 16, 50, 53, ),
778
         array(1, 26, 32, ),
779
         array(14, 35, 53, ),
780
         array(3, 9, 10, 11, 12, 14, 18, 19, 20, 25, 29, 30, 31, 59, 60, ),
781
         array(36, 37, 38, 39, 54, 55, 56, 57, ),
782
         array(37, 38, 39, 52, 54, 55, 56, 57, ),
783
         array(36, 37, 38, 39, 54, 55, 56, 57, ),
784
         array(13, 37, 38, 39, 54, 55, 56, 57, ),
785
         array(13, 37, 38, 39, 54, 55, 56, 57, ),
786
         array(13, 37, 38, 39, 54, 55, 56, 57, ),
787
         array(27, 37, 38, 39, 54, 55, 56, 57, ),
788
         array(13, 37, 38, 39, 54, 55, 56, 57, ),
789
         array(13, 37, 38, 39, 54, 55, 56, 57, ),
790
         array(2, 37, 38, 39, 54, 55, 56, 57, ),
791
         array(21, 37, 38, 39, 54, 55, 56, 57, ),
792
         array(37, 38, 39, 54, 55, 56, 57, 60, ),
793
         array(37, 38, 39, 54, 55, 56, 57, ),
794
         array(37, 38, 39, 54, 55, 56, 57, ),
795
         array(37, 38, 39, 54, 55, 56, 57, ),
796
         array(37, 38, 39, 54, 55, 56, 57, ),
797
         array(37, 38, 39, 54, 55, 56, 57, ),
798
         array(37, 38, 39, 54, 55, 56, 57, ),
799
         array(37, 38, 39, 54, 55, 56, 57, ),
800
         array(37, 38, 39, 54, 55, 56, 57, ),
801
         array(37, 38, 39, 54, 55, 56, 57, ),
802
         array(37, 38, 39, 54, 55, 56, 57, ),
803
         array(37, 38, 39, 54, 55, 56, 57, ),
804
         array(37, 38, 39, 54, 55, 56, 57, ),
805
         array(37, 38, 39, 54, 55, 56, 57, ),
806
         array(37, 38, 39, 54, 55, 56, 57, ),
807
         array(37, 38, 39, 54, 55, 56, 57, ),
808
         array(9, 12, 16, 26, 28, 32, ),
809
         array(9, 12, 16, 26, 32, ),
810
         array(17, 44, 51, ),
811
         array(1, 26, 32, ),
812
         array(1, 26, 32, ),
813
         array(15, 17, 47, ),
814
         array(14, 35, 53, ),
815
         array(14, 35, 53, ),
816
         array(1, 2, ),
817
         array(3, 4, 5, 6, 9, 10, 11, 12, 18, 19, 20, 25, 29, 30, 31, ),
818
         array(2, 9, 12, 15, 16, 17, 44, 47, 49, 51, ),
819
         array(12, 14, 16, 53, ),
820
         array(9, 12, 16, 49, ),
821
         array(1, 13, 26, 32, ),
822
         array(1, 13, 26, 32, ),
823
         array(1, 13, 26, 32, ),
824
         array(15, 17, 47, ),
825
         array(9, 12, 16, ),
826
         array(9, 12, 16, ),
827
         array(14, 16, ),
828
         array(17, 47, ),
829
         array(1, 28, ),
830
         array(26, 32, ),
831
         array(14, 16, ),
832
         array(26, 32, ),
833
         array(26, 32, ),
834
         array(1, 52, ),
835
         array(14, 53, ),
836
         array(1, 17, ),
837
         array(26, 32, ),
838
         array(1, ),
839
         array(1, ),
840
         array(1, ),
841
         array(1, ),
842
         array(17, ),
843
         array(1, ),
844
         array(1, ),
845
         array(1, ),
846
         array(1, ),
847
         array(17, ),
848
         array(1, ),
849
         array(1, ),
850
         array(),
851
         array(),
852
         array(2, 9, 12, 16, 17, 44, 47, 49, 51, 52, ),
853
         array(2, 9, 12, 15, 16, 17, 44, 47, 49, 51, ),
854
         array(2, 9, 12, 16, 17, 44, 47, 49, 51, ),
855
         array(2, 9, 12, 16, 17, 44, 47, 49, 51, ),
856
         array(9, 12, 16, 17, 44, 47, 49, 51, ),
857
         array(12, 14, 16, 33, 53, ),
858
         array(9, 12, 16, 49, ),
859
         array(9, 12, 16, ),
860
         array(15, 44, 51, ),
861
         array(14, 53, ),
862
         array(26, 32, ),
863
         array(44, 51, ),
864
         array(26, 32, ),
865
         array(44, 51, ),
866
         array(44, 51, ),
867
         array(44, 51, ),
868
         array(44, 51, ),
869
         array(26, 32, ),
870
         array(26, 32, ),
871
         array(26, 32, ),
872
         array(44, 51, ),
873
         array(26, 32, ),
874
         array(26, 32, ),
875
         array(44, 51, ),
876
         array(26, 32, ),
877
         array(15, 22, ),
878
         array(26, 32, ),
879
         array(26, 32, ),
880
         array(26, 32, ),
881
         array(44, 51, ),
882
         array(44, 51, ),
883
         array(26, 32, ),
884
         array(44, 51, ),
885
         array(12, 35, ),
886
         array(26, 32, ),
887
         array(14, 53, ),
888
         array(1, ),
889
         array(17, ),
890
         array(2, ),
891
         array(17, ),
892
         array(2, ),
893
         array(17, ),
894
         array(1, ),
895
         array(1, ),
896
         array(35, ),
897
         array(1, ),
898
         array(),
899
         array(),
900
         array(),
901
         array(),
902
         array(),
903
         array(),
904
         array(2, 35, 37, 38, 39, 47, 54, 55, 56, 57, ),
905
         array(13, 21, 23, 26, 32, 34, 36, 44, ),
906
         array(13, 15, 26, 32, 35, 47, ),
907
         array(13, 22, 26, 32, 45, ),
908
         array(13, 22, 26, 32, 45, ),
909
         array(35, 44, 47, 52, ),
910
         array(9, 12, 16, 49, ),
911
         array(22, 45, 52, ),
912
         array(28, 35, 47, ),
913
         array(22, 45, 60, ),
914
         array(35, 47, ),
915
         array(21, 34, ),
916
         array(34, 36, ),
917
         array(16, 49, ),
918
         array(6, 8, ),
919
         array(44, 52, ),
920
         array(7, 8, ),
921
         array(34, 52, ),
922
         array(35, 47, ),
923
         array(35, 47, ),
924
         array(22, 45, ),
925
         array(34, 36, ),
926
         array(15, 44, ),
927
         array(34, 36, ),
928
         array(34, 36, ),
929
         array(13, ),
930
         array(16, ),
931
         array(50, ),
932
         array(7, ),
933
         array(16, ),
934
         array(52, ),
935
         array(23, ),
936
         array(36, ),
937
         array(50, ),
938
         array(14, ),
939
         array(13, ),
940
         array(52, ),
941
         array(15, ),
942
         array(16, ),
943
         array(40, ),
944
         array(16, ),
945
         array(35, ),
946
         array(16, ),
947
         array(33, ),
948
         array(16, ),
949
         array(33, ),
950
         array(35, ),
951
         array(44, ),
952
         array(16, ),
953
         array(16, ),
954
         array(16, ),
955
         array(16, ),
956
         array(),
957
         array(),
958
         array(),
959
         array(),
960
         array(),
961
         array(),
962
         array(),
963
         array(),
964
         array(),
965
         array(),
966
         array(),
967
         array(),
968
         array(),
969
         array(),
970
         array(),
971
         array(),
972
         array(),
973
         array(),
974
         array(),
975
         array(),
976
         array(),
977
         array(),
978
         array(),
979
         array(),
980
         array(),
981
         array(),
982
         array(),
983
         array(),
984
         array(),
985
         array(),
986
         array(),
987
         array(),
988
         array(),
989
         array(),
990
         array(),
991
         array(),
992
         array(),
993
         array(),
994
         array(),
995
         array(),
996
         array(),
997
         array(),
998
         array(),
999
         array(),
1000
         array(),
1001
         array(),
1002
         array(),
1003
         array(),
1004
         array(),
1005
         array(),
1006
         array(),
1007
         array(),
1008
         array(),
1009
         array(),
1010
         array(),
1011
         array(),
1012
         array(),
1013
         array(),
1014
         array(),
1015
         array(),
1016
         array(),
1017
         array(),
1018
         array(),
1019
         array(),
1020
         array(),
1021
         array(),
1022
         array(),
1023
         array(),
1024
         array(),
1025
         array(),
1026
         array(),
1027
         array(),
1028
         array(),
1029
         array(),
1030
         array(),
1031
         array(),
1032
         array(),
1033
         array(),
1034
         array(),
1035
         array(),
1036
         array(),
1037
         array(),
1038
         array(),
1039
         array(),
1040
         array(),
1041
         array(),
1042
         array(),
1043
         array(),
1044
         array(),
1045
         array(),
1046
         array(),
1047
         array(),
1048
         array(),
1049
         array(),
1050
         array(),
1051
);
1052
    public static $yy_default = array(
1053
    336,  512,  512,  512,  497,  497,  512,  474,  474,  474,
1054
    512,  512,  512,  512,  512,  512,  512,  512,  512,  512,
1055
    512,  512,  512,  512,  512,  512,  512,  512,  512,  512,
1056
    512,  512,  512,  512,  512,  512,  512,  512,  512,  512,
1057
    512,  512,  512,  512,  512,  512,  377,  377,  356,  512,
1058
    512,  413,  512,  377,  512,  512,  512,  512,  512,  512,
1059
    512,  512,  382,  512,  349,  512,  512,  512,  382,  379,
1060
    389,  388,  384,  402,  473,  397,  498,  500,  401,  361,
1061
    472,  499,  349,  377,  377,  487,  377,  377,  429,  512,
1062
    512,  368,  326,  428,  512,  439,  391,  391,  391,  429,
1063
    439,  439,  512,  429,  391,  377,  512,  377,  377,  391,
1064
    512,  371,  358,  395,  394,  396,  373,  429,  400,  404,
1065
    391,  404,  484,  406,  405,  481,  334,  428,  428,  428,
1066
    428,  428,  512,  441,  439,  455,  512,  363,  435,  354,
1067
    434,  437,  433,  432,  359,  357,  364,  436,  353,  367,
1068
    466,  365,  512,  352,  350,  360,  467,  465,  346,  464,
1069
    439,  366,  512,  369,  461,  475,  488,  476,  485,  372,
1070
    422,  439,  374,  480,  439,  480,  480,  439,  334,  413,
1071
    409,  413,  403,  403,  413,  440,  403,  413,  403,  413,
1072
    512,  512,  512,  332,  409,  512,  512,  512,  423,  403,
1073
    512,  409,  512,  512,  512,  512,  512,  512,  512,  418,
1074
    385,  512,  512,  512,  512,  512,  512,  512,  415,  512,
1075
    455,  512,  512,  512,  411,  486,  409,  512,  512,  512,
1076
    512,  419,  407,  362,  445,  418,  425,  424,  420,  339,
1077
    460,  421,  483,  398,  416,  340,  399,  455,  378,  337,
1078
    338,  330,  328,  329,  442,  443,  444,  438,  392,  393,
1079
    427,  426,  386,  417,  408,  390,  410,  331,  333,  335,
1080
    412,  470,  414,  415,  503,  478,  495,  471,  459,  458,
1081
    375,  457,  344,  462,  508,  493,  376,  496,  456,  509,
1082
    494,  501,  504,  511,  510,  507,  505,  502,  506,  345,
1083
    468,  469,  446,  355,  341,  452,  450,  454,  448,  453,
1084
    447,  489,  490,  491,  463,  449,  492,  451,  327,  342,
1085
    343,  370,  430,  431,  479,  477,
1086
);
1087
    const YYNOCODE = 109;
1088
    const YYSTACKDEPTH = 500;
1089
    const YYNSTATE = 326;
1090
    const YYNRULE = 186;
1091
    const YYERRORSYMBOL = 61;
1092
    const YYERRSYMDT = 'yy0';
1093
    const YYFALLBACK = 0;
1094
    public static $yyFallback = array(
1095
    );
1096
    public function Trace($TraceFILE, $zTracePrompt)
1097
    {
1098
        if (!$TraceFILE) {
1099
            $zTracePrompt = 0;
1100
        } elseif (!$zTracePrompt) {
1101
            $TraceFILE = 0;
1102
        }
1103
        $this->yyTraceFILE = $TraceFILE;
1104
        $this->yyTracePrompt = $zTracePrompt;
1105
    }
1106
1107
    public function PrintTrace()
1108
    {
1109
        $this->yyTraceFILE = fopen('php://output', 'w');
1110
        $this->yyTracePrompt = '<br>';
1111
    }
1112
1113
    public $yyTraceFILE;
1114
    public $yyTracePrompt;
1115
    public $yyidx;                    /* Index of top element in stack */
1116
    public $yyerrcnt;                 /* Shifts left before out of the error */
1117
    public $yystack = array();  /* The parser's stack */
1118
1119
    public $yyTokenName = array(
1120
  '$',             'VERT',          'COLON',         'TEXT',        
1121
  'STRIPON',       'STRIPOFF',      'LITERALSTART',  'LITERALEND',  
1122
  'LITERAL',       'SIMPELOUTPUT',  'SIMPLETAG',     'SMARTYBLOCKCHILDPARENT',
1123
  'LDEL',          'RDEL',          'DOLLARID',      'EQUAL',       
1124
  'ID',            'PTR',           'LDELMAKENOCACHE',  'LDELIF',      
1125
  'LDELFOR',       'SEMICOLON',     'INCDEC',        'TO',          
1126
  'STEP',          'LDELFOREACH',   'SPACE',         'AS',          
1127
  'APTR',          'LDELSETFILTER',  'CLOSETAG',      'LDELSLASH',   
1128
  'ATTR',          'INTEGER',       'COMMA',         'OPENP',       
1129
  'CLOSEP',        'MATH',          'UNIMATH',       'ISIN',        
1130
  'QMARK',         'NOT',           'TYPECAST',      'HEX',         
1131
  'DOT',           'INSTANCEOF',    'SINGLEQUOTESTRING',  'DOUBLECOLON', 
1132
  'NAMESPACE',     'AT',            'HATCH',         'OPENB',       
1133
  'CLOSEB',        'DOLLAR',        'LOGOP',         'SLOGOP',      
1134
  'TLOGOP',        'SINGLECOND',    'ARRAYOPEN',     'QUOTE',       
1135
  'BACKTICK',      'error',         'start',         'template',    
1136
  'literal_e2',    'literal_e1',    'smartytag',     'tagbody',     
1137
  'tag',           'outattr',       'eqoutattr',     'varindexed',  
1138
  'output',        'attributes',    'variable',      'value',       
1139
  'expr',          'modifierlist',  'statement',     'statements',  
1140
  'foraction',     'varvar',        'modparameters',  'attribute',   
1141
  'ternary',       'tlop',          'lop',           'scond',       
1142
  'array',         'function',      'ns1',           'doublequoted_with_quotes',
1143
  'static_class_access',  'arraydef',      'object',        'arrayindex',  
1144
  'indexdef',      'varvarele',     'objectchain',   'objectelement',
1145
  'method',        'params',        'modifier',      'modparameter',
1146
  'arrayelements',  'arrayelement',  'doublequoted',  'doublequotedcontent',
1147
    );
1148
1149
    public static $yyRuleName = array(
1150
  'start ::= template',
1151
  'template ::= template TEXT',
1152
  'template ::= template STRIPON',
1153
  'template ::= template STRIPOFF',
1154
  'template ::= template LITERALSTART literal_e2 LITERALEND',
1155
  'literal_e2 ::= literal_e1 LITERALSTART literal_e1 LITERALEND',
1156
  'literal_e2 ::= literal_e1',
1157
  'literal_e1 ::= literal_e1 LITERAL',
1158
  'literal_e1 ::=',
1159
  'template ::= template smartytag',
1160
  'template ::=',
1161
  'smartytag ::= SIMPELOUTPUT',
1162
  'smartytag ::= SIMPLETAG',
1163
  'smartytag ::= SMARTYBLOCKCHILDPARENT',
1164
  'smartytag ::= LDEL tagbody RDEL',
1165
  'smartytag ::= tag RDEL',
1166
  'tagbody ::= outattr',
1167
  'tagbody ::= DOLLARID eqoutattr',
1168
  'tagbody ::= varindexed eqoutattr',
1169
  'eqoutattr ::= EQUAL outattr',
1170
  'outattr ::= output attributes',
1171
  'output ::= variable',
1172
  'output ::= value',
1173
  'output ::= expr',
1174
  'tag ::= LDEL ID attributes',
1175
  'tag ::= LDEL ID',
1176
  'tag ::= LDEL ID modifierlist attributes',
1177
  'tag ::= LDEL ID PTR ID attributes',
1178
  'tag ::= LDEL ID PTR ID modifierlist attributes',
1179
  'tag ::= LDELMAKENOCACHE DOLLARID',
1180
  'tag ::= LDELIF expr',
1181
  'tag ::= LDELIF expr attributes',
1182
  'tag ::= LDELIF statement',
1183
  'tag ::= LDELIF statement attributes',
1184
  'tag ::= LDELFOR statements SEMICOLON expr SEMICOLON varindexed foraction attributes',
1185
  'foraction ::= EQUAL expr',
1186
  'foraction ::= INCDEC',
1187
  'tag ::= LDELFOR statement TO expr attributes',
1188
  'tag ::= LDELFOR statement TO expr STEP expr attributes',
1189
  'tag ::= LDELFOREACH SPACE expr AS varvar attributes',
1190
  'tag ::= LDELFOREACH SPACE expr AS varvar APTR varvar attributes',
1191
  'tag ::= LDELFOREACH attributes',
1192
  'tag ::= LDELSETFILTER ID modparameters',
1193
  'tag ::= LDELSETFILTER ID modparameters modifierlist',
1194
  'smartytag ::= CLOSETAG',
1195
  'tag ::= LDELSLASH ID',
1196
  'tag ::= LDELSLASH ID modifierlist',
1197
  'tag ::= LDELSLASH ID PTR ID',
1198
  'tag ::= LDELSLASH ID PTR ID modifierlist',
1199
  'attributes ::= attributes attribute',
1200
  'attributes ::= attribute',
1201
  'attributes ::=',
1202
  'attribute ::= SPACE ID EQUAL ID',
1203
  'attribute ::= ATTR expr',
1204
  'attribute ::= ATTR value',
1205
  'attribute ::= SPACE ID',
1206
  'attribute ::= SPACE expr',
1207
  'attribute ::= SPACE value',
1208
  'attribute ::= SPACE INTEGER EQUAL expr',
1209
  'statements ::= statement',
1210
  'statements ::= statements COMMA statement',
1211
  'statement ::= DOLLARID EQUAL INTEGER',
1212
  'statement ::= DOLLARID EQUAL expr',
1213
  'statement ::= varindexed EQUAL expr',
1214
  'statement ::= OPENP statement CLOSEP',
1215
  'expr ::= value',
1216
  'expr ::= ternary',
1217
  'expr ::= DOLLARID COLON ID',
1218
  'expr ::= expr MATH value',
1219
  'expr ::= expr UNIMATH value',
1220
  'expr ::= expr tlop value',
1221
  'expr ::= expr lop expr',
1222
  'expr ::= expr scond',
1223
  'expr ::= expr ISIN array',
1224
  'expr ::= expr ISIN value',
1225
  'ternary ::= OPENP expr CLOSEP QMARK DOLLARID COLON expr',
1226
  'ternary ::= OPENP expr CLOSEP QMARK expr COLON expr',
1227
  'value ::= variable',
1228
  'value ::= UNIMATH value',
1229
  'value ::= NOT value',
1230
  'value ::= TYPECAST value',
1231
  'value ::= variable INCDEC',
1232
  'value ::= HEX',
1233
  'value ::= INTEGER',
1234
  'value ::= INTEGER DOT INTEGER',
1235
  'value ::= INTEGER DOT',
1236
  'value ::= DOT INTEGER',
1237
  'value ::= ID',
1238
  'value ::= function',
1239
  'value ::= OPENP expr CLOSEP',
1240
  'value ::= variable INSTANCEOF ns1',
1241
  'value ::= variable INSTANCEOF variable',
1242
  'value ::= SINGLEQUOTESTRING',
1243
  'value ::= doublequoted_with_quotes',
1244
  'value ::= varindexed DOUBLECOLON static_class_access',
1245
  'value ::= smartytag',
1246
  'value ::= value modifierlist',
1247
  'value ::= NAMESPACE',
1248
  'value ::= arraydef',
1249
  'value ::= ns1 DOUBLECOLON static_class_access',
1250
  'ns1 ::= ID',
1251
  'ns1 ::= NAMESPACE',
1252
  'variable ::= DOLLARID',
1253
  'variable ::= varindexed',
1254
  'variable ::= varvar AT ID',
1255
  'variable ::= object',
1256
  'variable ::= HATCH ID HATCH',
1257
  'variable ::= HATCH ID HATCH arrayindex',
1258
  'variable ::= HATCH variable HATCH',
1259
  'variable ::= HATCH variable HATCH arrayindex',
1260
  'varindexed ::= DOLLARID arrayindex',
1261
  'varindexed ::= varvar arrayindex',
1262
  'arrayindex ::= arrayindex indexdef',
1263
  'arrayindex ::=',
1264
  'indexdef ::= DOT DOLLARID',
1265
  'indexdef ::= DOT varvar',
1266
  'indexdef ::= DOT varvar AT ID',
1267
  'indexdef ::= DOT ID',
1268
  'indexdef ::= DOT INTEGER',
1269
  'indexdef ::= DOT LDEL expr RDEL',
1270
  'indexdef ::= OPENB ID CLOSEB',
1271
  'indexdef ::= OPENB ID DOT ID CLOSEB',
1272
  'indexdef ::= OPENB SINGLEQUOTESTRING CLOSEB',
1273
  'indexdef ::= OPENB INTEGER CLOSEB',
1274
  'indexdef ::= OPENB DOLLARID CLOSEB',
1275
  'indexdef ::= OPENB variable CLOSEB',
1276
  'indexdef ::= OPENB value CLOSEB',
1277
  'indexdef ::= OPENB expr CLOSEB',
1278
  'indexdef ::= OPENB CLOSEB',
1279
  'varvar ::= DOLLARID',
1280
  'varvar ::= DOLLAR',
1281
  'varvar ::= varvar varvarele',
1282
  'varvarele ::= ID',
1283
  'varvarele ::= SIMPELOUTPUT',
1284
  'varvarele ::= LDEL expr RDEL',
1285
  'object ::= varindexed objectchain',
1286
  'objectchain ::= objectelement',
1287
  'objectchain ::= objectchain objectelement',
1288
  'objectelement ::= PTR ID arrayindex',
1289
  'objectelement ::= PTR varvar arrayindex',
1290
  'objectelement ::= PTR LDEL expr RDEL arrayindex',
1291
  'objectelement ::= PTR ID LDEL expr RDEL arrayindex',
1292
  'objectelement ::= PTR method',
1293
  'function ::= ns1 OPENP params CLOSEP',
1294
  'method ::= ID OPENP params CLOSEP',
1295
  'method ::= DOLLARID OPENP params CLOSEP',
1296
  'params ::= params COMMA expr',
1297
  'params ::= expr',
1298
  'params ::=',
1299
  'modifierlist ::= modifierlist modifier modparameters',
1300
  'modifierlist ::= modifier modparameters',
1301
  'modifier ::= VERT AT ID',
1302
  'modifier ::= VERT ID',
1303
  'modparameters ::= modparameters modparameter',
1304
  'modparameters ::=',
1305
  'modparameter ::= COLON value',
1306
  'modparameter ::= COLON UNIMATH value',
1307
  'modparameter ::= COLON array',
1308
  'static_class_access ::= method',
1309
  'static_class_access ::= method objectchain',
1310
  'static_class_access ::= ID',
1311
  'static_class_access ::= DOLLARID arrayindex',
1312
  'static_class_access ::= DOLLARID arrayindex objectchain',
1313
  'lop ::= LOGOP',
1314
  'lop ::= SLOGOP',
1315
  'tlop ::= TLOGOP',
1316
  'scond ::= SINGLECOND',
1317
  'arraydef ::= OPENB arrayelements CLOSEB',
1318
  'arraydef ::= ARRAYOPEN arrayelements CLOSEP',
1319
  'arrayelements ::= arrayelement',
1320
  'arrayelements ::= arrayelements COMMA arrayelement',
1321
  'arrayelements ::=',
1322
  'arrayelement ::= value APTR expr',
1323
  'arrayelement ::= ID APTR expr',
1324
  'arrayelement ::= expr',
1325
  'doublequoted_with_quotes ::= QUOTE QUOTE',
1326
  'doublequoted_with_quotes ::= QUOTE doublequoted QUOTE',
1327
  'doublequoted ::= doublequoted doublequotedcontent',
1328
  'doublequoted ::= doublequotedcontent',
1329
  'doublequotedcontent ::= BACKTICK variable BACKTICK',
1330
  'doublequotedcontent ::= BACKTICK expr BACKTICK',
1331
  'doublequotedcontent ::= DOLLARID',
1332
  'doublequotedcontent ::= LDEL variable RDEL',
1333
  'doublequotedcontent ::= LDEL expr RDEL',
1334
  'doublequotedcontent ::= smartytag',
1335
  'doublequotedcontent ::= TEXT',
1336
    );
1337
1338
    public function tokenName($tokenType)
1339
    {
1340
        if ($tokenType === 0) {
1341
            return 'End of Input';
1342
        }
1343
        if ($tokenType > 0 && $tokenType < count($this->yyTokenName)) {
1344
            return $this->yyTokenName[$tokenType];
1345
        } else {
1346
            return 'Unknown';
1347
        }
1348
    }
1349
1350
    public static function yy_destructor($yymajor, $yypminor)
1351
    {
1352
        switch ($yymajor) {
1353
            default:  break;   /* If no destructor action specified: do nothing */
1354
        }
1355
    }
1356
1357
    public function yy_pop_parser_stack()
1358
    {
1359
        if (empty($this->yystack)) {
1360
            return;
1361
        }
1362
        $yytos = array_pop($this->yystack);
1363
        if ($this->yyTraceFILE && $this->yyidx >= 0) {
1364
            fwrite($this->yyTraceFILE,
1365
                $this->yyTracePrompt . 'Popping ' . $this->yyTokenName[$yytos->major] .
1366
                    "\n");
1367
        }
1368
        $yymajor = $yytos->major;
1369
        self::yy_destructor($yymajor, $yytos->minor);
1370
        $this->yyidx--;
1371
1372
        return $yymajor;
1373
    }
1374
1375
    public function __destruct()
1376
    {
1377
        while ($this->yystack !== Array()) {
1378
            $this->yy_pop_parser_stack();
1379
        }
1380
        if (is_resource($this->yyTraceFILE)) {
1381
            fclose($this->yyTraceFILE);
1382
        }
1383
    }
1384
1385
    public function yy_get_expected_tokens($token)
1386
    {
1387
        static $res3 = array();
1388
        static $res4 = array();
1389
        $state = $this->yystack[$this->yyidx]->stateno;
1390
        $expected = self::$yyExpectedTokens[$state];
1391
        if (isset($res3[$state][$token])) {
1392
            if ($res3[$state][$token]) {
1393
                return $expected;
1394
            }
1395
        } else {
1396
            if ($res3[$state][$token] = in_array($token, self::$yyExpectedTokens[$state], true)) {
1397
                return $expected;
1398
            }
1399
        }
1400
        $stack = $this->yystack;
1401
        $yyidx = $this->yyidx;
1402
        do {
1403
            $yyact = $this->yy_find_shift_action($token);
1404
            if ($yyact >= self::YYNSTATE && $yyact < self::YYNSTATE + self::YYNRULE) {
1405
                // reduce action
1406
                $done = 0;
1407
                do {
1408
                    if ($done++ === 100) {
1409
                        $this->yyidx = $yyidx;
1410
                        $this->yystack = $stack;
1411
                        // too much recursion prevents proper detection
1412
                        // so give up
1413
                        return array_unique($expected);
1414
                    }
1415
                    $yyruleno = $yyact - self::YYNSTATE;
1416
                    $this->yyidx -= self::$yyRuleInfo[$yyruleno][1];
1417
                    $nextstate = $this->yy_find_reduce_action(
1418
                        $this->yystack[$this->yyidx]->stateno,
1419
                        self::$yyRuleInfo[$yyruleno][0]);
1420
                    if (isset(self::$yyExpectedTokens[$nextstate])) {
1421
                $expected = array_merge($expected, self::$yyExpectedTokens[$nextstate]);
1422
                        if (isset($res4[$nextstate][$token])) {
1423
                            if ($res4[$nextstate][$token]) {
1424
                                $this->yyidx = $yyidx;
1425
                                $this->yystack = $stack;
1426
                                return array_unique($expected);
1427
                            }
1428
                        } else {
1429
                            if ($res4[$nextstate][$token] = in_array($token, self::$yyExpectedTokens[$nextstate], true)) {
1430
                                $this->yyidx = $yyidx;
1431
                                $this->yystack = $stack;
1432
                                return array_unique($expected);
1433
                            }
1434
                        }
1435
                    }
1436
                    if ($nextstate < self::YYNSTATE) {
1437
                        // we need to shift a non-terminal
1438
                        $this->yyidx++;
1439
                        $x = new TP_yyStackEntry;
1440
                        $x->stateno = $nextstate;
1441
                        $x->major = self::$yyRuleInfo[$yyruleno][0];
1442
                        $this->yystack[$this->yyidx] = $x;
1443
                        continue 2;
1444
                    } elseif ($nextstate === self::YYNSTATE + self::YYNRULE + 1) {
1445
                        $this->yyidx = $yyidx;
1446
                        $this->yystack = $stack;
1447
                        // the last token was just ignored, we can't accept
1448
                        // by ignoring input, this is in essence ignoring a
1449
                        // syntax error!
1450
                        return array_unique($expected);
1451
                    } elseif ($nextstate === self::YY_NO_ACTION) {
1452
                        $this->yyidx = $yyidx;
1453
                        $this->yystack = $stack;
1454
                        // input accepted, but not shifted (I guess)
1455
                        return $expected;
1456
                    } else {
1457
                        $yyact = $nextstate;
1458
                    }
1459
                } while (true);
1460
            }
1461
            break;
1462
        } while (true);
1463
    $this->yyidx = $yyidx;
1464
    $this->yystack = $stack;
1465
1466
        return array_unique($expected);
1467
    }
1468
1469
    public function yy_is_expected_token($token)
1470
    {
1471
        static $res = array();
1472
        static $res2 = array();
1473
        if ($token === 0) {
1474
            return true; // 0 is not part of this
1475
        }
1476
        $state = $this->yystack[$this->yyidx]->stateno;
1477
        if (isset($res[$state][$token])) {
1478
            if ($res[$state][$token]) {
1479
                return true;
1480
            }
1481
        } else {
1482
            if ($res[$state][$token] = in_array($token, self::$yyExpectedTokens[$state], true)) {
1483
                return true;
1484
            }
1485
       }
1486
        $stack = $this->yystack;
1487
        $yyidx = $this->yyidx;
1488
        do {
1489
            $yyact = $this->yy_find_shift_action($token);
1490
            if ($yyact >= self::YYNSTATE && $yyact < self::YYNSTATE + self::YYNRULE) {
1491
                // reduce action
1492
                $done = 0;
1493
                do {
1494
                    if ($done++ === 100) {
1495
                        $this->yyidx = $yyidx;
1496
                        $this->yystack = $stack;
1497
                        // too much recursion prevents proper detection
1498
                        // so give up
1499
                        return true;
1500
                    }
1501
                    $yyruleno = $yyact - self::YYNSTATE;
1502
                    $this->yyidx -= self::$yyRuleInfo[$yyruleno][1];
1503
                    $nextstate = $this->yy_find_reduce_action(
1504
                        $this->yystack[$this->yyidx]->stateno,
1505
                        self::$yyRuleInfo[$yyruleno][0]);
1506
                    if (isset($res2[$nextstate][$token])) {
1507
                        if ($res2[$nextstate][$token]) {
1508
                            $this->yyidx = $yyidx;
1509
                            $this->yystack = $stack;
1510
                            return true;
1511
                        }
1512
                    } else {
1513
                        if ($res2[$nextstate][$token] = (isset(self::$yyExpectedTokens[$nextstate]) && in_array($token, self::$yyExpectedTokens[$nextstate], true))) {
1514
                            $this->yyidx = $yyidx;
1515
                            $this->yystack = $stack;
1516
                            return true;
1517
                        }
1518
                    }
1519
                    if ($nextstate < self::YYNSTATE) {
1520
                        // we need to shift a non-terminal
1521
                        $this->yyidx++;
1522
                        $x = new TP_yyStackEntry;
1523
                        $x->stateno = $nextstate;
1524
                        $x->major = self::$yyRuleInfo[$yyruleno][0];
1525
                        $this->yystack[$this->yyidx] = $x;
1526
                        continue 2;
1527
                    } elseif ($nextstate === self::YYNSTATE + self::YYNRULE + 1) {
1528
                        $this->yyidx = $yyidx;
1529
                        $this->yystack = $stack;
1530
                        if (!$token) {
1531
                            // end of input: this is valid
1532
                            return true;
1533
                        }
1534
                        // the last token was just ignored, we can't accept
1535
                        // by ignoring input, this is in essence ignoring a
1536
                        // syntax error!
1537
                        return false;
1538
                    } elseif ($nextstate === self::YY_NO_ACTION) {
1539
                        $this->yyidx = $yyidx;
1540
                        $this->yystack = $stack;
1541
                        // input accepted, but not shifted (I guess)
1542
                        return true;
1543
                    } else {
1544
                        $yyact = $nextstate;
1545
                    }
1546
                } while (true);
1547
            }
1548
            break;
1549
        } while (true);
1550
        $this->yyidx = $yyidx;
1551
        $this->yystack = $stack;
1552
1553
        return true;
1554
    }
1555
1556
   public function yy_find_shift_action($iLookAhead)
1557
    {
1558
        $stateno = $this->yystack[$this->yyidx]->stateno;
1559
1560
        /* if ($this->yyidx < 0) return self::YY_NO_ACTION;  */
1561
        if (!isset(self::$yy_shift_ofst[$stateno])) {
1562
            // no shift actions
1563
            return self::$yy_default[$stateno];
1564
        }
1565
        $i = self::$yy_shift_ofst[$stateno];
1566
        if ($i === self::YY_SHIFT_USE_DFLT) {
1567
            return self::$yy_default[$stateno];
1568
        }
1569
        if ($iLookAhead === self::YYNOCODE) {
1570
            return self::YY_NO_ACTION;
1571
        }
1572
        $i += $iLookAhead;
1573
        if ($i < 0 || $i >= self::YY_SZ_ACTTAB ||
1574
              self::$yy_lookahead[$i] != $iLookAhead) {
1575
            if (count(self::$yyFallback) && $iLookAhead < count(self::$yyFallback)
1576
                   && ($iFallback = self::$yyFallback[$iLookAhead]) != 0) {
1577
                if ($this->yyTraceFILE) {
1578
                    fwrite($this->yyTraceFILE, $this->yyTracePrompt . 'FALLBACK ' .
1579
                        $this->yyTokenName[$iLookAhead] . ' => ' .
1580
                        $this->yyTokenName[$iFallback] . "\n");
1581
                }
1582
1583
                return $this->yy_find_shift_action($iFallback);
1584
            }
1585
1586
            return self::$yy_default[$stateno];
1587
        } else {
1588
            return self::$yy_action[$i];
1589
        }
1590
    }
1591
1592
    public function yy_find_reduce_action($stateno, $iLookAhead)
1593
    {
1594
        /* $stateno = $this->yystack[$this->yyidx]->stateno; */
1595
1596
        if (!isset(self::$yy_reduce_ofst[$stateno])) {
1597
            return self::$yy_default[$stateno];
1598
        }
1599
        $i = self::$yy_reduce_ofst[$stateno];
1600
        if ($i === self::YY_REDUCE_USE_DFLT) {
1601
            return self::$yy_default[$stateno];
1602
        }
1603
        if ($iLookAhead === self::YYNOCODE) {
1604
            return self::YY_NO_ACTION;
1605
        }
1606
        $i += $iLookAhead;
1607
        if ($i < 0 || $i >= self::YY_SZ_ACTTAB ||
1608
              self::$yy_lookahead[$i] != $iLookAhead) {
1609
            return self::$yy_default[$stateno];
1610
        } else {
1611
            return self::$yy_action[$i];
1612
        }
1613
    }
1614
1615
    public function yy_shift($yyNewState, $yyMajor, $yypMinor)
1616
    {
1617
        $this->yyidx++;
1618
        if ($this->yyidx >= self::YYSTACKDEPTH) {
1619
            $this->yyidx--;
1620
            if ($this->yyTraceFILE) {
1621
                fprintf($this->yyTraceFILE, "%sStack Overflow!\n", $this->yyTracePrompt);
1622
            }
1623
            while ($this->yyidx >= 0) {
1624
                $this->yy_pop_parser_stack();
1625
            }
1626
// line 220 "../smarty/lexer/smarty_internal_templateparser.y"
1627
1628
    $this->internalError = true;
1629
    $this->compiler->trigger_template_error('Stack overflow in template parser');
1630
1631
            return;
1632
        }
1633
        $yytos = new TP_yyStackEntry;
1634
        $yytos->stateno = $yyNewState;
1635
        $yytos->major = $yyMajor;
1636
        $yytos->minor = $yypMinor;
1637
        $this->yystack[] = $yytos;
1638
        if ($this->yyTraceFILE && $this->yyidx > 0) {
1639
            fprintf($this->yyTraceFILE, "%sShift %d\n", $this->yyTracePrompt,
1640
                $yyNewState);
1641
            fprintf($this->yyTraceFILE, "%sStack:", $this->yyTracePrompt);
1642
            for ($i = 1; $i <= $this->yyidx; $i++) {
1643
                fprintf($this->yyTraceFILE, " %s",
1644
                    $this->yyTokenName[$this->yystack[$i]->major]);
1645
            }
1646
            fwrite($this->yyTraceFILE,"\n");
1647
        }
1648
    }
1649
1650
    public static $yyRuleInfo = array(
1651
  array( 0 => 62, 1 => 1 ),
1652
  array( 0 => 63, 1 => 2 ),
1653
  array( 0 => 63, 1 => 2 ),
1654
  array( 0 => 63, 1 => 2 ),
1655
  array( 0 => 63, 1 => 4 ),
1656
  array( 0 => 64, 1 => 4 ),
1657
  array( 0 => 64, 1 => 1 ),
1658
  array( 0 => 65, 1 => 2 ),
1659
  array( 0 => 65, 1 => 0 ),
1660
  array( 0 => 63, 1 => 2 ),
1661
  array( 0 => 63, 1 => 0 ),
1662
  array( 0 => 66, 1 => 1 ),
1663
  array( 0 => 66, 1 => 1 ),
1664
  array( 0 => 66, 1 => 1 ),
1665
  array( 0 => 66, 1 => 3 ),
1666
  array( 0 => 66, 1 => 2 ),
1667
  array( 0 => 67, 1 => 1 ),
1668
  array( 0 => 67, 1 => 2 ),
1669
  array( 0 => 67, 1 => 2 ),
1670
  array( 0 => 70, 1 => 2 ),
1671
  array( 0 => 69, 1 => 2 ),
1672
  array( 0 => 72, 1 => 1 ),
1673
  array( 0 => 72, 1 => 1 ),
1674
  array( 0 => 72, 1 => 1 ),
1675
  array( 0 => 68, 1 => 3 ),
1676
  array( 0 => 68, 1 => 2 ),
1677
  array( 0 => 68, 1 => 4 ),
1678
  array( 0 => 68, 1 => 5 ),
1679
  array( 0 => 68, 1 => 6 ),
1680
  array( 0 => 68, 1 => 2 ),
1681
  array( 0 => 68, 1 => 2 ),
1682
  array( 0 => 68, 1 => 3 ),
1683
  array( 0 => 68, 1 => 2 ),
1684
  array( 0 => 68, 1 => 3 ),
1685
  array( 0 => 68, 1 => 8 ),
1686
  array( 0 => 80, 1 => 2 ),
1687
  array( 0 => 80, 1 => 1 ),
1688
  array( 0 => 68, 1 => 5 ),
1689
  array( 0 => 68, 1 => 7 ),
1690
  array( 0 => 68, 1 => 6 ),
1691
  array( 0 => 68, 1 => 8 ),
1692
  array( 0 => 68, 1 => 2 ),
1693
  array( 0 => 68, 1 => 3 ),
1694
  array( 0 => 68, 1 => 4 ),
1695
  array( 0 => 66, 1 => 1 ),
1696
  array( 0 => 68, 1 => 2 ),
1697
  array( 0 => 68, 1 => 3 ),
1698
  array( 0 => 68, 1 => 4 ),
1699
  array( 0 => 68, 1 => 5 ),
1700
  array( 0 => 73, 1 => 2 ),
1701
  array( 0 => 73, 1 => 1 ),
1702
  array( 0 => 73, 1 => 0 ),
1703
  array( 0 => 83, 1 => 4 ),
1704
  array( 0 => 83, 1 => 2 ),
1705
  array( 0 => 83, 1 => 2 ),
1706
  array( 0 => 83, 1 => 2 ),
1707
  array( 0 => 83, 1 => 2 ),
1708
  array( 0 => 83, 1 => 2 ),
1709
  array( 0 => 83, 1 => 4 ),
1710
  array( 0 => 79, 1 => 1 ),
1711
  array( 0 => 79, 1 => 3 ),
1712
  array( 0 => 78, 1 => 3 ),
1713
  array( 0 => 78, 1 => 3 ),
1714
  array( 0 => 78, 1 => 3 ),
1715
  array( 0 => 78, 1 => 3 ),
1716
  array( 0 => 76, 1 => 1 ),
1717
  array( 0 => 76, 1 => 1 ),
1718
  array( 0 => 76, 1 => 3 ),
1719
  array( 0 => 76, 1 => 3 ),
1720
  array( 0 => 76, 1 => 3 ),
1721
  array( 0 => 76, 1 => 3 ),
1722
  array( 0 => 76, 1 => 3 ),
1723
  array( 0 => 76, 1 => 2 ),
1724
  array( 0 => 76, 1 => 3 ),
1725
  array( 0 => 76, 1 => 3 ),
1726
  array( 0 => 84, 1 => 7 ),
1727
  array( 0 => 84, 1 => 7 ),
1728
  array( 0 => 75, 1 => 1 ),
1729
  array( 0 => 75, 1 => 2 ),
1730
  array( 0 => 75, 1 => 2 ),
1731
  array( 0 => 75, 1 => 2 ),
1732
  array( 0 => 75, 1 => 2 ),
1733
  array( 0 => 75, 1 => 1 ),
1734
  array( 0 => 75, 1 => 1 ),
1735
  array( 0 => 75, 1 => 3 ),
1736
  array( 0 => 75, 1 => 2 ),
1737
  array( 0 => 75, 1 => 2 ),
1738
  array( 0 => 75, 1 => 1 ),
1739
  array( 0 => 75, 1 => 1 ),
1740
  array( 0 => 75, 1 => 3 ),
1741
  array( 0 => 75, 1 => 3 ),
1742
  array( 0 => 75, 1 => 3 ),
1743
  array( 0 => 75, 1 => 1 ),
1744
  array( 0 => 75, 1 => 1 ),
1745
  array( 0 => 75, 1 => 3 ),
1746
  array( 0 => 75, 1 => 1 ),
1747
  array( 0 => 75, 1 => 2 ),
1748
  array( 0 => 75, 1 => 1 ),
1749
  array( 0 => 75, 1 => 1 ),
1750
  array( 0 => 75, 1 => 3 ),
1751
  array( 0 => 90, 1 => 1 ),
1752
  array( 0 => 90, 1 => 1 ),
1753
  array( 0 => 74, 1 => 1 ),
1754
  array( 0 => 74, 1 => 1 ),
1755
  array( 0 => 74, 1 => 3 ),
1756
  array( 0 => 74, 1 => 1 ),
1757
  array( 0 => 74, 1 => 3 ),
1758
  array( 0 => 74, 1 => 4 ),
1759
  array( 0 => 74, 1 => 3 ),
1760
  array( 0 => 74, 1 => 4 ),
1761
  array( 0 => 71, 1 => 2 ),
1762
  array( 0 => 71, 1 => 2 ),
1763
  array( 0 => 95, 1 => 2 ),
1764
  array( 0 => 95, 1 => 0 ),
1765
  array( 0 => 96, 1 => 2 ),
1766
  array( 0 => 96, 1 => 2 ),
1767
  array( 0 => 96, 1 => 4 ),
1768
  array( 0 => 96, 1 => 2 ),
1769
  array( 0 => 96, 1 => 2 ),
1770
  array( 0 => 96, 1 => 4 ),
1771
  array( 0 => 96, 1 => 3 ),
1772
  array( 0 => 96, 1 => 5 ),
1773
  array( 0 => 96, 1 => 3 ),
1774
  array( 0 => 96, 1 => 3 ),
1775
  array( 0 => 96, 1 => 3 ),
1776
  array( 0 => 96, 1 => 3 ),
1777
  array( 0 => 96, 1 => 3 ),
1778
  array( 0 => 96, 1 => 3 ),
1779
  array( 0 => 96, 1 => 2 ),
1780
  array( 0 => 81, 1 => 1 ),
1781
  array( 0 => 81, 1 => 1 ),
1782
  array( 0 => 81, 1 => 2 ),
1783
  array( 0 => 97, 1 => 1 ),
1784
  array( 0 => 97, 1 => 1 ),
1785
  array( 0 => 97, 1 => 3 ),
1786
  array( 0 => 94, 1 => 2 ),
1787
  array( 0 => 98, 1 => 1 ),
1788
  array( 0 => 98, 1 => 2 ),
1789
  array( 0 => 99, 1 => 3 ),
1790
  array( 0 => 99, 1 => 3 ),
1791
  array( 0 => 99, 1 => 5 ),
1792
  array( 0 => 99, 1 => 6 ),
1793
  array( 0 => 99, 1 => 2 ),
1794
  array( 0 => 89, 1 => 4 ),
1795
  array( 0 => 100, 1 => 4 ),
1796
  array( 0 => 100, 1 => 4 ),
1797
  array( 0 => 101, 1 => 3 ),
1798
  array( 0 => 101, 1 => 1 ),
1799
  array( 0 => 101, 1 => 0 ),
1800
  array( 0 => 77, 1 => 3 ),
1801
  array( 0 => 77, 1 => 2 ),
1802
  array( 0 => 102, 1 => 3 ),
1803
  array( 0 => 102, 1 => 2 ),
1804
  array( 0 => 82, 1 => 2 ),
1805
  array( 0 => 82, 1 => 0 ),
1806
  array( 0 => 103, 1 => 2 ),
1807
  array( 0 => 103, 1 => 3 ),
1808
  array( 0 => 103, 1 => 2 ),
1809
  array( 0 => 92, 1 => 1 ),
1810
  array( 0 => 92, 1 => 2 ),
1811
  array( 0 => 92, 1 => 1 ),
1812
  array( 0 => 92, 1 => 2 ),
1813
  array( 0 => 92, 1 => 3 ),
1814
  array( 0 => 86, 1 => 1 ),
1815
  array( 0 => 86, 1 => 1 ),
1816
  array( 0 => 85, 1 => 1 ),
1817
  array( 0 => 87, 1 => 1 ),
1818
  array( 0 => 93, 1 => 3 ),
1819
  array( 0 => 93, 1 => 3 ),
1820
  array( 0 => 104, 1 => 1 ),
1821
  array( 0 => 104, 1 => 3 ),
1822
  array( 0 => 104, 1 => 0 ),
1823
  array( 0 => 105, 1 => 3 ),
1824
  array( 0 => 105, 1 => 3 ),
1825
  array( 0 => 105, 1 => 1 ),
1826
  array( 0 => 91, 1 => 2 ),
1827
  array( 0 => 91, 1 => 3 ),
1828
  array( 0 => 106, 1 => 2 ),
1829
  array( 0 => 106, 1 => 1 ),
1830
  array( 0 => 107, 1 => 3 ),
1831
  array( 0 => 107, 1 => 3 ),
1832
  array( 0 => 107, 1 => 1 ),
1833
  array( 0 => 107, 1 => 3 ),
1834
  array( 0 => 107, 1 => 3 ),
1835
  array( 0 => 107, 1 => 1 ),
1836
  array( 0 => 107, 1 => 1 ),
1837
    );
1838
1839
    public static $yyReduceMap = array(
1840
        0 => 0,
1841
        1 => 1,
1842
        2 => 2,
1843
        3 => 3,
1844
        4 => 4,
1845
        5 => 5,
1846
        6 => 6,
1847
        21 => 6,
1848
        22 => 6,
1849
        23 => 6,
1850
        36 => 6,
1851
        56 => 6,
1852
        57 => 6,
1853
        65 => 6,
1854
        66 => 6,
1855
        77 => 6,
1856
        82 => 6,
1857
        83 => 6,
1858
        88 => 6,
1859
        92 => 6,
1860
        93 => 6,
1861
        97 => 6,
1862
        98 => 6,
1863
        100 => 6,
1864
        105 => 6,
1865
        169 => 6,
1866
        174 => 6,
1867
        7 => 7,
1868
        8 => 8,
1869
        9 => 9,
1870
        11 => 11,
1871
        12 => 12,
1872
        13 => 13,
1873
        14 => 14,
1874
        15 => 15,
1875
        16 => 16,
1876
        17 => 17,
1877
        18 => 18,
1878
        19 => 19,
1879
        20 => 20,
1880
        24 => 24,
1881
        25 => 25,
1882
        26 => 26,
1883
        27 => 27,
1884
        28 => 28,
1885
        29 => 29,
1886
        30 => 30,
1887
        31 => 31,
1888
        33 => 31,
1889
        32 => 32,
1890
        34 => 34,
1891
        35 => 35,
1892
        37 => 37,
1893
        38 => 38,
1894
        39 => 39,
1895
        40 => 40,
1896
        41 => 41,
1897
        42 => 42,
1898
        43 => 43,
1899
        44 => 44,
1900
        45 => 45,
1901
        46 => 46,
1902
        47 => 47,
1903
        48 => 48,
1904
        49 => 49,
1905
        50 => 50,
1906
        59 => 50,
1907
        147 => 50,
1908
        151 => 50,
1909
        155 => 50,
1910
        157 => 50,
1911
        51 => 51,
1912
        148 => 51,
1913
        154 => 51,
1914
        52 => 52,
1915
        53 => 53,
1916
        54 => 53,
1917
        55 => 55,
1918
        132 => 55,
1919
        58 => 58,
1920
        60 => 60,
1921
        61 => 61,
1922
        62 => 61,
1923
        63 => 63,
1924
        64 => 64,
1925
        67 => 67,
1926
        68 => 68,
1927
        69 => 68,
1928
        70 => 70,
1929
        71 => 71,
1930
        72 => 72,
1931
        73 => 73,
1932
        74 => 74,
1933
        75 => 75,
1934
        76 => 76,
1935
        78 => 78,
1936
        80 => 78,
1937
        81 => 78,
1938
        112 => 78,
1939
        79 => 79,
1940
        84 => 84,
1941
        85 => 85,
1942
        86 => 86,
1943
        87 => 87,
1944
        89 => 89,
1945
        90 => 90,
1946
        91 => 90,
1947
        94 => 94,
1948
        95 => 95,
1949
        96 => 96,
1950
        99 => 99,
1951
        101 => 101,
1952
        102 => 102,
1953
        103 => 103,
1954
        104 => 104,
1955
        106 => 106,
1956
        107 => 107,
1957
        108 => 108,
1958
        109 => 109,
1959
        110 => 110,
1960
        111 => 111,
1961
        113 => 113,
1962
        171 => 113,
1963
        114 => 114,
1964
        115 => 115,
1965
        116 => 116,
1966
        117 => 117,
1967
        118 => 118,
1968
        119 => 119,
1969
        127 => 119,
1970
        120 => 120,
1971
        121 => 121,
1972
        122 => 122,
1973
        123 => 122,
1974
        125 => 122,
1975
        126 => 122,
1976
        124 => 124,
1977
        128 => 128,
1978
        129 => 129,
1979
        130 => 130,
1980
        175 => 130,
1981
        131 => 131,
1982
        133 => 133,
1983
        134 => 134,
1984
        135 => 135,
1985
        136 => 136,
1986
        137 => 137,
1987
        138 => 138,
1988
        139 => 139,
1989
        140 => 140,
1990
        141 => 141,
1991
        142 => 142,
1992
        143 => 143,
1993
        144 => 144,
1994
        145 => 145,
1995
        146 => 146,
1996
        149 => 149,
1997
        150 => 150,
1998
        152 => 152,
1999
        153 => 153,
2000
        156 => 156,
2001
        158 => 158,
2002
        159 => 159,
2003
        160 => 160,
2004
        161 => 161,
2005
        162 => 162,
2006
        163 => 163,
2007
        164 => 164,
2008
        165 => 165,
2009
        166 => 166,
2010
        167 => 167,
2011
        168 => 167,
2012
        170 => 170,
2013
        172 => 172,
2014
        173 => 173,
2015
        176 => 176,
2016
        177 => 177,
2017
        178 => 178,
2018
        179 => 179,
2019
        182 => 179,
2020
        180 => 180,
2021
        183 => 180,
2022
        181 => 181,
2023
        184 => 184,
2024
        185 => 185,
2025
    );
2026
// line 233 "../smarty/lexer/smarty_internal_templateparser.y"
2027
    public function yy_r0(){
2028
    $this->root_buffer->prepend_array($this, $this->template_prefix);
2029
    $this->root_buffer->append_array($this, $this->template_postfix);
2030
    $this->_retvalue = $this->root_buffer->to_smarty_php($this);
2031
    }
2032
// line 240 "../smarty/lexer/smarty_internal_templateparser.y"
2033
    public function yy_r1(){
2034
         $text = $this->yystack[ $this->yyidx + 0 ]->minor;
2035
2036
         if ((string)$text == '') {
2037
            $this->current_buffer->append_subtree($this, null);
2038
         }
2039
2040
         $this->current_buffer->append_subtree($this, new Smarty_Internal_ParseTree_Text($text, $this->strip));
2041
    }
2042
// line 250 "../smarty/lexer/smarty_internal_templateparser.y"
2043
    public function yy_r2(){
2044
    $this->strip = true;
2045
    }
2046
// line 254 "../smarty/lexer/smarty_internal_templateparser.y"
2047
    public function yy_r3(){
2048
    $this->strip = false;
2049
    }
2050
// line 259 "../smarty/lexer/smarty_internal_templateparser.y"
2051
    public function yy_r4(){
2052
       $this->current_buffer->append_subtree($this, new Smarty_Internal_ParseTree_Text($this->yystack[$this->yyidx + -1]->minor));
2053
    }
2054
// line 264 "../smarty/lexer/smarty_internal_templateparser.y"
2055
    public function yy_r5(){
2056
    $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor.$this->yystack[$this->yyidx + -1]->minor;
2057
    }
2058
// line 267 "../smarty/lexer/smarty_internal_templateparser.y"
2059
    public function yy_r6(){
2060
    $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;
2061
    }
2062
// line 271 "../smarty/lexer/smarty_internal_templateparser.y"
2063
    public function yy_r7(){
2064
        $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;
2065
2066
    }
2067
// line 276 "../smarty/lexer/smarty_internal_templateparser.y"
2068
    public function yy_r8(){
2069
    $this->_retvalue = '';
2070
    }
2071
// line 280 "../smarty/lexer/smarty_internal_templateparser.y"
2072
    public function yy_r9(){
2073
      if ($this->compiler->has_code) {
2074
          $this->current_buffer->append_subtree($this, $this->mergePrefixCode($this->yystack[$this->yyidx + 0]->minor));
2075
      }
2076
     $this->compiler->has_variable_string = false;
2077
     $this->block_nesting_level = count($this->compiler->_tag_stack);
2078
    }
2079
// line 292 "../smarty/lexer/smarty_internal_templateparser.y"
2080
    public function yy_r11(){
2081
    $var = trim(substr($this->yystack[$this->yyidx + 0]->minor, $this->compiler->getLdelLength(), -$this->compiler->getRdelLength()), ' $');
2082
    if (preg_match('/^(.*)(\s+nocache)$/', $var, $match)) {
2083
        $this->_retvalue = $this->compiler->compileTag('private_print_expression',array('nocache'),array('value'=>$this->compiler->compileVariable('\''.$match[1].'\'')));
2084
    } else {
2085
        $this->_retvalue = $this->compiler->compileTag('private_print_expression',array(),array('value'=>$this->compiler->compileVariable('\''.$var.'\'')));
2086
    }
2087
    }
2088
// line 302 "../smarty/lexer/smarty_internal_templateparser.y"
2089
    public function yy_r12(){
2090
    $tag = trim(substr($this->yystack[$this->yyidx + 0]->minor, $this->compiler->getLdelLength(), -$this->compiler->getRdelLength()));
2091
    if ($tag == 'strip') {
2092
        $this->strip = true;
2093
        $this->_retvalue = null;
2094
    } else {
2095
        if (defined($tag)) {
2096
            if ($this->security) {
2097
               $this->security->isTrustedConstant($tag, $this->compiler);
2098
            }
2099
            $this->_retvalue = $this->compiler->compileTag('private_print_expression',array(),array('value'=>$tag));
2100
        } else {
2101
            if (preg_match('/^(.*)(\s+nocache)$/', $tag, $match)) {
2102
                $this->_retvalue = $this->compiler->compileTag($match[1],array('\'nocache\''));
2103
            } else {
2104
                $this->_retvalue = $this->compiler->compileTag($tag,array());
2105
            }
2106
        }
2107
    }
2108
    }
2109
// line 323 "../smarty/lexer/smarty_internal_templateparser.y"
2110
    public function yy_r13(){
2111
    $j = strrpos($this->yystack[$this->yyidx + 0]->minor,'.');
2112
    if ($this->yystack[$this->yyidx + 0]->minor[$j+1] == 'c') {
2113
        // {$smarty.block.child}
2114
        $this->_retvalue = $this->compiler->compileTag('child',array(),array($this->yystack[$this->yyidx + 0]->minor));
2115
    } else {
2116
        // {$smarty.block.parent}
2117
       $this->_retvalue = $this->compiler->compileTag('parent',array(),array($this->yystack[$this->yyidx + 0]->minor));
2118
     }
2119
    }
2120
// line 334 "../smarty/lexer/smarty_internal_templateparser.y"
2121
    public function yy_r14(){
2122
    $this->_retvalue  = $this->yystack[$this->yyidx + -1]->minor;
2123
    }
2124
// line 338 "../smarty/lexer/smarty_internal_templateparser.y"
2125
    public function yy_r15(){
2126
     $this->_retvalue  = $this->yystack[$this->yyidx + -1]->minor;
2127
     }
2128
// line 342 "../smarty/lexer/smarty_internal_templateparser.y"
2129
    public function yy_r16(){
2130
    $this->_retvalue = $this->compiler->compileTag('private_print_expression',$this->yystack[$this->yyidx + 0]->minor[1],array('value'=>$this->yystack[$this->yyidx + 0]->minor[0]));
2131
    }
2132
// line 351 "../smarty/lexer/smarty_internal_templateparser.y"
2133
    public function yy_r17(){
2134
    $this->_retvalue = $this->compiler->compileTag('assign',array_merge(array(array('value'=>$this->yystack[$this->yyidx + 0]->minor[0]),array('var'=>'\''.substr($this->yystack[$this->yyidx + -1]->minor,1).'\'')),$this->yystack[$this->yyidx + 0]->minor[1]));
2135
    }
2136
// line 355 "../smarty/lexer/smarty_internal_templateparser.y"
2137
    public function yy_r18(){
2138
    $this->_retvalue = $this->compiler->compileTag('assign',array_merge(array(array('value'=>$this->yystack[$this->yyidx + 0]->minor[0]),array('var'=>$this->yystack[$this->yyidx + -1]->minor['var'])),$this->yystack[$this->yyidx + 0]->minor[1]),array('smarty_internal_index'=>$this->yystack[$this->yyidx + -1]->minor['smarty_internal_index']));
2139
    }
2140
// line 359 "../smarty/lexer/smarty_internal_templateparser.y"
2141
    public function yy_r19(){
2142
       $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;
2143
    }
2144
// line 363 "../smarty/lexer/smarty_internal_templateparser.y"
2145
    public function yy_r20(){
2146
    $this->_retvalue = array($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor);
2147
    }
2148
// line 378 "../smarty/lexer/smarty_internal_templateparser.y"
2149
    public function yy_r24(){
2150
        if (defined($this->yystack[$this->yyidx + -1]->minor)) {
2151
            if ($this->security) {
2152
                $this->security->isTrustedConstant($this->yystack[$this->yyidx + -1]->minor, $this->compiler);
2153
            }
2154
            $this->_retvalue = $this->compiler->compileTag('private_print_expression',$this->yystack[$this->yyidx + 0]->minor,array('value'=>$this->yystack[$this->yyidx + -1]->minor));
2155
        } else {
2156
            $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor);
2157
        }
2158
    }
2159
// line 388 "../smarty/lexer/smarty_internal_templateparser.y"
2160
    public function yy_r25(){
2161
        if (defined($this->yystack[$this->yyidx + 0]->minor)) {
2162
            if ($this->security) {
2163
                $this->security->isTrustedConstant($this->yystack[$this->yyidx + 0]->minor, $this->compiler);
2164
            }
2165
            $this->_retvalue = $this->compiler->compileTag('private_print_expression',array(),array('value'=>$this->yystack[$this->yyidx + 0]->minor));
2166
        } else {
2167
            $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + 0]->minor,array());
2168
        }
2169
    }
2170
// line 401 "../smarty/lexer/smarty_internal_templateparser.y"
2171
    public function yy_r26(){
2172
        if (defined($this->yystack[$this->yyidx + -2]->minor)) {
2173
            if ($this->security) {
2174
                $this->security->isTrustedConstant($this->yystack[$this->yyidx + -2]->minor, $this->compiler);
2175
            }
2176
            $this->_retvalue = $this->compiler->compileTag('private_print_expression',$this->yystack[$this->yyidx + 0]->minor,array('value'=>$this->yystack[$this->yyidx + -2]->minor, 'modifierlist'=>$this->yystack[$this->yyidx + -1]->minor));
2177
        } else {
2178
            $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -2]->minor,$this->yystack[$this->yyidx + 0]->minor, array('modifierlist'=>$this->yystack[$this->yyidx + -1]->minor));
2179
        }
2180
    }
2181
// line 413 "../smarty/lexer/smarty_internal_templateparser.y"
2182
    public function yy_r27(){
2183
    $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -3]->minor,$this->yystack[$this->yyidx + 0]->minor,array('object_method'=>$this->yystack[$this->yyidx + -1]->minor));
2184
    }
2185
// line 418 "../smarty/lexer/smarty_internal_templateparser.y"
2186
    public function yy_r28(){
2187
    $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -4]->minor,$this->yystack[$this->yyidx + 0]->minor,array('modifierlist'=>$this->yystack[$this->yyidx + -1]->minor, 'object_method'=>$this->yystack[$this->yyidx + -2]->minor));
2188
    }
2189
// line 423 "../smarty/lexer/smarty_internal_templateparser.y"
2190
    public function yy_r29(){
2191
    $this->_retvalue = $this->compiler->compileTag('make_nocache',array(array('var'=>'\''.substr($this->yystack[$this->yyidx + 0]->minor,1).'\'')));
2192
    }
2193
// line 428 "../smarty/lexer/smarty_internal_templateparser.y"
2194
    public function yy_r30(){
2195
    $tag = trim(substr($this->yystack[$this->yyidx + -1]->minor,$this->compiler->getLdelLength())); 
2196
    $this->_retvalue = $this->compiler->compileTag(($tag === 'else if')? 'elseif' : $tag,array(),array('if condition'=>$this->yystack[$this->yyidx + 0]->minor));
2197
    }
2198
// line 433 "../smarty/lexer/smarty_internal_templateparser.y"
2199
    public function yy_r31(){
2200
    $tag = trim(substr($this->yystack[$this->yyidx + -2]->minor,$this->compiler->getLdelLength()));
2201
    $this->_retvalue = $this->compiler->compileTag(($tag === 'else if')? 'elseif' : $tag,$this->yystack[$this->yyidx + 0]->minor,array('if condition'=>$this->yystack[$this->yyidx + -1]->minor));
2202
    }
2203
// line 438 "../smarty/lexer/smarty_internal_templateparser.y"
2204
    public function yy_r32(){
2205
    $tag = trim(substr($this->yystack[$this->yyidx + -1]->minor,$this->compiler->getLdelLength()));
2206
    $this->_retvalue = $this->compiler->compileTag(($tag === 'else if')? 'elseif' : $tag,array(),array('if condition'=>$this->yystack[$this->yyidx + 0]->minor));
2207
    }
2208
// line 449 "../smarty/lexer/smarty_internal_templateparser.y"
2209
    public function yy_r34(){
2210
    $this->_retvalue = $this->compiler->compileTag('for',array_merge($this->yystack[$this->yyidx + 0]->minor,array(array('start'=>$this->yystack[$this->yyidx + -6]->minor),array('ifexp'=>$this->yystack[$this->yyidx + -4]->minor),array('var'=>$this->yystack[$this->yyidx + -2]->minor),array('step'=>$this->yystack[$this->yyidx + -1]->minor))),1);
0 ignored issues
show
Bug introduced by
1 of type integer is incompatible with the type array expected by parameter $parameter of Smarty_Internal_TemplateCompilerBase::compileTag(). ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

2210
    $this->_retvalue = $this->compiler->compileTag('for',array_merge($this->yystack[$this->yyidx + 0]->minor,array(array('start'=>$this->yystack[$this->yyidx + -6]->minor),array('ifexp'=>$this->yystack[$this->yyidx + -4]->minor),array('var'=>$this->yystack[$this->yyidx + -2]->minor),array('step'=>$this->yystack[$this->yyidx + -1]->minor))),/** @scrutinizer ignore-type */ 1);
Loading history...
2211
    }
2212
// line 453 "../smarty/lexer/smarty_internal_templateparser.y"
2213
    public function yy_r35(){
2214
    $this->_retvalue = '='.$this->yystack[$this->yyidx + 0]->minor;
2215
    }
2216
// line 461 "../smarty/lexer/smarty_internal_templateparser.y"
2217
    public function yy_r37(){
2218
    $this->_retvalue = $this->compiler->compileTag('for',array_merge($this->yystack[$this->yyidx + 0]->minor,array(array('start'=>$this->yystack[$this->yyidx + -3]->minor),array('to'=>$this->yystack[$this->yyidx + -1]->minor))),0);
0 ignored issues
show
Bug introduced by
0 of type integer is incompatible with the type array expected by parameter $parameter of Smarty_Internal_TemplateCompilerBase::compileTag(). ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

2218
    $this->_retvalue = $this->compiler->compileTag('for',array_merge($this->yystack[$this->yyidx + 0]->minor,array(array('start'=>$this->yystack[$this->yyidx + -3]->minor),array('to'=>$this->yystack[$this->yyidx + -1]->minor))),/** @scrutinizer ignore-type */ 0);
Loading history...
2219
    }
2220
// line 465 "../smarty/lexer/smarty_internal_templateparser.y"
2221
    public function yy_r38(){
2222
    $this->_retvalue = $this->compiler->compileTag('for',array_merge($this->yystack[$this->yyidx + 0]->minor,array(array('start'=>$this->yystack[$this->yyidx + -5]->minor),array('to'=>$this->yystack[$this->yyidx + -3]->minor),array('step'=>$this->yystack[$this->yyidx + -1]->minor))),0);
0 ignored issues
show
Bug introduced by
0 of type integer is incompatible with the type array expected by parameter $parameter of Smarty_Internal_TemplateCompilerBase::compileTag(). ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

2222
    $this->_retvalue = $this->compiler->compileTag('for',array_merge($this->yystack[$this->yyidx + 0]->minor,array(array('start'=>$this->yystack[$this->yyidx + -5]->minor),array('to'=>$this->yystack[$this->yyidx + -3]->minor),array('step'=>$this->yystack[$this->yyidx + -1]->minor))),/** @scrutinizer ignore-type */ 0);
Loading history...
2223
    }
2224
// line 470 "../smarty/lexer/smarty_internal_templateparser.y"
2225
    public function yy_r39(){
2226
    $this->_retvalue = $this->compiler->compileTag('foreach',array_merge($this->yystack[$this->yyidx + 0]->minor,array(array('from'=>$this->yystack[$this->yyidx + -3]->minor),array('item'=>$this->yystack[$this->yyidx + -1]->minor))));
2227
    }
2228
// line 474 "../smarty/lexer/smarty_internal_templateparser.y"
2229
    public function yy_r40(){
2230
    $this->_retvalue = $this->compiler->compileTag('foreach',array_merge($this->yystack[$this->yyidx + 0]->minor,array(array('from'=>$this->yystack[$this->yyidx + -5]->minor),array('item'=>$this->yystack[$this->yyidx + -1]->minor),array('key'=>$this->yystack[$this->yyidx + -3]->minor))));
2231
    }
2232
// line 477 "../smarty/lexer/smarty_internal_templateparser.y"
2233
    public function yy_r41(){
2234
    $this->_retvalue = $this->compiler->compileTag('foreach',$this->yystack[$this->yyidx + 0]->minor);
2235
    }
2236
// line 482 "../smarty/lexer/smarty_internal_templateparser.y"
2237
    public function yy_r42(){
2238
    $this->_retvalue = $this->compiler->compileTag('setfilter',array(),array('modifier_list'=>array(array_merge(array($this->yystack[$this->yyidx + -1]->minor),$this->yystack[$this->yyidx + 0]->minor))));
2239
    }
2240
// line 486 "../smarty/lexer/smarty_internal_templateparser.y"
2241
    public function yy_r43(){
2242
    $this->_retvalue = $this->compiler->compileTag('setfilter',array(),array('modifier_list'=>array_merge(array(array_merge(array($this->yystack[$this->yyidx + -2]->minor),$this->yystack[$this->yyidx + -1]->minor)),$this->yystack[$this->yyidx + 0]->minor)));
2243
    }
2244
// line 492 "../smarty/lexer/smarty_internal_templateparser.y"
2245
    public function yy_r44(){
2246
    $tag = trim(substr($this->yystack[$this->yyidx + 0]->minor, $this->compiler->getLdelLength(), -$this->compiler->getRdelLength()), ' /');
2247
    if ($tag === 'strip') {
2248
        $this->strip = false;
2249
        $this->_retvalue = null;
2250
    } else {
2251
       $this->_retvalue = $this->compiler->compileTag($tag.'close',array());
2252
    }
2253
     }
2254
// line 501 "../smarty/lexer/smarty_internal_templateparser.y"
2255
    public function yy_r45(){
2256
    $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + 0]->minor.'close',array());
2257
    }
2258
// line 505 "../smarty/lexer/smarty_internal_templateparser.y"
2259
    public function yy_r46(){
2260
    $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -1]->minor.'close',array(),array('modifier_list'=>$this->yystack[$this->yyidx + 0]->minor));
2261
    }
2262
// line 510 "../smarty/lexer/smarty_internal_templateparser.y"
2263
    public function yy_r47(){
2264
    $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -2]->minor.'close',array(),array('object_method'=>$this->yystack[$this->yyidx + 0]->minor));
2265
    }
2266
// line 514 "../smarty/lexer/smarty_internal_templateparser.y"
2267
    public function yy_r48(){
2268
    $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -3]->minor.'close',array(),array('object_method'=>$this->yystack[$this->yyidx + -1]->minor, 'modifier_list'=>$this->yystack[$this->yyidx + 0]->minor));
2269
    }
2270
// line 522 "../smarty/lexer/smarty_internal_templateparser.y"
2271
    public function yy_r49(){
2272
    $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor;
2273
    $this->_retvalue[] = $this->yystack[$this->yyidx + 0]->minor;
2274
    }
2275
// line 528 "../smarty/lexer/smarty_internal_templateparser.y"
2276
    public function yy_r50(){
2277
    $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor);
2278
    }
2279
// line 533 "../smarty/lexer/smarty_internal_templateparser.y"
2280
    public function yy_r51(){
2281
    $this->_retvalue = array();
2282
    }
2283
// line 538 "../smarty/lexer/smarty_internal_templateparser.y"
2284
    public function yy_r52(){
2285
    if (defined($this->yystack[$this->yyidx + 0]->minor)) {
2286
        if ($this->security) {
2287
            $this->security->isTrustedConstant($this->yystack[$this->yyidx + 0]->minor, $this->compiler);
2288
        }
2289
        $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>$this->yystack[$this->yyidx + 0]->minor);
2290
    } else {
2291
        $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>'\''.$this->yystack[$this->yyidx + 0]->minor.'\'');
2292
    }
2293
    }
2294
// line 549 "../smarty/lexer/smarty_internal_templateparser.y"
2295
    public function yy_r53(){
2296
    $this->_retvalue = array(trim($this->yystack[$this->yyidx + -1]->minor," =\n\r\t")=>$this->yystack[$this->yyidx + 0]->minor);
2297
    }
2298
// line 557 "../smarty/lexer/smarty_internal_templateparser.y"
2299
    public function yy_r55(){
2300
    $this->_retvalue = '\''.$this->yystack[$this->yyidx + 0]->minor.'\'';
2301
    }
2302
// line 569 "../smarty/lexer/smarty_internal_templateparser.y"
2303
    public function yy_r58(){
2304
    $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>$this->yystack[$this->yyidx + 0]->minor);
2305
    }
2306
// line 582 "../smarty/lexer/smarty_internal_templateparser.y"
2307
    public function yy_r60(){
2308
    $this->yystack[$this->yyidx + -2]->minor[]=$this->yystack[$this->yyidx + 0]->minor;
2309
    $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor;
2310
    }
2311
// line 587 "../smarty/lexer/smarty_internal_templateparser.y"
2312
    public function yy_r61(){
2313
    $this->_retvalue = array('var' => '\''.substr($this->yystack[$this->yyidx + -2]->minor,1).'\'', 'value'=>$this->yystack[$this->yyidx + 0]->minor);
2314
    }
2315
// line 594 "../smarty/lexer/smarty_internal_templateparser.y"
2316
    public function yy_r63(){
2317
    $this->_retvalue = array('var' => $this->yystack[$this->yyidx + -2]->minor, 'value'=>$this->yystack[$this->yyidx + 0]->minor);
2318
    }
2319
// line 598 "../smarty/lexer/smarty_internal_templateparser.y"
2320
    public function yy_r64(){
2321
    $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor;
2322
    }
2323
// line 618 "../smarty/lexer/smarty_internal_templateparser.y"
2324
    public function yy_r67(){
2325
    $this->_retvalue = '$_smarty_tpl->getStreamVariable(\''.substr($this->yystack[$this->yyidx + -2]->minor,1).'://' . $this->yystack[$this->yyidx + 0]->minor . '\')';
2326
    }
2327
// line 623 "../smarty/lexer/smarty_internal_templateparser.y"
2328
    public function yy_r68(){
2329
    $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor . trim($this->yystack[$this->yyidx + -1]->minor) . $this->yystack[$this->yyidx + 0]->minor;
2330
    }
2331
// line 633 "../smarty/lexer/smarty_internal_templateparser.y"
2332
    public function yy_r70(){
2333
    $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor['pre']. $this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor['op'].$this->yystack[$this->yyidx + 0]->minor .')';
2334
    }
2335
// line 637 "../smarty/lexer/smarty_internal_templateparser.y"
2336
    public function yy_r71(){
2337
    $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;
2338
    }
2339
// line 641 "../smarty/lexer/smarty_internal_templateparser.y"
2340
    public function yy_r72(){
2341
    $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor . $this->yystack[$this->yyidx + -1]->minor . ')';
2342
    }
2343
// line 645 "../smarty/lexer/smarty_internal_templateparser.y"
2344
    public function yy_r73(){
2345
    $this->_retvalue = 'in_array('.$this->yystack[$this->yyidx + -2]->minor.','.$this->yystack[$this->yyidx + 0]->minor.')';
2346
    }
2347
// line 649 "../smarty/lexer/smarty_internal_templateparser.y"
2348
    public function yy_r74(){
2349
    $this->_retvalue = 'in_array('.$this->yystack[$this->yyidx + -2]->minor.',(array)'.$this->yystack[$this->yyidx + 0]->minor.')';
2350
    }
2351
// line 657 "../smarty/lexer/smarty_internal_templateparser.y"
2352
    public function yy_r75(){
2353
    $this->_retvalue = $this->yystack[$this->yyidx + -5]->minor.' ? '. $this->compiler->compileVariable('\''.substr($this->yystack[$this->yyidx + -2]->minor,1).'\'') . ' : '.$this->yystack[$this->yyidx + 0]->minor;
2354
    }
2355
// line 661 "../smarty/lexer/smarty_internal_templateparser.y"
2356
    public function yy_r76(){
2357
    $this->_retvalue = $this->yystack[$this->yyidx + -5]->minor.' ? '.$this->yystack[$this->yyidx + -2]->minor.' : '.$this->yystack[$this->yyidx + 0]->minor;
2358
    }
2359
// line 671 "../smarty/lexer/smarty_internal_templateparser.y"
2360
    public function yy_r78(){
2361
    $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;
2362
    }
2363
// line 676 "../smarty/lexer/smarty_internal_templateparser.y"
2364
    public function yy_r79(){
2365
    $this->_retvalue = '!'.$this->yystack[$this->yyidx + 0]->minor;
2366
    }
2367
// line 697 "../smarty/lexer/smarty_internal_templateparser.y"
2368
    public function yy_r84(){
2369
    $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'.'.$this->yystack[$this->yyidx + 0]->minor;
2370
    }
2371
// line 701 "../smarty/lexer/smarty_internal_templateparser.y"
2372
    public function yy_r85(){
2373
    $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.'.';
2374
    }
2375
// line 705 "../smarty/lexer/smarty_internal_templateparser.y"
2376
    public function yy_r86(){
2377
    $this->_retvalue = '.'.$this->yystack[$this->yyidx + 0]->minor;
2378
    }
2379
// line 710 "../smarty/lexer/smarty_internal_templateparser.y"
2380
    public function yy_r87(){
2381
    if (defined($this->yystack[$this->yyidx + 0]->minor)) {
2382
        if ($this->security) {
2383
             $this->security->isTrustedConstant($this->yystack[$this->yyidx + 0]->minor, $this->compiler);
2384
        }
2385
        $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;
2386
    } else {
2387
        $this->_retvalue = '\''.$this->yystack[$this->yyidx + 0]->minor.'\'';
2388
    }
2389
    }
2390
// line 727 "../smarty/lexer/smarty_internal_templateparser.y"
2391
    public function yy_r89(){
2392
    $this->_retvalue = '('. $this->yystack[$this->yyidx + -1]->minor .')';
2393
    }
2394
// line 731 "../smarty/lexer/smarty_internal_templateparser.y"
2395
    public function yy_r90(){
2396
      $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;
2397
    }
2398
// line 749 "../smarty/lexer/smarty_internal_templateparser.y"
2399
    public function yy_r94(){
2400
	    if ($this->security && $this->security->static_classes !== array()) {
2401
		    $this->compiler->trigger_template_error('dynamic static class not allowed by security setting');
2402
	    }
2403
    $prefixVar = $this->compiler->getNewPrefixVariable();
2404
    if ($this->yystack[$this->yyidx + -2]->minor['var'] === '\'smarty\'') {
2405
        $this->compiler->appendPrefixCode("<?php {$prefixVar} = ". $this->compiler->compileTag('private_special_variable',array(),$this->yystack[$this->yyidx + -2]->minor['smarty_internal_index']).';?>');
2406
     } else {
2407
        $this->compiler->appendPrefixCode("<?php  {$prefixVar} = ". $this->compiler->compileVariable($this->yystack[$this->yyidx + -2]->minor['var']).$this->yystack[$this->yyidx + -2]->minor['smarty_internal_index'].';?>');
2408
    }
2409
    $this->_retvalue = $prefixVar .'::'.$this->yystack[$this->yyidx + 0]->minor[0].$this->yystack[$this->yyidx + 0]->minor[1];
2410
    }
2411
// line 760 "../smarty/lexer/smarty_internal_templateparser.y"
2412
    public function yy_r95(){
2413
    $prefixVar = $this->compiler->getNewPrefixVariable();
2414
    $tmp = $this->compiler->appendCode('<?php ob_start();?>', $this->yystack[$this->yyidx + 0]->minor);
2415
    $this->compiler->appendPrefixCode($this->compiler->appendCode($tmp, "<?php {$prefixVar} = ob_get_clean();?>"));
2416
    $this->_retvalue = $prefixVar;
2417
    }
2418
// line 767 "../smarty/lexer/smarty_internal_templateparser.y"
2419
    public function yy_r96(){
2420
    $this->_retvalue = $this->compiler->compileTag('private_modifier',array(),array('value'=>$this->yystack[$this->yyidx + -1]->minor,'modifierlist'=>$this->yystack[$this->yyidx + 0]->minor));
2421
    }
2422
// line 780 "../smarty/lexer/smarty_internal_templateparser.y"
2423
    public function yy_r99(){
2424
    if (!in_array(strtolower($this->yystack[$this->yyidx + -2]->minor), array('self', 'parent')) && (!$this->security || $this->security->isTrustedStaticClassAccess($this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + 0]->minor, $this->compiler))) {
2425
        if (isset($this->smarty->registered_classes[$this->yystack[$this->yyidx + -2]->minor])) {
2426
            $this->_retvalue = $this->smarty->registered_classes[$this->yystack[$this->yyidx + -2]->minor].'::'.$this->yystack[$this->yyidx + 0]->minor[0].$this->yystack[$this->yyidx + 0]->minor[1];
2427
        } else {
2428
            trigger_error('Using unregistered static method "' . $this->yystack[$this->yyidx + -2]->minor.'::'.$this->yystack[$this->yyidx + 0]->minor[0] . '" in a template is deprecated and will be ' .
2429
                'removed in a future release. Use Smarty::registerClass to explicitly register ' .
2430
                'a class for access.', E_USER_DEPRECATED);
2431
            $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'::'.$this->yystack[$this->yyidx + 0]->minor[0].$this->yystack[$this->yyidx + 0]->minor[1];
2432
        } 
2433
    } else {
2434
        $this->compiler->trigger_template_error ('static class \''.$this->yystack[$this->yyidx + -2]->minor.'\' is undefined or not allowed by security setting');
2435
    }
2436
    }
2437
// line 799 "../smarty/lexer/smarty_internal_templateparser.y"
2438
    public function yy_r101(){
2439
    $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;
2440
        }
2441
// line 810 "../smarty/lexer/smarty_internal_templateparser.y"
2442
    public function yy_r102(){
2443
   $this->_retvalue = $this->compiler->compileVariable('\''.substr($this->yystack[$this->yyidx + 0]->minor,1).'\'');
2444
    }
2445
// line 813 "../smarty/lexer/smarty_internal_templateparser.y"
2446
    public function yy_r103(){
2447
    if ($this->yystack[$this->yyidx + 0]->minor['var'] === '\'smarty\'') {
2448
        $smarty_var = $this->compiler->compileTag('private_special_variable',array(),$this->yystack[$this->yyidx + 0]->minor['smarty_internal_index']);
2449
        $this->_retvalue = $smarty_var;
2450
    } else {
2451
        // used for array reset,next,prev,end,current 
2452
        $this->last_variable = $this->yystack[$this->yyidx + 0]->minor['var'];
2453
        $this->last_index = $this->yystack[$this->yyidx + 0]->minor['smarty_internal_index'];
2454
        $this->_retvalue = $this->compiler->compileVariable($this->yystack[$this->yyidx + 0]->minor['var']).$this->yystack[$this->yyidx + 0]->minor['smarty_internal_index'];
2455
    }
2456
    }
2457
// line 826 "../smarty/lexer/smarty_internal_templateparser.y"
2458
    public function yy_r104(){
2459
    $this->_retvalue = '$_smarty_tpl->tpl_vars['. $this->yystack[$this->yyidx + -2]->minor .']->'.$this->yystack[$this->yyidx + 0]->minor;
2460
    }
2461
// line 836 "../smarty/lexer/smarty_internal_templateparser.y"
2462
    public function yy_r106(){
2463
    $this->_retvalue = $this->compiler->compileConfigVariable('\'' . $this->yystack[$this->yyidx + -1]->minor . '\'');
2464
    }
2465
// line 840 "../smarty/lexer/smarty_internal_templateparser.y"
2466
    public function yy_r107(){
2467
    $this->_retvalue = '(is_array($tmp = ' . $this->compiler->compileConfigVariable('\'' . $this->yystack[$this->yyidx + -2]->minor . '\'') . ') ? $tmp'.$this->yystack[$this->yyidx + 0]->minor.' :null)';
2468
    }
2469
// line 844 "../smarty/lexer/smarty_internal_templateparser.y"
2470
    public function yy_r108(){
2471
    $this->_retvalue = $this->compiler->compileConfigVariable($this->yystack[$this->yyidx + -1]->minor);
2472
    }
2473
// line 848 "../smarty/lexer/smarty_internal_templateparser.y"
2474
    public function yy_r109(){
2475
    $this->_retvalue = '(is_array($tmp = ' . $this->compiler->compileConfigVariable($this->yystack[$this->yyidx + -2]->minor) . ') ? $tmp'.$this->yystack[$this->yyidx + 0]->minor.' : null)';
2476
    }
2477
// line 852 "../smarty/lexer/smarty_internal_templateparser.y"
2478
    public function yy_r110(){
2479
    $this->_retvalue = array('var'=>'\''.substr($this->yystack[$this->yyidx + -1]->minor,1).'\'', 'smarty_internal_index'=>$this->yystack[$this->yyidx + 0]->minor);
2480
    }
2481
// line 855 "../smarty/lexer/smarty_internal_templateparser.y"
2482
    public function yy_r111(){
2483
    $this->_retvalue = array('var'=>$this->yystack[$this->yyidx + -1]->minor, 'smarty_internal_index'=>$this->yystack[$this->yyidx + 0]->minor);
2484
    }
2485
// line 868 "../smarty/lexer/smarty_internal_templateparser.y"
2486
    public function yy_r113(){
2487
    return;
2488
    }
2489
// line 874 "../smarty/lexer/smarty_internal_templateparser.y"
2490
    public function yy_r114(){
2491
    $this->_retvalue = '['.$this->compiler->compileVariable('\''.substr($this->yystack[$this->yyidx + 0]->minor,1).'\'').']';
2492
    }
2493
// line 877 "../smarty/lexer/smarty_internal_templateparser.y"
2494
    public function yy_r115(){
2495
    $this->_retvalue = '['.$this->compiler->compileVariable($this->yystack[$this->yyidx + 0]->minor).']';
2496
    }
2497
// line 881 "../smarty/lexer/smarty_internal_templateparser.y"
2498
    public function yy_r116(){
2499
    $this->_retvalue = '['.$this->compiler->compileVariable($this->yystack[$this->yyidx + -2]->minor).'->'.$this->yystack[$this->yyidx + 0]->minor.']';
2500
    }
2501
// line 885 "../smarty/lexer/smarty_internal_templateparser.y"
2502
    public function yy_r117(){
2503
    $this->_retvalue = '[\''. $this->yystack[$this->yyidx + 0]->minor .'\']';
2504
    }
2505
// line 889 "../smarty/lexer/smarty_internal_templateparser.y"
2506
    public function yy_r118(){
2507
    $this->_retvalue = '['. $this->yystack[$this->yyidx + 0]->minor .']';
2508
    }
2509
// line 894 "../smarty/lexer/smarty_internal_templateparser.y"
2510
    public function yy_r119(){
2511
    $this->_retvalue = '['. $this->yystack[$this->yyidx + -1]->minor .']';
2512
    }
2513
// line 899 "../smarty/lexer/smarty_internal_templateparser.y"
2514
    public function yy_r120(){
2515
    $this->_retvalue = '['.$this->compiler->compileTag('private_special_variable',array(),'[\'section\'][\''.$this->yystack[$this->yyidx + -1]->minor.'\'][\'index\']').']';
0 ignored issues
show
Bug introduced by
'['section']['' . $this-...->minor . '']['index']' of type string is incompatible with the type array expected by parameter $parameter of Smarty_Internal_TemplateCompilerBase::compileTag(). ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

2515
    $this->_retvalue = '['.$this->compiler->compileTag('private_special_variable',array(),/** @scrutinizer ignore-type */ '[\'section\'][\''.$this->yystack[$this->yyidx + -1]->minor.'\'][\'index\']').']';
Loading history...
2516
    }
2517
// line 903 "../smarty/lexer/smarty_internal_templateparser.y"
2518
    public function yy_r121(){
2519
    $this->_retvalue = '['.$this->compiler->compileTag('private_special_variable',array(),'[\'section\'][\''.$this->yystack[$this->yyidx + -3]->minor.'\'][\''.$this->yystack[$this->yyidx + -1]->minor.'\']').']';
0 ignored issues
show
Bug introduced by
'['section']['' . $this-...idx + -1]->minor . '']' of type string is incompatible with the type array expected by parameter $parameter of Smarty_Internal_TemplateCompilerBase::compileTag(). ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

2519
    $this->_retvalue = '['.$this->compiler->compileTag('private_special_variable',array(),/** @scrutinizer ignore-type */ '[\'section\'][\''.$this->yystack[$this->yyidx + -3]->minor.'\'][\''.$this->yystack[$this->yyidx + -1]->minor.'\']').']';
Loading history...
2520
    }
2521
// line 906 "../smarty/lexer/smarty_internal_templateparser.y"
2522
    public function yy_r122(){
2523
    $this->_retvalue = '['.$this->yystack[$this->yyidx + -1]->minor.']';
2524
    }
2525
// line 912 "../smarty/lexer/smarty_internal_templateparser.y"
2526
    public function yy_r124(){
2527
    $this->_retvalue = '['.$this->compiler->compileVariable('\''.substr($this->yystack[$this->yyidx + -1]->minor,1).'\'').']';
2528
    }
2529
// line 928 "../smarty/lexer/smarty_internal_templateparser.y"
2530
    public function yy_r128(){
2531
    $this->_retvalue = '[]';
2532
    }
2533
// line 938 "../smarty/lexer/smarty_internal_templateparser.y"
2534
    public function yy_r129(){
2535
    $this->_retvalue = '\''.substr($this->yystack[$this->yyidx + 0]->minor,1).'\'';
2536
    }
2537
// line 942 "../smarty/lexer/smarty_internal_templateparser.y"
2538
    public function yy_r130(){
2539
    $this->_retvalue = '\'\'';
2540
    }
2541
// line 947 "../smarty/lexer/smarty_internal_templateparser.y"
2542
    public function yy_r131(){
2543
    $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.'.'.$this->yystack[$this->yyidx + 0]->minor;
2544
    }
2545
// line 955 "../smarty/lexer/smarty_internal_templateparser.y"
2546
    public function yy_r133(){
2547
    $var = trim(substr($this->yystack[$this->yyidx + 0]->minor, $this->compiler->getLdelLength(), -$this->compiler->getRdelLength()), ' $');
2548
    $this->_retvalue = $this->compiler->compileVariable('\''.$var.'\'');
2549
    }
2550
// line 961 "../smarty/lexer/smarty_internal_templateparser.y"
2551
    public function yy_r134(){
2552
    $this->_retvalue = '('.$this->yystack[$this->yyidx + -1]->minor.')';
2553
    }
2554
// line 968 "../smarty/lexer/smarty_internal_templateparser.y"
2555
    public function yy_r135(){
2556
    if ($this->yystack[$this->yyidx + -1]->minor['var'] === '\'smarty\'') {
2557
        $this->_retvalue =  $this->compiler->compileTag('private_special_variable',array(),$this->yystack[$this->yyidx + -1]->minor['smarty_internal_index']).$this->yystack[$this->yyidx + 0]->minor;
2558
    } else {
2559
        $this->_retvalue = $this->compiler->compileVariable($this->yystack[$this->yyidx + -1]->minor['var']).$this->yystack[$this->yyidx + -1]->minor['smarty_internal_index'].$this->yystack[$this->yyidx + 0]->minor;
2560
    }
2561
    }
2562
// line 977 "../smarty/lexer/smarty_internal_templateparser.y"
2563
    public function yy_r136(){
2564
    $this->_retvalue  = $this->yystack[$this->yyidx + 0]->minor;
2565
    }
2566
// line 982 "../smarty/lexer/smarty_internal_templateparser.y"
2567
    public function yy_r137(){
2568
    $this->_retvalue  = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;
2569
    }
2570
// line 987 "../smarty/lexer/smarty_internal_templateparser.y"
2571
    public function yy_r138(){
2572
    if ($this->security && substr($this->yystack[$this->yyidx + -1]->minor,0,1) === '_') {
2573
        $this->compiler->trigger_template_error (self::ERR1);
2574
    }
2575
    $this->_retvalue = '->'.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;
2576
    }
2577
// line 994 "../smarty/lexer/smarty_internal_templateparser.y"
2578
    public function yy_r139(){
2579
    if ($this->security) {
2580
        $this->compiler->trigger_template_error (self::ERR2);
2581
    }
2582
    $this->_retvalue = '->{'.$this->compiler->compileVariable($this->yystack[$this->yyidx + -1]->minor).$this->yystack[$this->yyidx + 0]->minor.'}';
2583
    }
2584
// line 1001 "../smarty/lexer/smarty_internal_templateparser.y"
2585
    public function yy_r140(){
2586
    if ($this->security) {
2587
        $this->compiler->trigger_template_error (self::ERR2);
2588
    }
2589
    $this->_retvalue = '->{'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + 0]->minor.'}';
2590
    }
2591
// line 1008 "../smarty/lexer/smarty_internal_templateparser.y"
2592
    public function yy_r141(){
2593
    if ($this->security) {
2594
        $this->compiler->trigger_template_error (self::ERR2);
2595
    }
2596
    $this->_retvalue = '->{\''.$this->yystack[$this->yyidx + -4]->minor.'\'.'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + 0]->minor.'}';
2597
    }
2598
// line 1016 "../smarty/lexer/smarty_internal_templateparser.y"
2599
    public function yy_r142(){
2600
    $this->_retvalue = '->'.$this->yystack[$this->yyidx + 0]->minor;
2601
    }
2602
// line 1024 "../smarty/lexer/smarty_internal_templateparser.y"
2603
    public function yy_r143(){
2604
    $this->_retvalue = $this->compiler->compilePHPFunctionCall($this->yystack[$this->yyidx + -3]->minor, $this->yystack[$this->yyidx + -1]->minor);
2605
    }
2606
// line 1032 "../smarty/lexer/smarty_internal_templateparser.y"
2607
    public function yy_r144(){
2608
    if ($this->security && substr($this->yystack[$this->yyidx + -3]->minor,0,1) === '_') {
2609
        $this->compiler->trigger_template_error (self::ERR1);
2610
    }
2611
    $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor . '('. implode(',',$this->yystack[$this->yyidx + -1]->minor) .')';
2612
    }
2613
// line 1039 "../smarty/lexer/smarty_internal_templateparser.y"
2614
    public function yy_r145(){
2615
    if ($this->security) {
2616
        $this->compiler->trigger_template_error (self::ERR2);
2617
    }
2618
    $prefixVar = $this->compiler->getNewPrefixVariable();
2619
    $this->compiler->appendPrefixCode("<?php {$prefixVar} = ".$this->compiler->compileVariable('\''.substr($this->yystack[$this->yyidx + -3]->minor,1).'\'').';?>');
2620
    $this->_retvalue = $prefixVar .'('. implode(',',$this->yystack[$this->yyidx + -1]->minor) .')';
2621
    }
2622
// line 1050 "../smarty/lexer/smarty_internal_templateparser.y"
2623
    public function yy_r146(){
2624
    $this->_retvalue = array_merge($this->yystack[$this->yyidx + -2]->minor,array($this->yystack[$this->yyidx + 0]->minor));
2625
    }
2626
// line 1067 "../smarty/lexer/smarty_internal_templateparser.y"
2627
    public function yy_r149(){
2628
    $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)));
2629
    }
2630
// line 1071 "../smarty/lexer/smarty_internal_templateparser.y"
2631
    public function yy_r150(){
2632
    $this->_retvalue = array(array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor));
2633
    }
2634
// line 1079 "../smarty/lexer/smarty_internal_templateparser.y"
2635
    public function yy_r152(){
2636
    $this->_retvalue =  array($this->yystack[$this->yyidx + 0]->minor);
2637
    }
2638
// line 1087 "../smarty/lexer/smarty_internal_templateparser.y"
2639
    public function yy_r153(){
2640
    $this->_retvalue = array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor);
2641
    }
2642
// line 1100 "../smarty/lexer/smarty_internal_templateparser.y"
2643
    public function yy_r156(){
2644
    $this->_retvalue = array(trim($this->yystack[$this->yyidx + -1]->minor).$this->yystack[$this->yyidx + 0]->minor);
2645
    }
2646
// line 1109 "../smarty/lexer/smarty_internal_templateparser.y"
2647
    public function yy_r158(){
2648
    $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor, '', 'method');
2649
    }
2650
// line 1114 "../smarty/lexer/smarty_internal_templateparser.y"
2651
    public function yy_r159(){
2652
    $this->_retvalue = array($this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor, 'method');
2653
    }
2654
// line 1119 "../smarty/lexer/smarty_internal_templateparser.y"
2655
    public function yy_r160(){
2656
    $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor, '');
2657
    }
2658
// line 1124 "../smarty/lexer/smarty_internal_templateparser.y"
2659
    public function yy_r161(){
2660
    $this->_retvalue = array($this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor, 'property');
2661
    }
2662
// line 1129 "../smarty/lexer/smarty_internal_templateparser.y"
2663
    public function yy_r162(){
2664
    $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor, 'property');
2665
    }
2666
// line 1135 "../smarty/lexer/smarty_internal_templateparser.y"
2667
    public function yy_r163(){
2668
    $this->_retvalue = ' '. trim($this->yystack[$this->yyidx + 0]->minor) . ' ';
2669
    }
2670
// line 1139 "../smarty/lexer/smarty_internal_templateparser.y"
2671
    public function yy_r164(){
2672
    static $lops = array(
2673
        'eq' => ' == ',
2674
        'ne' => ' != ',
2675
        'neq' => ' != ',
2676
        'gt' => ' > ',
2677
        'ge' => ' >= ',
2678
        'gte' => ' >= ',
2679
        'lt' =>  ' < ',
2680
        'le' =>  ' <= ',
2681
        'lte' => ' <= ',
2682
        'mod' =>  ' % ',
2683
        'and' => ' && ',
2684
        'or' => ' || ',
2685
        'xor' => ' xor ',
2686
         );
2687
    $op = strtolower(preg_replace('/\s*/', '', $this->yystack[$this->yyidx + 0]->minor));
2688
    $this->_retvalue = $lops[$op];
2689
    }
2690
// line 1158 "../smarty/lexer/smarty_internal_templateparser.y"
2691
    public function yy_r165(){
2692
     static $tlops = array(
2693
         'isdivby' => array('op' => ' % ', 'pre' => '!('),
2694
         'isnotdivby' => array('op' => ' % ', 'pre' => '('),
2695
         'isevenby' => array('op' => ' / ', 'pre' => '!(1 & '),
2696
         'isnotevenby' => array('op' => ' / ', 'pre' => '(1 & '),
2697
         'isoddby' => array('op' => ' / ', 'pre' => '(1 & '),
2698
         'isnotoddby' => array('op' => ' / ', 'pre' => '!(1 & '),
2699
         );
2700
     $op = strtolower(preg_replace('/\s*/', '', $this->yystack[$this->yyidx + 0]->minor));
2701
     $this->_retvalue = $tlops[$op];
2702
     }
2703
// line 1171 "../smarty/lexer/smarty_internal_templateparser.y"
2704
    public function yy_r166(){
2705
        static $scond = array (
2706
            'iseven' => '!(1 & ',
2707
            'isnoteven' => '(1 & ',
2708
            'isodd' => '(1 & ',
2709
            'isnotodd' => '!(1 & ',
2710
        );
2711
   $op = strtolower(str_replace(' ', '', $this->yystack[$this->yyidx + 0]->minor));
2712
   $this->_retvalue = $scond[$op];
2713
    }
2714
// line 1185 "../smarty/lexer/smarty_internal_templateparser.y"
2715
    public function yy_r167(){
2716
    $this->_retvalue = 'array('.$this->yystack[$this->yyidx + -1]->minor.')';
2717
    }
2718
// line 1196 "../smarty/lexer/smarty_internal_templateparser.y"
2719
    public function yy_r170(){
2720
    $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.','.$this->yystack[$this->yyidx + 0]->minor;
2721
    }
2722
// line 1204 "../smarty/lexer/smarty_internal_templateparser.y"
2723
    public function yy_r172(){
2724
    $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'=>'.$this->yystack[$this->yyidx + 0]->minor;
2725
    }
2726
// line 1208 "../smarty/lexer/smarty_internal_templateparser.y"
2727
    public function yy_r173(){ 
2728
    $this->_retvalue = '\''.$this->yystack[$this->yyidx + -2]->minor.'\'=>'.$this->yystack[$this->yyidx + 0]->minor;
2729
    }
2730
// line 1224 "../smarty/lexer/smarty_internal_templateparser.y"
2731
    public function yy_r176(){
2732
    $this->compiler->leaveDoubleQuote();
2733
    $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor->to_smarty_php($this);
2734
    }
2735
// line 1230 "../smarty/lexer/smarty_internal_templateparser.y"
2736
    public function yy_r177(){
2737
    $this->yystack[$this->yyidx + -1]->minor->append_subtree($this, $this->yystack[$this->yyidx + 0]->minor);
2738
    $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor;
2739
    }
2740
// line 1235 "../smarty/lexer/smarty_internal_templateparser.y"
2741
    public function yy_r178(){
2742
    $this->_retvalue = new Smarty_Internal_ParseTree_Dq($this, $this->yystack[$this->yyidx + 0]->minor);
2743
    }
2744
// line 1239 "../smarty/lexer/smarty_internal_templateparser.y"
2745
    public function yy_r179(){
2746
    $this->_retvalue = new Smarty_Internal_ParseTree_Code('(string)'.$this->yystack[$this->yyidx + -1]->minor);
2747
    }
2748
// line 1243 "../smarty/lexer/smarty_internal_templateparser.y"
2749
    public function yy_r180(){
2750
    $this->_retvalue = new Smarty_Internal_ParseTree_Code('(string)('.$this->yystack[$this->yyidx + -1]->minor.')');
2751
    }
2752
// line 1247 "../smarty/lexer/smarty_internal_templateparser.y"
2753
    public function yy_r181(){
2754
    $this->_retvalue = new Smarty_Internal_ParseTree_Code('(string)$_smarty_tpl->tpl_vars[\''. substr($this->yystack[$this->yyidx + 0]->minor,1) .'\']->value');
2755
    }
2756
// line 1259 "../smarty/lexer/smarty_internal_templateparser.y"
2757
    public function yy_r184(){
2758
    $this->_retvalue = new Smarty_Internal_ParseTree_Tag($this, $this->yystack[$this->yyidx + 0]->minor);
2759
    }
2760
// line 1263 "../smarty/lexer/smarty_internal_templateparser.y"
2761
    public function yy_r185(){
2762
    $this->_retvalue = new Smarty_Internal_ParseTree_DqContent($this->yystack[$this->yyidx + 0]->minor);
2763
    }
2764
2765
    private $_retvalue;
2766
2767
    public function yy_reduce($yyruleno)
2768
    {
2769
        if ($this->yyTraceFILE && $yyruleno >= 0
2770
              && $yyruleno < count(self::$yyRuleName)) {
2771
            fprintf($this->yyTraceFILE, "%sReduce (%d) [%s].\n",
2772
                $this->yyTracePrompt, $yyruleno,
2773
                self::$yyRuleName[$yyruleno]);
2774
        }
2775
2776
        $this->_retvalue = $yy_lefthand_side = null;
2777
        if (isset(self::$yyReduceMap[$yyruleno])) {
2778
            // call the action
2779
            $this->_retvalue = null;
2780
            $this->{'yy_r' . self::$yyReduceMap[$yyruleno]}();
2781
            $yy_lefthand_side = $this->_retvalue;
2782
        }
2783
        $yygoto = self::$yyRuleInfo[$yyruleno][0];
2784
        $yysize = self::$yyRuleInfo[$yyruleno][1];
2785
        $this->yyidx -= $yysize;
2786
        for ($i = $yysize; $i; $i--) {
2787
            // pop all of the right-hand side parameters
2788
            array_pop($this->yystack);
2789
        }
2790
        $yyact = $this->yy_find_reduce_action($this->yystack[$this->yyidx]->stateno, $yygoto);
2791
        if ($yyact < self::YYNSTATE) {
2792
            if (!$this->yyTraceFILE && $yysize) {
2793
                $this->yyidx++;
2794
                $x = new TP_yyStackEntry;
2795
                $x->stateno = $yyact;
2796
                $x->major = $yygoto;
2797
                $x->minor = $yy_lefthand_side;
2798
                $this->yystack[$this->yyidx] = $x;
2799
            } else {
2800
                $this->yy_shift($yyact, $yygoto, $yy_lefthand_side);
2801
            }
2802
        } elseif ($yyact === self::YYNSTATE + self::YYNRULE + 1) {
2803
            $this->yy_accept();
2804
        }
2805
    }
2806
2807
    public function yy_parse_failed()
2808
    {
2809
        if ($this->yyTraceFILE) {
2810
            fprintf($this->yyTraceFILE, "%sFail!\n", $this->yyTracePrompt);
2811
        } while ($this->yyidx >= 0) {
2812
            $this->yy_pop_parser_stack();
2813
        }
2814
    }
2815
2816
    public function yy_syntax_error($yymajor, $TOKEN)
2817
    {
2818
// line 213 "../smarty/lexer/smarty_internal_templateparser.y"
2819
2820
    $this->internalError = true;
2821
    $this->yymajor = $yymajor;
2822
    $this->compiler->trigger_template_error();
2823
    }
2824
2825
    public function yy_accept()
2826
    {
2827
        if ($this->yyTraceFILE) {
2828
            fprintf($this->yyTraceFILE, "%sAccept!\n", $this->yyTracePrompt);
2829
        } while ($this->yyidx >= 0) {
2830
            $this->yy_pop_parser_stack();
2831
        }
2832
// line 206 "../smarty/lexer/smarty_internal_templateparser.y"
2833
2834
    $this->successful = !$this->internalError;
2835
    $this->internalError = false;
2836
    $this->retvalue = $this->_retvalue;
2837
    }
2838
2839
    public function doParse($yymajor, $yytokenvalue)
2840
    {
2841
        $yyerrorhit = 0;   /* True if yymajor has invoked an error */
2842
2843
        if ($this->yyidx === null || $this->yyidx < 0) {
2844
            $this->yyidx = 0;
2845
            $this->yyerrcnt = -1;
2846
            $x = new TP_yyStackEntry;
2847
            $x->stateno = 0;
2848
            $x->major = 0;
2849
            $this->yystack = array();
2850
            $this->yystack[] = $x;
2851
        }
2852
        $yyendofinput = ($yymajor==0);
2853
2854
        if ($this->yyTraceFILE) {
2855
            fprintf($this->yyTraceFILE, "%sInput %s\n",
2856
                $this->yyTracePrompt, $this->yyTokenName[$yymajor]);
2857
        }
2858
2859
        do {
2860
            $yyact = $this->yy_find_shift_action($yymajor);
2861
            if ($yymajor < self::YYERRORSYMBOL &&
2862
                  !$this->yy_is_expected_token($yymajor)) {
2863
                // force a syntax error
2864
                $yyact = self::YY_ERROR_ACTION;
2865
            }
2866
            if ($yyact < self::YYNSTATE) {
2867
                $this->yy_shift($yyact, $yymajor, $yytokenvalue);
2868
                $this->yyerrcnt--;
2869
                if ($yyendofinput && $this->yyidx >= 0) {
2870
                    $yymajor = 0;
2871
                } else {
2872
                    $yymajor = self::YYNOCODE;
2873
                }
2874
            } elseif ($yyact < self::YYNSTATE + self::YYNRULE) {
2875
                $this->yy_reduce($yyact - self::YYNSTATE);
2876
            } elseif ($yyact === self::YY_ERROR_ACTION) {
2877
                if ($this->yyTraceFILE) {
2878
                    fprintf($this->yyTraceFILE, "%sSyntax Error!\n",
2879
                        $this->yyTracePrompt);
2880
                }
2881
                if (self::YYERRORSYMBOL) {
2882
                    if ($this->yyerrcnt < 0) {
2883
                        $this->yy_syntax_error($yymajor, $yytokenvalue);
2884
                    }
2885
                    $yymx = $this->yystack[$this->yyidx]->major;
2886
                    if ($yymx === self::YYERRORSYMBOL || $yyerrorhit) {
2887
                        if ($this->yyTraceFILE) {
2888
                            fprintf($this->yyTraceFILE, "%sDiscard input token %s\n",
2889
                                $this->yyTracePrompt, $this->yyTokenName[$yymajor]);
2890
                        }
2891
                        $this->yy_destructor($yymajor, $yytokenvalue);
2892
                        $yymajor = self::YYNOCODE;
2893
                    } else {
2894
                        while ($this->yyidx >= 0 &&
2895
                                 $yymx !== self::YYERRORSYMBOL &&
2896
        ($yyact = $this->yy_find_shift_action(self::YYERRORSYMBOL)) >= self::YYNSTATE
2897
                              ){
2898
                            $this->yy_pop_parser_stack();
2899
                        }
2900
                        if ($this->yyidx < 0 || $yymajor==0) {
2901
                            $this->yy_destructor($yymajor, $yytokenvalue);
2902
                            $this->yy_parse_failed();
2903
                            $yymajor = self::YYNOCODE;
2904
                        } elseif ($yymx !== self::YYERRORSYMBOL) {
2905
                            $u2 = 0;
2906
                            $this->yy_shift($yyact, self::YYERRORSYMBOL, $u2);
2907
                        }
2908
                    }
2909
                    $this->yyerrcnt = 3;
2910
                    $yyerrorhit = 1;
2911
                } else {
2912
                    if ($this->yyerrcnt <= 0) {
2913
                        $this->yy_syntax_error($yymajor, $yytokenvalue);
2914
                    }
2915
                    $this->yyerrcnt = 3;
2916
                    $this->yy_destructor($yymajor, $yytokenvalue);
2917
                    if ($yyendofinput) {
2918
                        $this->yy_parse_failed();
2919
                    }
2920
                    $yymajor = self::YYNOCODE;
2921
                }
2922
            } else {
2923
                $this->yy_accept();
2924
                $yymajor = self::YYNOCODE;
2925
            }
2926
        } while ($yymajor !== self::YYNOCODE && $this->yyidx >= 0);
2927
    }
2928
}
2929
2930