diff --git a/grammar/kmyacc.class.php.parser b/grammar/php.kmyacc similarity index 91% rename from grammar/kmyacc.class.php.parser rename to grammar/php.kmyacc index c1ba2078..f9d7f0c5 100644 --- a/grammar/kmyacc.class.php.parser +++ b/grammar/php.kmyacc @@ -41,17 +41,12 @@ class YYParser protected $yysp; protected $yyaccept; -@if -t - /** Debug mode flag **/ - public $yydebug = true; -@endif - -@if -t private static $yyterminals = array( @listvar terminals , "???" ); +@if -t private static $yyproduction = array( @production-strings; ); @@ -117,40 +112,32 @@ class YYParser @if -t /* Traditional Debug Mode */ private function YYTRACE_NEWSTATE($state, $sym) { - if ($this->yydebug) { - $this->yyprintln('% State ' . $state . ', Lookahead ' - . ($sym < 0 ? '--none--' : self::$yyterminals[$sym])); - } + $this->yyprintln('% State ' . $state . ', Lookahead ' + . ($sym < 0 ? '--none--' : self::$yyterminals[$sym])); } private function YYTRACE_READ($sym) { - if ($this->yydebug) - $this->yyprintln('% Reading ' . self::$yyterminals[$sym]); + $this->yyprintln('% Reading ' . self::$yyterminals[$sym]); } private function YYTRACE_SHIFT($sym) { - if ($this->yydebug) - $this->yyprintln('% Shift ' . self::$yyterminals[$sym]); + $this->yyprintln('% Shift ' . self::$yyterminals[$sym]); } private function YYTRACE_ACCEPT() { - if ($this->yydebug) - $this->yyprintln('% Accepted.'); + $this->yyprintln('% Accepted.'); } private function YYTRACE_REDUCE($n) { - if ($this->yydebug) - $this->yyprintln('% Reduce by (' . $n . ') ' . self::$yyproduction[$n]); + $this->yyprintln('% Reduce by (' . $n . ') ' . self::$yyproduction[$n]); } private function YYTRACE_POP($state) { - if ($this->yydebug) - $this->yyprintln('% Recovering, uncovers state ' . $state); + $this->yyprintln('% Recovering, uncovers state ' . $state); } private function YYTRACE_DISCARD($sym) { - if ($this->yydebug) - $this->yyprintln('% Discard ' . self::$yyterminals[$sym]); + $this->yyprintln('% Discard ' . self::$yyterminals[$sym]); } @endif diff --git a/grammar/rebuildParser.php b/grammar/rebuildParser.php index 64181f24..706ce4a2 100644 --- a/grammar/rebuildParser.php +++ b/grammar/rebuildParser.php @@ -3,24 +3,13 @@ echo '
'; echo 'Building parser. Output: "', - `kmyacc -l -v -t -m kmyacc.class.php.parser -L c zend_language_parser.phpy`, + `kmyacc -l -v -L c -m php.kmyacc -p Parser zend_language_parser.phpy`, '"', "\n"; -echo 'Reading parser.', "\n"; $source = file_get_contents('y.tab.c'); - -echo 'Replacing "YYParser" -> "Parser", "$EOF" -> \'$EOF\', "$start : start" -> \'$start : start\'.', "\n"; $source = str_replace( - array( - 'YYParser', - '"$EOF"', - '"$start : start"' - ), - array( - 'Parser', - '\'$EOF\'', - '\'$start : start\'' - ), + '"$EOF"', + '\'$EOF\'', $source ); @@ -28,6 +17,27 @@ echo 'Moving parser to lib/Parser.php.', "\n"; file_put_contents(dirname(__DIR__) . '/lib/Parser.php', $source); unlink(__DIR__ . '/y.tab.c'); +echo 'Building debug parser. Output: "', + `kmyacc -l -v -t -L c -m php.kmyacc -p ParserDebug zend_language_parser.phpy`, + '"', "\n"; + +$source = file_get_contents('y.tab.c'); +$source = str_replace( + array( + '"$EOF"', + '"$start : start"' + ), + array( + '\'$EOF\'', + '\'$start : start\'' + ), + $source +); + +echo 'Moving debug parser to lib/ParserDebug.php.', "\n"; +file_put_contents(dirname(__DIR__) . '/lib/ParserDebug.php', $source); +unlink(__DIR__ . '/y.tab.c'); + echo 'Done.'; echo ''; \ No newline at end of file diff --git a/grammar/y.output b/grammar/y.output index 9c30c4b4..fa81d7a2 100644 --- a/grammar/y.output +++ b/grammar/y.output @@ -933,8 +933,8 @@ state 9 . error state 10 - (24) inner_statement_list : inner_statement_list . inner_statement (235) expr_without_variable : T_FUNCTION optional_ref '(' parameter_list ')' lexical_vars '{' inner_statement_list . '}' + (24) inner_statement_list : inner_statement_list . inner_statement T_INCLUDE shift 57 T_INCLUDE_ONCE shift 58 @@ -1239,8 +1239,8 @@ state 12 . error state 13 - (24) inner_statement_list : inner_statement_list . inner_statement (139) method_body : '{' inner_statement_list . '}' + (24) inner_statement_list : inner_statement_list . inner_statement T_INCLUDE shift 57 T_INCLUDE_ONCE shift 58 @@ -10458,7 +10458,6 @@ state 135 . error state 136 - (93) case_list : case_list T_CASE expr . case_separator inner_statement_list (183) expr_without_variable : expr . T_BOOLEAN_OR expr (184) expr_without_variable : expr . T_BOOLEAN_AND expr (185) expr_without_variable : expr . T_LOGICAL_OR expr @@ -10486,6 +10485,7 @@ state 136 (211) expr_without_variable : expr . T_INSTANCEOF class_name_reference (213) expr_without_variable : expr . '?' expr ':' expr (214) expr_without_variable : expr . '?' ':' expr + (93) case_list : case_list T_CASE expr . case_separator inner_statement_list T_LOGICAL_OR shift 84 T_LOGICAL_XOR shift 85 @@ -10519,7 +10519,6 @@ state 136 . error state 137 - (48) statement : expr . ';' (183) expr_without_variable : expr . T_BOOLEAN_OR expr (184) expr_without_variable : expr . T_BOOLEAN_AND expr (185) expr_without_variable : expr . T_LOGICAL_OR expr @@ -10547,6 +10546,7 @@ state 137 (211) expr_without_variable : expr . T_INSTANCEOF class_name_reference (213) expr_without_variable : expr . '?' expr ':' expr (214) expr_without_variable : expr . '?' ':' expr + (48) statement : expr . ';' T_LOGICAL_OR shift 84 T_LOGICAL_XOR shift 85 @@ -10578,7 +10578,6 @@ state 137 . error state 138 - (38) statement : T_BREAK expr . ';' (183) expr_without_variable : expr . T_BOOLEAN_OR expr (184) expr_without_variable : expr . T_BOOLEAN_AND expr (185) expr_without_variable : expr . T_LOGICAL_OR expr @@ -10606,6 +10605,7 @@ state 138 (211) expr_without_variable : expr . T_INSTANCEOF class_name_reference (213) expr_without_variable : expr . '?' expr ':' expr (214) expr_without_variable : expr . '?' ':' expr + (38) statement : T_BREAK expr . ';' T_LOGICAL_OR shift 84 T_LOGICAL_XOR shift 85 @@ -10637,7 +10637,6 @@ state 138 . error state 139 - (40) statement : T_CONTINUE expr . ';' (183) expr_without_variable : expr . T_BOOLEAN_OR expr (184) expr_without_variable : expr . T_BOOLEAN_AND expr (185) expr_without_variable : expr . T_LOGICAL_OR expr @@ -10665,6 +10664,7 @@ state 139 (211) expr_without_variable : expr . T_INSTANCEOF class_name_reference (213) expr_without_variable : expr . '?' expr ':' expr (214) expr_without_variable : expr . '?' ':' expr + (40) statement : T_CONTINUE expr . ';' T_LOGICAL_OR shift 84 T_LOGICAL_XOR shift 85 @@ -10696,7 +10696,6 @@ state 139 . error state 140 - (56) statement : T_THROW expr . ';' (183) expr_without_variable : expr . T_BOOLEAN_OR expr (184) expr_without_variable : expr . T_BOOLEAN_AND expr (185) expr_without_variable : expr . T_LOGICAL_OR expr @@ -10724,6 +10723,7 @@ state 140 (211) expr_without_variable : expr . T_INSTANCEOF class_name_reference (213) expr_without_variable : expr . '?' expr ':' expr (214) expr_without_variable : expr . '?' ':' expr + (56) statement : T_THROW expr . ';' T_LOGICAL_OR shift 84 T_LOGICAL_XOR shift 85 @@ -10932,8 +10932,6 @@ state 143 . error state 144 - (31) statement : T_IF '(' expr . ')' statement elseif_list else_single - (32) statement : T_IF '(' expr . ')' ':' inner_statement_list new_elseif_list new_else_single T_ENDIF ';' (183) expr_without_variable : expr . T_BOOLEAN_OR expr (184) expr_without_variable : expr . T_BOOLEAN_AND expr (185) expr_without_variable : expr . T_LOGICAL_OR expr @@ -10961,6 +10959,8 @@ state 144 (211) expr_without_variable : expr . T_INSTANCEOF class_name_reference (213) expr_without_variable : expr . '?' expr ':' expr (214) expr_without_variable : expr . '?' ':' expr + (31) statement : T_IF '(' expr . ')' statement elseif_list else_single + (32) statement : T_IF '(' expr . ')' ':' inner_statement_list new_elseif_list new_else_single T_ENDIF ';' T_LOGICAL_OR shift 84 T_LOGICAL_XOR shift 85 @@ -10992,7 +10992,6 @@ state 144 . error state 145 - (33) statement : T_WHILE '(' expr . ')' while_statement (183) expr_without_variable : expr . T_BOOLEAN_OR expr (184) expr_without_variable : expr . T_BOOLEAN_AND expr (185) expr_without_variable : expr . T_LOGICAL_OR expr @@ -11020,6 +11019,7 @@ state 145 (211) expr_without_variable : expr . T_INSTANCEOF class_name_reference (213) expr_without_variable : expr . '?' expr ':' expr (214) expr_without_variable : expr . '?' ':' expr + (33) statement : T_WHILE '(' expr . ')' while_statement T_LOGICAL_OR shift 84 T_LOGICAL_XOR shift 85 @@ -11051,9 +11051,6 @@ state 145 . error state 146 - (50) statement : T_FOREACH '(' expr . T_AS variable ')' foreach_statement - (51) statement : T_FOREACH '(' expr . T_AS '&' variable ')' foreach_statement - (52) statement : T_FOREACH '(' expr . T_AS variable T_DOUBLE_ARROW optional_ref variable ')' foreach_statement (183) expr_without_variable : expr . T_BOOLEAN_OR expr (184) expr_without_variable : expr . T_BOOLEAN_AND expr (185) expr_without_variable : expr . T_LOGICAL_OR expr @@ -11081,6 +11078,9 @@ state 146 (211) expr_without_variable : expr . T_INSTANCEOF class_name_reference (213) expr_without_variable : expr . '?' expr ':' expr (214) expr_without_variable : expr . '?' ':' expr + (50) statement : T_FOREACH '(' expr . T_AS variable ')' foreach_statement + (51) statement : T_FOREACH '(' expr . T_AS '&' variable ')' foreach_statement + (52) statement : T_FOREACH '(' expr . T_AS variable T_DOUBLE_ARROW optional_ref variable ')' foreach_statement T_LOGICAL_OR shift 84 T_LOGICAL_XOR shift 85 @@ -11112,7 +11112,6 @@ state 146 . error state 147 - (36) statement : T_SWITCH '(' expr . ')' switch_case_list (183) expr_without_variable : expr . T_BOOLEAN_OR expr (184) expr_without_variable : expr . T_BOOLEAN_AND expr (185) expr_without_variable : expr . T_LOGICAL_OR expr @@ -11140,6 +11139,7 @@ state 147 (211) expr_without_variable : expr . T_INSTANCEOF class_name_reference (213) expr_without_variable : expr . '?' expr ':' expr (214) expr_without_variable : expr . '?' ':' expr + (36) statement : T_SWITCH '(' expr . ')' switch_case_list T_LOGICAL_OR shift 84 T_LOGICAL_XOR shift 85 @@ -11763,7 +11763,6 @@ state 157 . error state 158 - (34) statement : T_DO statement T_WHILE '(' expr . ')' ';' (183) expr_without_variable : expr . T_BOOLEAN_OR expr (184) expr_without_variable : expr . T_BOOLEAN_AND expr (185) expr_without_variable : expr . T_LOGICAL_OR expr @@ -11791,6 +11790,7 @@ state 158 (211) expr_without_variable : expr . T_INSTANCEOF class_name_reference (213) expr_without_variable : expr . '?' expr ':' expr (214) expr_without_variable : expr . '?' ':' expr + (34) statement : T_DO statement T_WHILE '(' expr . ')' ';' T_LOGICAL_OR shift 84 T_LOGICAL_XOR shift 85 @@ -12061,7 +12061,6 @@ state 162 . error state 163 - (100) elseif_list : elseif_list T_ELSEIF '(' expr . ')' statement (183) expr_without_variable : expr . T_BOOLEAN_OR expr (184) expr_without_variable : expr . T_BOOLEAN_AND expr (185) expr_without_variable : expr . T_LOGICAL_OR expr @@ -12089,6 +12088,7 @@ state 163 (211) expr_without_variable : expr . T_INSTANCEOF class_name_reference (213) expr_without_variable : expr . '?' expr ':' expr (214) expr_without_variable : expr . '?' ':' expr + (100) elseif_list : elseif_list T_ELSEIF '(' expr . ')' statement T_LOGICAL_OR shift 84 T_LOGICAL_XOR shift 85 @@ -12120,7 +12120,6 @@ state 163 . error state 164 - (102) new_elseif_list : new_elseif_list T_ELSEIF '(' expr . ')' ':' inner_statement_list (183) expr_without_variable : expr . T_BOOLEAN_OR expr (184) expr_without_variable : expr . T_BOOLEAN_AND expr (185) expr_without_variable : expr . T_LOGICAL_OR expr @@ -12148,6 +12147,7 @@ state 164 (211) expr_without_variable : expr . T_INSTANCEOF class_name_reference (213) expr_without_variable : expr . '?' expr ':' expr (214) expr_without_variable : expr . '?' ':' expr + (102) new_elseif_list : new_elseif_list T_ELSEIF '(' expr . ')' ':' inner_statement_list T_LOGICAL_OR shift 84 T_LOGICAL_XOR shift 85 @@ -14864,7 +14864,6 @@ state 222 . reduce (300) state 223 - (43) statement : T_RETURN variable . ';' (163) expr_without_variable : variable . '=' expr (164) expr_without_variable : variable . '=' '&' variable (165) expr_without_variable : variable . '=' '&' T_NEW class_name_reference ctor_arguments @@ -14884,6 +14883,7 @@ state 223 (300) expr : variable . (307) object_access : variable . T_OBJECT_OPERATOR object_property '(' function_call_argument_list ')' (308) object_access_arrayable : variable . T_OBJECT_OPERATOR object_property + (43) statement : T_RETURN variable . ';' '=' shift 44 T_PLUS_EQUAL shift 108 @@ -15122,8 +15122,8 @@ state 228 . reduce (210) state 229 - (68) class_declaration_statement : T_INTERFACE T_STRING interface_extends_list '{' class_statement_list . '}' (133) class_statement_list : class_statement_list . class_statement + (68) class_declaration_statement : T_INTERFACE T_STRING interface_extends_list '{' class_statement_list . '}' (142) method_modifiers : . T_CONST shift 495 @@ -15144,8 +15144,8 @@ state 229 . reduce (142) state 230 - (67) class_declaration_statement : class_entry_type T_STRING extends_from implements_list '{' class_statement_list . '}' (133) class_statement_list : class_statement_list . class_statement + (67) class_declaration_statement : class_entry_type T_STRING extends_from implements_list '{' class_statement_list . '}' (142) method_modifiers : . T_CONST shift 495 @@ -16189,10 +16189,10 @@ state 279 . error state 280 + (249) name : T_NAMESPACE . T_NS_SEPARATOR namespace_name (11) top_statement : T_NAMESPACE . namespace_name ';' (12) top_statement : T_NAMESPACE . namespace_name '{' top_statement_list '}' (13) top_statement : T_NAMESPACE . '{' top_statement_list '}' - (249) name : T_NAMESPACE . T_NS_SEPARATOR namespace_name T_STRING shift 582 and reduce (5) T_NS_SEPARATOR shift 346 @@ -16412,10 +16412,10 @@ state 298 . reduce (315) state 299 - (50) statement : T_FOREACH '(' expr T_AS variable . ')' foreach_statement - (52) statement : T_FOREACH '(' expr T_AS variable . T_DOUBLE_ARROW optional_ref variable ')' foreach_statement (307) object_access : variable . T_OBJECT_OPERATOR object_property '(' function_call_argument_list ')' (308) object_access_arrayable : variable . T_OBJECT_OPERATOR object_property + (50) statement : T_FOREACH '(' expr T_AS variable . ')' foreach_statement + (52) statement : T_FOREACH '(' expr T_AS variable . T_DOUBLE_ARROW optional_ref variable ')' foreach_statement T_OBJECT_OPERATOR shift 266 T_DOUBLE_ARROW shift 365 @@ -16581,16 +16581,16 @@ state 316 . reduce (316) state 317 - (46) statement : T_ECHO expr_list . ';' (158) expr_list : expr_list . ',' expr + (46) statement : T_ECHO expr_list . ';' ',' shift 123 ';' shift 619 and reduce (46) . error state 318 - (66) function_declaration_statement : T_FUNCTION optional_ref . T_STRING '(' parameter_list ')' '{' inner_statement_list '}' (235) expr_without_variable : T_FUNCTION optional_ref . '(' parameter_list ')' lexical_vars '{' inner_statement_list '}' + (66) function_declaration_statement : T_FUNCTION optional_ref . T_STRING '(' parameter_list ')' '{' inner_statement_list '}' T_STRING shift 421 '(' shift 258 @@ -16605,17 +16605,17 @@ state 319 . error state 320 - (44) statement : T_GLOBAL global_var_list . ';' (124) global_var_list : global_var_list . ',' global_var + (44) statement : T_GLOBAL global_var_list . ';' ',' shift 307 ';' shift 627 and reduce (44) . error state 321 - (45) statement : T_STATIC static_var_list . ';' (129) static_var_list : static_var_list . ',' T_VARIABLE (130) static_var_list : static_var_list . ',' T_VARIABLE '=' static_scalar + (45) statement : T_STATIC static_var_list . ';' ',' shift 425 ';' shift 628 and reduce (45) @@ -16674,8 +16674,8 @@ state 327 . error state 328 - (63) variables_list : variables_list . ',' variable (215) expr_without_variable : T_ISSET '(' variables_list . ')' + (63) variables_list : variables_list . ',' variable ',' shift 248 ')' shift 662 and reduce (215) @@ -16769,9 +16769,9 @@ state 338 . reduce (301) state 339 - (51) statement : T_FOREACH '(' expr T_AS '&' variable . ')' foreach_statement (307) object_access : variable . T_OBJECT_OPERATOR object_property '(' function_call_argument_list ')' (308) object_access_arrayable : variable . T_OBJECT_OPERATOR object_property + (51) statement : T_FOREACH '(' expr T_AS '&' variable . ')' foreach_statement T_OBJECT_OPERATOR shift 266 ')' shift 22 @@ -16795,9 +16795,9 @@ state 341 . error state 342 - (52) statement : T_FOREACH '(' expr T_AS variable T_DOUBLE_ARROW optional_ref variable . ')' foreach_statement (307) object_access : variable . T_OBJECT_OPERATOR object_property '(' function_call_argument_list ')' (308) object_access_arrayable : variable . T_OBJECT_OPERATOR object_property + (52) statement : T_FOREACH '(' expr T_AS variable T_DOUBLE_ARROW optional_ref variable . ')' foreach_statement T_OBJECT_OPERATOR shift 266 ')' shift 24 @@ -16862,8 +16862,8 @@ state 349 . reduce (260) state 350 - (66) function_declaration_statement : T_FUNCTION . optional_ref T_STRING '(' parameter_list ')' '{' inner_statement_list '}' (235) expr_without_variable : T_FUNCTION . optional_ref '(' parameter_list ')' lexical_vars '{' inner_statement_list '}' + (66) function_declaration_statement : T_FUNCTION . optional_ref T_STRING '(' parameter_list ')' '{' inner_statement_list '}' (64) optional_ref : . '&' shift 603 and reduce (65) @@ -16871,8 +16871,8 @@ state 350 . reduce (64) state 351 - (45) statement : T_STATIC . static_var_list ';' (246) class_name : T_STATIC . + (45) statement : T_STATIC . static_var_list ';' T_VARIABLE shift 409 static_var_list goto 321 @@ -17303,8 +17303,8 @@ state 406 . error state 407 - (42) statement : T_RETURN expr_without_variable . ';' (301) expr : expr_without_variable . + (42) statement : T_RETURN expr_without_variable . ';' ';' shift 623 and reduce (42) . reduce (301) @@ -17426,9 +17426,9 @@ state 425 . error state 426 - (62) variables_list : variable . (307) object_access : variable . T_OBJECT_OPERATOR object_property '(' function_call_argument_list ')' (308) object_access_arrayable : variable . T_OBJECT_OPERATOR object_property + (62) variables_list : variable . T_OBJECT_OPERATOR shift 266 . reduce (62) @@ -17714,9 +17714,9 @@ state 457 . error state 458 - (107) parameter_list : non_empty_parameter_list . (111) non_empty_parameter_list : non_empty_parameter_list . ',' optional_class_type optional_ref T_VARIABLE (112) non_empty_parameter_list : non_empty_parameter_list . ',' optional_class_type optional_ref T_VARIABLE '=' static_scalar + (107) parameter_list : non_empty_parameter_list . ',' shift 264 . reduce (107) @@ -17858,9 +17858,9 @@ state 479 . error state 480 - (63) variables_list : variables_list ',' variable . (307) object_access : variable . T_OBJECT_OPERATOR object_property '(' function_call_argument_list ')' (308) object_access_arrayable : variable . T_OBJECT_OPERATOR object_property + (63) variables_list : variables_list ',' variable . T_OBJECT_OPERATOR shift 266 . reduce (63) diff --git a/lib/Parser.php b/lib/Parser.php index 819bb15e..5d61138a 100644 --- a/lib/Parser.php +++ b/lib/Parser.php @@ -151,9 +151,6 @@ class Parser protected $yysp; protected $yyaccept; - /** Debug mode flag **/ - public $yydebug = true; - private static $yyterminals = array( '$EOF', "error", @@ -303,368 +300,6 @@ class Parser , "???" ); - private static $yyproduction = array( - '$start : start', - "start : top_statement_list", - "top_statement_list : top_statement_list top_statement", - "top_statement_list : /* empty */", - "namespace_name : namespace_name_sub", - "namespace_name_sub : T_STRING", - "namespace_name_sub : namespace_name_sub T_NS_SEPARATOR T_STRING", - "top_statement : statement", - "top_statement : function_declaration_statement", - "top_statement : class_declaration_statement", - "top_statement : T_HALT_COMPILER '(' ')' ';'", - "top_statement : T_NAMESPACE namespace_name ';'", - "top_statement : T_NAMESPACE namespace_name '{' top_statement_list '}'", - "top_statement : T_NAMESPACE '{' top_statement_list '}'", - "top_statement : T_USE use_declarations ';'", - "top_statement : constant_declaration ';'", - "use_declarations : use_declarations ',' use_declaration", - "use_declarations : use_declaration", - "use_declaration : namespace_name", - "use_declaration : namespace_name T_AS T_STRING", - "use_declaration : T_NS_SEPARATOR namespace_name", - "use_declaration : T_NS_SEPARATOR namespace_name T_AS T_STRING", - "constant_declaration : constant_declaration ',' T_STRING '=' static_scalar", - "constant_declaration : T_CONST T_STRING '=' static_scalar", - "inner_statement_list : inner_statement_list inner_statement", - "inner_statement_list : /* empty */", - "inner_statement : statement", - "inner_statement : function_declaration_statement", - "inner_statement : class_declaration_statement", - "inner_statement : T_HALT_COMPILER '(' ')' ';'", - "statement : '{' inner_statement_list '}'", - "statement : T_IF '(' expr ')' statement elseif_list else_single", - "statement : T_IF '(' expr ')' ':' inner_statement_list new_elseif_list new_else_single T_ENDIF ';'", - "statement : T_WHILE '(' expr ')' while_statement", - "statement : T_DO statement T_WHILE '(' expr ')' ';'", - "statement : T_FOR '(' for_expr ';' for_expr ';' for_expr ')' for_statement", - "statement : T_SWITCH '(' expr ')' switch_case_list", - "statement : T_BREAK ';'", - "statement : T_BREAK expr ';'", - "statement : T_CONTINUE ';'", - "statement : T_CONTINUE expr ';'", - "statement : T_RETURN ';'", - "statement : T_RETURN expr_without_variable ';'", - "statement : T_RETURN variable ';'", - "statement : T_GLOBAL global_var_list ';'", - "statement : T_STATIC static_var_list ';'", - "statement : T_ECHO expr_list ';'", - "statement : T_INLINE_HTML", - "statement : expr ';'", - "statement : T_UNSET '(' variables_list ')' ';'", - "statement : T_FOREACH '(' expr T_AS variable ')' foreach_statement", - "statement : T_FOREACH '(' expr T_AS '&' variable ')' foreach_statement", - "statement : T_FOREACH '(' expr T_AS variable T_DOUBLE_ARROW optional_ref variable ')' foreach_statement", - "statement : T_DECLARE '(' declare_list ')' declare_statement", - "statement : ';'", - "statement : T_TRY '{' inner_statement_list '}' catches", - "statement : T_THROW expr ';'", - "statement : T_GOTO T_STRING ';'", - "statement : T_STRING ':'", - "catches : catch", - "catches : catches catch", - "catch : T_CATCH '(' name T_VARIABLE ')' '{' inner_statement_list '}'", - "variables_list : variable", - "variables_list : variables_list ',' variable", - "optional_ref : /* empty */", - "optional_ref : '&'", - "function_declaration_statement : T_FUNCTION optional_ref T_STRING '(' parameter_list ')' '{' inner_statement_list '}'", - "class_declaration_statement : class_entry_type T_STRING extends_from implements_list '{' class_statement_list '}'", - "class_declaration_statement : T_INTERFACE T_STRING interface_extends_list '{' class_statement_list '}'", - "class_entry_type : T_CLASS", - "class_entry_type : T_ABSTRACT T_CLASS", - "class_entry_type : T_FINAL T_CLASS", - "extends_from : /* empty */", - "extends_from : T_EXTENDS name", - "interface_extends_list : /* empty */", - "interface_extends_list : T_EXTENDS interface_list", - "implements_list : /* empty */", - "implements_list : T_IMPLEMENTS interface_list", - "interface_list : name", - "interface_list : interface_list ',' name", - "for_statement : statement", - "for_statement : ':' inner_statement_list T_ENDFOR ';'", - "foreach_statement : statement", - "foreach_statement : ':' inner_statement_list T_ENDFOREACH ';'", - "declare_statement : statement", - "declare_statement : ':' inner_statement_list T_ENDDECLARE ';'", - "declare_list : T_STRING '=' static_scalar", - "declare_list : declare_list ',' T_STRING '=' static_scalar", - "switch_case_list : '{' case_list '}'", - "switch_case_list : '{' ';' case_list '}'", - "switch_case_list : ':' case_list T_ENDSWITCH ';'", - "switch_case_list : ':' ';' case_list T_ENDSWITCH ';'", - "case_list : /* empty */", - "case_list : case_list T_CASE expr case_separator inner_statement_list", - "case_list : case_list T_DEFAULT case_separator inner_statement_list", - "case_separator : ':'", - "case_separator : ';'", - "while_statement : statement", - "while_statement : ':' inner_statement_list T_ENDWHILE ';'", - "elseif_list : /* empty */", - "elseif_list : elseif_list T_ELSEIF '(' expr ')' statement", - "new_elseif_list : /* empty */", - "new_elseif_list : new_elseif_list T_ELSEIF '(' expr ')' ':' inner_statement_list", - "else_single : /* empty */", - "else_single : T_ELSE statement", - "new_else_single : /* empty */", - "new_else_single : T_ELSE ':' inner_statement_list", - "parameter_list : non_empty_parameter_list", - "parameter_list : /* empty */", - "non_empty_parameter_list : optional_class_type optional_ref T_VARIABLE", - "non_empty_parameter_list : optional_class_type optional_ref T_VARIABLE '=' static_scalar", - "non_empty_parameter_list : non_empty_parameter_list ',' optional_class_type optional_ref T_VARIABLE", - "non_empty_parameter_list : non_empty_parameter_list ',' optional_class_type optional_ref T_VARIABLE '=' static_scalar", - "optional_class_type : /* empty */", - "optional_class_type : name", - "optional_class_type : T_ARRAY", - "function_call_argument_list : non_empty_function_call_argument_list", - "function_call_argument_list : /* empty */", - "non_empty_function_call_argument_list : expr_without_variable", - "non_empty_function_call_argument_list : variable", - "non_empty_function_call_argument_list : '&' variable", - "non_empty_function_call_argument_list : non_empty_function_call_argument_list ',' expr_without_variable", - "non_empty_function_call_argument_list : non_empty_function_call_argument_list ',' variable", - "non_empty_function_call_argument_list : non_empty_function_call_argument_list ',' '&' variable", - "global_var_list : global_var_list ',' global_var", - "global_var_list : global_var", - "global_var : T_VARIABLE", - "global_var : '$' variable", - "global_var : '$' '{' expr '}'", - "static_var_list : static_var_list ',' T_VARIABLE", - "static_var_list : static_var_list ',' T_VARIABLE '=' static_scalar", - "static_var_list : T_VARIABLE", - "static_var_list : T_VARIABLE '=' static_scalar", - "class_statement_list : class_statement_list class_statement", - "class_statement_list : /* empty */", - "class_statement : variable_modifiers class_variable_declaration ';'", - "class_statement : class_constant_declaration ';'", - "class_statement : method_modifiers T_FUNCTION optional_ref T_STRING '(' parameter_list ')' method_body", - "method_body : ';'", - "method_body : '{' inner_statement_list '}'", - "variable_modifiers : non_empty_member_modifiers", - "variable_modifiers : T_VAR", - "method_modifiers : /* empty */", - "method_modifiers : non_empty_member_modifiers", - "non_empty_member_modifiers : member_modifier", - "non_empty_member_modifiers : non_empty_member_modifiers member_modifier", - "member_modifier : T_PUBLIC", - "member_modifier : T_PROTECTED", - "member_modifier : T_PRIVATE", - "member_modifier : T_STATIC", - "member_modifier : T_ABSTRACT", - "member_modifier : T_FINAL", - "class_variable_declaration : class_variable_declaration ',' T_VARIABLE", - "class_variable_declaration : class_variable_declaration ',' T_VARIABLE '=' static_scalar", - "class_variable_declaration : T_VARIABLE", - "class_variable_declaration : T_VARIABLE '=' static_scalar", - "class_constant_declaration : class_constant_declaration ',' T_STRING '=' static_scalar", - "class_constant_declaration : T_CONST T_STRING '=' static_scalar", - "expr_list : expr_list ',' expr", - "expr_list : expr", - "for_expr : /* empty */", - "for_expr : expr_list", - "expr_without_variable : T_LIST '(' assignment_list ')' '=' expr", - "expr_without_variable : variable '=' expr", - "expr_without_variable : variable '=' '&' variable", - "expr_without_variable : variable '=' '&' T_NEW class_name_reference ctor_arguments", - "expr_without_variable : T_NEW class_name_reference ctor_arguments", - "expr_without_variable : T_CLONE expr", - "expr_without_variable : variable T_PLUS_EQUAL expr", - "expr_without_variable : variable T_MINUS_EQUAL expr", - "expr_without_variable : variable T_MUL_EQUAL expr", - "expr_without_variable : variable T_DIV_EQUAL expr", - "expr_without_variable : variable T_CONCAT_EQUAL expr", - "expr_without_variable : variable T_MOD_EQUAL expr", - "expr_without_variable : variable T_AND_EQUAL expr", - "expr_without_variable : variable T_OR_EQUAL expr", - "expr_without_variable : variable T_XOR_EQUAL expr", - "expr_without_variable : variable T_SL_EQUAL expr", - "expr_without_variable : variable T_SR_EQUAL expr", - "expr_without_variable : variable T_INC", - "expr_without_variable : T_INC variable", - "expr_without_variable : variable T_DEC", - "expr_without_variable : T_DEC variable", - "expr_without_variable : expr T_BOOLEAN_OR expr", - "expr_without_variable : expr T_BOOLEAN_AND expr", - "expr_without_variable : expr T_LOGICAL_OR expr", - "expr_without_variable : expr T_LOGICAL_AND expr", - "expr_without_variable : expr T_LOGICAL_XOR expr", - "expr_without_variable : expr '|' expr", - "expr_without_variable : expr '&' expr", - "expr_without_variable : expr '^' expr", - "expr_without_variable : expr '.' expr", - "expr_without_variable : expr '+' expr", - "expr_without_variable : expr '-' expr", - "expr_without_variable : expr '*' expr", - "expr_without_variable : expr '/' expr", - "expr_without_variable : expr '%' expr", - "expr_without_variable : expr T_SL expr", - "expr_without_variable : expr T_SR expr", - "expr_without_variable : '+' expr", - "expr_without_variable : '-' expr", - "expr_without_variable : '!' expr", - "expr_without_variable : '~' expr", - "expr_without_variable : expr T_IS_IDENTICAL expr", - "expr_without_variable : expr T_IS_NOT_IDENTICAL expr", - "expr_without_variable : expr T_IS_EQUAL expr", - "expr_without_variable : expr T_IS_NOT_EQUAL expr", - "expr_without_variable : expr '<' expr", - "expr_without_variable : expr T_IS_SMALLER_OR_EQUAL expr", - "expr_without_variable : expr '>' expr", - "expr_without_variable : expr T_IS_GREATER_OR_EQUAL expr", - "expr_without_variable : expr T_INSTANCEOF class_name_reference", - "expr_without_variable : '(' expr ')'", - "expr_without_variable : expr '?' expr ':' expr", - "expr_without_variable : expr '?' ':' expr", - "expr_without_variable : T_ISSET '(' variables_list ')'", - "expr_without_variable : T_EMPTY '(' variable ')'", - "expr_without_variable : T_INCLUDE expr", - "expr_without_variable : T_INCLUDE_ONCE expr", - "expr_without_variable : T_EVAL '(' expr ')'", - "expr_without_variable : T_REQUIRE expr", - "expr_without_variable : T_REQUIRE_ONCE expr", - "expr_without_variable : T_INT_CAST expr", - "expr_without_variable : T_DOUBLE_CAST expr", - "expr_without_variable : T_STRING_CAST expr", - "expr_without_variable : T_ARRAY_CAST expr", - "expr_without_variable : T_OBJECT_CAST expr", - "expr_without_variable : T_BOOL_CAST expr", - "expr_without_variable : T_UNSET_CAST expr", - "expr_without_variable : T_EXIT exit_expr", - "expr_without_variable : '@' expr", - "expr_without_variable : scalar", - "expr_without_variable : T_ARRAY '(' array_pair_list ')'", - "expr_without_variable : '`' backticks_expr '`'", - "expr_without_variable : T_PRINT expr", - "expr_without_variable : T_FUNCTION optional_ref '(' parameter_list ')' lexical_vars '{' inner_statement_list '}'", - "lexical_vars : /* empty */", - "lexical_vars : T_USE '(' lexical_var_list ')'", - "lexical_var_list : lexical_var_list ',' optional_ref T_VARIABLE", - "lexical_var_list : optional_ref T_VARIABLE", - "function_call : name '(' function_call_argument_list ')'", - "function_call : class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' function_call_argument_list ')'", - "function_call : class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' function_call_argument_list ')'", - "function_call : reference_variable T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' function_call_argument_list ')'", - "function_call : reference_variable T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' function_call_argument_list ')'", - "function_call : variable_without_objects '(' function_call_argument_list ')'", - "class_name : T_STATIC", - "class_name : name", - "name : namespace_name", - "name : T_NAMESPACE T_NS_SEPARATOR namespace_name", - "name : T_NS_SEPARATOR namespace_name", - "class_name_reference : class_name", - "class_name_reference : dynamic_class_name_reference", - "dynamic_class_name_reference : object_access_for_dcnr", - "dynamic_class_name_reference : base_variable", - "object_access_for_dcnr : /* empty */", - "object_access_for_dcnr : base_variable T_OBJECT_OPERATOR object_property", - "object_access_for_dcnr : object_access_for_dcnr T_OBJECT_OPERATOR object_property", - "object_access_for_dcnr : object_access_for_dcnr '[' dim_offset ']'", - "object_access_for_dcnr : object_access_for_dcnr '{' expr '}'", - "exit_expr : /* empty */", - "exit_expr : '(' ')'", - "exit_expr : '(' expr ')'", - "backticks_expr : /* empty */", - "backticks_expr : T_ENCAPSED_AND_WHITESPACE", - "backticks_expr : encaps_list", - "ctor_arguments : /* empty */", - "ctor_arguments : '(' function_call_argument_list ')'", - "common_scalar : T_LNUMBER", - "common_scalar : T_DNUMBER", - "common_scalar : T_CONSTANT_ENCAPSED_STRING", - "common_scalar : T_LINE", - "common_scalar : T_FILE", - "common_scalar : T_DIR", - "common_scalar : T_CLASS_C", - "common_scalar : T_METHOD_C", - "common_scalar : T_FUNC_C", - "common_scalar : T_NS_C", - "common_scalar : T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC", - "common_scalar : T_START_HEREDOC T_END_HEREDOC", - "static_scalar : common_scalar", - "static_scalar : name", - "static_scalar : '+' static_scalar", - "static_scalar : '-' static_scalar", - "static_scalar : T_ARRAY '(' static_array_pair_list ')'", - "static_scalar : class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING", - "scalar : T_STRING_VARNAME", - "scalar : class_constant", - "scalar : name", - "scalar : common_scalar", - "scalar : '\"' encaps_list '\"'", - "scalar : T_START_HEREDOC encaps_list T_END_HEREDOC", - "static_array_pair_list : /* empty */", - "static_array_pair_list : non_empty_static_array_pair_list optional_comma", - "optional_comma : /* empty */", - "optional_comma : ','", - "non_empty_static_array_pair_list : non_empty_static_array_pair_list ',' static_scalar T_DOUBLE_ARROW static_scalar", - "non_empty_static_array_pair_list : non_empty_static_array_pair_list ',' static_scalar", - "non_empty_static_array_pair_list : static_scalar T_DOUBLE_ARROW static_scalar", - "non_empty_static_array_pair_list : static_scalar", - "expr : variable", - "expr : expr_without_variable", - "variable : object_access", - "variable : base_variable", - "variable : function_call", - "object_access : object_access_arrayable", - "object_access : object_access_arrayable '(' function_call_argument_list ')'", - "object_access : variable T_OBJECT_OPERATOR object_property '(' function_call_argument_list ')'", - "object_access_arrayable : variable T_OBJECT_OPERATOR object_property", - "object_access_arrayable : object_access_arrayable '[' dim_offset ']'", - "object_access_arrayable : object_access_arrayable '{' expr '}'", - "variable_without_objects : reference_variable", - "variable_without_objects : '$' reference_variable", - "base_variable : variable_without_objects", - "base_variable : class_name T_PAAMAYIM_NEKUDOTAYIM '$' reference_variable", - "base_variable : reference_variable T_PAAMAYIM_NEKUDOTAYIM '$' reference_variable", - "base_variable : static_property_with_arrays", - "static_property_with_arrays : class_name T_PAAMAYIM_NEKUDOTAYIM T_VARIABLE", - "static_property_with_arrays : reference_variable T_PAAMAYIM_NEKUDOTAYIM '$' '{' expr '}'", - "static_property_with_arrays : static_property_with_arrays '[' dim_offset ']'", - "static_property_with_arrays : static_property_with_arrays '{' expr '}'", - "reference_variable : reference_variable '[' dim_offset ']'", - "reference_variable : reference_variable '{' expr '}'", - "reference_variable : T_VARIABLE", - "reference_variable : '$' '{' expr '}'", - "dim_offset : /* empty */", - "dim_offset : expr", - "object_property : T_STRING", - "object_property : '{' expr '}'", - "object_property : variable_without_objects", - "assignment_list : assignment_list ',' assignment_list_element", - "assignment_list : assignment_list_element", - "assignment_list_element : variable", - "assignment_list_element : T_LIST '(' assignment_list ')'", - "assignment_list_element : /* empty */", - "array_pair_list : /* empty */", - "array_pair_list : non_empty_array_pair_list optional_comma", - "non_empty_array_pair_list : non_empty_array_pair_list ',' expr T_DOUBLE_ARROW expr", - "non_empty_array_pair_list : non_empty_array_pair_list ',' expr", - "non_empty_array_pair_list : expr T_DOUBLE_ARROW expr", - "non_empty_array_pair_list : expr", - "non_empty_array_pair_list : non_empty_array_pair_list ',' expr T_DOUBLE_ARROW '&' variable", - "non_empty_array_pair_list : non_empty_array_pair_list ',' '&' variable", - "non_empty_array_pair_list : expr T_DOUBLE_ARROW '&' variable", - "non_empty_array_pair_list : '&' variable", - "encaps_list : encaps_list encaps_var", - "encaps_list : encaps_list T_ENCAPSED_AND_WHITESPACE", - "encaps_list : encaps_var", - "encaps_list : T_ENCAPSED_AND_WHITESPACE encaps_var", - "encaps_var : T_VARIABLE", - "encaps_var : T_VARIABLE '[' encaps_var_offset ']'", - "encaps_var : T_VARIABLE T_OBJECT_OPERATOR T_STRING", - "encaps_var : T_DOLLAR_OPEN_CURLY_BRACES expr '}'", - "encaps_var : T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}'", - "encaps_var : T_CURLY_OPEN variable '}'", - "encaps_var_offset : T_STRING", - "encaps_var_offset : T_NUM_STRING", - "encaps_var_offset : T_VARIABLE", - "class_constant : class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING", - "class_constant : reference_variable T_PAAMAYIM_NEKUDOTAYIM T_STRING" - ); private static $yytranslate = array( 0, 145, 145, 145, 145, 145, 145, 145, 145, 145, @@ -1286,43 +921,6 @@ class Parser ); } - /* Traditional Debug Mode */ - private function YYTRACE_NEWSTATE($state, $sym) { - if ($this->yydebug) { - $this->yyprintln('% State ' . $state . ', Lookahead ' - . ($sym < 0 ? '--none--' : self::$yyterminals[$sym])); - } - } - - private function YYTRACE_READ($sym) { - if ($this->yydebug) - $this->yyprintln('% Reading ' . self::$yyterminals[$sym]); - } - - private function YYTRACE_SHIFT($sym) { - if ($this->yydebug) - $this->yyprintln('% Shift ' . self::$yyterminals[$sym]); - } - - private function YYTRACE_ACCEPT() { - if ($this->yydebug) - $this->yyprintln('% Accepted.'); - } - - private function YYTRACE_REDUCE($n) { - if ($this->yydebug) - $this->yyprintln('% Reduce by (' . $n . ') ' . self::$yyproduction[$n]); - } - - private function YYTRACE_POP($state) { - if ($this->yydebug) - $this->yyprintln('% Recovering, uncovers state ' . $state); - } - - private function YYTRACE_DISCARD($sym) { - if ($this->yydebug) - $this->yyprintln('% Discard ' . self::$yyterminals[$sym]); - } /** * Parser entry point @@ -1343,7 +941,6 @@ class Parser $yyerrflag = 0; for (;;) { - $this->YYTRACE_NEWSTATE($yystate, $yychar); if (self::$yybase[$yystate] == 0) { $yyn = self::$yydefault[$yystate]; } else { @@ -1352,7 +949,6 @@ class Parser $yychar = 0; $yychar = $yychar < self::YYMAXLEX ? self::$yytranslate[$yychar] : self::YYBADCH; - $this->YYTRACE_READ($yychar); } if ((($yyn = self::$yybase[$yystate] + $yychar) >= 0 && $yyn < self::YYLAST && self::$yycheck[$yyn] == $yychar @@ -1371,7 +967,6 @@ class Parser */ if ($yyn > 0) { /* shift */ - $this->YYTRACE_SHIFT($yychar); ++$this->yysp; $yysstk[$this->yysp] = $yystate = $yyn; @@ -1397,11 +992,9 @@ class Parser /* reduce/error */ if ($yyn == 0) { /* accept */ - $this->YYTRACE_ACCEPT(); return $this->yyval; } elseif ($yyn != self::YYUNEXPECTED) { /* reduce */ - $this->YYTRACE_REDUCE($yyn); $this->{'yyn' . $yyn}(); /* Goto - shift nonterminal */ @@ -1439,15 +1032,12 @@ class Parser return false; } $yystate = $yysstk[--$this->yysp]; - $this->YYTRACE_POP($yystate); } $yyn = self::$yyaction[$yyn]; - $this->YYTRACE_SHIFT(self::YYINTERRTOK); $yysstk[++$this->yysp] = $yystate = $yyn; break; case 3: - $this->YYTRACE_DISCARD($yychar); if ($yychar == 0) { return false; } diff --git a/lib/ParserDebug.php b/lib/ParserDebug.php new file mode 100644 index 00000000..07f4336b --- /dev/null +++ b/lib/ParserDebug.php @@ -0,0 +1,2895 @@ +'", + "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_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_THROW", + "T_USE", + "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_INTERFACE", + "T_EXTENDS", + "T_IMPLEMENTS", + "T_OBJECT_OPERATOR", + "T_DOUBLE_ARROW", + "T_LIST", + "T_ARRAY", + "T_CLASS_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", + "'('", + "')'", + "';'", + "'{'", + "'}'", + "'$'", + "'`'", + "']'", + "'\"'" + , "???" + ); + + private static $yyproduction = array( + '$start : start', + "start : top_statement_list", + "top_statement_list : top_statement_list top_statement", + "top_statement_list : /* empty */", + "namespace_name : namespace_name_sub", + "namespace_name_sub : T_STRING", + "namespace_name_sub : namespace_name_sub T_NS_SEPARATOR T_STRING", + "top_statement : statement", + "top_statement : function_declaration_statement", + "top_statement : class_declaration_statement", + "top_statement : T_HALT_COMPILER '(' ')' ';'", + "top_statement : T_NAMESPACE namespace_name ';'", + "top_statement : T_NAMESPACE namespace_name '{' top_statement_list '}'", + "top_statement : T_NAMESPACE '{' top_statement_list '}'", + "top_statement : T_USE use_declarations ';'", + "top_statement : constant_declaration ';'", + "use_declarations : use_declarations ',' use_declaration", + "use_declarations : use_declaration", + "use_declaration : namespace_name", + "use_declaration : namespace_name T_AS T_STRING", + "use_declaration : T_NS_SEPARATOR namespace_name", + "use_declaration : T_NS_SEPARATOR namespace_name T_AS T_STRING", + "constant_declaration : constant_declaration ',' T_STRING '=' static_scalar", + "constant_declaration : T_CONST T_STRING '=' static_scalar", + "inner_statement_list : inner_statement_list inner_statement", + "inner_statement_list : /* empty */", + "inner_statement : statement", + "inner_statement : function_declaration_statement", + "inner_statement : class_declaration_statement", + "inner_statement : T_HALT_COMPILER '(' ')' ';'", + "statement : '{' inner_statement_list '}'", + "statement : T_IF '(' expr ')' statement elseif_list else_single", + "statement : T_IF '(' expr ')' ':' inner_statement_list new_elseif_list new_else_single T_ENDIF ';'", + "statement : T_WHILE '(' expr ')' while_statement", + "statement : T_DO statement T_WHILE '(' expr ')' ';'", + "statement : T_FOR '(' for_expr ';' for_expr ';' for_expr ')' for_statement", + "statement : T_SWITCH '(' expr ')' switch_case_list", + "statement : T_BREAK ';'", + "statement : T_BREAK expr ';'", + "statement : T_CONTINUE ';'", + "statement : T_CONTINUE expr ';'", + "statement : T_RETURN ';'", + "statement : T_RETURN expr_without_variable ';'", + "statement : T_RETURN variable ';'", + "statement : T_GLOBAL global_var_list ';'", + "statement : T_STATIC static_var_list ';'", + "statement : T_ECHO expr_list ';'", + "statement : T_INLINE_HTML", + "statement : expr ';'", + "statement : T_UNSET '(' variables_list ')' ';'", + "statement : T_FOREACH '(' expr T_AS variable ')' foreach_statement", + "statement : T_FOREACH '(' expr T_AS '&' variable ')' foreach_statement", + "statement : T_FOREACH '(' expr T_AS variable T_DOUBLE_ARROW optional_ref variable ')' foreach_statement", + "statement : T_DECLARE '(' declare_list ')' declare_statement", + "statement : ';'", + "statement : T_TRY '{' inner_statement_list '}' catches", + "statement : T_THROW expr ';'", + "statement : T_GOTO T_STRING ';'", + "statement : T_STRING ':'", + "catches : catch", + "catches : catches catch", + "catch : T_CATCH '(' name T_VARIABLE ')' '{' inner_statement_list '}'", + "variables_list : variable", + "variables_list : variables_list ',' variable", + "optional_ref : /* empty */", + "optional_ref : '&'", + "function_declaration_statement : T_FUNCTION optional_ref T_STRING '(' parameter_list ')' '{' inner_statement_list '}'", + "class_declaration_statement : class_entry_type T_STRING extends_from implements_list '{' class_statement_list '}'", + "class_declaration_statement : T_INTERFACE T_STRING interface_extends_list '{' class_statement_list '}'", + "class_entry_type : T_CLASS", + "class_entry_type : T_ABSTRACT T_CLASS", + "class_entry_type : T_FINAL T_CLASS", + "extends_from : /* empty */", + "extends_from : T_EXTENDS name", + "interface_extends_list : /* empty */", + "interface_extends_list : T_EXTENDS interface_list", + "implements_list : /* empty */", + "implements_list : T_IMPLEMENTS interface_list", + "interface_list : name", + "interface_list : interface_list ',' name", + "for_statement : statement", + "for_statement : ':' inner_statement_list T_ENDFOR ';'", + "foreach_statement : statement", + "foreach_statement : ':' inner_statement_list T_ENDFOREACH ';'", + "declare_statement : statement", + "declare_statement : ':' inner_statement_list T_ENDDECLARE ';'", + "declare_list : T_STRING '=' static_scalar", + "declare_list : declare_list ',' T_STRING '=' static_scalar", + "switch_case_list : '{' case_list '}'", + "switch_case_list : '{' ';' case_list '}'", + "switch_case_list : ':' case_list T_ENDSWITCH ';'", + "switch_case_list : ':' ';' case_list T_ENDSWITCH ';'", + "case_list : /* empty */", + "case_list : case_list T_CASE expr case_separator inner_statement_list", + "case_list : case_list T_DEFAULT case_separator inner_statement_list", + "case_separator : ':'", + "case_separator : ';'", + "while_statement : statement", + "while_statement : ':' inner_statement_list T_ENDWHILE ';'", + "elseif_list : /* empty */", + "elseif_list : elseif_list T_ELSEIF '(' expr ')' statement", + "new_elseif_list : /* empty */", + "new_elseif_list : new_elseif_list T_ELSEIF '(' expr ')' ':' inner_statement_list", + "else_single : /* empty */", + "else_single : T_ELSE statement", + "new_else_single : /* empty */", + "new_else_single : T_ELSE ':' inner_statement_list", + "parameter_list : non_empty_parameter_list", + "parameter_list : /* empty */", + "non_empty_parameter_list : optional_class_type optional_ref T_VARIABLE", + "non_empty_parameter_list : optional_class_type optional_ref T_VARIABLE '=' static_scalar", + "non_empty_parameter_list : non_empty_parameter_list ',' optional_class_type optional_ref T_VARIABLE", + "non_empty_parameter_list : non_empty_parameter_list ',' optional_class_type optional_ref T_VARIABLE '=' static_scalar", + "optional_class_type : /* empty */", + "optional_class_type : name", + "optional_class_type : T_ARRAY", + "function_call_argument_list : non_empty_function_call_argument_list", + "function_call_argument_list : /* empty */", + "non_empty_function_call_argument_list : expr_without_variable", + "non_empty_function_call_argument_list : variable", + "non_empty_function_call_argument_list : '&' variable", + "non_empty_function_call_argument_list : non_empty_function_call_argument_list ',' expr_without_variable", + "non_empty_function_call_argument_list : non_empty_function_call_argument_list ',' variable", + "non_empty_function_call_argument_list : non_empty_function_call_argument_list ',' '&' variable", + "global_var_list : global_var_list ',' global_var", + "global_var_list : global_var", + "global_var : T_VARIABLE", + "global_var : '$' variable", + "global_var : '$' '{' expr '}'", + "static_var_list : static_var_list ',' T_VARIABLE", + "static_var_list : static_var_list ',' T_VARIABLE '=' static_scalar", + "static_var_list : T_VARIABLE", + "static_var_list : T_VARIABLE '=' static_scalar", + "class_statement_list : class_statement_list class_statement", + "class_statement_list : /* empty */", + "class_statement : variable_modifiers class_variable_declaration ';'", + "class_statement : class_constant_declaration ';'", + "class_statement : method_modifiers T_FUNCTION optional_ref T_STRING '(' parameter_list ')' method_body", + "method_body : ';'", + "method_body : '{' inner_statement_list '}'", + "variable_modifiers : non_empty_member_modifiers", + "variable_modifiers : T_VAR", + "method_modifiers : /* empty */", + "method_modifiers : non_empty_member_modifiers", + "non_empty_member_modifiers : member_modifier", + "non_empty_member_modifiers : non_empty_member_modifiers member_modifier", + "member_modifier : T_PUBLIC", + "member_modifier : T_PROTECTED", + "member_modifier : T_PRIVATE", + "member_modifier : T_STATIC", + "member_modifier : T_ABSTRACT", + "member_modifier : T_FINAL", + "class_variable_declaration : class_variable_declaration ',' T_VARIABLE", + "class_variable_declaration : class_variable_declaration ',' T_VARIABLE '=' static_scalar", + "class_variable_declaration : T_VARIABLE", + "class_variable_declaration : T_VARIABLE '=' static_scalar", + "class_constant_declaration : class_constant_declaration ',' T_STRING '=' static_scalar", + "class_constant_declaration : T_CONST T_STRING '=' static_scalar", + "expr_list : expr_list ',' expr", + "expr_list : expr", + "for_expr : /* empty */", + "for_expr : expr_list", + "expr_without_variable : T_LIST '(' assignment_list ')' '=' expr", + "expr_without_variable : variable '=' expr", + "expr_without_variable : variable '=' '&' variable", + "expr_without_variable : variable '=' '&' T_NEW class_name_reference ctor_arguments", + "expr_without_variable : T_NEW class_name_reference ctor_arguments", + "expr_without_variable : T_CLONE expr", + "expr_without_variable : variable T_PLUS_EQUAL expr", + "expr_without_variable : variable T_MINUS_EQUAL expr", + "expr_without_variable : variable T_MUL_EQUAL expr", + "expr_without_variable : variable T_DIV_EQUAL expr", + "expr_without_variable : variable T_CONCAT_EQUAL expr", + "expr_without_variable : variable T_MOD_EQUAL expr", + "expr_without_variable : variable T_AND_EQUAL expr", + "expr_without_variable : variable T_OR_EQUAL expr", + "expr_without_variable : variable T_XOR_EQUAL expr", + "expr_without_variable : variable T_SL_EQUAL expr", + "expr_without_variable : variable T_SR_EQUAL expr", + "expr_without_variable : variable T_INC", + "expr_without_variable : T_INC variable", + "expr_without_variable : variable T_DEC", + "expr_without_variable : T_DEC variable", + "expr_without_variable : expr T_BOOLEAN_OR expr", + "expr_without_variable : expr T_BOOLEAN_AND expr", + "expr_without_variable : expr T_LOGICAL_OR expr", + "expr_without_variable : expr T_LOGICAL_AND expr", + "expr_without_variable : expr T_LOGICAL_XOR expr", + "expr_without_variable : expr '|' expr", + "expr_without_variable : expr '&' expr", + "expr_without_variable : expr '^' expr", + "expr_without_variable : expr '.' expr", + "expr_without_variable : expr '+' expr", + "expr_without_variable : expr '-' expr", + "expr_without_variable : expr '*' expr", + "expr_without_variable : expr '/' expr", + "expr_without_variable : expr '%' expr", + "expr_without_variable : expr T_SL expr", + "expr_without_variable : expr T_SR expr", + "expr_without_variable : '+' expr", + "expr_without_variable : '-' expr", + "expr_without_variable : '!' expr", + "expr_without_variable : '~' expr", + "expr_without_variable : expr T_IS_IDENTICAL expr", + "expr_without_variable : expr T_IS_NOT_IDENTICAL expr", + "expr_without_variable : expr T_IS_EQUAL expr", + "expr_without_variable : expr T_IS_NOT_EQUAL expr", + "expr_without_variable : expr '<' expr", + "expr_without_variable : expr T_IS_SMALLER_OR_EQUAL expr", + "expr_without_variable : expr '>' expr", + "expr_without_variable : expr T_IS_GREATER_OR_EQUAL expr", + "expr_without_variable : expr T_INSTANCEOF class_name_reference", + "expr_without_variable : '(' expr ')'", + "expr_without_variable : expr '?' expr ':' expr", + "expr_without_variable : expr '?' ':' expr", + "expr_without_variable : T_ISSET '(' variables_list ')'", + "expr_without_variable : T_EMPTY '(' variable ')'", + "expr_without_variable : T_INCLUDE expr", + "expr_without_variable : T_INCLUDE_ONCE expr", + "expr_without_variable : T_EVAL '(' expr ')'", + "expr_without_variable : T_REQUIRE expr", + "expr_without_variable : T_REQUIRE_ONCE expr", + "expr_without_variable : T_INT_CAST expr", + "expr_without_variable : T_DOUBLE_CAST expr", + "expr_without_variable : T_STRING_CAST expr", + "expr_without_variable : T_ARRAY_CAST expr", + "expr_without_variable : T_OBJECT_CAST expr", + "expr_without_variable : T_BOOL_CAST expr", + "expr_without_variable : T_UNSET_CAST expr", + "expr_without_variable : T_EXIT exit_expr", + "expr_without_variable : '@' expr", + "expr_without_variable : scalar", + "expr_without_variable : T_ARRAY '(' array_pair_list ')'", + "expr_without_variable : '`' backticks_expr '`'", + "expr_without_variable : T_PRINT expr", + "expr_without_variable : T_FUNCTION optional_ref '(' parameter_list ')' lexical_vars '{' inner_statement_list '}'", + "lexical_vars : /* empty */", + "lexical_vars : T_USE '(' lexical_var_list ')'", + "lexical_var_list : lexical_var_list ',' optional_ref T_VARIABLE", + "lexical_var_list : optional_ref T_VARIABLE", + "function_call : name '(' function_call_argument_list ')'", + "function_call : class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' function_call_argument_list ')'", + "function_call : class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' function_call_argument_list ')'", + "function_call : reference_variable T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' function_call_argument_list ')'", + "function_call : reference_variable T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' function_call_argument_list ')'", + "function_call : variable_without_objects '(' function_call_argument_list ')'", + "class_name : T_STATIC", + "class_name : name", + "name : namespace_name", + "name : T_NAMESPACE T_NS_SEPARATOR namespace_name", + "name : T_NS_SEPARATOR namespace_name", + "class_name_reference : class_name", + "class_name_reference : dynamic_class_name_reference", + "dynamic_class_name_reference : object_access_for_dcnr", + "dynamic_class_name_reference : base_variable", + "object_access_for_dcnr : /* empty */", + "object_access_for_dcnr : base_variable T_OBJECT_OPERATOR object_property", + "object_access_for_dcnr : object_access_for_dcnr T_OBJECT_OPERATOR object_property", + "object_access_for_dcnr : object_access_for_dcnr '[' dim_offset ']'", + "object_access_for_dcnr : object_access_for_dcnr '{' expr '}'", + "exit_expr : /* empty */", + "exit_expr : '(' ')'", + "exit_expr : '(' expr ')'", + "backticks_expr : /* empty */", + "backticks_expr : T_ENCAPSED_AND_WHITESPACE", + "backticks_expr : encaps_list", + "ctor_arguments : /* empty */", + "ctor_arguments : '(' function_call_argument_list ')'", + "common_scalar : T_LNUMBER", + "common_scalar : T_DNUMBER", + "common_scalar : T_CONSTANT_ENCAPSED_STRING", + "common_scalar : T_LINE", + "common_scalar : T_FILE", + "common_scalar : T_DIR", + "common_scalar : T_CLASS_C", + "common_scalar : T_METHOD_C", + "common_scalar : T_FUNC_C", + "common_scalar : T_NS_C", + "common_scalar : T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC", + "common_scalar : T_START_HEREDOC T_END_HEREDOC", + "static_scalar : common_scalar", + "static_scalar : name", + "static_scalar : '+' static_scalar", + "static_scalar : '-' static_scalar", + "static_scalar : T_ARRAY '(' static_array_pair_list ')'", + "static_scalar : class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING", + "scalar : T_STRING_VARNAME", + "scalar : class_constant", + "scalar : name", + "scalar : common_scalar", + "scalar : '\"' encaps_list '\"'", + "scalar : T_START_HEREDOC encaps_list T_END_HEREDOC", + "static_array_pair_list : /* empty */", + "static_array_pair_list : non_empty_static_array_pair_list optional_comma", + "optional_comma : /* empty */", + "optional_comma : ','", + "non_empty_static_array_pair_list : non_empty_static_array_pair_list ',' static_scalar T_DOUBLE_ARROW static_scalar", + "non_empty_static_array_pair_list : non_empty_static_array_pair_list ',' static_scalar", + "non_empty_static_array_pair_list : static_scalar T_DOUBLE_ARROW static_scalar", + "non_empty_static_array_pair_list : static_scalar", + "expr : variable", + "expr : expr_without_variable", + "variable : object_access", + "variable : base_variable", + "variable : function_call", + "object_access : object_access_arrayable", + "object_access : object_access_arrayable '(' function_call_argument_list ')'", + "object_access : variable T_OBJECT_OPERATOR object_property '(' function_call_argument_list ')'", + "object_access_arrayable : variable T_OBJECT_OPERATOR object_property", + "object_access_arrayable : object_access_arrayable '[' dim_offset ']'", + "object_access_arrayable : object_access_arrayable '{' expr '}'", + "variable_without_objects : reference_variable", + "variable_without_objects : '$' reference_variable", + "base_variable : variable_without_objects", + "base_variable : class_name T_PAAMAYIM_NEKUDOTAYIM '$' reference_variable", + "base_variable : reference_variable T_PAAMAYIM_NEKUDOTAYIM '$' reference_variable", + "base_variable : static_property_with_arrays", + "static_property_with_arrays : class_name T_PAAMAYIM_NEKUDOTAYIM T_VARIABLE", + "static_property_with_arrays : reference_variable T_PAAMAYIM_NEKUDOTAYIM '$' '{' expr '}'", + "static_property_with_arrays : static_property_with_arrays '[' dim_offset ']'", + "static_property_with_arrays : static_property_with_arrays '{' expr '}'", + "reference_variable : reference_variable '[' dim_offset ']'", + "reference_variable : reference_variable '{' expr '}'", + "reference_variable : T_VARIABLE", + "reference_variable : '$' '{' expr '}'", + "dim_offset : /* empty */", + "dim_offset : expr", + "object_property : T_STRING", + "object_property : '{' expr '}'", + "object_property : variable_without_objects", + "assignment_list : assignment_list ',' assignment_list_element", + "assignment_list : assignment_list_element", + "assignment_list_element : variable", + "assignment_list_element : T_LIST '(' assignment_list ')'", + "assignment_list_element : /* empty */", + "array_pair_list : /* empty */", + "array_pair_list : non_empty_array_pair_list optional_comma", + "non_empty_array_pair_list : non_empty_array_pair_list ',' expr T_DOUBLE_ARROW expr", + "non_empty_array_pair_list : non_empty_array_pair_list ',' expr", + "non_empty_array_pair_list : expr T_DOUBLE_ARROW expr", + "non_empty_array_pair_list : expr", + "non_empty_array_pair_list : non_empty_array_pair_list ',' expr T_DOUBLE_ARROW '&' variable", + "non_empty_array_pair_list : non_empty_array_pair_list ',' '&' variable", + "non_empty_array_pair_list : expr T_DOUBLE_ARROW '&' variable", + "non_empty_array_pair_list : '&' variable", + "encaps_list : encaps_list encaps_var", + "encaps_list : encaps_list T_ENCAPSED_AND_WHITESPACE", + "encaps_list : encaps_var", + "encaps_list : T_ENCAPSED_AND_WHITESPACE encaps_var", + "encaps_var : T_VARIABLE", + "encaps_var : T_VARIABLE '[' encaps_var_offset ']'", + "encaps_var : T_VARIABLE T_OBJECT_OPERATOR T_STRING", + "encaps_var : T_DOLLAR_OPEN_CURLY_BRACES expr '}'", + "encaps_var : T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}'", + "encaps_var : T_CURLY_OPEN variable '}'", + "encaps_var_offset : T_STRING", + "encaps_var_offset : T_NUM_STRING", + "encaps_var_offset : T_VARIABLE", + "class_constant : class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING", + "class_constant : reference_variable T_PAAMAYIM_NEKUDOTAYIM T_STRING" + ); + + private static $yytranslate = array( + 0, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 47, 144, 145, 141, 46, 30, 145, + 136, 137, 44, 41, 7, 42, 43, 45, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 25, 138, + 35, 12, 37, 24, 59, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 60, 145, 143, 29, 145, 142, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 139, 28, 140, 49, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 1, 2, 3, 4, + 5, 6, 8, 9, 10, 11, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 26, 27, 31, + 32, 33, 34, 36, 38, 39, 40, 48, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 145, 145, 75, 76, 77, 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, 145, 145, 145, 145, 145, + 145, 127, 128, 129, 130, 131, 132, 133, 134, 135 + ); + + private static $yyaction = array( + 57, 58, 372, 59, 60,-32766,-32766,-32766, 257, 61, + 704, 705, 706, 703, 702, 701,-32766,-32766,-32766, 878, + 56,-32766, 0,-32766,-32766,-32766,-32766,-32766,-32767,-32767, + -32767,-32767,-32766, 46,-32766,-32766,-32766,-32766,-32766, 62, + 63,-32766,-32766,-32766,-32766, 64,-32766, 65, 242, 243, + 66, 67, 68, 69, 70, 71, 72, 73,-32766, 255, + 74, 349, 373, 123, 670, 54, 823, 824, 374, 841, + 878,-32766, 602, 278, 825, 52, 26, 375, 267, 376, + -108, 377, 503, 378, 208, 505, 379, 414, 285, 670, + 39, 40, 380, 352, 350, 41, 382, 350, 75, 122, + 306, 351, 882, 383, 384, -121, 383, 384, 385, 386, + 387, 360, 434, 624, 389, 434, 624, 389, 390, 391, + 829, 830, 831, 826, 827, 261, 211, 84, 85, 86, + 396, 832, 828, 344, 76, 125, 609, 533, 47, 285, + 265, 32, 269, 43, 120, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 233, 256, 105, 106, + 107, 126, 256, 285,-32766, 878,-32766,-32766,-32766, 910, + 560, 912, 911, 251,-32766, 525, 249,-32766,-32766,-32766, + 307,-32766,-32766,-32766,-32766,-32766, 350, 305,-32766, 511, + 560, 322,-32766,-32766,-32766, 383, 384,-32766,-32766, 878, + -32766, 453,-32766, 801, 434, 624, 389,-32766, 570, 425, + -32766, 370, 520, 560, 495, 361, 252,-32766, 878, 53, + -32766,-32766,-32766, 801,-32766, -121,-32766, 696,-32766, 495, + 55,-32766, 124, -119, 285,-32766,-32766,-32766,-32766,-32766, + -32766,-32766, 696,-32766, 447,-32766, 801, 429, 82, 245, + -32766, 456, 396,-32766, -118, 344, 560, -122, 622, 254, + -32766, 878, 248,-32766,-32766,-32766, 681,-32766, 285,-32766, + 650,-32766, 290, 623,-32766,-32766,-32766,-32766,-32766,-32766, + -32766,-32766,-32766,-32766,-32766, 443,-32766, 285,-32766, 801, + 102, 103, 104,-32766, 288, 477,-32766, 346, 119, 560, + 264, 535, 250,-32766, 872, 270,-32766,-32766,-32766, 121, + -32766, 599,-32766, 214,-32766, 290, 365,-32766, 569, 213, + 691,-32766,-32766,-32766,-32766,-32766,-32766,-32766, 878,-32766, + 411,-32766, 801, 901, 21, 234,-32766, 901, 204,-32766, + 600, 792, 560, 690, 210, 235,-32766, 209, 834,-32766, + -32766,-32766, 432,-32766, 289,-32766, 206,-32766, 834, 205, + -32766,-32766,-32766, -119,-32766,-32766,-32766,-32766,-32766,-32766, + -32766, 132,-32766, 308,-32766, 801, 512, 513, 198,-32766, + 203, 20,-32766, 651, -118, 560, 199, -122, 246,-32766, + 846, 200,-32766,-32766,-32766, 538,-32766, 285,-32766, 620, + -32766, 550, 845,-32766, 502, 27, 545,-32766,-32766,-32766, + -32766,-32766,-32766,-32766, 541,-32766, 540,-32766, 801, 133, + 312, 549,-32766, 566, 536,-32766, 693, 554, 560, 613, + 553, 247,-32766, 129, 256,-32766,-32766,-32766, 128,-32766, + 524,-32766, 560,-32766, 417, 528,-32766, 521, 236, 462, + -32766,-32766,-32766,-32766,-32766,-32766,-32766, 509,-32766, 287, + -32766, 801, 474, 840, 452,-32766, 369, 576,-32766, 442, + 906, 560,-32766,-32766,-32766,-32766, 435, 421,-32766,-32766, + -32766, 420,-32766, 561,-32766, 574,-32766, 406,-32766,-32766, + -32766,-32766,-32766,-32766,-32766,-32766,-32766,-32766,-32766,-32766, + 405,-32766, 355,-32766, 801, 356, 793, 423,-32766, 794, + -140,-32766, 409, 463, 560, 433, 506, 527,-32766, 519, + 517,-32766,-32766,-32766, 510,-32766, 492,-32766, 901,-32766, + 286, 515,-32766, 626, 490, 479,-32766,-32766,-32766,-32766, + -32766,-32766,-32766, 625,-32766, 276,-32766, 801, 30,-32766, + 207,-32766, 833, 416,-32766, 275, 284, 560,-32766,-32766, + -32766,-32766, 48, 771,-32766,-32766,-32766, 277,-32766, 212, + -32766, 0,-32766, 0,-32766,-32766,-32766,-32766, 266,-32766, + -32766,-32766,-32766,-32766,-32766,-32766, 268,-32766, 45,-32766, + 801, 413, 282, -247, 478, 35, 283,-32766, 281,-32766, + 788, 325, 34, 0, 0, 560, 345, 346, 531,-32766, + 33, 31,-32766,-32766,-32766, -312,-32766, 29,-32766, 469, + -32766, 350, 410,-32766, 816,-32766,-32766,-32766,-32766,-32766, + 383, 384,-32766,-32766, 354,-32766, 348,-32766, 801, 434, + 624, 389,-32766, 279, 260,-32766, 259, 258, 560, 244, + 37, 241,-32766, 240, 232,-32766,-32766,-32766, 231,-32766, + 197,-32766, 313,-32766, 135, 134,-32766, 127, 81, 80, + -32766,-32766,-32766, 594,-32766,-32766,-32766, 79,-32766, 78, + -32766, 801, 77, 49, 42,-32766, 362, 38,-32766, -323, + -324, 560, 36, 636, 427,-32766, 481, 489,-32766,-32766, + -32766, 526,-32766, 787,-32766, 795,-32766, 800, 861,-32766, + 822, 19, 25,-32766,-32766,-32766,-32766,-32766,-32766,-32766, + 28,-32766, 309,-32766, 801, 488, 530, 767,-32766, 774, + 817,-32766, 862, 796, 560, 797, 798, 799,-32766, 22, + 24,-32766,-32766,-32766, 23,-32766, 839,-32766, 770,-32766, + 464, 888,-32766, 466, 131, 604,-32766,-32766,-32766, 596, + -32766,-32766,-32766, 638,-32766, 587,-32766, 801, 646, 201, + 202, 645, 640, 598,-32766, 44, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 653, 589, 350, + 381, 584, 611, 595, 593, 304, 823, 824, 383, 384, + 603, 565, 592,-32766, 825, 597, 612, 388, 624, 389, + 544, 350, 381, 734, 736, 543, 51, 304, 50, 601, + 383, 384,-32766,-32766,-32766, 130, 280, 350, 381, 388, + 624, 389, 83, 304, 567, 534, 383, 384,-32766, 537, + -32766,-32766,-32766,-32766, 542, 388, 624, 389, 280, 459, + 829, 830, 831, 826, 827, 334, 568, 546, 547, 552, + 499, 832, 828, 873, 280,-32767,-32767,-32767,-32767, 100, + 101, 102, 103, 104, 350, 883, 683, 350, 814, 875, + 350, 266, 865, 383, 384, 877, 383, 384, 879, 383, + 384, 907, 434, 624, 389, 434, 624, 389, 434, 624, + 389, 908, 909, 905, 643, 644, 501, 0, 350, 291, + 813, 350, 874, 864, 350, 876, 0, 383, 384, 616, + 383, 384, 347, 383, 384, 621, 434, 624, 389, 434, + 624, 389, 434, 624, 389, 0, 0, 0, 0, 0, + 0, 0, 350, 0, 0, 0, 0, 0, 0, 0, + 0, 383, 384, 585, 0, 0, 694, 0, 0, 790, + 434, 624, 389 + ); + + private static $yycheck = array( + 2, 3, 4, 5, 6, 8, 9, 10, 61, 11, + 103, 104, 105, 106, 107, 108, 8, 9, 10, 72, + 60, 24, 0, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 24, 7, 26, 27, 28, 29, 30, 41, + 42, 8, 8, 9, 10, 47, 103, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 24, 61, + 62, 63, 64, 7, 121, 60, 68, 69, 70, 71, + 72, 103, 74, 7, 76, 77, 78, 79, 118, 81, + 137, 83, 80, 85, 7, 86, 88, 7, 141, 121, + 92, 93, 94, 95, 95, 97, 98, 95, 100, 139, + 102, 103, 70, 104, 105, 7, 104, 105, 110, 111, + 112, 25, 113, 114, 115, 113, 114, 115, 120, 121, + 122, 123, 124, 125, 126, 127, 12, 8, 9, 10, + 132, 133, 134, 135, 136, 25, 138, 139, 7, 141, + 142, 136, 144, 24, 139, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 7, 48, 44, 45, + 46, 139, 48, 141, 64, 72, 8, 9, 10, 70, + 70, 72, 73, 30, 74, 84, 30, 77, 78, 79, + 7, 81, 24, 83, 26, 85, 95, 7, 88, 7, + 70, 72, 92, 93, 94, 104, 105, 97, 98, 72, + 100, 70, 102, 103, 113, 114, 115, 64, 138, 7, + 110, 7, 7, 70, 96, 139, 30, 74, 72, 60, + 77, 78, 79, 103, 81, 137, 83, 109, 85, 96, + 60, 88, 139, 7, 141, 92, 93, 94, 138, 139, + 97, 98, 109, 100, 70, 102, 103, 120, 129, 130, + 64, 7, 132, 110, 7, 135, 70, 7, 140, 30, + 74, 72, 7, 77, 78, 79, 72, 81, 141, 83, + 25, 85, 141, 140, 88, 8, 9, 10, 92, 93, + 94, 138, 139, 97, 98, 72, 100, 141, 102, 103, + 41, 42, 43, 64, 60, 75, 110, 135, 139, 70, + 7, 139, 30, 74, 72, 75, 77, 78, 79, 139, + 81, 138, 83, 12, 85, 141, 119, 88, 138, 12, + 138, 92, 93, 94, 138, 139, 97, 98, 72, 100, + 141, 102, 103, 75, 137, 141, 64, 75, 12, 110, + 138, 137, 70, 138, 12, 30, 74, 12, 128, 77, + 78, 79, 118, 81, 141, 83, 12, 85, 128, 12, + 88, 8, 9, 137, 92, 93, 94, 138, 139, 97, + 98, 12, 100, 141, 102, 103, 65, 66, 12, 64, + 12, 137, 110, 138, 137, 70, 12, 137, 30, 74, + 128, 12, 77, 78, 79, 25, 81, 141, 83, 30, + 85, 25, 144, 88, 65, 66, 25, 92, 93, 94, + 138, 139, 97, 98, 25, 100, 25, 102, 103, 90, + 91, 25, 64, 138, 139, 110, 138, 139, 70, 25, + 25, 30, 74, 25, 48, 77, 78, 79, 60, 81, + 67, 83, 70, 85, 79, 70, 88, 70, 87, 87, + 92, 93, 94, 138, 139, 97, 98, 70, 100, 75, + 102, 103, 70, 70, 70, 64, 95, 70, 110, 70, + 70, 70, 8, 9, 10, 74, 70, 70, 77, 78, + 79, 70, 81, 70, 83, 70, 85, 70, 24, 88, + 26, 27, 28, 92, 93, 94, 138, 139, 97, 98, + 70, 100, 70, 102, 103, 70, 72, 87, 64, 72, + 72, 110, 72, 72, 70, 71, 89, 72, 74, 72, + 72, 77, 78, 79, 72, 81, 72, 83, 75, 85, + 75, 89, 88, 114, 101, 99, 92, 93, 94, 138, + 139, 97, 98, 114, 100, 117, 102, 103, 136, 103, + 119, 64, 128, 131, 110, 116, 131, 70, 8, 9, + 10, 74, 119, 137, 77, 78, 79, 116, 81, 119, + 83, -1, 85, -1, 24, 88, 26, 27, 118, 92, + 93, 94, 138, 139, 97, 98, 118, 100, 119, 102, + 103, 135, 131, 131, 131, 136, 131, 110, 131, 64, + 142, 131, 136, -1, -1, 70, 135, 135, 82, 74, + 136, 136, 77, 78, 79, 136, 81, 136, 83, 136, + 85, 95, 136, 88, 137, 138, 139, 92, 93, 94, + 104, 105, 97, 98, 136, 100, 136, 102, 103, 113, + 114, 115, 64, 136, 136, 110, 136, 136, 70, 136, + 136, 136, 74, 136, 136, 77, 78, 79, 136, 81, + 136, 83, 137, 85, 136, 136, 88, 136, 136, 136, + 92, 93, 94, 138, 139, 97, 98, 136, 100, 136, + 102, 103, 136, 136, 136, 64, 137, 136, 110, 136, + 136, 70, 136, 138, 137, 74, 137, 137, 77, 78, + 79, 137, 81, 137, 83, 137, 85, 137, 137, 88, + 137, 137, 137, 92, 93, 94, 138, 139, 97, 98, + 137, 100, 137, 102, 103, 137, 137, 137, 64, 137, + 137, 110, 137, 137, 70, 137, 137, 137, 74, 137, + 137, 77, 78, 79, 137, 81, 137, 83, 137, 85, + 137, 137, 88, 137, 139, 138, 92, 93, 94, 138, + 139, 97, 98, 138, 100, 138, 102, 103, 138, 41, + 42, 138, 138, 138, 110, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 138, 138, 95, + 96, 138, 138, 138, 138, 101, 68, 69, 104, 105, + 138, 138, 138, 139, 76, 138, 138, 113, 114, 115, + 138, 95, 96, 50, 51, 138, 138, 101, 138, 138, + 104, 105, 8, 9, 10, 139, 132, 95, 96, 113, + 114, 115, 139, 101, 140, 139, 104, 105, 24, 139, + 26, 27, 28, 29, 139, 113, 114, 115, 132, 121, + 122, 123, 124, 125, 126, 127, 140, 139, 139, 139, + 143, 133, 134, 140, 132, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 95, 140, 140, 95, 140, 140, + 95, 118, 140, 104, 105, 140, 104, 105, 140, 104, + 105, 140, 113, 114, 115, 113, 114, 115, 113, 114, + 115, 140, 140, 143, 140, 140, 140, -1, 95, 141, + 143, 95, 143, 143, 95, 143, -1, 104, 105, 140, + 104, 105, 140, 104, 105, 140, 113, 114, 115, 113, + 114, 115, 113, 114, 115, -1, -1, -1, -1, -1, + -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, + -1, 104, 105, 140, -1, -1, 140, -1, -1, 140, + 113, 114, 115 + ); + + private static $yybase = array( + 0, 726, 704, 742, 823, 792, 2, -1, 101, 795, + 829, 536, 789, 826, 857, 857, 857, 857, 857, 401, + 399, 391, 391, 386, 391, 380, -2, -2, -2, 368, + 411, 411, 411, 411, 411, 411, 411, 411, 411, 674, + 545, 631, 497, 110, 325, 282, 153, 196, 239, 588, + 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, + 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, + 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, + 588, 588, 454, 588, 588, 588, 588, 588, 588, 588, + 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, + 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, + 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, + 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, + 588, 588, 588, 588, 588, 588, 255, 672, 666, 665, + 664, 600, 602, 603, 585, 584, 371, 595, 479, 761, + 758, 418, 755, 752, 749, 748, 746, 745, 598, 453, + 727, 776, 733, 593, 599, 119, 119, 119, 119, 119, + 119, 119, 119, 119, 119, 33, 363, 277, 277, 277, + 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 34, 34, 168, 560, 474, 738, 738, 738, + 738, 738, 738, 738, 738, 738, 738, 738, 738, 738, + 738, 738, 738, 738, 738, 824, 8, -3, -3, -3, + -3, 236, 260, 645, 773, 840, 840, 840, 840, 143, + 128, 137, 137, 137, 103, -53, 156, 448, 259, 259, + 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, + 266, 266, 266, 266, 266, 266, 266, 266, -57, -57, + -57, 240, 272, 268, -32, 465, 32, 32, 32, 394, + 434, 463, 124, 124, 124, 456, 456, 456, 456, 456, + 172, 409, 184, 404, 141, 703, 129, 129, 109, 703, + 696, 625, 471, 5, 435, 432, -40, 489, 489, 207, + 437, 774, 452, 775, 481, 481, 204, 204, 199, 86, + 349, 321, 255, 298, 80, 472, 180, 691, 417, 190, + 183, 212, 244, 295, 169, 242, 254, 623, 621, 436, + 626, 772, 169, 257, 230, 169, 169, 624, 98, 612, + 192, 215, 613, 214, 382, 382, 382, 446, 379, 558, + 379, 450, 379, 484, 421, 449, 461, 26, 438, 379, + 687, 682, 443, 446, 484, 379, 379, 77, 462, 379, + 379, 22, 556, 553, 414, 551, 557, 543, 508, 542, + 440, 427, 706, 439, 429, 527, 525, 523, 496, 442, + 532, 491, 466, 445, 477, 485, 482, 396, 470, 422, + 475, 470, 480, 478, 375, 678, 376, 677, 430, 384, + 567, 703, 468, 423, 416, 521, 778, 541, 690, 56, + 389, 520, 372, 425, 470, 451, 470, 673, 710, 528, + 470, 576, 410, 388, 493, 378, 396, 396, 396, 476, + 578, 131, 469, 563, 566, 580, 782, 524, 561, 780, + 581, 779, 469, 524, 583, 777, 402, 559, 303, 534, + 472, 473, 407, 336, 627, 66, 369, 470, 770, 569, + 470, 470, 715, 688, 357, 570, 464, 434, 403, 517, + 470, 663, 605, 66, 606, 608, 609, 610, 660, 728, + 510, 729, 354, 441, 619, 397, 381, 470, 470, 771, + 470, 564, 539, 659, 617, 644, 643, 458, 457, 345, + 342, 387, 538, 406, 383, 640, 447, 114, 460, 574, + 455, 317, 385, 470, 637, 635, 730, 311, 518, 444, + 415, 565, 535, 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, 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, + -2, 119, 119, 119, 119, 119, 119, 119, 119, 119, + 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + 119, 119, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 119, 119, 119, 119, 119, 119, 773, 773, 773, 0, + 124, 124, 124, 124, -93, -93, 130, 130, 130, 130, + 130, 130, -93, 124, 124, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 129, 129, 129, 130, + 129, 199, 199, 199, 129, 129, 129, 0, 0, 0, + 130, 130, 130, 130, 130, 382, 223, 199, 223, 199, + 199, 0, 0, 0, 199, 199, 199, 169, 0, 169, + 169, 0, 169, 169, 470, 339, 339, 339, 339, 382, + 382, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 422, 0, 56, 521, 0, 0, 0, 0, 0, 0, + 0, 0, 265, 265, 470, 159, 470, 0, 0, 0, + 0, 0, 159, 0, 470, 0, 0, 470 + ); + + private static $yydefault = array( + 3,32767,32767, 1,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767, 101, 94, 106, 93, 102,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767, 335, + 117, 117, 117, 117, 117, 117, 117, 117, 117,32767, + 32767,32767,32767,32767,32767,32767, 295,32767,32767, 160, + 160, 160,32767, 325, 325, 325, 325,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767, 340,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767, 338, + 32767,32767,32767,32767,32767, 217, 218, 220, 221, 159, + 32767, 326, 158, 339, 337, 185, 187, 234, 186, 163, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 162, 214, 213, 183, 184, 188, 292,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767, 295,32767, + 32767,32767,32767,32767,32767, 190, 189, 205, 206, 203, + 204, 300, 300, 300, 300, 207, 208, 209, 210, 142, + 142, 334, 334, 334,32767,32767,32767, 143, 197, 198, + 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767, 255, 255, 255, 113, 113, + 113,32767,32767,32767, 113, 263,32767,32767,32767,32767, + 32767, 265, 192, 193, 191,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767, 264,32767,32767,32767, + 32767,32767, 311, 305, 311, 311, 253, 314, 315,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 103, 105,32767,32767,32767, 288, 316,32767,32767,32767, + 32767,32767, 349,32767, 312,32767,32767,32767,32767,32767, + 32767,32767, 311, 301,32767, 314, 315,32767, 301,32767, + 32767,32767,32767,32767,32767,32767,32767,32767, 64, 260, + 64, 246, 64, 266,32767, 74, 72, 294, 76, 64, + 92, 92, 236, 55, 266, 64, 64, 294,32767, 64, + 64,32767,32767,32767, 5,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767, 4,32767,32767, 313,32767, 201, 180, 247, + 32767, 182, 251, 254,32767,32767,32767, 301, 18, 131, + 32767,32767,32767,32767,32767,32767,32767,32767,32767, 161, + 32767,32767, 20,32767, 127,32767, 62,32767,32767,32767, + 332,32767,32767, 286,32767,32767, 194, 195, 196, 308, + 32767, 116, 358, 317,32767,32767,32767, 359,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767, 107,32767, + 281,32767,32767, 129,32767, 75,32767, 344,32767,32767, + 164, 120,32767,32767,32767,32767,32767,32767,32767,32767, + 63,32767,32767, 77,32767,32767,32767,32767,32767,32767, + 32767,32767, 109, 299,32767,32767,32767, 343, 342,32767, + 123, 318,32767,32767,32767,32767,32767,32767,32767,32767, + 154,32767,32767,32767,32767,32767,32767, 111, 297,32767, + 32767,32767,32767, 341,32767,32767,32767, 152,32767,32767, + 32767,32767,32767, 25, 25, 3, 3, 134, 25, 99, + 25, 25, 134, 92, 92, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25 + ); + + private static $yygoto = array( + 148, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 138, 139, 170, 143, 151, 179, 173, 159, 170, 174, + 169, 169, 169, 169, 171, 171, 171, 171, 165, 166, + 167, 168, 177, 754, 755, 397, 757, 777, 778, 779, + 780, 781, 782, 783, 785, 722, 140, 141, 142, 144, + 145, 146, 147, 149, 150, 175, 176, 178, 194, 195, + 196, 215, 216, 217, 218, 219, 220, 225, 226, 227, + 228, 238, 239, 272, 273, 274, 436, 437, 438, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 152, 153, 154, 155, 172, 156, 192, 157, 158, 160, + 193, 161, 162, 191, 136, 163, 164, 460, 460, 460, + 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, + 460, 460, 460, 460, 460, 445, 450, 454, 482, 484, + 485, 486, 487, 301, 563, 563, 563, 564, 564, 564, + 317, 399, 399, 399, 399, 399, 399, 323, 473, 504, + 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, + 399, 399, 399, 399, 399, 802, 802, 802, 669, 669, + 669, 408, 408, 337, 669, 449, 451, 455, 403, 403, + 403, 606, 885, 607, 700, 633, 633, 628, 634, 508, + 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, + 461, 461, 461, 461, 461, 461, 461, 461, 766, 364, + 271, 805, 422, 804, 263, 475, 532, 812, 811, 1, + 2, 328, 366, 571, 400, 400, 400, 400, 400, 400, + 483, 679, 548, 400, 400, 400, 400, 400, 400, 400, + 400, 400, 400, 400, 400, 400, 400, 400, 402, 402, + 402, 294, 294, 294, 294, 294, 294, 615, 848, 720, + 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, + 294, 294, 294, 294, 294, 295, 295, 295, 230, 0, + 0, 0, 0, 0, 0, 0, 332, 332, 332, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 0, 0, + 223, 332, 332, 332, 332, 324, 222, 0, 0, 297, + 298, 336, 0, 0, 0, 302, 303, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 335, 835, + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + 835, 835, 835, 835, 835, 835, 835, 578, 687, 641, + 837, 838, 577, 685, 642, 665, 853, 518, 712, 710, + 667, 851, 711, 708, 5, 0, 0, 0, 14, 0, + 6, 7, 562, 562, 562, 8, 9, 10, 15, 16, + 11, 17, 12, 18, 13, 0, 0, 0, 0, 0, + 652, 639, 637, 637, 635, 637, 539, 404, 659, 655, + 333, 333, 333, 333, 333, 333, 333, 333, 333, 0, + 0, 407, 868, 868, 868, 0, 0, 338, 0, 0, + 0, 0, 0, 884, 884, 884, 0, 318, 0, 415, + 0, 0, 0, 0, 0, 0, 476, 0, 444, 448, + 444, 448, 253, 507, 900, 900, 522, 529, 0, 0, + 0, 0, 903, 900, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 903, 903, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 430, 430, 430, 424, 470, 299, 0, 0, 0, 426, + 426, 398, 401, 329, 331, 467, 471, 480, 339, 497, + 498, 500, 342, 523 + ); + + private static $yygcheck = array( + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 48, 48, 48, 48, 48, + 48, 48, 48, 44, 7, 7, 7, 8, 8, 8, + 28, 36, 36, 36, 36, 36, 36, 4, 21, 21, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 4, 4, 59, 36, 76, 76, 76, 74, 74, + 74, 30, 86, 30, 58, 36, 36, 36, 36, 36, + 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, + 69, 69, 69, 69, 69, 69, 69, 69, 60, 60, + 77, 4, 4, 4, 77, 37, 37, 75, 75, 2, + 2, 29, 47, 11, 69, 69, 69, 69, 69, 69, + 43, 50, 45, 69, 69, 69, 69, 69, 69, 69, + 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, + 69, 71, 71, 71, 71, 71, 71, 35, 82, 61, + 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, + 71, 71, 71, 71, 71, 71, 71, 71, 41, -1, + -1, -1, -1, -1, -1, -1, 71, 71, 71, 25, + 25, 25, 25, 25, 25, 25, 25, 25, -1, -1, + 25, 71, 71, 71, 71, 71, 25, -1, -1, 71, + 71, 71, -1, -1, -1, 44, 44, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 71, 78, + 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 12, 13, -1, -1, -1, 13, -1, + 13, 13, 6, 6, 6, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, -1, -1, -1, -1, -1, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 24, 24, 24, 24, 24, 24, 24, 24, 24, -1, + -1, 24, 70, 70, 70, -1, -1, 24, -1, -1, + -1, -1, -1, 70, 70, 70, -1, 31, -1, 31, + -1, -1, -1, -1, -1, -1, 31, -1, 70, 70, + 70, 70, 31, 31, 88, 88, 31, 31, -1, -1, + -1, -1, 88, 88, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 88, 88, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 25, 25, 25, 25, 25, 25, -1, -1, -1, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25 + ); + + private static $yygbase = array( + 0, 0, -316, 0, -133, 0, 371, 133, 136, 0, + 0, -82, 149, -170, 0, -29, 0, 0, 0, 0, + 0, 98, 0, 0, 370, 259, 0, 0, 88, -20, + 159, 77, 0, 0, 0, -106, -90, -44, 0, 0, + 0, -264, 0, -46, -228, -80, 0, -42, 94, 0, + -76, 0, 0, 0, 0, 0, 0, 0, -53, -59, + -48, -105, 0, 0, 0, 0, 0, 0, 0, -7, + 157, 20, 0, 0, -77, -50, 121, -55, 132, 0, + 0, 0, -109, 0, 0, 0, -51, 0, 182, 0 + ); + + private static $yygdefault = array( + -32768, 371, 3, 557, 803, 392, 581, 582, 583, 319, + 314, 572, 493, 4, 579, 137, 310, 586, 311, 514, + 588, 418, 590, 591, 856, 224, 320, 321, 419, 327, + 605, 516, 326, 608, 363, 614, 315, 457, 393, 358, + 472, 229, 428, 465, 300, 551, 458, 359, 440, 441, + 680, 688, 368, 341, 340, 496, 692, 237, 699, 330, + 353, 721, 784, 786, 431, 412, 491, 343, 859, 394, + 395, 292, 807, 296, 858, 439, 446, 262, 844, 494, + 842, 367, 891, 857, 293, 316, 886, 357, 902, 468 + ); + + private static $yylhs = array( + 0, 1, 2, 2, 4, 5, 5, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 9, 9, 11, 11, + 11, 11, 10, 10, 13, 13, 14, 14, 14, 14, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 34, + 34, 35, 29, 29, 31, 31, 7, 8, 8, 38, + 38, 38, 39, 39, 42, 42, 40, 40, 43, 43, + 22, 22, 30, 30, 33, 33, 32, 32, 23, 23, + 23, 23, 44, 44, 44, 45, 45, 20, 20, 16, + 16, 18, 18, 17, 17, 19, 19, 37, 37, 46, + 46, 46, 46, 47, 47, 47, 48, 48, 49, 49, + 49, 49, 49, 49, 26, 26, 50, 50, 50, 27, + 27, 27, 27, 41, 41, 51, 51, 51, 56, 56, + 52, 52, 55, 55, 57, 57, 58, 58, 58, 58, + 58, 58, 53, 53, 53, 53, 54, 54, 28, 28, + 21, 21, 24, 24, 24, 24, 24, 24, 24, 24, + 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, + 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, + 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, + 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, + 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, + 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, + 24, 24, 24, 24, 24, 24, 66, 66, 67, 67, + 68, 68, 68, 68, 68, 68, 69, 69, 36, 36, + 36, 60, 60, 72, 72, 73, 73, 73, 73, 73, + 62, 62, 62, 65, 65, 65, 61, 61, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, + 12, 12, 12, 12, 12, 12, 63, 63, 63, 63, + 63, 63, 79, 79, 82, 82, 81, 81, 81, 81, + 15, 15, 25, 25, 25, 83, 83, 83, 84, 84, + 84, 70, 70, 74, 74, 74, 74, 85, 85, 85, + 85, 71, 71, 71, 71, 76, 76, 75, 75, 75, + 59, 59, 86, 86, 86, 64, 64, 87, 87, 87, + 87, 87, 87, 87, 87, 77, 77, 77, 77, 88, + 88, 88, 88, 88, 88, 89, 89, 89, 80, 80 + ); + + private static $yylen = array( + 1, 1, 2, 0, 1, 1, 3, 1, 1, 1, + 4, 3, 5, 4, 3, 2, 3, 1, 1, 3, + 2, 4, 5, 4, 2, 0, 1, 1, 1, 4, + 3, 7, 10, 5, 7, 9, 5, 2, 3, 2, + 3, 2, 3, 3, 3, 3, 3, 1, 2, 5, + 7, 8, 10, 5, 1, 5, 3, 3, 2, 1, + 2, 8, 1, 3, 0, 1, 9, 7, 6, 1, + 2, 2, 0, 2, 0, 2, 0, 2, 1, 3, + 1, 4, 1, 4, 1, 4, 3, 5, 3, 4, + 4, 5, 0, 5, 4, 1, 1, 1, 4, 0, + 6, 0, 7, 0, 2, 0, 3, 1, 0, 3, + 5, 5, 7, 0, 1, 1, 1, 0, 1, 1, + 2, 3, 3, 4, 3, 1, 1, 2, 4, 3, + 5, 1, 3, 2, 0, 3, 2, 8, 1, 3, + 1, 1, 0, 1, 1, 2, 1, 1, 1, 1, + 1, 1, 3, 5, 1, 3, 5, 4, 3, 1, + 0, 1, 6, 3, 4, 6, 3, 2, 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, 2, + 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 5, 4, 4, 4, 2, 2, 4, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 1, 4, 3, 2, 9, 0, 4, 4, 2, + 4, 6, 6, 6, 6, 4, 1, 1, 1, 3, + 2, 1, 1, 1, 1, 0, 3, 3, 4, 4, + 0, 2, 3, 0, 1, 1, 0, 3, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, + 1, 1, 2, 2, 4, 3, 1, 1, 1, 1, + 3, 3, 0, 2, 0, 1, 5, 3, 3, 1, + 1, 1, 1, 1, 1, 1, 4, 6, 3, 4, + 4, 1, 2, 1, 4, 4, 1, 3, 6, 4, + 4, 4, 4, 1, 4, 0, 1, 1, 3, 1, + 3, 1, 1, 4, 0, 0, 2, 5, 3, 3, + 1, 6, 4, 4, 2, 2, 2, 1, 2, 1, + 4, 3, 3, 6, 3, 1, 1, 1, 3, 3 + ); + + protected function yyprintln($msg) { + echo $msg, "\n"; + } + + protected function error($sym) { + $errorCallback = $this->errorCallback; + $errorCallback( + 'Parse error:' + . ' Unexpected token ' . self::$yyterminals[$sym] + . ' on line ' . $this->lex->getLine() + ); + } + + /* Traditional Debug Mode */ + private function YYTRACE_NEWSTATE($state, $sym) { + $this->yyprintln('% State ' . $state . ', Lookahead ' + . ($sym < 0 ? '--none--' : self::$yyterminals[$sym])); + } + + private function YYTRACE_READ($sym) { + $this->yyprintln('% Reading ' . self::$yyterminals[$sym]); + } + + private function YYTRACE_SHIFT($sym) { + $this->yyprintln('% Shift ' . self::$yyterminals[$sym]); + } + + private function YYTRACE_ACCEPT() { + $this->yyprintln('% Accepted.'); + } + + private function YYTRACE_REDUCE($n) { + $this->yyprintln('% Reduce by (' . $n . ') ' . self::$yyproduction[$n]); + } + + private function YYTRACE_POP($state) { + $this->yyprintln('% Recovering, uncovers state ' . $state); + } + + private function YYTRACE_DISCARD($sym) { + $this->yyprintln('% Discard ' . self::$yyterminals[$sym]); + } + + /** + * Parser entry point + */ + public function yyparse($lex, $errorCallback) { + $this->lex = $lex; + $this->errorCallback = $errorCallback; + + $this->yyastk = array(); + $yysstk = array(); + $this->yysp = 0; + + $yystate = 0; + $yychar = -1; + + $yylval = null; + $yysstk[$this->yysp] = 0; + $yyerrflag = 0; + + for (;;) { + $this->YYTRACE_NEWSTATE($yystate, $yychar); + if (self::$yybase[$yystate] == 0) { + $yyn = self::$yydefault[$yystate]; + } else { + if ($yychar < 0) { + if (($yychar = $lex->yylex($yylval)) < 0) + $yychar = 0; + $yychar = $yychar < self::YYMAXLEX ? + self::$yytranslate[$yychar] : self::YYBADCH; + $this->YYTRACE_READ($yychar); + } + if ((($yyn = self::$yybase[$yystate] + $yychar) >= 0 + && $yyn < self::YYLAST && self::$yycheck[$yyn] == $yychar + || ($yystate < self::YY2TBLSTATE + && ($yyn = self::$yybase[$yystate + self::YYNLSTATES] + + $yychar) >= 0 + && $yyn < self::YYLAST + && self::$yycheck[$yyn] == $yychar)) + && ($yyn = self::$yyaction[$yyn]) != self::YYDEFAULT) { + /* + * >= YYNLSTATE: shift and reduce + * > 0: shift + * = 0: accept + * < 0: reduce + * = -YYUNEXPECTED: error + */ + if ($yyn > 0) { + /* shift */ + $this->YYTRACE_SHIFT($yychar); + ++$this->yysp; + + $yysstk[$this->yysp] = $yystate = $yyn; + $this->yyastk[$this->yysp] = $yylval; + $yychar = -1; + + if ($yyerrflag > 0) + --$yyerrflag; + if ($yyn < self::YYNLSTATES) + continue; + + /* $yyn >= YYNLSTATES means shift-and-reduce */ + $yyn -= self::YYNLSTATES; + } else { + $yyn = -$yyn; + } + } else { + $yyn = self::$yydefault[$yystate]; + } + } + + for (;;) { + /* reduce/error */ + if ($yyn == 0) { + /* accept */ + $this->YYTRACE_ACCEPT(); + return $this->yyval; + } elseif ($yyn != self::YYUNEXPECTED) { + /* reduce */ + $this->YYTRACE_REDUCE($yyn); + $this->{'yyn' . $yyn}(); + + /* Goto - shift nonterminal */ + $this->yysp -= self::$yylen[$yyn]; + $yyn = self::$yylhs[$yyn]; + if (($yyp = self::$yygbase[$yyn] + $yysstk[$this->yysp]) >= 0 + && $yyp < self::YYGLAST + && self::$yygcheck[$yyp] == $yyn) { + $yystate = self::$yygoto[$yyp]; + } else { + $yystate = self::$yygdefault[$yyn]; + } + + ++$this->yysp; + + $yysstk[$this->yysp] = $yystate; + $this->yyastk[$this->yysp] = $this->yyval; + } else { + /* error */ + switch ($yyerrflag) { + case 0: + $this->error($yychar); + case 1: + case 2: + $yyerrflag = 3; + /* Pop until error-expecting state uncovered */ + while (!(($yyn = self::$yybase[$yystate] + self::YYINTERRTOK) >= 0 + && $yyn < self::YYLAST + && self::$yycheck[$yyn] == self::YYINTERRTOK + || ($yystate < self::YY2TBLSTATE + && ($yyn = self::$yybase[$yystate + self::YYNLSTATES] + self::YYINTERRTOK) >= 0 + && $yyn < self::YYLAST + && self::$yycheck[$yyn] == self::YYINTERRTOK))) { + if ($this->yysp <= 0) { + return false; + } + $yystate = $yysstk[--$this->yysp]; + $this->YYTRACE_POP($yystate); + } + $yyn = self::$yyaction[$yyn]; + $this->YYTRACE_SHIFT(self::YYINTERRTOK); + $yysstk[++$this->yysp] = $yystate = $yyn; + break; + + case 3: + $this->YYTRACE_DISCARD($yychar); + if ($yychar == 0) { + return false; + } + $yychar = -1; + break; + } + } + + if ($yystate < self::YYNLSTATES) + break; + /* >= YYNLSTATES means shift-and-reduce */ + $yyn = $yystate - self::YYNLSTATES; + } + } + } + + private function yyn0() { + $this->yyval = $this->yyastk[$this->yysp]; + } + + private function yyn1() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn2() { + if (is_array($this->yyastk[$this->yysp-(2-2)])) { $this->yyval = array_merge($this->yyastk[$this->yysp-(2-1)], $this->yyastk[$this->yysp-(2-2)]); } else { $this->yyastk[$this->yysp-(2-1)][] = $this->yyastk[$this->yysp-(2-2)]; $this->yyval = $this->yyastk[$this->yysp-(2-1)]; }; + } + + private function yyn3() { + $this->yyval = array(); + } + + private function yyn4() { + $this->yyval = new Node_Name(array('parts' => $this->yyastk[$this->yysp-(1-1)])); + } + + private function yyn5() { + $this->yyval = array($this->yyastk[$this->yysp-(1-1)]); + } + + private function yyn6() { + $this->yyastk[$this->yysp-(3-1)][] = $this->yyastk[$this->yysp-(3-3)]; $this->yyval = $this->yyastk[$this->yysp-(3-1)]; + } + + private function yyn7() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn8() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn9() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn10() { + YYACCEPT; + } + + private function yyn11() { + $this->yyval = new Node_Stmt_Namespace(array('ns' => $this->yyastk[$this->yysp-(3-2)])); + } + + private function yyn12() { + $this->yyval = array(new Node_Stmt_Namespace(array('ns' => $this->yyastk[$this->yysp-(5-2)])), $this->yyastk[$this->yysp-(5-4)]); + } + + private function yyn13() { + $this->yyval = array(new Node_Stmt_Namespace(array('ns' => null)), $this->yyastk[$this->yysp-(4-3)]); + } + + private function yyn14() { + $this->yyval = new Node_Stmt_Use(array('uses' => $this->yyastk[$this->yysp-(3-2)])); + } + + private function yyn15() { + $this->yyval = new Node_Stmt_Const(array('consts' => $this->yyastk[$this->yysp-(2-1)])); + } + + private function yyn16() { + $this->yyastk[$this->yysp-(3-1)][] = $this->yyastk[$this->yysp-(3-3)]; $this->yyval = $this->yyastk[$this->yysp-(3-1)]; + } + + private function yyn17() { + $this->yyval = array($this->yyastk[$this->yysp-(1-1)]); + } + + private function yyn18() { + $this->yyval = new Node_Stmt_UseUse(array('ns' => $this->yyastk[$this->yysp-(1-1)], 'alias' => null)); + } + + private function yyn19() { + $this->yyval = new Node_Stmt_UseUse(array('ns' => $this->yyastk[$this->yysp-(3-1)], 'alias' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn20() { + $this->yyval = new Node_Stmt_UseUse(array('ns' => $this->yyastk[$this->yysp-(2-2)], 'alias' => null)); + } + + private function yyn21() { + $this->yyval = new Node_Stmt_UseUse(array('ns' => $this->yyastk[$this->yysp-(4-2)], 'alias' => $this->yyastk[$this->yysp-(4-4)])); + } + + private function yyn22() { + $this->yyastk[$this->yysp-(5-1)][] = new Node_Stmt_ConstConst(array('name' => $this->yyastk[$this->yysp-(5-3)], 'value' => $this->yyastk[$this->yysp-(5-5)])); $this->yyval = $this->yyastk[$this->yysp-(5-1)]; + } + + private function yyn23() { + $this->yyval = array(new Node_Stmt_ConstConst(array('name' => $this->yyastk[$this->yysp-(4-2)], 'value' => $this->yyastk[$this->yysp-(4-4)]))); + } + + private function yyn24() { + if (is_array($this->yyastk[$this->yysp-(2-2)])) { $this->yyval = array_merge($this->yyastk[$this->yysp-(2-1)], $this->yyastk[$this->yysp-(2-2)]); } else { $this->yyastk[$this->yysp-(2-1)][] = $this->yyastk[$this->yysp-(2-2)]; $this->yyval = $this->yyastk[$this->yysp-(2-1)]; }; + } + + private function yyn25() { + $this->yyval = array(); + } + + private function yyn26() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn27() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn28() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn29() { + error('__halt_compiler() can only be used from the outermost scope'); + } + + private function yyn30() { + $this->yyval = $this->yyastk[$this->yysp-(3-2)]; + } + + private function yyn31() { + $this->yyval = new Node_Stmt_If(array('cond' => $this->yyastk[$this->yysp-(7-3)], 'stmts' => is_array($this->yyastk[$this->yysp-(7-5)]) ? $this->yyastk[$this->yysp-(7-5)] : array($this->yyastk[$this->yysp-(7-5)]), 'elseifList' => $this->yyastk[$this->yysp-(7-6)], 'else' => $this->yyastk[$this->yysp-(7-7)])); + } + + private function yyn32() { + $this->yyval = new Node_Stmt_If(array('cond' => $this->yyastk[$this->yysp-(10-3)], 'stmts' => $this->yyastk[$this->yysp-(10-6)], 'elseifList' => $this->yyastk[$this->yysp-(10-7)], 'else' => $this->yyastk[$this->yysp-(10-8)])); + } + + private function yyn33() { + $this->yyval = new Node_Stmt_While(array('cond' => $this->yyastk[$this->yysp-(5-3)], 'stmts' => is_array($this->yyastk[$this->yysp-(5-5)]) ? $this->yyastk[$this->yysp-(5-5)] : array($this->yyastk[$this->yysp-(5-5)]))); + } + + private function yyn34() { + $this->yyval = new Node_Stmt_Do(array('stmts' => is_array($this->yyastk[$this->yysp-(7-2)]) ? $this->yyastk[$this->yysp-(7-2)] : array($this->yyastk[$this->yysp-(7-2)]), 'cond' => $this->yyastk[$this->yysp-(7-5)])); + } + + private function yyn35() { + $this->yyval = new Node_Stmt_For(array('init' => $this->yyastk[$this->yysp-(9-3)], 'cond' => $this->yyastk[$this->yysp-(9-5)], 'loop' => $this->yyastk[$this->yysp-(9-7)], 'stmts' => is_array($this->yyastk[$this->yysp-(9-9)]) ? $this->yyastk[$this->yysp-(9-9)] : array($this->yyastk[$this->yysp-(9-9)]))); + } + + private function yyn36() { + $this->yyval = new Node_Stmt_Switch(array('cond' => $this->yyastk[$this->yysp-(5-3)], 'caseList' => $this->yyastk[$this->yysp-(5-5)])); + } + + private function yyn37() { + $this->yyval = new Node_Stmt_Break(array('num' => null)); + } + + private function yyn38() { + $this->yyval = new Node_Stmt_Break(array('num' => $this->yyastk[$this->yysp-(3-2)])); + } + + private function yyn39() { + $this->yyval = new Node_Stmt_Continue(array('num' => null)); + } + + private function yyn40() { + $this->yyval = new Node_Stmt_Continue(array('num' => $this->yyastk[$this->yysp-(3-2)])); + } + + private function yyn41() { + $this->yyval = new Node_Stmt_Return(array('expr' => null)); + } + + private function yyn42() { + $this->yyval = new Node_Stmt_Return(array('expr' => $this->yyastk[$this->yysp-(3-2)])); + } + + private function yyn43() { + $this->yyval = new Node_Stmt_Return(array('expr' => $this->yyastk[$this->yysp-(3-2)])); + } + + private function yyn44() { + $this->yyval = new Node_Stmt_Global(array('vars' => $this->yyastk[$this->yysp-(3-2)])); + } + + private function yyn45() { + $this->yyval = new Node_Stmt_Static(array('vars' => $this->yyastk[$this->yysp-(3-2)])); + } + + private function yyn46() { + $this->yyval = new Node_Stmt_Echo(array('exprs' => $this->yyastk[$this->yysp-(3-2)])); + } + + private function yyn47() { + $this->yyval = new Node_Stmt_InlineHTML(array('value' => $this->yyastk[$this->yysp-(1-1)])); + } + + private function yyn48() { + $this->yyval = $this->yyastk[$this->yysp-(2-1)]; + } + + private function yyn49() { + $this->yyval = new Node_Stmt_Unset(array('vars' => $this->yyastk[$this->yysp-(5-3)])); + } + + private function yyn50() { + $this->yyval = new Node_Stmt_Foreach(array('expr' => $this->yyastk[$this->yysp-(7-3)], 'keyVar' => null, 'byRef' => false, 'valueVar' => $this->yyastk[$this->yysp-(7-5)], 'stmts' => is_array($this->yyastk[$this->yysp-(7-7)]) ? $this->yyastk[$this->yysp-(7-7)] : array($this->yyastk[$this->yysp-(7-7)]))); + } + + private function yyn51() { + $this->yyval = new Node_Stmt_Foreach(array('expr' => $this->yyastk[$this->yysp-(8-3)], 'keyVar' => null, 'byRef' => true, 'valueVar' => $this->yyastk[$this->yysp-(8-6)], 'stmts' => is_array($this->yyastk[$this->yysp-(8-8)]) ? $this->yyastk[$this->yysp-(8-8)] : array($this->yyastk[$this->yysp-(8-8)]))); + } + + private function yyn52() { + $this->yyval = new Node_Stmt_Foreach(array('expr' => $this->yyastk[$this->yysp-(10-3)], 'keyVar' => $this->yyastk[$this->yysp-(10-5)], 'byRef' => $this->yyastk[$this->yysp-(10-7)], 'valueVar' => $this->yyastk[$this->yysp-(10-8)], 'stmts' => is_array($this->yyastk[$this->yysp-(10-10)]) ? $this->yyastk[$this->yysp-(10-10)] : array($this->yyastk[$this->yysp-(10-10)]))); + } + + private function yyn53() { + $this->yyval = new Node_Stmt_Declare(array('declares' => $this->yyastk[$this->yysp-(5-3)], 'stmts' => is_array($this->yyastk[$this->yysp-(5-5)]) ? $this->yyastk[$this->yysp-(5-5)] : array($this->yyastk[$this->yysp-(5-5)]))); + } + + private function yyn54() { + $this->yyval = new Node_Stmt_Noop(array()); + } + + private function yyn55() { + $this->yyval = new Node_Stmt_TryCatch(array('stmts' => $this->yyastk[$this->yysp-(5-3)], 'catches' => $this->yyastk[$this->yysp-(5-5)])); + } + + private function yyn56() { + $this->yyval = new Node_Stmt_Throw(array('expr' => $this->yyastk[$this->yysp-(3-2)])); + } + + private function yyn57() { + $this->yyval = new Node_Stmt_Goto(array('name' => $this->yyastk[$this->yysp-(3-2)])); + } + + private function yyn58() { + $this->yyval = new Node_Stmt_Label(array('name' => $this->yyastk[$this->yysp-(2-1)])); + } + + private function yyn59() { + $this->yyval = array($this->yyastk[$this->yysp-(1-1)]); + } + + private function yyn60() { + $this->yyastk[$this->yysp-(2-1)][] = $this->yyastk[$this->yysp-(2-2)]; $this->yyval = $this->yyastk[$this->yysp-(2-1)]; + } + + private function yyn61() { + $this->yyval = new Node_Stmt_Catch(array('type' => $this->yyastk[$this->yysp-(8-3)], 'var' => substr($this->yyastk[$this->yysp-(8-4)], 1), 'stmts' => $this->yyastk[$this->yysp-(8-7)])); + } + + private function yyn62() { + $this->yyval = array($this->yyastk[$this->yysp-(1-1)]); + } + + private function yyn63() { + $this->yyastk[$this->yysp-(3-1)][] = $this->yyastk[$this->yysp-(3-3)]; $this->yyval = $this->yyastk[$this->yysp-(3-1)]; + } + + private function yyn64() { + $this->yyval = false; + } + + private function yyn65() { + $this->yyval = true; + } + + private function yyn66() { + $this->yyval = new Node_Stmt_Func(array('byRef' => $this->yyastk[$this->yysp-(9-2)], 'name' => $this->yyastk[$this->yysp-(9-3)], 'params' => $this->yyastk[$this->yysp-(9-5)], 'stmts' => $this->yyastk[$this->yysp-(9-8)])); + } + + private function yyn67() { + $this->yyval = new Node_Stmt_Class(array('type' => $this->yyastk[$this->yysp-(7-1)], 'name' => $this->yyastk[$this->yysp-(7-2)], 'extends' => $this->yyastk[$this->yysp-(7-3)], 'implements' => $this->yyastk[$this->yysp-(7-4)], 'stmts' => $this->yyastk[$this->yysp-(7-6)])); + } + + private function yyn68() { + $this->yyval = new Node_Stmt_Interface(array('name' => $this->yyastk[$this->yysp-(6-2)], 'extends' => $this->yyastk[$this->yysp-(6-3)], 'stmts' => $this->yyastk[$this->yysp-(6-5)])); + } + + private function yyn69() { + $this->yyval = 0; + } + + private function yyn70() { + $this->yyval = Node_Stmt_Class::MODIFIER_ABSTRACT; + } + + private function yyn71() { + $this->yyval = Node_Stmt_Class::MODIFIER_FINAL; + } + + private function yyn72() { + $this->yyval = null; + } + + private function yyn73() { + $this->yyval = $this->yyastk[$this->yysp-(2-2)]; + } + + private function yyn74() { + $this->yyval = array(); + } + + private function yyn75() { + $this->yyval = $this->yyastk[$this->yysp-(2-2)]; + } + + private function yyn76() { + $this->yyval = array(); + } + + private function yyn77() { + $this->yyval = $this->yyastk[$this->yysp-(2-2)]; + } + + private function yyn78() { + $this->yyval = array($this->yyastk[$this->yysp-(1-1)]); + } + + private function yyn79() { + $this->yyastk[$this->yysp-(3-1)][] = $this->yyastk[$this->yysp-(3-3)]; $this->yyval = $this->yyastk[$this->yysp-(3-1)]; + } + + private function yyn80() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn81() { + $this->yyval = $this->yyastk[$this->yysp-(4-2)]; + } + + private function yyn82() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn83() { + $this->yyval = $this->yyastk[$this->yysp-(4-2)]; + } + + private function yyn84() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn85() { + $this->yyval = $this->yyastk[$this->yysp-(4-2)]; + } + + private function yyn86() { + $this->yyval = array(new Node_Stmt_DeclareDeclare(array('key' => $this->yyastk[$this->yysp-(3-1)], 'value' => $this->yyastk[$this->yysp-(3-3)]))); + } + + private function yyn87() { + $this->yyastk[$this->yysp-(5-1)][] = new Node_Stmt_DeclareDeclare(array('key' => $this->yyastk[$this->yysp-(5-3)], 'value' => $this->yyastk[$this->yysp-(5-5)])); $this->yyval = $this->yyastk[$this->yysp-(5-1)]; + } + + private function yyn88() { + $this->yyval = $this->yyastk[$this->yysp-(3-2)]; + } + + private function yyn89() { + $this->yyval = $this->yyastk[$this->yysp-(4-3)]; + } + + private function yyn90() { + $this->yyval = $this->yyastk[$this->yysp-(4-2)]; + } + + private function yyn91() { + $this->yyval = $this->yyastk[$this->yysp-(5-3)]; + } + + private function yyn92() { + $this->yyval = array(); + } + + private function yyn93() { + $this->yyastk[$this->yysp-(5-1)][] = new Node_Stmt_Case(array('cond' => $this->yyastk[$this->yysp-(5-3)], 'stmts' => $this->yyastk[$this->yysp-(5-5)])); $this->yyval = $this->yyastk[$this->yysp-(5-1)]; + } + + private function yyn94() { + $this->yyastk[$this->yysp-(4-1)][] = new Node_Stmt_Case(array('cond' => null, 'stmts' => $this->yyastk[$this->yysp-(4-4)])); $this->yyval = $this->yyastk[$this->yysp-(4-1)]; + } + + private function yyn95() { + $this->yyval = $this->yyastk[$this->yysp]; + } + + private function yyn96() { + $this->yyval = $this->yyastk[$this->yysp]; + } + + private function yyn97() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn98() { + $this->yyval = $this->yyastk[$this->yysp-(4-2)]; + } + + private function yyn99() { + $this->yyval = array(); + } + + private function yyn100() { + $this->yyastk[$this->yysp-(6-1)][] = new Node_Stmt_ElseIf(array('cond' => $this->yyastk[$this->yysp-(6-4)], 'stmts' => is_array($this->yyastk[$this->yysp-(6-6)]) ? $this->yyastk[$this->yysp-(6-6)] : array($this->yyastk[$this->yysp-(6-6)]))); $this->yyval = $this->yyastk[$this->yysp-(6-1)]; + } + + private function yyn101() { + $this->yyval = array(); + } + + private function yyn102() { + $this->yyastk[$this->yysp-(7-1)][] = new Node_Stmt_ElseIf(array('cond' => $this->yyastk[$this->yysp-(7-4)], 'stmts' => $this->yyastk[$this->yysp-(7-7)])); $this->yyval = $this->yyastk[$this->yysp-(7-1)]; + } + + private function yyn103() { + $this->yyval = null; + } + + private function yyn104() { + $this->yyval = new Node_Stmt_Else(array('stmts' => is_array($this->yyastk[$this->yysp-(2-2)]) ? $this->yyastk[$this->yysp-(2-2)] : array($this->yyastk[$this->yysp-(2-2)]))); + } + + private function yyn105() { + $this->yyval = null; + } + + private function yyn106() { + $this->yyval = new Node_Stmt_Else(array('stmts' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn107() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn108() { + $this->yyval = array(); + } + + private function yyn109() { + $this->yyval = array(new Node_Stmt_FuncParam(array('type' => $this->yyastk[$this->yysp-(3-1)], 'name' => substr($this->yyastk[$this->yysp-(3-3)], 1), 'byRef' => $this->yyastk[$this->yysp-(3-2)], 'default' => null))); + } + + private function yyn110() { + $this->yyval = array(new Node_Stmt_FuncParam(array('type' => $this->yyastk[$this->yysp-(5-1)], 'name' => substr($this->yyastk[$this->yysp-(5-3)], 1), 'byRef' => $this->yyastk[$this->yysp-(5-2)], 'default' => $this->yyastk[$this->yysp-(5-5)]))); + } + + private function yyn111() { + $this->yyastk[$this->yysp-(5-1)][] = new Node_Stmt_FuncParam(array('type' => $this->yyastk[$this->yysp-(5-3)], 'name' => substr($this->yyastk[$this->yysp-(5-5)], 1), 'byRef' => $this->yyastk[$this->yysp-(5-4)], 'default' => null)); $this->yyval = $this->yyastk[$this->yysp-(5-1)]; + } + + private function yyn112() { + $this->yyastk[$this->yysp-(7-1)][] = new Node_Stmt_FuncParam(array('type' => $this->yyastk[$this->yysp-(7-3)], 'name' => substr($this->yyastk[$this->yysp-(7-5)], 1), 'byRef' => $this->yyastk[$this->yysp-(7-4)], 'default' => $this->yyastk[$this->yysp-(7-7)])); $this->yyval = $this->yyastk[$this->yysp-(7-1)]; + } + + private function yyn113() { + $this->yyval = null; + } + + private function yyn114() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn115() { + $this->yyval = 'array'; + } + + private function yyn116() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn117() { + $this->yyval = array(); + } + + private function yyn118() { + $this->yyval = array(new Node_Expr_FuncCallArg(array('value' => $this->yyastk[$this->yysp-(1-1)], 'byRef' => false))); + } + + private function yyn119() { + $this->yyval = array(new Node_Expr_FuncCallArg(array('value' => $this->yyastk[$this->yysp-(1-1)], 'byRef' => false))); + } + + private function yyn120() { + $this->yyval = array(new Node_Expr_FuncCallArg(array('value' => $this->yyastk[$this->yysp-(2-2)], 'byRef' => true))); + } + + private function yyn121() { + $this->yyastk[$this->yysp-(3-1)][] = new Node_Expr_FuncCallArg(array('value' => $this->yyastk[$this->yysp-(3-3)], 'byRef' => false)); $this->yyval = $this->yyastk[$this->yysp-(3-1)]; + } + + private function yyn122() { + $this->yyastk[$this->yysp-(3-1)][] = new Node_Expr_FuncCallArg(array('value' => $this->yyastk[$this->yysp-(3-3)], 'byRef' => false)); $this->yyval = $this->yyastk[$this->yysp-(3-1)]; + } + + private function yyn123() { + $this->yyastk[$this->yysp-(4-1)][] = new Node_Expr_FuncCallArg(array('value' => $this->yyastk[$this->yysp-(4-4)], 'byRef' => true)); $this->yyval = $this->yyastk[$this->yysp-(4-1)]; + } + + private function yyn124() { + $this->yyastk[$this->yysp-(3-1)][] = $this->yyastk[$this->yysp-(3-3)]; $this->yyval = $this->yyastk[$this->yysp-(3-1)]; + } + + private function yyn125() { + $this->yyval = array($this->yyastk[$this->yysp-(1-1)]); + } + + private function yyn126() { + $this->yyval = new Node_Variable(array('name' => substr($this->yyastk[$this->yysp-(1-1)], 1))); + } + + private function yyn127() { + $this->yyval = new Node_Variable(array('name' => $this->yyastk[$this->yysp-(2-2)])); + } + + private function yyn128() { + $this->yyval = new Node_Variable(array('name' => $this->yyastk[$this->yysp-(4-3)])); + } + + private function yyn129() { + $this->yyastk[$this->yysp-(3-1)][] = new Node_Stmt_StaticVar(array('name' => substr($this->yyastk[$this->yysp-(3-3)], 1), 'default' => null)); $this->yyval = $this->yyastk[$this->yysp-(3-1)]; + } + + private function yyn130() { + $this->yyastk[$this->yysp-(5-1)][] = new Node_Stmt_StaticVar(array('name' => substr($this->yyastk[$this->yysp-(5-3)], 1), 'default' => $this->yyastk[$this->yysp-(5-5)])); $this->yyval = $this->yyastk[$this->yysp-(5-1)]; + } + + private function yyn131() { + $this->yyval = array(new Node_Stmt_StaticVar(array('name' => substr($this->yyastk[$this->yysp-(1-1)], 1), 'default' => null))); + } + + private function yyn132() { + $this->yyval = array(new Node_Stmt_StaticVar(array('name' => substr($this->yyastk[$this->yysp-(3-1)], 1), 'default' => $this->yyastk[$this->yysp-(3-3)]))); + } + + private function yyn133() { + $this->yyastk[$this->yysp-(2-1)][] = $this->yyastk[$this->yysp-(2-2)]; $this->yyval = $this->yyastk[$this->yysp-(2-1)]; + } + + private function yyn134() { + $this->yyval = array(); + } + + private function yyn135() { + $this->yyval = new Node_Stmt_Property(array('type' => $this->yyastk[$this->yysp-(3-1)], 'props' => $this->yyastk[$this->yysp-(3-2)])); + } + + private function yyn136() { + $this->yyval = new Node_Stmt_ClassConst(array('consts' => $this->yyastk[$this->yysp-(2-1)])); + } + + private function yyn137() { + $this->yyval = new Node_Stmt_ClassMethod(array('type' => $this->yyastk[$this->yysp-(8-1)], 'byRef' => $this->yyastk[$this->yysp-(8-3)], 'name' => $this->yyastk[$this->yysp-(8-4)], 'params' => $this->yyastk[$this->yysp-(8-6)], 'stmts' => $this->yyastk[$this->yysp-(8-8)])); + } + + private function yyn138() { + $this->yyval = null; + } + + private function yyn139() { + $this->yyval = $this->yyastk[$this->yysp-(3-2)]; + } + + private function yyn140() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn141() { + $this->yyval = Node_Stmt_Class::MODIFIER_PUBLIC; + } + + private function yyn142() { + $this->yyval = Node_Stmt_Class::MODIFIER_PUBLIC; + } + + private function yyn143() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn144() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn145() { + Node_Stmt_Class::verifyModifier($this->yyastk[$this->yysp-(2-1)], $this->yyastk[$this->yysp-(2-2)]); $this->yyval = $this->yyastk[$this->yysp-(2-1)] | $this->yyastk[$this->yysp-(2-2)]; + } + + private function yyn146() { + $this->yyval = Node_Stmt_Class::MODIFIER_PUBLIC; + } + + private function yyn147() { + $this->yyval = Node_Stmt_Class::MODIFIER_PROTECTED; + } + + private function yyn148() { + $this->yyval = Node_Stmt_Class::MODIFIER_PRIVATE; + } + + private function yyn149() { + $this->yyval = Node_Stmt_Class::MODIFIER_STATIC; + } + + private function yyn150() { + $this->yyval = Node_Stmt_Class::MODIFIER_ABSTRACT; + } + + private function yyn151() { + $this->yyval = Node_Stmt_Class::MODIFIER_FINAL; + } + + private function yyn152() { + $this->yyastk[$this->yysp-(3-1)][] = new Node_Stmt_PropertyProperty(array('name' => substr($this->yyastk[$this->yysp-(3-3)], 1), 'default' => null)); $this->yyval = $this->yyastk[$this->yysp-(3-1)]; + } + + private function yyn153() { + $this->yyastk[$this->yysp-(5-1)][] = new Node_Stmt_PropertyProperty(array('name' => substr($this->yyastk[$this->yysp-(5-3)], 1), 'default' => $this->yyastk[$this->yysp-(5-5)])); $this->yyval = $this->yyastk[$this->yysp-(5-1)]; + } + + private function yyn154() { + $this->yyval = array(new Node_Stmt_PropertyProperty(array('name' => substr($this->yyastk[$this->yysp-(1-1)], 1), 'default' => null))); + } + + private function yyn155() { + $this->yyval = array(new Node_Stmt_PropertyProperty(array('name' => substr($this->yyastk[$this->yysp-(3-1)], 1), 'default' => $this->yyastk[$this->yysp-(3-3)]))); + } + + private function yyn156() { + $this->yyastk[$this->yysp-(5-1)][] = new Node_Stmt_ClassConstConst(array('name' => $this->yyastk[$this->yysp-(5-3)], 'value' => $this->yyastk[$this->yysp-(5-5)])); $this->yyval = $this->yyastk[$this->yysp-(5-1)]; + } + + private function yyn157() { + $this->yyval = array(new Node_Stmt_ClassConstConst(array('name' => $this->yyastk[$this->yysp-(4-2)], 'value' => $this->yyastk[$this->yysp-(4-4)]))); + } + + private function yyn158() { + $this->yyastk[$this->yysp-(3-1)][] = $this->yyastk[$this->yysp-(3-3)]; $this->yyval = $this->yyastk[$this->yysp-(3-1)]; + } + + private function yyn159() { + $this->yyval = array($this->yyastk[$this->yysp-(1-1)]); + } + + private function yyn160() { + $this->yyval = array(); + } + + private function yyn161() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn162() { + $this->yyval = new Node_Expr_List(array('assignList' => $this->yyastk[$this->yysp-(6-3)], 'expr' => $this->yyastk[$this->yysp-(6-6)])); + } + + private function yyn163() { + $this->yyval = new Node_Expr_Assign(array('var' => $this->yyastk[$this->yysp-(3-1)], 'expr' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn164() { + $this->yyval = new Node_Expr_AssignRef(array('var' => $this->yyastk[$this->yysp-(4-1)], 'refVar' => $this->yyastk[$this->yysp-(4-4)])); + } + + private function yyn165() { + $this->yyval = new Node_Expr_Assign(array('var' => $this->yyastk[$this->yysp-(6-1)], 'expr' => new Node_Expr_New(array('class' => $this->yyastk[$this->yysp-(6-5)], 'args' => $this->yyastk[$this->yysp-(6-6)])))); + } + + private function yyn166() { + $this->yyval = new Node_Expr_New(array('class' => $this->yyastk[$this->yysp-(3-2)], 'args' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn167() { + $this->yyval = new Node_Expr_Clone(array('expr' => $this->yyastk[$this->yysp-(2-2)])); + } + + private function yyn168() { + $this->yyval = new Node_Expr_AssignPlus(array('var' => $this->yyastk[$this->yysp-(3-1)], 'expr' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn169() { + $this->yyval = new Node_Expr_AssignMinus(array('var' => $this->yyastk[$this->yysp-(3-1)], 'expr' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn170() { + $this->yyval = new Node_Expr_AssignMul(array('var' => $this->yyastk[$this->yysp-(3-1)], 'expr' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn171() { + $this->yyval = new Node_Expr_AssignDiv(array('var' => $this->yyastk[$this->yysp-(3-1)], 'expr' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn172() { + $this->yyval = new Node_Expr_AssignConcat(array('var' => $this->yyastk[$this->yysp-(3-1)], 'expr' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn173() { + $this->yyval = new Node_Expr_AssignMod(array('var' => $this->yyastk[$this->yysp-(3-1)], 'expr' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn174() { + $this->yyval = new Node_Expr_AssignBinAnd(array('var' => $this->yyastk[$this->yysp-(3-1)], 'expr' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn175() { + $this->yyval = new Node_Expr_AssignBinOr(array('var' => $this->yyastk[$this->yysp-(3-1)], 'expr' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn176() { + $this->yyval = new Node_Expr_AssignBinXor(array('var' => $this->yyastk[$this->yysp-(3-1)], 'expr' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn177() { + $this->yyval = new Node_Expr_AssignShiftLeft(array('var' => $this->yyastk[$this->yysp-(3-1)], 'expr' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn178() { + $this->yyval = new Node_Expr_AssignShiftRight(array('var' => $this->yyastk[$this->yysp-(3-1)], 'expr' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn179() { + $this->yyval = new Node_Expr_PostInc(array('var' => $this->yyastk[$this->yysp-(2-1)])); + } + + private function yyn180() { + $this->yyval = new Node_Expr_PreInc(array('var' => $this->yyastk[$this->yysp-(2-2)])); + } + + private function yyn181() { + $this->yyval = new Node_Expr_PostDec(array('var' => $this->yyastk[$this->yysp-(2-1)])); + } + + private function yyn182() { + $this->yyval = new Node_Expr_PreDec(array('var' => $this->yyastk[$this->yysp-(2-2)])); + } + + private function yyn183() { + $this->yyval = new Node_Expr_BooleanOr(array('left' => $this->yyastk[$this->yysp-(3-1)], 'right' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn184() { + $this->yyval = new Node_Expr_BooleanAnd(array('left' => $this->yyastk[$this->yysp-(3-1)], 'right' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn185() { + $this->yyval = new Node_Expr_LogicalOr(array('left' => $this->yyastk[$this->yysp-(3-1)], 'right' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn186() { + $this->yyval = new Node_Expr_LogicalAnd(array('left' => $this->yyastk[$this->yysp-(3-1)], 'right' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn187() { + $this->yyval = new Node_Expr_LogicalXor(array('left' => $this->yyastk[$this->yysp-(3-1)], 'right' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn188() { + $this->yyval = new Node_Expr_BinaryOr(array('left' => $this->yyastk[$this->yysp-(3-1)], 'right' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn189() { + $this->yyval = new Node_Expr_BinaryAnd(array('left' => $this->yyastk[$this->yysp-(3-1)], 'right' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn190() { + $this->yyval = new Node_Expr_BinaryXor(array('left' => $this->yyastk[$this->yysp-(3-1)], 'right' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn191() { + $this->yyval = new Node_Expr_Concat(array('left' => $this->yyastk[$this->yysp-(3-1)], 'right' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn192() { + $this->yyval = new Node_Expr_Plus(array('left' => $this->yyastk[$this->yysp-(3-1)], 'right' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn193() { + $this->yyval = new Node_Expr_Minus(array('left' => $this->yyastk[$this->yysp-(3-1)], 'right' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn194() { + $this->yyval = new Node_Expr_Mul(array('left' => $this->yyastk[$this->yysp-(3-1)], 'right' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn195() { + $this->yyval = new Node_Expr_Div(array('left' => $this->yyastk[$this->yysp-(3-1)], 'right' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn196() { + $this->yyval = new Node_Expr_Mod(array('left' => $this->yyastk[$this->yysp-(3-1)], 'right' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn197() { + $this->yyval = new Node_Expr_ShiftLeft(array('left' => $this->yyastk[$this->yysp-(3-1)], 'right' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn198() { + $this->yyval = new Node_Expr_ShiftRight(array('left' => $this->yyastk[$this->yysp-(3-1)], 'right' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn199() { + $this->yyval = new Node_Expr_UnaryPlus(array('expr' => $this->yyastk[$this->yysp-(2-2)])); + } + + private function yyn200() { + $this->yyval = new Node_Expr_UnaryMinus(array('expr' => $this->yyastk[$this->yysp-(2-2)])); + } + + private function yyn201() { + $this->yyval = new Node_Expr_BooleanNot(array('expr' => $this->yyastk[$this->yysp-(2-2)])); + } + + private function yyn202() { + $this->yyval = new Node_Expr_BinaryNot(array('expr' => $this->yyastk[$this->yysp-(2-2)])); + } + + private function yyn203() { + $this->yyval = new Node_Expr_Identical(array('left' => $this->yyastk[$this->yysp-(3-1)], 'right' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn204() { + $this->yyval = new Node_Expr_NotIdentical(array('left' => $this->yyastk[$this->yysp-(3-1)], 'right' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn205() { + $this->yyval = new Node_Expr_Equal(array('left' => $this->yyastk[$this->yysp-(3-1)], 'right' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn206() { + $this->yyval = new Node_Expr_NotEqual(array('left' => $this->yyastk[$this->yysp-(3-1)], 'right' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn207() { + $this->yyval = new Node_Expr_Smaller(array('left' => $this->yyastk[$this->yysp-(3-1)], 'right' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn208() { + $this->yyval = new Node_Expr_SmallerOrEqual(array('left' => $this->yyastk[$this->yysp-(3-1)], 'right' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn209() { + $this->yyval = new Node_Expr_Greater(array('left' => $this->yyastk[$this->yysp-(3-1)], 'right' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn210() { + $this->yyval = new Node_Expr_GreaterOrEqual(array('left' => $this->yyastk[$this->yysp-(3-1)], 'right' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn211() { + $this->yyval = new Node_Expr_InstanceOf(array('expr' => $this->yyastk[$this->yysp-(3-1)], 'class' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn212() { + $this->yyval = $this->yyastk[$this->yysp-(3-2)]; + } + + private function yyn213() { + $this->yyval = new Node_Expr_Ternary(array('cond' => $this->yyastk[$this->yysp-(5-1)], 'if' => $this->yyastk[$this->yysp-(5-3)], 'else' => $this->yyastk[$this->yysp-(5-5)])); + } + + private function yyn214() { + $this->yyval = new Node_Expr_Ternary(array('cond' => $this->yyastk[$this->yysp-(4-1)], 'if' => null, 'else' => $this->yyastk[$this->yysp-(4-4)])); + } + + private function yyn215() { + $this->yyval = new Node_Expr_Isset(array('vars' => $this->yyastk[$this->yysp-(4-3)])); + } + + private function yyn216() { + $this->yyval = new Node_Expr_Empty(array('var' => $this->yyastk[$this->yysp-(4-3)])); + } + + private function yyn217() { + $this->yyval = new Node_Expr_Include(array('expr' => $this->yyastk[$this->yysp-(2-2)], 'type' => Node_Expr_Include::TYPE_INCLUDE)); + } + + private function yyn218() { + $this->yyval = new Node_Expr_Include(array('expr' => $this->yyastk[$this->yysp-(2-2)], 'type' => Node_Expr_Include::TYPE_INCLUDE_ONCE)); + } + + private function yyn219() { + $this->yyval = new Node_Expr_Eval(array('expr' => $this->yyastk[$this->yysp-(4-3)])); + } + + private function yyn220() { + $this->yyval = new Node_Expr_Include(array('expr' => $this->yyastk[$this->yysp-(2-2)], 'type' => Node_Expr_Include::TYPE_REQUIRE)); + } + + private function yyn221() { + $this->yyval = new Node_Expr_Include(array('expr' => $this->yyastk[$this->yysp-(2-2)], 'type' => Node_Expr_Include::TYPE_REQUIRE_ONCE)); + } + + private function yyn222() { + $this->yyval = new Node_Expr_IntCast(array('expr' => $this->yyastk[$this->yysp-(2-2)])); + } + + private function yyn223() { + $this->yyval = new Node_Expr_DoubleCast(array('expr' => $this->yyastk[$this->yysp-(2-2)])); + } + + private function yyn224() { + $this->yyval = new Node_Expr_StringCast(array('expr' => $this->yyastk[$this->yysp-(2-2)])); + } + + private function yyn225() { + $this->yyval = new Node_Expr_ArrayCast(array('expr' => $this->yyastk[$this->yysp-(2-2)])); + } + + private function yyn226() { + $this->yyval = new Node_Expr_ObjectCast(array('expr' => $this->yyastk[$this->yysp-(2-2)])); + } + + private function yyn227() { + $this->yyval = new Node_Expr_BoolCast(array('expr' => $this->yyastk[$this->yysp-(2-2)])); + } + + private function yyn228() { + $this->yyval = new Node_Expr_UnsetCast(array('expr' => $this->yyastk[$this->yysp-(2-2)])); + } + + private function yyn229() { + $this->yyval = new Node_Expr_Exit(array('expr' => $this->yyastk[$this->yysp-(2-2)])); + } + + private function yyn230() { + $this->yyval = new Node_Expr_ErrorSupress(array('expr' => $this->yyastk[$this->yysp-(2-2)])); + } + + private function yyn231() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn232() { + $this->yyval = new Node_Expr_Array(array('items' => $this->yyastk[$this->yysp-(4-3)])); + } + + private function yyn233() { + $this->yyval = new Node_Expr_ShellExec(array('parts' => $this->yyastk[$this->yysp-(3-2)])); + } + + private function yyn234() { + $this->yyval = new Node_Expr_Print(array('expr' => $this->yyastk[$this->yysp-(2-2)])); + } + + private function yyn235() { + $this->yyval = new Node_Expr_LambdaFunc(array('byRef' => $this->yyastk[$this->yysp-(9-2)], 'params' => $this->yyastk[$this->yysp-(9-4)], 'useVars' => $this->yyastk[$this->yysp-(9-6)], 'stmts' => $this->yyastk[$this->yysp-(9-8)])); + } + + private function yyn236() { + $this->yyval = array(); + } + + private function yyn237() { + $this->yyval = $this->yyastk[$this->yysp-(4-3)]; + } + + private function yyn238() { + $this->yyastk[$this->yysp-(4-1)][] = new Node_Expr_LambdaFuncUse(array('var' => substr($this->yyastk[$this->yysp-(4-4)], 1), 'byRef' => $this->yyastk[$this->yysp-(4-3)])); $this->yyval = $this->yyastk[$this->yysp-(4-1)]; + } + + private function yyn239() { + $this->yyval = array(new Node_Expr_LambdaFuncUse(array('var' => substr($this->yyastk[$this->yysp-(2-2)], 1), 'byRef' => $this->yyastk[$this->yysp-(2-1)]))); + } + + private function yyn240() { + $this->yyval = new Node_Expr_FuncCall(array('func' => $this->yyastk[$this->yysp-(4-1)], 'args' => $this->yyastk[$this->yysp-(4-3)])); + } + + private function yyn241() { + $this->yyval = new Node_Expr_StaticCall(array('class' => $this->yyastk[$this->yysp-(6-1)], 'func' => $this->yyastk[$this->yysp-(6-3)], 'args' => $this->yyastk[$this->yysp-(6-5)])); + } + + private function yyn242() { + $this->yyval = new Node_Expr_StaticCall(array('class' => $this->yyastk[$this->yysp-(6-1)], 'func' => $this->yyastk[$this->yysp-(6-3)], 'args' => $this->yyastk[$this->yysp-(6-5)])); + } + + private function yyn243() { + $this->yyval = new Node_Expr_StaticCall(array('class' => $this->yyastk[$this->yysp-(6-1)], 'func' => $this->yyastk[$this->yysp-(6-3)], 'args' => $this->yyastk[$this->yysp-(6-5)])); + } + + private function yyn244() { + $this->yyval = new Node_Expr_StaticCall(array('class' => $this->yyastk[$this->yysp-(6-1)], 'func' => $this->yyastk[$this->yysp-(6-3)], 'args' => $this->yyastk[$this->yysp-(6-5)])); + } + + private function yyn245() { + $this->yyval = new Node_Expr_FuncCall(array('func' => $this->yyastk[$this->yysp-(4-1)], 'args' => $this->yyastk[$this->yysp-(4-3)])); + } + + private function yyn246() { + $this->yyval = 'static'; + } + + private function yyn247() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn248() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn249() { + $this->yyastk[$this->yysp-(3-3)]->resolveType(Node_Name::RELATIVE); $this->yyval = $this->yyastk[$this->yysp-(3-3)]; + } + + private function yyn250() { + $this->yyastk[$this->yysp-(2-2)]->resolveType(Node_Name::ABSOLUTE); $this->yyval = $this->yyastk[$this->yysp-(2-2)]; + } + + private function yyn251() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn252() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn253() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn254() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn255() { + $this->yyval = $this->yyastk[$this->yysp]; + } + + private function yyn256() { + $this->yyval = new Node_Expr_PropertyFetch(array('var' => $this->yyastk[$this->yysp-(3-1)], 'name' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn257() { + $this->yyval = new Node_Expr_PropertyFetch(array('var' => $this->yyastk[$this->yysp-(3-1)], 'name' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn258() { + $this->yyval = new Node_Expr_ArrayDimFetch(array('var' => $this->yyastk[$this->yysp-(4-1)], 'dim' => $this->yyastk[$this->yysp-(4-3)])); + } + + private function yyn259() { + $this->yyval = new Node_Expr_ArrayDimFetch(array('var' => $this->yyastk[$this->yysp-(4-1)], 'dim' => $this->yyastk[$this->yysp-(4-3)])); + } + + private function yyn260() { + $this->yyval = null; + } + + private function yyn261() { + $this->yyval = null; + } + + private function yyn262() { + $this->yyval = $this->yyastk[$this->yysp-(3-2)]; + } + + private function yyn263() { + $this->yyval = array(); + } + + private function yyn264() { + $this->yyval = array(Node_Scalar_String::parseEscapeSequences($this->yyastk[$this->yysp-(1-1)])); + } + + private function yyn265() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn266() { + $this->yyval = array(); + } + + private function yyn267() { + $this->yyval = $this->yyastk[$this->yysp-(3-2)]; + } + + private function yyn268() { + $this->yyval = new Node_Scalar_LNumber(array('value' => (int) $this->yyastk[$this->yysp-(1-1)])); + } + + private function yyn269() { + $this->yyval = new Node_Scalar_DNumber(array('value' => (double) $this->yyastk[$this->yysp-(1-1)])); + } + + private function yyn270() { + $this->yyval = Node_Scalar_String::create($this->yyastk[$this->yysp-(1-1)]); + } + + private function yyn271() { + $this->yyval = new Node_Scalar_LineConst(array()); + } + + private function yyn272() { + $this->yyval = new Node_Scalar_FileConst(array()); + } + + private function yyn273() { + $this->yyval = new Node_Scalar_DirConst(array()); + } + + private function yyn274() { + $this->yyval = new Node_Scalar_ClassConst(array()); + } + + private function yyn275() { + $this->yyval = new Node_Scalar_MethodConst(array()); + } + + private function yyn276() { + $this->yyval = new Node_Scalar_FuncConst(array()); + } + + private function yyn277() { + $this->yyval = new Node_Scalar_NSConst(array()); + } + + private function yyn278() { + $this->yyval = new Node_Scalar_String(array('value' => Node_Scalar_String::parseEscapeSequences($this->yyastk[$this->yysp-(3-2)]), 'isBinary' => false, 'type' => '\'' === $this->yyastk[$this->yysp-(3-1)][3] ? Node_String_Scalar::SINGLE_QUOTED : Node_Scalar_String::DOUBLE_QUOTED)); + } + + private function yyn279() { + $this->yyval = new Node_Scalar_String(array('value' => '', 'isBinary' => false, 'type' => Node_Scalar_String::SINGLE_QUOTED)); + } + + private function yyn280() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn281() { + $this->yyval = new Node_Expr_ConstFetch(array('name' => $this->yyastk[$this->yysp-(1-1)])); + } + + private function yyn282() { + $this->yyval = new Node_Expr_UnaryPlus(array('expr' => $this->yyastk[$this->yysp-(2-2)])); + } + + private function yyn283() { + $this->yyval = new Node_Expr_UnaryMinus(array('expr' => $this->yyastk[$this->yysp-(2-2)])); + } + + private function yyn284() { + $this->yyval = new Node_Expr_Array(array('items' => $this->yyastk[$this->yysp-(4-3)])); + } + + private function yyn285() { + $this->yyval = new Node_Expr_ClassConstFetch(array('class' => $this->yyastk[$this->yysp-(3-1)], 'name' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn286() { + $this->yyval = new Node_Scalar_String(array('value' => $this->yyastk[$this->yysp-(1-1)])); + } + + private function yyn287() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn288() { + $this->yyval = new Node_Expr_ConstFetch(array('name' => $this->yyastk[$this->yysp-(1-1)])); + } + + private function yyn289() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn290() { + $this->yyval = new Node_Scalar_Encapsed(array('parts' => $this->yyastk[$this->yysp-(3-2)])); + } + + private function yyn291() { + $this->yyval = new Node_Scalar_Encapsed(array('parts' => $this->yyastk[$this->yysp-(3-2)])); + } + + private function yyn292() { + $this->yyval = array(); + } + + private function yyn293() { + $this->yyval = $this->yyastk[$this->yysp-(2-1)]; + } + + private function yyn294() { + $this->yyval = $this->yyastk[$this->yysp]; + } + + private function yyn295() { + $this->yyval = $this->yyastk[$this->yysp]; + } + + private function yyn296() { + $this->yyastk[$this->yysp-(5-1)][] = new Node_Expr_ArrayItem(array('key' => $this->yyastk[$this->yysp-(5-3)], 'value' => $this->yyastk[$this->yysp-(5-5)], 'byRef' => false)); $this->yyval = $this->yyastk[$this->yysp-(5-1)]; + } + + private function yyn297() { + $this->yyastk[$this->yysp-(3-1)][] = new Node_Expr_ArrayItem(array('key' => null, 'value' => $this->yyastk[$this->yysp-(3-3)], 'byRef' => false)); $this->yyval = $this->yyastk[$this->yysp-(3-1)]; + } + + private function yyn298() { + $this->yyval = array(new Node_Expr_ArrayItem(array('key' => $this->yyastk[$this->yysp-(3-1)], 'value' => $this->yyastk[$this->yysp-(3-3)], 'byRef' => false))); + } + + private function yyn299() { + $this->yyval = array(new Node_Expr_ArrayItem(array('key' => null, 'value' => $this->yyastk[$this->yysp-(1-1)], 'byRef' => false))); + } + + private function yyn300() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn301() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn302() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn303() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn304() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn305() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn306() { + $this->yyval = new Node_Expr_FuncCall(array('func' => $this->yyastk[$this->yysp-(4-1)], 'args' => $this->yyastk[$this->yysp-(4-3)])); + } + + private function yyn307() { + $this->yyval = new Node_Expr_MethodCall(array('var' => $this->yyastk[$this->yysp-(6-1)], 'name' => $this->yyastk[$this->yysp-(6-3)], 'args' => $this->yyastk[$this->yysp-(6-5)])); + } + + private function yyn308() { + $this->yyval = new Node_Expr_PropertyFetch(array('var' => $this->yyastk[$this->yysp-(3-1)], 'name' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn309() { + $this->yyval = new Node_Expr_ArrayDimFetch(array('var' => $this->yyastk[$this->yysp-(4-1)], 'dim' => $this->yyastk[$this->yysp-(4-3)])); + } + + private function yyn310() { + $this->yyval = new Node_Expr_ArrayDimFetch(array('var' => $this->yyastk[$this->yysp-(4-1)], 'dim' => $this->yyastk[$this->yysp-(4-3)])); + } + + private function yyn311() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn312() { + $this->yyval = new Node_Variable(array('name' => $this->yyastk[$this->yysp-(2-2)])); + } + + private function yyn313() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn314() { + $this->yyval = new Node_Expr_StaticPropertyFetch(array('class' => $this->yyastk[$this->yysp-(4-1)], 'name' => $this->yyastk[$this->yysp-(4-4)])); + } + + private function yyn315() { + $this->yyval = new Node_Expr_StaticPropertyFetch(array('class' => $this->yyastk[$this->yysp-(4-1)], 'name' => $this->yyastk[$this->yysp-(4-4)])); + } + + private function yyn316() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn317() { + $this->yyval = new Node_Expr_StaticPropertyFetch(array('class' => $this->yyastk[$this->yysp-(3-1)], 'name' => substr($this->yyastk[$this->yysp-(3-3)], 1))); + } + + private function yyn318() { + $this->yyval = new Node_Expr_StaticPropertyFetch(array('class' => $this->yyastk[$this->yysp-(6-1)], 'name' => $this->yyastk[$this->yysp-(6-5)])); + } + + private function yyn319() { + $this->yyval = new Node_Expr_ArrayDimFetch(array('var' => $this->yyastk[$this->yysp-(4-1)], 'dim' => $this->yyastk[$this->yysp-(4-3)])); + } + + private function yyn320() { + $this->yyval = new Node_Expr_ArrayDimFetch(array('var' => $this->yyastk[$this->yysp-(4-1)], 'dim' => $this->yyastk[$this->yysp-(4-3)])); + } + + private function yyn321() { + $this->yyval = new Node_Expr_ArrayDimFetch(array('var' => $this->yyastk[$this->yysp-(4-1)], 'dim' => $this->yyastk[$this->yysp-(4-3)])); + } + + private function yyn322() { + $this->yyval = new Node_Expr_ArrayDimFetch(array('var' => $this->yyastk[$this->yysp-(4-1)], 'dim' => $this->yyastk[$this->yysp-(4-3)])); + } + + private function yyn323() { + $this->yyval = new Node_Variable(array('name' => substr($this->yyastk[$this->yysp-(1-1)], 1))); + } + + private function yyn324() { + $this->yyval = new Node_Variable(array('name' => $this->yyastk[$this->yysp-(4-3)])); + } + + private function yyn325() { + $this->yyval = null; + } + + private function yyn326() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn327() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn328() { + $this->yyval = $this->yyastk[$this->yysp-(3-2)]; + } + + private function yyn329() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn330() { + $this->yyastk[$this->yysp-(3-1)][] = $this->yyastk[$this->yysp-(3-3)]; $this->yyval = $this->yyastk[$this->yysp-(3-1)]; + } + + private function yyn331() { + $this->yyval = array($this->yyastk[$this->yysp-(1-1)]); + } + + private function yyn332() { + $this->yyval = $this->yyastk[$this->yysp-(1-1)]; + } + + private function yyn333() { + $this->yyval = $this->yyastk[$this->yysp-(4-3)]; + } + + private function yyn334() { + $this->yyval = null; + } + + private function yyn335() { + $this->yyval = array(); + } + + private function yyn336() { + $this->yyval = $this->yyastk[$this->yysp-(2-1)]; + } + + private function yyn337() { + $this->yyastk[$this->yysp-(5-1)][] = new Node_Expr_ArrayItem(array('key' => $this->yyastk[$this->yysp-(5-3)], 'value' => $this->yyastk[$this->yysp-(5-5)], 'byRef' => false)); $this->yyval = $this->yyastk[$this->yysp-(5-1)]; + } + + private function yyn338() { + $this->yyastk[$this->yysp-(3-1)][] = new Node_Expr_ArrayItem(array('key' => null, 'value' => $this->yyastk[$this->yysp-(3-3)], 'byRef' => false)); $this->yyval = $this->yyastk[$this->yysp-(3-1)]; + } + + private function yyn339() { + $this->yyval = array(new Node_Expr_ArrayItem(array('key' => $this->yyastk[$this->yysp-(3-1)], 'value' => $this->yyastk[$this->yysp-(3-3)], 'byRef' => false))); + } + + private function yyn340() { + $this->yyval = array(new Node_Expr_ArrayItem(array('key' => null, 'value' => $this->yyastk[$this->yysp-(1-1)], 'byRef' => false))); + } + + private function yyn341() { + $this->yyastk[$this->yysp-(6-1)][] = new Node_Expr_ArrayItem(array('key' => $this->yyastk[$this->yysp-(6-3)], 'value' => $this->yyastk[$this->yysp-(6-6)], 'byRef' => true)); $this->yyval = $this->yyastk[$this->yysp-(6-1)]; + } + + private function yyn342() { + $this->yyastk[$this->yysp-(4-1)][] = new Node_Expr_ArrayItem(array('key' => null, 'value' => $this->yyastk[$this->yysp-(4-4)], 'byRef' => true)); $this->yyval = $this->yyastk[$this->yysp-(4-1)]; + } + + private function yyn343() { + $this->yyval = array(new Node_Expr_ArrayItem(array('key' => $this->yyastk[$this->yysp-(4-1)], 'value' => $this->yyastk[$this->yysp-(4-4)], 'byRef' => true))); + } + + private function yyn344() { + $this->yyval = array(new Node_Expr_ArrayItem(array('key' => null, 'value' => $this->yyastk[$this->yysp-(2-2)], 'byRef' => true))); + } + + private function yyn345() { + $this->yyastk[$this->yysp-(2-1)][] = $this->yyastk[$this->yysp-(2-2)]; $this->yyval = $this->yyastk[$this->yysp-(2-1)]; + } + + private function yyn346() { + $this->yyastk[$this->yysp-(2-1)][] = Node_Scalar_String::parseEscapeSequences($this->yyastk[$this->yysp-(2-2)]); $this->yyval = $this->yyastk[$this->yysp-(2-1)]; + } + + private function yyn347() { + $this->yyval = array($this->yyastk[$this->yysp-(1-1)]); + } + + private function yyn348() { + $this->yyval = array(Node_Scalar_String::parseEscapeSequences($this->yyastk[$this->yysp-(2-1)]), $this->yyastk[$this->yysp-(2-2)]); + } + + private function yyn349() { + $this->yyval = new Node_Variable(array('name' => substr($this->yyastk[$this->yysp-(1-1)], 1))); + } + + private function yyn350() { + $this->yyval = new Node_Expr_ArrayDimFetch(array('var' => new Node_Variable(array('name' => substr($this->yyastk[$this->yysp-(4-1)], 1))), 'dim' => $this->yyastk[$this->yysp-(4-3)])); + } + + private function yyn351() { + $this->yyval = new Node_Expr_PropertyFetch(array('var' => new Node_Variable(array('name' => substr($this->yyastk[$this->yysp-(3-1)], 1))), 'name' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn352() { + $this->yyval = new Node_Variable(array('name' => $this->yyastk[$this->yysp-(3-2)])); + } + + private function yyn353() { + $this->yyval = new Node_Expr_ArrayDimFetch(array('var' => new Node_Variable(array('name' => $this->yyastk[$this->yysp-(6-2)])), 'dim' => $this->yyastk[$this->yysp-(6-4)])); + } + + private function yyn354() { + $this->yyval = $this->yyastk[$this->yysp-(3-2)]; + } + + private function yyn355() { + $this->yyval = new Node_Scalar_String(array('value' => $this->yyastk[$this->yysp-(1-1)])); + } + + private function yyn356() { + $this->yyval = new Node_Scalar_LNumber(array('value' => (int) $this->yyastk[$this->yysp-(1-1)])); + } + + private function yyn357() { + $this->yyval = new Node_Variable(array('name' => substr($this->yyastk[$this->yysp-(1-1)], 1))); + } + + private function yyn358() { + $this->yyval = new Node_Expr_ClassConstFetch(array('class' => $this->yyastk[$this->yysp-(3-1)], 'name' => $this->yyastk[$this->yysp-(3-3)])); + } + + private function yyn359() { + $this->yyval = new Node_Expr_ClassConstFetch(array('class' => $this->yyastk[$this->yysp-(3-1)], 'name' => $this->yyastk[$this->yysp-(3-3)])); + } +} diff --git a/test.php b/test.php index 2394242e..823e28cb 100644 --- a/test.php +++ b/test.php @@ -7,7 +7,6 @@ function __autoload($class) { echo '
'; $parser = new Parser(); -$parser->yydebug = false; // Output Demo $stmts = $parser->yyparse(new Lexer(