<?php

namespace PhpParser;

/* 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 = 389;
    protected $actionTableSize = 1098;
    protected $gotoTableSize = 571;

    protected $invalidToken = 154;
    protected $defaultAction = -32766;
    protected $unexpectedTokenRule = 32767;

    protected $YY2TBLSTATE  = 401;
    protected $YYNLSTATES   = 629;

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

    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_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_BOOLEAN_OR",
        "T_BOOLEAN_AND",
        "'|'",
        "'^'",
        "'&'",
        "T_IS_EQUAL",
        "T_IS_NOT_EQUAL",
        "T_IS_IDENTICAL",
        "T_IS_NOT_IDENTICAL",
        "'<'",
        "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,  154,  154,  154,  154,  154,  154,  154,  154,  154,
          154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
          154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
          154,  154,  154,   49,  153,  154,  150,   48,   32,  154,
          148,  149,   46,   43,    7,   44,   45,   47,  154,  154,
          154,  154,  154,  154,  154,  154,  154,  154,   27,  145,
           37,   13,   39,   26,   61,  154,  154,  154,  154,  154,
          154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
          154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
          154,   63,  154,  152,   31,  154,  151,  154,  154,  154,
          154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
          154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
          154,  154,  154,  146,   30,  147,   51,  154,  154,  154,
          154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
          154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
          154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
          154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
          154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
          154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
          154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
          154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
          154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
          154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
          154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
          154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
          154,  154,  154,  154,  154,  154,    1,    2,    3,    4,
            5,    6,    8,    9,   10,   11,   12,   14,   15,   16,
           17,   18,   19,   20,   21,   22,   23,   24,   25,   28,
           29,   33,   34,   35,   36,   38,   40,   41,   42,   50,
           52,   53,   54,   55,   56,   57,   58,   59,   60,   62,
           64,   65,   66,   67,   68,   69,   70,   71,   72,   73,
           74,   75,   76,   77,  154,  154,   78,   79,   80,   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,  154,  154,  154,  154,  154,  154,  135,
          136,  137,  138,  139,  140,  141,  142,  143,  144
    );

    protected $action = array(
           60,   61,  411,   62,   63,-32766,-32766,-32766,-32766,   64,
           65,  216,  217,  218,  219,  220,  221,  222,  223,  224,
          225,  226,  227,  228,  229,  230,  231,  232,  233,  234,
          235,  236,-32766,-32766,-32766,-32766,-32766,-32767,-32767,-32767,
        -32767,   66,   67,   58,  436,  237,  238,   68,  370,   69,
          290,  291,   70,   71,   72,   73,   74,   75,   76,   77,
          306,   32,  300,   78,  403,  412,  410,  281,  408,  942,
          943,  448,    0, 1035,  329,  679,  428,  449,   46,   27,
          413,   31,  450,  797,  451,  126,  452,  215,  583,  414,
          758,  759,   54,   36,   37,  453,  419,  415,   38,  454,
          348,  349,   79,  184,  321,  351,  352, 1035,  455,  456,
           39,  293, -122,  457,  458,  459,  704,  661,  705,  460,
          461,  297,  894,   35,  462,  463,  125,  948,  949,  950,
          951,  945,  946,  307,   83,   84,   85,  204,  476,  952,
          947,  416,  294,  685,  602,  407,   47,  733,  332,  319,
          425,  323,   40,  604,   86,   87,   88,   89,   90,   91,
           92,   93,   94,   95,   96,   97,   98,   99,  100,  101,
          102,  103,  104,  105,  106,  121,  301,-32766,  408,-32766,
        -32766,-32766,  332,  633,  329,  339,   22,-32766,  107,  334,
        -32766,-32766,-32766,  797,-32766,  429,-32766,-32766,-32766,-32766,
        -32766,-32766,  213,  214,  215,-32766,-32766,-32766,  909, 1042,
        -32766,-32766,  294,  433,-32766,  462,  350,-32766,  475, 1067,
          184, 1069, 1068,  761,  894,-32766,  702,  213,  214,  215,
           41,  108,  109,  110,  111,  112,  113,  114,  115,  116,
          117,  118,  119, 1029,  292,  184,  523,-32766,-32766,-32766,
        -32766,-32766,-32766,  633,  129,-32766,-32766,-32766,  446, 1001,
        -32766,-32766,-32766,  431,-32766,  734,-32766,  358,-32766,  835,
          837,-32766,  213,  214,  215,-32766,-32766,-32766,  132,-32766,
        -32766,-32766,  279,  430,-32766,  633,  130,-32766,  475,-32766,
          184,  894,-32766,-32766,-32766,-32766,-32766,  296,-32766,  408,
        -32766,  601,  633,-32766,-32766,  329, -118,-32766,-32766,-32766,
         1057,  282,-32766,-32766,  797,  770,-32766,  120,  340,-32766,
          475,  237,  238,  894,  129,-32766,-32766,-32766,  415,  760,
        -32767,-32767,-32767,-32767,   99,  100,  101,  102,  103,  455,
          456, -392,  592,  993,  435,   55,-32766,  703,  661,  705,
          460,  461,  633,-32766,-32766,-32766,-32766,-32766,-32766,-32766,
        -32766,-32766, 1064,-32766, 1057,-32766,  894,-32766,  999,  476,
        -32766,  992,  416,  789,-32766,-32766,-32766,  692,-32766,-32766,
        -32766,  128,  243,-32766,  633,  380,-32766,  475,-32766,  239,
          283,-32766,-32766,-32766,-32766,-32766,  779,-32766,  633,-32766,
         1035,  677,-32766,  214,  215,  676,-32766,-32766,-32766,  894,
          184,-32766,-32766, 1039,  559,-32766,  784,  130,-32766,  475,
          184,-32766,  324,  242,-32766,-32766,-32766,  633,  122,  295,
         1000,-32766,  207,  919,-32766,-32766,-32766,  206,-32766,  998,
        -32766,  894,-32766,  205,   57,-32766,-32766,-32766,-32766,-32766,
        -32766,-32766,-32766,-32766,-32766,-32766,-32766,-32766,-32766,  134,
          689,-32766,  475,  551,-32766,  476,-32766,-32766,  416,-32766,
          633,-32766,  954,  420,-32766,  332, 1001,-32766,-32766,-32766,
          954,-32766,  624,-32766,  894,-32766,  131,  617,-32766,  213,
          214,  215,-32766,-32766,-32766,  626,-32766,-32766,-32766,-32766,
        -32766,-32766,  633,  614,-32766,  475,-32766,  184,  241,-32766,
        -32766,-32766,-32766,-32766,  618,-32766,  894,-32766,  443,  565,
        -32766,  231,  232,  233,-32766,-32766,-32766,  123,  133,-32766,
        -32766,  438,   28,-32766,  135,  359,-32766,  475,  605,-32766,
          758,  759,-32766,-32766,-32766,  633,-32766,-32766,-32766,-32766,
          574,  575,-32766,-32766,-32766,  607,-32766,  698,-32766,  894,
        -32766,  794,  628,-32766,-32766,  301,-32766,-32766,-32766,-32766,
          107,-32766,-32766,-32766,-32766,-32766,-32766,  633,  300,-32766,
          475,-32766,  783,  623,-32766,-32766,-32766,-32766,-32766,   50,
        -32766,  579,-32766,   51,   52,-32766,  101,  102,  103,-32766,
        -32766,-32766,  640,  609,-32766,-32766,   53,   49,-32766,   56,
          496,-32766,  475,   59,-32766,  633,  912,  673,-32766,-32766,
          633,  104,  105,  106,-32766,  301,  576,-32766,-32766,-32766,
          424,-32766,  426,-32766,  600,-32766,  240,  107,-32766,-32766,
        -32766,-32766,-32766,-32766,-32766,  791,  497,-32766,-32766,  669,
        -32766,-32766,  208,  209,-32766,  475,  415,-32766,  210,  589,
          211,  514,-32766,  634,  213,  214,  215,  455,  456,  513,
          650,  501,  202,  234,  235,  236,  661,  705,  460,  461,
          942,  943,  184,  652,-32766,-32766, 1062, -167,  944,  237,
          238,  633,  671,-32766,  584,-32766,  500,  591,-32766,-32766,
        -32766, 1057,-32766,  338,-32766,  896,-32766,  337,  427,-32766,
        -32766,-32766,-32766,-32766,-32766,-32766,  556,  330,-32766,-32766,
          299,  570,-32766,  516,  544,-32766,  475,  278,-32766, -164,
        -32766,-32766,-32766,-32766,  568,  953,  541,  327,  948,  949,
          950,  951,  945,  946,  386,  423,  208,  209,  445,  506,
          952,  947,  210,  124,  211,  706, -392,  212,  328,-32766,
          707,  700,  333,-32766,-32766,  790,  202,  935, -393,  320,
          322,-32766,    0,   42,  942,  943,    0,  633,-32766,  462,
            0,-32766,  944,  788,-32766,-32766,-32766,    0,-32766,  608,
        -32766,  373,-32766,  597, -300,-32766,  360,  326,  310,-32766,
        -32766,-32766, -291, -299,-32766,-32766,  415,  404,-32766,  425,
          407,-32766,  475,  318,   45,  610,  611,  455,  456,-32766,
          805,  806,  807,  804,  803,  802,  639,  705,  460,  461,
          541,  646,  948,  949,  950,  951,  945,  946,  386,-32766,
        -32766,-32766,  675,  645,  952,  947,  717,  726,  331,-32766,
        -32766,  212,  688,-32766,  666,  642,  681,-32766,  736,-32766,
        -32766,-32766,-32766,-32766,-32767,-32767,-32767,-32767,-32766,-32766,
        -32766,-32766,-32766,-32766,-32766,-32766,-32766,-32767,-32767,-32767,
        -32767,  415,  404,  727,  644,  643,  719,  787,  318,  678,
          728,  664,  455,  456,   44,  721,  687,  674,  415,  404,
          672,  639,  705,  460,  461,  318,  780,  670,  680,  455,
          456,-32766,-32766,-32766,  621,  622,  415,  615,  639,  705,
          460,  461,  625,  331,  627,   82,  603,  455,  456,-32766,
          641,-32766,-32766,-32766,-32766,-32766,  661,  705,  460,  461,
          331,  415,  620,  613,  127,  892,  415,  303,  442, 1063,
         1036, 1065,  455,  456, 1066, 1020, 1034,  455,  456,  415,
         1032,  661,  705,  460,  461,  694,  661,  705,  460,  461,
          455,  456,  933, 1030, 1040,  725,  415,  772,  553,  661,
          705,  460,  461,  302,  289,-32766,  304,  455,  456,  415,
          895,  958,  305,  415,  599,  701,  661,  705,  460,  461,
          455,  456,  335,  288,  455,  456,  280,  415,  662,  661,
          705,  460,  461,  661,  705,  460,  461,  402,  455,  456,
          590,  406,  203,   81,  415,  612,  762,  661,  705,  460,
          461,  415,   80,   48,   43,  455,  456,   34,  795,-32766,
        -32766,-32766,  455,  456,  661,  705,  460,  461,   33,   30,
          577,  661,  705,  460,  461,  901,  898,-32766,    0,-32766,
        -32766,-32766,-32766,  596,  569,  536,  444,  439,  381,  361,
           25,   24,   23, -118,  873,    0,  545,  874,  897, -119,
            0,    0,    0, 1014,  959,    0, 1061,  932, 1031, 1015,
         1019, 1033,  918,  905,  906,  903,  904,  902
    );

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

    protected $actionBase = array(
            0,  708,  783,  800,  861,  878,  895,   -1,  933,  848,
          843,  818,  558,  909,  230,  891,  926,  926,  926,  926,
          926,  528,  476,  487,  468,  487,  511,   -2,   -2,   -2,
          180,  110,  212,  212,  618,  212,  504,  547,  472,  311,
          354,  279,  397,  429,  429,  429,  429,  704,  704,  429,
          429,  429,  429,  429,  429,  429,  429,  429,  429,  429,
          429,  429,  429,  429,  429,  429,  429,  429,  429,  429,
          429,  429,  429,  429,  429,  429,  429,  429,  429,  429,
          429,  429,  429,  429,  429,  429,  429,  429,  429,  429,
          429,  429,  429,  429,  429,  429,  429,  429,  429,  429,
          429,  429,  429,  429,  429,  429,  429,  429,  429,  429,
          429,  429,  429,  429,  429,  429,  429,  429,  429,  429,
          429,  429,  429,  429,  429,  429,  429,  429,  429,  429,
          429,  429,  429,  429,  429,  429,  120,  763,  628,  648,
          762,  755,  752,  751,  929,  637,  928,  802,  803,  501,
          809,  808,  813,  825,  830,  801,  827,  264,  194,  898,
          826,  481,  219,  126,  126,  126,  126,  126,  126,  126,
          126,  126,  126,  656,  656,  126,  656,  656,  656,  656,
          296,  394,  444,   77,  609,  345,  345,  345,  345,  345,
          345,  345,  345,  345,  345,  345,  345,  345,  345,  345,
          345,  384,  703,  703,  703,  703,  703,  703,  703,  703,
          703,  703,  703,  703,  703,  703,  703,  703,  703,  703,
          703,  703,  703,  703,  703,  703,  703,  703,  703,  703,
          703,  703,  703,  703,  703,  703,  703,  703,  703,  703,
          703,  703,  703,  703,  631,  631,  -17,  -17,  538,  443,
          171,  438,  702,  418, 1031,  -23,  903,  831,  831,  831,
          831,  220,    4,    4,    4,    4,  217,  293,  293,  293,
          293,  840,  840,  840,  840,  -31,  200,   79,   89,   89,
          653,  653,  514,  798,  553,  553,  478,  478,  325,  325,
          325,  325,  325,  325,  325,  325,  325,  325,  612,  561,
          837,  837,  -37,  -37,  -37,  -37,  413,  344,  232,  286,
          140,  575,  575,  575,  627,  627,  627,  269,    2,  629,
          340,  340,  340,  625,  599,  623,  271,  229,  229,  229,
          229,    7,  779,  229,  229,  229,  282,  -27,  -27,  146,
          313,  624,  828,  642,  700,  437,  655,  -20,  667,  667,
          667,  240,  647,  463,  450,  448,  663,   49,  240,  120,
          357,  416,  381,  515,  744,  588,  686,  740,  260,  256,
          122,  457,   29,  168,   37,  739,  698,  927,  925,   60,
          215,  644,  515,  515,  515,   74,  336,   29,  157,  259,
          259,  259,  259,  259,  259,  259,  259,  761,  251,   59,
          742,  228,  525,  889,  573,  901,  596,  542,  573,  551,
          525,  885,  885,  885,  885,  525,  542,  901,  901,  525,
          514,  901,  116,  525,  615,  542,  640,  885,  670,  671,
          573,  621,  635,  901,  901,  901,  596,  525,  885,  616,
          617,  130,  901,  885,  616,  525,  551,   72,  433,  544,
          886,  884,  873,  537,  780,  636,  641,  855,  836,  875,
          598,  557,  858,  900,  606,  697,  559,  304,  526,  530,
          531,  543,  659,  546,  645,  647,  666,  508,  508,  508,
          632,  658,  632,  508,  508,  508,  508,  508,  508,  508,
          508,  945,  652,  664,  646,  626,  707,  430,  606,  633,
          424,  643,  606,  907,  919,  794,  590,  835,  916,  632,
          944,  749,   78,  419,  799,  634,  597,  632,  838,  632,
          797,  632,  906,  613,  807,  606,  508,  877,  943,  942,
          941,  940,  939,  938,  937,  936,  550,  935,  709,  918,
           53,  874,  663,  657,  610,  711,  182,  934,  632,  632,
          771,  779,  632,  713,  669,  923,  738,  915,  932,  599,
          917,  632,  650,  931,  182,  460,  521,  930,  745,  796,
          869,  768,  619,  842,  854,  769,  410,  804,  455,  746,
          922,  921,  924,  750,  369,  776,  586,  541,  622,  844,
          741,  914,  639,  654,  611,  630,  778,  572,  920,  701,
          620,  638,    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,
           -2,   -2,   -2,   -2,   -2,   -2,   -2,   -2,   -2,   -2,
           -2,   -2,   -2,   -2,   -2,   -2,   -2,   -2,   -2,   -2,
           -2,   -2,   -2,   -2,   -2,   -2,    0,    0,    0,   -2,
           -2,   -2,   -2,   -2,   -2,   -2,   -2,   -2,   -2,   -2,
           -2,   -2,   -2,   -2,   -2,   -2,   -2,   -2,   -2,   -2,
           -2,   -2,   -2,   -2,   -2,   -2,   -2,   -2,   -2,   -2,
           -2,   -2,   -2,   -2,   -2,   -2,   -2,   -2,   -2,   -2,
           -2,   -2,   -2,   -2,   -2,   -2,   -2,   -2,   -2,   -2,
           -2,   -2,   -2,   -2,   -2,   -2,   -2,   -2,   -2,   -2,
           -2,   -2,   -2,   -2,   -2,   -2,   -2,   -2,   -2,   -2,
           -2,   -2,   -2,   -2,   -2,   -2,   -2,   -2,   -2,   -2,
           -2,   -2,   -2,   -2,   -2,   -2,   -2,   -2,   -2,   -2,
           -2,   -2,   -2,   -2,   -2,   -2,   -2,   -2,   -2,   -2,
           -2,   -2,   -2,   -2,   -2,  126,  126,  126,  126,  126,
          126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
          126,  126,  126,  126,  126,  126,  -17,  -17,  126,  126,
          -17,  -17,    0,    0,    0,    0,    0,    0,    0,    0,
            0,    0,  -17,  -17,    0,  -17,  -17,  -17,  -17,  126,
          -17,  126,  -17,  325,  126,  126,  126,  126,  126,  126,
          126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
          -17,  325,  325,  325,  325,  325,  325,  325,  325,  325,
          325,  325,  325,  325,  325,  325,  325,  325,  325,  325,
          325,  325,  325,  325,  325,  325,  325,  325,  325,  325,
          325,  325,  325,  325,  325,  325,  325,  325,  325,  325,
          325,  325,  325,  126,  126,    0,    0,  126,  -17,  126,
          -17,  126,  -17,  126,  -17,  126,  126,  126,  126,  126,
          -17,  -17,  -17,  -17,  -17,    0,  575,  575,  575,  575,
          -17,  -17,  -17,  -17,  712,  712,  712,  325,  325,  325,
          325,  325,  325,  575,  575,  627,  627,    0,    0,    0,
            0,    0,    0,    0,    0,    0,    0,  712,  712,  325,
          325,  229,  229,  229,  229,  229,  -27,  -27,  -27,  168,
            0,    0,    0,    0,    0,    0,  229,  542,  -27,   32,
           32,   32,  -27,  -27,  -27,  168,    0,    0,    0,    0,
          542,   32,    0,    0,    0,  901,    0,    0,    0,   32,
          441,  441,  441,  441,  182,   29,    0,  542,  542,  542,
            0,  621,    0,    0,    0,  901,    0,    0,    0,    0,
            0,    0,  508,   78,  835,  276,  209,    0,    0,    0,
            0,    0,    0,    0,  209,  209,  290,  290,    0,    0,
          550,  508,  508,  508,    0,    0,    0,    0,    0,    0,
            0,    0,    0,    0,    0,    0,  276,    0,    0,  182
    );

    protected $actionDefault = array(
            3,32767,32767,    1,32767,32767,32767,32767,32767,32767,
        32767,32767,32767,32767,32767,32767,  111,  103,  117,  102,
          113,32767,32767,32767,32767,32767,32767,32767,32767,32767,
        32767,32767,  419,  419,32767,  376,32767,32767,32767,32767,
        32767,32767,32767,  185,  185,  185,32767,32767,32767,  408,
          408,  408,  408,  408,  408,  408,  408,  408,  408,  408,
        32767,32767,32767,32767,32767,  265,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,  270,  424,
        32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
        32767,32767,32767,32767,32767,32767,32767,  380,32767,32767,
        32767,32767,32767,  246,  247,  249,  250,  184,  409,  136,
          271,  423,  183,   26,  147,  138,   95,  379,  182,  126,
          212,  334,  214,  336,32767,  264,  213,  189,  194,  195,
          196,  197,  198,  199,  200,  201,  202,  203,  204,  205,
          188,  335,  373,  373,  376,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,  243,  242,  362,  361,  210,  332,
          211,  333,  215,  337,  217,  339,  216,  233,  234,  231,
          232,  338,  355,  356,  353,  354,  187,  235,  236,  237,
          238,  357,  358,  359,  360,  169,  169,  169,32767,32767,
          418,  418,32767,32767,  224,  225,  346,  347,32767,32767,
        32767,32767,32767,32767,32767,32767,32767,32767,  170,32767,
        32767,32767,  127,  127,  127,  127,  127,32767,32767,32767,
        32767,  219,  220,  218,  341,  342,  340,32767,32767,  308,
        32767,32767,32767,32767,32767,  310,32767,32767,32767,32767,
        32767,32767,32767,32767,32767,32767,  381,  309,32767,32767,
        32767,32767,32767,32767,32767,32767,  394,  297,32767,32767,
        32767,32767,  290,  114,  116,   64,  365,32767,32767,32767,
        32767,32767,  399,  229,32767,32767,32767,32767,32767,32767,
          431,32767,  394,32767,32767,32767,32767,32767,32767,32767,
        32767,  241,  221,  222,  223,32767,32767,  398,  392,  349,
          350,  351,  352,  343,  344,  345,  348,32767,32767,32767,
        32767,32767,   68,  305,32767,  311,32767,32767,32767,32767,
           68,32767,32767,32767,32767,   68,32767,  397,  396,   68,
        32767,  291,  375,   68,   81,32767,   79,32767,  100,  100,
        32767,32767,   83,  371,  387,32767,32767,   68,32767,  279,
           70,  375,32767,32767,  279,   68,32767,32767,    4,  315,
        32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
        32767,32767,32767,32767,  292,32767,32767,32767,  261,  262,
          368,  383,32767,  384,32767,  290,32767,  227,  228,  230,
          207,32767,  209,  251,  252,  253,  254,  255,  256,  257,
          259,32767,32767,  295,  298,32767,32767,32767,    6,   20,
          146,32767,  293,32767,  192,32767,32767,32767,32767,  426,
        32767,32767,  186,32767,32767,   22,32767,  142,32767,   66,
        32767,  416,32767,32767,  392,  294,  226,32767,32767,32767,
        32767,32767,32767,32767,32767,32767,  393,32767,32767,32767,
          121,32767,  328,32767,32767,32767,   82,32767,  190,  137,
        32767,32767,  425,32767,32767,32767,32767,32767,32767,32767,
        32767,   67,32767,32767,   84,32767,32767,  392,32767,32767,
        32767,32767,32767,32767,32767,32767,  181,32767,32767,32767,
        32767,32767,  392,32767,  125,32767,32767,32767,32767,32767,
        32767,32767,    4,32767,  163,32767,32767,32767,32767,32767,
        32767,32767,   28,   28,    3,   28,  108,   28,  149,    3,
          100,  100,   61,  149,   28,  149,   28,   28,   28,   28,
           28,   28,   28,  156,   28,   28,   28,   28,   28
    );

    protected $goto = array(
          169,  169,  139,  139,  144,  139,  140,  141,  142,  147,
          149,  187,  171,  167,  167,  167,  167,  144,  144,  168,
          168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
          163,  164,  165,  166,  185,  138,  477,  478,  363,  479,
          483,  484,  485,  486,  487,  488,  489,  490,  822,  143,
          145,  146,  148,  180,  182,  186,  248,  250,  252,  254,
          256,  257,  258,  259,  260,  267,  268,  269,  270,  284,
          285,  311,  312,  313,  382,  383,  384,  526,  188,  189,
          190,  191,  192,  193,  194,  195,  196,  197,  198,  199,
          200,  150,  151,  152,  170,  153,  172,  154,  244,  175,
          155,  156,  159,  245,  160,  136,  542,  528,  529,  530,
          531,  532,  533,  534,  535,  537,  563,  749,  749, 1046,
         1046,  637,  637,  637,  542,  542,  542,  542,  542,  542,
          542,  542,  542,  542,  542,  542,  542,  542,  542,  542,
          542,  542,  542,  542,  542,  542,  542,  542,  542,  542,
          542,  542,  542,  542,  542,  542,  542,  542,  542,  542,
          542,  542,  542,  542,  542,  542,  481,  481,  481,  481,
          481,  481,  504,  342, 1025, 1025,  481,  481,  481,  481,
          481,  481,  481,  481,  481,  481,  325,  683,  492,  492,
          309, 1056, 1056,  522, 1041, 1041, 1041,  638,  638,  638,
          421,  421,  421,  421,  421,  421, 1024, 1059, 1056,  764,
          421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
         1059, 1059,  920,  920,  757,  757,  757,  757,  757,  557,
          560,  598,  371,  372,  372,  372,  564,  345,  400,  593,
          543,    1,  276, 1050,  277,  372,    2,  554,  580,  714,
          714,  714,  714,  387,  573,  709,  715,  588,  543,  543,
          543,  543,  543,  543,  543,  543,  543,  543,  543,  543,
          543,  543,  543,  543,  543,  543,  543,  543,  543,  543,
          543,  543,  543,  543,  543,  543,  543,  543,  543,  543,
          543,  543,  543,  543,  543,  543,  543,  543,  543,  543,
            5,  364,   16, 1006,    6,  801,  401,  581,  515, 1026,
         1026,    7, 1043,   17,   18,    8,   19,    9,   10,   11,
          868,   20,   12,   13,   14,   15,  494,  494,  378,  931,
          930,  388,  582,  521,  521,  548,  517,  375,  376,  753,
          955,  519,  519,  480,  482,  509,  524,  549,  552,  561,
          567,  647,  768,  956,  343,  344,  493,  493,  955,  955,
          955,  955,  955,  955,  955,  955,  955,  955,  955,  955,
          955,  955,  955,  955,  955,  955,  955,  955,  955,  955,
          955,  955,  955,  955,  955,  955,  955,  955,  955,  955,
          955,  955,  955,  955,  955,  955,  955,  955,  955,  955,
          161,  527,  616,  397,  653,  503,  911,  820, 1018,  773,
         1003,  723,  585,  809,    0,    0,    0,    0,  503,  503,
            0,  173,  174,  176,  389,  390,  391,  392,  158,  181,
          183,  201,  249,  251,  253,  255,  261,  262,  263,  264,
          265,  271,  272,  273,  274,  286,  287,  314,  315,  316,
          393,  394,  395,  396,  162,  177,  246,  247,  178,  179,
          636,  636,  636,  498,    0,    0,    0,    0,    0,    0,
            0,    0,    0,    0,    0,    0,  498,  941,    0,    0,
          735,  720,  718,  716,  718,  606,  495,  744,  739,  916,
          917,  936,    0,  498,  498,  498,    0,    0,    0,  877,
           26,   21,  357,    0,    0,  914, 1017,  914,  365,    0,
            0,    0,  507,    0,  915,  538,  518,    0,    0,    0,
            0,    0,    0,    0,    0,    0,   29,    0,    0,    0,
          440,  578,    0,    0,    0,    0,    0,    0,  586,    0,
            0,    0,    0,    0,    0,  508,    0,    0,    0,    0,
            0,    0,  498,    0,    0,    0,    0,    0,    0,    0,
            0,  502,    0,    0,    0,    0,    0,    0,    0,    0,
          525
    );

    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,   39,   86,   86,   86,
           86,   86,   86,   86,   86,   86,   86,   55,   55,   55,
           55,    7,    7,    7,   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,   92,   92,   92,   92,
           92,   92,   77,   50,   94,   94,   92,   92,   92,   92,
           92,   92,   92,   92,   92,   92,  101,   32,   92,   92,
          101,  117,  117,   85,   94,   94,   94,    8,    8,    8,
           39,   39,   39,   39,   39,   39,   94,  117,  117,   61,
           39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
          117,  117,   39,   39,   39,   39,   39,   39,   39,   42,
           42,   42,    5,   99,   99,   99,   48,   48,   48,   39,
           95,    2,   46,  116,   46,   99,    2,   22,   22,   39,
           39,   39,   39,   99,  104,   39,   39,   39,   95,   95,
           95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
           95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
           95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
           95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
           14,   29,   14,  108,   14,   74,   74,   31,    5,   93,
           93,   14,  114,   14,   14,   14,   14,   14,   14,   14,
           78,   14,   14,   14,   14,   14,   98,   98,   30,  100,
          100,   33,   33,   33,   33,   33,   33,    9,    9,   57,
          102,   33,   33,   33,   33,   33,   33,   33,   33,   33,
           33,   11,   62,  103,   50,   50,   95,   95,  102,  102,
          102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
          102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
          102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
          102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
           13,   26,   52,   10,   12,   26,   90,   77,   59,   63,
          107,   49,   84,   76,   -1,   -1,   -1,   -1,   26,   26,
           -1,   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,
            6,    6,    6,    4,   -1,   -1,   -1,   -1,   -1,   -1,
           -1,   -1,   -1,   -1,   -1,   -1,    4,   59,   -1,   -1,
            6,    6,    6,    6,    6,    6,    6,    6,    6,   59,
           59,   16,   -1,    4,    4,    4,   -1,   -1,   -1,   16,
           16,   16,   16,   -1,   -1,   59,   59,   59,   40,   -1,
           -1,   -1,   40,   -1,   59,   16,   40,   -1,   -1,   -1,
           -1,   -1,   -1,   -1,   -1,   -1,   16,   -1,   -1,   -1,
           40,   16,   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,
           -1,   -1,   -1,   -1,   -1,   77,   -1,   -1,   -1,   -1,
           -1,   -1,    4,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
           -1,    4,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
            4
    );

    protected $gotoBase = array(
            0,    0, -363,    0,  145,  -99,  459,  120,  196,  -11,
           -5,    1,  -26,  216, -303,    0,   88,    0,    0,    0,
            0,    0,  203,    0,    0,  -30,  371,    0,    0,  255,
           39,   28,  162,   53,    0,    0,    0,    0,    0,  -78,
           93,    0,  -74,    0,    0,    0, -371,    0,  -92,  -25,
         -256,    0,   43,    0,    0, -161,    0,   33,    0,   72,
            0,  178,   -6,  -22,    0,    0,    0,    0,    0,    0,
            0,    0,    0,    0,    7,    0,  -33,  125,   19,    0,
            0,    0,    0,    0,  -32,  160,   57,    0,    0,    0,
           -4,    0, -112,    9, -126,   56,    0,    0,   26,  -87,
            8, -133,  156,   -7,   51,    0,    0,  -31,   99,    0,
            0,    0,    0,    0,   31,    0,  208, -117,    0
    );

    protected $gotoDefault = array(
        -32768,  447,    3,  631,  464,  499,  658,  659,  660,  367,
          366,  648,  654,  157,    4,  656,  869,  353,  663,  354,
          566,  665,  511,  667,  668,  137,  465,  368,  369,  512,
          377,  555,  682,  266,  374,  684,  355,  686,  691,  356,
          587,  572,  539,  466,  432,  550,  275,  520,  546,  722,
          341,  730,  619,  738,  741,  467,  540,  752,  437,  913,
          385,  763,  769,  774,  777,  409,  398,  562,  781,  782,
          317,  786,  594,  595,  800,  298,  808,  821,  405,  887,
          889,  468,  469,  505,  571,  491,  510,  470,  907,  399,
          910,  471,  472,  417,  418,  928,  925,  347, 1011,  346,
          434,  308,  996,  995,  558,  960,  441, 1049, 1007,  336,
          473,  474,  362,  379, 1044,  422, 1051, 1058,  547
    );

    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,   36,   36,   38,   37,   37,   30,   30,   40,   40,
           41,   41,    7,    8,    8,    8,   43,   43,   43,   44,
           44,   47,   47,   45,   45,   48,   48,   23,   23,   32,
           32,   35,   35,   34,   34,   49,   24,   24,   24,   24,
           50,   50,   51,   51,   52,   52,   21,   21,   17,   17,
           53,   19,   19,   54,   18,   18,   20,   20,   31,   31,
           31,   42,   42,   56,   56,   57,   57,   58,   58,   58,
           58,   59,   59,   59,   60,   60,   61,   61,   61,   27,
           27,   62,   62,   62,   28,   28,   63,   63,   46,   46,
           64,   64,   64,   64,   69,   69,   70,   70,   71,   71,
           71,   71,   72,   73,   73,   68,   68,   65,   65,   67,
           67,   75,   75,   74,   74,   74,   74,   74,   74,   66,
           66,   76,   76,   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,   16,   16,
           26,   26,   81,   81,   82,   82,   82,   82,   77,   84,
           84,   89,   89,   90,   91,   91,   91,   91,   91,   91,
           95,   95,   39,   39,   39,   78,   78,   96,   96,   92,
           92,   97,   97,   97,   97,   79,   79,   79,   83,   83,
           83,   88,   88,  102,  102,  102,  102,  102,  102,  102,
          102,  102,  102,  102,  102,  102,   13,   13,   13,   13,
           13,   13,  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,   87,   87,   80,   80,   80,
           80,  103,  103,  104,  104,  107,  107,  106,  106,  108,
          108,   33,   33,   33,   33,  110,  110,  109,  109,  109,
          109,  109,  111,  111,   94,   94,   98,   98,   93,   93,
          112,  112,  112,  112,   99,   99,   99,   99,   86,   86,
          100,  100,  100,   55,  113,  113,  114,  114,  114,   85,
           85,  115,  115,  116,  116,  116,  116,  101,  101,  101,
          101,  117,  117,  117,  117,  117,  117,  117,  118,  118,
          118
    );

    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,    0,    2,    8,    0,    4,    1,    3,    0,    1,
            0,    1,    9,    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,    0,    1,    1,
            1,    2,    3,    3,    1,    3,    1,    2,    2,    3,
            1,    1,    2,    4,    3,    1,    1,    3,    2,    0,
            3,    3,    8,    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,
            1,    3,    5,    4,    4,    4,    2,    2,    2,    2,
            2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
            1,    1,    1,    3,    2,    1,    9,   10,    3,    3,
            2,    4,    4,    3,    4,    4,    4,    4,    3,    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($attributes) {
         $this->semValue = $this->handleNamespaces($this->semStack[$this->stackPos-(1-1)]); 
    }

    protected function reduceRule2($attributes) {
         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($attributes) {
         $this->semValue = array(); 
    }

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

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

    protected function reduceRule6($attributes) {
         $this->semValue = new Node\Name($this->semStack[$this->stackPos-(1-1)], $attributes); 
    }

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

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

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

    protected function reduceRule10($attributes) {
         $this->semValue = new Node\Stmt\HaltCompiler($this->lexer->handleHaltCompiler(), $attributes); 
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    protected function reduceRule27($attributes) {
         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($attributes) {
         $this->semValue = array(); 
    }

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

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

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

    protected function reduceRule32($attributes) {
         throw new Error('__HALT_COMPILER() can only be used from the outermost scope'); 
    }

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

    protected function reduceRule34($attributes) {
         $this->semValue = new Node\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)]), $attributes); 
    }

    protected function reduceRule35($attributes) {
         $this->semValue = new Node\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)]), $attributes); 
    }

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

    protected function reduceRule37($attributes) {
         $this->semValue = new Node\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)]), $attributes); 
    }

    protected function reduceRule38($attributes) {
         $this->semValue = new Node\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)]), $attributes); 
    }

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

    protected function reduceRule40($attributes) {
         $this->semValue = new Node\Stmt\Break_(null, $attributes); 
    }

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

    protected function reduceRule42($attributes) {
         $this->semValue = new Node\Stmt\Continue_(null, $attributes); 
    }

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

    protected function reduceRule44($attributes) {
         $this->semValue = new Node\Stmt\Return_(null, $attributes); 
    }

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

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

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

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

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

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

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

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

    protected function reduceRule53($attributes) {
         $this->semValue = new Node\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)]), $attributes); 
    }

    protected function reduceRule54($attributes) {
         $this->semValue = new Node\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)]), $attributes); 
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    protected function reduceRule72($attributes) {
         $this->semValue = new Node\Stmt\Function_($this->semStack[$this->stackPos-(9-3)], array('byRef' => $this->semStack[$this->stackPos-(9-2)], 'params' => $this->semStack[$this->stackPos-(9-5)], 'stmts' => $this->semStack[$this->stackPos-(9-8)]), $attributes); 
    }

    protected function reduceRule73($attributes) {
         $this->semValue = new Node\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)]), $attributes); 
    }

    protected function reduceRule74($attributes) {
         $this->semValue = new Node\Stmt\Interface_($this->semStack[$this->stackPos-(6-2)], array('extends' => $this->semStack[$this->stackPos-(6-3)], 'stmts' => $this->semStack[$this->stackPos-(6-5)]), $attributes); 
    }

    protected function reduceRule75($attributes) {
         $this->semValue = new Node\Stmt\Trait_($this->semStack[$this->stackPos-(5-2)], $this->semStack[$this->stackPos-(5-4)], $attributes); 
    }

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

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

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

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

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

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

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

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

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

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

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

    protected function reduceRule87($attributes) {
         $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 reduceRule88($attributes) {
         $this->semValue = $this->semStack[$this->stackPos-(4-2)]; 
    }

    protected function reduceRule89($attributes) {
         $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 reduceRule90($attributes) {
         $this->semValue = $this->semStack[$this->stackPos-(4-2)]; 
    }

    protected function reduceRule91($attributes) {
         $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 reduceRule92($attributes) {
         $this->semValue = $this->semStack[$this->stackPos-(4-2)]; 
    }

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

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

    protected function reduceRule95($attributes) {
         $this->semValue = new Node\Stmt\DeclareDeclare($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

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

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

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

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

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

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

    protected function reduceRule102($attributes) {
         $this->semValue = new Node\Stmt\Case_($this->semStack[$this->stackPos-(4-2)], $this->semStack[$this->stackPos-(4-4)], $attributes); 
    }

    protected function reduceRule103($attributes) {
         $this->semValue = new Node\Stmt\Case_(null, $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

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

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

    protected function reduceRule106($attributes) {
         $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 reduceRule107($attributes) {
         $this->semValue = $this->semStack[$this->stackPos-(4-2)]; 
    }

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

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

    protected function reduceRule110($attributes) {
         $this->semValue = new Node\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)]), $attributes); 
    }

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

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

    protected function reduceRule113($attributes) {
         $this->semValue = new Node\Stmt\ElseIf_($this->semStack[$this->stackPos-(4-2)], $this->semStack[$this->stackPos-(4-4)], $attributes); 
    }

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

    protected function reduceRule115($attributes) {
         $this->semValue = new Node\Stmt\Else_(is_array($this->semStack[$this->stackPos-(2-2)]) ? $this->semStack[$this->stackPos-(2-2)] : array($this->semStack[$this->stackPos-(2-2)]), $attributes); 
    }

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

    protected function reduceRule117($attributes) {
         $this->semValue = new Node\Stmt\Else_($this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

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

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

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

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

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

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

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

    protected function reduceRule125($attributes) {
         $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)], $attributes); 
    }

    protected function reduceRule126($attributes) {
         $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)], $attributes); 
    }

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

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

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

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

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

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

    protected function reduceRule133($attributes) {
         $this->semValue = array(new Node\Arg($this->semStack[$this->stackPos-(3-2)], false, false, $attributes)); 
    }

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

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

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

    protected function reduceRule137($attributes) {
         $this->semValue = new Node\Arg($this->semStack[$this->stackPos-(2-2)], true, false, $attributes); 
    }

    protected function reduceRule138($attributes) {
         $this->semValue = new Node\Arg($this->semStack[$this->stackPos-(2-2)], false, true, $attributes); 
    }

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

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

    protected function reduceRule141($attributes) {
         $this->semValue = new Node\Expr\Variable(substr($this->semStack[$this->stackPos-(1-1)], 1), $attributes); 
    }

    protected function reduceRule142($attributes) {
         $this->semValue = new Node\Expr\Variable($this->semStack[$this->stackPos-(2-2)], $attributes); 
    }

    protected function reduceRule143($attributes) {
         $this->semValue = new Node\Expr\Variable($this->semStack[$this->stackPos-(4-3)], $attributes); 
    }

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

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

    protected function reduceRule146($attributes) {
         $this->semValue = new Node\Stmt\StaticVar(substr($this->semStack[$this->stackPos-(1-1)], 1), null, $attributes); 
    }

    protected function reduceRule147($attributes) {
         $this->semValue = new Node\Stmt\StaticVar(substr($this->semStack[$this->stackPos-(3-1)], 1), $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

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

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

    protected function reduceRule150($attributes) {
         $this->semValue = new Node\Stmt\Property($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-2)], $attributes); 
    }

    protected function reduceRule151($attributes) {
         $this->semValue = new Node\Stmt\ClassConst($this->semStack[$this->stackPos-(3-2)], $attributes); 
    }

    protected function reduceRule152($attributes) {
         $this->semValue = new Node\Stmt\ClassMethod($this->semStack[$this->stackPos-(8-4)], array('type' => $this->semStack[$this->stackPos-(8-1)], 'byRef' => $this->semStack[$this->stackPos-(8-3)], 'params' => $this->semStack[$this->stackPos-(8-6)], 'stmts' => $this->semStack[$this->stackPos-(8-8)]), $attributes); 
    }

    protected function reduceRule153($attributes) {
         $this->semValue = new Node\Stmt\TraitUse($this->semStack[$this->stackPos-(3-2)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

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

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

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

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

    protected function reduceRule158($attributes) {
         $this->semValue = new Node\Stmt\TraitUseAdaptation\Precedence($this->semStack[$this->stackPos-(4-1)][0], $this->semStack[$this->stackPos-(4-1)][1], $this->semStack[$this->stackPos-(4-3)], $attributes); 
    }

    protected function reduceRule159($attributes) {
         $this->semValue = new Node\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)], $attributes); 
    }

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

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

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

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

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

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

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

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

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

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

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

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

    protected function reduceRule172($attributes) {
         Node\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 reduceRule173($attributes) {
         $this->semValue = Node\Stmt\Class_::MODIFIER_PUBLIC; 
    }

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

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

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

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

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

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

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

    protected function reduceRule181($attributes) {
         $this->semValue = new Node\Stmt\PropertyProperty(substr($this->semStack[$this->stackPos-(1-1)], 1), null, $attributes); 
    }

    protected function reduceRule182($attributes) {
         $this->semValue = new Node\Stmt\PropertyProperty(substr($this->semStack[$this->stackPos-(3-1)], 1), $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

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

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

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

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

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

    protected function reduceRule188($attributes) {
         $this->semValue = new Node\Expr\Assign($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule189($attributes) {
         $this->semValue = new Node\Expr\Assign($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule190($attributes) {
         $this->semValue = new Node\Expr\AssignRef($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-4)], $attributes); 
    }

    protected function reduceRule191($attributes) {
         $this->semValue = new Node\Expr\AssignRef($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-4)], $attributes); 
    }

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

    protected function reduceRule193($attributes) {
         $this->semValue = new Node\Expr\Clone_($this->semStack[$this->stackPos-(2-2)], $attributes); 
    }

    protected function reduceRule194($attributes) {
         $this->semValue = new Node\Expr\AssignOp\Plus($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule195($attributes) {
         $this->semValue = new Node\Expr\AssignOp\Minus($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule196($attributes) {
         $this->semValue = new Node\Expr\AssignOp\Mul($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule197($attributes) {
         $this->semValue = new Node\Expr\AssignOp\Div($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule198($attributes) {
         $this->semValue = new Node\Expr\AssignOp\Concat($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule199($attributes) {
         $this->semValue = new Node\Expr\AssignOp\Mod($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule200($attributes) {
         $this->semValue = new Node\Expr\AssignOp\BitwiseAnd($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule201($attributes) {
         $this->semValue = new Node\Expr\AssignOp\BitwiseOr($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule202($attributes) {
         $this->semValue = new Node\Expr\AssignOp\BitwiseXor($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule203($attributes) {
         $this->semValue = new Node\Expr\AssignOp\ShiftLeft($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule204($attributes) {
         $this->semValue = new Node\Expr\AssignOp\ShiftRight($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule205($attributes) {
         $this->semValue = new Node\Expr\AssignOp\Pow($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule206($attributes) {
         $this->semValue = new Node\Expr\PostInc($this->semStack[$this->stackPos-(2-1)], $attributes); 
    }

    protected function reduceRule207($attributes) {
         $this->semValue = new Node\Expr\PreInc($this->semStack[$this->stackPos-(2-2)], $attributes); 
    }

    protected function reduceRule208($attributes) {
         $this->semValue = new Node\Expr\PostDec($this->semStack[$this->stackPos-(2-1)], $attributes); 
    }

    protected function reduceRule209($attributes) {
         $this->semValue = new Node\Expr\PreDec($this->semStack[$this->stackPos-(2-2)], $attributes); 
    }

    protected function reduceRule210($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\BooleanOr($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule211($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\BooleanAnd($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule212($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\LogicalOr($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule213($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\LogicalAnd($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule214($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\LogicalXor($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule215($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\BitwiseOr($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule216($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\BitwiseAnd($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule217($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\BitwiseXor($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule218($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\Concat($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule219($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\Plus($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule220($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\Minus($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule221($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\Mul($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule222($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\Div($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule223($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\Mod($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule224($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\ShiftLeft($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule225($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\ShiftRight($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule226($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\Pow($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule227($attributes) {
         $this->semValue = new Node\Expr\UnaryPlus($this->semStack[$this->stackPos-(2-2)], $attributes); 
    }

    protected function reduceRule228($attributes) {
         $this->semValue = new Node\Expr\UnaryMinus($this->semStack[$this->stackPos-(2-2)], $attributes); 
    }

    protected function reduceRule229($attributes) {
         $this->semValue = new Node\Expr\BooleanNot($this->semStack[$this->stackPos-(2-2)], $attributes); 
    }

    protected function reduceRule230($attributes) {
         $this->semValue = new Node\Expr\BitwiseNot($this->semStack[$this->stackPos-(2-2)], $attributes); 
    }

    protected function reduceRule231($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\Identical($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule232($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\NotIdentical($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule233($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\Equal($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule234($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\NotEqual($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule235($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\Smaller($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule236($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\SmallerOrEqual($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule237($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\Greater($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule238($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\GreaterOrEqual($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule239($attributes) {
         $this->semValue = new Node\Expr\Instanceof_($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

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

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

    protected function reduceRule242($attributes) {
         $this->semValue = new Node\Expr\Ternary($this->semStack[$this->stackPos-(5-1)], $this->semStack[$this->stackPos-(5-3)], $this->semStack[$this->stackPos-(5-5)], $attributes); 
    }

    protected function reduceRule243($attributes) {
         $this->semValue = new Node\Expr\Ternary($this->semStack[$this->stackPos-(4-1)], null, $this->semStack[$this->stackPos-(4-4)], $attributes); 
    }

    protected function reduceRule244($attributes) {
         $this->semValue = new Node\Expr\Isset_($this->semStack[$this->stackPos-(4-3)], $attributes); 
    }

    protected function reduceRule245($attributes) {
         $this->semValue = new Node\Expr\Empty_($this->semStack[$this->stackPos-(4-3)], $attributes); 
    }

    protected function reduceRule246($attributes) {
         $this->semValue = new Node\Expr\Include_($this->semStack[$this->stackPos-(2-2)], Node\Expr\Include_::TYPE_INCLUDE, $attributes); 
    }

    protected function reduceRule247($attributes) {
         $this->semValue = new Node\Expr\Include_($this->semStack[$this->stackPos-(2-2)], Node\Expr\Include_::TYPE_INCLUDE_ONCE, $attributes); 
    }

    protected function reduceRule248($attributes) {
         $this->semValue = new Node\Expr\Eval_($this->semStack[$this->stackPos-(2-2)], $attributes); 
    }

    protected function reduceRule249($attributes) {
         $this->semValue = new Node\Expr\Include_($this->semStack[$this->stackPos-(2-2)], Node\Expr\Include_::TYPE_REQUIRE, $attributes); 
    }

    protected function reduceRule250($attributes) {
         $this->semValue = new Node\Expr\Include_($this->semStack[$this->stackPos-(2-2)], Node\Expr\Include_::TYPE_REQUIRE_ONCE, $attributes); 
    }

    protected function reduceRule251($attributes) {
         $this->semValue = new Node\Expr\Cast\Int($this->semStack[$this->stackPos-(2-2)], $attributes); 
    }

    protected function reduceRule252($attributes) {
         $this->semValue = new Node\Expr\Cast\Double($this->semStack[$this->stackPos-(2-2)], $attributes); 
    }

    protected function reduceRule253($attributes) {
         $this->semValue = new Node\Expr\Cast\String($this->semStack[$this->stackPos-(2-2)], $attributes); 
    }

    protected function reduceRule254($attributes) {
         $this->semValue = new Node\Expr\Cast\Array_($this->semStack[$this->stackPos-(2-2)], $attributes); 
    }

    protected function reduceRule255($attributes) {
         $this->semValue = new Node\Expr\Cast\Object($this->semStack[$this->stackPos-(2-2)], $attributes); 
    }

    protected function reduceRule256($attributes) {
         $this->semValue = new Node\Expr\Cast\Bool($this->semStack[$this->stackPos-(2-2)], $attributes); 
    }

    protected function reduceRule257($attributes) {
         $this->semValue = new Node\Expr\Cast\Unset_($this->semStack[$this->stackPos-(2-2)], $attributes); 
    }

    protected function reduceRule258($attributes) {
         $this->semValue = new Node\Expr\Exit_($this->semStack[$this->stackPos-(2-2)], $attributes); 
    }

    protected function reduceRule259($attributes) {
         $this->semValue = new Node\Expr\ErrorSuppress($this->semStack[$this->stackPos-(2-2)], $attributes); 
    }

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

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

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

    protected function reduceRule263($attributes) {
         $this->semValue = new Node\Expr\ShellExec($this->semStack[$this->stackPos-(3-2)], $attributes); 
    }

    protected function reduceRule264($attributes) {
         $this->semValue = new Node\Expr\Print_($this->semStack[$this->stackPos-(2-2)], $attributes); 
    }

    protected function reduceRule265($attributes) {
         $this->semValue = new Node\Expr\Yield_(null, null, $attributes); 
    }

    protected function reduceRule266($attributes) {
         $this->semValue = new Node\Expr\Closure(array('static' => false, 'byRef' => $this->semStack[$this->stackPos-(9-2)], 'params' => $this->semStack[$this->stackPos-(9-4)], 'uses' => $this->semStack[$this->stackPos-(9-6)], 'stmts' => $this->semStack[$this->stackPos-(9-8)]), $attributes); 
    }

    protected function reduceRule267($attributes) {
         $this->semValue = new Node\Expr\Closure(array('static' => true, 'byRef' => $this->semStack[$this->stackPos-(10-3)], 'params' => $this->semStack[$this->stackPos-(10-5)], 'uses' => $this->semStack[$this->stackPos-(10-7)], 'stmts' => $this->semStack[$this->stackPos-(10-9)]), $attributes); 
    }

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

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

    protected function reduceRule270($attributes) {
         $this->semValue = new Node\Expr\Yield_($this->semStack[$this->stackPos-(2-2)], null, $attributes); 
    }

    protected function reduceRule271($attributes) {
         $this->semValue = new Node\Expr\Yield_($this->semStack[$this->stackPos-(4-4)], $this->semStack[$this->stackPos-(4-2)], $attributes); 
    }

    protected function reduceRule272($attributes) {
         $this->semValue = new Node\Expr\Array_($this->semStack[$this->stackPos-(4-3)], $attributes); 
    }

    protected function reduceRule273($attributes) {
         $this->semValue = new Node\Expr\Array_($this->semStack[$this->stackPos-(3-2)], $attributes); 
    }

    protected function reduceRule274($attributes) {
         $this->semValue = new Node\Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $attributes); 
    }

    protected function reduceRule275($attributes) {
         $this->semValue = new Node\Expr\ArrayDimFetch(new Node\Scalar\String(Node\Scalar\String::parse($this->semStack[$this->stackPos-(4-1)]), $attributes), $this->semStack[$this->stackPos-(4-3)], $attributes); 
    }

    protected function reduceRule276($attributes) {
         $this->semValue = new Node\Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $attributes); 
    }

    protected function reduceRule277($attributes) {
         $this->semValue = new Node\Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $attributes); 
    }

    protected function reduceRule278($attributes) {
         $this->semValue = new Node\Expr\New_($this->semStack[$this->stackPos-(3-2)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

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

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

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

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

    protected function reduceRule283($attributes) {
         $this->semValue = new Node\Expr\ClosureUse(substr($this->semStack[$this->stackPos-(2-2)], 1), $this->semStack[$this->stackPos-(2-1)], $attributes); 
    }

    protected function reduceRule284($attributes) {
         $this->semValue = new Node\Expr\FuncCall($this->semStack[$this->stackPos-(2-1)], $this->semStack[$this->stackPos-(2-2)], $attributes); 
    }

    protected function reduceRule285($attributes) {
         $this->semValue = new Node\Expr\StaticCall($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->semStack[$this->stackPos-(4-4)], $attributes); 
    }

    protected function reduceRule286($attributes) {
         $this->semValue = new Node\Expr\StaticCall($this->semStack[$this->stackPos-(6-1)], $this->semStack[$this->stackPos-(6-4)], $this->semStack[$this->stackPos-(6-6)], $attributes); 
    }

    protected function reduceRule287($attributes) {
        
            if ($this->semStack[$this->stackPos-(2-1)] instanceof Node\Expr\StaticPropertyFetch) {
                $this->semValue = new Node\Expr\StaticCall($this->semStack[$this->stackPos-(2-1)]->class, new Node\Expr\Variable($this->semStack[$this->stackPos-(2-1)]->name, $attributes), $this->semStack[$this->stackPos-(2-2)], $attributes);
            } 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 Node\Expr\StaticCall($tmp->var->class, $this->semStack[$this->stackPos-(2-1)], $this->semStack[$this->stackPos-(2-2)], $attributes);
                $tmp->var = new Node\Expr\Variable($tmp->var->name, $attributes);
            } else {
                throw new \Exception;
            }
          
    }

    protected function reduceRule288($attributes) {
         $this->semValue = new Node\Expr\FuncCall($this->semStack[$this->stackPos-(2-1)], $this->semStack[$this->stackPos-(2-2)], $attributes); 
    }

    protected function reduceRule289($attributes) {
         $this->semValue = new Node\Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $attributes); 
    }

    protected function reduceRule290($attributes) {
         $this->semValue = new Node\Name($this->semStack[$this->stackPos-(1-1)], $attributes); 
    }

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

    protected function reduceRule292($attributes) {
         $this->semValue = new Node\Name($this->semStack[$this->stackPos-(1-1)], $attributes); 
    }

    protected function reduceRule293($attributes) {
         $this->semValue = new Node\Name\FullyQualified($this->semStack[$this->stackPos-(2-2)], $attributes); 
    }

    protected function reduceRule294($attributes) {
         $this->semValue = new Node\Name\Relative($this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

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

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

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

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

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

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

    protected function reduceRule301($attributes) {
         $this->semValue = new Node\Expr\PropertyFetch($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule302($attributes) {
         $this->semValue = new Node\Expr\PropertyFetch($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule303($attributes) {
         $this->semValue = new Node\Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $attributes); 
    }

    protected function reduceRule304($attributes) {
         $this->semValue = new Node\Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $attributes); 
    }

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

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

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

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

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

    protected function reduceRule310($attributes) {
         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 reduceRule311($attributes) {
         $this->semValue = array(); 
    }

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

    protected function reduceRule313($attributes) {
         $this->semValue = new Node\Scalar\LNumber(Node\Scalar\LNumber::parse($this->semStack[$this->stackPos-(1-1)]), $attributes); 
    }

    protected function reduceRule314($attributes) {
         $this->semValue = new Node\Scalar\DNumber(Node\Scalar\DNumber::parse($this->semStack[$this->stackPos-(1-1)]), $attributes); 
    }

    protected function reduceRule315($attributes) {
         $this->semValue = new Node\Scalar\String(Node\Scalar\String::parse($this->semStack[$this->stackPos-(1-1)]), $attributes); 
    }

    protected function reduceRule316($attributes) {
         $this->semValue = new Node\Scalar\MagicConst\Line($attributes); 
    }

    protected function reduceRule317($attributes) {
         $this->semValue = new Node\Scalar\MagicConst\File($attributes); 
    }

    protected function reduceRule318($attributes) {
         $this->semValue = new Node\Scalar\MagicConst\Dir($attributes); 
    }

    protected function reduceRule319($attributes) {
         $this->semValue = new Node\Scalar\MagicConst\Class_($attributes); 
    }

    protected function reduceRule320($attributes) {
         $this->semValue = new Node\Scalar\MagicConst\Trait_($attributes); 
    }

    protected function reduceRule321($attributes) {
         $this->semValue = new Node\Scalar\MagicConst\Method($attributes); 
    }

    protected function reduceRule322($attributes) {
         $this->semValue = new Node\Scalar\MagicConst\Function_($attributes); 
    }

    protected function reduceRule323($attributes) {
         $this->semValue = new Node\Scalar\MagicConst\Namespace_($attributes); 
    }

    protected function reduceRule324($attributes) {
         $this->semValue = new Node\Scalar\String(Node\Scalar\String::parseDocString($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-2)]), $attributes); 
    }

    protected function reduceRule325($attributes) {
         $this->semValue = new Node\Scalar\String('', $attributes); 
    }

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

    protected function reduceRule327($attributes) {
         $this->semValue = new Node\Expr\ClassConstFetch($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule328($attributes) {
         $this->semValue = new Node\Expr\ConstFetch($this->semStack[$this->stackPos-(1-1)], $attributes); 
    }

    protected function reduceRule329($attributes) {
         $this->semValue = new Node\Expr\Array_($this->semStack[$this->stackPos-(4-3)], $attributes); 
    }

    protected function reduceRule330($attributes) {
         $this->semValue = new Node\Expr\Array_($this->semStack[$this->stackPos-(3-2)], $attributes); 
    }

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

    protected function reduceRule332($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\BooleanOr($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule333($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\BooleanAnd($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule334($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\LogicalOr($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule335($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\LogicalAnd($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule336($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\LogicalXor($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule337($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\BitwiseOr($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule338($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\BitwiseAnd($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule339($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\BitwiseXor($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule340($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\Concat($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule341($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\Plus($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule342($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\Minus($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule343($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\Mul($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule344($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\Div($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule345($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\Mod($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule346($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\ShiftLeft($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule347($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\ShiftRight($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule348($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\Pow($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule349($attributes) {
         $this->semValue = new Node\Expr\UnaryPlus($this->semStack[$this->stackPos-(2-2)], $attributes); 
    }

    protected function reduceRule350($attributes) {
         $this->semValue = new Node\Expr\UnaryMinus($this->semStack[$this->stackPos-(2-2)], $attributes); 
    }

    protected function reduceRule351($attributes) {
         $this->semValue = new Node\Expr\BooleanNot($this->semStack[$this->stackPos-(2-2)], $attributes); 
    }

    protected function reduceRule352($attributes) {
         $this->semValue = new Node\Expr\BitwiseNot($this->semStack[$this->stackPos-(2-2)], $attributes); 
    }

    protected function reduceRule353($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\Identical($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule354($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\NotIdentical($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule355($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\Equal($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule356($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\NotEqual($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule357($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\Smaller($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule358($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\SmallerOrEqual($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule359($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\Greater($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule360($attributes) {
         $this->semValue = new Node\Expr\BinaryOp\GreaterOrEqual($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule361($attributes) {
         $this->semValue = new Node\Expr\Ternary($this->semStack[$this->stackPos-(5-1)], $this->semStack[$this->stackPos-(5-3)], $this->semStack[$this->stackPos-(5-5)], $attributes); 
    }

    protected function reduceRule362($attributes) {
         $this->semValue = new Node\Expr\Ternary($this->semStack[$this->stackPos-(4-1)], null, $this->semStack[$this->stackPos-(4-4)], $attributes); 
    }

    protected function reduceRule363($attributes) {
         $this->semValue = new Node\Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $attributes); 
    }

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

    protected function reduceRule365($attributes) {
         $this->semValue = new Node\Expr\ConstFetch($this->semStack[$this->stackPos-(1-1)], $attributes); 
    }

    protected function reduceRule366($attributes) {
         $this->semValue = new Node\Expr\ClassConstFetch($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

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

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

    protected function reduceRule369($attributes) {
         foreach ($this->semStack[$this->stackPos-(3-2)] as &$s) { if (is_string($s)) { $s = Node\Scalar\String::parseEscapeSequences($s, '"'); } }; $this->semValue = new Node\Scalar\Encapsed($this->semStack[$this->stackPos-(3-2)], $attributes); 
    }

    protected function reduceRule370($attributes) {
         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 Node\Scalar\Encapsed($this->semStack[$this->stackPos-(3-2)], $attributes); 
    }

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

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

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

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

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

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

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

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

    protected function reduceRule379($attributes) {
         $this->semValue = new Node\Expr\ArrayItem($this->semStack[$this->stackPos-(3-3)], $this->semStack[$this->stackPos-(3-1)], false, $attributes); 
    }

    protected function reduceRule380($attributes) {
         $this->semValue = new Node\Expr\ArrayItem($this->semStack[$this->stackPos-(1-1)], null, false, $attributes); 
    }

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

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

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

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

    protected function reduceRule385($attributes) {
         $this->semValue = new Node\Expr\ArrayDimFetch($this->semStack[$this->stackPos-(6-2)], $this->semStack[$this->stackPos-(6-5)], $attributes); 
    }

    protected function reduceRule386($attributes) {
         $this->semValue = new Node\Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $attributes); 
    }

    protected function reduceRule387($attributes) {
         $this->semValue = new Node\Expr\PropertyFetch($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule388($attributes) {
         $this->semValue = new Node\Expr\MethodCall($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->semStack[$this->stackPos-(4-4)], $attributes); 
    }

    protected function reduceRule389($attributes) {
         $this->semValue = new Node\Expr\FuncCall($this->semStack[$this->stackPos-(2-1)], $this->semStack[$this->stackPos-(2-2)], $attributes); 
    }

    protected function reduceRule390($attributes) {
         $this->semValue = new Node\Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $attributes); 
    }

    protected function reduceRule391($attributes) {
         $this->semValue = new Node\Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $attributes); 
    }

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

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

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

    protected function reduceRule395($attributes) {
         $this->semValue = new Node\Expr\Variable($this->semStack[$this->stackPos-(2-2)], $attributes); 
    }

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

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

    protected function reduceRule398($attributes) {
         $this->semValue = new Node\Expr\StaticPropertyFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-4)], $attributes); 
    }

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

    protected function reduceRule400($attributes) {
         $this->semValue = new Node\Expr\StaticPropertyFetch($this->semStack[$this->stackPos-(3-1)], substr($this->semStack[$this->stackPos-(3-3)], 1), $attributes); 
    }

    protected function reduceRule401($attributes) {
         $this->semValue = new Node\Expr\StaticPropertyFetch($this->semStack[$this->stackPos-(6-1)], $this->semStack[$this->stackPos-(6-5)], $attributes); 
    }

    protected function reduceRule402($attributes) {
         $this->semValue = new Node\Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $attributes); 
    }

    protected function reduceRule403($attributes) {
         $this->semValue = new Node\Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $attributes); 
    }

    protected function reduceRule404($attributes) {
         $this->semValue = new Node\Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $attributes); 
    }

    protected function reduceRule405($attributes) {
         $this->semValue = new Node\Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $attributes); 
    }

    protected function reduceRule406($attributes) {
         $this->semValue = new Node\Expr\Variable(substr($this->semStack[$this->stackPos-(1-1)], 1), $attributes); 
    }

    protected function reduceRule407($attributes) {
         $this->semValue = new Node\Expr\Variable($this->semStack[$this->stackPos-(4-3)], $attributes); 
    }

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

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

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

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

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

    protected function reduceRule413($attributes) {
         $this->semValue = new Node\Expr\List_($this->semStack[$this->stackPos-(4-3)], $attributes); 
    }

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

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

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

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

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

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

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

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

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

    protected function reduceRule423($attributes) {
         $this->semValue = new Node\Expr\ArrayItem($this->semStack[$this->stackPos-(3-3)], $this->semStack[$this->stackPos-(3-1)], false, $attributes); 
    }

    protected function reduceRule424($attributes) {
         $this->semValue = new Node\Expr\ArrayItem($this->semStack[$this->stackPos-(1-1)], null, false, $attributes); 
    }

    protected function reduceRule425($attributes) {
         $this->semValue = new Node\Expr\ArrayItem($this->semStack[$this->stackPos-(4-4)], $this->semStack[$this->stackPos-(4-1)], true, $attributes); 
    }

    protected function reduceRule426($attributes) {
         $this->semValue = new Node\Expr\ArrayItem($this->semStack[$this->stackPos-(2-2)], null, true, $attributes); 
    }

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

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

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

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

    protected function reduceRule431($attributes) {
         $this->semValue = new Node\Expr\Variable(substr($this->semStack[$this->stackPos-(1-1)], 1), $attributes); 
    }

    protected function reduceRule432($attributes) {
         $this->semValue = new Node\Expr\ArrayDimFetch(new Node\Expr\Variable(substr($this->semStack[$this->stackPos-(4-1)], 1), $attributes), $this->semStack[$this->stackPos-(4-3)], $attributes); 
    }

    protected function reduceRule433($attributes) {
         $this->semValue = new Node\Expr\PropertyFetch(new Node\Expr\Variable(substr($this->semStack[$this->stackPos-(3-1)], 1), $attributes), $this->semStack[$this->stackPos-(3-3)], $attributes); 
    }

    protected function reduceRule434($attributes) {
         $this->semValue = new Node\Expr\Variable($this->semStack[$this->stackPos-(3-2)], $attributes); 
    }

    protected function reduceRule435($attributes) {
         $this->semValue = new Node\Expr\Variable($this->semStack[$this->stackPos-(3-2)], $attributes); 
    }

    protected function reduceRule436($attributes) {
         $this->semValue = new Node\Expr\ArrayDimFetch(new Node\Expr\Variable($this->semStack[$this->stackPos-(6-2)], $attributes), $this->semStack[$this->stackPos-(6-4)], $attributes); 
    }

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

    protected function reduceRule438($attributes) {
         $this->semValue = new Node\Scalar\String($this->semStack[$this->stackPos-(1-1)], $attributes); 
    }

    protected function reduceRule439($attributes) {
         $this->semValue = new Node\Scalar\String($this->semStack[$this->stackPos-(1-1)], $attributes); 
    }

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