<?php

namespace PhpParser;

use PhpParser\Node\Expr;
use PhpParser\Node\Name;
use PhpParser\Node\Scalar;
use PhpParser\Node\Stmt;

/* This is an automatically GENERATED file, which should not be manually edited.
 * Instead edit one of the following:
 *  * the grammar file grammar/zend_language_parser.phpy
 *  * the skeleton file grammar/kymacc.php.parser
 *  * the preprocessing script grammar/rebuildParser.php
 */
class Parser extends ParserAbstract
{
    protected $tokenToSymbolMapSize = 392;
    protected $actionTableSize = 1186;
    protected $gotoTableSize = 591;

    protected $invalidSymbol = 157;
    protected $errorSymbol = 1;
    protected $defaultAction = -32766;
    protected $unexpectedTokenRule = 32767;

    protected $YY2TBLSTATE  = 409;
    protected $YYNLSTATES   = 646;

    const YYERRTOK = 256;
    const T_INCLUDE = 257;
    const T_INCLUDE_ONCE = 258;
    const T_EVAL = 259;
    const T_REQUIRE = 260;
    const T_REQUIRE_ONCE = 261;
    const T_LOGICAL_OR = 262;
    const T_LOGICAL_XOR = 263;
    const T_LOGICAL_AND = 264;
    const T_PRINT = 265;
    const T_YIELD = 266;
    const T_YIELD_FROM = 267;
    const T_PLUS_EQUAL = 268;
    const T_MINUS_EQUAL = 269;
    const T_MUL_EQUAL = 270;
    const T_DIV_EQUAL = 271;
    const T_CONCAT_EQUAL = 272;
    const T_MOD_EQUAL = 273;
    const T_AND_EQUAL = 274;
    const T_OR_EQUAL = 275;
    const T_XOR_EQUAL = 276;
    const T_SL_EQUAL = 277;
    const T_SR_EQUAL = 278;
    const T_POW_EQUAL = 279;
    const T_COALESCE = 280;
    const T_BOOLEAN_OR = 281;
    const T_BOOLEAN_AND = 282;
    const T_IS_EQUAL = 283;
    const T_IS_NOT_EQUAL = 284;
    const T_IS_IDENTICAL = 285;
    const T_IS_NOT_IDENTICAL = 286;
    const T_SPACESHIP = 287;
    const T_IS_SMALLER_OR_EQUAL = 288;
    const T_IS_GREATER_OR_EQUAL = 289;
    const T_SL = 290;
    const T_SR = 291;
    const T_INSTANCEOF = 292;
    const T_INC = 293;
    const T_DEC = 294;
    const T_INT_CAST = 295;
    const T_DOUBLE_CAST = 296;
    const T_STRING_CAST = 297;
    const T_ARRAY_CAST = 298;
    const T_OBJECT_CAST = 299;
    const T_BOOL_CAST = 300;
    const T_UNSET_CAST = 301;
    const T_POW = 302;
    const T_NEW = 303;
    const T_CLONE = 304;
    const T_EXIT = 305;
    const T_IF = 306;
    const T_ELSEIF = 307;
    const T_ELSE = 308;
    const T_ENDIF = 309;
    const T_LNUMBER = 310;
    const T_DNUMBER = 311;
    const T_STRING = 312;
    const T_STRING_VARNAME = 313;
    const T_VARIABLE = 314;
    const T_NUM_STRING = 315;
    const T_INLINE_HTML = 316;
    const T_CHARACTER = 317;
    const T_BAD_CHARACTER = 318;
    const T_ENCAPSED_AND_WHITESPACE = 319;
    const T_CONSTANT_ENCAPSED_STRING = 320;
    const T_ECHO = 321;
    const T_DO = 322;
    const T_WHILE = 323;
    const T_ENDWHILE = 324;
    const T_FOR = 325;
    const T_ENDFOR = 326;
    const T_FOREACH = 327;
    const T_ENDFOREACH = 328;
    const T_DECLARE = 329;
    const T_ENDDECLARE = 330;
    const T_AS = 331;
    const T_SWITCH = 332;
    const T_ENDSWITCH = 333;
    const T_CASE = 334;
    const T_DEFAULT = 335;
    const T_BREAK = 336;
    const T_CONTINUE = 337;
    const T_GOTO = 338;
    const T_FUNCTION = 339;
    const T_CONST = 340;
    const T_RETURN = 341;
    const T_TRY = 342;
    const T_CATCH = 343;
    const T_FINALLY = 344;
    const T_THROW = 345;
    const T_USE = 346;
    const T_INSTEADOF = 347;
    const T_GLOBAL = 348;
    const T_STATIC = 349;
    const T_ABSTRACT = 350;
    const T_FINAL = 351;
    const T_PRIVATE = 352;
    const T_PROTECTED = 353;
    const T_PUBLIC = 354;
    const T_VAR = 355;
    const T_UNSET = 356;
    const T_ISSET = 357;
    const T_EMPTY = 358;
    const T_HALT_COMPILER = 359;
    const T_CLASS = 360;
    const T_TRAIT = 361;
    const T_INTERFACE = 362;
    const T_EXTENDS = 363;
    const T_IMPLEMENTS = 364;
    const T_OBJECT_OPERATOR = 365;
    const T_DOUBLE_ARROW = 366;
    const T_LIST = 367;
    const T_ARRAY = 368;
    const T_CALLABLE = 369;
    const T_CLASS_C = 370;
    const T_TRAIT_C = 371;
    const T_METHOD_C = 372;
    const T_FUNC_C = 373;
    const T_LINE = 374;
    const T_FILE = 375;
    const T_COMMENT = 376;
    const T_DOC_COMMENT = 377;
    const T_OPEN_TAG = 378;
    const T_OPEN_TAG_WITH_ECHO = 379;
    const T_CLOSE_TAG = 380;
    const T_WHITESPACE = 381;
    const T_START_HEREDOC = 382;
    const T_END_HEREDOC = 383;
    const T_DOLLAR_OPEN_CURLY_BRACES = 384;
    const T_CURLY_OPEN = 385;
    const T_PAAMAYIM_NEKUDOTAYIM = 386;
    const T_NAMESPACE = 387;
    const T_NS_C = 388;
    const T_DIR = 389;
    const T_NS_SEPARATOR = 390;
    const T_ELLIPSIS = 391;

    protected $symbolToName = array(
        "EOF",
        "error",
        "T_INCLUDE",
        "T_INCLUDE_ONCE",
        "T_EVAL",
        "T_REQUIRE",
        "T_REQUIRE_ONCE",
        "','",
        "T_LOGICAL_OR",
        "T_LOGICAL_XOR",
        "T_LOGICAL_AND",
        "T_PRINT",
        "T_YIELD",
        "T_YIELD_FROM",
        "'='",
        "T_PLUS_EQUAL",
        "T_MINUS_EQUAL",
        "T_MUL_EQUAL",
        "T_DIV_EQUAL",
        "T_CONCAT_EQUAL",
        "T_MOD_EQUAL",
        "T_AND_EQUAL",
        "T_OR_EQUAL",
        "T_XOR_EQUAL",
        "T_SL_EQUAL",
        "T_SR_EQUAL",
        "T_POW_EQUAL",
        "'?'",
        "':'",
        "T_COALESCE",
        "T_BOOLEAN_OR",
        "T_BOOLEAN_AND",
        "'|'",
        "'^'",
        "'&'",
        "T_IS_EQUAL",
        "T_IS_NOT_EQUAL",
        "T_IS_IDENTICAL",
        "T_IS_NOT_IDENTICAL",
        "T_SPACESHIP",
        "'<'",
        "T_IS_SMALLER_OR_EQUAL",
        "'>'",
        "T_IS_GREATER_OR_EQUAL",
        "T_SL",
        "T_SR",
        "'+'",
        "'-'",
        "'.'",
        "'*'",
        "'/'",
        "'%'",
        "'!'",
        "T_INSTANCEOF",
        "'~'",
        "T_INC",
        "T_DEC",
        "T_INT_CAST",
        "T_DOUBLE_CAST",
        "T_STRING_CAST",
        "T_ARRAY_CAST",
        "T_OBJECT_CAST",
        "T_BOOL_CAST",
        "T_UNSET_CAST",
        "'@'",
        "T_POW",
        "'['",
        "T_NEW",
        "T_CLONE",
        "T_EXIT",
        "T_IF",
        "T_ELSEIF",
        "T_ELSE",
        "T_ENDIF",
        "T_LNUMBER",
        "T_DNUMBER",
        "T_STRING",
        "T_STRING_VARNAME",
        "T_VARIABLE",
        "T_NUM_STRING",
        "T_INLINE_HTML",
        "T_ENCAPSED_AND_WHITESPACE",
        "T_CONSTANT_ENCAPSED_STRING",
        "T_ECHO",
        "T_DO",
        "T_WHILE",
        "T_ENDWHILE",
        "T_FOR",
        "T_ENDFOR",
        "T_FOREACH",
        "T_ENDFOREACH",
        "T_DECLARE",
        "T_ENDDECLARE",
        "T_AS",
        "T_SWITCH",
        "T_ENDSWITCH",
        "T_CASE",
        "T_DEFAULT",
        "T_BREAK",
        "T_CONTINUE",
        "T_GOTO",
        "T_FUNCTION",
        "T_CONST",
        "T_RETURN",
        "T_TRY",
        "T_CATCH",
        "T_FINALLY",
        "T_THROW",
        "T_USE",
        "T_INSTEADOF",
        "T_GLOBAL",
        "T_STATIC",
        "T_ABSTRACT",
        "T_FINAL",
        "T_PRIVATE",
        "T_PROTECTED",
        "T_PUBLIC",
        "T_VAR",
        "T_UNSET",
        "T_ISSET",
        "T_EMPTY",
        "T_HALT_COMPILER",
        "T_CLASS",
        "T_TRAIT",
        "T_INTERFACE",
        "T_EXTENDS",
        "T_IMPLEMENTS",
        "T_OBJECT_OPERATOR",
        "T_DOUBLE_ARROW",
        "T_LIST",
        "T_ARRAY",
        "T_CALLABLE",
        "T_CLASS_C",
        "T_TRAIT_C",
        "T_METHOD_C",
        "T_FUNC_C",
        "T_LINE",
        "T_FILE",
        "T_START_HEREDOC",
        "T_END_HEREDOC",
        "T_DOLLAR_OPEN_CURLY_BRACES",
        "T_CURLY_OPEN",
        "T_PAAMAYIM_NEKUDOTAYIM",
        "T_NAMESPACE",
        "T_NS_C",
        "T_DIR",
        "T_NS_SEPARATOR",
        "T_ELLIPSIS",
        "';'",
        "'{'",
        "'}'",
        "'('",
        "')'",
        "'$'",
        "'`'",
        "']'",
        "'\"'"
    );

    protected $tokenToSymbol = array(
            0,  157,  157,  157,  157,  157,  157,  157,  157,  157,
          157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
          157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
          157,  157,  157,   52,  156,  157,  153,   51,   34,  157,
          151,  152,   49,   46,    7,   47,   48,   50,  157,  157,
          157,  157,  157,  157,  157,  157,  157,  157,   28,  148,
           40,   14,   42,   27,   64,  157,  157,  157,  157,  157,
          157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
          157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
          157,   66,  157,  155,   33,  157,  154,  157,  157,  157,
          157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
          157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
          157,  157,  157,  149,   32,  150,   54,  157,  157,  157,
          157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
          157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
          157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
          157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
          157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
          157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
          157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
          157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
          157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
          157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
          157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
          157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
          157,  157,  157,  157,  157,  157,    1,    2,    3,    4,
            5,    6,    8,    9,   10,   11,   12,   13,   15,   16,
           17,   18,   19,   20,   21,   22,   23,   24,   25,   26,
           29,   30,   31,   35,   36,   37,   38,   39,   41,   43,
           44,   45,   53,   55,   56,   57,   58,   59,   60,   61,
           62,   63,   65,   67,   68,   69,   70,   71,   72,   73,
           74,   75,   76,   77,   78,   79,   80,  157,  157,   81,
           82,   83,   84,   85,   86,   87,   88,   89,   90,   91,
           92,   93,   94,   95,   96,   97,   98,   99,  100,  101,
          102,  103,  104,  105,  106,  107,  108,  109,  110,  111,
          112,  113,  114,  115,  116,  117,  118,  119,  120,  121,
          122,  123,  124,  125,  126,  127,  128,  129,  130,  131,
          132,  133,  134,  135,  136,  137,  157,  157,  157,  157,
          157,  157,  138,  139,  140,  141,  142,  143,  144,  145,
          146,  147
    );

    protected $action = array(
          707,   60,   61,  420,   62,   63,-32766,-32766,-32766,-32766,
           64,   65,   66,  223,  224,  225,  226,  227,  228,  229,
          230,  231,    0,  232,  233,  234,  235,  236,  237,  238,
          239,  240,  241,  242,  243,-32766,-32766,-32766,-32766,-32766,
        -32767,-32767,-32767,-32767,  650,   67,   68,   58,  244,  245,
          129,   69,  460,   70,  297,  298,   71,   72,   73,   74,
           75,   76,   77,   78,-32766,   32,  305,   79,  411,  421,
        -32766,-32766,-32766,  968,  969,  463, -118, 1061,  413,  696,
          447,  464,   46,   27,  422,  366,  465,  438,  466,-32766,
          467,-32766,-32766,  423,  220,  221,  222,   36,   37,  468,
          424,  441,   38,  469,  221,  222,   80,-32766,  329,  359,
          360,  491,  751,  207,  425,  470,  471,  472,  473,  474,
          608,-32766,  207,   55,  678,  723,  475,  476,  477,  478,
          128,  974,  975,  976,  977,  971,  972,  315,   84,   85,
           86,  419,  491,  978,  973,  425,  440,  702,  618,  635,
           47,  135,  340,  327,  301,  331,  443,   40,  313,   87,
           88,   89,   90,   91,   92,   93,   94,   95,   96,   97,
           98,   99,  100,  101,  102,  103,  104,  105,  106,  107,
          108,  109,   31,  308,-32766,-32766,-32766,-32766,-32766,  288,
        -32766,  775,  776,  800,  805,  110,  650,  220,  221,  222,
        -32766,-32766, 1027,-32766,-32766,-32766,  125,-32766,  439,-32766,
          569,-32766,  917, -123,-32766,  286,  207,   35,-32766,-32766,
        -32766,  428,  428,-32766,-32766,   22,  693,-32766,  211,  133,
        -32766,  490,  752,-32766,  301, 1090,  470,  471,-32766, -119,
          342, 1018,  694,  378,  917,  678,  723,  475,  476,  616,
          791,   41,  111,  112,  113,  114,  115,  116,  117,  118,
          119,  120,  121,  122,-32766,-32766,-32766,  132,-32766,-32766,
        -32766, 1093,  781, 1095, 1094,-32766,  650,  220,  221,  222,
        -32766,-32766,   57,-32766,-32766,-32766,  935,-32766,   54,-32766,
        -32766,-32766,  856,  858,-32766,  358,  207,  248,-32766,-32766,
        -32766,  428,-32766,-32766,-32766,   39,  300,-32766,  650,  388,
        -32766,  490,-32766,-32766,  304,-32766,-32766,-32766,-32766,-32766,
          630,-32766,  617,-32766,  917,  290,-32766,  782,  356,  357,
        -32766,-32766,-32766,  428, 1068,-32766,-32766,  434,  207,-32766,
          620, 1019,-32766,  490,  621,-32766,  302,  132,-32766,-32766,
        -32766,  212,  606,  241,  242,  243,  917,  412,-32766,-32766,
        -32766,  642, 1055,  326, -401,  126,  623,  470,  471,  244,
          245,  124,  131,  416,  470,  471,  656,  723,  475,  476,
        -32766,-32766,-32766,  678,  723,  475,  476,  222,  650,-32766,
        -32766,-32766,-32766,  428,  810,-32766,-32766,-32766,  339,-32766,
          303,-32766, -171,-32766,  207,  659,-32766, 1026,-32766,  477,
        -32766,-32766,-32766,  428,-32766,-32766,-32766,  428,  445,-32766,
          650,  213,-32766,  490,-32766,-32766,-32766,-32766,-32766,-32766,
        -32766,-32766,-32766,-32766,  428,-32766,  917,  348,-32766,  428,
         1083,-32766,-32766,-32766,-32766,  428, 1061,-32766,-32766,-32766,
        -32766,-32766,-32766, 1027,-32766,  490, 1065,-32766,  289,  332,
        -32766,-32766,-32766, 1083,  214,-32766,-32766,-32766,  917,-32766,
        -32766,-32766,-32766,-32766,-32766,-32766,-32766,-32766,  249,-32767,
        -32767,-32767,-32767,  347,-32766,  123,-32766,-32766,-32766,-32766,
          299,  133,-32766,-32766,-32766,  220,  221,  222, 1025,  250,
          650,  220,  221,  222,-32766,-32766,-32766,-32766,-32766,-32766,
        -32766,-32766,  137,-32766,  207,-32766,  566,  980,-32766,  634,
          207,  340,-32766,-32766,-32766,  428,-32766,-32766,-32766,  134,
          575,-32766,  650,  314,-32766,  490,-32766,  716, 1024,-32766,
        -32766,-32766,-32766,-32766,  538,-32766,  706,-32766,  244,  245,
        -32766,  454,  581,-32766,-32766,-32766,-32766,  428,  639,-32766,
        -32766,  449,   28,-32766,  917,  136,-32766,  490,  238,  239,
          240,  110,-32766,-32766,-32766,  104,  105,  106,  308,-32766,
          138,  367,  588,  589,  593,  650,  804,  638,  980,-32766,
          615,  305,-32766,-32766,-32766,  346,-32766,   52,-32766,  650,
        -32766, 1061,   50,-32766,-32766,-32766,-32766,-32766,-32766,-32766,
          428,   59,-32766,-32766,  470,  471,-32766,  917,  605,-32766,
          490,  246,-32766,  678,  723,  475,  476,-32766,  650,  107,
          108,  109,-32766,  308,  945,-32766,-32766,-32766,-32766,-32766,
           56,-32766,   49,-32766,   51,  110,-32766,  775,  776,  917,
        -32766,-32766,-32766,  428,   53,-32766,-32766,-32766,-32766,-32766,
          529,  961,-32766,  490,  657,  625,  491,  815,  645,  425,
        -32766,  528,  516,  512,  429,-32766,  340,  511,  435,  651,
          433,  650,  667,  650, 1088,-32766,  669,  812,-32766,-32766,
        -32766,-32766,-32766,  600,-32766,  938,-32766,  515,  607,-32766,
          686,-32766,  917,-32766,-32766,-32766,  428,-32766,-32766,-32766,
          590,  345,-32766,  650, 1083,-32766,  490,-32766,  559,  437,
        -32766,-32766,-32766,-32766,-32766,  458,-32766,-32766,-32766, -168,
          584,-32766,  307,  285,  531,-32766,-32766,-32766,  428,  572,
        -32766,-32766,  336,  432,-32766,  725,  428,-32766,  490,  724,
           42,  585,  979,  688,-32766,-32766,  338,  127,  330,  718,
        -32766,   23,  811,  341,  521,    0,  650,  434, -308,    0,
        -32766,  335,    0,-32766,-32766,-32766, -402,-32766, -401,-32766,
          328,-32766,  915,  477,-32766,  690,-32766,    0,-32766,-32766,
        -32766,  428,  318,-32766,-32766,    0,-32766,-32766, -300,  613,
        -32766,  490,  650, -309,  381,  368,-32766,  334,-32766,-32766,
        -32766,-32766,  416,-32766, 1056,-32766,  247,-32766,  809,  745,
        -32766,  735,  746,  698,-32766,-32766,-32766,  428,  801,-32766,
        -32766,  683,  663,-32766,  215,  216,-32766,  490,-32766,-32766,
          217,  662,  218,  681,-32766,-32767,-32767,-32767,-32767,  102,
          103,  104,  105,  106,  209,  754,  661,   -1,  660,  215,
          216,  705,  968,  969,  692,  217,-32766,  218,  808,  627,
          970,-32766,-32766,-32766,-32766,-32766,  626,  737,  739,  209,
        -32766,-32766,-32766,  704,  691,  695,  689,  968,  969,  687,
        -32766,-32766,-32766,-32766,-32766,  970,  697,   44,   45,-32766,
          643,-32766,-32766,-32766,-32766,-32766,-32766,-32767,-32767,-32767,
        -32767,-32767,  644,  640,  637,  632,  631,  629,  556,  624,
          974,  975,  976,  977,  971,  972,  394,  619,   83,  130,
          641,  591,  978,  973, 1066,  793,  959, 1058, 1040,  219,
         1046,-32766, 1060,  556, 1062,  974,  975,  976,  977,  971,
          972,  394, 1089,  453,  722,  985,  720,  978,  973,  412,
          721, 1092,  931, 1087,  219,  326,-32766, 1091,  744,  470,
          471,  743,  921,  470,  471, -104, -104, -104,  656,  723,
          475,  476,  678,  723,  475,  476,  470,  471, -103, -103,
         -103,   43,  470,  471,   34,  678,  723,  475,  476,  415,
          339,  678,  723,  475,  476,  470,  471,   30,  958,   33,
        -32766,  719,  412,  410,  678,  723,  475,  476,  326,  343,
          312,  311,  470,  471,  816,-32766,-32766,-32766,  310,  309,
         -104,  656,  723,  475,  476, -112, -112, -112,  296, -114,
         -114, -114,  295, -103,-32766,  287,-32766,-32766,-32766,-32766,
        -32766,-32766,  417,  339,  210,   82,   81,   48,  337,  896,
          658,  826,  827,  828,  825,  824,  823,  818,  560,  984,
          783,  925,  922,  612,  551,  461,  470,  471,  457,  455,
          470,  471,-32766,-32766,-32766,  678,  723,  475,  476,  678,
          723,  475,  476,  897,  450,  389,   25,   24, -120,  470,
          471,-32766, 1057,-32766,-32766,-32766,-32766,-32766,  678,  723,
          475,  476,  470,  471, -119, 1041,  470,  471, 1045,    0,
         1059,  678,  723,  475,  476,  678,  723,  475,  476,  944,
          470,  471,  597,  929,  470,  471,  930,  710,  927,  678,
          723,  475,  476,  678,  723,  475,  476,  470,  471,  928,
          628,  926,  470,  471,  679,    0,  678,  723,  475,  476,
            0,  678,  723,  475,  476,    0,    0,    0,  712,    0,
            0,    0,  919,    0,    0,    0,    0,    0,    0,    0,
            0,    0,    0,    0,    0,  920
    );

    protected $actionCheck = array(
            1,    2,    3,    4,    5,    6,   30,   31,   32,   33,
           11,   12,   13,   30,   31,   32,   33,   34,   35,   36,
           37,   38,    0,   40,   41,   42,   43,   44,   45,   46,
           47,   48,   49,   50,   51,   30,   31,   32,   33,   34,
           35,   36,   37,   38,   76,   46,   47,   66,   65,   66,
            7,   52,    7,   54,   55,   56,   57,   58,   59,   60,
           61,   62,   63,   64,    8,   66,   67,   68,   69,   70,
            8,    9,   10,   74,   75,   76,   73,   78,  122,   80,
            7,   82,   83,   84,   85,    7,   87,   28,   89,   27,
           91,   29,   30,   94,    8,    9,   10,   98,   99,  100,
          101,    7,  103,  104,    9,   10,  107,  151,  127,  110,
          111,  143,   28,   27,  146,  112,  113,  118,  119,  120,
           76,    1,   27,   66,  121,  122,  123,  124,  129,  130,
          149,  132,  133,  134,  135,  136,  137,  138,    8,    9,
           10,    7,  143,  144,  145,  146,    7,  148,  149,   28,
          151,   66,  153,  154,   34,  156,   76,   27,    7,   29,
           30,   31,   32,   33,   34,   35,   36,   37,   38,   39,
           40,   41,   42,   43,   44,   45,   46,   47,   48,   49,
           50,   51,    7,   53,   30,   31,   32,   33,   34,    7,
           70,  130,  131,  148,  150,   65,   76,    8,    9,   10,
           80,    1,  122,   83,   84,   85,  149,   87,  149,   89,
           86,   91,   12,  152,   94,  128,   27,    7,   98,   99,
          100,  101,  101,  103,  104,  152,  148,  107,    7,  149,
          110,  111,  148,    1,   34,  150,  112,  113,  118,  152,
            7,  155,  148,   78,   12,  121,  122,  123,  124,   76,
           78,   14,   15,   16,   17,   18,   19,   20,   21,   22,
           23,   24,   25,   26,    8,    9,   10,  147,  148,  149,
           70,   76,  152,   78,   79,  102,   76,    8,    9,   10,
           80,  108,   66,   83,   84,   85,  152,   87,   66,   89,
          117,   91,   55,   56,   94,    7,   27,   28,   98,   99,
          100,  101,   70,  103,  104,  140,  141,  107,   76,   77,
          110,  111,   80,    1,   34,   83,   84,   85,  118,   87,
           28,   89,   76,   91,   12,  153,   94,  152,  101,  102,
           98,   99,  100,  101,  152,  103,  104,  146,   27,  107,
          149,  152,  110,  111,   28,    1,   34,  147,  148,  149,
          118,   14,   90,   49,   50,   51,   12,  102,   30,   31,
           32,   28,   78,  108,  127,  149,   28,  112,  113,   65,
           66,  149,   28,  146,  112,  113,  121,  122,  123,  124,
          148,  149,   70,  121,  122,  123,  124,   10,   76,    8,
            9,   10,   80,  101,  148,   83,   84,   85,  143,   87,
            7,   89,   78,   91,   27,  150,   94,   76,   27,  129,
           98,   99,  100,  101,   70,  103,  104,  101,   76,  107,
           76,   14,  110,  111,   80,    1,  102,   83,   84,   85,
          118,   87,  108,   89,  101,   91,   12,  153,   94,  101,
           81,  117,   98,   99,  100,  101,   78,  103,  104,    8,
            9,  107,   30,  122,  110,  111,   76,    1,   34,   81,
          148,  149,  118,   81,   14,    8,    9,   10,   12,   30,
           31,   32,   33,   34,   35,   36,   37,   38,   14,   40,
           41,   42,   43,   66,   27,   14,   29,   30,   31,   32,
           34,  149,  148,  149,   70,    8,    9,   10,  139,   14,
           76,    8,    9,   10,   80,   30,   31,   83,   84,   85,
            1,   87,  149,   89,   27,   91,  153,  139,   94,   28,
           27,  153,   98,   99,  100,  101,   70,  103,  104,  149,
           81,  107,   76,   28,  110,  111,   80,   34,  156,   83,
           84,   85,  118,   87,  127,   89,   28,   91,   65,   66,
           94,   71,   72,    1,   98,   99,  100,  101,   28,  103,
          104,   71,   72,  107,   12,   28,  110,  111,   46,   47,
           48,   65,  148,  149,  118,   46,   47,   48,   53,   70,
           96,   97,  105,  106,   73,   76,  148,  149,  139,   80,
           88,   67,   83,   84,   85,   81,   87,   66,   89,   76,
           91,   78,   66,   94,  148,  149,    1,   98,   99,  100,
          101,   66,  103,  104,  112,  113,  107,   12,   76,  110,
          111,  128,   70,  121,  122,  123,  124,  118,   76,   49,
           50,   51,   80,   53,  111,   83,   84,   85,    1,   87,
           66,   89,   66,   91,   66,   65,   94,  130,  131,   12,
           98,   99,  100,  101,   66,  103,  104,  148,  149,  107,
           76,  152,  110,  111,  148,  149,  143,  148,  149,  146,
          118,   76,   76,   76,  151,   70,  153,   76,   76,   76,
           76,   76,   76,   76,   76,   80,   76,   76,   83,   84,
           85,    1,   87,   78,   89,   78,   91,   78,   78,   94,
          148,  149,   12,   98,   99,  100,  101,   70,  103,  104,
           78,   81,  107,   76,   81,  110,  111,   80,   93,   85,
           83,   84,   85,  118,   87,  101,   89,    1,   91,   93,
           95,   94,   93,   93,   93,   98,   99,  100,  101,   95,
          103,  104,  126,  101,  107,  122,  101,  110,  111,  122,
          128,  108,  139,  148,  149,  118,  109,  128,  127,  147,
           70,  152,  148,  125,  146,   -1,   76,  146,  142,   -1,
           80,  125,   -1,   83,   84,   85,  127,   87,  127,   89,
          127,   91,  154,  129,   94,  148,  149,   -1,   98,   99,
          100,  101,  142,  103,  104,   -1,   70,  107,  142,  142,
          110,  111,   76,  142,  142,  142,   80,  142,  118,   83,
           84,   85,  146,   87,  150,   89,   28,   91,  148,  148,
           94,  148,  148,  148,   98,   99,  100,  101,  148,  103,
          104,  148,  148,  107,   46,   47,  110,  111,  148,  149,
           52,  148,   54,  148,  118,   40,   41,   42,   43,   44,
           45,   46,   47,   48,   66,  148,  148,    0,  148,   46,
           47,  148,   74,   75,  148,   52,   78,   54,  148,  148,
           82,    8,    9,   10,  148,  149,  148,  148,  148,   66,
            8,    9,   10,  148,  148,  148,  148,   74,   75,  148,
           27,   78,   29,   30,   31,   82,  148,  148,  148,   27,
          149,   29,   30,   31,   32,   33,   34,   35,   36,   37,
           38,   39,  149,  149,  149,  149,  149,  149,  130,  149,
          132,  133,  134,  135,  136,  137,  138,  149,  149,  149,
          149,  155,  144,  145,  150,  150,  150,  150,  155,  151,
          150,  153,  150,  130,  150,  132,  133,  134,  135,  136,
          137,  138,  150,  150,  150,  155,  150,  144,  145,  102,
          150,  150,  150,  155,  151,  108,  153,  150,  150,  112,
          113,  150,  152,  112,  113,   95,   96,   97,  121,  122,
          123,  124,  121,  122,  123,  124,  112,  113,   95,   96,
           97,  151,  112,  113,  151,  121,  122,  123,  124,  151,
          143,  121,  122,  123,  124,  112,  113,  151,  155,  151,
          151,  150,  102,  151,  121,  122,  123,  124,  108,  151,
          151,  151,  112,  113,  150,    8,    9,   10,  151,  151,
          150,  121,  122,  123,  124,   71,   72,   73,  151,   71,
           72,   73,  151,  150,   27,  151,   29,   30,   31,   32,
           33,   34,  102,  143,  151,  151,  151,  151,  108,  152,
          150,  111,  112,  113,  114,  115,  116,  117,  152,  152,
          152,  152,  152,  152,  152,  152,  112,  113,  152,  152,
          112,  113,    8,    9,   10,  121,  122,  123,  124,  121,
          122,  123,  124,  152,  152,  152,  152,  152,  152,  112,
          113,   27,  155,   29,   30,   31,   32,   33,  121,  122,
          123,  124,  112,  113,  152,  155,  112,  113,  155,   -1,
          155,  121,  122,  123,  124,  121,  122,  123,  124,  155,
          112,  113,   92,  155,  112,  113,  155,  150,  155,  121,
          122,  123,  124,  121,  122,  123,  124,  112,  113,  155,
          150,  155,  112,  113,  150,   -1,  121,  122,  123,  124,
           -1,  121,  122,  123,  124,   -1,   -1,   -1,  150,   -1,
           -1,   -1,  150,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
           -1,   -1,   -1,   -1,   -1,  150
    );

    protected $actionBase = array(
            0,  880,  893,  964,  857,  255,  910,  968, 1004, 1000,
          124, 1040,    3,  262, 1018,  861, 1022,  502, 1035,  987,
          874,  338,  292,  121,  333,  121,  316,  645,  645,  645,
          120,  200,  456,  456,  509,  456,  552,  605,  637,  232,
          344,  424,  312,  690,  690,  690,  690,  726,  726,  690,
          690,  690,  690,  690,  690,  690,  690,  690,  690,  690,
          690,  690,  690,  690,  690,  690,  690,  690,  690,  690,
          690,  690,  690,  690,  690,  690,  690,  690,  690,  690,
          690,  690,  690,  690,  690,  690,  690,  690,  690,  690,
          690,  690,  690,  690,  690,  690,  690,  690,  690,  690,
          690,  690,  690,  690,  690,  690,  690,  690,  690,  690,
          690,  690,  690,  690,  690,  690,  690,  690,  690,  690,
          690,  690,  690,  690,  690,  690,  690,  690,  690,  690,
          690,  690,  690,  690,  690,  690,  690,  690,  690,   84,
          748,  629,  622,  741,  738,  736,  735,  820,  640,  941,
          802,  794,  537,  792,  790,  787,  786,  785,  803,  784,
          776,  664,  130,  130,  130,  130,  130,  130,  130,  130,
          130,  130,  130,   56,  493,  189,  269,   86,  441,  487,
          487,  487,  487,  487,  487,  256,  256,  256,  256,  256,
          256,  256,  256,  256,  256,  256,  256,  256,  256,  256,
          256,  256,   95,  381,  381,  381,  377,  788,  311,  813,
          813,  813,  813,  813,  813,  813,  813,  813,  813,  813,
          813,  813,  813,  813,  813,  813,  813,  813,  813,  813,
          813,  813,  813,  813,  813,  813,  813,  813,  813,  813,
          813,  813,  813,  813,  813,  813,  813,  813,  813,  813,
          813,   62,  -17,  -17,  863,  422,  457,  475, 1074,  328,
         1017,  872,  872,  872,  872,  872,  -24,  154,    5,    5,
            5,    5,  237,  805,  805,  805,  805,  439,  439,  439,
          439,  804,  810,  806,  812,  280,  280,  654,  654,  524,
          780,  529,  529,  522,  522,  523,  523,  523,  523,  523,
          523,  523,  523,  523,  523,  -44,  324,  173,  859,   61,
           61,   61,   61,  517,  517,  378,  359,  382,   80,  580,
          580,  580,  304,  304,  304,   44,  227,  630,  380,  380,
          380,  514,  613,  633,  342,  -32,  -32,  -32,  -32,  191,
          779,  -32,  -32,  -32,   57,  165,  165,  195,  363,  644,
          821,  635,  818,  438,  661,  -19,  666,  666,  666,  172,
          642,  490,  480,  477,  656,   59,  172,   84,  331,  519,
          216,  525,  737,  584,  684,  710,   78,   94,  417,  516,
          222,  284,   73,  708,  693,  916,  907,  182,   85,  649,
          525,  525,  525,  175,  449,  222,   87,  483,  483,  483,
          483,  483,  483,  483,  483,  680,   45,  134,  720,  246,
          503,  843,  597,  856,  856,  595,  607,  597,  632,  503,
          906,  906,  906,  906,  503,  607,  856,  856,  503,  524,
          856,  210,  503,  646,  607,  638,  638,  906,  728,  721,
          597,  619,  616,  856,  856,  856,  616,  595,  503,  906,
          643,  612,  221,  856,  906,  505,  505,  643,  503,  505,
          632,  505,   22,  518,  576,  840,  905,  848,  601,  778,
          627,  623,  891,  887,  904,  596,  604,  894,  858,  618,
          716,  602,  471,  536,  578,  531,  588,  650,  574,  653,
          642,  621,  506,  506,  506,  651,  665,  651,  506,  506,
          506,  506,  506,  506,  506,  506,  996,  662,  626,  631,
          634,  713,  337,  618,  641,  407,  770,  618,  920,  943,
          628,  603,  878,  922,  651,  994,  749,   43,  450,  877,
          625,  606,  651,  870,  651,  768,  651,  919,  608,  811,
          618,  506,  918,  983,  981,  978,  974,  965,  963,  960,
          947,  545,  853,  683,  942,  151,  903,  656,  663,  610,
          675,  233,  808,  651,  651,  767,  779,  651,  766,  707,
          750,  609,  671,  927,  800,  613,  926,  651,  624,  783,
          233,  491,  511,  946,  674,  862,  615,  917,  868,  765,
          464,  817,  530,  695,  945,  944,  962,  730,  764,  781,
          485,  542,  617,  620,  751,  869,  729,  921,  636,  657,
          647,  639,  763,  611,  923,  673,  614,  670,    0,    0,
            0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
            0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
            0,    0,    0,    0,    0,    0,    0,   -1,   -1,   -1,
           -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
           -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
           -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
           -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
           -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
           -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
           -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
           -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
           -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
           -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
           -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
           -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
           -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
           -1,   -1,   -1,   -1,   -1,  130,  130,  130,  130,  130,
          130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
          130,  130,  130,  130,  130,  130,  130,  130,    0,    0,
            0,    0,    0,    0,    0,    0,    0,    0,    0,  130,
          -17,  -17,  -17,  -17,  130,  -17,  -17,  -17,  -17,  -17,
          -17,  130,  130,  130,  130,  130,  130,  130,  130,  130,
          130,  130,  130,  130,  130,  130,  130,  130,  -17,  130,
          130,  130,  -17,  523,  -17,  523,  523,  523,  523,  523,
          523,  523,  523,  523,  523,  523,  523,  523,  523,  523,
          523,  523,  523,  523,  523,  523,  523,  523,  523,  523,
          523,  523,  523,  523,  523,  523,  523,  523,  523,  523,
          523,  523,  523,  523,  523,  523,  523,  130,    0,    0,
          130,  -17,  130,  -17,  130,  -17,  130,  130,  130,  130,
          130,  130,  -17,  -17,  -17,  -17,  -17,  -17,    0,  580,
          580,  580,  580,  -17,  -17,  -17,  -17,  950,  950,  950,
          950,  523,  523,  523,  523,  523,  523,  580,  580,  304,
          304,    0,    0,    0,    0,    0,    0,    0,    0,    0,
            0,  523,  950,  950,  523,  -32,  -32,  -32,  -32,  -32,
          -32,  165,  165,  165,  284,    0,    0,    0,    0,    0,
            0,  -32,  607,  165,  368,  368,  368,  165,  165,  165,
          284,    0,    0,    0,    0,  607,  368,    0,    0,    0,
          856,    0,    0,    0,  368,  484,  484,  484,  484,  233,
          222,    0,  607,  607,  607,    0,  619,    0,    0,    0,
          856,    0,    0,    0,    0,    0,    0,  506,   43,  878,
          139,  288,    0,    0,    0,    0,    0,    0,    0,  288,
          288,  393,  393,    0,    0,  545,  506,  506,  506,    0,
            0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
            0,  139,    0,    0,  233
    );

    protected $actionDefault = array(
            3,32767,32767,32767,32767,32767,32767,32767,32767,32767,
        32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
        32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
        32767,32767,  428,  428,32767,  385,32767,32767,32767,32767,
        32767,32767,32767,  189,  189,  189,32767,32767,32767,  417,
          417,  417,  417,  417,  417,  417,  417,  417,  417,  417,
        32767,32767,32767,32767,32767,  271,32767,32767,32767,32767,
        32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
        32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
        32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
        32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
        32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
        32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
        32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
        32767,  277,  433,32767,32767,32767,32767,32767,32767,32767,
        32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
        32767,32767,  252,  253,  255,  256,  188,  418,  140,  278,
          432,  187,  142,  216,  389,32767,32767,32767,  218,   26,
          151,   96,  388,  186,  127,  270,  272,  217,  193,  198,
          199,  200,  201,  202,  203,  204,  205,  206,  207,  208,
          209,  192,  343,  249,  248,  247,  345,32767,  344,  382,
          382,  385,32767,32767,32767,32767,32767,32767,32767,32767,
        32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
        32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
        32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
        32767,  214,  371,  370,  215,  341,  219,  342,  221,  346,
          220,  237,  238,  235,  236,  239,  348,  347,  364,  365,
          362,  363,  191,  240,  241,  242,  243,  366,  367,  368,
          369,  173,  173,  173,  173,32767,32767,  427,  427,32767,
        32767,  228,  229,  355,  356,32767,32767,32767,32767,32767,
        32767,32767,32767,32767,32767,32767,  174,32767,32767,  131,
          131,  131,  131,  131,32767,32767,32767,32767,32767,  223,
          224,  222,  350,  351,  349,32767,32767,  317,32767,32767,
        32767,32767,32767,  319,32767,32767,32767,32767,32767,32767,
        32767,32767,32767,32767,  390,  318,32767,32767,32767,32767,
        32767,32767,32767,32767,  403,  306,32767,32767,32767,32767,
          299,  115,  117,   65,  374,32767,32767,32767,32767,32767,
          408,  233,32767,32767,32767,32767,32767,32767,  440,32767,
          403,32767,32767,32767,32767,32767,32767,32767,32767,  246,
          225,  226,  227,32767,32767,  407,  401,  358,  359,  360,
          361,  352,  353,  354,  357,32767,32767,32767,32767,32767,
           69,  314,32767,  320,  320,32767,32767,32767,32767,   69,
        32767,32767,32767,32767,   69,32767,  406,  405,   69,32767,
          300,  384,   69,   82,32767,   80,   80,32767,  101,  101,
        32767,32767,   84,  380,  396,32767,   84,32767,   69,32767,
          288,   71,  384,32767,32767,  133,  133,  288,   69,  133,
        32767,  133,32767,    4,  324,32767,32767,32767,32767,32767,
        32767,32767,32767,32767,32767,32767,32767,32767,32767,  301,
        32767,32767,32767,  267,  268,  377,  392,32767,  393,32767,
          299,32767,  231,  232,  234,  211,32767,  213,  257,  258,
          259,  260,  261,  262,  263,  265,32767,32767,  304,  307,
        32767,32767,32767,    6,   20,  150,32767,  302,32767,  196,
        32767,32767,32767,32767,  435,32767,32767,  190,32767,32767,
           22,32767,  146,32767,   67,32767,  425,32767,32767,  401,
          303,  230,32767,32767,32767,32767,32767,32767,32767,32767,
        32767,  402,32767,32767,32767,  122,32767,  337,32767,32767,
        32767,   83,32767,  194,  141,32767,32767,  434,32767,32767,
        32767,32767,32767,32767,32767,32767,32767,   68,32767,32767,
           85,32767,32767,  401,32767,32767,32767,32767,32767,32767,
          185,32767,32767,32767,32767,32767,  401,32767,32767,32767,
          126,32767,32767,32767,32767,32767,32767,32767,    4,32767,
          167,32767,32767,32767,32767,32767,32767,32767,   28,   28,
            3,   28,  109,   28,  153,    3,  101,  101,   62,  153,
           28,  153,  153,   28,   28,   28,   28,   28,  160,   28,
           28,   28,   28,   28,   28,   28
    );

    protected $goto = array(
          168,  168,  142,  142,  147,  142,  143,  144,  145,  150,
          152,  188,  170,  166,  166,  166,  166,  147,  147,  167,
          167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
          162,  163,  164,  165,  185,  141,  186,  492,  493,  371,
          494,  498,  499,  500,  501,  502,  503,  504,  505,  843,
          146,  148,  149,  151,  173,  178,  187,  203,  251,  254,
          256,  258,  260,  261,  262,  263,  264,  265,  273,  274,
          275,  276,  291,  292,  319,  320,  321,  390,  391,  392,
          541,  189,  190,  191,  192,  193,  194,  195,  196,  197,
          198,  199,  200,  201,  153,  154,  155,  169,  156,  171,
          157,  204,  172,  158,  159,  160,  205,  161,  139,  557,
          700,  557,  557,  557,  557,  557,  557,  557,  557,  557,
          557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
          557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
          557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
          557,  557,  557,  496,  496,  496,  496,  496,  496,  379,
          653,  653,  653,  496,  496,  496,  496,  496,  496,  496,
          496,  496,  496,  507,  570,  594,  507,  753,  738,  736,
          734,  736,  622,  510,  762,  757,  785,  430,  430,  430,
          430,  430,  430,  767,  767, 1072, 1072,  430,  430,  430,
          430,  430,  430,  430,  430,  430,  430,  946,  519,  350,
          946,  774,  774,  774,  774,  774,  774,  543,  544,  545,
          546,  547,  548,  549,  550,  552,  579,  609,  599,  822,
          409,  604,  282,  369,  283,  284,  530,  732,  732,  732,
          732,  537,    5,  727,  733,  603,  558,    6,  558,  558,
          558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
          558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
          558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
          558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
          981, 1076,  981,  981,  981,  981,  981,  981,  981,  981,
          981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
          981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
          981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
          981,  981,  981,  981,  654,  654,  654,  655,  655,  655,
          573,  576,  614,  176,  508,  957,  956,  508,  179,  180,
          181,  397,  398,  399,  400,  175,  202,  206,  208,  255,
          257,  259,  266,  267,  268,  269,  270,  271,  277,  278,
          279,  280,  293,  294,  322,  323,  324,  401,  402,  403,
          404,  177,  182,  252,  253,  183,  184,    9,  333,    3,
          372,   10,  317,  580,  353,  408,  351,  352,   11,  587,
         1044,    1,   12,   13,    2,   14, 1032,    7,   15,   16,
           17,   18,   19,   20,  396,  596,  536,  536,  563,  532,
          939,  513,  383,  384,  534,  534,  495,  497,  524,  539,
          564,  567,  577,  583,  513,  962, 1069,  595,  386, 1051,
         1082, 1082, 1051,  890,  900,   26,   21,  365,  664,  633,
          841,  513,  513,  513,  771,  509, 1085, 1082,  509,  780,
          789,  553, 1067, 1067, 1067,  380,  380,  380,  373, 1085,
         1085,  542,  522,   29, 1050,  518,  533,  380,  592,  982,
          405, 1052,  942,  943, 1052,  395,  939,  932,  518,  518,
          937,  446,  451,  670,  568,  794,  741, 1029,  459,  940,
         1043,  940,  601,  830,    0,    0,    0,    0,    0,  941,
            0,  513,    0,    0,    0,    0,    0,    0,    0,    0,
          517,    0,    0,    0,    0,    0,    0,    0,    0,  540,
            0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
            0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
            0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
            0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
            0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
            0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
          523
    );

    protected $gotoCheck = array(
           25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
           25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
           25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
           25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
           25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
           25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
           25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
           25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
           25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
           25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
           25,   25,   25,   25,   25,   25,   25,   25,   25,   39,
           32,   39,   39,   39,   39,   39,   39,   39,   39,   39,
           39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
           39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
           39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
           39,   39,   39,   95,   95,   95,   95,   95,   95,    5,
            6,    6,    6,   95,   95,   95,   95,   95,   95,   95,
           95,   95,   95,   95,   22,   22,   95,    6,    6,    6,
            6,    6,    6,    6,    6,    6,   63,   39,   39,   39,
           39,   39,   39,   56,   56,   56,   56,   39,   39,   39,
           39,   39,   39,   39,   39,   39,   39,   39,   79,   51,
           39,   39,   39,   39,   39,   39,   39,   88,   88,   88,
           88,   88,   88,   88,   88,   88,   88,   39,   43,   76,
           76,   43,   47,   43,   47,   47,    5,   39,   39,   39,
           39,   87,    2,   39,   39,   39,   98,    2,   98,   98,
           98,   98,   98,   98,   98,   98,   98,   98,   98,   98,
           98,   98,   98,   98,   98,   98,   98,   98,   98,   98,
           98,   98,   98,   98,   98,   98,   98,   98,   98,   98,
           98,   98,   98,   98,   98,   98,   98,   98,   98,   98,
          105,  119,  105,  105,  105,  105,  105,  105,  105,  105,
          105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
          105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
          105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
          105,  105,  105,  105,    7,    7,    7,    8,    8,    8,
           42,   42,   42,   13,   98,  103,  103,   98,   13,   13,
           13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
           13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
           13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
           13,   13,   13,   13,   13,   13,   13,   14,  104,   14,
           29,   14,  104,   49,   49,   49,   51,   51,   14,  107,
           61,   14,   14,   14,   14,   14,  111,   14,   14,   14,
           14,   14,   14,   14,   33,   33,   33,   33,   33,   33,
           61,    4,    9,    9,   33,   33,   33,   33,   33,   33,
           33,   33,   33,   33,    4,   16,  117,   31,   30,   97,
          120,  120,   97,   80,   16,   16,   16,   16,   11,   53,
           79,    4,    4,    4,   58,  101,  120,  120,  101,   60,
           64,   16,   97,   97,   97,  102,  102,  102,   40,  120,
          120,   26,   40,   16,   97,   26,   40,  102,   16,  106,
           10,   96,   61,   61,   96,  102,   61,   91,   26,   26,
           93,   45,   40,   12,   46,   65,   50,  110,   86,   61,
           61,   61,   40,   78,   -1,   -1,   -1,   -1,   -1,   61,
           -1,    4,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
            4,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,    4,
           -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
           -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
           -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
           -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
           -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
           -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
           79
    );

    protected $gotoBase = array(
            0,    0, -378,    0,   95, -180,  156,  330,  333,   66,
           63,   90,   53,  136, -232,    0,   24,    0,    0,    0,
            0,    0,  130,    0,    0,  -30,  441,    0,    0,  344,
          142,  151,   85,  129,    0,    0,    0,    0,    0,  -98,
           44,    0,   30, -228,    0,   55,   48, -397,    0,   57,
           49, -230,    0,   82,    0,    0,  -92,    0,  141,    0,
          145,   56,    0,  155,   94,   54,    0,    0,    0,    0,
            0,    0,    0,    0,    0,    0,  -77,    0,   43,  161,
          135,    0,    0,    0,    0,    0,   41,  208,  167,    0,
            0,   73,    0,   71,    0, -132,  176,  134,   39,    0,
            0,  150,  137,   16,   61,   83,  111,  189,    0,    0,
           45,  195,    0,    0,    0,    0,    0,  148,    0,  256,
          124,    0
    );

    protected $gotoDefault = array(
        -32768,  462,    4,  648,  479,  514,  675,  676,  677,  375,
          374,  665,  671,  174,    8,  673,  891,  361,  680,  362,
          582,  682,  526,  684,  685,  140,  480,  376,  377,  527,
          385,  571,  699,  272,  382,  701,  363,  703,  709,  364,
          602,  586,  554,  598,  481,  442,  565,  281,  535,  561,
          740,  349,  748,  636,  756,  759,  482,  555,  770,  448,
          778,  967,  393,  784,  790,  795,  798,  418,  406,  578,
          802,  803,  325,  807,  610,  611,  821,  306,  829,  842,
          414,  910,  912,  483,  484,  520,  456,  506,  525,  485,
          933,  436,  407,  936,  486,  487,  426,  427,  954,  951,
          355, 1037,  354,  444,  316, 1022, 1021,  574,  986,  452,
         1075, 1033,  344,  488,  489,  370,  387, 1070,  431, 1077,
         1084,  562
    );

    protected $ruleToNonTerminal = array(
            0,    1,    2,    2,    4,    4,    5,    3,    3,    3,
            3,    3,    3,    3,    3,    3,    3,    3,    9,    9,
           11,   11,   11,   11,   10,   10,   12,   14,   14,   15,
           15,   15,   15,    6,    6,    6,    6,    6,    6,    6,
            6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
            6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
            6,    6,   36,   36,   38,   37,   37,   30,   30,   40,
           40,   41,   41,    7,    8,    8,    8,   44,   44,   44,
           45,   45,   48,   48,   46,   46,   49,   49,   23,   23,
           32,   32,   35,   35,   34,   34,   50,   24,   24,   24,
           24,   51,   51,   52,   52,   53,   53,   21,   21,   17,
           17,   54,   19,   19,   55,   18,   18,   20,   20,   31,
           31,   31,   42,   42,   57,   57,   58,   58,   60,   60,
           60,   59,   59,   43,   43,   61,   61,   61,   62,   62,
           63,   63,   63,   27,   27,   64,   64,   64,   28,   28,
           65,   65,   47,   47,   66,   66,   66,   66,   71,   71,
           72,   72,   73,   73,   73,   73,   74,   75,   75,   70,
           70,   67,   67,   69,   69,   77,   77,   76,   76,   76,
           76,   76,   76,   68,   68,   78,   78,   29,   29,   22,
           22,   25,   25,   25,   25,   25,   25,   25,   25,   25,
           25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
           25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
           25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
           25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
           25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
           25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
           25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
           25,   25,   25,   25,   25,   16,   16,   26,   26,   83,
           83,   84,   84,   84,   84,   90,   79,   79,   86,   86,
           92,   92,   93,   94,   94,   94,   94,   94,   94,   98,
           98,   39,   39,   39,   80,   80,   99,   99,   95,   95,
          100,  100,  100,  100,   81,   81,   81,   85,   85,   85,
           91,   91,  105,  105,  105,  105,  105,  105,  105,  105,
          105,  105,  105,  105,  105,   13,   13,   13,   13,   13,
           13,  108,  108,  108,  108,  108,  108,  108,  108,  108,
          108,  108,  108,  108,  108,  108,  108,  108,  108,  108,
          108,  108,  108,  108,  108,  108,  108,  108,  108,  108,
          108,  108,  108,  108,   89,   89,   82,   82,   82,   82,
          106,  106,  107,  107,  110,  110,  109,  109,  111,  111,
           33,   33,   33,   33,  113,  113,  112,  112,  112,  112,
          112,  114,  114,   97,   97,  101,  101,   96,   96,  115,
          115,  115,  115,  102,  102,  102,  102,   88,   88,  103,
          103,  103,   56,  116,  116,  117,  117,  117,   87,   87,
          118,  118,  119,  119,  119,  119,  104,  104,  104,  104,
          120,  120,  120,  120,  120,  120,  120,  121,  121,  121
    );

    protected $ruleToLength = array(
            1,    1,    2,    0,    1,    3,    1,    1,    1,    1,
            1,    3,    5,    4,    3,    4,    4,    3,    3,    1,
            1,    3,    2,    4,    3,    1,    3,    2,    0,    1,
            1,    1,    1,    3,    5,    8,    3,    5,    9,    3,
            2,    3,    2,    3,    2,    3,    2,    3,    3,    3,
            1,    2,    5,    7,    9,    5,    1,    6,    3,    3,
            2,    1,    0,    2,    8,    0,    4,    1,    3,    0,
            1,    0,    1,   10,    7,    6,    5,    1,    2,    2,
            0,    2,    0,    2,    0,    2,    1,    3,    1,    4,
            1,    4,    1,    4,    1,    3,    3,    3,    4,    4,
            5,    0,    2,    4,    3,    1,    1,    1,    4,    0,
            2,    3,    0,    2,    4,    0,    2,    0,    3,    1,
            2,    1,    1,    0,    1,    3,    4,    6,    1,    1,
            1,    0,    1,    0,    2,    2,    3,    3,    1,    3,
            1,    2,    2,    3,    1,    1,    2,    4,    3,    1,
            1,    3,    2,    0,    3,    3,    9,    3,    1,    3,
            0,    2,    4,    5,    4,    4,    3,    1,    1,    1,
            3,    1,    1,    0,    1,    1,    2,    1,    1,    1,
            1,    1,    1,    1,    3,    1,    3,    3,    1,    0,
            1,    1,    3,    3,    4,    4,    1,    2,    3,    3,
            3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
            2,    2,    2,    2,    3,    3,    3,    3,    3,    3,
            3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
            3,    2,    2,    2,    2,    3,    3,    3,    3,    3,
            3,    3,    3,    3,    3,    1,    3,    5,    4,    3,
            4,    4,    2,    2,    2,    2,    2,    2,    2,    2,
            2,    2,    2,    2,    2,    2,    1,    1,    1,    3,
            2,    1,    2,   10,   11,    3,    3,    2,    4,    4,
            3,    4,    4,    4,    4,    7,    3,    2,    0,    4,
            1,    3,    2,    2,    4,    6,    2,    2,    4,    1,
            1,    1,    2,    3,    1,    1,    1,    1,    1,    1,
            3,    3,    4,    4,    0,    2,    1,    0,    1,    1,
            0,    1,    1,    1,    1,    1,    1,    1,    1,    1,
            1,    1,    1,    3,    2,    1,    3,    1,    4,    3,
            1,    3,    3,    3,    3,    3,    3,    3,    3,    3,
            3,    3,    3,    3,    3,    3,    3,    3,    2,    2,
            2,    2,    3,    3,    3,    3,    3,    3,    3,    3,
            5,    4,    4,    3,    1,    3,    1,    1,    3,    3,
            1,    1,    0,    2,    0,    1,    3,    1,    3,    1,
            1,    1,    1,    1,    6,    4,    3,    4,    2,    4,
            4,    1,    3,    1,    2,    1,    1,    4,    1,    3,
            6,    4,    4,    4,    4,    1,    4,    0,    1,    1,
            3,    1,    4,    3,    1,    1,    1,    0,    0,    2,
            3,    1,    3,    1,    4,    2,    2,    2,    1,    2,
            1,    4,    3,    3,    3,    6,    3,    1,    1,    1
    );

    protected function reduceRule0() {
        $this->semValue = $this->semStack[$this->stackPos];
    }

    protected function reduceRule1() {
         $this->semValue = $this->handleNamespaces($this->semStack[$this->stackPos-(1-1)]);
    }

    protected function reduceRule2() {
         if (is_array($this->semStack[$this->stackPos-(2-2)])) { $this->semValue = array_merge($this->semStack[$this->stackPos-(2-1)], $this->semStack[$this->stackPos-(2-2)]); } else { $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)]; };
    }

    protected function reduceRule3() {
         $this->semValue = array();
    }

    protected function reduceRule4() {
         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
    }

    protected function reduceRule5() {
         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
    }

    protected function reduceRule6() {
         $this->semValue = new Name($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
    }

    protected function reduceRule7() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule8() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule9() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule10() {
         $this->semValue = new Stmt\HaltCompiler($this->lexer->handleHaltCompiler(), $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
    }

    protected function reduceRule11() {
         $this->semValue = new Stmt\Namespace_($this->semStack[$this->stackPos-(3-2)], null, $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule12() {
         $this->semValue = new Stmt\Namespace_($this->semStack[$this->stackPos-(5-2)], $this->semStack[$this->stackPos-(5-4)], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes);
    }

    protected function reduceRule13() {
         $this->semValue = new Stmt\Namespace_(null, $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule14() {
         $this->semValue = new Stmt\Use_($this->semStack[$this->stackPos-(3-2)], Stmt\Use_::TYPE_NORMAL, $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule15() {
         $this->semValue = new Stmt\Use_($this->semStack[$this->stackPos-(4-3)], Stmt\Use_::TYPE_FUNCTION, $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule16() {
         $this->semValue = new Stmt\Use_($this->semStack[$this->stackPos-(4-3)], Stmt\Use_::TYPE_CONSTANT, $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule17() {
         $this->semValue = new Stmt\Const_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule18() {
         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
    }

    protected function reduceRule19() {
         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
    }

    protected function reduceRule20() {
         $this->semValue = new Stmt\UseUse($this->semStack[$this->stackPos-(1-1)], null, $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
    }

    protected function reduceRule21() {
         $this->semValue = new Stmt\UseUse($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule22() {
         $this->semValue = new Stmt\UseUse($this->semStack[$this->stackPos-(2-2)], null, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule23() {
         $this->semValue = new Stmt\UseUse($this->semStack[$this->stackPos-(4-2)], $this->semStack[$this->stackPos-(4-4)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule24() {
         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
    }

    protected function reduceRule25() {
         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
    }

    protected function reduceRule26() {
         $this->semValue = new Node\Const_($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule27() {
         if (is_array($this->semStack[$this->stackPos-(2-2)])) { $this->semValue = array_merge($this->semStack[$this->stackPos-(2-1)], $this->semStack[$this->stackPos-(2-2)]); } else { $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)]; };
    }

    protected function reduceRule28() {
         $this->semValue = array();
    }

    protected function reduceRule29() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule30() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule31() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule32() {
         throw new Error('__HALT_COMPILER() can only be used from the outermost scope', $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
    }

    protected function reduceRule33() {
         $this->semValue = $this->semStack[$this->stackPos-(3-2)];
    }

    protected function reduceRule34() {
         $this->semValue = new Stmt\If_($this->semStack[$this->stackPos-(5-2)], array('stmts' => is_array($this->semStack[$this->stackPos-(5-3)]) ? $this->semStack[$this->stackPos-(5-3)] : array($this->semStack[$this->stackPos-(5-3)]), 'elseifs' => $this->semStack[$this->stackPos-(5-4)], 'else' => $this->semStack[$this->stackPos-(5-5)]), $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes);
    }

    protected function reduceRule35() {
         $this->semValue = new Stmt\If_($this->semStack[$this->stackPos-(8-2)], array('stmts' => $this->semStack[$this->stackPos-(8-4)], 'elseifs' => $this->semStack[$this->stackPos-(8-5)], 'else' => $this->semStack[$this->stackPos-(8-6)]), $this->startAttributeStack[$this->stackPos-(8-1)] + $this->endAttributes);
    }

    protected function reduceRule36() {
         $this->semValue = new Stmt\While_($this->semStack[$this->stackPos-(3-2)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule37() {
         $this->semValue = new Stmt\Do_($this->semStack[$this->stackPos-(5-4)], is_array($this->semStack[$this->stackPos-(5-2)]) ? $this->semStack[$this->stackPos-(5-2)] : array($this->semStack[$this->stackPos-(5-2)]), $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes);
    }

    protected function reduceRule38() {
         $this->semValue = new Stmt\For_(array('init' => $this->semStack[$this->stackPos-(9-3)], 'cond' => $this->semStack[$this->stackPos-(9-5)], 'loop' => $this->semStack[$this->stackPos-(9-7)], 'stmts' => $this->semStack[$this->stackPos-(9-9)]), $this->startAttributeStack[$this->stackPos-(9-1)] + $this->endAttributes);
    }

    protected function reduceRule39() {
         $this->semValue = new Stmt\Switch_($this->semStack[$this->stackPos-(3-2)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule40() {
         $this->semValue = new Stmt\Break_(null, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule41() {
         $this->semValue = new Stmt\Break_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule42() {
         $this->semValue = new Stmt\Continue_(null, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule43() {
         $this->semValue = new Stmt\Continue_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule44() {
         $this->semValue = new Stmt\Return_(null, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule45() {
         $this->semValue = new Stmt\Return_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule46() {
         $this->semValue = $this->semStack[$this->stackPos-(2-1)];
    }

    protected function reduceRule47() {
         $this->semValue = new Stmt\Global_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule48() {
         $this->semValue = new Stmt\Static_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule49() {
         $this->semValue = new Stmt\Echo_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule50() {
         $this->semValue = new Stmt\InlineHTML($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
    }

    protected function reduceRule51() {
         $this->semValue = $this->semStack[$this->stackPos-(2-1)];
    }

    protected function reduceRule52() {
         $this->semValue = new Stmt\Unset_($this->semStack[$this->stackPos-(5-3)], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes);
    }

    protected function reduceRule53() {
         $this->semValue = new Stmt\Foreach_($this->semStack[$this->stackPos-(7-3)], $this->semStack[$this->stackPos-(7-5)][0], array('keyVar' => null, 'byRef' => $this->semStack[$this->stackPos-(7-5)][1], 'stmts' => $this->semStack[$this->stackPos-(7-7)]), $this->startAttributeStack[$this->stackPos-(7-1)] + $this->endAttributes);
    }

    protected function reduceRule54() {
         $this->semValue = new Stmt\Foreach_($this->semStack[$this->stackPos-(9-3)], $this->semStack[$this->stackPos-(9-7)][0], array('keyVar' => $this->semStack[$this->stackPos-(9-5)], 'byRef' => $this->semStack[$this->stackPos-(9-7)][1], 'stmts' => $this->semStack[$this->stackPos-(9-9)]), $this->startAttributeStack[$this->stackPos-(9-1)] + $this->endAttributes);
    }

    protected function reduceRule55() {
         $this->semValue = new Stmt\Declare_($this->semStack[$this->stackPos-(5-3)], $this->semStack[$this->stackPos-(5-5)], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes);
    }

    protected function reduceRule56() {
         $this->semValue = array(); /* means: no statement */
    }

    protected function reduceRule57() {
         $this->semValue = new Stmt\TryCatch($this->semStack[$this->stackPos-(6-3)], $this->semStack[$this->stackPos-(6-5)], $this->semStack[$this->stackPos-(6-6)], $this->startAttributeStack[$this->stackPos-(6-1)] + $this->endAttributes);
    }

    protected function reduceRule58() {
         $this->semValue = new Stmt\Throw_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule59() {
         $this->semValue = new Stmt\Goto_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule60() {
         $this->semValue = new Stmt\Label($this->semStack[$this->stackPos-(2-1)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule61() {
         $this->semValue = array(); /* means: no statement */
    }

    protected function reduceRule62() {
         $this->semValue = array();
    }

    protected function reduceRule63() {
         $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)];
    }

    protected function reduceRule64() {
         $this->semValue = new Stmt\Catch_($this->semStack[$this->stackPos-(8-3)], substr($this->semStack[$this->stackPos-(8-4)], 1), $this->semStack[$this->stackPos-(8-7)], $this->startAttributeStack[$this->stackPos-(8-1)] + $this->endAttributes);
    }

    protected function reduceRule65() {
         $this->semValue = null;
    }

    protected function reduceRule66() {
         $this->semValue = $this->semStack[$this->stackPos-(4-3)];
    }

    protected function reduceRule67() {
         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
    }

    protected function reduceRule68() {
         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
    }

    protected function reduceRule69() {
         $this->semValue = false;
    }

    protected function reduceRule70() {
         $this->semValue = true;
    }

    protected function reduceRule71() {
         $this->semValue = false;
    }

    protected function reduceRule72() {
         $this->semValue = true;
    }

    protected function reduceRule73() {
         $this->semValue = new Stmt\Function_($this->semStack[$this->stackPos-(10-3)], array('byRef' => $this->semStack[$this->stackPos-(10-2)], 'params' => $this->semStack[$this->stackPos-(10-5)], 'returnType' => $this->semStack[$this->stackPos-(10-7)], 'stmts' => $this->semStack[$this->stackPos-(10-9)]), $this->startAttributeStack[$this->stackPos-(10-1)] + $this->endAttributes);
    }

    protected function reduceRule74() {
         $this->semValue = new Stmt\Class_($this->semStack[$this->stackPos-(7-2)], array('type' => $this->semStack[$this->stackPos-(7-1)], 'extends' => $this->semStack[$this->stackPos-(7-3)], 'implements' => $this->semStack[$this->stackPos-(7-4)], 'stmts' => $this->semStack[$this->stackPos-(7-6)]), $this->startAttributeStack[$this->stackPos-(7-1)] + $this->endAttributes);
    }

    protected function reduceRule75() {
         $this->semValue = new Stmt\Interface_($this->semStack[$this->stackPos-(6-2)], array('extends' => $this->semStack[$this->stackPos-(6-3)], 'stmts' => $this->semStack[$this->stackPos-(6-5)]), $this->startAttributeStack[$this->stackPos-(6-1)] + $this->endAttributes);
    }

    protected function reduceRule76() {
         $this->semValue = new Stmt\Trait_($this->semStack[$this->stackPos-(5-2)], $this->semStack[$this->stackPos-(5-4)], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes);
    }

    protected function reduceRule77() {
         $this->semValue = 0;
    }

    protected function reduceRule78() {
         $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT;
    }

    protected function reduceRule79() {
         $this->semValue = Stmt\Class_::MODIFIER_FINAL;
    }

    protected function reduceRule80() {
         $this->semValue = null;
    }

    protected function reduceRule81() {
         $this->semValue = $this->semStack[$this->stackPos-(2-2)];
    }

    protected function reduceRule82() {
         $this->semValue = array();
    }

    protected function reduceRule83() {
         $this->semValue = $this->semStack[$this->stackPos-(2-2)];
    }

    protected function reduceRule84() {
         $this->semValue = array();
    }

    protected function reduceRule85() {
         $this->semValue = $this->semStack[$this->stackPos-(2-2)];
    }

    protected function reduceRule86() {
         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
    }

    protected function reduceRule87() {
         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
    }

    protected function reduceRule88() {
         $this->semValue = is_array($this->semStack[$this->stackPos-(1-1)]) ? $this->semStack[$this->stackPos-(1-1)] : array($this->semStack[$this->stackPos-(1-1)]);
    }

    protected function reduceRule89() {
         $this->semValue = $this->semStack[$this->stackPos-(4-2)];
    }

    protected function reduceRule90() {
         $this->semValue = is_array($this->semStack[$this->stackPos-(1-1)]) ? $this->semStack[$this->stackPos-(1-1)] : array($this->semStack[$this->stackPos-(1-1)]);
    }

    protected function reduceRule91() {
         $this->semValue = $this->semStack[$this->stackPos-(4-2)];
    }

    protected function reduceRule92() {
         $this->semValue = is_array($this->semStack[$this->stackPos-(1-1)]) ? $this->semStack[$this->stackPos-(1-1)] : array($this->semStack[$this->stackPos-(1-1)]);
    }

    protected function reduceRule93() {
         $this->semValue = $this->semStack[$this->stackPos-(4-2)];
    }

    protected function reduceRule94() {
         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
    }

    protected function reduceRule95() {
         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
    }

    protected function reduceRule96() {
         $this->semValue = new Stmt\DeclareDeclare($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule97() {
         $this->semValue = $this->semStack[$this->stackPos-(3-2)];
    }

    protected function reduceRule98() {
         $this->semValue = $this->semStack[$this->stackPos-(4-3)];
    }

    protected function reduceRule99() {
         $this->semValue = $this->semStack[$this->stackPos-(4-2)];
    }

    protected function reduceRule100() {
         $this->semValue = $this->semStack[$this->stackPos-(5-3)];
    }

    protected function reduceRule101() {
         $this->semValue = array();
    }

    protected function reduceRule102() {
         $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)];
    }

    protected function reduceRule103() {
         $this->semValue = new Stmt\Case_($this->semStack[$this->stackPos-(4-2)], $this->semStack[$this->stackPos-(4-4)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule104() {
         $this->semValue = new Stmt\Case_(null, $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule105() {
        $this->semValue = $this->semStack[$this->stackPos];
    }

    protected function reduceRule106() {
        $this->semValue = $this->semStack[$this->stackPos];
    }

    protected function reduceRule107() {
         $this->semValue = is_array($this->semStack[$this->stackPos-(1-1)]) ? $this->semStack[$this->stackPos-(1-1)] : array($this->semStack[$this->stackPos-(1-1)]);
    }

    protected function reduceRule108() {
         $this->semValue = $this->semStack[$this->stackPos-(4-2)];
    }

    protected function reduceRule109() {
         $this->semValue = array();
    }

    protected function reduceRule110() {
         $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)];
    }

    protected function reduceRule111() {
         $this->semValue = new Stmt\ElseIf_($this->semStack[$this->stackPos-(3-2)], is_array($this->semStack[$this->stackPos-(3-3)]) ? $this->semStack[$this->stackPos-(3-3)] : array($this->semStack[$this->stackPos-(3-3)]), $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule112() {
         $this->semValue = array();
    }

    protected function reduceRule113() {
         $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)];
    }

    protected function reduceRule114() {
         $this->semValue = new Stmt\ElseIf_($this->semStack[$this->stackPos-(4-2)], $this->semStack[$this->stackPos-(4-4)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule115() {
         $this->semValue = null;
    }

    protected function reduceRule116() {
         $this->semValue = new Stmt\Else_(is_array($this->semStack[$this->stackPos-(2-2)]) ? $this->semStack[$this->stackPos-(2-2)] : array($this->semStack[$this->stackPos-(2-2)]), $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule117() {
         $this->semValue = null;
    }

    protected function reduceRule118() {
         $this->semValue = new Stmt\Else_($this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule119() {
         $this->semValue = array($this->semStack[$this->stackPos-(1-1)], false);
    }

    protected function reduceRule120() {
         $this->semValue = array($this->semStack[$this->stackPos-(2-2)], true);
    }

    protected function reduceRule121() {
         $this->semValue = array($this->semStack[$this->stackPos-(1-1)], false);
    }

    protected function reduceRule122() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule123() {
         $this->semValue = array();
    }

    protected function reduceRule124() {
         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
    }

    protected function reduceRule125() {
         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
    }

    protected function reduceRule126() {
         $this->semValue = new Node\Param(substr($this->semStack[$this->stackPos-(4-4)], 1), null, $this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-2)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule127() {
         $this->semValue = new Node\Param(substr($this->semStack[$this->stackPos-(6-4)], 1), $this->semStack[$this->stackPos-(6-6)], $this->semStack[$this->stackPos-(6-1)], $this->semStack[$this->stackPos-(6-2)], $this->semStack[$this->stackPos-(6-3)], $this->startAttributeStack[$this->stackPos-(6-1)] + $this->endAttributes);
    }

    protected function reduceRule128() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule129() {
         $this->semValue = 'array';
    }

    protected function reduceRule130() {
         $this->semValue = 'callable';
    }

    protected function reduceRule131() {
         $this->semValue = null;
    }

    protected function reduceRule132() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule133() {
         $this->semValue = null;
    }

    protected function reduceRule134() {
         $this->semValue = $this->semStack[$this->stackPos-(2-2)];
    }

    protected function reduceRule135() {
         $this->semValue = array();
    }

    protected function reduceRule136() {
         $this->semValue = $this->semStack[$this->stackPos-(3-2)];
    }

    protected function reduceRule137() {
         $this->semValue = array(new Node\Arg($this->semStack[$this->stackPos-(3-2)], false, false, $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes));
    }

    protected function reduceRule138() {
         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
    }

    protected function reduceRule139() {
         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
    }

    protected function reduceRule140() {
         $this->semValue = new Node\Arg($this->semStack[$this->stackPos-(1-1)], false, false, $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
    }

    protected function reduceRule141() {
         $this->semValue = new Node\Arg($this->semStack[$this->stackPos-(2-2)], true, false, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule142() {
         $this->semValue = new Node\Arg($this->semStack[$this->stackPos-(2-2)], false, true, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule143() {
         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
    }

    protected function reduceRule144() {
         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
    }

    protected function reduceRule145() {
         $this->semValue = new Expr\Variable(substr($this->semStack[$this->stackPos-(1-1)], 1), $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
    }

    protected function reduceRule146() {
         $this->semValue = new Expr\Variable($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule147() {
         $this->semValue = new Expr\Variable($this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule148() {
         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
    }

    protected function reduceRule149() {
         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
    }

    protected function reduceRule150() {
         $this->semValue = new Stmt\StaticVar(substr($this->semStack[$this->stackPos-(1-1)], 1), null, $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
    }

    protected function reduceRule151() {
         $this->semValue = new Stmt\StaticVar(substr($this->semStack[$this->stackPos-(3-1)], 1), $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule152() {
         $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)];
    }

    protected function reduceRule153() {
         $this->semValue = array();
    }

    protected function reduceRule154() {
         $this->semValue = new Stmt\Property($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule155() {
         $this->semValue = new Stmt\ClassConst($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule156() {
         $this->semValue = new Stmt\ClassMethod($this->semStack[$this->stackPos-(9-4)], array('type' => $this->semStack[$this->stackPos-(9-1)], 'byRef' => $this->semStack[$this->stackPos-(9-3)], 'params' => $this->semStack[$this->stackPos-(9-6)], 'returnType' => $this->semStack[$this->stackPos-(9-8)], 'stmts' => $this->semStack[$this->stackPos-(9-9)]), $this->startAttributeStack[$this->stackPos-(9-1)] + $this->endAttributes);
    }

    protected function reduceRule157() {
         $this->semValue = new Stmt\TraitUse($this->semStack[$this->stackPos-(3-2)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule158() {
         $this->semValue = array();
    }

    protected function reduceRule159() {
         $this->semValue = $this->semStack[$this->stackPos-(3-2)];
    }

    protected function reduceRule160() {
         $this->semValue = array();
    }

    protected function reduceRule161() {
         $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)];
    }

    protected function reduceRule162() {
         $this->semValue = new Stmt\TraitUseAdaptation\Precedence($this->semStack[$this->stackPos-(4-1)][0], $this->semStack[$this->stackPos-(4-1)][1], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule163() {
         $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$this->stackPos-(5-1)][0], $this->semStack[$this->stackPos-(5-1)][1], $this->semStack[$this->stackPos-(5-3)], $this->semStack[$this->stackPos-(5-4)], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes);
    }

    protected function reduceRule164() {
         $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$this->stackPos-(4-1)][0], $this->semStack[$this->stackPos-(4-1)][1], $this->semStack[$this->stackPos-(4-3)], null, $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule165() {
         $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$this->stackPos-(4-1)][0], $this->semStack[$this->stackPos-(4-1)][1], null, $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule166() {
         $this->semValue = array($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)]);
    }

    protected function reduceRule167() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule168() {
         $this->semValue = array(null, $this->semStack[$this->stackPos-(1-1)]);
    }

    protected function reduceRule169() {
         $this->semValue = null;
    }

    protected function reduceRule170() {
         $this->semValue = $this->semStack[$this->stackPos-(3-2)];
    }

    protected function reduceRule171() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule172() {
         $this->semValue = 0;
    }

    protected function reduceRule173() {
         $this->semValue = 0;
    }

    protected function reduceRule174() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule175() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule176() {
         Stmt\Class_::verifyModifier($this->semStack[$this->stackPos-(2-1)], $this->semStack[$this->stackPos-(2-2)]); $this->semValue = $this->semStack[$this->stackPos-(2-1)] | $this->semStack[$this->stackPos-(2-2)];
    }

    protected function reduceRule177() {
         $this->semValue = Stmt\Class_::MODIFIER_PUBLIC;
    }

    protected function reduceRule178() {
         $this->semValue = Stmt\Class_::MODIFIER_PROTECTED;
    }

    protected function reduceRule179() {
         $this->semValue = Stmt\Class_::MODIFIER_PRIVATE;
    }

    protected function reduceRule180() {
         $this->semValue = Stmt\Class_::MODIFIER_STATIC;
    }

    protected function reduceRule181() {
         $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT;
    }

    protected function reduceRule182() {
         $this->semValue = Stmt\Class_::MODIFIER_FINAL;
    }

    protected function reduceRule183() {
         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
    }

    protected function reduceRule184() {
         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
    }

    protected function reduceRule185() {
         $this->semValue = new Stmt\PropertyProperty(substr($this->semStack[$this->stackPos-(1-1)], 1), null, $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
    }

    protected function reduceRule186() {
         $this->semValue = new Stmt\PropertyProperty(substr($this->semStack[$this->stackPos-(3-1)], 1), $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule187() {
         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
    }

    protected function reduceRule188() {
         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
    }

    protected function reduceRule189() {
         $this->semValue = array();
    }

    protected function reduceRule190() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule191() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule192() {
         $this->semValue = new Expr\Assign($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule193() {
         $this->semValue = new Expr\Assign($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule194() {
         $this->semValue = new Expr\AssignRef($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-4)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule195() {
         $this->semValue = new Expr\AssignRef($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-4)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule196() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule197() {
         $this->semValue = new Expr\Clone_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule198() {
         $this->semValue = new Expr\AssignOp\Plus($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule199() {
         $this->semValue = new Expr\AssignOp\Minus($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule200() {
         $this->semValue = new Expr\AssignOp\Mul($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule201() {
         $this->semValue = new Expr\AssignOp\Div($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule202() {
         $this->semValue = new Expr\AssignOp\Concat($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule203() {
         $this->semValue = new Expr\AssignOp\Mod($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule204() {
         $this->semValue = new Expr\AssignOp\BitwiseAnd($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule205() {
         $this->semValue = new Expr\AssignOp\BitwiseOr($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule206() {
         $this->semValue = new Expr\AssignOp\BitwiseXor($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule207() {
         $this->semValue = new Expr\AssignOp\ShiftLeft($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule208() {
         $this->semValue = new Expr\AssignOp\ShiftRight($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule209() {
         $this->semValue = new Expr\AssignOp\Pow($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule210() {
         $this->semValue = new Expr\PostInc($this->semStack[$this->stackPos-(2-1)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule211() {
         $this->semValue = new Expr\PreInc($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule212() {
         $this->semValue = new Expr\PostDec($this->semStack[$this->stackPos-(2-1)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule213() {
         $this->semValue = new Expr\PreDec($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule214() {
         $this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule215() {
         $this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule216() {
         $this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule217() {
         $this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule218() {
         $this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule219() {
         $this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule220() {
         $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule221() {
         $this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule222() {
         $this->semValue = new Expr\BinaryOp\Concat($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule223() {
         $this->semValue = new Expr\BinaryOp\Plus($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule224() {
         $this->semValue = new Expr\BinaryOp\Minus($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule225() {
         $this->semValue = new Expr\BinaryOp\Mul($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule226() {
         $this->semValue = new Expr\BinaryOp\Div($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule227() {
         $this->semValue = new Expr\BinaryOp\Mod($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule228() {
         $this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule229() {
         $this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule230() {
         $this->semValue = new Expr\BinaryOp\Pow($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule231() {
         $this->semValue = new Expr\UnaryPlus($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule232() {
         $this->semValue = new Expr\UnaryMinus($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule233() {
         $this->semValue = new Expr\BooleanNot($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule234() {
         $this->semValue = new Expr\BitwiseNot($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule235() {
         $this->semValue = new Expr\BinaryOp\Identical($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule236() {
         $this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule237() {
         $this->semValue = new Expr\BinaryOp\Equal($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule238() {
         $this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule239() {
         $this->semValue = new Expr\BinaryOp\Spaceship($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule240() {
         $this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule241() {
         $this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule242() {
         $this->semValue = new Expr\BinaryOp\Greater($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule243() {
         $this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule244() {
         $this->semValue = new Expr\Instanceof_($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule245() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule246() {
         $this->semValue = $this->semStack[$this->stackPos-(3-2)];
    }

    protected function reduceRule247() {
         $this->semValue = new Expr\Ternary($this->semStack[$this->stackPos-(5-1)], $this->semStack[$this->stackPos-(5-3)], $this->semStack[$this->stackPos-(5-5)], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes);
    }

    protected function reduceRule248() {
         $this->semValue = new Expr\Ternary($this->semStack[$this->stackPos-(4-1)], null, $this->semStack[$this->stackPos-(4-4)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule249() {
         $this->semValue = new Expr\BinaryOp\Coalesce($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule250() {
         $this->semValue = new Expr\Isset_($this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule251() {
         $this->semValue = new Expr\Empty_($this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule252() {
         $this->semValue = new Expr\Include_($this->semStack[$this->stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule253() {
         $this->semValue = new Expr\Include_($this->semStack[$this->stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE_ONCE, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule254() {
         $this->semValue = new Expr\Eval_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule255() {
         $this->semValue = new Expr\Include_($this->semStack[$this->stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule256() {
         $this->semValue = new Expr\Include_($this->semStack[$this->stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE_ONCE, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule257() {
         $this->semValue = new Expr\Cast\Int_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule258() {
         $this->semValue = new Expr\Cast\Double($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule259() {
         $this->semValue = new Expr\Cast\String_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule260() {
         $this->semValue = new Expr\Cast\Array_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule261() {
         $this->semValue = new Expr\Cast\Object_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule262() {
         $this->semValue = new Expr\Cast\Bool_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule263() {
         $this->semValue = new Expr\Cast\Unset_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule264() {
         $this->semValue = new Expr\Exit_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule265() {
         $this->semValue = new Expr\ErrorSuppress($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule266() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule267() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule268() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule269() {
         $this->semValue = new Expr\ShellExec($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule270() {
         $this->semValue = new Expr\Print_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule271() {
         $this->semValue = new Expr\Yield_(null, null, $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
    }

    protected function reduceRule272() {
         $this->semValue = new Expr\YieldFrom($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule273() {
         $this->semValue = new Expr\Closure(array('static' => false, 'byRef' => $this->semStack[$this->stackPos-(10-2)], 'params' => $this->semStack[$this->stackPos-(10-4)], 'uses' => $this->semStack[$this->stackPos-(10-6)], 'returnType' => $this->semStack[$this->stackPos-(10-7)], 'stmts' => $this->semStack[$this->stackPos-(10-9)]), $this->startAttributeStack[$this->stackPos-(10-1)] + $this->endAttributes);
    }

    protected function reduceRule274() {
         $this->semValue = new Expr\Closure(array('static' => true, 'byRef' => $this->semStack[$this->stackPos-(11-3)], 'params' => $this->semStack[$this->stackPos-(11-5)], 'uses' => $this->semStack[$this->stackPos-(11-7)], 'returnType' => $this->semStack[$this->stackPos-(11-8)], 'stmts' => $this->semStack[$this->stackPos-(11-10)]), $this->startAttributeStack[$this->stackPos-(11-1)] + $this->endAttributes);
    }

    protected function reduceRule275() {
         $this->semValue = $this->semStack[$this->stackPos-(3-2)];
    }

    protected function reduceRule276() {
         $this->semValue = $this->semStack[$this->stackPos-(3-2)];
    }

    protected function reduceRule277() {
         $this->semValue = new Expr\Yield_($this->semStack[$this->stackPos-(2-2)], null, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule278() {
         $this->semValue = new Expr\Yield_($this->semStack[$this->stackPos-(4-4)], $this->semStack[$this->stackPos-(4-2)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule279() {
         $this->semValue = new Expr\Array_($this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule280() {
         $this->semValue = new Expr\Array_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule281() {
         $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule282() {
         $this->semValue = new Expr\ArrayDimFetch(new Scalar\String_(Scalar\String_::parse($this->semStack[$this->stackPos-(4-1)]), $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes), $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule283() {
         $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule284() {
         $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule285() {
         $this->semValue = array(new Stmt\Class_(null, array('type' => 0, 'extends' => $this->semStack[$this->stackPos-(7-3)], 'implements' => $this->semStack[$this->stackPos-(7-4)], 'stmts' => $this->semStack[$this->stackPos-(7-6)]), $this->startAttributeStack[$this->stackPos-(7-1)] + $this->endAttributes), $this->semStack[$this->stackPos-(7-2)]);
    }

    protected function reduceRule286() {
         $this->semValue = new Expr\New_($this->semStack[$this->stackPos-(3-2)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule287() {
         list($class, $ctorArgs) = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = new Expr\New_($class, $ctorArgs, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule288() {
         $this->semValue = array();
    }

    protected function reduceRule289() {
         $this->semValue = $this->semStack[$this->stackPos-(4-3)];
    }

    protected function reduceRule290() {
         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
    }

    protected function reduceRule291() {
         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
    }

    protected function reduceRule292() {
         $this->semValue = new Expr\ClosureUse(substr($this->semStack[$this->stackPos-(2-2)], 1), $this->semStack[$this->stackPos-(2-1)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule293() {
         $this->semValue = new Expr\FuncCall($this->semStack[$this->stackPos-(2-1)], $this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule294() {
         $this->semValue = new Expr\StaticCall($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->semStack[$this->stackPos-(4-4)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule295() {
         $this->semValue = new Expr\StaticCall($this->semStack[$this->stackPos-(6-1)], $this->semStack[$this->stackPos-(6-4)], $this->semStack[$this->stackPos-(6-6)], $this->startAttributeStack[$this->stackPos-(6-1)] + $this->endAttributes);
    }

    protected function reduceRule296() {

            if ($this->semStack[$this->stackPos-(2-1)] instanceof Node\Expr\StaticPropertyFetch) {
                $this->semValue = new Expr\StaticCall($this->semStack[$this->stackPos-(2-1)]->class, new Expr\Variable($this->semStack[$this->stackPos-(2-1)]->name, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes), $this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
            } elseif ($this->semStack[$this->stackPos-(2-1)] instanceof Node\Expr\ArrayDimFetch) {
                $tmp = $this->semStack[$this->stackPos-(2-1)];
                while ($tmp->var instanceof Node\Expr\ArrayDimFetch) {
                    $tmp = $tmp->var;
                }

                $this->semValue = new Expr\StaticCall($tmp->var->class, $this->semStack[$this->stackPos-(2-1)], $this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
                $tmp->var = new Expr\Variable($tmp->var->name, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
            } else {
                throw new \Exception;
            }

    }

    protected function reduceRule297() {
         $this->semValue = new Expr\FuncCall($this->semStack[$this->stackPos-(2-1)], $this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule298() {
         $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule299() {
         $this->semValue = new Name($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
    }

    protected function reduceRule300() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule301() {
         $this->semValue = new Name($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
    }

    protected function reduceRule302() {
         $this->semValue = new Name\FullyQualified($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule303() {
         $this->semValue = new Name\Relative($this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule304() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule305() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule306() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule307() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule308() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule309() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule310() {
         $this->semValue = new Expr\PropertyFetch($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule311() {
         $this->semValue = new Expr\PropertyFetch($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule312() {
         $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule313() {
         $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule314() {
         $this->semValue = null;
    }

    protected function reduceRule315() {
         $this->semValue = null;
    }

    protected function reduceRule316() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule317() {
         $this->semValue = array();
    }

    protected function reduceRule318() {
         $this->semValue = array(Scalar\String_::parseEscapeSequences($this->semStack[$this->stackPos-(1-1)], '`'));
    }

    protected function reduceRule319() {
         foreach ($this->semStack[$this->stackPos-(1-1)] as &$s) { if (is_string($s)) { $s = Node\Scalar\String_::parseEscapeSequences($s, '`'); } }; $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule320() {
         $this->semValue = array();
    }

    protected function reduceRule321() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule322() {
         $this->semValue = new Scalar\LNumber(Scalar\LNumber::parse($this->semStack[$this->stackPos-(1-1)]), $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
    }

    protected function reduceRule323() {
         $this->semValue = new Scalar\DNumber(Scalar\DNumber::parse($this->semStack[$this->stackPos-(1-1)]), $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
    }

    protected function reduceRule324() {
         $this->semValue = new Scalar\String_(Scalar\String_::parse($this->semStack[$this->stackPos-(1-1)]), $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
    }

    protected function reduceRule325() {
         $this->semValue = new Scalar\MagicConst\Line($this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
    }

    protected function reduceRule326() {
         $this->semValue = new Scalar\MagicConst\File($this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
    }

    protected function reduceRule327() {
         $this->semValue = new Scalar\MagicConst\Dir($this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
    }

    protected function reduceRule328() {
         $this->semValue = new Scalar\MagicConst\Class_($this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
    }

    protected function reduceRule329() {
         $this->semValue = new Scalar\MagicConst\Trait_($this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
    }

    protected function reduceRule330() {
         $this->semValue = new Scalar\MagicConst\Method($this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
    }

    protected function reduceRule331() {
         $this->semValue = new Scalar\MagicConst\Function_($this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
    }

    protected function reduceRule332() {
         $this->semValue = new Scalar\MagicConst\Namespace_($this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
    }

    protected function reduceRule333() {
         $this->semValue = new Scalar\String_(Scalar\String_::parseDocString($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-2)]), $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule334() {
         $this->semValue = new Scalar\String_('', $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule335() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule336() {
         $this->semValue = new Expr\ClassConstFetch($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule337() {
         $this->semValue = new Expr\ConstFetch($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
    }

    protected function reduceRule338() {
         $this->semValue = new Expr\Array_($this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule339() {
         $this->semValue = new Expr\Array_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule340() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule341() {
         $this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule342() {
         $this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule343() {
         $this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule344() {
         $this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule345() {
         $this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule346() {
         $this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule347() {
         $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule348() {
         $this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule349() {
         $this->semValue = new Expr\BinaryOp\Concat($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule350() {
         $this->semValue = new Expr\BinaryOp\Plus($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule351() {
         $this->semValue = new Expr\BinaryOp\Minus($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule352() {
         $this->semValue = new Expr\BinaryOp\Mul($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule353() {
         $this->semValue = new Expr\BinaryOp\Div($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule354() {
         $this->semValue = new Expr\BinaryOp\Mod($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule355() {
         $this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule356() {
         $this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule357() {
         $this->semValue = new Expr\BinaryOp\Pow($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule358() {
         $this->semValue = new Expr\UnaryPlus($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule359() {
         $this->semValue = new Expr\UnaryMinus($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule360() {
         $this->semValue = new Expr\BooleanNot($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule361() {
         $this->semValue = new Expr\BitwiseNot($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule362() {
         $this->semValue = new Expr\BinaryOp\Identical($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule363() {
         $this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule364() {
         $this->semValue = new Expr\BinaryOp\Equal($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule365() {
         $this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule366() {
         $this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule367() {
         $this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule368() {
         $this->semValue = new Expr\BinaryOp\Greater($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule369() {
         $this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule370() {
         $this->semValue = new Expr\Ternary($this->semStack[$this->stackPos-(5-1)], $this->semStack[$this->stackPos-(5-3)], $this->semStack[$this->stackPos-(5-5)], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes);
    }

    protected function reduceRule371() {
         $this->semValue = new Expr\Ternary($this->semStack[$this->stackPos-(4-1)], null, $this->semStack[$this->stackPos-(4-4)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule372() {
         $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule373() {
         $this->semValue = $this->semStack[$this->stackPos-(3-2)];
    }

    protected function reduceRule374() {
         $this->semValue = new Expr\ConstFetch($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
    }

    protected function reduceRule375() {
         $this->semValue = new Expr\ClassConstFetch($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule376() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule377() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule378() {
         foreach ($this->semStack[$this->stackPos-(3-2)] as &$s) { if (is_string($s)) { $s = Node\Scalar\String_::parseEscapeSequences($s, '"'); } }; $this->semValue = new Scalar\Encapsed($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule379() {
         foreach ($this->semStack[$this->stackPos-(3-2)] as &$s) { if (is_string($s)) { $s = Node\Scalar\String_::parseEscapeSequences($s, null); } } $s = preg_replace('~(\r\n|\n|\r)$~', '', $s); if ('' === $s) array_pop($this->semStack[$this->stackPos-(3-2)]);; $this->semValue = new Scalar\Encapsed($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule380() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule381() {
         $this->semValue = 'class';
    }

    protected function reduceRule382() {
         $this->semValue = array();
    }

    protected function reduceRule383() {
         $this->semValue = $this->semStack[$this->stackPos-(2-1)];
    }

    protected function reduceRule384() {
        $this->semValue = $this->semStack[$this->stackPos];
    }

    protected function reduceRule385() {
        $this->semValue = $this->semStack[$this->stackPos];
    }

    protected function reduceRule386() {
         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
    }

    protected function reduceRule387() {
         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
    }

    protected function reduceRule388() {
         $this->semValue = new Expr\ArrayItem($this->semStack[$this->stackPos-(3-3)], $this->semStack[$this->stackPos-(3-1)], false, $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule389() {
         $this->semValue = new Expr\ArrayItem($this->semStack[$this->stackPos-(1-1)], null, false, $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
    }

    protected function reduceRule390() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule391() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule392() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule393() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule394() {
         $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(6-2)], $this->semStack[$this->stackPos-(6-5)], $this->startAttributeStack[$this->stackPos-(6-1)] + $this->endAttributes);
    }

    protected function reduceRule395() {
         $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule396() {
         $this->semValue = new Expr\PropertyFetch($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule397() {
         $this->semValue = new Expr\MethodCall($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->semStack[$this->stackPos-(4-4)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule398() {
         $this->semValue = new Expr\FuncCall($this->semStack[$this->stackPos-(2-1)], $this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule399() {
         $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule400() {
         $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule401() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule402() {
         $this->semValue = $this->semStack[$this->stackPos-(3-2)];
    }

    protected function reduceRule403() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule404() {
         $this->semValue = new Expr\Variable($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule405() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule406() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule407() {
         $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-4)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule408() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule409() {
         $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$this->stackPos-(3-1)], substr($this->semStack[$this->stackPos-(3-3)], 1), $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule410() {
         $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$this->stackPos-(6-1)], $this->semStack[$this->stackPos-(6-5)], $this->startAttributeStack[$this->stackPos-(6-1)] + $this->endAttributes);
    }

    protected function reduceRule411() {
         $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule412() {
         $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule413() {
         $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule414() {
         $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule415() {
         $this->semValue = new Expr\Variable(substr($this->semStack[$this->stackPos-(1-1)], 1), $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
    }

    protected function reduceRule416() {
         $this->semValue = new Expr\Variable($this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule417() {
         $this->semValue = null;
    }

    protected function reduceRule418() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule419() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule420() {
         $this->semValue = $this->semStack[$this->stackPos-(3-2)];
    }

    protected function reduceRule421() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule422() {
         $this->semValue = new Expr\List_($this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule423() {
         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
    }

    protected function reduceRule424() {
         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
    }

    protected function reduceRule425() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule426() {
         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
    }

    protected function reduceRule427() {
         $this->semValue = null;
    }

    protected function reduceRule428() {
         $this->semValue = array();
    }

    protected function reduceRule429() {
         $this->semValue = $this->semStack[$this->stackPos-(2-1)];
    }

    protected function reduceRule430() {
         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
    }

    protected function reduceRule431() {
         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
    }

    protected function reduceRule432() {
         $this->semValue = new Expr\ArrayItem($this->semStack[$this->stackPos-(3-3)], $this->semStack[$this->stackPos-(3-1)], false, $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule433() {
         $this->semValue = new Expr\ArrayItem($this->semStack[$this->stackPos-(1-1)], null, false, $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
    }

    protected function reduceRule434() {
         $this->semValue = new Expr\ArrayItem($this->semStack[$this->stackPos-(4-4)], $this->semStack[$this->stackPos-(4-1)], true, $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule435() {
         $this->semValue = new Expr\ArrayItem($this->semStack[$this->stackPos-(2-2)], null, true, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
    }

    protected function reduceRule436() {
         $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)];
    }

    protected function reduceRule437() {
         $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)];
    }

    protected function reduceRule438() {
         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
    }

    protected function reduceRule439() {
         $this->semValue = array($this->semStack[$this->stackPos-(2-1)], $this->semStack[$this->stackPos-(2-2)]);
    }

    protected function reduceRule440() {
         $this->semValue = new Expr\Variable(substr($this->semStack[$this->stackPos-(1-1)], 1), $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
    }

    protected function reduceRule441() {
         $this->semValue = new Expr\ArrayDimFetch(new Expr\Variable(substr($this->semStack[$this->stackPos-(4-1)], 1), $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes), $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
    }

    protected function reduceRule442() {
         $this->semValue = new Expr\PropertyFetch(new Expr\Variable(substr($this->semStack[$this->stackPos-(3-1)], 1), $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes), $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule443() {
         $this->semValue = new Expr\Variable($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule444() {
         $this->semValue = new Expr\Variable($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
    }

    protected function reduceRule445() {
         $this->semValue = new Expr\ArrayDimFetch(new Expr\Variable($this->semStack[$this->stackPos-(6-2)], $this->startAttributeStack[$this->stackPos-(6-1)] + $this->endAttributes), $this->semStack[$this->stackPos-(6-4)], $this->startAttributeStack[$this->stackPos-(6-1)] + $this->endAttributes);
    }

    protected function reduceRule446() {
         $this->semValue = $this->semStack[$this->stackPos-(3-2)];
    }

    protected function reduceRule447() {
         $this->semValue = new Scalar\String_($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
    }

    protected function reduceRule448() {
         $this->semValue = new Scalar\String_($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
    }

    protected function reduceRule449() {
         $this->semValue = new Expr\Variable(substr($this->semStack[$this->stackPos-(1-1)], 1), $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
    }
}
