State 0 conflicts: 2 shift/reduce State 4 conflicts: 2 shift/reduce State 5 conflicts: 8 shift/reduce State 23 conflicts: 2 shift/reduce State 60 conflicts: 2 shift/reduce State 72 conflicts: 2 shift/reduce State 75 conflicts: 2 shift/reduce State 77 conflicts: 2 shift/reduce State 80 conflicts: 2 shift/reduce State 81 conflicts: 2 shift/reduce State 82 conflicts: 2 shift/reduce State 83 conflicts: 2 shift/reduce State 84 conflicts: 2 shift/reduce State 85 conflicts: 2 shift/reduce State 86 conflicts: 2 shift/reduce State 87 conflicts: 2 shift/reduce State 88 conflicts: 2 shift/reduce State 89 conflicts: 2 shift/reduce State 91 conflicts: 2 shift/reduce State 92 conflicts: 2 shift/reduce State 93 conflicts: 2 shift/reduce State 97 conflicts: 2 shift/reduce State 106 conflicts: 2 shift/reduce, 1 reduce/reduce State 124 conflicts: 8 shift/reduce, 2 reduce/reduce State 137 conflicts: 8 shift/reduce State 145 conflicts: 8 shift/reduce State 146 conflicts: 2 shift/reduce State 182 conflicts: 2 shift/reduce, 1 reduce/reduce State 183 conflicts: 2 shift/reduce, 1 reduce/reduce State 200 conflicts: 2 shift/reduce State 203 conflicts: 2 shift/reduce State 204 conflicts: 2 shift/reduce State 205 conflicts: 2 shift/reduce State 207 conflicts: 12 reduce/reduce State 208 conflicts: 2 shift/reduce, 1 reduce/reduce State 213 conflicts: 8 shift/reduce State 215 conflicts: 2 shift/reduce State 216 conflicts: 2 shift/reduce State 217 conflicts: 2 shift/reduce State 218 conflicts: 2 shift/reduce State 219 conflicts: 2 shift/reduce State 226 conflicts: 2 shift/reduce State 228 conflicts: 2 shift/reduce State 279 conflicts: 2 shift/reduce State 283 conflicts: 2 shift/reduce State 295 conflicts: 8 shift/reduce State 328 conflicts: 8 shift/reduce State 329 conflicts: 2 shift/reduce State 341 conflicts: 2 shift/reduce State 345 conflicts: 2 shift/reduce State 356 conflicts: 2 shift/reduce State 359 conflicts: 2 shift/reduce State 361 conflicts: 2 shift/reduce State 362 conflicts: 2 shift/reduce State 363 conflicts: 2 shift/reduce State 364 conflicts: 2 shift/reduce State 365 conflicts: 2 shift/reduce State 366 conflicts: 2 shift/reduce State 367 conflicts: 2 shift/reduce State 368 conflicts: 2 shift/reduce State 369 conflicts: 1 shift/reduce State 372 conflicts: 2 shift/reduce State 373 conflicts: 2 shift/reduce State 374 conflicts: 2 shift/reduce State 377 conflicts: 8 shift/reduce State 382 conflicts: 2 shift/reduce State 408 conflicts: 2 shift/reduce State 409 conflicts: 2 shift/reduce State 412 conflicts: 2 shift/reduce State 425 conflicts: 2 shift/reduce State 426 conflicts: 2 shift/reduce State 428 conflicts: 8 shift/reduce State 429 conflicts: 8 shift/reduce State 432 conflicts: 8 shift/reduce State 447 conflicts: 2 shift/reduce State 453 conflicts: 2 shift/reduce State 454 conflicts: 2 shift/reduce State 458 conflicts: 8 shift/reduce State 459 conflicts: 8 shift/reduce Grammar 0 $accept: php_script "end of file" 1 t_comment_or_whitespace: T_WHITESPACE 2 | T_COMMENT 3 plain_comment_or_whitespace: t_comment_or_whitespace 4 | plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: /* empty */ 6 | plain_comment_or_whitespace 7 literal_value: T_STRING 8 | "integral number" 9 | "real number" 10 variable_variable: '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: variable_variable 12 | '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | T_VARIABLE 14 | T_PLAIN_NAME 15 qualified_name_expr: name_or_variable 16 | qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 17 property_declaration: qualified_name_expr t_comment_or_whitespaces ':' t_comment_or_whitespaces expr 18 property_declaration_seq: property_declaration 19 | property_declaration_seq t_comment_or_whitespaces ',' t_comment_or_whitespaces property_declaration 20 object_constructor: '{' t_comment_or_whitespaces '}' 21 | '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: literal_value 23 | qualified_name_expr 24 | object_constructor 25 | '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: primary_expr 27 | postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: "(int) (T_INT_CAST)" 34 | "(double) (T_DOUBLE_CAST)" 35 | "(string) (T_STRING_CAST)" 36 | "(array) (T_ARRAY_CAST)" 37 | "(object) (T_OBJECT_CAST)" 38 | "(bool) (T_BOOL_CAST)" 39 | "(unset) (T_UNSET_CAST)" 40 chain_expr: primary_expr 41 | chain_expr t_comment_or_whitespaces T_OBJECT_OPERATOR t_comment_or_whitespaces primary_expr 42 unary_expr: postfix_expr 43 | T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | T_CLONE t_comment_or_whitespaces chain_expr 45 | '-' t_comment_or_whitespaces postfix_expr 46 | '+' t_comment_or_whitespaces postfix_expr 47 | '~' t_comment_or_whitespaces postfix_expr 48 | '@' t_comment_or_whitespaces postfix_expr 49 | '&' t_comment_or_whitespaces postfix_expr 50 | "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: unary_expr 54 | unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: instanceof_expr 56 | '!' t_comment_or_whitespaces logical_not_expr 57 multiplicative_op: '*' 58 | '/' 59 | '%' 60 multiplicative_expr: logical_not_expr 61 | multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 62 additive_op: '+' 63 | '-' 64 | '.' 65 additive_expr: multiplicative_expr 66 | additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 67 bitwise_shift_op: "<< (T_SL)" 68 | ">> (T_SR)" 69 bitwise_shift_expr: additive_expr 70 | bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 71 relational_op: '<' 72 | "<= (T_IS_SMALLER_OR_EQUAL)" 73 | "== (T_IS_EQUAL)" 74 | "=== (T_IS_IDENTICAL)" 75 | "!== (T_IS_NOT_IDENTICAL)" 76 | "!= (T_IS_NOT_EQUAL)" 77 | ">= (T_IS_GREATER_OR_EQUAL)" 78 | '>' 79 relational_expr: bitwise_shift_expr 80 | relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: relational_expr 82 | bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: bitwise_and_expr 84 | bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: bitwise_xor_expr 86 | bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: bitwise_or_expr 88 | boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: boolean_and_expr 90 | boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: boolean_or_expr 92 | conditional_expression '?' conditional_expression ':' conditional_expression 93 assignament_operator: '=' 94 | "+= (T_PLUS_EQUAL)" 95 | "-= (T_MINUS_EQUAL)" 96 | ".= (T_CONCAT_EQUAL)" 97 | "*= (T_MUL_EQUAL)" 98 | "/= (T_DIV_EQUAL)" 99 | "%= (T_MOD_EQUAL)" 100 | "&= (T_AND_EQUAL)" 101 | "|= (T_OR_EQUAL)" 102 | "^= (T_XOR_EQUAL)" 103 | "<<= (T_SL_EQUAL)" 104 | ">>= (T_SR_EQUAL)" 105 assignament_expression: conditional_expression 106 | conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: assignament_expression 108 | logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: logical_and_expression 110 | logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: logical_xor_expression 112 | logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: logical_or_expression 114 | logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression 115 expr: array_key_val_expression 116 plain_expr_list: expr 117 | plain_expr_list t_comment_or_whitespaces ',' t_comment_or_whitespaces expr 118 expr_list: /* empty */ 119 | plain_expr_list 120 decl_spec: T_GLOBAL 121 | T_VAR 122 | T_PUBLIC 123 | T_PRIVATE 124 | T_STATIC 125 | T_CONST 126 plain_decl_spec_seq: decl_spec 127 | decl_spec_seq t_comment_or_whitespaces decl_spec 128 decl_spec_seq: /* empty */ 129 | plain_decl_spec_seq 130 plain_statement_delimiter: ';' 131 | T_CLOSE_TAG 132 statement_delimiter: t_comment_or_whitespaces plain_statement_delimiter 133 empty_statement: statement_delimiter 134 block_statement: '{' statement_seq t_comment_or_whitespaces '}' 135 | '{' t_comment_or_whitespaces '}' 136 expr_statement: expr statement_delimiter 137 decl_statement: plain_decl_spec_seq t_comment_or_whitespaces expr_statement 138 command_statement_name: T_RETURN 139 | T_PRINT 140 | T_ECHO 141 | T_INCLUDE 142 | T_INCLUDE_ONCE 143 | T_REQUIRE 144 | T_REQUIRE_ONCE 145 | T_THROW 146 | T_USE 147 command_statement: command_statement_name t_comment_or_whitespaces expr statement_delimiter 148 if_branch: T_IF t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 149 elseif_branch: t_comment_or_whitespaces T_ELSEIF t_comment_or_whitespaces statement 150 plain_elseif_seq: elseif_branch 151 | plain_elseif_seq elseif_branch 152 elseif_seq: /* empty */ 153 | plain_elseif_seq 154 else_branch: t_comment_or_whitespaces T_ELSE t_comment_or_whitespaces statement 155 if_statement: if_branch elseif_seq 156 | if_branch elseif_seq else_branch 157 case_statement: T_CASE t_comment_or_whitespaces expr t_comment_or_whitespaces ':' 158 default_statetement: T_DEFAULT t_comment_or_whitespaces ':' 159 break_statement: T_BREAK statement_delimiter 160 continue_statement: T_CONTINUE statement_delimiter 161 switch_statement: T_SWITCH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 162 label_statement: expr t_comment_or_whitespaces ':' 163 goto_statement: T_GOTO t_comment_or_whitespaces expr statement_delimiter 164 for_statement: T_FOR t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 165 foreach_statement: T_FOREACH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces T_AS t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 166 while_statement: T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 167 do_while_statement: T_DO t_comment_or_whitespaces statement T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' statement_delimiter 168 catch_clause: T_CATCH t_comment_or_whitespaces '(' t_comment_or_whitespaces qualified_name_expr t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces ')' t_comment_or_whitespaces block_statement 169 catch_clause_seq: catch_clause 170 | catch_clause_seq t_comment_or_whitespaces catch_clause 171 try_statement: T_TRY t_comment_or_whitespaces block_statement t_comment_or_whitespaces catch_clause_seq 172 function_body_or_semicolon: t_comment_or_whitespaces block_statement 173 | statement_delimiter 174 function_decl_statement: decl_spec_seq t_comment_or_whitespaces T_FUNCTION t_comment_or_whitespaces qualified_name_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces t_comment_or_whitespaces ')' function_body_or_semicolon 175 class_key: T_INTERFACE 176 | T_TRAIT 177 | T_CLASS 178 | T_FINAL t_comment_or_whitespaces T_CLASS 179 | T_FINAL t_comment_or_whitespaces T_INTERFACE 180 class_inheritance_key: T_EXTENDS 181 | T_IMPLEMENTS 182 base_class_decl: class_inheritance_key t_comment_or_whitespaces qualified_name_expr 183 base_class_decl_seq: base_class_decl 184 | base_class_decl_seq t_comment_or_whitespaces base_class_decl 185 base_classes_list: /* empty */ 186 | t_comment_or_whitespaces base_class_decl_seq 187 class_declaration: class_key t_comment_or_whitespaces qualified_name_expr base_classes_list t_comment_or_whitespaces block_statement 188 statement: T_INLINE_HTML 189 | T_OPEN_TAG 190 | T_OPEN_TAG_WITH_ECHO 191 | empty_statement 192 | block_statement 193 | decl_statement 194 | expr_statement 195 | command_statement 196 | if_statement 197 | case_statement 198 | default_statetement 199 | break_statement 200 | continue_statement 201 | label_statement 202 | goto_statement 203 | switch_statement 204 | for_statement 205 | foreach_statement 206 | while_statement 207 | do_while_statement 208 | try_statement 209 | function_decl_statement 210 | class_declaration 211 statement_seq: t_comment_or_whitespaces statement 212 | statement_seq t_comment_or_whitespaces statement 213 plain_php_script: t_comment_or_whitespaces statement 214 | plain_php_script t_comment_or_whitespace statement 215 php_script: /* empty */ 216 | plain_php_script t_comment_or_whitespaces Terminals, with rules where they appear "end of file" (0) 0 '!' (33) 56 '$' (36) 10 '%' (37) 59 '&' (38) 49 82 '(' (40) 25 30 43 148 161 164 165 166 167 168 174 ')' (41) 25 30 43 148 161 164 165 166 167 168 174 '*' (42) 57 '+' (43) 46 62 ',' (44) 19 117 '-' (45) 45 63 '.' (46) 64 '/' (47) 58 ':' (58) 17 92 157 158 162 ';' (59) 130 '<' (60) 71 '=' (61) 93 '>' (62) 78 '?' (63) 92 '@' (64) 48 '[' (91) 31 ']' (93) 31 '^' (94) 84 '{' (123) 10 12 20 21 32 134 135 '|' (124) 86 '}' (125) 10 12 20 21 32 134 135 '~' (126) 47 error (256) T_INLINE_HTML (258) 188 T_OPEN_TAG (259) 189 T_OPEN_TAG_WITH_ECHO (260) 190 T_PLAIN_NAME (261) 14 T_PAAMAYIM_NEKUDOTAYIM (262) 16 T_CLOSE_TAG (263) 131 T_IF (264) 148 T_ELSEIF (265) 149 T_ELSE (266) 154 T_SWITCH (267) 161 T_CASE (268) 157 T_BREAK (269) 159 T_CONTINUE (270) 160 T_DEFAULT (271) 158 T_GOTO (272) 163 T_FOR (273) 164 T_AS (274) 165 T_FOREACH (275) 165 T_WHILE (276) 166 167 T_DO (277) 167 T_WHITESPACE (278) 1 T_INCLUDE (279) 141 T_INCLUDE_ONCE (280) 142 T_REQUIRE (281) 143 T_REQUIRE_ONCE (282) 144 T_COMMENT (283) 2 T_CLASS (284) 177 178 T_INTERFACE (285) 175 179 T_TRAIT (286) 176 T_EXTENDS (287) 180 T_IMPLEMENTS (288) 181 T_FINAL (289) 178 179 T_FUNCTION (290) 174 T_VAR (291) 121 T_PUBLIC (292) 122 T_PRIVATE (293) 123 T_STATIC (294) 124 T_CONST (295) 125 T_OBJECT_OPERATOR (296) 27 41 T_RETURN (297) 138 T_GLOBAL (298) 120 T_NEW (299) 43 T_THROW (300) 145 T_TRY (301) 171 T_CATCH (302) 168 T_PRINT (303) 139 T_ECHO (304) 140 T_CLONE (305) 44 T_USE (306) 146 T_INSTANCEOF (307) 54 T_LOGICAL_AND (308) 108 T_LOGICAL_OR (309) 112 T_LOGICAL_XOR (310) 110 "integral number" (311) 8 "real number" (312) 9 T_STRING (313) 7 T_VARIABLE (314) 13 T_DOUBLE_ARROW (315) 114 "+= (T_PLUS_EQUAL)" (316) 94 "-= (T_MINUS_EQUAL)" (317) 95 "*= (T_MUL_EQUAL)" (318) 97 "/= (T_DIV_EQUAL)" (319) 98 ".= (T_CONCAT_EQUAL)" (320) 96 "%= (T_MOD_EQUAL)" (321) 99 "&= (T_AND_EQUAL)" (322) 100 "|= (T_OR_EQUAL)" (323) 101 "^= (T_XOR_EQUAL)" (324) 102 "<<= (T_SL_EQUAL)" (325) 103 ">>= (T_SR_EQUAL)" (326) 104 T_BOOLEAN_OR (327) 90 T_BOOLEAN_AND (328) 88 "== (T_IS_EQUAL)" (329) 73 "!= (T_IS_NOT_EQUAL)" (330) 76 "=== (T_IS_IDENTICAL)" (331) 74 "!== (T_IS_NOT_IDENTICAL)" (332) 75 "<= (T_IS_SMALLER_OR_EQUAL)" (333) 72 ">= (T_IS_GREATER_OR_EQUAL)" (334) 77 ">> (T_SR)" (335) 68 "<< (T_SL)" (336) 67 "++ (T_INC)" (337) 28 50 "-- (T_DEC)" (338) 29 51 "(int) (T_INT_CAST)" (339) 33 "(double) (T_DOUBLE_CAST)" (340) 34 "(string) (T_STRING_CAST)" (341) 35 "(array) (T_ARRAY_CAST)" (342) 36 "(object) (T_OBJECT_CAST)" (343) 37 "(bool) (T_BOOL_CAST)" (344) 38 "(unset) (T_UNSET_CAST)" (345) 39 Nonterminals, with rules where they appear $accept (117) on left: 0 t_comment_or_whitespace (118) on left: 1 2, on right: 3 4 214 plain_comment_or_whitespace (119) on left: 3 4, on right: 4 6 t_comment_or_whitespaces (120) on left: 5 6, on right: 10 12 16 17 19 20 21 25 27 28 29 30 31 32 41 43 44 45 46 47 48 49 50 51 52 54 56 61 66 70 80 82 84 86 88 90 106 108 110 112 114 117 127 132 134 135 137 147 148 149 154 157 158 161 162 163 164 165 166 167 168 170 171 172 174 178 179 182 184 186 187 211 212 213 216 literal_value (121) on left: 7 8 9, on right: 22 variable_variable (122) on left: 10, on right: 11 name_or_variable (123) on left: 11 12 13 14, on right: 15 16 43 168 qualified_name_expr (124) on left: 15 16, on right: 16 17 23 54 168 174 182 187 property_declaration (125) on left: 17, on right: 18 19 property_declaration_seq (126) on left: 18 19, on right: 19 21 object_constructor (127) on left: 20 21, on right: 24 primary_expr (128) on left: 22 23 24 25, on right: 26 27 40 41 postfix_expr (129) on left: 26 27 28 29 30 31 32, on right: 27 28 29 30 31 32 42 45 46 47 48 49 50 51 52 cast_operator (130) on left: 33 34 35 36 37 38 39, on right: 52 chain_expr (131) on left: 40 41, on right: 41 44 unary_expr (132) on left: 42 43 44 45 46 47 48 49 50 51 52, on right: 53 54 instanceof_expr (133) on left: 53 54, on right: 55 logical_not_expr (134) on left: 55 56, on right: 56 60 61 multiplicative_op (135) on left: 57 58 59, on right: 61 multiplicative_expr (136) on left: 60 61, on right: 61 65 66 additive_op (137) on left: 62 63 64, on right: 66 additive_expr (138) on left: 65 66, on right: 66 69 70 bitwise_shift_op (139) on left: 67 68, on right: 70 bitwise_shift_expr (140) on left: 69 70, on right: 70 79 80 relational_op (141) on left: 71 72 73 74 75 76 77 78, on right: 80 relational_expr (142) on left: 79 80, on right: 80 81 82 bitwise_and_expr (143) on left: 81 82, on right: 82 83 84 bitwise_xor_expr (144) on left: 83 84, on right: 84 85 86 bitwise_or_expr (145) on left: 85 86, on right: 86 87 88 boolean_and_expr (146) on left: 87 88, on right: 88 89 90 boolean_or_expr (147) on left: 89 90, on right: 90 91 conditional_expression (148) on left: 91 92, on right: 92 105 106 assignament_operator (149) on left: 93 94 95 96 97 98 99 100 101 102 103 104, on right: 106 assignament_expression (150) on left: 105 106, on right: 106 107 108 logical_and_expression (151) on left: 107 108, on right: 108 109 110 logical_xor_expression (152) on left: 109 110, on right: 110 111 112 logical_or_expression (153) on left: 111 112, on right: 112 113 114 array_key_val_expression (154) on left: 113 114, on right: 115 expr (155) on left: 115, on right: 10 12 17 25 31 32 116 117 136 147 148 157 161 162 163 165 166 167 plain_expr_list (156) on left: 116 117, on right: 117 119 expr_list (157) on left: 118 119, on right: 30 43 174 decl_spec (158) on left: 120 121 122 123 124 125, on right: 126 127 plain_decl_spec_seq (159) on left: 126 127, on right: 129 137 decl_spec_seq (160) on left: 128 129, on right: 127 174 plain_statement_delimiter (161) on left: 130 131, on right: 132 statement_delimiter (162) on left: 132, on right: 133 136 147 159 160 163 167 173 empty_statement (163) on left: 133, on right: 191 block_statement (164) on left: 134 135, on right: 168 171 172 187 192 expr_statement (165) on left: 136, on right: 137 164 194 decl_statement (166) on left: 137, on right: 193 command_statement_name (167) on left: 138 139 140 141 142 143 144 145 146, on right: 147 command_statement (168) on left: 147, on right: 195 if_branch (169) on left: 148, on right: 155 156 elseif_branch (170) on left: 149, on right: 150 151 plain_elseif_seq (171) on left: 150 151, on right: 151 153 elseif_seq (172) on left: 152 153, on right: 155 156 else_branch (173) on left: 154, on right: 156 if_statement (174) on left: 155 156, on right: 196 case_statement (175) on left: 157, on right: 197 default_statetement (176) on left: 158, on right: 198 break_statement (177) on left: 159, on right: 199 continue_statement (178) on left: 160, on right: 200 switch_statement (179) on left: 161, on right: 203 label_statement (180) on left: 162, on right: 201 goto_statement (181) on left: 163, on right: 202 for_statement (182) on left: 164, on right: 204 foreach_statement (183) on left: 165, on right: 205 while_statement (184) on left: 166, on right: 206 do_while_statement (185) on left: 167, on right: 207 catch_clause (186) on left: 168, on right: 169 170 catch_clause_seq (187) on left: 169 170, on right: 170 171 try_statement (188) on left: 171, on right: 208 function_body_or_semicolon (189) on left: 172 173, on right: 174 function_decl_statement (190) on left: 174, on right: 209 class_key (191) on left: 175 176 177 178 179, on right: 187 class_inheritance_key (192) on left: 180 181, on right: 182 base_class_decl (193) on left: 182, on right: 183 184 base_class_decl_seq (194) on left: 183 184, on right: 184 186 base_classes_list (195) on left: 185 186, on right: 187 class_declaration (196) on left: 187, on right: 210 statement (197) on left: 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210, on right: 148 149 154 161 164 165 166 167 211 212 213 214 statement_seq (198) on left: 211 212, on right: 134 212 plain_php_script (199) on left: 213 214, on right: 214 216 php_script (200) on left: 215 216, on right: 0 state 0 0 $accept: . php_script "end of file" 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_INLINE_HTML, T_OPEN_TAG, T_OPEN_TAG_WITH_ECHO, T_PLAIN_NAME, T_CLOSE_TAG, T_IF, T_SWITCH, T_CASE, T_BREAK, T_CONTINUE, T_DEFAULT, T_GOTO, T_FOR, T_FOREACH, T_WHILE, T_DO, T_WHITESPACE, T_INCLUDE, T_INCLUDE_ONCE, T_REQUIRE, T_REQUIRE_ONCE, T_COMMENT, T_CLASS, T_INTERFACE, T_TRAIT, T_FINAL, T_FUNCTION, T_VAR, T_PUBLIC, T_PRIVATE, T_STATIC, T_CONST, T_RETURN, T_GLOBAL, T_NEW, T_THROW, T_TRY, T_PRINT, T_ECHO, T_CLONE, T_USE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!', ';'] 6 | . plain_comment_or_whitespace 213 plain_php_script: . t_comment_or_whitespaces statement 214 | . plain_php_script t_comment_or_whitespace statement 215 php_script: . ["end of file"] 216 | . plain_php_script t_comment_or_whitespaces T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 "end of file" reduce using rule 215 (php_script) T_WHITESPACE [reduce using rule 5 (t_comment_or_whitespaces)] T_COMMENT [reduce using rule 5 (t_comment_or_whitespaces)] $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 5 plain_php_script go to state 6 php_script go to state 7 state 1 1 t_comment_or_whitespace: T_WHITESPACE . $default reduce using rule 1 (t_comment_or_whitespace) state 2 2 t_comment_or_whitespace: T_COMMENT . $default reduce using rule 2 (t_comment_or_whitespace) state 3 3 plain_comment_or_whitespace: t_comment_or_whitespace . $default reduce using rule 3 (plain_comment_or_whitespace) state 4 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 4 plain_comment_or_whitespace: plain_comment_or_whitespace . t_comment_or_whitespace 6 t_comment_or_whitespaces: plain_comment_or_whitespace . ["end of file", T_INLINE_HTML, T_OPEN_TAG, T_OPEN_TAG_WITH_ECHO, T_PLAIN_NAME, T_PAAMAYIM_NEKUDOTAYIM, T_CLOSE_TAG, T_IF, T_ELSEIF, T_ELSE, T_SWITCH, T_CASE, T_BREAK, T_CONTINUE, T_DEFAULT, T_GOTO, T_FOR, T_AS, T_FOREACH, T_WHILE, T_DO, T_WHITESPACE, T_INCLUDE, T_INCLUDE_ONCE, T_REQUIRE, T_REQUIRE_ONCE, T_COMMENT, T_CLASS, T_INTERFACE, T_TRAIT, T_EXTENDS, T_IMPLEMENTS, T_FINAL, T_FUNCTION, T_VAR, T_PUBLIC, T_PRIVATE, T_STATIC, T_CONST, T_OBJECT_OPERATOR, T_RETURN, T_GLOBAL, T_NEW, T_THROW, T_TRY, T_CATCH, T_PRINT, T_ECHO, T_CLONE, T_USE, T_INSTANCEOF, T_LOGICAL_AND, T_LOGICAL_OR, T_LOGICAL_XOR, "integral number", "real number", T_STRING, T_VARIABLE, T_DOUBLE_ARROW, "+= (T_PLUS_EQUAL)", "-= (T_MINUS_EQUAL)", "*= (T_MUL_EQUAL)", "/= (T_DIV_EQUAL)", ".= (T_CONCAT_EQUAL)", "%= (T_MOD_EQUAL)", "&= (T_AND_EQUAL)", "|= (T_OR_EQUAL)", "^= (T_XOR_EQUAL)", "<<= (T_SL_EQUAL)", ">>= (T_SR_EQUAL)", T_BOOLEAN_OR, T_BOOLEAN_AND, "== (T_IS_EQUAL)", "!= (T_IS_NOT_EQUAL)", "=== (T_IS_IDENTICAL)", "!== (T_IS_NOT_IDENTICAL)", "<= (T_IS_SMALLER_OR_EQUAL)", ">= (T_IS_GREATER_OR_EQUAL)", ">> (T_SR)", "<< (T_SL)", "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '}', ':', ',', '(', ')', '[', ']', '-', '+', '~', '@', '&', '!', '*', '/', '%', '.', '<', '>', '^', '|', '=', ';'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 6 (t_comment_or_whitespaces)] T_COMMENT [reduce using rule 6 (t_comment_or_whitespaces)] $default reduce using rule 6 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 8 state 5 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_CLOSE_TAG, ';'] 6 | . plain_comment_or_whitespace 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: . logical_xor_expression 112 | . logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: . logical_or_expression 114 | . logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression 115 expr: . array_key_val_expression 120 decl_spec: . T_GLOBAL 121 | . T_VAR 122 | . T_PUBLIC 123 | . T_PRIVATE 124 | . T_STATIC 125 | . T_CONST 126 plain_decl_spec_seq: . decl_spec 127 | . decl_spec_seq t_comment_or_whitespaces decl_spec 128 decl_spec_seq: . [T_WHITESPACE, T_COMMENT, T_FUNCTION, T_VAR, T_PUBLIC, T_PRIVATE, T_STATIC, T_CONST, T_GLOBAL] 129 | . plain_decl_spec_seq 132 statement_delimiter: . t_comment_or_whitespaces plain_statement_delimiter 133 empty_statement: . statement_delimiter 134 block_statement: . '{' statement_seq t_comment_or_whitespaces '}' 135 | . '{' t_comment_or_whitespaces '}' 136 expr_statement: . expr statement_delimiter 137 decl_statement: . plain_decl_spec_seq t_comment_or_whitespaces expr_statement 138 command_statement_name: . T_RETURN 139 | . T_PRINT 140 | . T_ECHO 141 | . T_INCLUDE 142 | . T_INCLUDE_ONCE 143 | . T_REQUIRE 144 | . T_REQUIRE_ONCE 145 | . T_THROW 146 | . T_USE 147 command_statement: . command_statement_name t_comment_or_whitespaces expr statement_delimiter 148 if_branch: . T_IF t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 155 if_statement: . if_branch elseif_seq 156 | . if_branch elseif_seq else_branch 157 case_statement: . T_CASE t_comment_or_whitespaces expr t_comment_or_whitespaces ':' 158 default_statetement: . T_DEFAULT t_comment_or_whitespaces ':' 159 break_statement: . T_BREAK statement_delimiter 160 continue_statement: . T_CONTINUE statement_delimiter 161 switch_statement: . T_SWITCH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 162 label_statement: . expr t_comment_or_whitespaces ':' 163 goto_statement: . T_GOTO t_comment_or_whitespaces expr statement_delimiter 164 for_statement: . T_FOR t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 165 foreach_statement: . T_FOREACH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces T_AS t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 166 while_statement: . T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 167 do_while_statement: . T_DO t_comment_or_whitespaces statement T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' statement_delimiter 171 try_statement: . T_TRY t_comment_or_whitespaces block_statement t_comment_or_whitespaces catch_clause_seq 174 function_decl_statement: . decl_spec_seq t_comment_or_whitespaces T_FUNCTION t_comment_or_whitespaces qualified_name_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces t_comment_or_whitespaces ')' function_body_or_semicolon 175 class_key: . T_INTERFACE 176 | . T_TRAIT 177 | . T_CLASS 178 | . T_FINAL t_comment_or_whitespaces T_CLASS 179 | . T_FINAL t_comment_or_whitespaces T_INTERFACE 187 class_declaration: . class_key t_comment_or_whitespaces qualified_name_expr base_classes_list t_comment_or_whitespaces block_statement 188 statement: . T_INLINE_HTML 189 | . T_OPEN_TAG 190 | . T_OPEN_TAG_WITH_ECHO 191 | . empty_statement 192 | . block_statement 193 | . decl_statement 194 | . expr_statement 195 | . command_statement 196 | . if_statement 197 | . case_statement 198 | . default_statetement 199 | . break_statement 200 | . continue_statement 201 | . label_statement 202 | . goto_statement 203 | . switch_statement 204 | . for_statement 205 | . foreach_statement 206 | . while_statement 207 | . do_while_statement 208 | . try_statement 209 | . function_decl_statement 210 | . class_declaration 213 plain_php_script: t_comment_or_whitespaces . statement T_INLINE_HTML shift, and go to state 9 T_OPEN_TAG shift, and go to state 10 T_OPEN_TAG_WITH_ECHO shift, and go to state 11 T_PLAIN_NAME shift, and go to state 12 T_IF shift, and go to state 13 T_SWITCH shift, and go to state 14 T_CASE shift, and go to state 15 T_BREAK shift, and go to state 16 T_CONTINUE shift, and go to state 17 T_DEFAULT shift, and go to state 18 T_GOTO shift, and go to state 19 T_FOR shift, and go to state 20 T_FOREACH shift, and go to state 21 T_WHILE shift, and go to state 22 T_DO shift, and go to state 23 T_WHITESPACE shift, and go to state 1 T_INCLUDE shift, and go to state 24 T_INCLUDE_ONCE shift, and go to state 25 T_REQUIRE shift, and go to state 26 T_REQUIRE_ONCE shift, and go to state 27 T_COMMENT shift, and go to state 2 T_CLASS shift, and go to state 28 T_INTERFACE shift, and go to state 29 T_TRAIT shift, and go to state 30 T_FINAL shift, and go to state 31 T_VAR shift, and go to state 32 T_PUBLIC shift, and go to state 33 T_PRIVATE shift, and go to state 34 T_STATIC shift, and go to state 35 T_CONST shift, and go to state 36 T_RETURN shift, and go to state 37 T_GLOBAL shift, and go to state 38 T_NEW shift, and go to state 39 T_THROW shift, and go to state 40 T_TRY shift, and go to state 41 T_PRINT shift, and go to state 42 T_ECHO shift, and go to state 43 T_CLONE shift, and go to state 44 T_USE shift, and go to state 45 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 60 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 T_WHITESPACE [reduce using rule 128 (decl_spec_seq)] T_COMMENT [reduce using rule 128 (decl_spec_seq)] T_FUNCTION reduce using rule 128 (decl_spec_seq) T_VAR [reduce using rule 128 (decl_spec_seq)] T_PUBLIC [reduce using rule 128 (decl_spec_seq)] T_PRIVATE [reduce using rule 128 (decl_spec_seq)] T_STATIC [reduce using rule 128 (decl_spec_seq)] T_CONST [reduce using rule 128 (decl_spec_seq)] T_GLOBAL [reduce using rule 128 (decl_spec_seq)] $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 68 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 92 logical_or_expression go to state 93 array_key_val_expression go to state 94 expr go to state 95 decl_spec go to state 96 plain_decl_spec_seq go to state 97 decl_spec_seq go to state 98 statement_delimiter go to state 99 empty_statement go to state 100 block_statement go to state 101 expr_statement go to state 102 decl_statement go to state 103 command_statement_name go to state 104 command_statement go to state 105 if_branch go to state 106 if_statement go to state 107 case_statement go to state 108 default_statetement go to state 109 break_statement go to state 110 continue_statement go to state 111 switch_statement go to state 112 label_statement go to state 113 goto_statement go to state 114 for_statement go to state 115 foreach_statement go to state 116 while_statement go to state 117 do_while_statement go to state 118 try_statement go to state 119 function_decl_statement go to state 120 class_key go to state 121 class_declaration go to state 122 statement go to state 123 state 6 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . ["end of file"] 6 | . plain_comment_or_whitespace 214 plain_php_script: plain_php_script . t_comment_or_whitespace statement 216 php_script: plain_php_script . t_comment_or_whitespaces T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 124 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 125 state 7 0 $accept: php_script . "end of file" "end of file" shift, and go to state 126 state 8 4 plain_comment_or_whitespace: plain_comment_or_whitespace t_comment_or_whitespace . $default reduce using rule 4 (plain_comment_or_whitespace) state 9 188 statement: T_INLINE_HTML . $default reduce using rule 188 (statement) state 10 189 statement: T_OPEN_TAG . $default reduce using rule 189 (statement) state 11 190 statement: T_OPEN_TAG_WITH_ECHO . $default reduce using rule 190 (statement) state 12 14 name_or_variable: T_PLAIN_NAME . $default reduce using rule 14 (name_or_variable) state 13 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . ['('] 6 | . plain_comment_or_whitespace 148 if_branch: T_IF . t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 127 state 14 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . ['('] 6 | . plain_comment_or_whitespace 161 switch_statement: T_SWITCH . t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 128 state 15 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 157 case_statement: T_CASE . t_comment_or_whitespaces expr t_comment_or_whitespaces ':' T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 129 state 16 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_CLOSE_TAG, ';'] 6 | . plain_comment_or_whitespace 132 statement_delimiter: . t_comment_or_whitespaces plain_statement_delimiter 159 break_statement: T_BREAK . statement_delimiter T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 68 statement_delimiter go to state 130 state 17 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_CLOSE_TAG, ';'] 6 | . plain_comment_or_whitespace 132 statement_delimiter: . t_comment_or_whitespaces plain_statement_delimiter 160 continue_statement: T_CONTINUE . statement_delimiter T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 68 statement_delimiter go to state 131 state 18 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [':'] 6 | . plain_comment_or_whitespace 158 default_statetement: T_DEFAULT . t_comment_or_whitespaces ':' T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 132 state 19 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 163 goto_statement: T_GOTO . t_comment_or_whitespaces expr statement_delimiter T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 133 state 20 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . ['('] 6 | . plain_comment_or_whitespace 164 for_statement: T_FOR . t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces ')' t_comment_or_whitespaces statement T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 134 state 21 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . ['('] 6 | . plain_comment_or_whitespace 165 foreach_statement: T_FOREACH . t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces T_AS t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 135 state 22 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . ['('] 6 | . plain_comment_or_whitespace 166 while_statement: T_WHILE . t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 136 state 23 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_INLINE_HTML, T_OPEN_TAG, T_OPEN_TAG_WITH_ECHO, T_PLAIN_NAME, T_CLOSE_TAG, T_IF, T_SWITCH, T_CASE, T_BREAK, T_CONTINUE, T_DEFAULT, T_GOTO, T_FOR, T_FOREACH, T_WHILE, T_DO, T_WHITESPACE, T_INCLUDE, T_INCLUDE_ONCE, T_REQUIRE, T_REQUIRE_ONCE, T_COMMENT, T_CLASS, T_INTERFACE, T_TRAIT, T_FINAL, T_FUNCTION, T_VAR, T_PUBLIC, T_PRIVATE, T_STATIC, T_CONST, T_RETURN, T_GLOBAL, T_NEW, T_THROW, T_TRY, T_PRINT, T_ECHO, T_CLONE, T_USE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!', ';'] 6 | . plain_comment_or_whitespace 167 do_while_statement: T_DO . t_comment_or_whitespaces statement T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' statement_delimiter T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 5 (t_comment_or_whitespaces)] T_COMMENT [reduce using rule 5 (t_comment_or_whitespaces)] $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 137 state 24 141 command_statement_name: T_INCLUDE . $default reduce using rule 141 (command_statement_name) state 25 142 command_statement_name: T_INCLUDE_ONCE . $default reduce using rule 142 (command_statement_name) state 26 143 command_statement_name: T_REQUIRE . $default reduce using rule 143 (command_statement_name) state 27 144 command_statement_name: T_REQUIRE_ONCE . $default reduce using rule 144 (command_statement_name) state 28 177 class_key: T_CLASS . $default reduce using rule 177 (class_key) state 29 175 class_key: T_INTERFACE . $default reduce using rule 175 (class_key) state 30 176 class_key: T_TRAIT . $default reduce using rule 176 (class_key) state 31 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_CLASS, T_INTERFACE] 6 | . plain_comment_or_whitespace 178 class_key: T_FINAL . t_comment_or_whitespaces T_CLASS 179 | T_FINAL . t_comment_or_whitespaces T_INTERFACE T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 138 state 32 121 decl_spec: T_VAR . $default reduce using rule 121 (decl_spec) state 33 122 decl_spec: T_PUBLIC . $default reduce using rule 122 (decl_spec) state 34 123 decl_spec: T_PRIVATE . $default reduce using rule 123 (decl_spec) state 35 124 decl_spec: T_STATIC . $default reduce using rule 124 (decl_spec) state 36 125 decl_spec: T_CONST . $default reduce using rule 125 (decl_spec) state 37 138 command_statement_name: T_RETURN . $default reduce using rule 138 (command_statement_name) state 38 120 decl_spec: T_GLOBAL . $default reduce using rule 120 (decl_spec) state 39 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_VARIABLE, '$', '{'] 6 | . plain_comment_or_whitespace 43 unary_expr: T_NEW . t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 139 state 40 145 command_statement_name: T_THROW . $default reduce using rule 145 (command_statement_name) state 41 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . ['{'] 6 | . plain_comment_or_whitespace 171 try_statement: T_TRY . t_comment_or_whitespaces block_statement t_comment_or_whitespaces catch_clause_seq T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 140 state 42 139 command_statement_name: T_PRINT . $default reduce using rule 139 (command_statement_name) state 43 140 command_statement_name: T_ECHO . $default reduce using rule 140 (command_statement_name) state 44 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, "integral number", "real number", T_STRING, T_VARIABLE, '$', '{', '('] 6 | . plain_comment_or_whitespace 44 unary_expr: T_CLONE . t_comment_or_whitespaces chain_expr T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 141 state 45 146 command_statement_name: T_USE . $default reduce using rule 146 (command_statement_name) state 46 8 literal_value: "integral number" . $default reduce using rule 8 (literal_value) state 47 9 literal_value: "real number" . $default reduce using rule 9 (literal_value) state 48 7 literal_value: T_STRING . $default reduce using rule 7 (literal_value) state 49 13 name_or_variable: T_VARIABLE . $default reduce using rule 13 (name_or_variable) state 50 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, "integral number", "real number", T_STRING, T_VARIABLE, '$', '{', '('] 6 | . plain_comment_or_whitespace 50 unary_expr: "++ (T_INC)" . t_comment_or_whitespaces postfix_expr T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 142 state 51 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, "integral number", "real number", T_STRING, T_VARIABLE, '$', '{', '('] 6 | . plain_comment_or_whitespace 51 unary_expr: "-- (T_DEC)" . t_comment_or_whitespaces postfix_expr T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 143 state 52 33 cast_operator: "(int) (T_INT_CAST)" . $default reduce using rule 33 (cast_operator) state 53 34 cast_operator: "(double) (T_DOUBLE_CAST)" . $default reduce using rule 34 (cast_operator) state 54 35 cast_operator: "(string) (T_STRING_CAST)" . $default reduce using rule 35 (cast_operator) state 55 36 cast_operator: "(array) (T_ARRAY_CAST)" . $default reduce using rule 36 (cast_operator) state 56 37 cast_operator: "(object) (T_OBJECT_CAST)" . $default reduce using rule 37 (cast_operator) state 57 38 cast_operator: "(bool) (T_BOOL_CAST)" . $default reduce using rule 38 (cast_operator) state 58 39 cast_operator: "(unset) (T_UNSET_CAST)" . $default reduce using rule 39 (cast_operator) state 59 10 variable_variable: '$' . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' '{' shift, and go to state 144 state 60 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_INLINE_HTML, T_OPEN_TAG, T_OPEN_TAG_WITH_ECHO, T_PLAIN_NAME, T_CLOSE_TAG, T_IF, T_SWITCH, T_CASE, T_BREAK, T_CONTINUE, T_DEFAULT, T_GOTO, T_FOR, T_FOREACH, T_WHILE, T_DO, T_WHITESPACE, T_INCLUDE, T_INCLUDE_ONCE, T_REQUIRE, T_REQUIRE_ONCE, T_COMMENT, T_CLASS, T_INTERFACE, T_TRAIT, T_FINAL, T_FUNCTION, T_VAR, T_PUBLIC, T_PRIVATE, T_STATIC, T_CONST, T_RETURN, T_GLOBAL, T_NEW, T_THROW, T_TRY, T_PRINT, T_ECHO, T_CLONE, T_USE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '}', '(', '-', '+', '~', '@', '&', '!', ';'] 6 | . plain_comment_or_whitespace 12 name_or_variable: '{' . t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 20 object_constructor: '{' . t_comment_or_whitespaces '}' 21 | '{' . t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 134 block_statement: '{' . statement_seq t_comment_or_whitespaces '}' 135 | '{' . t_comment_or_whitespaces '}' 211 statement_seq: . t_comment_or_whitespaces statement 212 | . statement_seq t_comment_or_whitespaces statement T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 5 (t_comment_or_whitespaces)] T_COMMENT [reduce using rule 5 (t_comment_or_whitespaces)] $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 145 statement_seq go to state 146 state 61 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 25 primary_expr: '(' . t_comment_or_whitespaces expr t_comment_or_whitespaces ')' T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 147 state 62 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, "integral number", "real number", T_STRING, T_VARIABLE, '$', '{', '('] 6 | . plain_comment_or_whitespace 45 unary_expr: '-' . t_comment_or_whitespaces postfix_expr T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 148 state 63 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, "integral number", "real number", T_STRING, T_VARIABLE, '$', '{', '('] 6 | . plain_comment_or_whitespace 46 unary_expr: '+' . t_comment_or_whitespaces postfix_expr T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 149 state 64 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, "integral number", "real number", T_STRING, T_VARIABLE, '$', '{', '('] 6 | . plain_comment_or_whitespace 47 unary_expr: '~' . t_comment_or_whitespaces postfix_expr T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 150 state 65 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, "integral number", "real number", T_STRING, T_VARIABLE, '$', '{', '('] 6 | . plain_comment_or_whitespace 48 unary_expr: '@' . t_comment_or_whitespaces postfix_expr T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 151 state 66 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, "integral number", "real number", T_STRING, T_VARIABLE, '$', '{', '('] 6 | . plain_comment_or_whitespace 49 unary_expr: '&' . t_comment_or_whitespaces postfix_expr T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 152 state 67 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 56 logical_not_expr: '!' . t_comment_or_whitespaces logical_not_expr T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 153 state 68 130 plain_statement_delimiter: . ';' 131 | . T_CLOSE_TAG 132 statement_delimiter: t_comment_or_whitespaces . plain_statement_delimiter T_CLOSE_TAG shift, and go to state 154 ';' shift, and go to state 155 plain_statement_delimiter go to state 156 state 69 22 primary_expr: literal_value . $default reduce using rule 22 (primary_expr) state 70 11 name_or_variable: variable_variable . $default reduce using rule 11 (name_or_variable) state 71 15 qualified_name_expr: name_or_variable . $default reduce using rule 15 (qualified_name_expr) state 72 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PAAMAYIM_NEKUDOTAYIM] 6 | . plain_comment_or_whitespace 16 qualified_name_expr: qualified_name_expr . t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 23 primary_expr: qualified_name_expr . [T_CLOSE_TAG, T_AS, T_WHITESPACE, T_COMMENT, T_OBJECT_OPERATOR, T_INSTANCEOF, T_LOGICAL_AND, T_LOGICAL_OR, T_LOGICAL_XOR, T_DOUBLE_ARROW, "+= (T_PLUS_EQUAL)", "-= (T_MINUS_EQUAL)", "*= (T_MUL_EQUAL)", "/= (T_DIV_EQUAL)", ".= (T_CONCAT_EQUAL)", "%= (T_MOD_EQUAL)", "&= (T_AND_EQUAL)", "|= (T_OR_EQUAL)", "^= (T_XOR_EQUAL)", "<<= (T_SL_EQUAL)", ">>= (T_SR_EQUAL)", T_BOOLEAN_OR, T_BOOLEAN_AND, "== (T_IS_EQUAL)", "!= (T_IS_NOT_EQUAL)", "=== (T_IS_IDENTICAL)", "!== (T_IS_NOT_IDENTICAL)", "<= (T_IS_SMALLER_OR_EQUAL)", ">= (T_IS_GREATER_OR_EQUAL)", ">> (T_SR)", "<< (T_SL)", "++ (T_INC)", "-- (T_DEC)", '{', '}', ':', ',', '(', ')', '[', ']', '-', '+', '&', '*', '/', '%', '.', '<', '>', '^', '|', '?', '=', ';'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_PAAMAYIM_NEKUDOTAYIM reduce using rule 5 (t_comment_or_whitespaces) T_WHITESPACE [reduce using rule 23 (primary_expr)] T_COMMENT [reduce using rule 23 (primary_expr)] $default reduce using rule 23 (primary_expr) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 157 state 73 24 primary_expr: object_constructor . $default reduce using rule 24 (primary_expr) state 74 26 postfix_expr: primary_expr . $default reduce using rule 26 (postfix_expr) state 75 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_OBJECT_OPERATOR, "++ (T_INC)", "-- (T_DEC)", '{', '(', '['] 6 | . plain_comment_or_whitespace 27 postfix_expr: postfix_expr . t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | postfix_expr . t_comment_or_whitespaces "++ (T_INC)" 29 | postfix_expr . t_comment_or_whitespaces "-- (T_DEC)" 30 | postfix_expr . t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | postfix_expr . t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | postfix_expr . t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 42 unary_expr: postfix_expr . [T_CLOSE_TAG, T_AS, T_WHITESPACE, T_COMMENT, T_INSTANCEOF, T_LOGICAL_AND, T_LOGICAL_OR, T_LOGICAL_XOR, T_DOUBLE_ARROW, "+= (T_PLUS_EQUAL)", "-= (T_MINUS_EQUAL)", "*= (T_MUL_EQUAL)", "/= (T_DIV_EQUAL)", ".= (T_CONCAT_EQUAL)", "%= (T_MOD_EQUAL)", "&= (T_AND_EQUAL)", "|= (T_OR_EQUAL)", "^= (T_XOR_EQUAL)", "<<= (T_SL_EQUAL)", ">>= (T_SR_EQUAL)", T_BOOLEAN_OR, T_BOOLEAN_AND, "== (T_IS_EQUAL)", "!= (T_IS_NOT_EQUAL)", "=== (T_IS_IDENTICAL)", "!== (T_IS_NOT_IDENTICAL)", "<= (T_IS_SMALLER_OR_EQUAL)", ">= (T_IS_GREATER_OR_EQUAL)", ">> (T_SR)", "<< (T_SL)", '}', ':', ',', ')', ']', '-', '+', '&', '*', '/', '%', '.', '<', '>', '^', '|', '?', '=', ';'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 42 (unary_expr)] T_COMMENT [reduce using rule 42 (unary_expr)] T_OBJECT_OPERATOR reduce using rule 5 (t_comment_or_whitespaces) "++ (T_INC)" reduce using rule 5 (t_comment_or_whitespaces) "-- (T_DEC)" reduce using rule 5 (t_comment_or_whitespaces) '{' reduce using rule 5 (t_comment_or_whitespaces) '(' reduce using rule 5 (t_comment_or_whitespaces) '[' reduce using rule 5 (t_comment_or_whitespaces) $default reduce using rule 42 (unary_expr) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 158 state 76 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, "integral number", "real number", T_STRING, T_VARIABLE, '$', '{', '('] 6 | . plain_comment_or_whitespace 52 unary_expr: cast_operator . t_comment_or_whitespaces postfix_expr T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 159 state 77 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_INSTANCEOF] 6 | . plain_comment_or_whitespace 53 instanceof_expr: unary_expr . [T_CLOSE_TAG, T_AS, T_WHITESPACE, T_COMMENT, T_LOGICAL_AND, T_LOGICAL_OR, T_LOGICAL_XOR, T_DOUBLE_ARROW, "+= (T_PLUS_EQUAL)", "-= (T_MINUS_EQUAL)", "*= (T_MUL_EQUAL)", "/= (T_DIV_EQUAL)", ".= (T_CONCAT_EQUAL)", "%= (T_MOD_EQUAL)", "&= (T_AND_EQUAL)", "|= (T_OR_EQUAL)", "^= (T_XOR_EQUAL)", "<<= (T_SL_EQUAL)", ">>= (T_SR_EQUAL)", T_BOOLEAN_OR, T_BOOLEAN_AND, "== (T_IS_EQUAL)", "!= (T_IS_NOT_EQUAL)", "=== (T_IS_IDENTICAL)", "!== (T_IS_NOT_IDENTICAL)", "<= (T_IS_SMALLER_OR_EQUAL)", ">= (T_IS_GREATER_OR_EQUAL)", ">> (T_SR)", "<< (T_SL)", '}', ':', ',', ')', ']', '-', '+', '&', '*', '/', '%', '.', '<', '>', '^', '|', '?', '=', ';'] 54 | unary_expr . t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 53 (instanceof_expr)] T_COMMENT [reduce using rule 53 (instanceof_expr)] T_INSTANCEOF reduce using rule 5 (t_comment_or_whitespaces) $default reduce using rule 53 (instanceof_expr) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 160 state 78 55 logical_not_expr: instanceof_expr . $default reduce using rule 55 (logical_not_expr) state 79 60 multiplicative_expr: logical_not_expr . $default reduce using rule 60 (multiplicative_expr) state 80 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . ['*', '/', '%'] 6 | . plain_comment_or_whitespace 61 multiplicative_expr: multiplicative_expr . t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: multiplicative_expr . [T_CLOSE_TAG, T_AS, T_WHITESPACE, T_COMMENT, T_LOGICAL_AND, T_LOGICAL_OR, T_LOGICAL_XOR, T_DOUBLE_ARROW, "+= (T_PLUS_EQUAL)", "-= (T_MINUS_EQUAL)", "*= (T_MUL_EQUAL)", "/= (T_DIV_EQUAL)", ".= (T_CONCAT_EQUAL)", "%= (T_MOD_EQUAL)", "&= (T_AND_EQUAL)", "|= (T_OR_EQUAL)", "^= (T_XOR_EQUAL)", "<<= (T_SL_EQUAL)", ">>= (T_SR_EQUAL)", T_BOOLEAN_OR, T_BOOLEAN_AND, "== (T_IS_EQUAL)", "!= (T_IS_NOT_EQUAL)", "=== (T_IS_IDENTICAL)", "!== (T_IS_NOT_IDENTICAL)", "<= (T_IS_SMALLER_OR_EQUAL)", ">= (T_IS_GREATER_OR_EQUAL)", ">> (T_SR)", "<< (T_SL)", '}', ':', ',', ')', ']', '-', '+', '&', '.', '<', '>', '^', '|', '?', '=', ';'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 65 (additive_expr)] T_COMMENT [reduce using rule 65 (additive_expr)] '*' reduce using rule 5 (t_comment_or_whitespaces) '/' reduce using rule 5 (t_comment_or_whitespaces) '%' reduce using rule 5 (t_comment_or_whitespaces) $default reduce using rule 65 (additive_expr) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 161 state 81 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . ['-', '+', '.'] 6 | . plain_comment_or_whitespace 66 additive_expr: additive_expr . t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: additive_expr . [T_CLOSE_TAG, T_AS, T_WHITESPACE, T_COMMENT, T_LOGICAL_AND, T_LOGICAL_OR, T_LOGICAL_XOR, T_DOUBLE_ARROW, "+= (T_PLUS_EQUAL)", "-= (T_MINUS_EQUAL)", "*= (T_MUL_EQUAL)", "/= (T_DIV_EQUAL)", ".= (T_CONCAT_EQUAL)", "%= (T_MOD_EQUAL)", "&= (T_AND_EQUAL)", "|= (T_OR_EQUAL)", "^= (T_XOR_EQUAL)", "<<= (T_SL_EQUAL)", ">>= (T_SR_EQUAL)", T_BOOLEAN_OR, T_BOOLEAN_AND, "== (T_IS_EQUAL)", "!= (T_IS_NOT_EQUAL)", "=== (T_IS_IDENTICAL)", "!== (T_IS_NOT_IDENTICAL)", "<= (T_IS_SMALLER_OR_EQUAL)", ">= (T_IS_GREATER_OR_EQUAL)", ">> (T_SR)", "<< (T_SL)", '}', ':', ',', ')', ']', '&', '<', '>', '^', '|', '?', '=', ';'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 69 (bitwise_shift_expr)] T_COMMENT [reduce using rule 69 (bitwise_shift_expr)] '-' reduce using rule 5 (t_comment_or_whitespaces) '+' reduce using rule 5 (t_comment_or_whitespaces) '.' reduce using rule 5 (t_comment_or_whitespaces) $default reduce using rule 69 (bitwise_shift_expr) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 162 state 82 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [">> (T_SR)", "<< (T_SL)"] 6 | . plain_comment_or_whitespace 70 bitwise_shift_expr: bitwise_shift_expr . t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: bitwise_shift_expr . [T_CLOSE_TAG, T_AS, T_WHITESPACE, T_COMMENT, T_LOGICAL_AND, T_LOGICAL_OR, T_LOGICAL_XOR, T_DOUBLE_ARROW, "+= (T_PLUS_EQUAL)", "-= (T_MINUS_EQUAL)", "*= (T_MUL_EQUAL)", "/= (T_DIV_EQUAL)", ".= (T_CONCAT_EQUAL)", "%= (T_MOD_EQUAL)", "&= (T_AND_EQUAL)", "|= (T_OR_EQUAL)", "^= (T_XOR_EQUAL)", "<<= (T_SL_EQUAL)", ">>= (T_SR_EQUAL)", T_BOOLEAN_OR, T_BOOLEAN_AND, "== (T_IS_EQUAL)", "!= (T_IS_NOT_EQUAL)", "=== (T_IS_IDENTICAL)", "!== (T_IS_NOT_IDENTICAL)", "<= (T_IS_SMALLER_OR_EQUAL)", ">= (T_IS_GREATER_OR_EQUAL)", '}', ':', ',', ')', ']', '&', '<', '>', '^', '|', '?', '=', ';'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 79 (relational_expr)] T_COMMENT [reduce using rule 79 (relational_expr)] ">> (T_SR)" reduce using rule 5 (t_comment_or_whitespaces) "<< (T_SL)" reduce using rule 5 (t_comment_or_whitespaces) $default reduce using rule 79 (relational_expr) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 163 state 83 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . ["== (T_IS_EQUAL)", "!= (T_IS_NOT_EQUAL)", "=== (T_IS_IDENTICAL)", "!== (T_IS_NOT_IDENTICAL)", "<= (T_IS_SMALLER_OR_EQUAL)", ">= (T_IS_GREATER_OR_EQUAL)", '<', '>'] 6 | . plain_comment_or_whitespace 80 relational_expr: relational_expr . t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: relational_expr . [T_CLOSE_TAG, T_AS, T_WHITESPACE, T_COMMENT, T_LOGICAL_AND, T_LOGICAL_OR, T_LOGICAL_XOR, T_DOUBLE_ARROW, "+= (T_PLUS_EQUAL)", "-= (T_MINUS_EQUAL)", "*= (T_MUL_EQUAL)", "/= (T_DIV_EQUAL)", ".= (T_CONCAT_EQUAL)", "%= (T_MOD_EQUAL)", "&= (T_AND_EQUAL)", "|= (T_OR_EQUAL)", "^= (T_XOR_EQUAL)", "<<= (T_SL_EQUAL)", ">>= (T_SR_EQUAL)", T_BOOLEAN_OR, T_BOOLEAN_AND, '}', ':', ',', ')', ']', '&', '^', '|', '?', '=', ';'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 81 (bitwise_and_expr)] T_COMMENT [reduce using rule 81 (bitwise_and_expr)] "== (T_IS_EQUAL)" reduce using rule 5 (t_comment_or_whitespaces) "!= (T_IS_NOT_EQUAL)" reduce using rule 5 (t_comment_or_whitespaces) "=== (T_IS_IDENTICAL)" reduce using rule 5 (t_comment_or_whitespaces) "!== (T_IS_NOT_IDENTICAL)" reduce using rule 5 (t_comment_or_whitespaces) "<= (T_IS_SMALLER_OR_EQUAL)" reduce using rule 5 (t_comment_or_whitespaces) ">= (T_IS_GREATER_OR_EQUAL)" reduce using rule 5 (t_comment_or_whitespaces) '<' reduce using rule 5 (t_comment_or_whitespaces) '>' reduce using rule 5 (t_comment_or_whitespaces) $default reduce using rule 81 (bitwise_and_expr) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 164 state 84 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . ['&'] 6 | . plain_comment_or_whitespace 82 bitwise_and_expr: bitwise_and_expr . t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: bitwise_and_expr . [T_CLOSE_TAG, T_AS, T_WHITESPACE, T_COMMENT, T_LOGICAL_AND, T_LOGICAL_OR, T_LOGICAL_XOR, T_DOUBLE_ARROW, "+= (T_PLUS_EQUAL)", "-= (T_MINUS_EQUAL)", "*= (T_MUL_EQUAL)", "/= (T_DIV_EQUAL)", ".= (T_CONCAT_EQUAL)", "%= (T_MOD_EQUAL)", "&= (T_AND_EQUAL)", "|= (T_OR_EQUAL)", "^= (T_XOR_EQUAL)", "<<= (T_SL_EQUAL)", ">>= (T_SR_EQUAL)", T_BOOLEAN_OR, T_BOOLEAN_AND, '}', ':', ',', ')', ']', '^', '|', '?', '=', ';'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 83 (bitwise_xor_expr)] T_COMMENT [reduce using rule 83 (bitwise_xor_expr)] '&' reduce using rule 5 (t_comment_or_whitespaces) $default reduce using rule 83 (bitwise_xor_expr) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 165 state 85 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . ['^'] 6 | . plain_comment_or_whitespace 84 bitwise_xor_expr: bitwise_xor_expr . t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: bitwise_xor_expr . [T_CLOSE_TAG, T_AS, T_WHITESPACE, T_COMMENT, T_LOGICAL_AND, T_LOGICAL_OR, T_LOGICAL_XOR, T_DOUBLE_ARROW, "+= (T_PLUS_EQUAL)", "-= (T_MINUS_EQUAL)", "*= (T_MUL_EQUAL)", "/= (T_DIV_EQUAL)", ".= (T_CONCAT_EQUAL)", "%= (T_MOD_EQUAL)", "&= (T_AND_EQUAL)", "|= (T_OR_EQUAL)", "^= (T_XOR_EQUAL)", "<<= (T_SL_EQUAL)", ">>= (T_SR_EQUAL)", T_BOOLEAN_OR, T_BOOLEAN_AND, '}', ':', ',', ')', ']', '|', '?', '=', ';'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 85 (bitwise_or_expr)] T_COMMENT [reduce using rule 85 (bitwise_or_expr)] '^' reduce using rule 5 (t_comment_or_whitespaces) $default reduce using rule 85 (bitwise_or_expr) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 166 state 86 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . ['|'] 6 | . plain_comment_or_whitespace 86 bitwise_or_expr: bitwise_or_expr . t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: bitwise_or_expr . [T_CLOSE_TAG, T_AS, T_WHITESPACE, T_COMMENT, T_LOGICAL_AND, T_LOGICAL_OR, T_LOGICAL_XOR, T_DOUBLE_ARROW, "+= (T_PLUS_EQUAL)", "-= (T_MINUS_EQUAL)", "*= (T_MUL_EQUAL)", "/= (T_DIV_EQUAL)", ".= (T_CONCAT_EQUAL)", "%= (T_MOD_EQUAL)", "&= (T_AND_EQUAL)", "|= (T_OR_EQUAL)", "^= (T_XOR_EQUAL)", "<<= (T_SL_EQUAL)", ">>= (T_SR_EQUAL)", T_BOOLEAN_OR, T_BOOLEAN_AND, '}', ':', ',', ')', ']', '?', '=', ';'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 87 (boolean_and_expr)] T_COMMENT [reduce using rule 87 (boolean_and_expr)] '|' reduce using rule 5 (t_comment_or_whitespaces) $default reduce using rule 87 (boolean_and_expr) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 167 state 87 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_BOOLEAN_AND] 6 | . plain_comment_or_whitespace 88 boolean_and_expr: boolean_and_expr . t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: boolean_and_expr . [T_CLOSE_TAG, T_AS, T_WHITESPACE, T_COMMENT, T_LOGICAL_AND, T_LOGICAL_OR, T_LOGICAL_XOR, T_DOUBLE_ARROW, "+= (T_PLUS_EQUAL)", "-= (T_MINUS_EQUAL)", "*= (T_MUL_EQUAL)", "/= (T_DIV_EQUAL)", ".= (T_CONCAT_EQUAL)", "%= (T_MOD_EQUAL)", "&= (T_AND_EQUAL)", "|= (T_OR_EQUAL)", "^= (T_XOR_EQUAL)", "<<= (T_SL_EQUAL)", ">>= (T_SR_EQUAL)", T_BOOLEAN_OR, '}', ':', ',', ')', ']', '?', '=', ';'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 89 (boolean_or_expr)] T_COMMENT [reduce using rule 89 (boolean_or_expr)] T_BOOLEAN_AND reduce using rule 5 (t_comment_or_whitespaces) $default reduce using rule 89 (boolean_or_expr) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 168 state 88 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_BOOLEAN_OR] 6 | . plain_comment_or_whitespace 90 boolean_or_expr: boolean_or_expr . t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: boolean_or_expr . [T_CLOSE_TAG, T_AS, T_WHITESPACE, T_COMMENT, T_LOGICAL_AND, T_LOGICAL_OR, T_LOGICAL_XOR, T_DOUBLE_ARROW, "+= (T_PLUS_EQUAL)", "-= (T_MINUS_EQUAL)", "*= (T_MUL_EQUAL)", "/= (T_DIV_EQUAL)", ".= (T_CONCAT_EQUAL)", "%= (T_MOD_EQUAL)", "&= (T_AND_EQUAL)", "|= (T_OR_EQUAL)", "^= (T_XOR_EQUAL)", "<<= (T_SL_EQUAL)", ">>= (T_SR_EQUAL)", '}', ':', ',', ')', ']', '?', '=', ';'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 91 (conditional_expression)] T_COMMENT [reduce using rule 91 (conditional_expression)] T_BOOLEAN_OR reduce using rule 5 (t_comment_or_whitespaces) $default reduce using rule 91 (conditional_expression) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 169 state 89 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . ["+= (T_PLUS_EQUAL)", "-= (T_MINUS_EQUAL)", "*= (T_MUL_EQUAL)", "/= (T_DIV_EQUAL)", ".= (T_CONCAT_EQUAL)", "%= (T_MOD_EQUAL)", "&= (T_AND_EQUAL)", "|= (T_OR_EQUAL)", "^= (T_XOR_EQUAL)", "<<= (T_SL_EQUAL)", ">>= (T_SR_EQUAL)", '='] 6 | . plain_comment_or_whitespace 92 conditional_expression: conditional_expression . '?' conditional_expression ':' conditional_expression 105 assignament_expression: conditional_expression . [T_CLOSE_TAG, T_AS, T_WHITESPACE, T_COMMENT, T_LOGICAL_AND, T_LOGICAL_OR, T_LOGICAL_XOR, T_DOUBLE_ARROW, '}', ':', ',', ')', ']', ';'] 106 | conditional_expression . t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 '?' shift, and go to state 170 T_CLOSE_TAG reduce using rule 105 (assignament_expression) T_AS reduce using rule 105 (assignament_expression) T_WHITESPACE [reduce using rule 105 (assignament_expression)] T_COMMENT [reduce using rule 105 (assignament_expression)] T_LOGICAL_AND reduce using rule 105 (assignament_expression) T_LOGICAL_OR reduce using rule 105 (assignament_expression) T_LOGICAL_XOR reduce using rule 105 (assignament_expression) T_DOUBLE_ARROW reduce using rule 105 (assignament_expression) '}' reduce using rule 105 (assignament_expression) ':' reduce using rule 105 (assignament_expression) ',' reduce using rule 105 (assignament_expression) ')' reduce using rule 105 (assignament_expression) ']' reduce using rule 105 (assignament_expression) ';' reduce using rule 105 (assignament_expression) $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 171 state 90 107 logical_and_expression: assignament_expression . $default reduce using rule 107 (logical_and_expression) state 91 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_LOGICAL_AND] 6 | . plain_comment_or_whitespace 108 logical_and_expression: logical_and_expression . t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: logical_and_expression . [T_CLOSE_TAG, T_AS, T_WHITESPACE, T_COMMENT, T_LOGICAL_OR, T_LOGICAL_XOR, T_DOUBLE_ARROW, '}', ':', ',', ')', ']', ';'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 109 (logical_xor_expression)] T_COMMENT [reduce using rule 109 (logical_xor_expression)] T_LOGICAL_AND reduce using rule 5 (t_comment_or_whitespaces) $default reduce using rule 109 (logical_xor_expression) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 172 state 92 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_LOGICAL_XOR] 6 | . plain_comment_or_whitespace 110 logical_xor_expression: logical_xor_expression . t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: logical_xor_expression . [T_CLOSE_TAG, T_AS, T_WHITESPACE, T_COMMENT, T_LOGICAL_OR, T_DOUBLE_ARROW, '}', ':', ',', ')', ']', ';'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 111 (logical_or_expression)] T_COMMENT [reduce using rule 111 (logical_or_expression)] T_LOGICAL_XOR reduce using rule 5 (t_comment_or_whitespaces) $default reduce using rule 111 (logical_or_expression) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 173 state 93 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_LOGICAL_OR, T_DOUBLE_ARROW] 6 | . plain_comment_or_whitespace 112 logical_or_expression: logical_or_expression . t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: logical_or_expression . [T_CLOSE_TAG, T_AS, T_WHITESPACE, T_COMMENT, '}', ':', ',', ')', ']', ';'] 114 | logical_or_expression . t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 113 (array_key_val_expression)] T_COMMENT [reduce using rule 113 (array_key_val_expression)] T_LOGICAL_OR reduce using rule 5 (t_comment_or_whitespaces) T_DOUBLE_ARROW reduce using rule 5 (t_comment_or_whitespaces) $default reduce using rule 113 (array_key_val_expression) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 174 state 94 115 expr: array_key_val_expression . $default reduce using rule 115 (expr) state 95 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_CLOSE_TAG, ':', ';'] 6 | . plain_comment_or_whitespace 132 statement_delimiter: . t_comment_or_whitespaces plain_statement_delimiter 136 expr_statement: expr . statement_delimiter 162 label_statement: expr . t_comment_or_whitespaces ':' T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 175 statement_delimiter go to state 176 state 96 126 plain_decl_spec_seq: decl_spec . $default reduce using rule 126 (plain_decl_spec_seq) state 97 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 129 decl_spec_seq: plain_decl_spec_seq . [T_WHITESPACE, T_COMMENT, T_FUNCTION, T_VAR, T_PUBLIC, T_PRIVATE, T_STATIC, T_CONST, T_GLOBAL] 137 decl_statement: plain_decl_spec_seq . t_comment_or_whitespaces expr_statement T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 129 (decl_spec_seq)] T_COMMENT [reduce using rule 129 (decl_spec_seq)] T_FUNCTION reduce using rule 129 (decl_spec_seq) T_VAR reduce using rule 129 (decl_spec_seq) T_PUBLIC reduce using rule 129 (decl_spec_seq) T_PRIVATE reduce using rule 129 (decl_spec_seq) T_STATIC reduce using rule 129 (decl_spec_seq) T_CONST reduce using rule 129 (decl_spec_seq) T_GLOBAL reduce using rule 129 (decl_spec_seq) $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 177 state 98 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_FUNCTION, T_VAR, T_PUBLIC, T_PRIVATE, T_STATIC, T_CONST, T_GLOBAL] 6 | . plain_comment_or_whitespace 127 plain_decl_spec_seq: decl_spec_seq . t_comment_or_whitespaces decl_spec 174 function_decl_statement: decl_spec_seq . t_comment_or_whitespaces T_FUNCTION t_comment_or_whitespaces qualified_name_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces t_comment_or_whitespaces ')' function_body_or_semicolon T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 178 state 99 133 empty_statement: statement_delimiter . $default reduce using rule 133 (empty_statement) state 100 191 statement: empty_statement . $default reduce using rule 191 (statement) state 101 192 statement: block_statement . $default reduce using rule 192 (statement) state 102 194 statement: expr_statement . $default reduce using rule 194 (statement) state 103 193 statement: decl_statement . $default reduce using rule 193 (statement) state 104 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 147 command_statement: command_statement_name . t_comment_or_whitespaces expr statement_delimiter T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 179 state 105 195 statement: command_statement . $default reduce using rule 195 (statement) state 106 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_ELSEIF] 6 | . plain_comment_or_whitespace 149 elseif_branch: . t_comment_or_whitespaces T_ELSEIF t_comment_or_whitespaces statement 150 plain_elseif_seq: . elseif_branch 151 | . plain_elseif_seq elseif_branch 152 elseif_seq: . ["end of file", T_INLINE_HTML, T_OPEN_TAG, T_OPEN_TAG_WITH_ECHO, T_PLAIN_NAME, T_CLOSE_TAG, T_IF, T_ELSEIF, T_ELSE, T_SWITCH, T_CASE, T_BREAK, T_CONTINUE, T_DEFAULT, T_GOTO, T_FOR, T_FOREACH, T_WHILE, T_DO, T_WHITESPACE, T_INCLUDE, T_INCLUDE_ONCE, T_REQUIRE, T_REQUIRE_ONCE, T_COMMENT, T_CLASS, T_INTERFACE, T_TRAIT, T_FINAL, T_FUNCTION, T_VAR, T_PUBLIC, T_PRIVATE, T_STATIC, T_CONST, T_RETURN, T_GLOBAL, T_NEW, T_THROW, T_TRY, T_PRINT, T_ECHO, T_CLONE, T_USE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '}', '(', '-', '+', '~', '@', '&', '!', ';'] 153 | . plain_elseif_seq 155 if_statement: if_branch . elseif_seq 156 | if_branch . elseif_seq else_branch T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_ELSEIF reduce using rule 5 (t_comment_or_whitespaces) T_ELSEIF [reduce using rule 152 (elseif_seq)] T_WHITESPACE [reduce using rule 152 (elseif_seq)] T_COMMENT [reduce using rule 152 (elseif_seq)] $default reduce using rule 152 (elseif_seq) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 180 elseif_branch go to state 181 plain_elseif_seq go to state 182 elseif_seq go to state 183 state 107 196 statement: if_statement . $default reduce using rule 196 (statement) state 108 197 statement: case_statement . $default reduce using rule 197 (statement) state 109 198 statement: default_statetement . $default reduce using rule 198 (statement) state 110 199 statement: break_statement . $default reduce using rule 199 (statement) state 111 200 statement: continue_statement . $default reduce using rule 200 (statement) state 112 203 statement: switch_statement . $default reduce using rule 203 (statement) state 113 201 statement: label_statement . $default reduce using rule 201 (statement) state 114 202 statement: goto_statement . $default reduce using rule 202 (statement) state 115 204 statement: for_statement . $default reduce using rule 204 (statement) state 116 205 statement: foreach_statement . $default reduce using rule 205 (statement) state 117 206 statement: while_statement . $default reduce using rule 206 (statement) state 118 207 statement: do_while_statement . $default reduce using rule 207 (statement) state 119 208 statement: try_statement . $default reduce using rule 208 (statement) state 120 209 statement: function_decl_statement . $default reduce using rule 209 (statement) state 121 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_VARIABLE, '$', '{'] 6 | . plain_comment_or_whitespace 187 class_declaration: class_key . t_comment_or_whitespaces qualified_name_expr base_classes_list t_comment_or_whitespaces block_statement T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 184 state 122 210 statement: class_declaration . $default reduce using rule 210 (statement) state 123 213 plain_php_script: t_comment_or_whitespaces statement . $default reduce using rule 213 (plain_php_script) state 124 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 3 | t_comment_or_whitespace . ["end of file", T_WHITESPACE, T_COMMENT] 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_CLOSE_TAG, ';'] 6 | . plain_comment_or_whitespace 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: . logical_xor_expression 112 | . logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: . logical_or_expression 114 | . logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression 115 expr: . array_key_val_expression 120 decl_spec: . T_GLOBAL 121 | . T_VAR 122 | . T_PUBLIC 123 | . T_PRIVATE 124 | . T_STATIC 125 | . T_CONST 126 plain_decl_spec_seq: . decl_spec 127 | . decl_spec_seq t_comment_or_whitespaces decl_spec 128 decl_spec_seq: . [T_WHITESPACE, T_COMMENT, T_FUNCTION, T_VAR, T_PUBLIC, T_PRIVATE, T_STATIC, T_CONST, T_GLOBAL] 129 | . plain_decl_spec_seq 132 statement_delimiter: . t_comment_or_whitespaces plain_statement_delimiter 133 empty_statement: . statement_delimiter 134 block_statement: . '{' statement_seq t_comment_or_whitespaces '}' 135 | . '{' t_comment_or_whitespaces '}' 136 expr_statement: . expr statement_delimiter 137 decl_statement: . plain_decl_spec_seq t_comment_or_whitespaces expr_statement 138 command_statement_name: . T_RETURN 139 | . T_PRINT 140 | . T_ECHO 141 | . T_INCLUDE 142 | . T_INCLUDE_ONCE 143 | . T_REQUIRE 144 | . T_REQUIRE_ONCE 145 | . T_THROW 146 | . T_USE 147 command_statement: . command_statement_name t_comment_or_whitespaces expr statement_delimiter 148 if_branch: . T_IF t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 155 if_statement: . if_branch elseif_seq 156 | . if_branch elseif_seq else_branch 157 case_statement: . T_CASE t_comment_or_whitespaces expr t_comment_or_whitespaces ':' 158 default_statetement: . T_DEFAULT t_comment_or_whitespaces ':' 159 break_statement: . T_BREAK statement_delimiter 160 continue_statement: . T_CONTINUE statement_delimiter 161 switch_statement: . T_SWITCH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 162 label_statement: . expr t_comment_or_whitespaces ':' 163 goto_statement: . T_GOTO t_comment_or_whitespaces expr statement_delimiter 164 for_statement: . T_FOR t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 165 foreach_statement: . T_FOREACH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces T_AS t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 166 while_statement: . T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 167 do_while_statement: . T_DO t_comment_or_whitespaces statement T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' statement_delimiter 171 try_statement: . T_TRY t_comment_or_whitespaces block_statement t_comment_or_whitespaces catch_clause_seq 174 function_decl_statement: . decl_spec_seq t_comment_or_whitespaces T_FUNCTION t_comment_or_whitespaces qualified_name_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces t_comment_or_whitespaces ')' function_body_or_semicolon 175 class_key: . T_INTERFACE 176 | . T_TRAIT 177 | . T_CLASS 178 | . T_FINAL t_comment_or_whitespaces T_CLASS 179 | . T_FINAL t_comment_or_whitespaces T_INTERFACE 187 class_declaration: . class_key t_comment_or_whitespaces qualified_name_expr base_classes_list t_comment_or_whitespaces block_statement 188 statement: . T_INLINE_HTML 189 | . T_OPEN_TAG 190 | . T_OPEN_TAG_WITH_ECHO 191 | . empty_statement 192 | . block_statement 193 | . decl_statement 194 | . expr_statement 195 | . command_statement 196 | . if_statement 197 | . case_statement 198 | . default_statetement 199 | . break_statement 200 | . continue_statement 201 | . label_statement 202 | . goto_statement 203 | . switch_statement 204 | . for_statement 205 | . foreach_statement 206 | . while_statement 207 | . do_while_statement 208 | . try_statement 209 | . function_decl_statement 210 | . class_declaration 214 plain_php_script: plain_php_script t_comment_or_whitespace . statement T_INLINE_HTML shift, and go to state 9 T_OPEN_TAG shift, and go to state 10 T_OPEN_TAG_WITH_ECHO shift, and go to state 11 T_PLAIN_NAME shift, and go to state 12 T_IF shift, and go to state 13 T_SWITCH shift, and go to state 14 T_CASE shift, and go to state 15 T_BREAK shift, and go to state 16 T_CONTINUE shift, and go to state 17 T_DEFAULT shift, and go to state 18 T_GOTO shift, and go to state 19 T_FOR shift, and go to state 20 T_FOREACH shift, and go to state 21 T_WHILE shift, and go to state 22 T_DO shift, and go to state 23 T_WHITESPACE shift, and go to state 1 T_INCLUDE shift, and go to state 24 T_INCLUDE_ONCE shift, and go to state 25 T_REQUIRE shift, and go to state 26 T_REQUIRE_ONCE shift, and go to state 27 T_COMMENT shift, and go to state 2 T_CLASS shift, and go to state 28 T_INTERFACE shift, and go to state 29 T_TRAIT shift, and go to state 30 T_FINAL shift, and go to state 31 T_VAR shift, and go to state 32 T_PUBLIC shift, and go to state 33 T_PRIVATE shift, and go to state 34 T_STATIC shift, and go to state 35 T_CONST shift, and go to state 36 T_RETURN shift, and go to state 37 T_GLOBAL shift, and go to state 38 T_NEW shift, and go to state 39 T_THROW shift, and go to state 40 T_TRY shift, and go to state 41 T_PRINT shift, and go to state 42 T_ECHO shift, and go to state 43 T_CLONE shift, and go to state 44 T_USE shift, and go to state 45 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 60 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 "end of file" reduce using rule 3 (plain_comment_or_whitespace) T_WHITESPACE [reduce using rule 3 (plain_comment_or_whitespace)] T_WHITESPACE [reduce using rule 128 (decl_spec_seq)] T_COMMENT [reduce using rule 3 (plain_comment_or_whitespace)] T_COMMENT [reduce using rule 128 (decl_spec_seq)] T_FUNCTION reduce using rule 128 (decl_spec_seq) T_VAR [reduce using rule 128 (decl_spec_seq)] T_PUBLIC [reduce using rule 128 (decl_spec_seq)] T_PRIVATE [reduce using rule 128 (decl_spec_seq)] T_STATIC [reduce using rule 128 (decl_spec_seq)] T_CONST [reduce using rule 128 (decl_spec_seq)] T_GLOBAL [reduce using rule 128 (decl_spec_seq)] $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 68 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 92 logical_or_expression go to state 93 array_key_val_expression go to state 94 expr go to state 95 decl_spec go to state 96 plain_decl_spec_seq go to state 97 decl_spec_seq go to state 98 statement_delimiter go to state 99 empty_statement go to state 100 block_statement go to state 101 expr_statement go to state 102 decl_statement go to state 103 command_statement_name go to state 104 command_statement go to state 105 if_branch go to state 106 if_statement go to state 107 case_statement go to state 108 default_statetement go to state 109 break_statement go to state 110 continue_statement go to state 111 switch_statement go to state 112 label_statement go to state 113 goto_statement go to state 114 for_statement go to state 115 foreach_statement go to state 116 while_statement go to state 117 do_while_statement go to state 118 try_statement go to state 119 function_decl_statement go to state 120 class_key go to state 121 class_declaration go to state 122 statement go to state 185 state 125 216 php_script: plain_php_script t_comment_or_whitespaces . $default reduce using rule 216 (php_script) state 126 0 $accept: php_script "end of file" . $default accept state 127 148 if_branch: T_IF t_comment_or_whitespaces . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement '(' shift, and go to state 186 state 128 161 switch_statement: T_SWITCH t_comment_or_whitespaces . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement '(' shift, and go to state 187 state 129 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: . logical_xor_expression 112 | . logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: . logical_or_expression 114 | . logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression 115 expr: . array_key_val_expression 157 case_statement: T_CASE t_comment_or_whitespaces . expr t_comment_or_whitespaces ':' T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 92 logical_or_expression go to state 93 array_key_val_expression go to state 94 expr go to state 189 state 130 159 break_statement: T_BREAK statement_delimiter . $default reduce using rule 159 (break_statement) state 131 160 continue_statement: T_CONTINUE statement_delimiter . $default reduce using rule 160 (continue_statement) state 132 158 default_statetement: T_DEFAULT t_comment_or_whitespaces . ':' ':' shift, and go to state 190 state 133 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: . logical_xor_expression 112 | . logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: . logical_or_expression 114 | . logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression 115 expr: . array_key_val_expression 163 goto_statement: T_GOTO t_comment_or_whitespaces . expr statement_delimiter T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 92 logical_or_expression go to state 93 array_key_val_expression go to state 94 expr go to state 191 state 134 164 for_statement: T_FOR t_comment_or_whitespaces . '(' t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces ')' t_comment_or_whitespaces statement '(' shift, and go to state 192 state 135 165 foreach_statement: T_FOREACH t_comment_or_whitespaces . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces T_AS t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement '(' shift, and go to state 193 state 136 166 while_statement: T_WHILE t_comment_or_whitespaces . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement '(' shift, and go to state 194 state 137 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_CLOSE_TAG, ';'] 6 | . plain_comment_or_whitespace 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: . logical_xor_expression 112 | . logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: . logical_or_expression 114 | . logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression 115 expr: . array_key_val_expression 120 decl_spec: . T_GLOBAL 121 | . T_VAR 122 | . T_PUBLIC 123 | . T_PRIVATE 124 | . T_STATIC 125 | . T_CONST 126 plain_decl_spec_seq: . decl_spec 127 | . decl_spec_seq t_comment_or_whitespaces decl_spec 128 decl_spec_seq: . [T_WHITESPACE, T_COMMENT, T_FUNCTION, T_VAR, T_PUBLIC, T_PRIVATE, T_STATIC, T_CONST, T_GLOBAL] 129 | . plain_decl_spec_seq 132 statement_delimiter: . t_comment_or_whitespaces plain_statement_delimiter 133 empty_statement: . statement_delimiter 134 block_statement: . '{' statement_seq t_comment_or_whitespaces '}' 135 | . '{' t_comment_or_whitespaces '}' 136 expr_statement: . expr statement_delimiter 137 decl_statement: . plain_decl_spec_seq t_comment_or_whitespaces expr_statement 138 command_statement_name: . T_RETURN 139 | . T_PRINT 140 | . T_ECHO 141 | . T_INCLUDE 142 | . T_INCLUDE_ONCE 143 | . T_REQUIRE 144 | . T_REQUIRE_ONCE 145 | . T_THROW 146 | . T_USE 147 command_statement: . command_statement_name t_comment_or_whitespaces expr statement_delimiter 148 if_branch: . T_IF t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 155 if_statement: . if_branch elseif_seq 156 | . if_branch elseif_seq else_branch 157 case_statement: . T_CASE t_comment_or_whitespaces expr t_comment_or_whitespaces ':' 158 default_statetement: . T_DEFAULT t_comment_or_whitespaces ':' 159 break_statement: . T_BREAK statement_delimiter 160 continue_statement: . T_CONTINUE statement_delimiter 161 switch_statement: . T_SWITCH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 162 label_statement: . expr t_comment_or_whitespaces ':' 163 goto_statement: . T_GOTO t_comment_or_whitespaces expr statement_delimiter 164 for_statement: . T_FOR t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 165 foreach_statement: . T_FOREACH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces T_AS t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 166 while_statement: . T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 167 do_while_statement: . T_DO t_comment_or_whitespaces statement T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' statement_delimiter 167 | T_DO t_comment_or_whitespaces . statement T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' statement_delimiter 171 try_statement: . T_TRY t_comment_or_whitespaces block_statement t_comment_or_whitespaces catch_clause_seq 174 function_decl_statement: . decl_spec_seq t_comment_or_whitespaces T_FUNCTION t_comment_or_whitespaces qualified_name_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces t_comment_or_whitespaces ')' function_body_or_semicolon 175 class_key: . T_INTERFACE 176 | . T_TRAIT 177 | . T_CLASS 178 | . T_FINAL t_comment_or_whitespaces T_CLASS 179 | . T_FINAL t_comment_or_whitespaces T_INTERFACE 187 class_declaration: . class_key t_comment_or_whitespaces qualified_name_expr base_classes_list t_comment_or_whitespaces block_statement 188 statement: . T_INLINE_HTML 189 | . T_OPEN_TAG 190 | . T_OPEN_TAG_WITH_ECHO 191 | . empty_statement 192 | . block_statement 193 | . decl_statement 194 | . expr_statement 195 | . command_statement 196 | . if_statement 197 | . case_statement 198 | . default_statetement 199 | . break_statement 200 | . continue_statement 201 | . label_statement 202 | . goto_statement 203 | . switch_statement 204 | . for_statement 205 | . foreach_statement 206 | . while_statement 207 | . do_while_statement 208 | . try_statement 209 | . function_decl_statement 210 | . class_declaration T_INLINE_HTML shift, and go to state 9 T_OPEN_TAG shift, and go to state 10 T_OPEN_TAG_WITH_ECHO shift, and go to state 11 T_PLAIN_NAME shift, and go to state 12 T_IF shift, and go to state 13 T_SWITCH shift, and go to state 14 T_CASE shift, and go to state 15 T_BREAK shift, and go to state 16 T_CONTINUE shift, and go to state 17 T_DEFAULT shift, and go to state 18 T_GOTO shift, and go to state 19 T_FOR shift, and go to state 20 T_FOREACH shift, and go to state 21 T_WHILE shift, and go to state 22 T_DO shift, and go to state 23 T_WHITESPACE shift, and go to state 1 T_INCLUDE shift, and go to state 24 T_INCLUDE_ONCE shift, and go to state 25 T_REQUIRE shift, and go to state 26 T_REQUIRE_ONCE shift, and go to state 27 T_COMMENT shift, and go to state 2 T_CLASS shift, and go to state 28 T_INTERFACE shift, and go to state 29 T_TRAIT shift, and go to state 30 T_FINAL shift, and go to state 31 T_VAR shift, and go to state 32 T_PUBLIC shift, and go to state 33 T_PRIVATE shift, and go to state 34 T_STATIC shift, and go to state 35 T_CONST shift, and go to state 36 T_RETURN shift, and go to state 37 T_GLOBAL shift, and go to state 38 T_NEW shift, and go to state 39 T_THROW shift, and go to state 40 T_TRY shift, and go to state 41 T_PRINT shift, and go to state 42 T_ECHO shift, and go to state 43 T_CLONE shift, and go to state 44 T_USE shift, and go to state 45 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 60 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 T_WHITESPACE [reduce using rule 128 (decl_spec_seq)] T_COMMENT [reduce using rule 128 (decl_spec_seq)] T_FUNCTION reduce using rule 128 (decl_spec_seq) T_VAR [reduce using rule 128 (decl_spec_seq)] T_PUBLIC [reduce using rule 128 (decl_spec_seq)] T_PRIVATE [reduce using rule 128 (decl_spec_seq)] T_STATIC [reduce using rule 128 (decl_spec_seq)] T_CONST [reduce using rule 128 (decl_spec_seq)] T_GLOBAL [reduce using rule 128 (decl_spec_seq)] $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 68 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 92 logical_or_expression go to state 93 array_key_val_expression go to state 94 expr go to state 95 decl_spec go to state 96 plain_decl_spec_seq go to state 97 decl_spec_seq go to state 98 statement_delimiter go to state 99 empty_statement go to state 100 block_statement go to state 101 expr_statement go to state 102 decl_statement go to state 103 command_statement_name go to state 104 command_statement go to state 105 if_branch go to state 106 if_statement go to state 107 case_statement go to state 108 default_statetement go to state 109 break_statement go to state 110 continue_statement go to state 111 switch_statement go to state 112 label_statement go to state 113 goto_statement go to state 114 for_statement go to state 115 foreach_statement go to state 116 while_statement go to state 117 do_while_statement go to state 118 try_statement go to state 119 function_decl_statement go to state 120 class_key go to state 121 class_declaration go to state 122 statement go to state 195 state 138 178 class_key: T_FINAL t_comment_or_whitespaces . T_CLASS 179 | T_FINAL t_comment_or_whitespaces . T_INTERFACE T_CLASS shift, and go to state 196 T_INTERFACE shift, and go to state 197 state 139 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 43 unary_expr: T_NEW t_comment_or_whitespaces . name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' T_PLAIN_NAME shift, and go to state 12 T_VARIABLE shift, and go to state 49 '$' shift, and go to state 59 '{' shift, and go to state 198 variable_variable go to state 70 name_or_variable go to state 199 state 140 134 block_statement: . '{' statement_seq t_comment_or_whitespaces '}' 135 | . '{' t_comment_or_whitespaces '}' 171 try_statement: T_TRY t_comment_or_whitespaces . block_statement t_comment_or_whitespaces catch_clause_seq '{' shift, and go to state 200 block_statement go to state 201 state 141 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 40 chain_expr: . primary_expr 41 | . chain_expr t_comment_or_whitespaces T_OBJECT_OPERATOR t_comment_or_whitespaces primary_expr 44 unary_expr: T_CLONE t_comment_or_whitespaces . chain_expr T_PLAIN_NAME shift, and go to state 12 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 202 chain_expr go to state 203 state 142 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 50 unary_expr: "++ (T_INC)" t_comment_or_whitespaces . postfix_expr T_PLAIN_NAME shift, and go to state 12 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 204 state 143 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 51 unary_expr: "-- (T_DEC)" t_comment_or_whitespaces . postfix_expr T_PLAIN_NAME shift, and go to state 12 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 205 state 144 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 10 variable_variable: '$' '{' . t_comment_or_whitespaces expr t_comment_or_whitespaces '}' T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 206 state 145 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_CLOSE_TAG, ';'] 6 | . plain_comment_or_whitespace 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 12 | '{' t_comment_or_whitespaces . expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 17 property_declaration: . qualified_name_expr t_comment_or_whitespaces ':' t_comment_or_whitespaces expr 18 property_declaration_seq: . property_declaration 19 | . property_declaration_seq t_comment_or_whitespaces ',' t_comment_or_whitespaces property_declaration 20 object_constructor: . '{' t_comment_or_whitespaces '}' 20 | '{' t_comment_or_whitespaces . '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 21 | '{' t_comment_or_whitespaces . property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: . logical_xor_expression 112 | . logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: . logical_or_expression 114 | . logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression 115 expr: . array_key_val_expression 120 decl_spec: . T_GLOBAL 121 | . T_VAR 122 | . T_PUBLIC 123 | . T_PRIVATE 124 | . T_STATIC 125 | . T_CONST 126 plain_decl_spec_seq: . decl_spec 127 | . decl_spec_seq t_comment_or_whitespaces decl_spec 128 decl_spec_seq: . [T_WHITESPACE, T_COMMENT, T_FUNCTION, T_VAR, T_PUBLIC, T_PRIVATE, T_STATIC, T_CONST, T_GLOBAL] 129 | . plain_decl_spec_seq 132 statement_delimiter: . t_comment_or_whitespaces plain_statement_delimiter 133 empty_statement: . statement_delimiter 134 block_statement: . '{' statement_seq t_comment_or_whitespaces '}' 135 | . '{' t_comment_or_whitespaces '}' 135 | '{' t_comment_or_whitespaces . '}' 136 expr_statement: . expr statement_delimiter 137 decl_statement: . plain_decl_spec_seq t_comment_or_whitespaces expr_statement 138 command_statement_name: . T_RETURN 139 | . T_PRINT 140 | . T_ECHO 141 | . T_INCLUDE 142 | . T_INCLUDE_ONCE 143 | . T_REQUIRE 144 | . T_REQUIRE_ONCE 145 | . T_THROW 146 | . T_USE 147 command_statement: . command_statement_name t_comment_or_whitespaces expr statement_delimiter 148 if_branch: . T_IF t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 155 if_statement: . if_branch elseif_seq 156 | . if_branch elseif_seq else_branch 157 case_statement: . T_CASE t_comment_or_whitespaces expr t_comment_or_whitespaces ':' 158 default_statetement: . T_DEFAULT t_comment_or_whitespaces ':' 159 break_statement: . T_BREAK statement_delimiter 160 continue_statement: . T_CONTINUE statement_delimiter 161 switch_statement: . T_SWITCH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 162 label_statement: . expr t_comment_or_whitespaces ':' 163 goto_statement: . T_GOTO t_comment_or_whitespaces expr statement_delimiter 164 for_statement: . T_FOR t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 165 foreach_statement: . T_FOREACH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces T_AS t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 166 while_statement: . T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 167 do_while_statement: . T_DO t_comment_or_whitespaces statement T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' statement_delimiter 171 try_statement: . T_TRY t_comment_or_whitespaces block_statement t_comment_or_whitespaces catch_clause_seq 174 function_decl_statement: . decl_spec_seq t_comment_or_whitespaces T_FUNCTION t_comment_or_whitespaces qualified_name_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces t_comment_or_whitespaces ')' function_body_or_semicolon 175 class_key: . T_INTERFACE 176 | . T_TRAIT 177 | . T_CLASS 178 | . T_FINAL t_comment_or_whitespaces T_CLASS 179 | . T_FINAL t_comment_or_whitespaces T_INTERFACE 187 class_declaration: . class_key t_comment_or_whitespaces qualified_name_expr base_classes_list t_comment_or_whitespaces block_statement 188 statement: . T_INLINE_HTML 189 | . T_OPEN_TAG 190 | . T_OPEN_TAG_WITH_ECHO 191 | . empty_statement 192 | . block_statement 193 | . decl_statement 194 | . expr_statement 195 | . command_statement 196 | . if_statement 197 | . case_statement 198 | . default_statetement 199 | . break_statement 200 | . continue_statement 201 | . label_statement 202 | . goto_statement 203 | . switch_statement 204 | . for_statement 205 | . foreach_statement 206 | . while_statement 207 | . do_while_statement 208 | . try_statement 209 | . function_decl_statement 210 | . class_declaration 211 statement_seq: t_comment_or_whitespaces . statement T_INLINE_HTML shift, and go to state 9 T_OPEN_TAG shift, and go to state 10 T_OPEN_TAG_WITH_ECHO shift, and go to state 11 T_PLAIN_NAME shift, and go to state 12 T_IF shift, and go to state 13 T_SWITCH shift, and go to state 14 T_CASE shift, and go to state 15 T_BREAK shift, and go to state 16 T_CONTINUE shift, and go to state 17 T_DEFAULT shift, and go to state 18 T_GOTO shift, and go to state 19 T_FOR shift, and go to state 20 T_FOREACH shift, and go to state 21 T_WHILE shift, and go to state 22 T_DO shift, and go to state 23 T_WHITESPACE shift, and go to state 1 T_INCLUDE shift, and go to state 24 T_INCLUDE_ONCE shift, and go to state 25 T_REQUIRE shift, and go to state 26 T_REQUIRE_ONCE shift, and go to state 27 T_COMMENT shift, and go to state 2 T_CLASS shift, and go to state 28 T_INTERFACE shift, and go to state 29 T_TRAIT shift, and go to state 30 T_FINAL shift, and go to state 31 T_VAR shift, and go to state 32 T_PUBLIC shift, and go to state 33 T_PRIVATE shift, and go to state 34 T_STATIC shift, and go to state 35 T_CONST shift, and go to state 36 T_RETURN shift, and go to state 37 T_GLOBAL shift, and go to state 38 T_NEW shift, and go to state 39 T_THROW shift, and go to state 40 T_TRY shift, and go to state 41 T_PRINT shift, and go to state 42 T_ECHO shift, and go to state 43 T_CLONE shift, and go to state 44 T_USE shift, and go to state 45 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 60 '}' shift, and go to state 207 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 T_WHITESPACE [reduce using rule 128 (decl_spec_seq)] T_COMMENT [reduce using rule 128 (decl_spec_seq)] T_FUNCTION reduce using rule 128 (decl_spec_seq) T_VAR [reduce using rule 128 (decl_spec_seq)] T_PUBLIC [reduce using rule 128 (decl_spec_seq)] T_PRIVATE [reduce using rule 128 (decl_spec_seq)] T_STATIC [reduce using rule 128 (decl_spec_seq)] T_CONST [reduce using rule 128 (decl_spec_seq)] T_GLOBAL [reduce using rule 128 (decl_spec_seq)] $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 68 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 208 property_declaration go to state 209 property_declaration_seq go to state 210 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 92 logical_or_expression go to state 93 array_key_val_expression go to state 94 expr go to state 211 decl_spec go to state 96 plain_decl_spec_seq go to state 97 decl_spec_seq go to state 98 statement_delimiter go to state 99 empty_statement go to state 100 block_statement go to state 101 expr_statement go to state 102 decl_statement go to state 103 command_statement_name go to state 104 command_statement go to state 105 if_branch go to state 106 if_statement go to state 107 case_statement go to state 108 default_statetement go to state 109 break_statement go to state 110 continue_statement go to state 111 switch_statement go to state 112 label_statement go to state 113 goto_statement go to state 114 for_statement go to state 115 foreach_statement go to state 116 while_statement go to state 117 do_while_statement go to state 118 try_statement go to state 119 function_decl_statement go to state 120 class_key go to state 121 class_declaration go to state 122 statement go to state 212 state 146 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_INLINE_HTML, T_OPEN_TAG, T_OPEN_TAG_WITH_ECHO, T_PLAIN_NAME, T_CLOSE_TAG, T_IF, T_SWITCH, T_CASE, T_BREAK, T_CONTINUE, T_DEFAULT, T_GOTO, T_FOR, T_FOREACH, T_WHILE, T_DO, T_WHITESPACE, T_INCLUDE, T_INCLUDE_ONCE, T_REQUIRE, T_REQUIRE_ONCE, T_COMMENT, T_CLASS, T_INTERFACE, T_TRAIT, T_FINAL, T_FUNCTION, T_VAR, T_PUBLIC, T_PRIVATE, T_STATIC, T_CONST, T_RETURN, T_GLOBAL, T_NEW, T_THROW, T_TRY, T_PRINT, T_ECHO, T_CLONE, T_USE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '}', '(', '-', '+', '~', '@', '&', '!', ';'] 6 | . plain_comment_or_whitespace 134 block_statement: '{' statement_seq . t_comment_or_whitespaces '}' 212 statement_seq: statement_seq . t_comment_or_whitespaces statement T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 5 (t_comment_or_whitespaces)] T_COMMENT [reduce using rule 5 (t_comment_or_whitespaces)] $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 213 state 147 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 25 | '(' t_comment_or_whitespaces . expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: . logical_xor_expression 112 | . logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: . logical_or_expression 114 | . logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression 115 expr: . array_key_val_expression T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 92 logical_or_expression go to state 93 array_key_val_expression go to state 94 expr go to state 214 state 148 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 45 unary_expr: '-' t_comment_or_whitespaces . postfix_expr T_PLAIN_NAME shift, and go to state 12 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 215 state 149 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 46 unary_expr: '+' t_comment_or_whitespaces . postfix_expr T_PLAIN_NAME shift, and go to state 12 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 216 state 150 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 47 unary_expr: '~' t_comment_or_whitespaces . postfix_expr T_PLAIN_NAME shift, and go to state 12 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 217 state 151 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 48 unary_expr: '@' t_comment_or_whitespaces . postfix_expr T_PLAIN_NAME shift, and go to state 12 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 218 state 152 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 49 unary_expr: '&' t_comment_or_whitespaces . postfix_expr T_PLAIN_NAME shift, and go to state 12 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 219 state 153 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 56 | '!' t_comment_or_whitespaces . logical_not_expr T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 220 state 154 131 plain_statement_delimiter: T_CLOSE_TAG . $default reduce using rule 131 (plain_statement_delimiter) state 155 130 plain_statement_delimiter: ';' . $default reduce using rule 130 (plain_statement_delimiter) state 156 132 statement_delimiter: t_comment_or_whitespaces plain_statement_delimiter . $default reduce using rule 132 (statement_delimiter) state 157 16 qualified_name_expr: qualified_name_expr t_comment_or_whitespaces . T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable T_PAAMAYIM_NEKUDOTAYIM shift, and go to state 221 state 158 27 postfix_expr: postfix_expr t_comment_or_whitespaces . T_OBJECT_OPERATOR primary_expr 28 | postfix_expr t_comment_or_whitespaces . "++ (T_INC)" 29 | postfix_expr t_comment_or_whitespaces . "-- (T_DEC)" 30 | postfix_expr t_comment_or_whitespaces . '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | postfix_expr t_comment_or_whitespaces . '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | postfix_expr t_comment_or_whitespaces . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' T_OBJECT_OPERATOR shift, and go to state 222 "++ (T_INC)" shift, and go to state 223 "-- (T_DEC)" shift, and go to state 224 '{' shift, and go to state 225 '(' shift, and go to state 226 '[' shift, and go to state 227 state 159 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 52 unary_expr: cast_operator t_comment_or_whitespaces . postfix_expr T_PLAIN_NAME shift, and go to state 12 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 228 state 160 54 instanceof_expr: unary_expr t_comment_or_whitespaces . T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr T_INSTANCEOF shift, and go to state 229 state 161 57 multiplicative_op: . '*' 58 | . '/' 59 | . '%' 61 multiplicative_expr: multiplicative_expr t_comment_or_whitespaces . multiplicative_op t_comment_or_whitespaces logical_not_expr '*' shift, and go to state 230 '/' shift, and go to state 231 '%' shift, and go to state 232 multiplicative_op go to state 233 state 162 62 additive_op: . '+' 63 | . '-' 64 | . '.' 66 additive_expr: additive_expr t_comment_or_whitespaces . additive_op t_comment_or_whitespaces multiplicative_expr '-' shift, and go to state 234 '+' shift, and go to state 235 '.' shift, and go to state 236 additive_op go to state 237 state 163 67 bitwise_shift_op: . "<< (T_SL)" 68 | . ">> (T_SR)" 70 bitwise_shift_expr: bitwise_shift_expr t_comment_or_whitespaces . bitwise_shift_op t_comment_or_whitespaces additive_expr ">> (T_SR)" shift, and go to state 238 "<< (T_SL)" shift, and go to state 239 bitwise_shift_op go to state 240 state 164 71 relational_op: . '<' 72 | . "<= (T_IS_SMALLER_OR_EQUAL)" 73 | . "== (T_IS_EQUAL)" 74 | . "=== (T_IS_IDENTICAL)" 75 | . "!== (T_IS_NOT_IDENTICAL)" 76 | . "!= (T_IS_NOT_EQUAL)" 77 | . ">= (T_IS_GREATER_OR_EQUAL)" 78 | . '>' 80 relational_expr: relational_expr t_comment_or_whitespaces . relational_op t_comment_or_whitespaces bitwise_shift_expr "== (T_IS_EQUAL)" shift, and go to state 241 "!= (T_IS_NOT_EQUAL)" shift, and go to state 242 "=== (T_IS_IDENTICAL)" shift, and go to state 243 "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 245 ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 246 '<' shift, and go to state 247 '>' shift, and go to state 248 relational_op go to state 249 state 165 82 bitwise_and_expr: bitwise_and_expr t_comment_or_whitespaces . '&' t_comment_or_whitespaces relational_expr '&' shift, and go to state 250 state 166 84 bitwise_xor_expr: bitwise_xor_expr t_comment_or_whitespaces . '^' t_comment_or_whitespaces bitwise_and_expr '^' shift, and go to state 251 state 167 86 bitwise_or_expr: bitwise_or_expr t_comment_or_whitespaces . '|' t_comment_or_whitespaces bitwise_xor_expr '|' shift, and go to state 252 state 168 88 boolean_and_expr: boolean_and_expr t_comment_or_whitespaces . T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr T_BOOLEAN_AND shift, and go to state 253 state 169 90 boolean_or_expr: boolean_or_expr t_comment_or_whitespaces . T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr T_BOOLEAN_OR shift, and go to state 254 state 170 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 92 | conditional_expression '?' . conditional_expression ':' conditional_expression T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 255 state 171 93 assignament_operator: . '=' 94 | . "+= (T_PLUS_EQUAL)" 95 | . "-= (T_MINUS_EQUAL)" 96 | . ".= (T_CONCAT_EQUAL)" 97 | . "*= (T_MUL_EQUAL)" 98 | . "/= (T_DIV_EQUAL)" 99 | . "%= (T_MOD_EQUAL)" 100 | . "&= (T_AND_EQUAL)" 101 | . "|= (T_OR_EQUAL)" 102 | . "^= (T_XOR_EQUAL)" 103 | . "<<= (T_SL_EQUAL)" 104 | . ">>= (T_SR_EQUAL)" 106 assignament_expression: conditional_expression t_comment_or_whitespaces . assignament_operator t_comment_or_whitespaces assignament_expression "+= (T_PLUS_EQUAL)" shift, and go to state 256 "-= (T_MINUS_EQUAL)" shift, and go to state 257 "*= (T_MUL_EQUAL)" shift, and go to state 258 "/= (T_DIV_EQUAL)" shift, and go to state 259 ".= (T_CONCAT_EQUAL)" shift, and go to state 260 "%= (T_MOD_EQUAL)" shift, and go to state 261 "&= (T_AND_EQUAL)" shift, and go to state 262 "|= (T_OR_EQUAL)" shift, and go to state 263 "^= (T_XOR_EQUAL)" shift, and go to state 264 "<<= (T_SL_EQUAL)" shift, and go to state 265 ">>= (T_SR_EQUAL)" shift, and go to state 266 '=' shift, and go to state 267 assignament_operator go to state 268 state 172 108 logical_and_expression: logical_and_expression t_comment_or_whitespaces . T_LOGICAL_AND t_comment_or_whitespaces assignament_expression T_LOGICAL_AND shift, and go to state 269 state 173 110 logical_xor_expression: logical_xor_expression t_comment_or_whitespaces . T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression T_LOGICAL_XOR shift, and go to state 270 state 174 112 logical_or_expression: logical_or_expression t_comment_or_whitespaces . T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 114 array_key_val_expression: logical_or_expression t_comment_or_whitespaces . T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression T_LOGICAL_OR shift, and go to state 271 T_DOUBLE_ARROW shift, and go to state 272 state 175 130 plain_statement_delimiter: . ';' 131 | . T_CLOSE_TAG 132 statement_delimiter: t_comment_or_whitespaces . plain_statement_delimiter 162 label_statement: expr t_comment_or_whitespaces . ':' T_CLOSE_TAG shift, and go to state 154 ':' shift, and go to state 273 ';' shift, and go to state 155 plain_statement_delimiter go to state 156 state 176 136 expr_statement: expr statement_delimiter . $default reduce using rule 136 (expr_statement) state 177 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: . logical_xor_expression 112 | . logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: . logical_or_expression 114 | . logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression 115 expr: . array_key_val_expression 136 expr_statement: . expr statement_delimiter 137 decl_statement: plain_decl_spec_seq t_comment_or_whitespaces . expr_statement T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 92 logical_or_expression go to state 93 array_key_val_expression go to state 94 expr go to state 274 expr_statement go to state 275 state 178 120 decl_spec: . T_GLOBAL 121 | . T_VAR 122 | . T_PUBLIC 123 | . T_PRIVATE 124 | . T_STATIC 125 | . T_CONST 127 plain_decl_spec_seq: decl_spec_seq t_comment_or_whitespaces . decl_spec 174 function_decl_statement: decl_spec_seq t_comment_or_whitespaces . T_FUNCTION t_comment_or_whitespaces qualified_name_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces t_comment_or_whitespaces ')' function_body_or_semicolon T_FUNCTION shift, and go to state 276 T_VAR shift, and go to state 32 T_PUBLIC shift, and go to state 33 T_PRIVATE shift, and go to state 34 T_STATIC shift, and go to state 35 T_CONST shift, and go to state 36 T_GLOBAL shift, and go to state 38 decl_spec go to state 277 state 179 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: . logical_xor_expression 112 | . logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: . logical_or_expression 114 | . logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression 115 expr: . array_key_val_expression 147 command_statement: command_statement_name t_comment_or_whitespaces . expr statement_delimiter T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 92 logical_or_expression go to state 93 array_key_val_expression go to state 94 expr go to state 278 state 180 149 elseif_branch: t_comment_or_whitespaces . T_ELSEIF t_comment_or_whitespaces statement T_ELSEIF shift, and go to state 279 state 181 150 plain_elseif_seq: elseif_branch . $default reduce using rule 150 (plain_elseif_seq) state 182 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_ELSEIF] 6 | . plain_comment_or_whitespace 149 elseif_branch: . t_comment_or_whitespaces T_ELSEIF t_comment_or_whitespaces statement 151 plain_elseif_seq: plain_elseif_seq . elseif_branch 153 elseif_seq: plain_elseif_seq . ["end of file", T_INLINE_HTML, T_OPEN_TAG, T_OPEN_TAG_WITH_ECHO, T_PLAIN_NAME, T_CLOSE_TAG, T_IF, T_ELSEIF, T_ELSE, T_SWITCH, T_CASE, T_BREAK, T_CONTINUE, T_DEFAULT, T_GOTO, T_FOR, T_FOREACH, T_WHILE, T_DO, T_WHITESPACE, T_INCLUDE, T_INCLUDE_ONCE, T_REQUIRE, T_REQUIRE_ONCE, T_COMMENT, T_CLASS, T_INTERFACE, T_TRAIT, T_FINAL, T_FUNCTION, T_VAR, T_PUBLIC, T_PRIVATE, T_STATIC, T_CONST, T_RETURN, T_GLOBAL, T_NEW, T_THROW, T_TRY, T_PRINT, T_ECHO, T_CLONE, T_USE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '}', '(', '-', '+', '~', '@', '&', '!', ';'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_ELSEIF reduce using rule 5 (t_comment_or_whitespaces) T_ELSEIF [reduce using rule 153 (elseif_seq)] T_WHITESPACE [reduce using rule 153 (elseif_seq)] T_COMMENT [reduce using rule 153 (elseif_seq)] $default reduce using rule 153 (elseif_seq) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 180 elseif_branch go to state 280 state 183 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_ELSE] 6 | . plain_comment_or_whitespace 154 else_branch: . t_comment_or_whitespaces T_ELSE t_comment_or_whitespaces statement 155 if_statement: if_branch elseif_seq . ["end of file", T_INLINE_HTML, T_OPEN_TAG, T_OPEN_TAG_WITH_ECHO, T_PLAIN_NAME, T_CLOSE_TAG, T_IF, T_ELSEIF, T_ELSE, T_SWITCH, T_CASE, T_BREAK, T_CONTINUE, T_DEFAULT, T_GOTO, T_FOR, T_FOREACH, T_WHILE, T_DO, T_WHITESPACE, T_INCLUDE, T_INCLUDE_ONCE, T_REQUIRE, T_REQUIRE_ONCE, T_COMMENT, T_CLASS, T_INTERFACE, T_TRAIT, T_FINAL, T_FUNCTION, T_VAR, T_PUBLIC, T_PRIVATE, T_STATIC, T_CONST, T_RETURN, T_GLOBAL, T_NEW, T_THROW, T_TRY, T_PRINT, T_ECHO, T_CLONE, T_USE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '}', '(', '-', '+', '~', '@', '&', '!', ';'] 156 | if_branch elseif_seq . else_branch T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_ELSE reduce using rule 5 (t_comment_or_whitespaces) T_ELSE [reduce using rule 155 (if_statement)] T_WHITESPACE [reduce using rule 155 (if_statement)] T_COMMENT [reduce using rule 155 (if_statement)] $default reduce using rule 155 (if_statement) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 281 else_branch go to state 282 state 184 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 187 class_declaration: class_key t_comment_or_whitespaces . qualified_name_expr base_classes_list t_comment_or_whitespaces block_statement T_PLAIN_NAME shift, and go to state 12 T_VARIABLE shift, and go to state 49 '$' shift, and go to state 59 '{' shift, and go to state 198 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 283 state 185 214 plain_php_script: plain_php_script t_comment_or_whitespace statement . $default reduce using rule 214 (plain_php_script) state 186 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 148 if_branch: T_IF t_comment_or_whitespaces '(' . t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 284 state 187 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 161 switch_statement: T_SWITCH t_comment_or_whitespaces '(' . t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 285 state 188 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '}', '(', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 12 name_or_variable: '{' . t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 20 object_constructor: '{' . t_comment_or_whitespaces '}' 21 | '{' . t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 286 state 189 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [':'] 6 | . plain_comment_or_whitespace 157 case_statement: T_CASE t_comment_or_whitespaces expr . t_comment_or_whitespaces ':' T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 287 state 190 158 default_statetement: T_DEFAULT t_comment_or_whitespaces ':' . $default reduce using rule 158 (default_statetement) state 191 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_CLOSE_TAG, ';'] 6 | . plain_comment_or_whitespace 132 statement_delimiter: . t_comment_or_whitespaces plain_statement_delimiter 163 goto_statement: T_GOTO t_comment_or_whitespaces expr . statement_delimiter T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 68 statement_delimiter go to state 288 state 192 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 164 for_statement: T_FOR t_comment_or_whitespaces '(' . t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces ')' t_comment_or_whitespaces statement T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 289 state 193 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 165 foreach_statement: T_FOREACH t_comment_or_whitespaces '(' . t_comment_or_whitespaces expr t_comment_or_whitespaces T_AS t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 290 state 194 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 166 while_statement: T_WHILE t_comment_or_whitespaces '(' . t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 291 state 195 167 do_while_statement: T_DO t_comment_or_whitespaces statement . T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' statement_delimiter T_WHILE shift, and go to state 292 state 196 178 class_key: T_FINAL t_comment_or_whitespaces T_CLASS . $default reduce using rule 178 (class_key) state 197 179 class_key: T_FINAL t_comment_or_whitespaces T_INTERFACE . $default reduce using rule 179 (class_key) state 198 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 12 name_or_variable: '{' . t_comment_or_whitespaces expr t_comment_or_whitespaces '}' T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 293 state 199 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . ['('] 6 | . plain_comment_or_whitespace 43 unary_expr: T_NEW t_comment_or_whitespaces name_or_variable . t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 294 state 200 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_INLINE_HTML, T_OPEN_TAG, T_OPEN_TAG_WITH_ECHO, T_PLAIN_NAME, T_CLOSE_TAG, T_IF, T_SWITCH, T_CASE, T_BREAK, T_CONTINUE, T_DEFAULT, T_GOTO, T_FOR, T_FOREACH, T_WHILE, T_DO, T_WHITESPACE, T_INCLUDE, T_INCLUDE_ONCE, T_REQUIRE, T_REQUIRE_ONCE, T_COMMENT, T_CLASS, T_INTERFACE, T_TRAIT, T_FINAL, T_FUNCTION, T_VAR, T_PUBLIC, T_PRIVATE, T_STATIC, T_CONST, T_RETURN, T_GLOBAL, T_NEW, T_THROW, T_TRY, T_PRINT, T_ECHO, T_CLONE, T_USE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '}', '(', '-', '+', '~', '@', '&', '!', ';'] 6 | . plain_comment_or_whitespace 134 block_statement: '{' . statement_seq t_comment_or_whitespaces '}' 135 | '{' . t_comment_or_whitespaces '}' 211 statement_seq: . t_comment_or_whitespaces statement 212 | . statement_seq t_comment_or_whitespaces statement T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 5 (t_comment_or_whitespaces)] T_COMMENT [reduce using rule 5 (t_comment_or_whitespaces)] $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 295 statement_seq go to state 146 state 201 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_CATCH] 6 | . plain_comment_or_whitespace 171 try_statement: T_TRY t_comment_or_whitespaces block_statement . t_comment_or_whitespaces catch_clause_seq T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 296 state 202 40 chain_expr: primary_expr . $default reduce using rule 40 (chain_expr) state 203 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_OBJECT_OPERATOR] 6 | . plain_comment_or_whitespace 41 chain_expr: chain_expr . t_comment_or_whitespaces T_OBJECT_OPERATOR t_comment_or_whitespaces primary_expr 44 unary_expr: T_CLONE t_comment_or_whitespaces chain_expr . [T_CLOSE_TAG, T_AS, T_WHITESPACE, T_COMMENT, T_INSTANCEOF, T_LOGICAL_AND, T_LOGICAL_OR, T_LOGICAL_XOR, T_DOUBLE_ARROW, "+= (T_PLUS_EQUAL)", "-= (T_MINUS_EQUAL)", "*= (T_MUL_EQUAL)", "/= (T_DIV_EQUAL)", ".= (T_CONCAT_EQUAL)", "%= (T_MOD_EQUAL)", "&= (T_AND_EQUAL)", "|= (T_OR_EQUAL)", "^= (T_XOR_EQUAL)", "<<= (T_SL_EQUAL)", ">>= (T_SR_EQUAL)", T_BOOLEAN_OR, T_BOOLEAN_AND, "== (T_IS_EQUAL)", "!= (T_IS_NOT_EQUAL)", "=== (T_IS_IDENTICAL)", "!== (T_IS_NOT_IDENTICAL)", "<= (T_IS_SMALLER_OR_EQUAL)", ">= (T_IS_GREATER_OR_EQUAL)", ">> (T_SR)", "<< (T_SL)", '}', ':', ',', ')', ']', '-', '+', '&', '*', '/', '%', '.', '<', '>', '^', '|', '?', '=', ';'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 44 (unary_expr)] T_COMMENT [reduce using rule 44 (unary_expr)] T_OBJECT_OPERATOR reduce using rule 5 (t_comment_or_whitespaces) $default reduce using rule 44 (unary_expr) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 297 state 204 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_OBJECT_OPERATOR, "++ (T_INC)", "-- (T_DEC)", '{', '(', '['] 6 | . plain_comment_or_whitespace 27 postfix_expr: postfix_expr . t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | postfix_expr . t_comment_or_whitespaces "++ (T_INC)" 29 | postfix_expr . t_comment_or_whitespaces "-- (T_DEC)" 30 | postfix_expr . t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | postfix_expr . t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | postfix_expr . t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 50 unary_expr: "++ (T_INC)" t_comment_or_whitespaces postfix_expr . [T_CLOSE_TAG, T_AS, T_WHITESPACE, T_COMMENT, T_INSTANCEOF, T_LOGICAL_AND, T_LOGICAL_OR, T_LOGICAL_XOR, T_DOUBLE_ARROW, "+= (T_PLUS_EQUAL)", "-= (T_MINUS_EQUAL)", "*= (T_MUL_EQUAL)", "/= (T_DIV_EQUAL)", ".= (T_CONCAT_EQUAL)", "%= (T_MOD_EQUAL)", "&= (T_AND_EQUAL)", "|= (T_OR_EQUAL)", "^= (T_XOR_EQUAL)", "<<= (T_SL_EQUAL)", ">>= (T_SR_EQUAL)", T_BOOLEAN_OR, T_BOOLEAN_AND, "== (T_IS_EQUAL)", "!= (T_IS_NOT_EQUAL)", "=== (T_IS_IDENTICAL)", "!== (T_IS_NOT_IDENTICAL)", "<= (T_IS_SMALLER_OR_EQUAL)", ">= (T_IS_GREATER_OR_EQUAL)", ">> (T_SR)", "<< (T_SL)", '}', ':', ',', ')', ']', '-', '+', '&', '*', '/', '%', '.', '<', '>', '^', '|', '?', '=', ';'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 50 (unary_expr)] T_COMMENT [reduce using rule 50 (unary_expr)] T_OBJECT_OPERATOR reduce using rule 5 (t_comment_or_whitespaces) "++ (T_INC)" reduce using rule 5 (t_comment_or_whitespaces) "-- (T_DEC)" reduce using rule 5 (t_comment_or_whitespaces) '{' reduce using rule 5 (t_comment_or_whitespaces) '(' reduce using rule 5 (t_comment_or_whitespaces) '[' reduce using rule 5 (t_comment_or_whitespaces) $default reduce using rule 50 (unary_expr) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 158 state 205 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_OBJECT_OPERATOR, "++ (T_INC)", "-- (T_DEC)", '{', '(', '['] 6 | . plain_comment_or_whitespace 27 postfix_expr: postfix_expr . t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | postfix_expr . t_comment_or_whitespaces "++ (T_INC)" 29 | postfix_expr . t_comment_or_whitespaces "-- (T_DEC)" 30 | postfix_expr . t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | postfix_expr . t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | postfix_expr . t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 51 unary_expr: "-- (T_DEC)" t_comment_or_whitespaces postfix_expr . [T_CLOSE_TAG, T_AS, T_WHITESPACE, T_COMMENT, T_INSTANCEOF, T_LOGICAL_AND, T_LOGICAL_OR, T_LOGICAL_XOR, T_DOUBLE_ARROW, "+= (T_PLUS_EQUAL)", "-= (T_MINUS_EQUAL)", "*= (T_MUL_EQUAL)", "/= (T_DIV_EQUAL)", ".= (T_CONCAT_EQUAL)", "%= (T_MOD_EQUAL)", "&= (T_AND_EQUAL)", "|= (T_OR_EQUAL)", "^= (T_XOR_EQUAL)", "<<= (T_SL_EQUAL)", ">>= (T_SR_EQUAL)", T_BOOLEAN_OR, T_BOOLEAN_AND, "== (T_IS_EQUAL)", "!= (T_IS_NOT_EQUAL)", "=== (T_IS_IDENTICAL)", "!== (T_IS_NOT_IDENTICAL)", "<= (T_IS_SMALLER_OR_EQUAL)", ">= (T_IS_GREATER_OR_EQUAL)", ">> (T_SR)", "<< (T_SL)", '}', ':', ',', ')', ']', '-', '+', '&', '*', '/', '%', '.', '<', '>', '^', '|', '?', '=', ';'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 51 (unary_expr)] T_COMMENT [reduce using rule 51 (unary_expr)] T_OBJECT_OPERATOR reduce using rule 5 (t_comment_or_whitespaces) "++ (T_INC)" reduce using rule 5 (t_comment_or_whitespaces) "-- (T_DEC)" reduce using rule 5 (t_comment_or_whitespaces) '{' reduce using rule 5 (t_comment_or_whitespaces) '(' reduce using rule 5 (t_comment_or_whitespaces) '[' reduce using rule 5 (t_comment_or_whitespaces) $default reduce using rule 51 (unary_expr) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 158 state 206 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 10 | '$' '{' t_comment_or_whitespaces . expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: . logical_xor_expression 112 | . logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: . logical_or_expression 114 | . logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression 115 expr: . array_key_val_expression T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 92 logical_or_expression go to state 93 array_key_val_expression go to state 94 expr go to state 298 state 207 20 object_constructor: '{' t_comment_or_whitespaces '}' . [T_CLOSE_TAG, T_WHITESPACE, T_COMMENT, T_OBJECT_OPERATOR, T_INSTANCEOF, T_LOGICAL_AND, T_LOGICAL_OR, T_LOGICAL_XOR, T_DOUBLE_ARROW, "+= (T_PLUS_EQUAL)", "-= (T_MINUS_EQUAL)", "*= (T_MUL_EQUAL)", "/= (T_DIV_EQUAL)", ".= (T_CONCAT_EQUAL)", "%= (T_MOD_EQUAL)", "&= (T_AND_EQUAL)", "|= (T_OR_EQUAL)", "^= (T_XOR_EQUAL)", "<<= (T_SL_EQUAL)", ">>= (T_SR_EQUAL)", T_BOOLEAN_OR, T_BOOLEAN_AND, "== (T_IS_EQUAL)", "!= (T_IS_NOT_EQUAL)", "=== (T_IS_IDENTICAL)", "!== (T_IS_NOT_IDENTICAL)", "<= (T_IS_SMALLER_OR_EQUAL)", ">= (T_IS_GREATER_OR_EQUAL)", ">> (T_SR)", "<< (T_SL)", "++ (T_INC)", "-- (T_DEC)", '{', '}', ':', '(', '[', '-', '+', '&', '*', '/', '%', '.', '<', '>', '^', '|', '?', '=', ';'] 135 block_statement: '{' t_comment_or_whitespaces '}' . ["end of file", T_INLINE_HTML, T_OPEN_TAG, T_OPEN_TAG_WITH_ECHO, T_PLAIN_NAME, T_CLOSE_TAG, T_IF, T_ELSEIF, T_ELSE, T_SWITCH, T_CASE, T_BREAK, T_CONTINUE, T_DEFAULT, T_GOTO, T_FOR, T_FOREACH, T_WHILE, T_DO, T_WHITESPACE, T_INCLUDE, T_INCLUDE_ONCE, T_REQUIRE, T_REQUIRE_ONCE, T_COMMENT, T_CLASS, T_INTERFACE, T_TRAIT, T_FINAL, T_FUNCTION, T_VAR, T_PUBLIC, T_PRIVATE, T_STATIC, T_CONST, T_RETURN, T_GLOBAL, T_NEW, T_THROW, T_TRY, T_PRINT, T_ECHO, T_CLONE, T_USE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '}', '(', '-', '+', '~', '@', '&', '!', ';'] T_CLOSE_TAG reduce using rule 20 (object_constructor) T_CLOSE_TAG [reduce using rule 135 (block_statement)] T_WHITESPACE reduce using rule 20 (object_constructor) T_WHITESPACE [reduce using rule 135 (block_statement)] T_COMMENT reduce using rule 20 (object_constructor) T_COMMENT [reduce using rule 135 (block_statement)] T_OBJECT_OPERATOR reduce using rule 20 (object_constructor) T_INSTANCEOF reduce using rule 20 (object_constructor) T_LOGICAL_AND reduce using rule 20 (object_constructor) T_LOGICAL_OR reduce using rule 20 (object_constructor) T_LOGICAL_XOR reduce using rule 20 (object_constructor) T_DOUBLE_ARROW reduce using rule 20 (object_constructor) "+= (T_PLUS_EQUAL)" reduce using rule 20 (object_constructor) "-= (T_MINUS_EQUAL)" reduce using rule 20 (object_constructor) "*= (T_MUL_EQUAL)" reduce using rule 20 (object_constructor) "/= (T_DIV_EQUAL)" reduce using rule 20 (object_constructor) ".= (T_CONCAT_EQUAL)" reduce using rule 20 (object_constructor) "%= (T_MOD_EQUAL)" reduce using rule 20 (object_constructor) "&= (T_AND_EQUAL)" reduce using rule 20 (object_constructor) "|= (T_OR_EQUAL)" reduce using rule 20 (object_constructor) "^= (T_XOR_EQUAL)" reduce using rule 20 (object_constructor) "<<= (T_SL_EQUAL)" reduce using rule 20 (object_constructor) ">>= (T_SR_EQUAL)" reduce using rule 20 (object_constructor) T_BOOLEAN_OR reduce using rule 20 (object_constructor) T_BOOLEAN_AND reduce using rule 20 (object_constructor) "== (T_IS_EQUAL)" reduce using rule 20 (object_constructor) "!= (T_IS_NOT_EQUAL)" reduce using rule 20 (object_constructor) "=== (T_IS_IDENTICAL)" reduce using rule 20 (object_constructor) "!== (T_IS_NOT_IDENTICAL)" reduce using rule 20 (object_constructor) "<= (T_IS_SMALLER_OR_EQUAL)" reduce using rule 20 (object_constructor) ">= (T_IS_GREATER_OR_EQUAL)" reduce using rule 20 (object_constructor) ">> (T_SR)" reduce using rule 20 (object_constructor) "<< (T_SL)" reduce using rule 20 (object_constructor) "++ (T_INC)" reduce using rule 20 (object_constructor) "++ (T_INC)" [reduce using rule 135 (block_statement)] "-- (T_DEC)" reduce using rule 20 (object_constructor) "-- (T_DEC)" [reduce using rule 135 (block_statement)] '{' reduce using rule 20 (object_constructor) '{' [reduce using rule 135 (block_statement)] '}' reduce using rule 20 (object_constructor) '}' [reduce using rule 135 (block_statement)] ':' reduce using rule 20 (object_constructor) '(' reduce using rule 20 (object_constructor) '(' [reduce using rule 135 (block_statement)] '[' reduce using rule 20 (object_constructor) '-' reduce using rule 20 (object_constructor) '-' [reduce using rule 135 (block_statement)] '+' reduce using rule 20 (object_constructor) '+' [reduce using rule 135 (block_statement)] '&' reduce using rule 20 (object_constructor) '&' [reduce using rule 135 (block_statement)] '*' reduce using rule 20 (object_constructor) '/' reduce using rule 20 (object_constructor) '%' reduce using rule 20 (object_constructor) '.' reduce using rule 20 (object_constructor) '<' reduce using rule 20 (object_constructor) '>' reduce using rule 20 (object_constructor) '^' reduce using rule 20 (object_constructor) '|' reduce using rule 20 (object_constructor) '?' reduce using rule 20 (object_constructor) '=' reduce using rule 20 (object_constructor) ';' reduce using rule 20 (object_constructor) ';' [reduce using rule 135 (block_statement)] $default reduce using rule 135 (block_statement) state 208 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PAAMAYIM_NEKUDOTAYIM, ':'] 6 | . plain_comment_or_whitespace 16 qualified_name_expr: qualified_name_expr . t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 17 property_declaration: qualified_name_expr . t_comment_or_whitespaces ':' t_comment_or_whitespaces expr 23 primary_expr: qualified_name_expr . [T_CLOSE_TAG, T_WHITESPACE, T_COMMENT, T_OBJECT_OPERATOR, T_INSTANCEOF, T_LOGICAL_AND, T_LOGICAL_OR, T_LOGICAL_XOR, T_DOUBLE_ARROW, "+= (T_PLUS_EQUAL)", "-= (T_MINUS_EQUAL)", "*= (T_MUL_EQUAL)", "/= (T_DIV_EQUAL)", ".= (T_CONCAT_EQUAL)", "%= (T_MOD_EQUAL)", "&= (T_AND_EQUAL)", "|= (T_OR_EQUAL)", "^= (T_XOR_EQUAL)", "<<= (T_SL_EQUAL)", ">>= (T_SR_EQUAL)", T_BOOLEAN_OR, T_BOOLEAN_AND, "== (T_IS_EQUAL)", "!= (T_IS_NOT_EQUAL)", "=== (T_IS_IDENTICAL)", "!== (T_IS_NOT_IDENTICAL)", "<= (T_IS_SMALLER_OR_EQUAL)", ">= (T_IS_GREATER_OR_EQUAL)", ">> (T_SR)", "<< (T_SL)", "++ (T_INC)", "-- (T_DEC)", '{', '}', ':', '(', '[', '-', '+', '&', '*', '/', '%', '.', '<', '>', '^', '|', '?', '=', ';'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_PAAMAYIM_NEKUDOTAYIM reduce using rule 5 (t_comment_or_whitespaces) T_WHITESPACE [reduce using rule 23 (primary_expr)] T_COMMENT [reduce using rule 23 (primary_expr)] ':' reduce using rule 5 (t_comment_or_whitespaces) ':' [reduce using rule 23 (primary_expr)] $default reduce using rule 23 (primary_expr) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 299 state 209 18 property_declaration_seq: property_declaration . $default reduce using rule 18 (property_declaration_seq) state 210 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . ['}', ','] 6 | . plain_comment_or_whitespace 19 property_declaration_seq: property_declaration_seq . t_comment_or_whitespaces ',' t_comment_or_whitespaces property_declaration 21 object_constructor: '{' t_comment_or_whitespaces property_declaration_seq . t_comment_or_whitespaces '}' T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 300 state 211 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_CLOSE_TAG, '}', ':', ';'] 6 | . plain_comment_or_whitespace 12 name_or_variable: '{' t_comment_or_whitespaces expr . t_comment_or_whitespaces '}' 132 statement_delimiter: . t_comment_or_whitespaces plain_statement_delimiter 136 expr_statement: expr . statement_delimiter 162 label_statement: expr . t_comment_or_whitespaces ':' T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 301 statement_delimiter go to state 176 state 212 211 statement_seq: t_comment_or_whitespaces statement . $default reduce using rule 211 (statement_seq) state 213 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_CLOSE_TAG, ';'] 6 | . plain_comment_or_whitespace 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: . logical_xor_expression 112 | . logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: . logical_or_expression 114 | . logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression 115 expr: . array_key_val_expression 120 decl_spec: . T_GLOBAL 121 | . T_VAR 122 | . T_PUBLIC 123 | . T_PRIVATE 124 | . T_STATIC 125 | . T_CONST 126 plain_decl_spec_seq: . decl_spec 127 | . decl_spec_seq t_comment_or_whitespaces decl_spec 128 decl_spec_seq: . [T_WHITESPACE, T_COMMENT, T_FUNCTION, T_VAR, T_PUBLIC, T_PRIVATE, T_STATIC, T_CONST, T_GLOBAL] 129 | . plain_decl_spec_seq 132 statement_delimiter: . t_comment_or_whitespaces plain_statement_delimiter 133 empty_statement: . statement_delimiter 134 block_statement: . '{' statement_seq t_comment_or_whitespaces '}' 134 | '{' statement_seq t_comment_or_whitespaces . '}' 135 | . '{' t_comment_or_whitespaces '}' 136 expr_statement: . expr statement_delimiter 137 decl_statement: . plain_decl_spec_seq t_comment_or_whitespaces expr_statement 138 command_statement_name: . T_RETURN 139 | . T_PRINT 140 | . T_ECHO 141 | . T_INCLUDE 142 | . T_INCLUDE_ONCE 143 | . T_REQUIRE 144 | . T_REQUIRE_ONCE 145 | . T_THROW 146 | . T_USE 147 command_statement: . command_statement_name t_comment_or_whitespaces expr statement_delimiter 148 if_branch: . T_IF t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 155 if_statement: . if_branch elseif_seq 156 | . if_branch elseif_seq else_branch 157 case_statement: . T_CASE t_comment_or_whitespaces expr t_comment_or_whitespaces ':' 158 default_statetement: . T_DEFAULT t_comment_or_whitespaces ':' 159 break_statement: . T_BREAK statement_delimiter 160 continue_statement: . T_CONTINUE statement_delimiter 161 switch_statement: . T_SWITCH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 162 label_statement: . expr t_comment_or_whitespaces ':' 163 goto_statement: . T_GOTO t_comment_or_whitespaces expr statement_delimiter 164 for_statement: . T_FOR t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 165 foreach_statement: . T_FOREACH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces T_AS t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 166 while_statement: . T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 167 do_while_statement: . T_DO t_comment_or_whitespaces statement T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' statement_delimiter 171 try_statement: . T_TRY t_comment_or_whitespaces block_statement t_comment_or_whitespaces catch_clause_seq 174 function_decl_statement: . decl_spec_seq t_comment_or_whitespaces T_FUNCTION t_comment_or_whitespaces qualified_name_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces t_comment_or_whitespaces ')' function_body_or_semicolon 175 class_key: . T_INTERFACE 176 | . T_TRAIT 177 | . T_CLASS 178 | . T_FINAL t_comment_or_whitespaces T_CLASS 179 | . T_FINAL t_comment_or_whitespaces T_INTERFACE 187 class_declaration: . class_key t_comment_or_whitespaces qualified_name_expr base_classes_list t_comment_or_whitespaces block_statement 188 statement: . T_INLINE_HTML 189 | . T_OPEN_TAG 190 | . T_OPEN_TAG_WITH_ECHO 191 | . empty_statement 192 | . block_statement 193 | . decl_statement 194 | . expr_statement 195 | . command_statement 196 | . if_statement 197 | . case_statement 198 | . default_statetement 199 | . break_statement 200 | . continue_statement 201 | . label_statement 202 | . goto_statement 203 | . switch_statement 204 | . for_statement 205 | . foreach_statement 206 | . while_statement 207 | . do_while_statement 208 | . try_statement 209 | . function_decl_statement 210 | . class_declaration 212 statement_seq: statement_seq t_comment_or_whitespaces . statement T_INLINE_HTML shift, and go to state 9 T_OPEN_TAG shift, and go to state 10 T_OPEN_TAG_WITH_ECHO shift, and go to state 11 T_PLAIN_NAME shift, and go to state 12 T_IF shift, and go to state 13 T_SWITCH shift, and go to state 14 T_CASE shift, and go to state 15 T_BREAK shift, and go to state 16 T_CONTINUE shift, and go to state 17 T_DEFAULT shift, and go to state 18 T_GOTO shift, and go to state 19 T_FOR shift, and go to state 20 T_FOREACH shift, and go to state 21 T_WHILE shift, and go to state 22 T_DO shift, and go to state 23 T_WHITESPACE shift, and go to state 1 T_INCLUDE shift, and go to state 24 T_INCLUDE_ONCE shift, and go to state 25 T_REQUIRE shift, and go to state 26 T_REQUIRE_ONCE shift, and go to state 27 T_COMMENT shift, and go to state 2 T_CLASS shift, and go to state 28 T_INTERFACE shift, and go to state 29 T_TRAIT shift, and go to state 30 T_FINAL shift, and go to state 31 T_VAR shift, and go to state 32 T_PUBLIC shift, and go to state 33 T_PRIVATE shift, and go to state 34 T_STATIC shift, and go to state 35 T_CONST shift, and go to state 36 T_RETURN shift, and go to state 37 T_GLOBAL shift, and go to state 38 T_NEW shift, and go to state 39 T_THROW shift, and go to state 40 T_TRY shift, and go to state 41 T_PRINT shift, and go to state 42 T_ECHO shift, and go to state 43 T_CLONE shift, and go to state 44 T_USE shift, and go to state 45 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 60 '}' shift, and go to state 302 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 T_WHITESPACE [reduce using rule 128 (decl_spec_seq)] T_COMMENT [reduce using rule 128 (decl_spec_seq)] T_FUNCTION reduce using rule 128 (decl_spec_seq) T_VAR [reduce using rule 128 (decl_spec_seq)] T_PUBLIC [reduce using rule 128 (decl_spec_seq)] T_PRIVATE [reduce using rule 128 (decl_spec_seq)] T_STATIC [reduce using rule 128 (decl_spec_seq)] T_CONST [reduce using rule 128 (decl_spec_seq)] T_GLOBAL [reduce using rule 128 (decl_spec_seq)] $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 68 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 92 logical_or_expression go to state 93 array_key_val_expression go to state 94 expr go to state 95 decl_spec go to state 96 plain_decl_spec_seq go to state 97 decl_spec_seq go to state 98 statement_delimiter go to state 99 empty_statement go to state 100 block_statement go to state 101 expr_statement go to state 102 decl_statement go to state 103 command_statement_name go to state 104 command_statement go to state 105 if_branch go to state 106 if_statement go to state 107 case_statement go to state 108 default_statetement go to state 109 break_statement go to state 110 continue_statement go to state 111 switch_statement go to state 112 label_statement go to state 113 goto_statement go to state 114 for_statement go to state 115 foreach_statement go to state 116 while_statement go to state 117 do_while_statement go to state 118 try_statement go to state 119 function_decl_statement go to state 120 class_key go to state 121 class_declaration go to state 122 statement go to state 303 state 214 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [')'] 6 | . plain_comment_or_whitespace 25 primary_expr: '(' t_comment_or_whitespaces expr . t_comment_or_whitespaces ')' T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 304 state 215 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_OBJECT_OPERATOR, "++ (T_INC)", "-- (T_DEC)", '{', '(', '['] 6 | . plain_comment_or_whitespace 27 postfix_expr: postfix_expr . t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | postfix_expr . t_comment_or_whitespaces "++ (T_INC)" 29 | postfix_expr . t_comment_or_whitespaces "-- (T_DEC)" 30 | postfix_expr . t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | postfix_expr . t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | postfix_expr . t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 45 unary_expr: '-' t_comment_or_whitespaces postfix_expr . [T_CLOSE_TAG, T_AS, T_WHITESPACE, T_COMMENT, T_INSTANCEOF, T_LOGICAL_AND, T_LOGICAL_OR, T_LOGICAL_XOR, T_DOUBLE_ARROW, "+= (T_PLUS_EQUAL)", "-= (T_MINUS_EQUAL)", "*= (T_MUL_EQUAL)", "/= (T_DIV_EQUAL)", ".= (T_CONCAT_EQUAL)", "%= (T_MOD_EQUAL)", "&= (T_AND_EQUAL)", "|= (T_OR_EQUAL)", "^= (T_XOR_EQUAL)", "<<= (T_SL_EQUAL)", ">>= (T_SR_EQUAL)", T_BOOLEAN_OR, T_BOOLEAN_AND, "== (T_IS_EQUAL)", "!= (T_IS_NOT_EQUAL)", "=== (T_IS_IDENTICAL)", "!== (T_IS_NOT_IDENTICAL)", "<= (T_IS_SMALLER_OR_EQUAL)", ">= (T_IS_GREATER_OR_EQUAL)", ">> (T_SR)", "<< (T_SL)", '}', ':', ',', ')', ']', '-', '+', '&', '*', '/', '%', '.', '<', '>', '^', '|', '?', '=', ';'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 45 (unary_expr)] T_COMMENT [reduce using rule 45 (unary_expr)] T_OBJECT_OPERATOR reduce using rule 5 (t_comment_or_whitespaces) "++ (T_INC)" reduce using rule 5 (t_comment_or_whitespaces) "-- (T_DEC)" reduce using rule 5 (t_comment_or_whitespaces) '{' reduce using rule 5 (t_comment_or_whitespaces) '(' reduce using rule 5 (t_comment_or_whitespaces) '[' reduce using rule 5 (t_comment_or_whitespaces) $default reduce using rule 45 (unary_expr) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 158 state 216 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_OBJECT_OPERATOR, "++ (T_INC)", "-- (T_DEC)", '{', '(', '['] 6 | . plain_comment_or_whitespace 27 postfix_expr: postfix_expr . t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | postfix_expr . t_comment_or_whitespaces "++ (T_INC)" 29 | postfix_expr . t_comment_or_whitespaces "-- (T_DEC)" 30 | postfix_expr . t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | postfix_expr . t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | postfix_expr . t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 46 unary_expr: '+' t_comment_or_whitespaces postfix_expr . [T_CLOSE_TAG, T_AS, T_WHITESPACE, T_COMMENT, T_INSTANCEOF, T_LOGICAL_AND, T_LOGICAL_OR, T_LOGICAL_XOR, T_DOUBLE_ARROW, "+= (T_PLUS_EQUAL)", "-= (T_MINUS_EQUAL)", "*= (T_MUL_EQUAL)", "/= (T_DIV_EQUAL)", ".= (T_CONCAT_EQUAL)", "%= (T_MOD_EQUAL)", "&= (T_AND_EQUAL)", "|= (T_OR_EQUAL)", "^= (T_XOR_EQUAL)", "<<= (T_SL_EQUAL)", ">>= (T_SR_EQUAL)", T_BOOLEAN_OR, T_BOOLEAN_AND, "== (T_IS_EQUAL)", "!= (T_IS_NOT_EQUAL)", "=== (T_IS_IDENTICAL)", "!== (T_IS_NOT_IDENTICAL)", "<= (T_IS_SMALLER_OR_EQUAL)", ">= (T_IS_GREATER_OR_EQUAL)", ">> (T_SR)", "<< (T_SL)", '}', ':', ',', ')', ']', '-', '+', '&', '*', '/', '%', '.', '<', '>', '^', '|', '?', '=', ';'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 46 (unary_expr)] T_COMMENT [reduce using rule 46 (unary_expr)] T_OBJECT_OPERATOR reduce using rule 5 (t_comment_or_whitespaces) "++ (T_INC)" reduce using rule 5 (t_comment_or_whitespaces) "-- (T_DEC)" reduce using rule 5 (t_comment_or_whitespaces) '{' reduce using rule 5 (t_comment_or_whitespaces) '(' reduce using rule 5 (t_comment_or_whitespaces) '[' reduce using rule 5 (t_comment_or_whitespaces) $default reduce using rule 46 (unary_expr) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 158 state 217 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_OBJECT_OPERATOR, "++ (T_INC)", "-- (T_DEC)", '{', '(', '['] 6 | . plain_comment_or_whitespace 27 postfix_expr: postfix_expr . t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | postfix_expr . t_comment_or_whitespaces "++ (T_INC)" 29 | postfix_expr . t_comment_or_whitespaces "-- (T_DEC)" 30 | postfix_expr . t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | postfix_expr . t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | postfix_expr . t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 47 unary_expr: '~' t_comment_or_whitespaces postfix_expr . [T_CLOSE_TAG, T_AS, T_WHITESPACE, T_COMMENT, T_INSTANCEOF, T_LOGICAL_AND, T_LOGICAL_OR, T_LOGICAL_XOR, T_DOUBLE_ARROW, "+= (T_PLUS_EQUAL)", "-= (T_MINUS_EQUAL)", "*= (T_MUL_EQUAL)", "/= (T_DIV_EQUAL)", ".= (T_CONCAT_EQUAL)", "%= (T_MOD_EQUAL)", "&= (T_AND_EQUAL)", "|= (T_OR_EQUAL)", "^= (T_XOR_EQUAL)", "<<= (T_SL_EQUAL)", ">>= (T_SR_EQUAL)", T_BOOLEAN_OR, T_BOOLEAN_AND, "== (T_IS_EQUAL)", "!= (T_IS_NOT_EQUAL)", "=== (T_IS_IDENTICAL)", "!== (T_IS_NOT_IDENTICAL)", "<= (T_IS_SMALLER_OR_EQUAL)", ">= (T_IS_GREATER_OR_EQUAL)", ">> (T_SR)", "<< (T_SL)", '}', ':', ',', ')', ']', '-', '+', '&', '*', '/', '%', '.', '<', '>', '^', '|', '?', '=', ';'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 47 (unary_expr)] T_COMMENT [reduce using rule 47 (unary_expr)] T_OBJECT_OPERATOR reduce using rule 5 (t_comment_or_whitespaces) "++ (T_INC)" reduce using rule 5 (t_comment_or_whitespaces) "-- (T_DEC)" reduce using rule 5 (t_comment_or_whitespaces) '{' reduce using rule 5 (t_comment_or_whitespaces) '(' reduce using rule 5 (t_comment_or_whitespaces) '[' reduce using rule 5 (t_comment_or_whitespaces) $default reduce using rule 47 (unary_expr) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 158 state 218 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_OBJECT_OPERATOR, "++ (T_INC)", "-- (T_DEC)", '{', '(', '['] 6 | . plain_comment_or_whitespace 27 postfix_expr: postfix_expr . t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | postfix_expr . t_comment_or_whitespaces "++ (T_INC)" 29 | postfix_expr . t_comment_or_whitespaces "-- (T_DEC)" 30 | postfix_expr . t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | postfix_expr . t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | postfix_expr . t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 48 unary_expr: '@' t_comment_or_whitespaces postfix_expr . [T_CLOSE_TAG, T_AS, T_WHITESPACE, T_COMMENT, T_INSTANCEOF, T_LOGICAL_AND, T_LOGICAL_OR, T_LOGICAL_XOR, T_DOUBLE_ARROW, "+= (T_PLUS_EQUAL)", "-= (T_MINUS_EQUAL)", "*= (T_MUL_EQUAL)", "/= (T_DIV_EQUAL)", ".= (T_CONCAT_EQUAL)", "%= (T_MOD_EQUAL)", "&= (T_AND_EQUAL)", "|= (T_OR_EQUAL)", "^= (T_XOR_EQUAL)", "<<= (T_SL_EQUAL)", ">>= (T_SR_EQUAL)", T_BOOLEAN_OR, T_BOOLEAN_AND, "== (T_IS_EQUAL)", "!= (T_IS_NOT_EQUAL)", "=== (T_IS_IDENTICAL)", "!== (T_IS_NOT_IDENTICAL)", "<= (T_IS_SMALLER_OR_EQUAL)", ">= (T_IS_GREATER_OR_EQUAL)", ">> (T_SR)", "<< (T_SL)", '}', ':', ',', ')', ']', '-', '+', '&', '*', '/', '%', '.', '<', '>', '^', '|', '?', '=', ';'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 48 (unary_expr)] T_COMMENT [reduce using rule 48 (unary_expr)] T_OBJECT_OPERATOR reduce using rule 5 (t_comment_or_whitespaces) "++ (T_INC)" reduce using rule 5 (t_comment_or_whitespaces) "-- (T_DEC)" reduce using rule 5 (t_comment_or_whitespaces) '{' reduce using rule 5 (t_comment_or_whitespaces) '(' reduce using rule 5 (t_comment_or_whitespaces) '[' reduce using rule 5 (t_comment_or_whitespaces) $default reduce using rule 48 (unary_expr) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 158 state 219 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_OBJECT_OPERATOR, "++ (T_INC)", "-- (T_DEC)", '{', '(', '['] 6 | . plain_comment_or_whitespace 27 postfix_expr: postfix_expr . t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | postfix_expr . t_comment_or_whitespaces "++ (T_INC)" 29 | postfix_expr . t_comment_or_whitespaces "-- (T_DEC)" 30 | postfix_expr . t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | postfix_expr . t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | postfix_expr . t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 49 unary_expr: '&' t_comment_or_whitespaces postfix_expr . [T_CLOSE_TAG, T_AS, T_WHITESPACE, T_COMMENT, T_INSTANCEOF, T_LOGICAL_AND, T_LOGICAL_OR, T_LOGICAL_XOR, T_DOUBLE_ARROW, "+= (T_PLUS_EQUAL)", "-= (T_MINUS_EQUAL)", "*= (T_MUL_EQUAL)", "/= (T_DIV_EQUAL)", ".= (T_CONCAT_EQUAL)", "%= (T_MOD_EQUAL)", "&= (T_AND_EQUAL)", "|= (T_OR_EQUAL)", "^= (T_XOR_EQUAL)", "<<= (T_SL_EQUAL)", ">>= (T_SR_EQUAL)", T_BOOLEAN_OR, T_BOOLEAN_AND, "== (T_IS_EQUAL)", "!= (T_IS_NOT_EQUAL)", "=== (T_IS_IDENTICAL)", "!== (T_IS_NOT_IDENTICAL)", "<= (T_IS_SMALLER_OR_EQUAL)", ">= (T_IS_GREATER_OR_EQUAL)", ">> (T_SR)", "<< (T_SL)", '}', ':', ',', ')', ']', '-', '+', '&', '*', '/', '%', '.', '<', '>', '^', '|', '?', '=', ';'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 49 (unary_expr)] T_COMMENT [reduce using rule 49 (unary_expr)] T_OBJECT_OPERATOR reduce using rule 5 (t_comment_or_whitespaces) "++ (T_INC)" reduce using rule 5 (t_comment_or_whitespaces) "-- (T_DEC)" reduce using rule 5 (t_comment_or_whitespaces) '{' reduce using rule 5 (t_comment_or_whitespaces) '(' reduce using rule 5 (t_comment_or_whitespaces) '[' reduce using rule 5 (t_comment_or_whitespaces) $default reduce using rule 49 (unary_expr) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 158 state 220 56 logical_not_expr: '!' t_comment_or_whitespaces logical_not_expr . $default reduce using rule 56 (logical_not_expr) state 221 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_VARIABLE, '$', '{'] 6 | . plain_comment_or_whitespace 16 qualified_name_expr: qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM . t_comment_or_whitespaces name_or_variable T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 305 state 222 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 27 postfix_expr: postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR . primary_expr T_PLAIN_NAME shift, and go to state 12 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 306 state 223 28 postfix_expr: postfix_expr t_comment_or_whitespaces "++ (T_INC)" . $default reduce using rule 28 (postfix_expr) state 224 29 postfix_expr: postfix_expr t_comment_or_whitespaces "-- (T_DEC)" . $default reduce using rule 29 (postfix_expr) state 225 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 32 postfix_expr: postfix_expr t_comment_or_whitespaces '{' . t_comment_or_whitespaces expr t_comment_or_whitespaces '}' T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 307 state 226 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_WHITESPACE, T_COMMENT, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', ')', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 30 postfix_expr: postfix_expr t_comment_or_whitespaces '(' . t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 5 (t_comment_or_whitespaces)] T_COMMENT [reduce using rule 5 (t_comment_or_whitespaces)] $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 308 state 227 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 31 postfix_expr: postfix_expr t_comment_or_whitespaces '[' . t_comment_or_whitespaces expr t_comment_or_whitespaces ']' T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 309 state 228 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_OBJECT_OPERATOR, "++ (T_INC)", "-- (T_DEC)", '{', '(', '['] 6 | . plain_comment_or_whitespace 27 postfix_expr: postfix_expr . t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | postfix_expr . t_comment_or_whitespaces "++ (T_INC)" 29 | postfix_expr . t_comment_or_whitespaces "-- (T_DEC)" 30 | postfix_expr . t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | postfix_expr . t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | postfix_expr . t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 52 unary_expr: cast_operator t_comment_or_whitespaces postfix_expr . [T_CLOSE_TAG, T_AS, T_WHITESPACE, T_COMMENT, T_INSTANCEOF, T_LOGICAL_AND, T_LOGICAL_OR, T_LOGICAL_XOR, T_DOUBLE_ARROW, "+= (T_PLUS_EQUAL)", "-= (T_MINUS_EQUAL)", "*= (T_MUL_EQUAL)", "/= (T_DIV_EQUAL)", ".= (T_CONCAT_EQUAL)", "%= (T_MOD_EQUAL)", "&= (T_AND_EQUAL)", "|= (T_OR_EQUAL)", "^= (T_XOR_EQUAL)", "<<= (T_SL_EQUAL)", ">>= (T_SR_EQUAL)", T_BOOLEAN_OR, T_BOOLEAN_AND, "== (T_IS_EQUAL)", "!= (T_IS_NOT_EQUAL)", "=== (T_IS_IDENTICAL)", "!== (T_IS_NOT_IDENTICAL)", "<= (T_IS_SMALLER_OR_EQUAL)", ">= (T_IS_GREATER_OR_EQUAL)", ">> (T_SR)", "<< (T_SL)", '}', ':', ',', ')', ']', '-', '+', '&', '*', '/', '%', '.', '<', '>', '^', '|', '?', '=', ';'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 52 (unary_expr)] T_COMMENT [reduce using rule 52 (unary_expr)] T_OBJECT_OPERATOR reduce using rule 5 (t_comment_or_whitespaces) "++ (T_INC)" reduce using rule 5 (t_comment_or_whitespaces) "-- (T_DEC)" reduce using rule 5 (t_comment_or_whitespaces) '{' reduce using rule 5 (t_comment_or_whitespaces) '(' reduce using rule 5 (t_comment_or_whitespaces) '[' reduce using rule 5 (t_comment_or_whitespaces) $default reduce using rule 52 (unary_expr) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 158 state 229 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_VARIABLE, '$', '{'] 6 | . plain_comment_or_whitespace 54 instanceof_expr: unary_expr t_comment_or_whitespaces T_INSTANCEOF . t_comment_or_whitespaces qualified_name_expr T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 310 state 230 57 multiplicative_op: '*' . $default reduce using rule 57 (multiplicative_op) state 231 58 multiplicative_op: '/' . $default reduce using rule 58 (multiplicative_op) state 232 59 multiplicative_op: '%' . $default reduce using rule 59 (multiplicative_op) state 233 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 61 multiplicative_expr: multiplicative_expr t_comment_or_whitespaces multiplicative_op . t_comment_or_whitespaces logical_not_expr T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 311 state 234 63 additive_op: '-' . $default reduce using rule 63 (additive_op) state 235 62 additive_op: '+' . $default reduce using rule 62 (additive_op) state 236 64 additive_op: '.' . $default reduce using rule 64 (additive_op) state 237 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 66 additive_expr: additive_expr t_comment_or_whitespaces additive_op . t_comment_or_whitespaces multiplicative_expr T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 312 state 238 68 bitwise_shift_op: ">> (T_SR)" . $default reduce using rule 68 (bitwise_shift_op) state 239 67 bitwise_shift_op: "<< (T_SL)" . $default reduce using rule 67 (bitwise_shift_op) state 240 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 70 bitwise_shift_expr: bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op . t_comment_or_whitespaces additive_expr T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 313 state 241 73 relational_op: "== (T_IS_EQUAL)" . $default reduce using rule 73 (relational_op) state 242 76 relational_op: "!= (T_IS_NOT_EQUAL)" . $default reduce using rule 76 (relational_op) state 243 74 relational_op: "=== (T_IS_IDENTICAL)" . $default reduce using rule 74 (relational_op) state 244 75 relational_op: "!== (T_IS_NOT_IDENTICAL)" . $default reduce using rule 75 (relational_op) state 245 72 relational_op: "<= (T_IS_SMALLER_OR_EQUAL)" . $default reduce using rule 72 (relational_op) state 246 77 relational_op: ">= (T_IS_GREATER_OR_EQUAL)" . $default reduce using rule 77 (relational_op) state 247 71 relational_op: '<' . $default reduce using rule 71 (relational_op) state 248 78 relational_op: '>' . $default reduce using rule 78 (relational_op) state 249 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 80 relational_expr: relational_expr t_comment_or_whitespaces relational_op . t_comment_or_whitespaces bitwise_shift_expr T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 314 state 250 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 82 bitwise_and_expr: bitwise_and_expr t_comment_or_whitespaces '&' . t_comment_or_whitespaces relational_expr T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 315 state 251 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 84 bitwise_xor_expr: bitwise_xor_expr t_comment_or_whitespaces '^' . t_comment_or_whitespaces bitwise_and_expr T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 316 state 252 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 86 bitwise_or_expr: bitwise_or_expr t_comment_or_whitespaces '|' . t_comment_or_whitespaces bitwise_xor_expr T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 317 state 253 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 88 boolean_and_expr: boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND . t_comment_or_whitespaces bitwise_or_expr T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 318 state 254 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 90 boolean_or_expr: boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR . t_comment_or_whitespaces boolean_and_expr T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 319 state 255 92 conditional_expression: conditional_expression . '?' conditional_expression ':' conditional_expression 92 | conditional_expression '?' conditional_expression . ':' conditional_expression ':' shift, and go to state 320 '?' shift, and go to state 170 state 256 94 assignament_operator: "+= (T_PLUS_EQUAL)" . $default reduce using rule 94 (assignament_operator) state 257 95 assignament_operator: "-= (T_MINUS_EQUAL)" . $default reduce using rule 95 (assignament_operator) state 258 97 assignament_operator: "*= (T_MUL_EQUAL)" . $default reduce using rule 97 (assignament_operator) state 259 98 assignament_operator: "/= (T_DIV_EQUAL)" . $default reduce using rule 98 (assignament_operator) state 260 96 assignament_operator: ".= (T_CONCAT_EQUAL)" . $default reduce using rule 96 (assignament_operator) state 261 99 assignament_operator: "%= (T_MOD_EQUAL)" . $default reduce using rule 99 (assignament_operator) state 262 100 assignament_operator: "&= (T_AND_EQUAL)" . $default reduce using rule 100 (assignament_operator) state 263 101 assignament_operator: "|= (T_OR_EQUAL)" . $default reduce using rule 101 (assignament_operator) state 264 102 assignament_operator: "^= (T_XOR_EQUAL)" . $default reduce using rule 102 (assignament_operator) state 265 103 assignament_operator: "<<= (T_SL_EQUAL)" . $default reduce using rule 103 (assignament_operator) state 266 104 assignament_operator: ">>= (T_SR_EQUAL)" . $default reduce using rule 104 (assignament_operator) state 267 93 assignament_operator: '=' . $default reduce using rule 93 (assignament_operator) state 268 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 106 assignament_expression: conditional_expression t_comment_or_whitespaces assignament_operator . t_comment_or_whitespaces assignament_expression T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 321 state 269 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 108 logical_and_expression: logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND . t_comment_or_whitespaces assignament_expression T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 322 state 270 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 110 logical_xor_expression: logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR . t_comment_or_whitespaces logical_and_expression T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 323 state 271 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 112 logical_or_expression: logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR . t_comment_or_whitespaces logical_xor_expression T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 324 state 272 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 114 array_key_val_expression: logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW . t_comment_or_whitespaces logical_or_expression T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 325 state 273 162 label_statement: expr t_comment_or_whitespaces ':' . $default reduce using rule 162 (label_statement) state 274 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_CLOSE_TAG, ';'] 6 | . plain_comment_or_whitespace 132 statement_delimiter: . t_comment_or_whitespaces plain_statement_delimiter 136 expr_statement: expr . statement_delimiter T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 68 statement_delimiter go to state 176 state 275 137 decl_statement: plain_decl_spec_seq t_comment_or_whitespaces expr_statement . $default reduce using rule 137 (decl_statement) state 276 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_VARIABLE, '$', '{'] 6 | . plain_comment_or_whitespace 174 function_decl_statement: decl_spec_seq t_comment_or_whitespaces T_FUNCTION . t_comment_or_whitespaces qualified_name_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces t_comment_or_whitespaces ')' function_body_or_semicolon T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 326 state 277 127 plain_decl_spec_seq: decl_spec_seq t_comment_or_whitespaces decl_spec . $default reduce using rule 127 (plain_decl_spec_seq) state 278 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_CLOSE_TAG, ';'] 6 | . plain_comment_or_whitespace 132 statement_delimiter: . t_comment_or_whitespaces plain_statement_delimiter 147 command_statement: command_statement_name t_comment_or_whitespaces expr . statement_delimiter T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 68 statement_delimiter go to state 327 state 279 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_INLINE_HTML, T_OPEN_TAG, T_OPEN_TAG_WITH_ECHO, T_PLAIN_NAME, T_CLOSE_TAG, T_IF, T_SWITCH, T_CASE, T_BREAK, T_CONTINUE, T_DEFAULT, T_GOTO, T_FOR, T_FOREACH, T_WHILE, T_DO, T_WHITESPACE, T_INCLUDE, T_INCLUDE_ONCE, T_REQUIRE, T_REQUIRE_ONCE, T_COMMENT, T_CLASS, T_INTERFACE, T_TRAIT, T_FINAL, T_FUNCTION, T_VAR, T_PUBLIC, T_PRIVATE, T_STATIC, T_CONST, T_RETURN, T_GLOBAL, T_NEW, T_THROW, T_TRY, T_PRINT, T_ECHO, T_CLONE, T_USE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!', ';'] 6 | . plain_comment_or_whitespace 149 elseif_branch: t_comment_or_whitespaces T_ELSEIF . t_comment_or_whitespaces statement T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 5 (t_comment_or_whitespaces)] T_COMMENT [reduce using rule 5 (t_comment_or_whitespaces)] $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 328 state 280 151 plain_elseif_seq: plain_elseif_seq elseif_branch . $default reduce using rule 151 (plain_elseif_seq) state 281 154 else_branch: t_comment_or_whitespaces . T_ELSE t_comment_or_whitespaces statement T_ELSE shift, and go to state 329 state 282 156 if_statement: if_branch elseif_seq else_branch . $default reduce using rule 156 (if_statement) state 283 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PAAMAYIM_NEKUDOTAYIM, T_EXTENDS, T_IMPLEMENTS] 6 | . plain_comment_or_whitespace 16 qualified_name_expr: qualified_name_expr . t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 185 base_classes_list: . [T_WHITESPACE, T_COMMENT, '{'] 186 | . t_comment_or_whitespaces base_class_decl_seq 187 class_declaration: class_key t_comment_or_whitespaces qualified_name_expr . base_classes_list t_comment_or_whitespaces block_statement T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 185 (base_classes_list)] T_COMMENT [reduce using rule 185 (base_classes_list)] '{' reduce using rule 185 (base_classes_list) $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 330 base_classes_list go to state 331 state 284 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: . logical_xor_expression 112 | . logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: . logical_or_expression 114 | . logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression 115 expr: . array_key_val_expression 148 if_branch: T_IF t_comment_or_whitespaces '(' t_comment_or_whitespaces . expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 92 logical_or_expression go to state 93 array_key_val_expression go to state 94 expr go to state 332 state 285 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: . logical_xor_expression 112 | . logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: . logical_or_expression 114 | . logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression 115 expr: . array_key_val_expression 161 switch_statement: T_SWITCH t_comment_or_whitespaces '(' t_comment_or_whitespaces . expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 92 logical_or_expression go to state 93 array_key_val_expression go to state 94 expr go to state 333 state 286 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 12 | '{' t_comment_or_whitespaces . expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 17 property_declaration: . qualified_name_expr t_comment_or_whitespaces ':' t_comment_or_whitespaces expr 18 property_declaration_seq: . property_declaration 19 | . property_declaration_seq t_comment_or_whitespaces ',' t_comment_or_whitespaces property_declaration 20 object_constructor: . '{' t_comment_or_whitespaces '}' 20 | '{' t_comment_or_whitespaces . '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 21 | '{' t_comment_or_whitespaces . property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: . logical_xor_expression 112 | . logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: . logical_or_expression 114 | . logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression 115 expr: . array_key_val_expression T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '}' shift, and go to state 334 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 208 property_declaration go to state 209 property_declaration_seq go to state 210 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 92 logical_or_expression go to state 93 array_key_val_expression go to state 94 expr go to state 335 state 287 157 case_statement: T_CASE t_comment_or_whitespaces expr t_comment_or_whitespaces . ':' ':' shift, and go to state 336 state 288 163 goto_statement: T_GOTO t_comment_or_whitespaces expr statement_delimiter . $default reduce using rule 163 (goto_statement) state 289 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: . logical_xor_expression 112 | . logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: . logical_or_expression 114 | . logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression 115 expr: . array_key_val_expression 136 expr_statement: . expr statement_delimiter 164 for_statement: T_FOR t_comment_or_whitespaces '(' t_comment_or_whitespaces . expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces ')' t_comment_or_whitespaces statement T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 92 logical_or_expression go to state 93 array_key_val_expression go to state 94 expr go to state 274 expr_statement go to state 337 state 290 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: . logical_xor_expression 112 | . logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: . logical_or_expression 114 | . logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression 115 expr: . array_key_val_expression 165 foreach_statement: T_FOREACH t_comment_or_whitespaces '(' t_comment_or_whitespaces . expr t_comment_or_whitespaces T_AS t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 92 logical_or_expression go to state 93 array_key_val_expression go to state 94 expr go to state 338 state 291 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: . logical_xor_expression 112 | . logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: . logical_or_expression 114 | . logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression 115 expr: . array_key_val_expression 166 while_statement: T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces . expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 92 logical_or_expression go to state 93 array_key_val_expression go to state 94 expr go to state 339 state 292 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . ['('] 6 | . plain_comment_or_whitespace 167 do_while_statement: T_DO t_comment_or_whitespaces statement T_WHILE . t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' statement_delimiter T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 340 state 293 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 12 | '{' t_comment_or_whitespaces . expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: . logical_xor_expression 112 | . logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: . logical_or_expression 114 | . logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression 115 expr: . array_key_val_expression T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 92 logical_or_expression go to state 93 array_key_val_expression go to state 94 expr go to state 335 state 294 43 unary_expr: T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces . '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' '(' shift, and go to state 341 state 295 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_CLOSE_TAG, ';'] 6 | . plain_comment_or_whitespace 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: . logical_xor_expression 112 | . logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: . logical_or_expression 114 | . logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression 115 expr: . array_key_val_expression 120 decl_spec: . T_GLOBAL 121 | . T_VAR 122 | . T_PUBLIC 123 | . T_PRIVATE 124 | . T_STATIC 125 | . T_CONST 126 plain_decl_spec_seq: . decl_spec 127 | . decl_spec_seq t_comment_or_whitespaces decl_spec 128 decl_spec_seq: . [T_WHITESPACE, T_COMMENT, T_FUNCTION, T_VAR, T_PUBLIC, T_PRIVATE, T_STATIC, T_CONST, T_GLOBAL] 129 | . plain_decl_spec_seq 132 statement_delimiter: . t_comment_or_whitespaces plain_statement_delimiter 133 empty_statement: . statement_delimiter 134 block_statement: . '{' statement_seq t_comment_or_whitespaces '}' 135 | . '{' t_comment_or_whitespaces '}' 135 | '{' t_comment_or_whitespaces . '}' 136 expr_statement: . expr statement_delimiter 137 decl_statement: . plain_decl_spec_seq t_comment_or_whitespaces expr_statement 138 command_statement_name: . T_RETURN 139 | . T_PRINT 140 | . T_ECHO 141 | . T_INCLUDE 142 | . T_INCLUDE_ONCE 143 | . T_REQUIRE 144 | . T_REQUIRE_ONCE 145 | . T_THROW 146 | . T_USE 147 command_statement: . command_statement_name t_comment_or_whitespaces expr statement_delimiter 148 if_branch: . T_IF t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 155 if_statement: . if_branch elseif_seq 156 | . if_branch elseif_seq else_branch 157 case_statement: . T_CASE t_comment_or_whitespaces expr t_comment_or_whitespaces ':' 158 default_statetement: . T_DEFAULT t_comment_or_whitespaces ':' 159 break_statement: . T_BREAK statement_delimiter 160 continue_statement: . T_CONTINUE statement_delimiter 161 switch_statement: . T_SWITCH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 162 label_statement: . expr t_comment_or_whitespaces ':' 163 goto_statement: . T_GOTO t_comment_or_whitespaces expr statement_delimiter 164 for_statement: . T_FOR t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 165 foreach_statement: . T_FOREACH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces T_AS t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 166 while_statement: . T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 167 do_while_statement: . T_DO t_comment_or_whitespaces statement T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' statement_delimiter 171 try_statement: . T_TRY t_comment_or_whitespaces block_statement t_comment_or_whitespaces catch_clause_seq 174 function_decl_statement: . decl_spec_seq t_comment_or_whitespaces T_FUNCTION t_comment_or_whitespaces qualified_name_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces t_comment_or_whitespaces ')' function_body_or_semicolon 175 class_key: . T_INTERFACE 176 | . T_TRAIT 177 | . T_CLASS 178 | . T_FINAL t_comment_or_whitespaces T_CLASS 179 | . T_FINAL t_comment_or_whitespaces T_INTERFACE 187 class_declaration: . class_key t_comment_or_whitespaces qualified_name_expr base_classes_list t_comment_or_whitespaces block_statement 188 statement: . T_INLINE_HTML 189 | . T_OPEN_TAG 190 | . T_OPEN_TAG_WITH_ECHO 191 | . empty_statement 192 | . block_statement 193 | . decl_statement 194 | . expr_statement 195 | . command_statement 196 | . if_statement 197 | . case_statement 198 | . default_statetement 199 | . break_statement 200 | . continue_statement 201 | . label_statement 202 | . goto_statement 203 | . switch_statement 204 | . for_statement 205 | . foreach_statement 206 | . while_statement 207 | . do_while_statement 208 | . try_statement 209 | . function_decl_statement 210 | . class_declaration 211 statement_seq: t_comment_or_whitespaces . statement T_INLINE_HTML shift, and go to state 9 T_OPEN_TAG shift, and go to state 10 T_OPEN_TAG_WITH_ECHO shift, and go to state 11 T_PLAIN_NAME shift, and go to state 12 T_IF shift, and go to state 13 T_SWITCH shift, and go to state 14 T_CASE shift, and go to state 15 T_BREAK shift, and go to state 16 T_CONTINUE shift, and go to state 17 T_DEFAULT shift, and go to state 18 T_GOTO shift, and go to state 19 T_FOR shift, and go to state 20 T_FOREACH shift, and go to state 21 T_WHILE shift, and go to state 22 T_DO shift, and go to state 23 T_WHITESPACE shift, and go to state 1 T_INCLUDE shift, and go to state 24 T_INCLUDE_ONCE shift, and go to state 25 T_REQUIRE shift, and go to state 26 T_REQUIRE_ONCE shift, and go to state 27 T_COMMENT shift, and go to state 2 T_CLASS shift, and go to state 28 T_INTERFACE shift, and go to state 29 T_TRAIT shift, and go to state 30 T_FINAL shift, and go to state 31 T_VAR shift, and go to state 32 T_PUBLIC shift, and go to state 33 T_PRIVATE shift, and go to state 34 T_STATIC shift, and go to state 35 T_CONST shift, and go to state 36 T_RETURN shift, and go to state 37 T_GLOBAL shift, and go to state 38 T_NEW shift, and go to state 39 T_THROW shift, and go to state 40 T_TRY shift, and go to state 41 T_PRINT shift, and go to state 42 T_ECHO shift, and go to state 43 T_CLONE shift, and go to state 44 T_USE shift, and go to state 45 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 60 '}' shift, and go to state 342 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 T_WHITESPACE [reduce using rule 128 (decl_spec_seq)] T_COMMENT [reduce using rule 128 (decl_spec_seq)] T_FUNCTION reduce using rule 128 (decl_spec_seq) T_VAR [reduce using rule 128 (decl_spec_seq)] T_PUBLIC [reduce using rule 128 (decl_spec_seq)] T_PRIVATE [reduce using rule 128 (decl_spec_seq)] T_STATIC [reduce using rule 128 (decl_spec_seq)] T_CONST [reduce using rule 128 (decl_spec_seq)] T_GLOBAL [reduce using rule 128 (decl_spec_seq)] $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 68 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 92 logical_or_expression go to state 93 array_key_val_expression go to state 94 expr go to state 95 decl_spec go to state 96 plain_decl_spec_seq go to state 97 decl_spec_seq go to state 98 statement_delimiter go to state 99 empty_statement go to state 100 block_statement go to state 101 expr_statement go to state 102 decl_statement go to state 103 command_statement_name go to state 104 command_statement go to state 105 if_branch go to state 106 if_statement go to state 107 case_statement go to state 108 default_statetement go to state 109 break_statement go to state 110 continue_statement go to state 111 switch_statement go to state 112 label_statement go to state 113 goto_statement go to state 114 for_statement go to state 115 foreach_statement go to state 116 while_statement go to state 117 do_while_statement go to state 118 try_statement go to state 119 function_decl_statement go to state 120 class_key go to state 121 class_declaration go to state 122 statement go to state 212 state 296 168 catch_clause: . T_CATCH t_comment_or_whitespaces '(' t_comment_or_whitespaces qualified_name_expr t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces ')' t_comment_or_whitespaces block_statement 169 catch_clause_seq: . catch_clause 170 | . catch_clause_seq t_comment_or_whitespaces catch_clause 171 try_statement: T_TRY t_comment_or_whitespaces block_statement t_comment_or_whitespaces . catch_clause_seq T_CATCH shift, and go to state 343 catch_clause go to state 344 catch_clause_seq go to state 345 state 297 41 chain_expr: chain_expr t_comment_or_whitespaces . T_OBJECT_OPERATOR t_comment_or_whitespaces primary_expr T_OBJECT_OPERATOR shift, and go to state 346 state 298 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . ['}'] 6 | . plain_comment_or_whitespace 10 variable_variable: '$' '{' t_comment_or_whitespaces expr . t_comment_or_whitespaces '}' T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 347 state 299 16 qualified_name_expr: qualified_name_expr t_comment_or_whitespaces . T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 17 property_declaration: qualified_name_expr t_comment_or_whitespaces . ':' t_comment_or_whitespaces expr T_PAAMAYIM_NEKUDOTAYIM shift, and go to state 221 ':' shift, and go to state 348 state 300 19 property_declaration_seq: property_declaration_seq t_comment_or_whitespaces . ',' t_comment_or_whitespaces property_declaration 21 object_constructor: '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces . '}' '}' shift, and go to state 349 ',' shift, and go to state 350 state 301 12 name_or_variable: '{' t_comment_or_whitespaces expr t_comment_or_whitespaces . '}' 130 plain_statement_delimiter: . ';' 131 | . T_CLOSE_TAG 132 statement_delimiter: t_comment_or_whitespaces . plain_statement_delimiter 162 label_statement: expr t_comment_or_whitespaces . ':' T_CLOSE_TAG shift, and go to state 154 '}' shift, and go to state 351 ':' shift, and go to state 273 ';' shift, and go to state 155 plain_statement_delimiter go to state 156 state 302 134 block_statement: '{' statement_seq t_comment_or_whitespaces '}' . $default reduce using rule 134 (block_statement) state 303 212 statement_seq: statement_seq t_comment_or_whitespaces statement . $default reduce using rule 212 (statement_seq) state 304 25 primary_expr: '(' t_comment_or_whitespaces expr t_comment_or_whitespaces . ')' ')' shift, and go to state 352 state 305 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 16 qualified_name_expr: qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces . name_or_variable T_PLAIN_NAME shift, and go to state 12 T_VARIABLE shift, and go to state 49 '$' shift, and go to state 59 '{' shift, and go to state 198 variable_variable go to state 70 name_or_variable go to state 353 state 306 27 postfix_expr: postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr . $default reduce using rule 27 (postfix_expr) state 307 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 32 | postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces . expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: . logical_xor_expression 112 | . logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: . logical_or_expression 114 | . logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression 115 expr: . array_key_val_expression T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 92 logical_or_expression go to state 93 array_key_val_expression go to state 94 expr go to state 354 state 308 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 30 | postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces . expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: . logical_xor_expression 112 | . logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: . logical_or_expression 114 | . logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression 115 expr: . array_key_val_expression 116 plain_expr_list: . expr 117 | . plain_expr_list t_comment_or_whitespaces ',' t_comment_or_whitespaces expr 118 expr_list: . [T_WHITESPACE, T_COMMENT, ')'] 119 | . plain_expr_list T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 $default reduce using rule 118 (expr_list) literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 92 logical_or_expression go to state 93 array_key_val_expression go to state 94 expr go to state 355 plain_expr_list go to state 356 expr_list go to state 357 state 309 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 31 | postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces . expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: . logical_xor_expression 112 | . logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: . logical_or_expression 114 | . logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression 115 expr: . array_key_val_expression T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 92 logical_or_expression go to state 93 array_key_val_expression go to state 94 expr go to state 358 state 310 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 54 instanceof_expr: unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces . qualified_name_expr T_PLAIN_NAME shift, and go to state 12 T_VARIABLE shift, and go to state 49 '$' shift, and go to state 59 '{' shift, and go to state 198 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 359 state 311 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 61 multiplicative_expr: multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces . logical_not_expr T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 360 state 312 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 66 additive_expr: additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces . multiplicative_expr T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 361 state 313 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 70 bitwise_shift_expr: bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces . additive_expr T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 362 state 314 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 80 relational_expr: relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces . bitwise_shift_expr T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 363 state 315 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 82 bitwise_and_expr: bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces . relational_expr T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 364 state 316 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 84 bitwise_xor_expr: bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces . bitwise_and_expr T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 365 state 317 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 86 bitwise_or_expr: bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces . bitwise_xor_expr T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 366 state 318 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 88 boolean_and_expr: boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces . bitwise_or_expr T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 367 state 319 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 90 boolean_or_expr: boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces . boolean_and_expr T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 368 state 320 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 92 | conditional_expression '?' conditional_expression ':' . conditional_expression T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 369 state 321 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 106 | conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces . assignament_expression T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 370 state 322 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 108 logical_and_expression: logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces . assignament_expression T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 371 state 323 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 110 logical_xor_expression: logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces . logical_and_expression T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 372 state 324 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 112 logical_or_expression: logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces . logical_xor_expression T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 373 state 325 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: . logical_xor_expression 112 | . logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 114 array_key_val_expression: logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces . logical_or_expression T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 92 logical_or_expression go to state 374 state 326 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 174 function_decl_statement: decl_spec_seq t_comment_or_whitespaces T_FUNCTION t_comment_or_whitespaces . qualified_name_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces t_comment_or_whitespaces ')' function_body_or_semicolon T_PLAIN_NAME shift, and go to state 12 T_VARIABLE shift, and go to state 49 '$' shift, and go to state 59 '{' shift, and go to state 198 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 375 state 327 147 command_statement: command_statement_name t_comment_or_whitespaces expr statement_delimiter . $default reduce using rule 147 (command_statement) state 328 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_CLOSE_TAG, ';'] 6 | . plain_comment_or_whitespace 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: . logical_xor_expression 112 | . logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: . logical_or_expression 114 | . logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression 115 expr: . array_key_val_expression 120 decl_spec: . T_GLOBAL 121 | . T_VAR 122 | . T_PUBLIC 123 | . T_PRIVATE 124 | . T_STATIC 125 | . T_CONST 126 plain_decl_spec_seq: . decl_spec 127 | . decl_spec_seq t_comment_or_whitespaces decl_spec 128 decl_spec_seq: . [T_WHITESPACE, T_COMMENT, T_FUNCTION, T_VAR, T_PUBLIC, T_PRIVATE, T_STATIC, T_CONST, T_GLOBAL] 129 | . plain_decl_spec_seq 132 statement_delimiter: . t_comment_or_whitespaces plain_statement_delimiter 133 empty_statement: . statement_delimiter 134 block_statement: . '{' statement_seq t_comment_or_whitespaces '}' 135 | . '{' t_comment_or_whitespaces '}' 136 expr_statement: . expr statement_delimiter 137 decl_statement: . plain_decl_spec_seq t_comment_or_whitespaces expr_statement 138 command_statement_name: . T_RETURN 139 | . T_PRINT 140 | . T_ECHO 141 | . T_INCLUDE 142 | . T_INCLUDE_ONCE 143 | . T_REQUIRE 144 | . T_REQUIRE_ONCE 145 | . T_THROW 146 | . T_USE 147 command_statement: . command_statement_name t_comment_or_whitespaces expr statement_delimiter 148 if_branch: . T_IF t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 149 elseif_branch: t_comment_or_whitespaces T_ELSEIF t_comment_or_whitespaces . statement 155 if_statement: . if_branch elseif_seq 156 | . if_branch elseif_seq else_branch 157 case_statement: . T_CASE t_comment_or_whitespaces expr t_comment_or_whitespaces ':' 158 default_statetement: . T_DEFAULT t_comment_or_whitespaces ':' 159 break_statement: . T_BREAK statement_delimiter 160 continue_statement: . T_CONTINUE statement_delimiter 161 switch_statement: . T_SWITCH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 162 label_statement: . expr t_comment_or_whitespaces ':' 163 goto_statement: . T_GOTO t_comment_or_whitespaces expr statement_delimiter 164 for_statement: . T_FOR t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 165 foreach_statement: . T_FOREACH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces T_AS t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 166 while_statement: . T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 167 do_while_statement: . T_DO t_comment_or_whitespaces statement T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' statement_delimiter 171 try_statement: . T_TRY t_comment_or_whitespaces block_statement t_comment_or_whitespaces catch_clause_seq 174 function_decl_statement: . decl_spec_seq t_comment_or_whitespaces T_FUNCTION t_comment_or_whitespaces qualified_name_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces t_comment_or_whitespaces ')' function_body_or_semicolon 175 class_key: . T_INTERFACE 176 | . T_TRAIT 177 | . T_CLASS 178 | . T_FINAL t_comment_or_whitespaces T_CLASS 179 | . T_FINAL t_comment_or_whitespaces T_INTERFACE 187 class_declaration: . class_key t_comment_or_whitespaces qualified_name_expr base_classes_list t_comment_or_whitespaces block_statement 188 statement: . T_INLINE_HTML 189 | . T_OPEN_TAG 190 | . T_OPEN_TAG_WITH_ECHO 191 | . empty_statement 192 | . block_statement 193 | . decl_statement 194 | . expr_statement 195 | . command_statement 196 | . if_statement 197 | . case_statement 198 | . default_statetement 199 | . break_statement 200 | . continue_statement 201 | . label_statement 202 | . goto_statement 203 | . switch_statement 204 | . for_statement 205 | . foreach_statement 206 | . while_statement 207 | . do_while_statement 208 | . try_statement 209 | . function_decl_statement 210 | . class_declaration T_INLINE_HTML shift, and go to state 9 T_OPEN_TAG shift, and go to state 10 T_OPEN_TAG_WITH_ECHO shift, and go to state 11 T_PLAIN_NAME shift, and go to state 12 T_IF shift, and go to state 13 T_SWITCH shift, and go to state 14 T_CASE shift, and go to state 15 T_BREAK shift, and go to state 16 T_CONTINUE shift, and go to state 17 T_DEFAULT shift, and go to state 18 T_GOTO shift, and go to state 19 T_FOR shift, and go to state 20 T_FOREACH shift, and go to state 21 T_WHILE shift, and go to state 22 T_DO shift, and go to state 23 T_WHITESPACE shift, and go to state 1 T_INCLUDE shift, and go to state 24 T_INCLUDE_ONCE shift, and go to state 25 T_REQUIRE shift, and go to state 26 T_REQUIRE_ONCE shift, and go to state 27 T_COMMENT shift, and go to state 2 T_CLASS shift, and go to state 28 T_INTERFACE shift, and go to state 29 T_TRAIT shift, and go to state 30 T_FINAL shift, and go to state 31 T_VAR shift, and go to state 32 T_PUBLIC shift, and go to state 33 T_PRIVATE shift, and go to state 34 T_STATIC shift, and go to state 35 T_CONST shift, and go to state 36 T_RETURN shift, and go to state 37 T_GLOBAL shift, and go to state 38 T_NEW shift, and go to state 39 T_THROW shift, and go to state 40 T_TRY shift, and go to state 41 T_PRINT shift, and go to state 42 T_ECHO shift, and go to state 43 T_CLONE shift, and go to state 44 T_USE shift, and go to state 45 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 60 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 T_WHITESPACE [reduce using rule 128 (decl_spec_seq)] T_COMMENT [reduce using rule 128 (decl_spec_seq)] T_FUNCTION reduce using rule 128 (decl_spec_seq) T_VAR [reduce using rule 128 (decl_spec_seq)] T_PUBLIC [reduce using rule 128 (decl_spec_seq)] T_PRIVATE [reduce using rule 128 (decl_spec_seq)] T_STATIC [reduce using rule 128 (decl_spec_seq)] T_CONST [reduce using rule 128 (decl_spec_seq)] T_GLOBAL [reduce using rule 128 (decl_spec_seq)] $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 68 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 92 logical_or_expression go to state 93 array_key_val_expression go to state 94 expr go to state 95 decl_spec go to state 96 plain_decl_spec_seq go to state 97 decl_spec_seq go to state 98 statement_delimiter go to state 99 empty_statement go to state 100 block_statement go to state 101 expr_statement go to state 102 decl_statement go to state 103 command_statement_name go to state 104 command_statement go to state 105 if_branch go to state 106 if_statement go to state 107 case_statement go to state 108 default_statetement go to state 109 break_statement go to state 110 continue_statement go to state 111 switch_statement go to state 112 label_statement go to state 113 goto_statement go to state 114 for_statement go to state 115 foreach_statement go to state 116 while_statement go to state 117 do_while_statement go to state 118 try_statement go to state 119 function_decl_statement go to state 120 class_key go to state 121 class_declaration go to state 122 statement go to state 376 state 329 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_INLINE_HTML, T_OPEN_TAG, T_OPEN_TAG_WITH_ECHO, T_PLAIN_NAME, T_CLOSE_TAG, T_IF, T_SWITCH, T_CASE, T_BREAK, T_CONTINUE, T_DEFAULT, T_GOTO, T_FOR, T_FOREACH, T_WHILE, T_DO, T_WHITESPACE, T_INCLUDE, T_INCLUDE_ONCE, T_REQUIRE, T_REQUIRE_ONCE, T_COMMENT, T_CLASS, T_INTERFACE, T_TRAIT, T_FINAL, T_FUNCTION, T_VAR, T_PUBLIC, T_PRIVATE, T_STATIC, T_CONST, T_RETURN, T_GLOBAL, T_NEW, T_THROW, T_TRY, T_PRINT, T_ECHO, T_CLONE, T_USE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!', ';'] 6 | . plain_comment_or_whitespace 154 else_branch: t_comment_or_whitespaces T_ELSE . t_comment_or_whitespaces statement T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 5 (t_comment_or_whitespaces)] T_COMMENT [reduce using rule 5 (t_comment_or_whitespaces)] $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 377 state 330 16 qualified_name_expr: qualified_name_expr t_comment_or_whitespaces . T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 180 class_inheritance_key: . T_EXTENDS 181 | . T_IMPLEMENTS 182 base_class_decl: . class_inheritance_key t_comment_or_whitespaces qualified_name_expr 183 base_class_decl_seq: . base_class_decl 184 | . base_class_decl_seq t_comment_or_whitespaces base_class_decl 186 base_classes_list: t_comment_or_whitespaces . base_class_decl_seq T_PAAMAYIM_NEKUDOTAYIM shift, and go to state 221 T_EXTENDS shift, and go to state 378 T_IMPLEMENTS shift, and go to state 379 class_inheritance_key go to state 380 base_class_decl go to state 381 base_class_decl_seq go to state 382 state 331 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . ['{'] 6 | . plain_comment_or_whitespace 187 class_declaration: class_key t_comment_or_whitespaces qualified_name_expr base_classes_list . t_comment_or_whitespaces block_statement T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 383 state 332 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [')'] 6 | . plain_comment_or_whitespace 148 if_branch: T_IF t_comment_or_whitespaces '(' t_comment_or_whitespaces expr . t_comment_or_whitespaces ')' t_comment_or_whitespaces statement T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 384 state 333 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [')'] 6 | . plain_comment_or_whitespace 161 switch_statement: T_SWITCH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr . t_comment_or_whitespaces ')' t_comment_or_whitespaces statement T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 385 state 334 20 object_constructor: '{' t_comment_or_whitespaces '}' . $default reduce using rule 20 (object_constructor) state 335 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . ['}'] 6 | . plain_comment_or_whitespace 12 name_or_variable: '{' t_comment_or_whitespaces expr . t_comment_or_whitespaces '}' T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 386 state 336 157 case_statement: T_CASE t_comment_or_whitespaces expr t_comment_or_whitespaces ':' . $default reduce using rule 157 (case_statement) state 337 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 164 for_statement: T_FOR t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_statement . t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces ')' t_comment_or_whitespaces statement T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 387 state 338 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_AS] 6 | . plain_comment_or_whitespace 165 foreach_statement: T_FOREACH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr . t_comment_or_whitespaces T_AS t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 388 state 339 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [')'] 6 | . plain_comment_or_whitespace 166 while_statement: T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr . t_comment_or_whitespaces ')' t_comment_or_whitespaces statement T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 389 state 340 167 do_while_statement: T_DO t_comment_or_whitespaces statement T_WHILE t_comment_or_whitespaces . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' statement_delimiter '(' shift, and go to state 390 state 341 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_WHITESPACE, T_COMMENT, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', ')', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 43 unary_expr: T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' . t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 5 (t_comment_or_whitespaces)] T_COMMENT [reduce using rule 5 (t_comment_or_whitespaces)] $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 391 state 342 135 block_statement: '{' t_comment_or_whitespaces '}' . $default reduce using rule 135 (block_statement) state 343 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . ['('] 6 | . plain_comment_or_whitespace 168 catch_clause: T_CATCH . t_comment_or_whitespaces '(' t_comment_or_whitespaces qualified_name_expr t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces ')' t_comment_or_whitespaces block_statement T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 392 state 344 169 catch_clause_seq: catch_clause . $default reduce using rule 169 (catch_clause_seq) state 345 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_CATCH] 6 | . plain_comment_or_whitespace 170 catch_clause_seq: catch_clause_seq . t_comment_or_whitespaces catch_clause 171 try_statement: T_TRY t_comment_or_whitespaces block_statement t_comment_or_whitespaces catch_clause_seq . ["end of file", T_INLINE_HTML, T_OPEN_TAG, T_OPEN_TAG_WITH_ECHO, T_PLAIN_NAME, T_CLOSE_TAG, T_IF, T_ELSEIF, T_ELSE, T_SWITCH, T_CASE, T_BREAK, T_CONTINUE, T_DEFAULT, T_GOTO, T_FOR, T_FOREACH, T_WHILE, T_DO, T_WHITESPACE, T_INCLUDE, T_INCLUDE_ONCE, T_REQUIRE, T_REQUIRE_ONCE, T_COMMENT, T_CLASS, T_INTERFACE, T_TRAIT, T_FINAL, T_FUNCTION, T_VAR, T_PUBLIC, T_PRIVATE, T_STATIC, T_CONST, T_RETURN, T_GLOBAL, T_NEW, T_THROW, T_TRY, T_PRINT, T_ECHO, T_CLONE, T_USE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '}', '(', '-', '+', '~', '@', '&', '!', ';'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 171 (try_statement)] T_COMMENT [reduce using rule 171 (try_statement)] T_CATCH reduce using rule 5 (t_comment_or_whitespaces) $default reduce using rule 171 (try_statement) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 393 state 346 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, "integral number", "real number", T_STRING, T_VARIABLE, '$', '{', '('] 6 | . plain_comment_or_whitespace 41 chain_expr: chain_expr t_comment_or_whitespaces T_OBJECT_OPERATOR . t_comment_or_whitespaces primary_expr T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 394 state 347 10 variable_variable: '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces . '}' '}' shift, and go to state 395 state 348 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 17 property_declaration: qualified_name_expr t_comment_or_whitespaces ':' . t_comment_or_whitespaces expr T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 396 state 349 21 object_constructor: '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' . $default reduce using rule 21 (object_constructor) state 350 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_VARIABLE, '$', '{'] 6 | . plain_comment_or_whitespace 19 property_declaration_seq: property_declaration_seq t_comment_or_whitespaces ',' . t_comment_or_whitespaces property_declaration T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 397 state 351 12 name_or_variable: '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' . $default reduce using rule 12 (name_or_variable) state 352 25 primary_expr: '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' . $default reduce using rule 25 (primary_expr) state 353 16 qualified_name_expr: qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable . $default reduce using rule 16 (qualified_name_expr) state 354 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . ['}'] 6 | . plain_comment_or_whitespace 32 postfix_expr: postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr . t_comment_or_whitespaces '}' T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 398 state 355 116 plain_expr_list: expr . $default reduce using rule 116 (plain_expr_list) state 356 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [','] 6 | . plain_comment_or_whitespace 117 plain_expr_list: plain_expr_list . t_comment_or_whitespaces ',' t_comment_or_whitespaces expr 119 expr_list: plain_expr_list . [T_WHITESPACE, T_COMMENT, ')'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 119 (expr_list)] T_COMMENT [reduce using rule 119 (expr_list)] ')' reduce using rule 119 (expr_list) $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 399 state 357 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [')'] 6 | . plain_comment_or_whitespace 30 postfix_expr: postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list . t_comment_or_whitespaces ')' T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 400 state 358 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [']'] 6 | . plain_comment_or_whitespace 31 postfix_expr: postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr . t_comment_or_whitespaces ']' T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 401 state 359 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PAAMAYIM_NEKUDOTAYIM] 6 | . plain_comment_or_whitespace 16 qualified_name_expr: qualified_name_expr . t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 54 instanceof_expr: unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr . [T_CLOSE_TAG, T_AS, T_WHITESPACE, T_COMMENT, T_LOGICAL_AND, T_LOGICAL_OR, T_LOGICAL_XOR, T_DOUBLE_ARROW, "+= (T_PLUS_EQUAL)", "-= (T_MINUS_EQUAL)", "*= (T_MUL_EQUAL)", "/= (T_DIV_EQUAL)", ".= (T_CONCAT_EQUAL)", "%= (T_MOD_EQUAL)", "&= (T_AND_EQUAL)", "|= (T_OR_EQUAL)", "^= (T_XOR_EQUAL)", "<<= (T_SL_EQUAL)", ">>= (T_SR_EQUAL)", T_BOOLEAN_OR, T_BOOLEAN_AND, "== (T_IS_EQUAL)", "!= (T_IS_NOT_EQUAL)", "=== (T_IS_IDENTICAL)", "!== (T_IS_NOT_IDENTICAL)", "<= (T_IS_SMALLER_OR_EQUAL)", ">= (T_IS_GREATER_OR_EQUAL)", ">> (T_SR)", "<< (T_SL)", '}', ':', ',', ')', ']', '-', '+', '&', '*', '/', '%', '.', '<', '>', '^', '|', '?', '=', ';'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_PAAMAYIM_NEKUDOTAYIM reduce using rule 5 (t_comment_or_whitespaces) T_WHITESPACE [reduce using rule 54 (instanceof_expr)] T_COMMENT [reduce using rule 54 (instanceof_expr)] $default reduce using rule 54 (instanceof_expr) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 157 state 360 61 multiplicative_expr: multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr . $default reduce using rule 61 (multiplicative_expr) state 361 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . ['*', '/', '%'] 6 | . plain_comment_or_whitespace 61 multiplicative_expr: multiplicative_expr . t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 66 additive_expr: additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr . [T_CLOSE_TAG, T_AS, T_WHITESPACE, T_COMMENT, T_LOGICAL_AND, T_LOGICAL_OR, T_LOGICAL_XOR, T_DOUBLE_ARROW, "+= (T_PLUS_EQUAL)", "-= (T_MINUS_EQUAL)", "*= (T_MUL_EQUAL)", "/= (T_DIV_EQUAL)", ".= (T_CONCAT_EQUAL)", "%= (T_MOD_EQUAL)", "&= (T_AND_EQUAL)", "|= (T_OR_EQUAL)", "^= (T_XOR_EQUAL)", "<<= (T_SL_EQUAL)", ">>= (T_SR_EQUAL)", T_BOOLEAN_OR, T_BOOLEAN_AND, "== (T_IS_EQUAL)", "!= (T_IS_NOT_EQUAL)", "=== (T_IS_IDENTICAL)", "!== (T_IS_NOT_IDENTICAL)", "<= (T_IS_SMALLER_OR_EQUAL)", ">= (T_IS_GREATER_OR_EQUAL)", ">> (T_SR)", "<< (T_SL)", '}', ':', ',', ')', ']', '-', '+', '&', '.', '<', '>', '^', '|', '?', '=', ';'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 66 (additive_expr)] T_COMMENT [reduce using rule 66 (additive_expr)] '*' reduce using rule 5 (t_comment_or_whitespaces) '/' reduce using rule 5 (t_comment_or_whitespaces) '%' reduce using rule 5 (t_comment_or_whitespaces) $default reduce using rule 66 (additive_expr) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 161 state 362 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . ['-', '+', '.'] 6 | . plain_comment_or_whitespace 66 additive_expr: additive_expr . t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 70 bitwise_shift_expr: bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr . [T_CLOSE_TAG, T_AS, T_WHITESPACE, T_COMMENT, T_LOGICAL_AND, T_LOGICAL_OR, T_LOGICAL_XOR, T_DOUBLE_ARROW, "+= (T_PLUS_EQUAL)", "-= (T_MINUS_EQUAL)", "*= (T_MUL_EQUAL)", "/= (T_DIV_EQUAL)", ".= (T_CONCAT_EQUAL)", "%= (T_MOD_EQUAL)", "&= (T_AND_EQUAL)", "|= (T_OR_EQUAL)", "^= (T_XOR_EQUAL)", "<<= (T_SL_EQUAL)", ">>= (T_SR_EQUAL)", T_BOOLEAN_OR, T_BOOLEAN_AND, "== (T_IS_EQUAL)", "!= (T_IS_NOT_EQUAL)", "=== (T_IS_IDENTICAL)", "!== (T_IS_NOT_IDENTICAL)", "<= (T_IS_SMALLER_OR_EQUAL)", ">= (T_IS_GREATER_OR_EQUAL)", ">> (T_SR)", "<< (T_SL)", '}', ':', ',', ')', ']', '&', '<', '>', '^', '|', '?', '=', ';'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 70 (bitwise_shift_expr)] T_COMMENT [reduce using rule 70 (bitwise_shift_expr)] '-' reduce using rule 5 (t_comment_or_whitespaces) '+' reduce using rule 5 (t_comment_or_whitespaces) '.' reduce using rule 5 (t_comment_or_whitespaces) $default reduce using rule 70 (bitwise_shift_expr) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 162 state 363 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [">> (T_SR)", "<< (T_SL)"] 6 | . plain_comment_or_whitespace 70 bitwise_shift_expr: bitwise_shift_expr . t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 80 relational_expr: relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr . [T_CLOSE_TAG, T_AS, T_WHITESPACE, T_COMMENT, T_LOGICAL_AND, T_LOGICAL_OR, T_LOGICAL_XOR, T_DOUBLE_ARROW, "+= (T_PLUS_EQUAL)", "-= (T_MINUS_EQUAL)", "*= (T_MUL_EQUAL)", "/= (T_DIV_EQUAL)", ".= (T_CONCAT_EQUAL)", "%= (T_MOD_EQUAL)", "&= (T_AND_EQUAL)", "|= (T_OR_EQUAL)", "^= (T_XOR_EQUAL)", "<<= (T_SL_EQUAL)", ">>= (T_SR_EQUAL)", T_BOOLEAN_OR, T_BOOLEAN_AND, "== (T_IS_EQUAL)", "!= (T_IS_NOT_EQUAL)", "=== (T_IS_IDENTICAL)", "!== (T_IS_NOT_IDENTICAL)", "<= (T_IS_SMALLER_OR_EQUAL)", ">= (T_IS_GREATER_OR_EQUAL)", '}', ':', ',', ')', ']', '&', '<', '>', '^', '|', '?', '=', ';'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 80 (relational_expr)] T_COMMENT [reduce using rule 80 (relational_expr)] ">> (T_SR)" reduce using rule 5 (t_comment_or_whitespaces) "<< (T_SL)" reduce using rule 5 (t_comment_or_whitespaces) $default reduce using rule 80 (relational_expr) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 163 state 364 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . ["== (T_IS_EQUAL)", "!= (T_IS_NOT_EQUAL)", "=== (T_IS_IDENTICAL)", "!== (T_IS_NOT_IDENTICAL)", "<= (T_IS_SMALLER_OR_EQUAL)", ">= (T_IS_GREATER_OR_EQUAL)", '<', '>'] 6 | . plain_comment_or_whitespace 80 relational_expr: relational_expr . t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 82 bitwise_and_expr: bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr . [T_CLOSE_TAG, T_AS, T_WHITESPACE, T_COMMENT, T_LOGICAL_AND, T_LOGICAL_OR, T_LOGICAL_XOR, T_DOUBLE_ARROW, "+= (T_PLUS_EQUAL)", "-= (T_MINUS_EQUAL)", "*= (T_MUL_EQUAL)", "/= (T_DIV_EQUAL)", ".= (T_CONCAT_EQUAL)", "%= (T_MOD_EQUAL)", "&= (T_AND_EQUAL)", "|= (T_OR_EQUAL)", "^= (T_XOR_EQUAL)", "<<= (T_SL_EQUAL)", ">>= (T_SR_EQUAL)", T_BOOLEAN_OR, T_BOOLEAN_AND, '}', ':', ',', ')', ']', '&', '^', '|', '?', '=', ';'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 82 (bitwise_and_expr)] T_COMMENT [reduce using rule 82 (bitwise_and_expr)] "== (T_IS_EQUAL)" reduce using rule 5 (t_comment_or_whitespaces) "!= (T_IS_NOT_EQUAL)" reduce using rule 5 (t_comment_or_whitespaces) "=== (T_IS_IDENTICAL)" reduce using rule 5 (t_comment_or_whitespaces) "!== (T_IS_NOT_IDENTICAL)" reduce using rule 5 (t_comment_or_whitespaces) "<= (T_IS_SMALLER_OR_EQUAL)" reduce using rule 5 (t_comment_or_whitespaces) ">= (T_IS_GREATER_OR_EQUAL)" reduce using rule 5 (t_comment_or_whitespaces) '<' reduce using rule 5 (t_comment_or_whitespaces) '>' reduce using rule 5 (t_comment_or_whitespaces) $default reduce using rule 82 (bitwise_and_expr) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 164 state 365 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . ['&'] 6 | . plain_comment_or_whitespace 82 bitwise_and_expr: bitwise_and_expr . t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 84 bitwise_xor_expr: bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr . [T_CLOSE_TAG, T_AS, T_WHITESPACE, T_COMMENT, T_LOGICAL_AND, T_LOGICAL_OR, T_LOGICAL_XOR, T_DOUBLE_ARROW, "+= (T_PLUS_EQUAL)", "-= (T_MINUS_EQUAL)", "*= (T_MUL_EQUAL)", "/= (T_DIV_EQUAL)", ".= (T_CONCAT_EQUAL)", "%= (T_MOD_EQUAL)", "&= (T_AND_EQUAL)", "|= (T_OR_EQUAL)", "^= (T_XOR_EQUAL)", "<<= (T_SL_EQUAL)", ">>= (T_SR_EQUAL)", T_BOOLEAN_OR, T_BOOLEAN_AND, '}', ':', ',', ')', ']', '^', '|', '?', '=', ';'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 84 (bitwise_xor_expr)] T_COMMENT [reduce using rule 84 (bitwise_xor_expr)] '&' reduce using rule 5 (t_comment_or_whitespaces) $default reduce using rule 84 (bitwise_xor_expr) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 165 state 366 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . ['^'] 6 | . plain_comment_or_whitespace 84 bitwise_xor_expr: bitwise_xor_expr . t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 86 bitwise_or_expr: bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr . [T_CLOSE_TAG, T_AS, T_WHITESPACE, T_COMMENT, T_LOGICAL_AND, T_LOGICAL_OR, T_LOGICAL_XOR, T_DOUBLE_ARROW, "+= (T_PLUS_EQUAL)", "-= (T_MINUS_EQUAL)", "*= (T_MUL_EQUAL)", "/= (T_DIV_EQUAL)", ".= (T_CONCAT_EQUAL)", "%= (T_MOD_EQUAL)", "&= (T_AND_EQUAL)", "|= (T_OR_EQUAL)", "^= (T_XOR_EQUAL)", "<<= (T_SL_EQUAL)", ">>= (T_SR_EQUAL)", T_BOOLEAN_OR, T_BOOLEAN_AND, '}', ':', ',', ')', ']', '|', '?', '=', ';'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 86 (bitwise_or_expr)] T_COMMENT [reduce using rule 86 (bitwise_or_expr)] '^' reduce using rule 5 (t_comment_or_whitespaces) $default reduce using rule 86 (bitwise_or_expr) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 166 state 367 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . ['|'] 6 | . plain_comment_or_whitespace 86 bitwise_or_expr: bitwise_or_expr . t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 88 boolean_and_expr: boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr . [T_CLOSE_TAG, T_AS, T_WHITESPACE, T_COMMENT, T_LOGICAL_AND, T_LOGICAL_OR, T_LOGICAL_XOR, T_DOUBLE_ARROW, "+= (T_PLUS_EQUAL)", "-= (T_MINUS_EQUAL)", "*= (T_MUL_EQUAL)", "/= (T_DIV_EQUAL)", ".= (T_CONCAT_EQUAL)", "%= (T_MOD_EQUAL)", "&= (T_AND_EQUAL)", "|= (T_OR_EQUAL)", "^= (T_XOR_EQUAL)", "<<= (T_SL_EQUAL)", ">>= (T_SR_EQUAL)", T_BOOLEAN_OR, T_BOOLEAN_AND, '}', ':', ',', ')', ']', '?', '=', ';'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 88 (boolean_and_expr)] T_COMMENT [reduce using rule 88 (boolean_and_expr)] '|' reduce using rule 5 (t_comment_or_whitespaces) $default reduce using rule 88 (boolean_and_expr) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 167 state 368 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_BOOLEAN_AND] 6 | . plain_comment_or_whitespace 88 boolean_and_expr: boolean_and_expr . t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 90 boolean_or_expr: boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr . [T_CLOSE_TAG, T_AS, T_WHITESPACE, T_COMMENT, T_LOGICAL_AND, T_LOGICAL_OR, T_LOGICAL_XOR, T_DOUBLE_ARROW, "+= (T_PLUS_EQUAL)", "-= (T_MINUS_EQUAL)", "*= (T_MUL_EQUAL)", "/= (T_DIV_EQUAL)", ".= (T_CONCAT_EQUAL)", "%= (T_MOD_EQUAL)", "&= (T_AND_EQUAL)", "|= (T_OR_EQUAL)", "^= (T_XOR_EQUAL)", "<<= (T_SL_EQUAL)", ">>= (T_SR_EQUAL)", T_BOOLEAN_OR, '}', ':', ',', ')', ']', '?', '=', ';'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 90 (boolean_or_expr)] T_COMMENT [reduce using rule 90 (boolean_or_expr)] T_BOOLEAN_AND reduce using rule 5 (t_comment_or_whitespaces) $default reduce using rule 90 (boolean_or_expr) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 168 state 369 92 conditional_expression: conditional_expression . '?' conditional_expression ':' conditional_expression 92 | conditional_expression '?' conditional_expression ':' conditional_expression . [T_CLOSE_TAG, T_AS, T_WHITESPACE, T_COMMENT, T_LOGICAL_AND, T_LOGICAL_OR, T_LOGICAL_XOR, T_DOUBLE_ARROW, "+= (T_PLUS_EQUAL)", "-= (T_MINUS_EQUAL)", "*= (T_MUL_EQUAL)", "/= (T_DIV_EQUAL)", ".= (T_CONCAT_EQUAL)", "%= (T_MOD_EQUAL)", "&= (T_AND_EQUAL)", "|= (T_OR_EQUAL)", "^= (T_XOR_EQUAL)", "<<= (T_SL_EQUAL)", ">>= (T_SR_EQUAL)", '}', ':', ',', ')', ']', '?', '=', ';'] '?' shift, and go to state 170 '?' [reduce using rule 92 (conditional_expression)] $default reduce using rule 92 (conditional_expression) state 370 106 assignament_expression: conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression . $default reduce using rule 106 (assignament_expression) state 371 108 logical_and_expression: logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression . $default reduce using rule 108 (logical_and_expression) state 372 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_LOGICAL_AND] 6 | . plain_comment_or_whitespace 108 logical_and_expression: logical_and_expression . t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 110 logical_xor_expression: logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression . [T_CLOSE_TAG, T_AS, T_WHITESPACE, T_COMMENT, T_LOGICAL_OR, T_LOGICAL_XOR, T_DOUBLE_ARROW, '}', ':', ',', ')', ']', ';'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 110 (logical_xor_expression)] T_COMMENT [reduce using rule 110 (logical_xor_expression)] T_LOGICAL_AND reduce using rule 5 (t_comment_or_whitespaces) $default reduce using rule 110 (logical_xor_expression) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 172 state 373 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_LOGICAL_XOR] 6 | . plain_comment_or_whitespace 110 logical_xor_expression: logical_xor_expression . t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 112 logical_or_expression: logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression . [T_CLOSE_TAG, T_AS, T_WHITESPACE, T_COMMENT, T_LOGICAL_OR, T_DOUBLE_ARROW, '}', ':', ',', ')', ']', ';'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 112 (logical_or_expression)] T_COMMENT [reduce using rule 112 (logical_or_expression)] T_LOGICAL_XOR reduce using rule 5 (t_comment_or_whitespaces) $default reduce using rule 112 (logical_or_expression) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 173 state 374 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_LOGICAL_OR] 6 | . plain_comment_or_whitespace 112 logical_or_expression: logical_or_expression . t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 114 array_key_val_expression: logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression . [T_CLOSE_TAG, T_AS, T_WHITESPACE, T_COMMENT, '}', ':', ',', ')', ']', ';'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 114 (array_key_val_expression)] T_COMMENT [reduce using rule 114 (array_key_val_expression)] T_LOGICAL_OR reduce using rule 5 (t_comment_or_whitespaces) $default reduce using rule 114 (array_key_val_expression) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 402 state 375 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PAAMAYIM_NEKUDOTAYIM, '('] 6 | . plain_comment_or_whitespace 16 qualified_name_expr: qualified_name_expr . t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 174 function_decl_statement: decl_spec_seq t_comment_or_whitespaces T_FUNCTION t_comment_or_whitespaces qualified_name_expr . t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces t_comment_or_whitespaces ')' function_body_or_semicolon T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 403 state 376 149 elseif_branch: t_comment_or_whitespaces T_ELSEIF t_comment_or_whitespaces statement . $default reduce using rule 149 (elseif_branch) state 377 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_CLOSE_TAG, ';'] 6 | . plain_comment_or_whitespace 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: . logical_xor_expression 112 | . logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: . logical_or_expression 114 | . logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression 115 expr: . array_key_val_expression 120 decl_spec: . T_GLOBAL 121 | . T_VAR 122 | . T_PUBLIC 123 | . T_PRIVATE 124 | . T_STATIC 125 | . T_CONST 126 plain_decl_spec_seq: . decl_spec 127 | . decl_spec_seq t_comment_or_whitespaces decl_spec 128 decl_spec_seq: . [T_WHITESPACE, T_COMMENT, T_FUNCTION, T_VAR, T_PUBLIC, T_PRIVATE, T_STATIC, T_CONST, T_GLOBAL] 129 | . plain_decl_spec_seq 132 statement_delimiter: . t_comment_or_whitespaces plain_statement_delimiter 133 empty_statement: . statement_delimiter 134 block_statement: . '{' statement_seq t_comment_or_whitespaces '}' 135 | . '{' t_comment_or_whitespaces '}' 136 expr_statement: . expr statement_delimiter 137 decl_statement: . plain_decl_spec_seq t_comment_or_whitespaces expr_statement 138 command_statement_name: . T_RETURN 139 | . T_PRINT 140 | . T_ECHO 141 | . T_INCLUDE 142 | . T_INCLUDE_ONCE 143 | . T_REQUIRE 144 | . T_REQUIRE_ONCE 145 | . T_THROW 146 | . T_USE 147 command_statement: . command_statement_name t_comment_or_whitespaces expr statement_delimiter 148 if_branch: . T_IF t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 154 else_branch: t_comment_or_whitespaces T_ELSE t_comment_or_whitespaces . statement 155 if_statement: . if_branch elseif_seq 156 | . if_branch elseif_seq else_branch 157 case_statement: . T_CASE t_comment_or_whitespaces expr t_comment_or_whitespaces ':' 158 default_statetement: . T_DEFAULT t_comment_or_whitespaces ':' 159 break_statement: . T_BREAK statement_delimiter 160 continue_statement: . T_CONTINUE statement_delimiter 161 switch_statement: . T_SWITCH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 162 label_statement: . expr t_comment_or_whitespaces ':' 163 goto_statement: . T_GOTO t_comment_or_whitespaces expr statement_delimiter 164 for_statement: . T_FOR t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 165 foreach_statement: . T_FOREACH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces T_AS t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 166 while_statement: . T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 167 do_while_statement: . T_DO t_comment_or_whitespaces statement T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' statement_delimiter 171 try_statement: . T_TRY t_comment_or_whitespaces block_statement t_comment_or_whitespaces catch_clause_seq 174 function_decl_statement: . decl_spec_seq t_comment_or_whitespaces T_FUNCTION t_comment_or_whitespaces qualified_name_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces t_comment_or_whitespaces ')' function_body_or_semicolon 175 class_key: . T_INTERFACE 176 | . T_TRAIT 177 | . T_CLASS 178 | . T_FINAL t_comment_or_whitespaces T_CLASS 179 | . T_FINAL t_comment_or_whitespaces T_INTERFACE 187 class_declaration: . class_key t_comment_or_whitespaces qualified_name_expr base_classes_list t_comment_or_whitespaces block_statement 188 statement: . T_INLINE_HTML 189 | . T_OPEN_TAG 190 | . T_OPEN_TAG_WITH_ECHO 191 | . empty_statement 192 | . block_statement 193 | . decl_statement 194 | . expr_statement 195 | . command_statement 196 | . if_statement 197 | . case_statement 198 | . default_statetement 199 | . break_statement 200 | . continue_statement 201 | . label_statement 202 | . goto_statement 203 | . switch_statement 204 | . for_statement 205 | . foreach_statement 206 | . while_statement 207 | . do_while_statement 208 | . try_statement 209 | . function_decl_statement 210 | . class_declaration T_INLINE_HTML shift, and go to state 9 T_OPEN_TAG shift, and go to state 10 T_OPEN_TAG_WITH_ECHO shift, and go to state 11 T_PLAIN_NAME shift, and go to state 12 T_IF shift, and go to state 13 T_SWITCH shift, and go to state 14 T_CASE shift, and go to state 15 T_BREAK shift, and go to state 16 T_CONTINUE shift, and go to state 17 T_DEFAULT shift, and go to state 18 T_GOTO shift, and go to state 19 T_FOR shift, and go to state 20 T_FOREACH shift, and go to state 21 T_WHILE shift, and go to state 22 T_DO shift, and go to state 23 T_WHITESPACE shift, and go to state 1 T_INCLUDE shift, and go to state 24 T_INCLUDE_ONCE shift, and go to state 25 T_REQUIRE shift, and go to state 26 T_REQUIRE_ONCE shift, and go to state 27 T_COMMENT shift, and go to state 2 T_CLASS shift, and go to state 28 T_INTERFACE shift, and go to state 29 T_TRAIT shift, and go to state 30 T_FINAL shift, and go to state 31 T_VAR shift, and go to state 32 T_PUBLIC shift, and go to state 33 T_PRIVATE shift, and go to state 34 T_STATIC shift, and go to state 35 T_CONST shift, and go to state 36 T_RETURN shift, and go to state 37 T_GLOBAL shift, and go to state 38 T_NEW shift, and go to state 39 T_THROW shift, and go to state 40 T_TRY shift, and go to state 41 T_PRINT shift, and go to state 42 T_ECHO shift, and go to state 43 T_CLONE shift, and go to state 44 T_USE shift, and go to state 45 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 60 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 T_WHITESPACE [reduce using rule 128 (decl_spec_seq)] T_COMMENT [reduce using rule 128 (decl_spec_seq)] T_FUNCTION reduce using rule 128 (decl_spec_seq) T_VAR [reduce using rule 128 (decl_spec_seq)] T_PUBLIC [reduce using rule 128 (decl_spec_seq)] T_PRIVATE [reduce using rule 128 (decl_spec_seq)] T_STATIC [reduce using rule 128 (decl_spec_seq)] T_CONST [reduce using rule 128 (decl_spec_seq)] T_GLOBAL [reduce using rule 128 (decl_spec_seq)] $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 68 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 92 logical_or_expression go to state 93 array_key_val_expression go to state 94 expr go to state 95 decl_spec go to state 96 plain_decl_spec_seq go to state 97 decl_spec_seq go to state 98 statement_delimiter go to state 99 empty_statement go to state 100 block_statement go to state 101 expr_statement go to state 102 decl_statement go to state 103 command_statement_name go to state 104 command_statement go to state 105 if_branch go to state 106 if_statement go to state 107 case_statement go to state 108 default_statetement go to state 109 break_statement go to state 110 continue_statement go to state 111 switch_statement go to state 112 label_statement go to state 113 goto_statement go to state 114 for_statement go to state 115 foreach_statement go to state 116 while_statement go to state 117 do_while_statement go to state 118 try_statement go to state 119 function_decl_statement go to state 120 class_key go to state 121 class_declaration go to state 122 statement go to state 404 state 378 180 class_inheritance_key: T_EXTENDS . $default reduce using rule 180 (class_inheritance_key) state 379 181 class_inheritance_key: T_IMPLEMENTS . $default reduce using rule 181 (class_inheritance_key) state 380 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_VARIABLE, '$', '{'] 6 | . plain_comment_or_whitespace 182 base_class_decl: class_inheritance_key . t_comment_or_whitespaces qualified_name_expr T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 405 state 381 183 base_class_decl_seq: base_class_decl . $default reduce using rule 183 (base_class_decl_seq) state 382 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_EXTENDS, T_IMPLEMENTS] 6 | . plain_comment_or_whitespace 184 base_class_decl_seq: base_class_decl_seq . t_comment_or_whitespaces base_class_decl 186 base_classes_list: t_comment_or_whitespaces base_class_decl_seq . [T_WHITESPACE, T_COMMENT, '{'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 186 (base_classes_list)] T_COMMENT [reduce using rule 186 (base_classes_list)] '{' reduce using rule 186 (base_classes_list) $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 406 state 383 134 block_statement: . '{' statement_seq t_comment_or_whitespaces '}' 135 | . '{' t_comment_or_whitespaces '}' 187 class_declaration: class_key t_comment_or_whitespaces qualified_name_expr base_classes_list t_comment_or_whitespaces . block_statement '{' shift, and go to state 200 block_statement go to state 407 state 384 148 if_branch: T_IF t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces . ')' t_comment_or_whitespaces statement ')' shift, and go to state 408 state 385 161 switch_statement: T_SWITCH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces . ')' t_comment_or_whitespaces statement ')' shift, and go to state 409 state 386 12 name_or_variable: '{' t_comment_or_whitespaces expr t_comment_or_whitespaces . '}' '}' shift, and go to state 351 state 387 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: . logical_xor_expression 112 | . logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: . logical_or_expression 114 | . logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression 115 expr: . array_key_val_expression 136 expr_statement: . expr statement_delimiter 164 for_statement: T_FOR t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_statement t_comment_or_whitespaces . expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces ')' t_comment_or_whitespaces statement T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 92 logical_or_expression go to state 93 array_key_val_expression go to state 94 expr go to state 274 expr_statement go to state 410 state 388 165 foreach_statement: T_FOREACH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces . T_AS t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement T_AS shift, and go to state 411 state 389 166 while_statement: T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces . ')' t_comment_or_whitespaces statement ')' shift, and go to state 412 state 390 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 167 do_while_statement: T_DO t_comment_or_whitespaces statement T_WHILE t_comment_or_whitespaces '(' . t_comment_or_whitespaces expr t_comment_or_whitespaces ')' statement_delimiter T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 413 state 391 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 43 | T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces . expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: . logical_xor_expression 112 | . logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: . logical_or_expression 114 | . logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression 115 expr: . array_key_val_expression 116 plain_expr_list: . expr 117 | . plain_expr_list t_comment_or_whitespaces ',' t_comment_or_whitespaces expr 118 expr_list: . [T_WHITESPACE, T_COMMENT, ')'] 119 | . plain_expr_list T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 $default reduce using rule 118 (expr_list) literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 92 logical_or_expression go to state 93 array_key_val_expression go to state 94 expr go to state 355 plain_expr_list go to state 356 expr_list go to state 414 state 392 168 catch_clause: T_CATCH t_comment_or_whitespaces . '(' t_comment_or_whitespaces qualified_name_expr t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces ')' t_comment_or_whitespaces block_statement '(' shift, and go to state 415 state 393 168 catch_clause: . T_CATCH t_comment_or_whitespaces '(' t_comment_or_whitespaces qualified_name_expr t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces ')' t_comment_or_whitespaces block_statement 170 catch_clause_seq: catch_clause_seq t_comment_or_whitespaces . catch_clause T_CATCH shift, and go to state 343 catch_clause go to state 416 state 394 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 41 chain_expr: chain_expr t_comment_or_whitespaces T_OBJECT_OPERATOR t_comment_or_whitespaces . primary_expr T_PLAIN_NAME shift, and go to state 12 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 417 state 395 10 variable_variable: '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' . $default reduce using rule 10 (variable_variable) state 396 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 17 property_declaration: qualified_name_expr t_comment_or_whitespaces ':' t_comment_or_whitespaces . expr 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: . logical_xor_expression 112 | . logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: . logical_or_expression 114 | . logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression 115 expr: . array_key_val_expression T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 92 logical_or_expression go to state 93 array_key_val_expression go to state 94 expr go to state 418 state 397 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 17 property_declaration: . qualified_name_expr t_comment_or_whitespaces ':' t_comment_or_whitespaces expr 19 property_declaration_seq: property_declaration_seq t_comment_or_whitespaces ',' t_comment_or_whitespaces . property_declaration T_PLAIN_NAME shift, and go to state 12 T_VARIABLE shift, and go to state 49 '$' shift, and go to state 59 '{' shift, and go to state 198 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 419 property_declaration go to state 420 state 398 32 postfix_expr: postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces . '}' '}' shift, and go to state 421 state 399 117 plain_expr_list: plain_expr_list t_comment_or_whitespaces . ',' t_comment_or_whitespaces expr ',' shift, and go to state 422 state 400 30 postfix_expr: postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces . ')' ')' shift, and go to state 423 state 401 31 postfix_expr: postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces . ']' ']' shift, and go to state 424 state 402 112 logical_or_expression: logical_or_expression t_comment_or_whitespaces . T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression T_LOGICAL_OR shift, and go to state 271 state 403 16 qualified_name_expr: qualified_name_expr t_comment_or_whitespaces . T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 174 function_decl_statement: decl_spec_seq t_comment_or_whitespaces T_FUNCTION t_comment_or_whitespaces qualified_name_expr t_comment_or_whitespaces . '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces t_comment_or_whitespaces ')' function_body_or_semicolon T_PAAMAYIM_NEKUDOTAYIM shift, and go to state 221 '(' shift, and go to state 425 state 404 154 else_branch: t_comment_or_whitespaces T_ELSE t_comment_or_whitespaces statement . $default reduce using rule 154 (else_branch) state 405 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 182 base_class_decl: class_inheritance_key t_comment_or_whitespaces . qualified_name_expr T_PLAIN_NAME shift, and go to state 12 T_VARIABLE shift, and go to state 49 '$' shift, and go to state 59 '{' shift, and go to state 198 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 426 state 406 180 class_inheritance_key: . T_EXTENDS 181 | . T_IMPLEMENTS 182 base_class_decl: . class_inheritance_key t_comment_or_whitespaces qualified_name_expr 184 base_class_decl_seq: base_class_decl_seq t_comment_or_whitespaces . base_class_decl T_EXTENDS shift, and go to state 378 T_IMPLEMENTS shift, and go to state 379 class_inheritance_key go to state 380 base_class_decl go to state 427 state 407 187 class_declaration: class_key t_comment_or_whitespaces qualified_name_expr base_classes_list t_comment_or_whitespaces block_statement . $default reduce using rule 187 (class_declaration) state 408 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_INLINE_HTML, T_OPEN_TAG, T_OPEN_TAG_WITH_ECHO, T_PLAIN_NAME, T_CLOSE_TAG, T_IF, T_SWITCH, T_CASE, T_BREAK, T_CONTINUE, T_DEFAULT, T_GOTO, T_FOR, T_FOREACH, T_WHILE, T_DO, T_WHITESPACE, T_INCLUDE, T_INCLUDE_ONCE, T_REQUIRE, T_REQUIRE_ONCE, T_COMMENT, T_CLASS, T_INTERFACE, T_TRAIT, T_FINAL, T_FUNCTION, T_VAR, T_PUBLIC, T_PRIVATE, T_STATIC, T_CONST, T_RETURN, T_GLOBAL, T_NEW, T_THROW, T_TRY, T_PRINT, T_ECHO, T_CLONE, T_USE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!', ';'] 6 | . plain_comment_or_whitespace 148 if_branch: T_IF t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' . t_comment_or_whitespaces statement T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 5 (t_comment_or_whitespaces)] T_COMMENT [reduce using rule 5 (t_comment_or_whitespaces)] $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 428 state 409 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_INLINE_HTML, T_OPEN_TAG, T_OPEN_TAG_WITH_ECHO, T_PLAIN_NAME, T_CLOSE_TAG, T_IF, T_SWITCH, T_CASE, T_BREAK, T_CONTINUE, T_DEFAULT, T_GOTO, T_FOR, T_FOREACH, T_WHILE, T_DO, T_WHITESPACE, T_INCLUDE, T_INCLUDE_ONCE, T_REQUIRE, T_REQUIRE_ONCE, T_COMMENT, T_CLASS, T_INTERFACE, T_TRAIT, T_FINAL, T_FUNCTION, T_VAR, T_PUBLIC, T_PRIVATE, T_STATIC, T_CONST, T_RETURN, T_GLOBAL, T_NEW, T_THROW, T_TRY, T_PRINT, T_ECHO, T_CLONE, T_USE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!', ';'] 6 | . plain_comment_or_whitespace 161 switch_statement: T_SWITCH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' . t_comment_or_whitespaces statement T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 5 (t_comment_or_whitespaces)] T_COMMENT [reduce using rule 5 (t_comment_or_whitespaces)] $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 429 state 410 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 164 for_statement: T_FOR t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement . t_comment_or_whitespaces expr_statement t_comment_or_whitespaces ')' t_comment_or_whitespaces statement T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 430 state 411 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 165 foreach_statement: T_FOREACH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces T_AS . t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 431 state 412 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_INLINE_HTML, T_OPEN_TAG, T_OPEN_TAG_WITH_ECHO, T_PLAIN_NAME, T_CLOSE_TAG, T_IF, T_SWITCH, T_CASE, T_BREAK, T_CONTINUE, T_DEFAULT, T_GOTO, T_FOR, T_FOREACH, T_WHILE, T_DO, T_WHITESPACE, T_INCLUDE, T_INCLUDE_ONCE, T_REQUIRE, T_REQUIRE_ONCE, T_COMMENT, T_CLASS, T_INTERFACE, T_TRAIT, T_FINAL, T_FUNCTION, T_VAR, T_PUBLIC, T_PRIVATE, T_STATIC, T_CONST, T_RETURN, T_GLOBAL, T_NEW, T_THROW, T_TRY, T_PRINT, T_ECHO, T_CLONE, T_USE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!', ';'] 6 | . plain_comment_or_whitespace 166 while_statement: T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' . t_comment_or_whitespaces statement T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 5 (t_comment_or_whitespaces)] T_COMMENT [reduce using rule 5 (t_comment_or_whitespaces)] $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 432 state 413 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: . logical_xor_expression 112 | . logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: . logical_or_expression 114 | . logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression 115 expr: . array_key_val_expression 167 do_while_statement: T_DO t_comment_or_whitespaces statement T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces . expr t_comment_or_whitespaces ')' statement_delimiter T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 92 logical_or_expression go to state 93 array_key_val_expression go to state 94 expr go to state 433 state 414 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [')'] 6 | . plain_comment_or_whitespace 43 unary_expr: T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list . t_comment_or_whitespaces ')' T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 434 state 415 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_VARIABLE, '$', '{'] 6 | . plain_comment_or_whitespace 168 catch_clause: T_CATCH t_comment_or_whitespaces '(' . t_comment_or_whitespaces qualified_name_expr t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces ')' t_comment_or_whitespaces block_statement T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 435 state 416 170 catch_clause_seq: catch_clause_seq t_comment_or_whitespaces catch_clause . $default reduce using rule 170 (catch_clause_seq) state 417 41 chain_expr: chain_expr t_comment_or_whitespaces T_OBJECT_OPERATOR t_comment_or_whitespaces primary_expr . $default reduce using rule 41 (chain_expr) state 418 17 property_declaration: qualified_name_expr t_comment_or_whitespaces ':' t_comment_or_whitespaces expr . $default reduce using rule 17 (property_declaration) state 419 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PAAMAYIM_NEKUDOTAYIM, ':'] 6 | . plain_comment_or_whitespace 16 qualified_name_expr: qualified_name_expr . t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 17 property_declaration: qualified_name_expr . t_comment_or_whitespaces ':' t_comment_or_whitespaces expr T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 299 state 420 19 property_declaration_seq: property_declaration_seq t_comment_or_whitespaces ',' t_comment_or_whitespaces property_declaration . $default reduce using rule 19 (property_declaration_seq) state 421 32 postfix_expr: postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' . $default reduce using rule 32 (postfix_expr) state 422 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 117 plain_expr_list: plain_expr_list t_comment_or_whitespaces ',' . t_comment_or_whitespaces expr T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 436 state 423 30 postfix_expr: postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' . $default reduce using rule 30 (postfix_expr) state 424 31 postfix_expr: postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' . $default reduce using rule 31 (postfix_expr) state 425 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_WHITESPACE, T_COMMENT, T_NEW, T_CLONE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', ')', '-', '+', '~', '@', '&', '!'] 6 | . plain_comment_or_whitespace 174 function_decl_statement: decl_spec_seq t_comment_or_whitespaces T_FUNCTION t_comment_or_whitespaces qualified_name_expr t_comment_or_whitespaces '(' . t_comment_or_whitespaces expr_list t_comment_or_whitespaces t_comment_or_whitespaces ')' function_body_or_semicolon T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 5 (t_comment_or_whitespaces)] T_COMMENT [reduce using rule 5 (t_comment_or_whitespaces)] $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 437 state 426 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PAAMAYIM_NEKUDOTAYIM] 6 | . plain_comment_or_whitespace 16 qualified_name_expr: qualified_name_expr . t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 182 base_class_decl: class_inheritance_key t_comment_or_whitespaces qualified_name_expr . [T_WHITESPACE, T_COMMENT, T_EXTENDS, T_IMPLEMENTS, '{'] T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_PAAMAYIM_NEKUDOTAYIM reduce using rule 5 (t_comment_or_whitespaces) T_WHITESPACE [reduce using rule 182 (base_class_decl)] T_COMMENT [reduce using rule 182 (base_class_decl)] $default reduce using rule 182 (base_class_decl) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 157 state 427 184 base_class_decl_seq: base_class_decl_seq t_comment_or_whitespaces base_class_decl . $default reduce using rule 184 (base_class_decl_seq) state 428 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_CLOSE_TAG, ';'] 6 | . plain_comment_or_whitespace 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: . logical_xor_expression 112 | . logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: . logical_or_expression 114 | . logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression 115 expr: . array_key_val_expression 120 decl_spec: . T_GLOBAL 121 | . T_VAR 122 | . T_PUBLIC 123 | . T_PRIVATE 124 | . T_STATIC 125 | . T_CONST 126 plain_decl_spec_seq: . decl_spec 127 | . decl_spec_seq t_comment_or_whitespaces decl_spec 128 decl_spec_seq: . [T_WHITESPACE, T_COMMENT, T_FUNCTION, T_VAR, T_PUBLIC, T_PRIVATE, T_STATIC, T_CONST, T_GLOBAL] 129 | . plain_decl_spec_seq 132 statement_delimiter: . t_comment_or_whitespaces plain_statement_delimiter 133 empty_statement: . statement_delimiter 134 block_statement: . '{' statement_seq t_comment_or_whitespaces '}' 135 | . '{' t_comment_or_whitespaces '}' 136 expr_statement: . expr statement_delimiter 137 decl_statement: . plain_decl_spec_seq t_comment_or_whitespaces expr_statement 138 command_statement_name: . T_RETURN 139 | . T_PRINT 140 | . T_ECHO 141 | . T_INCLUDE 142 | . T_INCLUDE_ONCE 143 | . T_REQUIRE 144 | . T_REQUIRE_ONCE 145 | . T_THROW 146 | . T_USE 147 command_statement: . command_statement_name t_comment_or_whitespaces expr statement_delimiter 148 if_branch: . T_IF t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 148 | T_IF t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces . statement 155 if_statement: . if_branch elseif_seq 156 | . if_branch elseif_seq else_branch 157 case_statement: . T_CASE t_comment_or_whitespaces expr t_comment_or_whitespaces ':' 158 default_statetement: . T_DEFAULT t_comment_or_whitespaces ':' 159 break_statement: . T_BREAK statement_delimiter 160 continue_statement: . T_CONTINUE statement_delimiter 161 switch_statement: . T_SWITCH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 162 label_statement: . expr t_comment_or_whitespaces ':' 163 goto_statement: . T_GOTO t_comment_or_whitespaces expr statement_delimiter 164 for_statement: . T_FOR t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 165 foreach_statement: . T_FOREACH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces T_AS t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 166 while_statement: . T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 167 do_while_statement: . T_DO t_comment_or_whitespaces statement T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' statement_delimiter 171 try_statement: . T_TRY t_comment_or_whitespaces block_statement t_comment_or_whitespaces catch_clause_seq 174 function_decl_statement: . decl_spec_seq t_comment_or_whitespaces T_FUNCTION t_comment_or_whitespaces qualified_name_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces t_comment_or_whitespaces ')' function_body_or_semicolon 175 class_key: . T_INTERFACE 176 | . T_TRAIT 177 | . T_CLASS 178 | . T_FINAL t_comment_or_whitespaces T_CLASS 179 | . T_FINAL t_comment_or_whitespaces T_INTERFACE 187 class_declaration: . class_key t_comment_or_whitespaces qualified_name_expr base_classes_list t_comment_or_whitespaces block_statement 188 statement: . T_INLINE_HTML 189 | . T_OPEN_TAG 190 | . T_OPEN_TAG_WITH_ECHO 191 | . empty_statement 192 | . block_statement 193 | . decl_statement 194 | . expr_statement 195 | . command_statement 196 | . if_statement 197 | . case_statement 198 | . default_statetement 199 | . break_statement 200 | . continue_statement 201 | . label_statement 202 | . goto_statement 203 | . switch_statement 204 | . for_statement 205 | . foreach_statement 206 | . while_statement 207 | . do_while_statement 208 | . try_statement 209 | . function_decl_statement 210 | . class_declaration T_INLINE_HTML shift, and go to state 9 T_OPEN_TAG shift, and go to state 10 T_OPEN_TAG_WITH_ECHO shift, and go to state 11 T_PLAIN_NAME shift, and go to state 12 T_IF shift, and go to state 13 T_SWITCH shift, and go to state 14 T_CASE shift, and go to state 15 T_BREAK shift, and go to state 16 T_CONTINUE shift, and go to state 17 T_DEFAULT shift, and go to state 18 T_GOTO shift, and go to state 19 T_FOR shift, and go to state 20 T_FOREACH shift, and go to state 21 T_WHILE shift, and go to state 22 T_DO shift, and go to state 23 T_WHITESPACE shift, and go to state 1 T_INCLUDE shift, and go to state 24 T_INCLUDE_ONCE shift, and go to state 25 T_REQUIRE shift, and go to state 26 T_REQUIRE_ONCE shift, and go to state 27 T_COMMENT shift, and go to state 2 T_CLASS shift, and go to state 28 T_INTERFACE shift, and go to state 29 T_TRAIT shift, and go to state 30 T_FINAL shift, and go to state 31 T_VAR shift, and go to state 32 T_PUBLIC shift, and go to state 33 T_PRIVATE shift, and go to state 34 T_STATIC shift, and go to state 35 T_CONST shift, and go to state 36 T_RETURN shift, and go to state 37 T_GLOBAL shift, and go to state 38 T_NEW shift, and go to state 39 T_THROW shift, and go to state 40 T_TRY shift, and go to state 41 T_PRINT shift, and go to state 42 T_ECHO shift, and go to state 43 T_CLONE shift, and go to state 44 T_USE shift, and go to state 45 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 60 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 T_WHITESPACE [reduce using rule 128 (decl_spec_seq)] T_COMMENT [reduce using rule 128 (decl_spec_seq)] T_FUNCTION reduce using rule 128 (decl_spec_seq) T_VAR [reduce using rule 128 (decl_spec_seq)] T_PUBLIC [reduce using rule 128 (decl_spec_seq)] T_PRIVATE [reduce using rule 128 (decl_spec_seq)] T_STATIC [reduce using rule 128 (decl_spec_seq)] T_CONST [reduce using rule 128 (decl_spec_seq)] T_GLOBAL [reduce using rule 128 (decl_spec_seq)] $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 68 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 92 logical_or_expression go to state 93 array_key_val_expression go to state 94 expr go to state 95 decl_spec go to state 96 plain_decl_spec_seq go to state 97 decl_spec_seq go to state 98 statement_delimiter go to state 99 empty_statement go to state 100 block_statement go to state 101 expr_statement go to state 102 decl_statement go to state 103 command_statement_name go to state 104 command_statement go to state 105 if_branch go to state 106 if_statement go to state 107 case_statement go to state 108 default_statetement go to state 109 break_statement go to state 110 continue_statement go to state 111 switch_statement go to state 112 label_statement go to state 113 goto_statement go to state 114 for_statement go to state 115 foreach_statement go to state 116 while_statement go to state 117 do_while_statement go to state 118 try_statement go to state 119 function_decl_statement go to state 120 class_key go to state 121 class_declaration go to state 122 statement go to state 438 state 429 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_CLOSE_TAG, ';'] 6 | . plain_comment_or_whitespace 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: . logical_xor_expression 112 | . logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: . logical_or_expression 114 | . logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression 115 expr: . array_key_val_expression 120 decl_spec: . T_GLOBAL 121 | . T_VAR 122 | . T_PUBLIC 123 | . T_PRIVATE 124 | . T_STATIC 125 | . T_CONST 126 plain_decl_spec_seq: . decl_spec 127 | . decl_spec_seq t_comment_or_whitespaces decl_spec 128 decl_spec_seq: . [T_WHITESPACE, T_COMMENT, T_FUNCTION, T_VAR, T_PUBLIC, T_PRIVATE, T_STATIC, T_CONST, T_GLOBAL] 129 | . plain_decl_spec_seq 132 statement_delimiter: . t_comment_or_whitespaces plain_statement_delimiter 133 empty_statement: . statement_delimiter 134 block_statement: . '{' statement_seq t_comment_or_whitespaces '}' 135 | . '{' t_comment_or_whitespaces '}' 136 expr_statement: . expr statement_delimiter 137 decl_statement: . plain_decl_spec_seq t_comment_or_whitespaces expr_statement 138 command_statement_name: . T_RETURN 139 | . T_PRINT 140 | . T_ECHO 141 | . T_INCLUDE 142 | . T_INCLUDE_ONCE 143 | . T_REQUIRE 144 | . T_REQUIRE_ONCE 145 | . T_THROW 146 | . T_USE 147 command_statement: . command_statement_name t_comment_or_whitespaces expr statement_delimiter 148 if_branch: . T_IF t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 155 if_statement: . if_branch elseif_seq 156 | . if_branch elseif_seq else_branch 157 case_statement: . T_CASE t_comment_or_whitespaces expr t_comment_or_whitespaces ':' 158 default_statetement: . T_DEFAULT t_comment_or_whitespaces ':' 159 break_statement: . T_BREAK statement_delimiter 160 continue_statement: . T_CONTINUE statement_delimiter 161 switch_statement: . T_SWITCH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 161 | T_SWITCH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces . statement 162 label_statement: . expr t_comment_or_whitespaces ':' 163 goto_statement: . T_GOTO t_comment_or_whitespaces expr statement_delimiter 164 for_statement: . T_FOR t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 165 foreach_statement: . T_FOREACH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces T_AS t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 166 while_statement: . T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 167 do_while_statement: . T_DO t_comment_or_whitespaces statement T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' statement_delimiter 171 try_statement: . T_TRY t_comment_or_whitespaces block_statement t_comment_or_whitespaces catch_clause_seq 174 function_decl_statement: . decl_spec_seq t_comment_or_whitespaces T_FUNCTION t_comment_or_whitespaces qualified_name_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces t_comment_or_whitespaces ')' function_body_or_semicolon 175 class_key: . T_INTERFACE 176 | . T_TRAIT 177 | . T_CLASS 178 | . T_FINAL t_comment_or_whitespaces T_CLASS 179 | . T_FINAL t_comment_or_whitespaces T_INTERFACE 187 class_declaration: . class_key t_comment_or_whitespaces qualified_name_expr base_classes_list t_comment_or_whitespaces block_statement 188 statement: . T_INLINE_HTML 189 | . T_OPEN_TAG 190 | . T_OPEN_TAG_WITH_ECHO 191 | . empty_statement 192 | . block_statement 193 | . decl_statement 194 | . expr_statement 195 | . command_statement 196 | . if_statement 197 | . case_statement 198 | . default_statetement 199 | . break_statement 200 | . continue_statement 201 | . label_statement 202 | . goto_statement 203 | . switch_statement 204 | . for_statement 205 | . foreach_statement 206 | . while_statement 207 | . do_while_statement 208 | . try_statement 209 | . function_decl_statement 210 | . class_declaration T_INLINE_HTML shift, and go to state 9 T_OPEN_TAG shift, and go to state 10 T_OPEN_TAG_WITH_ECHO shift, and go to state 11 T_PLAIN_NAME shift, and go to state 12 T_IF shift, and go to state 13 T_SWITCH shift, and go to state 14 T_CASE shift, and go to state 15 T_BREAK shift, and go to state 16 T_CONTINUE shift, and go to state 17 T_DEFAULT shift, and go to state 18 T_GOTO shift, and go to state 19 T_FOR shift, and go to state 20 T_FOREACH shift, and go to state 21 T_WHILE shift, and go to state 22 T_DO shift, and go to state 23 T_WHITESPACE shift, and go to state 1 T_INCLUDE shift, and go to state 24 T_INCLUDE_ONCE shift, and go to state 25 T_REQUIRE shift, and go to state 26 T_REQUIRE_ONCE shift, and go to state 27 T_COMMENT shift, and go to state 2 T_CLASS shift, and go to state 28 T_INTERFACE shift, and go to state 29 T_TRAIT shift, and go to state 30 T_FINAL shift, and go to state 31 T_VAR shift, and go to state 32 T_PUBLIC shift, and go to state 33 T_PRIVATE shift, and go to state 34 T_STATIC shift, and go to state 35 T_CONST shift, and go to state 36 T_RETURN shift, and go to state 37 T_GLOBAL shift, and go to state 38 T_NEW shift, and go to state 39 T_THROW shift, and go to state 40 T_TRY shift, and go to state 41 T_PRINT shift, and go to state 42 T_ECHO shift, and go to state 43 T_CLONE shift, and go to state 44 T_USE shift, and go to state 45 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 60 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 T_WHITESPACE [reduce using rule 128 (decl_spec_seq)] T_COMMENT [reduce using rule 128 (decl_spec_seq)] T_FUNCTION reduce using rule 128 (decl_spec_seq) T_VAR [reduce using rule 128 (decl_spec_seq)] T_PUBLIC [reduce using rule 128 (decl_spec_seq)] T_PRIVATE [reduce using rule 128 (decl_spec_seq)] T_STATIC [reduce using rule 128 (decl_spec_seq)] T_CONST [reduce using rule 128 (decl_spec_seq)] T_GLOBAL [reduce using rule 128 (decl_spec_seq)] $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 68 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 92 logical_or_expression go to state 93 array_key_val_expression go to state 94 expr go to state 95 decl_spec go to state 96 plain_decl_spec_seq go to state 97 decl_spec_seq go to state 98 statement_delimiter go to state 99 empty_statement go to state 100 block_statement go to state 101 expr_statement go to state 102 decl_statement go to state 103 command_statement_name go to state 104 command_statement go to state 105 if_branch go to state 106 if_statement go to state 107 case_statement go to state 108 default_statetement go to state 109 break_statement go to state 110 continue_statement go to state 111 switch_statement go to state 112 label_statement go to state 113 goto_statement go to state 114 for_statement go to state 115 foreach_statement go to state 116 while_statement go to state 117 do_while_statement go to state 118 try_statement go to state 119 function_decl_statement go to state 120 class_key go to state 121 class_declaration go to state 122 statement go to state 439 state 430 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: . logical_xor_expression 112 | . logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: . logical_or_expression 114 | . logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression 115 expr: . array_key_val_expression 136 expr_statement: . expr statement_delimiter 164 for_statement: T_FOR t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces . expr_statement t_comment_or_whitespaces ')' t_comment_or_whitespaces statement T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 92 logical_or_expression go to state 93 array_key_val_expression go to state 94 expr go to state 274 expr_statement go to state 440 state 431 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: . logical_xor_expression 112 | . logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: . logical_or_expression 114 | . logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression 115 expr: . array_key_val_expression 165 foreach_statement: T_FOREACH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces T_AS t_comment_or_whitespaces . expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 92 logical_or_expression go to state 93 array_key_val_expression go to state 94 expr go to state 441 state 432 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_CLOSE_TAG, ';'] 6 | . plain_comment_or_whitespace 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: . logical_xor_expression 112 | . logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: . logical_or_expression 114 | . logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression 115 expr: . array_key_val_expression 120 decl_spec: . T_GLOBAL 121 | . T_VAR 122 | . T_PUBLIC 123 | . T_PRIVATE 124 | . T_STATIC 125 | . T_CONST 126 plain_decl_spec_seq: . decl_spec 127 | . decl_spec_seq t_comment_or_whitespaces decl_spec 128 decl_spec_seq: . [T_WHITESPACE, T_COMMENT, T_FUNCTION, T_VAR, T_PUBLIC, T_PRIVATE, T_STATIC, T_CONST, T_GLOBAL] 129 | . plain_decl_spec_seq 132 statement_delimiter: . t_comment_or_whitespaces plain_statement_delimiter 133 empty_statement: . statement_delimiter 134 block_statement: . '{' statement_seq t_comment_or_whitespaces '}' 135 | . '{' t_comment_or_whitespaces '}' 136 expr_statement: . expr statement_delimiter 137 decl_statement: . plain_decl_spec_seq t_comment_or_whitespaces expr_statement 138 command_statement_name: . T_RETURN 139 | . T_PRINT 140 | . T_ECHO 141 | . T_INCLUDE 142 | . T_INCLUDE_ONCE 143 | . T_REQUIRE 144 | . T_REQUIRE_ONCE 145 | . T_THROW 146 | . T_USE 147 command_statement: . command_statement_name t_comment_or_whitespaces expr statement_delimiter 148 if_branch: . T_IF t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 155 if_statement: . if_branch elseif_seq 156 | . if_branch elseif_seq else_branch 157 case_statement: . T_CASE t_comment_or_whitespaces expr t_comment_or_whitespaces ':' 158 default_statetement: . T_DEFAULT t_comment_or_whitespaces ':' 159 break_statement: . T_BREAK statement_delimiter 160 continue_statement: . T_CONTINUE statement_delimiter 161 switch_statement: . T_SWITCH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 162 label_statement: . expr t_comment_or_whitespaces ':' 163 goto_statement: . T_GOTO t_comment_or_whitespaces expr statement_delimiter 164 for_statement: . T_FOR t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 165 foreach_statement: . T_FOREACH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces T_AS t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 166 while_statement: . T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 166 | T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces . statement 167 do_while_statement: . T_DO t_comment_or_whitespaces statement T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' statement_delimiter 171 try_statement: . T_TRY t_comment_or_whitespaces block_statement t_comment_or_whitespaces catch_clause_seq 174 function_decl_statement: . decl_spec_seq t_comment_or_whitespaces T_FUNCTION t_comment_or_whitespaces qualified_name_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces t_comment_or_whitespaces ')' function_body_or_semicolon 175 class_key: . T_INTERFACE 176 | . T_TRAIT 177 | . T_CLASS 178 | . T_FINAL t_comment_or_whitespaces T_CLASS 179 | . T_FINAL t_comment_or_whitespaces T_INTERFACE 187 class_declaration: . class_key t_comment_or_whitespaces qualified_name_expr base_classes_list t_comment_or_whitespaces block_statement 188 statement: . T_INLINE_HTML 189 | . T_OPEN_TAG 190 | . T_OPEN_TAG_WITH_ECHO 191 | . empty_statement 192 | . block_statement 193 | . decl_statement 194 | . expr_statement 195 | . command_statement 196 | . if_statement 197 | . case_statement 198 | . default_statetement 199 | . break_statement 200 | . continue_statement 201 | . label_statement 202 | . goto_statement 203 | . switch_statement 204 | . for_statement 205 | . foreach_statement 206 | . while_statement 207 | . do_while_statement 208 | . try_statement 209 | . function_decl_statement 210 | . class_declaration T_INLINE_HTML shift, and go to state 9 T_OPEN_TAG shift, and go to state 10 T_OPEN_TAG_WITH_ECHO shift, and go to state 11 T_PLAIN_NAME shift, and go to state 12 T_IF shift, and go to state 13 T_SWITCH shift, and go to state 14 T_CASE shift, and go to state 15 T_BREAK shift, and go to state 16 T_CONTINUE shift, and go to state 17 T_DEFAULT shift, and go to state 18 T_GOTO shift, and go to state 19 T_FOR shift, and go to state 20 T_FOREACH shift, and go to state 21 T_WHILE shift, and go to state 22 T_DO shift, and go to state 23 T_WHITESPACE shift, and go to state 1 T_INCLUDE shift, and go to state 24 T_INCLUDE_ONCE shift, and go to state 25 T_REQUIRE shift, and go to state 26 T_REQUIRE_ONCE shift, and go to state 27 T_COMMENT shift, and go to state 2 T_CLASS shift, and go to state 28 T_INTERFACE shift, and go to state 29 T_TRAIT shift, and go to state 30 T_FINAL shift, and go to state 31 T_VAR shift, and go to state 32 T_PUBLIC shift, and go to state 33 T_PRIVATE shift, and go to state 34 T_STATIC shift, and go to state 35 T_CONST shift, and go to state 36 T_RETURN shift, and go to state 37 T_GLOBAL shift, and go to state 38 T_NEW shift, and go to state 39 T_THROW shift, and go to state 40 T_TRY shift, and go to state 41 T_PRINT shift, and go to state 42 T_ECHO shift, and go to state 43 T_CLONE shift, and go to state 44 T_USE shift, and go to state 45 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 60 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 T_WHITESPACE [reduce using rule 128 (decl_spec_seq)] T_COMMENT [reduce using rule 128 (decl_spec_seq)] T_FUNCTION reduce using rule 128 (decl_spec_seq) T_VAR [reduce using rule 128 (decl_spec_seq)] T_PUBLIC [reduce using rule 128 (decl_spec_seq)] T_PRIVATE [reduce using rule 128 (decl_spec_seq)] T_STATIC [reduce using rule 128 (decl_spec_seq)] T_CONST [reduce using rule 128 (decl_spec_seq)] T_GLOBAL [reduce using rule 128 (decl_spec_seq)] $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 68 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 92 logical_or_expression go to state 93 array_key_val_expression go to state 94 expr go to state 95 decl_spec go to state 96 plain_decl_spec_seq go to state 97 decl_spec_seq go to state 98 statement_delimiter go to state 99 empty_statement go to state 100 block_statement go to state 101 expr_statement go to state 102 decl_statement go to state 103 command_statement_name go to state 104 command_statement go to state 105 if_branch go to state 106 if_statement go to state 107 case_statement go to state 108 default_statetement go to state 109 break_statement go to state 110 continue_statement go to state 111 switch_statement go to state 112 label_statement go to state 113 goto_statement go to state 114 for_statement go to state 115 foreach_statement go to state 116 while_statement go to state 117 do_while_statement go to state 118 try_statement go to state 119 function_decl_statement go to state 120 class_key go to state 121 class_declaration go to state 122 statement go to state 442 state 433 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [')'] 6 | . plain_comment_or_whitespace 167 do_while_statement: T_DO t_comment_or_whitespaces statement T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr . t_comment_or_whitespaces ')' statement_delimiter T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 443 state 434 43 unary_expr: T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces . ')' ')' shift, and go to state 444 state 435 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 168 catch_clause: T_CATCH t_comment_or_whitespaces '(' t_comment_or_whitespaces . qualified_name_expr t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces ')' t_comment_or_whitespaces block_statement T_PLAIN_NAME shift, and go to state 12 T_VARIABLE shift, and go to state 49 '$' shift, and go to state 59 '{' shift, and go to state 198 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 445 state 436 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: . logical_xor_expression 112 | . logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: . logical_or_expression 114 | . logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression 115 expr: . array_key_val_expression 117 plain_expr_list: plain_expr_list t_comment_or_whitespaces ',' t_comment_or_whitespaces . expr T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 92 logical_or_expression go to state 93 array_key_val_expression go to state 94 expr go to state 446 state 437 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: . logical_xor_expression 112 | . logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: . logical_or_expression 114 | . logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression 115 expr: . array_key_val_expression 116 plain_expr_list: . expr 117 | . plain_expr_list t_comment_or_whitespaces ',' t_comment_or_whitespaces expr 118 expr_list: . [T_WHITESPACE, T_COMMENT, ')'] 119 | . plain_expr_list 174 function_decl_statement: decl_spec_seq t_comment_or_whitespaces T_FUNCTION t_comment_or_whitespaces qualified_name_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces . expr_list t_comment_or_whitespaces t_comment_or_whitespaces ')' function_body_or_semicolon T_PLAIN_NAME shift, and go to state 12 T_NEW shift, and go to state 39 T_CLONE shift, and go to state 44 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 188 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 $default reduce using rule 118 (expr_list) literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 92 logical_or_expression go to state 93 array_key_val_expression go to state 94 expr go to state 355 plain_expr_list go to state 356 expr_list go to state 447 state 438 148 if_branch: T_IF t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement . $default reduce using rule 148 (if_branch) state 439 161 switch_statement: T_SWITCH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement . $default reduce using rule 161 (switch_statement) state 440 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [')'] 6 | . plain_comment_or_whitespace 164 for_statement: T_FOR t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement . t_comment_or_whitespaces ')' t_comment_or_whitespaces statement T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 448 state 441 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [')'] 6 | . plain_comment_or_whitespace 165 foreach_statement: T_FOREACH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces T_AS t_comment_or_whitespaces expr . t_comment_or_whitespaces ')' t_comment_or_whitespaces statement T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 449 state 442 166 while_statement: T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement . $default reduce using rule 166 (while_statement) state 443 167 do_while_statement: T_DO t_comment_or_whitespaces statement T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces . ')' statement_delimiter ')' shift, and go to state 450 state 444 43 unary_expr: T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' . $default reduce using rule 43 (unary_expr) state 445 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_PLAIN_NAME, T_PAAMAYIM_NEKUDOTAYIM, T_VARIABLE, '$', '{'] 6 | . plain_comment_or_whitespace 16 qualified_name_expr: qualified_name_expr . t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 168 catch_clause: T_CATCH t_comment_or_whitespaces '(' t_comment_or_whitespaces qualified_name_expr . t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces ')' t_comment_or_whitespaces block_statement T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 451 state 446 117 plain_expr_list: plain_expr_list t_comment_or_whitespaces ',' t_comment_or_whitespaces expr . $default reduce using rule 117 (plain_expr_list) state 447 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_WHITESPACE, T_COMMENT, ')'] 6 | . plain_comment_or_whitespace 174 function_decl_statement: decl_spec_seq t_comment_or_whitespaces T_FUNCTION t_comment_or_whitespaces qualified_name_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list . t_comment_or_whitespaces t_comment_or_whitespaces ')' function_body_or_semicolon T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 5 (t_comment_or_whitespaces)] T_COMMENT [reduce using rule 5 (t_comment_or_whitespaces)] $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 452 state 448 164 for_statement: T_FOR t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces . ')' t_comment_or_whitespaces statement ')' shift, and go to state 453 state 449 165 foreach_statement: T_FOREACH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces T_AS t_comment_or_whitespaces expr t_comment_or_whitespaces . ')' t_comment_or_whitespaces statement ')' shift, and go to state 454 state 450 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_CLOSE_TAG, ';'] 6 | . plain_comment_or_whitespace 132 statement_delimiter: . t_comment_or_whitespaces plain_statement_delimiter 167 do_while_statement: T_DO t_comment_or_whitespaces statement T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' . statement_delimiter T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 68 statement_delimiter go to state 455 state 451 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 16 qualified_name_expr: qualified_name_expr t_comment_or_whitespaces . T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 168 catch_clause: T_CATCH t_comment_or_whitespaces '(' t_comment_or_whitespaces qualified_name_expr t_comment_or_whitespaces . name_or_variable t_comment_or_whitespaces ')' t_comment_or_whitespaces block_statement T_PLAIN_NAME shift, and go to state 12 T_PAAMAYIM_NEKUDOTAYIM shift, and go to state 221 T_VARIABLE shift, and go to state 49 '$' shift, and go to state 59 '{' shift, and go to state 198 variable_variable go to state 70 name_or_variable go to state 456 state 452 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [')'] 6 | . plain_comment_or_whitespace 174 function_decl_statement: decl_spec_seq t_comment_or_whitespaces T_FUNCTION t_comment_or_whitespaces qualified_name_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces . t_comment_or_whitespaces ')' function_body_or_semicolon T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 457 state 453 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_INLINE_HTML, T_OPEN_TAG, T_OPEN_TAG_WITH_ECHO, T_PLAIN_NAME, T_CLOSE_TAG, T_IF, T_SWITCH, T_CASE, T_BREAK, T_CONTINUE, T_DEFAULT, T_GOTO, T_FOR, T_FOREACH, T_WHILE, T_DO, T_WHITESPACE, T_INCLUDE, T_INCLUDE_ONCE, T_REQUIRE, T_REQUIRE_ONCE, T_COMMENT, T_CLASS, T_INTERFACE, T_TRAIT, T_FINAL, T_FUNCTION, T_VAR, T_PUBLIC, T_PRIVATE, T_STATIC, T_CONST, T_RETURN, T_GLOBAL, T_NEW, T_THROW, T_TRY, T_PRINT, T_ECHO, T_CLONE, T_USE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!', ';'] 6 | . plain_comment_or_whitespace 164 for_statement: T_FOR t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces ')' . t_comment_or_whitespaces statement T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 5 (t_comment_or_whitespaces)] T_COMMENT [reduce using rule 5 (t_comment_or_whitespaces)] $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 458 state 454 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_INLINE_HTML, T_OPEN_TAG, T_OPEN_TAG_WITH_ECHO, T_PLAIN_NAME, T_CLOSE_TAG, T_IF, T_SWITCH, T_CASE, T_BREAK, T_CONTINUE, T_DEFAULT, T_GOTO, T_FOR, T_FOREACH, T_WHILE, T_DO, T_WHITESPACE, T_INCLUDE, T_INCLUDE_ONCE, T_REQUIRE, T_REQUIRE_ONCE, T_COMMENT, T_CLASS, T_INTERFACE, T_TRAIT, T_FINAL, T_FUNCTION, T_VAR, T_PUBLIC, T_PRIVATE, T_STATIC, T_CONST, T_RETURN, T_GLOBAL, T_NEW, T_THROW, T_TRY, T_PRINT, T_ECHO, T_CLONE, T_USE, "integral number", "real number", T_STRING, T_VARIABLE, "++ (T_INC)", "-- (T_DEC)", "(int) (T_INT_CAST)", "(double) (T_DOUBLE_CAST)", "(string) (T_STRING_CAST)", "(array) (T_ARRAY_CAST)", "(object) (T_OBJECT_CAST)", "(bool) (T_BOOL_CAST)", "(unset) (T_UNSET_CAST)", '$', '{', '(', '-', '+', '~', '@', '&', '!', ';'] 6 | . plain_comment_or_whitespace 165 foreach_statement: T_FOREACH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces T_AS t_comment_or_whitespaces expr t_comment_or_whitespaces ')' . t_comment_or_whitespaces statement T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 T_WHITESPACE [reduce using rule 5 (t_comment_or_whitespaces)] T_COMMENT [reduce using rule 5 (t_comment_or_whitespaces)] $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 459 state 455 167 do_while_statement: T_DO t_comment_or_whitespaces statement T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' statement_delimiter . $default reduce using rule 167 (do_while_statement) state 456 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [')'] 6 | . plain_comment_or_whitespace 168 catch_clause: T_CATCH t_comment_or_whitespaces '(' t_comment_or_whitespaces qualified_name_expr t_comment_or_whitespaces name_or_variable . t_comment_or_whitespaces ')' t_comment_or_whitespaces block_statement T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 460 state 457 174 function_decl_statement: decl_spec_seq t_comment_or_whitespaces T_FUNCTION t_comment_or_whitespaces qualified_name_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces t_comment_or_whitespaces . ')' function_body_or_semicolon ')' shift, and go to state 461 state 458 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_CLOSE_TAG, ';'] 6 | . plain_comment_or_whitespace 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: . logical_xor_expression 112 | . logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: . logical_or_expression 114 | . logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression 115 expr: . array_key_val_expression 120 decl_spec: . T_GLOBAL 121 | . T_VAR 122 | . T_PUBLIC 123 | . T_PRIVATE 124 | . T_STATIC 125 | . T_CONST 126 plain_decl_spec_seq: . decl_spec 127 | . decl_spec_seq t_comment_or_whitespaces decl_spec 128 decl_spec_seq: . [T_WHITESPACE, T_COMMENT, T_FUNCTION, T_VAR, T_PUBLIC, T_PRIVATE, T_STATIC, T_CONST, T_GLOBAL] 129 | . plain_decl_spec_seq 132 statement_delimiter: . t_comment_or_whitespaces plain_statement_delimiter 133 empty_statement: . statement_delimiter 134 block_statement: . '{' statement_seq t_comment_or_whitespaces '}' 135 | . '{' t_comment_or_whitespaces '}' 136 expr_statement: . expr statement_delimiter 137 decl_statement: . plain_decl_spec_seq t_comment_or_whitespaces expr_statement 138 command_statement_name: . T_RETURN 139 | . T_PRINT 140 | . T_ECHO 141 | . T_INCLUDE 142 | . T_INCLUDE_ONCE 143 | . T_REQUIRE 144 | . T_REQUIRE_ONCE 145 | . T_THROW 146 | . T_USE 147 command_statement: . command_statement_name t_comment_or_whitespaces expr statement_delimiter 148 if_branch: . T_IF t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 155 if_statement: . if_branch elseif_seq 156 | . if_branch elseif_seq else_branch 157 case_statement: . T_CASE t_comment_or_whitespaces expr t_comment_or_whitespaces ':' 158 default_statetement: . T_DEFAULT t_comment_or_whitespaces ':' 159 break_statement: . T_BREAK statement_delimiter 160 continue_statement: . T_CONTINUE statement_delimiter 161 switch_statement: . T_SWITCH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 162 label_statement: . expr t_comment_or_whitespaces ':' 163 goto_statement: . T_GOTO t_comment_or_whitespaces expr statement_delimiter 164 for_statement: . T_FOR t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 164 | T_FOR t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces ')' t_comment_or_whitespaces . statement 165 foreach_statement: . T_FOREACH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces T_AS t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 166 while_statement: . T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 167 do_while_statement: . T_DO t_comment_or_whitespaces statement T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' statement_delimiter 171 try_statement: . T_TRY t_comment_or_whitespaces block_statement t_comment_or_whitespaces catch_clause_seq 174 function_decl_statement: . decl_spec_seq t_comment_or_whitespaces T_FUNCTION t_comment_or_whitespaces qualified_name_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces t_comment_or_whitespaces ')' function_body_or_semicolon 175 class_key: . T_INTERFACE 176 | . T_TRAIT 177 | . T_CLASS 178 | . T_FINAL t_comment_or_whitespaces T_CLASS 179 | . T_FINAL t_comment_or_whitespaces T_INTERFACE 187 class_declaration: . class_key t_comment_or_whitespaces qualified_name_expr base_classes_list t_comment_or_whitespaces block_statement 188 statement: . T_INLINE_HTML 189 | . T_OPEN_TAG 190 | . T_OPEN_TAG_WITH_ECHO 191 | . empty_statement 192 | . block_statement 193 | . decl_statement 194 | . expr_statement 195 | . command_statement 196 | . if_statement 197 | . case_statement 198 | . default_statetement 199 | . break_statement 200 | . continue_statement 201 | . label_statement 202 | . goto_statement 203 | . switch_statement 204 | . for_statement 205 | . foreach_statement 206 | . while_statement 207 | . do_while_statement 208 | . try_statement 209 | . function_decl_statement 210 | . class_declaration T_INLINE_HTML shift, and go to state 9 T_OPEN_TAG shift, and go to state 10 T_OPEN_TAG_WITH_ECHO shift, and go to state 11 T_PLAIN_NAME shift, and go to state 12 T_IF shift, and go to state 13 T_SWITCH shift, and go to state 14 T_CASE shift, and go to state 15 T_BREAK shift, and go to state 16 T_CONTINUE shift, and go to state 17 T_DEFAULT shift, and go to state 18 T_GOTO shift, and go to state 19 T_FOR shift, and go to state 20 T_FOREACH shift, and go to state 21 T_WHILE shift, and go to state 22 T_DO shift, and go to state 23 T_WHITESPACE shift, and go to state 1 T_INCLUDE shift, and go to state 24 T_INCLUDE_ONCE shift, and go to state 25 T_REQUIRE shift, and go to state 26 T_REQUIRE_ONCE shift, and go to state 27 T_COMMENT shift, and go to state 2 T_CLASS shift, and go to state 28 T_INTERFACE shift, and go to state 29 T_TRAIT shift, and go to state 30 T_FINAL shift, and go to state 31 T_VAR shift, and go to state 32 T_PUBLIC shift, and go to state 33 T_PRIVATE shift, and go to state 34 T_STATIC shift, and go to state 35 T_CONST shift, and go to state 36 T_RETURN shift, and go to state 37 T_GLOBAL shift, and go to state 38 T_NEW shift, and go to state 39 T_THROW shift, and go to state 40 T_TRY shift, and go to state 41 T_PRINT shift, and go to state 42 T_ECHO shift, and go to state 43 T_CLONE shift, and go to state 44 T_USE shift, and go to state 45 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 60 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 T_WHITESPACE [reduce using rule 128 (decl_spec_seq)] T_COMMENT [reduce using rule 128 (decl_spec_seq)] T_FUNCTION reduce using rule 128 (decl_spec_seq) T_VAR [reduce using rule 128 (decl_spec_seq)] T_PUBLIC [reduce using rule 128 (decl_spec_seq)] T_PRIVATE [reduce using rule 128 (decl_spec_seq)] T_STATIC [reduce using rule 128 (decl_spec_seq)] T_CONST [reduce using rule 128 (decl_spec_seq)] T_GLOBAL [reduce using rule 128 (decl_spec_seq)] $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 68 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 92 logical_or_expression go to state 93 array_key_val_expression go to state 94 expr go to state 95 decl_spec go to state 96 plain_decl_spec_seq go to state 97 decl_spec_seq go to state 98 statement_delimiter go to state 99 empty_statement go to state 100 block_statement go to state 101 expr_statement go to state 102 decl_statement go to state 103 command_statement_name go to state 104 command_statement go to state 105 if_branch go to state 106 if_statement go to state 107 case_statement go to state 108 default_statetement go to state 109 break_statement go to state 110 continue_statement go to state 111 switch_statement go to state 112 label_statement go to state 113 goto_statement go to state 114 for_statement go to state 115 foreach_statement go to state 116 while_statement go to state 117 do_while_statement go to state 118 try_statement go to state 119 function_decl_statement go to state 120 class_key go to state 121 class_declaration go to state 122 statement go to state 462 state 459 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_CLOSE_TAG, ';'] 6 | . plain_comment_or_whitespace 7 literal_value: . T_STRING 8 | . "integral number" 9 | . "real number" 10 variable_variable: . '$' '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 11 name_or_variable: . variable_variable 12 | . '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 13 | . T_VARIABLE 14 | . T_PLAIN_NAME 15 qualified_name_expr: . name_or_variable 16 | . qualified_name_expr t_comment_or_whitespaces T_PAAMAYIM_NEKUDOTAYIM t_comment_or_whitespaces name_or_variable 20 object_constructor: . '{' t_comment_or_whitespaces '}' 21 | . '{' t_comment_or_whitespaces property_declaration_seq t_comment_or_whitespaces '}' 22 primary_expr: . literal_value 23 | . qualified_name_expr 24 | . object_constructor 25 | . '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' 26 postfix_expr: . primary_expr 27 | . postfix_expr t_comment_or_whitespaces T_OBJECT_OPERATOR primary_expr 28 | . postfix_expr t_comment_or_whitespaces "++ (T_INC)" 29 | . postfix_expr t_comment_or_whitespaces "-- (T_DEC)" 30 | . postfix_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 31 | . postfix_expr t_comment_or_whitespaces '[' t_comment_or_whitespaces expr t_comment_or_whitespaces ']' 32 | . postfix_expr t_comment_or_whitespaces '{' t_comment_or_whitespaces expr t_comment_or_whitespaces '}' 33 cast_operator: . "(int) (T_INT_CAST)" 34 | . "(double) (T_DOUBLE_CAST)" 35 | . "(string) (T_STRING_CAST)" 36 | . "(array) (T_ARRAY_CAST)" 37 | . "(object) (T_OBJECT_CAST)" 38 | . "(bool) (T_BOOL_CAST)" 39 | . "(unset) (T_UNSET_CAST)" 42 unary_expr: . postfix_expr 43 | . T_NEW t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces ')' 44 | . T_CLONE t_comment_or_whitespaces chain_expr 45 | . '-' t_comment_or_whitespaces postfix_expr 46 | . '+' t_comment_or_whitespaces postfix_expr 47 | . '~' t_comment_or_whitespaces postfix_expr 48 | . '@' t_comment_or_whitespaces postfix_expr 49 | . '&' t_comment_or_whitespaces postfix_expr 50 | . "++ (T_INC)" t_comment_or_whitespaces postfix_expr 51 | . "-- (T_DEC)" t_comment_or_whitespaces postfix_expr 52 | . cast_operator t_comment_or_whitespaces postfix_expr 53 instanceof_expr: . unary_expr 54 | . unary_expr t_comment_or_whitespaces T_INSTANCEOF t_comment_or_whitespaces qualified_name_expr 55 logical_not_expr: . instanceof_expr 56 | . '!' t_comment_or_whitespaces logical_not_expr 60 multiplicative_expr: . logical_not_expr 61 | . multiplicative_expr t_comment_or_whitespaces multiplicative_op t_comment_or_whitespaces logical_not_expr 65 additive_expr: . multiplicative_expr 66 | . additive_expr t_comment_or_whitespaces additive_op t_comment_or_whitespaces multiplicative_expr 69 bitwise_shift_expr: . additive_expr 70 | . bitwise_shift_expr t_comment_or_whitespaces bitwise_shift_op t_comment_or_whitespaces additive_expr 79 relational_expr: . bitwise_shift_expr 80 | . relational_expr t_comment_or_whitespaces relational_op t_comment_or_whitespaces bitwise_shift_expr 81 bitwise_and_expr: . relational_expr 82 | . bitwise_and_expr t_comment_or_whitespaces '&' t_comment_or_whitespaces relational_expr 83 bitwise_xor_expr: . bitwise_and_expr 84 | . bitwise_xor_expr t_comment_or_whitespaces '^' t_comment_or_whitespaces bitwise_and_expr 85 bitwise_or_expr: . bitwise_xor_expr 86 | . bitwise_or_expr t_comment_or_whitespaces '|' t_comment_or_whitespaces bitwise_xor_expr 87 boolean_and_expr: . bitwise_or_expr 88 | . boolean_and_expr t_comment_or_whitespaces T_BOOLEAN_AND t_comment_or_whitespaces bitwise_or_expr 89 boolean_or_expr: . boolean_and_expr 90 | . boolean_or_expr t_comment_or_whitespaces T_BOOLEAN_OR t_comment_or_whitespaces boolean_and_expr 91 conditional_expression: . boolean_or_expr 92 | . conditional_expression '?' conditional_expression ':' conditional_expression 105 assignament_expression: . conditional_expression 106 | . conditional_expression t_comment_or_whitespaces assignament_operator t_comment_or_whitespaces assignament_expression 107 logical_and_expression: . assignament_expression 108 | . logical_and_expression t_comment_or_whitespaces T_LOGICAL_AND t_comment_or_whitespaces assignament_expression 109 logical_xor_expression: . logical_and_expression 110 | . logical_xor_expression t_comment_or_whitespaces T_LOGICAL_XOR t_comment_or_whitespaces logical_and_expression 111 logical_or_expression: . logical_xor_expression 112 | . logical_or_expression t_comment_or_whitespaces T_LOGICAL_OR t_comment_or_whitespaces logical_xor_expression 113 array_key_val_expression: . logical_or_expression 114 | . logical_or_expression t_comment_or_whitespaces T_DOUBLE_ARROW t_comment_or_whitespaces logical_or_expression 115 expr: . array_key_val_expression 120 decl_spec: . T_GLOBAL 121 | . T_VAR 122 | . T_PUBLIC 123 | . T_PRIVATE 124 | . T_STATIC 125 | . T_CONST 126 plain_decl_spec_seq: . decl_spec 127 | . decl_spec_seq t_comment_or_whitespaces decl_spec 128 decl_spec_seq: . [T_WHITESPACE, T_COMMENT, T_FUNCTION, T_VAR, T_PUBLIC, T_PRIVATE, T_STATIC, T_CONST, T_GLOBAL] 129 | . plain_decl_spec_seq 132 statement_delimiter: . t_comment_or_whitespaces plain_statement_delimiter 133 empty_statement: . statement_delimiter 134 block_statement: . '{' statement_seq t_comment_or_whitespaces '}' 135 | . '{' t_comment_or_whitespaces '}' 136 expr_statement: . expr statement_delimiter 137 decl_statement: . plain_decl_spec_seq t_comment_or_whitespaces expr_statement 138 command_statement_name: . T_RETURN 139 | . T_PRINT 140 | . T_ECHO 141 | . T_INCLUDE 142 | . T_INCLUDE_ONCE 143 | . T_REQUIRE 144 | . T_REQUIRE_ONCE 145 | . T_THROW 146 | . T_USE 147 command_statement: . command_statement_name t_comment_or_whitespaces expr statement_delimiter 148 if_branch: . T_IF t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 155 if_statement: . if_branch elseif_seq 156 | . if_branch elseif_seq else_branch 157 case_statement: . T_CASE t_comment_or_whitespaces expr t_comment_or_whitespaces ':' 158 default_statetement: . T_DEFAULT t_comment_or_whitespaces ':' 159 break_statement: . T_BREAK statement_delimiter 160 continue_statement: . T_CONTINUE statement_delimiter 161 switch_statement: . T_SWITCH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 162 label_statement: . expr t_comment_or_whitespaces ':' 163 goto_statement: . T_GOTO t_comment_or_whitespaces expr statement_delimiter 164 for_statement: . T_FOR t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 165 foreach_statement: . T_FOREACH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces T_AS t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 165 | T_FOREACH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces T_AS t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces . statement 166 while_statement: . T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement 167 do_while_statement: . T_DO t_comment_or_whitespaces statement T_WHILE t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces ')' statement_delimiter 171 try_statement: . T_TRY t_comment_or_whitespaces block_statement t_comment_or_whitespaces catch_clause_seq 174 function_decl_statement: . decl_spec_seq t_comment_or_whitespaces T_FUNCTION t_comment_or_whitespaces qualified_name_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces t_comment_or_whitespaces ')' function_body_or_semicolon 175 class_key: . T_INTERFACE 176 | . T_TRAIT 177 | . T_CLASS 178 | . T_FINAL t_comment_or_whitespaces T_CLASS 179 | . T_FINAL t_comment_or_whitespaces T_INTERFACE 187 class_declaration: . class_key t_comment_or_whitespaces qualified_name_expr base_classes_list t_comment_or_whitespaces block_statement 188 statement: . T_INLINE_HTML 189 | . T_OPEN_TAG 190 | . T_OPEN_TAG_WITH_ECHO 191 | . empty_statement 192 | . block_statement 193 | . decl_statement 194 | . expr_statement 195 | . command_statement 196 | . if_statement 197 | . case_statement 198 | . default_statetement 199 | . break_statement 200 | . continue_statement 201 | . label_statement 202 | . goto_statement 203 | . switch_statement 204 | . for_statement 205 | . foreach_statement 206 | . while_statement 207 | . do_while_statement 208 | . try_statement 209 | . function_decl_statement 210 | . class_declaration T_INLINE_HTML shift, and go to state 9 T_OPEN_TAG shift, and go to state 10 T_OPEN_TAG_WITH_ECHO shift, and go to state 11 T_PLAIN_NAME shift, and go to state 12 T_IF shift, and go to state 13 T_SWITCH shift, and go to state 14 T_CASE shift, and go to state 15 T_BREAK shift, and go to state 16 T_CONTINUE shift, and go to state 17 T_DEFAULT shift, and go to state 18 T_GOTO shift, and go to state 19 T_FOR shift, and go to state 20 T_FOREACH shift, and go to state 21 T_WHILE shift, and go to state 22 T_DO shift, and go to state 23 T_WHITESPACE shift, and go to state 1 T_INCLUDE shift, and go to state 24 T_INCLUDE_ONCE shift, and go to state 25 T_REQUIRE shift, and go to state 26 T_REQUIRE_ONCE shift, and go to state 27 T_COMMENT shift, and go to state 2 T_CLASS shift, and go to state 28 T_INTERFACE shift, and go to state 29 T_TRAIT shift, and go to state 30 T_FINAL shift, and go to state 31 T_VAR shift, and go to state 32 T_PUBLIC shift, and go to state 33 T_PRIVATE shift, and go to state 34 T_STATIC shift, and go to state 35 T_CONST shift, and go to state 36 T_RETURN shift, and go to state 37 T_GLOBAL shift, and go to state 38 T_NEW shift, and go to state 39 T_THROW shift, and go to state 40 T_TRY shift, and go to state 41 T_PRINT shift, and go to state 42 T_ECHO shift, and go to state 43 T_CLONE shift, and go to state 44 T_USE shift, and go to state 45 "integral number" shift, and go to state 46 "real number" shift, and go to state 47 T_STRING shift, and go to state 48 T_VARIABLE shift, and go to state 49 "++ (T_INC)" shift, and go to state 50 "-- (T_DEC)" shift, and go to state 51 "(int) (T_INT_CAST)" shift, and go to state 52 "(double) (T_DOUBLE_CAST)" shift, and go to state 53 "(string) (T_STRING_CAST)" shift, and go to state 54 "(array) (T_ARRAY_CAST)" shift, and go to state 55 "(object) (T_OBJECT_CAST)" shift, and go to state 56 "(bool) (T_BOOL_CAST)" shift, and go to state 57 "(unset) (T_UNSET_CAST)" shift, and go to state 58 '$' shift, and go to state 59 '{' shift, and go to state 60 '(' shift, and go to state 61 '-' shift, and go to state 62 '+' shift, and go to state 63 '~' shift, and go to state 64 '@' shift, and go to state 65 '&' shift, and go to state 66 '!' shift, and go to state 67 T_WHITESPACE [reduce using rule 128 (decl_spec_seq)] T_COMMENT [reduce using rule 128 (decl_spec_seq)] T_FUNCTION reduce using rule 128 (decl_spec_seq) T_VAR [reduce using rule 128 (decl_spec_seq)] T_PUBLIC [reduce using rule 128 (decl_spec_seq)] T_PRIVATE [reduce using rule 128 (decl_spec_seq)] T_STATIC [reduce using rule 128 (decl_spec_seq)] T_CONST [reduce using rule 128 (decl_spec_seq)] T_GLOBAL [reduce using rule 128 (decl_spec_seq)] $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 68 literal_value go to state 69 variable_variable go to state 70 name_or_variable go to state 71 qualified_name_expr go to state 72 object_constructor go to state 73 primary_expr go to state 74 postfix_expr go to state 75 cast_operator go to state 76 unary_expr go to state 77 instanceof_expr go to state 78 logical_not_expr go to state 79 multiplicative_expr go to state 80 additive_expr go to state 81 bitwise_shift_expr go to state 82 relational_expr go to state 83 bitwise_and_expr go to state 84 bitwise_xor_expr go to state 85 bitwise_or_expr go to state 86 boolean_and_expr go to state 87 boolean_or_expr go to state 88 conditional_expression go to state 89 assignament_expression go to state 90 logical_and_expression go to state 91 logical_xor_expression go to state 92 logical_or_expression go to state 93 array_key_val_expression go to state 94 expr go to state 95 decl_spec go to state 96 plain_decl_spec_seq go to state 97 decl_spec_seq go to state 98 statement_delimiter go to state 99 empty_statement go to state 100 block_statement go to state 101 expr_statement go to state 102 decl_statement go to state 103 command_statement_name go to state 104 command_statement go to state 105 if_branch go to state 106 if_statement go to state 107 case_statement go to state 108 default_statetement go to state 109 break_statement go to state 110 continue_statement go to state 111 switch_statement go to state 112 label_statement go to state 113 goto_statement go to state 114 for_statement go to state 115 foreach_statement go to state 116 while_statement go to state 117 do_while_statement go to state 118 try_statement go to state 119 function_decl_statement go to state 120 class_key go to state 121 class_declaration go to state 122 statement go to state 463 state 460 168 catch_clause: T_CATCH t_comment_or_whitespaces '(' t_comment_or_whitespaces qualified_name_expr t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces . ')' t_comment_or_whitespaces block_statement ')' shift, and go to state 464 state 461 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . [T_CLOSE_TAG, '{', ';'] 6 | . plain_comment_or_whitespace 132 statement_delimiter: . t_comment_or_whitespaces plain_statement_delimiter 172 function_body_or_semicolon: . t_comment_or_whitespaces block_statement 173 | . statement_delimiter 174 function_decl_statement: decl_spec_seq t_comment_or_whitespaces T_FUNCTION t_comment_or_whitespaces qualified_name_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces t_comment_or_whitespaces ')' . function_body_or_semicolon T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 465 statement_delimiter go to state 466 function_body_or_semicolon go to state 467 state 462 164 for_statement: T_FOR t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces expr_statement t_comment_or_whitespaces ')' t_comment_or_whitespaces statement . $default reduce using rule 164 (for_statement) state 463 165 foreach_statement: T_FOREACH t_comment_or_whitespaces '(' t_comment_or_whitespaces expr t_comment_or_whitespaces T_AS t_comment_or_whitespaces expr t_comment_or_whitespaces ')' t_comment_or_whitespaces statement . $default reduce using rule 165 (foreach_statement) state 464 1 t_comment_or_whitespace: . T_WHITESPACE 2 | . T_COMMENT 3 plain_comment_or_whitespace: . t_comment_or_whitespace 4 | . plain_comment_or_whitespace t_comment_or_whitespace 5 t_comment_or_whitespaces: . ['{'] 6 | . plain_comment_or_whitespace 168 catch_clause: T_CATCH t_comment_or_whitespaces '(' t_comment_or_whitespaces qualified_name_expr t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces ')' . t_comment_or_whitespaces block_statement T_WHITESPACE shift, and go to state 1 T_COMMENT shift, and go to state 2 $default reduce using rule 5 (t_comment_or_whitespaces) t_comment_or_whitespace go to state 3 plain_comment_or_whitespace go to state 4 t_comment_or_whitespaces go to state 468 state 465 130 plain_statement_delimiter: . ';' 131 | . T_CLOSE_TAG 132 statement_delimiter: t_comment_or_whitespaces . plain_statement_delimiter 134 block_statement: . '{' statement_seq t_comment_or_whitespaces '}' 135 | . '{' t_comment_or_whitespaces '}' 172 function_body_or_semicolon: t_comment_or_whitespaces . block_statement T_CLOSE_TAG shift, and go to state 154 '{' shift, and go to state 200 ';' shift, and go to state 155 plain_statement_delimiter go to state 156 block_statement go to state 469 state 466 173 function_body_or_semicolon: statement_delimiter . $default reduce using rule 173 (function_body_or_semicolon) state 467 174 function_decl_statement: decl_spec_seq t_comment_or_whitespaces T_FUNCTION t_comment_or_whitespaces qualified_name_expr t_comment_or_whitespaces '(' t_comment_or_whitespaces expr_list t_comment_or_whitespaces t_comment_or_whitespaces ')' function_body_or_semicolon . $default reduce using rule 174 (function_decl_statement) state 468 134 block_statement: . '{' statement_seq t_comment_or_whitespaces '}' 135 | . '{' t_comment_or_whitespaces '}' 168 catch_clause: T_CATCH t_comment_or_whitespaces '(' t_comment_or_whitespaces qualified_name_expr t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces ')' t_comment_or_whitespaces . block_statement '{' shift, and go to state 200 block_statement go to state 470 state 469 172 function_body_or_semicolon: t_comment_or_whitespaces block_statement . $default reduce using rule 172 (function_body_or_semicolon) state 470 168 catch_clause: T_CATCH t_comment_or_whitespaces '(' t_comment_or_whitespaces qualified_name_expr t_comment_or_whitespaces name_or_variable t_comment_or_whitespaces ')' t_comment_or_whitespaces block_statement . $default reduce using rule 168 (catch_clause)