phpparser.exp 37.1 KB
Newer Older
1 2 3 4 5 6
File "phpparser.mly", line 37, characters 7-14:
Warning: the token T_ARRAY is unused.
File "phpparser.mly", line 38, characters 57-67:
Warning: the token T_CONTINUE is unused.
File "phpparser.mly", line 37, characters 36-44:
Warning: the token T_OBJECT is unused.
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240
Grammar has 76 nonterminal symbols, among which 1 start symbols.
Grammar has 95 terminal symbols.
Grammar has 181 productions.
nullable(variable_declaration) = false
nullable(variable) = false
nullable(unary_expression) = false
nullable(try_catch_statement) = false
nullable(throw_statement) = false
nullable(ternary_choice_expression) = false
nullable(switch_statement) = false
nullable(switch_item_sepa) = false
nullable(switch_item_list) = true
nullable(switch_default) = false
nullable(switch_case) = false
nullable(static_reference_chain_noiv) = false
nullable(statement_no_unmatched_if) = false
nullable(statement_list) = true
nullable(statement) = false
nullable(single_php_source_file_item_list) = true
nullable(single_php_source_file) = false
nullable(simple_statement) = false
nullable(shift_expression) = false
nullable(return_statement) = false
nullable(rarrow_chain) = true
nullable(predefined_type) = false
nullable(object_member_expression_noiv) = false
nullable(nonempty_rarrow_chain) = false
nullable(nonempty_formal_argument_list_with_defaults) = false
nullable(nonempty_formal_argument_list) = false
nullable(nonempty_catch_list) = false
nullable(new_expression_noiv) = false
nullable(method_definition) = false
nullable(lvalue_novariable) = false
nullable(logical_xor_expression_weak) = false
nullable(logical_or_expression_weak) = false
nullable(logical_or_expression_strong) = false
nullable(logical_not_expression) = false
nullable(logical_and_expression_weak) = false
nullable(logical_and_expression_strong) = false
nullable(literal) = false
nullable(instanceof_expression) = false
nullable(if_statement_unmatched) = false
nullable(if_statement_matched) = false
nullable(identifier_variable) = false
nullable(identifier) = false
nullable(function_definition) = false
nullable(function_call_statement) = false
nullable(function_call_expression_basic) = false
nullable(function_call_expression) = false
nullable(formal_argument_with_default) = false
nullable(formal_argument_list) = true
nullable(formal_argument) = false
nullable(field_definition) = false
nullable(extends_clause) = true
nullable(expression_list_suffx) = true
nullable(expression_list) = true
nullable(expression) = false
nullable(crement_expression) = false
nullable(constant_literal) = false
nullable(compound_statement_no_unmatched_if) = false
nullable(comparison_expression_weak) = false
nullable(comparison_expression) = false
nullable(class_item_visibility) = true
nullable(class_item_list) = true
nullable(class_definition) = false
nullable(catch) = false
nullable(break_statement) = false
nullable(block_statement) = false
nullable(bitwise_xor_expression) = false
nullable(bitwise_or_expression) = false
nullable(bitwise_and_expression) = false
nullable(atomic_expression_noiv) = false
nullable(assignment_statement) = false
nullable(assignment_expression) = false
nullable(array_expression_noiv) = false
nullable(array_expression) = false
nullable(arithmetic_string_expression) = false
nullable(arithmetic_expression) = false
nullable(abstract_clause) = true
first(variable_declaration) = T_DOLLAR
first(variable) = T_DOLLAR
first(unary_expression) = T_TILDE T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_PLUS_2 T_PLUS T_PARENT T_NULL T_NEW T_MINUS_2 T_MINUS T_LPAREN T_INT_LITERAL T_IDENTIFIER T_FLOAT_LITERAL T_DOLLAR
first(try_catch_statement) = T_TRY
first(throw_statement) = T_THROW
first(ternary_choice_expression) = T_TILDE T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_PLUS_2 T_PLUS T_PARENT T_NULL T_NEW T_MINUS_2 T_MINUS T_LPAREN T_INT_LITERAL T_IDENTIFIER T_FLOAT_LITERAL T_EXCLAMATION T_DOLLAR
first(switch_statement) = T_SWITCH
first(switch_item_sepa) = T_SEMICOLON T_COLON
first(switch_item_list) = T_DEFAULT T_CASE
first(switch_default) = T_DEFAULT
first(switch_case) = T_CASE
first(static_reference_chain_noiv) = T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_PARENT T_NULL T_NEW T_LPAREN T_INT_LITERAL T_IDENTIFIER T_FLOAT_LITERAL T_DOLLAR
first(statement_no_unmatched_if) = T_TRY T_THROW T_SWITCH T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_RETURN T_PARENT T_NULL T_NEW T_LPAREN T_LBRACC T_INT_LITERAL T_IF T_IDENTIFIER T_FLOAT_LITERAL T_DOLLAR T_BREAK
first(statement_list) = T_TRY T_THROW T_SWITCH T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_RETURN T_PARENT T_NULL T_NEW T_LPAREN T_LBRACC T_INT_LITERAL T_IF T_IDENTIFIER T_FLOAT_LITERAL T_DOLLAR T_BREAK
first(statement) = T_TRY T_THROW T_SWITCH T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_RETURN T_PARENT T_NULL T_NEW T_LPAREN T_LBRACC T_INT_LITERAL T_IF T_IDENTIFIER T_FLOAT_LITERAL T_DOLLAR T_BREAK
first(single_php_source_file_item_list) = T_TRY T_THROW T_SWITCH T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_RETURN T_PARENT T_NULL T_NEW T_LPAREN T_LBRACC T_INT_LITERAL T_IF T_IDENTIFIER T_FUNCTION T_FLOAT_LITERAL T_DOLLAR T_CLASS T_BREAK T_ABSTRACT
first(single_php_source_file) = T_PHPSL
first(simple_statement) = T_THROW T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_RETURN T_PARENT T_NULL T_NEW T_LPAREN T_INT_LITERAL T_IDENTIFIER T_FLOAT_LITERAL T_DOLLAR T_BREAK
first(shift_expression) = T_TILDE T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_PLUS_2 T_PLUS T_PARENT T_NULL T_NEW T_MINUS_2 T_MINUS T_LPAREN T_INT_LITERAL T_IDENTIFIER T_FLOAT_LITERAL T_EXCLAMATION T_DOLLAR
first(return_statement) = T_RETURN
first(rarrow_chain) = T_RARROW
first(predefined_type) = T_STRING T_INT T_FLOAT T_BOOL
first(object_member_expression_noiv) = T_STRING_LITERAL_S T_STRING_LITERAL_D T_NULL T_NEW T_LPAREN T_INT_LITERAL T_FLOAT_LITERAL T_DOLLAR
first(nonempty_rarrow_chain) = T_RARROW
first(nonempty_formal_argument_list_with_defaults) = T_IDENTIFIER T_DOLLAR
first(nonempty_formal_argument_list) = T_IDENTIFIER T_DOLLAR
first(nonempty_catch_list) = T_CATCH
first(new_expression_noiv) = T_STRING_LITERAL_S T_STRING_LITERAL_D T_NULL T_NEW T_LPAREN T_INT_LITERAL T_FLOAT_LITERAL
first(method_definition) = T_STATIC T_PUBLIC T_PROTECTED T_PRIVATE T_FUNCTION
first(lvalue_novariable) = T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_PARENT T_NULL T_NEW T_LPAREN T_INT_LITERAL T_IDENTIFIER T_FLOAT_LITERAL T_DOLLAR
first(logical_xor_expression_weak) = T_TILDE T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_PLUS_2 T_PLUS T_PARENT T_NULL T_NEW T_MINUS_2 T_MINUS T_LPAREN T_INT_LITERAL T_IDENTIFIER T_FLOAT_LITERAL T_EXCLAMATION T_DOLLAR
first(logical_or_expression_weak) = T_TILDE T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_PLUS_2 T_PLUS T_PARENT T_NULL T_NEW T_MINUS_2 T_MINUS T_LPAREN T_INT_LITERAL T_IDENTIFIER T_FLOAT_LITERAL T_EXCLAMATION T_DOLLAR
first(logical_or_expression_strong) = T_TILDE T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_PLUS_2 T_PLUS T_PARENT T_NULL T_NEW T_MINUS_2 T_MINUS T_LPAREN T_INT_LITERAL T_IDENTIFIER T_FLOAT_LITERAL T_EXCLAMATION T_DOLLAR
first(logical_not_expression) = T_TILDE T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_PLUS_2 T_PLUS T_PARENT T_NULL T_NEW T_MINUS_2 T_MINUS T_LPAREN T_INT_LITERAL T_IDENTIFIER T_FLOAT_LITERAL T_EXCLAMATION T_DOLLAR
first(logical_and_expression_weak) = T_TILDE T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_PLUS_2 T_PLUS T_PARENT T_NULL T_NEW T_MINUS_2 T_MINUS T_LPAREN T_INT_LITERAL T_IDENTIFIER T_FLOAT_LITERAL T_EXCLAMATION T_DOLLAR
first(logical_and_expression_strong) = T_TILDE T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_PLUS_2 T_PLUS T_PARENT T_NULL T_NEW T_MINUS_2 T_MINUS T_LPAREN T_INT_LITERAL T_IDENTIFIER T_FLOAT_LITERAL T_EXCLAMATION T_DOLLAR
first(literal) = T_STRING_LITERAL_S T_STRING_LITERAL_D T_NULL T_INT_LITERAL T_FLOAT_LITERAL
first(instanceof_expression) = T_TILDE T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_PLUS_2 T_PLUS T_PARENT T_NULL T_NEW T_MINUS_2 T_MINUS T_LPAREN T_INT_LITERAL T_IDENTIFIER T_FLOAT_LITERAL T_DOLLAR
first(if_statement_unmatched) = T_IF
first(if_statement_matched) = T_IF
first(identifier_variable) = T_IDENTIFIER T_DOLLAR
first(identifier) = T_IDENTIFIER
first(function_definition) = T_FUNCTION
first(function_call_statement) = T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_PARENT T_NULL T_NEW T_LPAREN T_INT_LITERAL T_IDENTIFIER T_FLOAT_LITERAL T_DOLLAR
first(function_call_expression_basic) = T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_PARENT T_NULL T_NEW T_LPAREN T_INT_LITERAL T_IDENTIFIER T_FLOAT_LITERAL T_DOLLAR
first(function_call_expression) = T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_PARENT T_NULL T_NEW T_LPAREN T_INT_LITERAL T_IDENTIFIER T_FLOAT_LITERAL T_DOLLAR
first(formal_argument_with_default) = T_IDENTIFIER T_DOLLAR
first(formal_argument_list) = T_IDENTIFIER T_DOLLAR
first(formal_argument) = T_IDENTIFIER T_DOLLAR
first(field_definition) = T_STATIC T_PUBLIC T_PROTECTED T_PRIVATE T_CONST
first(extends_clause) = T_EXTENDS
first(expression_list_suffx) = T_COMMA
first(expression_list) = T_TILDE T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_PLUS_2 T_PLUS T_PARENT T_NULL T_NEW T_MINUS_2 T_MINUS T_LPAREN T_INT_LITERAL T_IDENTIFIER T_FLOAT_LITERAL T_EXCLAMATION T_DOLLAR
first(expression) = T_TILDE T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_PLUS_2 T_PLUS T_PARENT T_NULL T_NEW T_MINUS_2 T_MINUS T_LPAREN T_INT_LITERAL T_IDENTIFIER T_FLOAT_LITERAL T_EXCLAMATION T_DOLLAR
first(crement_expression) = T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_PLUS_2 T_PARENT T_NULL T_NEW T_MINUS_2 T_LPAREN T_INT_LITERAL T_IDENTIFIER T_FLOAT_LITERAL T_DOLLAR
first(constant_literal) = T_STRING_LITERAL_S T_NULL T_INT_LITERAL T_FLOAT_LITERAL
first(compound_statement_no_unmatched_if) = T_TRY T_SWITCH T_LBRACC T_IF
first(comparison_expression_weak) = T_TILDE T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_PLUS_2 T_PLUS T_PARENT T_NULL T_NEW T_MINUS_2 T_MINUS T_LPAREN T_INT_LITERAL T_IDENTIFIER T_FLOAT_LITERAL T_EXCLAMATION T_DOLLAR
first(comparison_expression) = T_TILDE T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_PLUS_2 T_PLUS T_PARENT T_NULL T_NEW T_MINUS_2 T_MINUS T_LPAREN T_INT_LITERAL T_IDENTIFIER T_FLOAT_LITERAL T_EXCLAMATION T_DOLLAR
first(class_item_visibility) = T_PUBLIC T_PROTECTED T_PRIVATE
first(class_item_list) = T_STATIC T_PUBLIC T_PROTECTED T_PRIVATE T_FUNCTION T_CONST
first(class_definition) = T_CLASS T_ABSTRACT
first(catch) = T_CATCH
first(break_statement) = T_BREAK
first(block_statement) = T_LBRACC
first(bitwise_xor_expression) = T_TILDE T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_PLUS_2 T_PLUS T_PARENT T_NULL T_NEW T_MINUS_2 T_MINUS T_LPAREN T_INT_LITERAL T_IDENTIFIER T_FLOAT_LITERAL T_EXCLAMATION T_DOLLAR
first(bitwise_or_expression) = T_TILDE T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_PLUS_2 T_PLUS T_PARENT T_NULL T_NEW T_MINUS_2 T_MINUS T_LPAREN T_INT_LITERAL T_IDENTIFIER T_FLOAT_LITERAL T_EXCLAMATION T_DOLLAR
first(bitwise_and_expression) = T_TILDE T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_PLUS_2 T_PLUS T_PARENT T_NULL T_NEW T_MINUS_2 T_MINUS T_LPAREN T_INT_LITERAL T_IDENTIFIER T_FLOAT_LITERAL T_EXCLAMATION T_DOLLAR
first(atomic_expression_noiv) = T_STRING_LITERAL_S T_STRING_LITERAL_D T_NULL T_LPAREN T_INT_LITERAL T_FLOAT_LITERAL
first(assignment_statement) = T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_PARENT T_NULL T_NEW T_LPAREN T_INT_LITERAL T_IDENTIFIER T_FLOAT_LITERAL T_DOLLAR
first(assignment_expression) = T_TILDE T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_PLUS_2 T_PLUS T_PARENT T_NULL T_NEW T_MINUS_2 T_MINUS T_LPAREN T_INT_LITERAL T_IDENTIFIER T_FLOAT_LITERAL T_EXCLAMATION T_DOLLAR
first(array_expression_noiv) = T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_PARENT T_NULL T_NEW T_LPAREN T_INT_LITERAL T_IDENTIFIER T_FLOAT_LITERAL T_DOLLAR
first(array_expression) = T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_PARENT T_NULL T_NEW T_LPAREN T_INT_LITERAL T_IDENTIFIER T_FLOAT_LITERAL T_DOLLAR
first(arithmetic_string_expression) = T_TILDE T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_PLUS_2 T_PLUS T_PARENT T_NULL T_NEW T_MINUS_2 T_MINUS T_LPAREN T_INT_LITERAL T_IDENTIFIER T_FLOAT_LITERAL T_EXCLAMATION T_DOLLAR
first(arithmetic_expression) = T_TILDE T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_PLUS_2 T_PLUS T_PARENT T_NULL T_NEW T_MINUS_2 T_MINUS T_LPAREN T_INT_LITERAL T_IDENTIFIER T_FLOAT_LITERAL T_EXCLAMATION T_DOLLAR
first(abstract_clause) = T_ABSTRACT
follow(variable_declaration) = T_TRY T_THROW T_SWITCH T_STRING_LITERAL_S T_STRING_LITERAL_D T_STATIC T_SELF T_RETURN T_RBRACC T_PUBLIC T_PROTECTED T_PRIVATE T_PHPE T_PARENT T_NULL T_NEW T_LPAREN T_LBRACC T_INT_LITERAL T_IF T_IDENTIFIER T_FUNCTION T_FLOAT_LITERAL T_ELSE T_DOLLAR T_DEFAULT T_CONST T_CLASS T_CASE T_BREAK T_ABSTRACT
follow(variable) = T_XOR T_SLASH_EQ T_SLASH T_SEMICOLON T_RPAREN T_RBRACS T_RARROW T_QUESTION T_PLUS_EQ T_PLUS_2 T_PLUS T_PERCENT_EQ T_PERCENT T_OR T_MINUS_EQ T_MINUS_2 T_MINUS T_LT_LT_EQ T_LT_LT T_LT_GT T_LT_EQ T_LT T_LPAREN T_LBRACS T_INSTANCEOF T_GT_GT_EQ T_GT_GT T_GT_EQ T_GT T_EXCL_EQ_EQ T_EXCL_EQ T_EQ_EQ_EQ T_EQ_EQ T_EQ T_DOT_EQ T_DOT T_COMMA T_COLON T_CARET_EQ T_CARET T_BAR_EQ T_BAR_2 T_BAR T_ASTERISK_EQ T_ASTERISK T_AND T_AMPERSAND_EQ T_AMPERSAND_2 T_AMPERSAND
follow(unary_expression) = T_XOR T_SLASH_EQ T_SLASH T_SEMICOLON T_RPAREN T_RBRACS T_QUESTION T_PLUS_EQ T_PLUS T_PERCENT_EQ T_PERCENT T_OR T_MINUS_EQ T_MINUS T_LT_LT_EQ T_LT_LT T_LT_GT T_LT_EQ T_LT T_INSTANCEOF T_GT_GT_EQ T_GT_GT T_GT_EQ T_GT T_EXCL_EQ_EQ T_EXCL_EQ T_EQ_EQ_EQ T_EQ_EQ T_EQ T_DOT_EQ T_DOT T_COMMA T_COLON T_CARET_EQ T_CARET T_BAR_EQ T_BAR_2 T_BAR T_ASTERISK_EQ T_ASTERISK T_AND T_AMPERSAND_EQ T_AMPERSAND_2 T_AMPERSAND
follow(try_catch_statement) = T_TRY T_THROW T_SWITCH T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_RETURN T_RBRACC T_PHPE T_PARENT T_NULL T_NEW T_LPAREN T_LBRACC T_INT_LITERAL T_IF T_IDENTIFIER T_FUNCTION T_FLOAT_LITERAL T_ELSE T_DOLLAR T_DEFAULT T_CLASS T_CASE T_BREAK T_ABSTRACT
follow(throw_statement) = T_TRY T_THROW T_SWITCH T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_RETURN T_RBRACC T_PHPE T_PARENT T_NULL T_NEW T_LPAREN T_LBRACC T_INT_LITERAL T_IF T_IDENTIFIER T_FUNCTION T_FLOAT_LITERAL T_ELSE T_DOLLAR T_DEFAULT T_CLASS T_CASE T_BREAK T_ABSTRACT
follow(ternary_choice_expression) = T_XOR T_SLASH_EQ T_SEMICOLON T_RPAREN T_RBRACS T_PLUS_EQ T_PERCENT_EQ T_OR T_MINUS_EQ T_LT_LT_EQ T_GT_GT_EQ T_EQ T_DOT_EQ T_COMMA T_COLON T_CARET_EQ T_BAR_EQ T_ASTERISK_EQ T_AND T_AMPERSAND_EQ
follow(switch_statement) = T_TRY T_THROW T_SWITCH T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_RETURN T_RBRACC T_PHPE T_PARENT T_NULL T_NEW T_LPAREN T_LBRACC T_INT_LITERAL T_IF T_IDENTIFIER T_FUNCTION T_FLOAT_LITERAL T_ELSE T_DOLLAR T_DEFAULT T_CLASS T_CASE T_BREAK T_ABSTRACT
follow(switch_item_sepa) = T_TRY T_THROW T_SWITCH T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_RETURN T_RBRACC T_PARENT T_NULL T_NEW T_LPAREN T_LBRACC T_INT_LITERAL T_IF T_IDENTIFIER T_FLOAT_LITERAL T_DOLLAR T_DEFAULT T_CASE T_BREAK
follow(switch_item_list) = T_RBRACC
follow(switch_default) = T_RBRACC
follow(switch_case) = T_RBRACC T_DEFAULT T_CASE
follow(static_reference_chain_noiv) = T_XOR T_SLASH_EQ T_SLASH T_SEMICOLON T_RPAREN T_RBRACS T_QUESTION T_PLUS_EQ T_PLUS_2 T_PLUS T_PERCENT_EQ T_PERCENT T_OR T_MINUS_EQ T_MINUS_2 T_MINUS T_LT_LT_EQ T_LT_LT T_LT_GT T_LT_EQ T_LT T_LPAREN T_LBRACS T_INSTANCEOF T_GT_GT_EQ T_GT_GT T_GT_EQ T_GT T_EXCL_EQ_EQ T_EXCL_EQ T_EQ_EQ_EQ T_EQ_EQ T_EQ T_DOT_EQ T_DOT T_COMMA T_COLON T_CARET_EQ T_CARET T_BAR_EQ T_BAR_2 T_BAR T_ASTERISK_EQ T_ASTERISK T_AND T_AMPERSAND_EQ T_AMPERSAND_2 T_AMPERSAND
follow(statement_no_unmatched_if) = T_TRY T_THROW T_SWITCH T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_RETURN T_RBRACC T_PHPE T_PARENT T_NULL T_NEW T_LPAREN T_LBRACC T_INT_LITERAL T_IF T_IDENTIFIER T_FUNCTION T_FLOAT_LITERAL T_ELSE T_DOLLAR T_DEFAULT T_CLASS T_CASE T_BREAK T_ABSTRACT
follow(statement_list) = T_RBRACC T_DEFAULT T_CASE
follow(statement) = T_TRY T_THROW T_SWITCH T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_RETURN T_RBRACC T_PHPE T_PARENT T_NULL T_NEW T_LPAREN T_LBRACC T_INT_LITERAL T_IF T_IDENTIFIER T_FUNCTION T_FLOAT_LITERAL T_DOLLAR T_DEFAULT T_CLASS T_CASE T_BREAK T_ABSTRACT
follow(single_php_source_file_item_list) = T_PHPE
follow(single_php_source_file) = #
follow(simple_statement) = T_TRY T_THROW T_SWITCH T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_RETURN T_RBRACC T_PHPE T_PARENT T_NULL T_NEW T_LPAREN T_LBRACC T_INT_LITERAL T_IF T_IDENTIFIER T_FUNCTION T_FLOAT_LITERAL T_ELSE T_DOLLAR T_DEFAULT T_CLASS T_CASE T_BREAK T_ABSTRACT
follow(shift_expression) = T_XOR T_SLASH_EQ T_SEMICOLON T_RPAREN T_RBRACS T_QUESTION T_PLUS_EQ T_PERCENT_EQ T_OR T_MINUS_EQ T_LT_LT_EQ T_LT_LT T_LT_GT T_LT_EQ T_LT T_GT_GT_EQ T_GT_GT T_GT_EQ T_GT T_EXCL_EQ_EQ T_EXCL_EQ T_EQ_EQ_EQ T_EQ_EQ T_EQ T_DOT_EQ T_COMMA T_COLON T_CARET_EQ T_CARET T_BAR_EQ T_BAR_2 T_BAR T_ASTERISK_EQ T_AND T_AMPERSAND_EQ T_AMPERSAND_2 T_AMPERSAND
follow(return_statement) = T_TRY T_THROW T_SWITCH T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_RETURN T_RBRACC T_PHPE T_PARENT T_NULL T_NEW T_LPAREN T_LBRACC T_INT_LITERAL T_IF T_IDENTIFIER T_FUNCTION T_FLOAT_LITERAL T_ELSE T_DOLLAR T_DEFAULT T_CLASS T_CASE T_BREAK T_ABSTRACT
follow(rarrow_chain) = T_XOR T_SLASH_EQ T_SLASH T_SEMICOLON T_RPAREN T_RBRACS T_RARROW T_QUESTION T_PLUS_EQ T_PLUS_2 T_PLUS T_PERCENT_EQ T_PERCENT T_OR T_MINUS_EQ T_MINUS_2 T_MINUS T_LT_LT_EQ T_LT_LT T_LT_GT T_LT_EQ T_LT T_LPAREN T_LBRACS T_INSTANCEOF T_GT_GT_EQ T_GT_GT T_GT_EQ T_GT T_EXCL_EQ_EQ T_EXCL_EQ T_EQ_EQ_EQ T_EQ_EQ T_EQ T_DOT_EQ T_DOT T_COMMA T_COLON T_CARET_EQ T_CARET T_BAR_EQ T_BAR_2 T_BAR T_ASTERISK_EQ T_ASTERISK T_AND T_AMPERSAND_EQ T_AMPERSAND_2 T_AMPERSAND
follow(predefined_type) = T_RPAREN
follow(object_member_expression_noiv) = T_XOR T_SLASH_EQ T_SLASH T_SEMICOLON T_RPAREN T_RBRACS T_QUESTION T_PLUS_EQ T_PLUS_2 T_PLUS T_PERCENT_EQ T_PERCENT T_OR T_MINUS_EQ T_MINUS_2 T_MINUS T_LT_LT_EQ T_LT_LT T_LT_GT T_LT_EQ T_LT T_LPAREN T_LBRACS T_INSTANCEOF T_GT_GT_EQ T_GT_GT T_GT_EQ T_GT T_EXCL_EQ_EQ T_EXCL_EQ T_EQ_EQ_EQ T_EQ_EQ T_EQ T_DOT_EQ T_DOT T_COMMA T_COLON T_CARET_EQ T_CARET T_BAR_EQ T_BAR_2 T_BAR T_ASTERISK_EQ T_ASTERISK T_AND T_AMPERSAND_EQ T_AMPERSAND_2 T_AMPERSAND
follow(nonempty_rarrow_chain) = T_XOR T_SLASH_EQ T_SLASH T_SEMICOLON T_RPAREN T_RBRACS T_QUESTION T_PLUS_EQ T_PLUS_2 T_PLUS T_PERCENT_EQ T_PERCENT T_OR T_MINUS_EQ T_MINUS_2 T_MINUS T_LT_LT_EQ T_LT_LT T_LT_GT T_LT_EQ T_LT T_LPAREN T_LBRACS T_INSTANCEOF T_GT_GT_EQ T_GT_GT T_GT_EQ T_GT T_EXCL_EQ_EQ T_EXCL_EQ T_EQ_EQ_EQ T_EQ_EQ T_EQ T_DOT_EQ T_DOT T_COMMA T_COLON T_CARET_EQ T_CARET T_BAR_EQ T_BAR_2 T_BAR T_ASTERISK_EQ T_ASTERISK T_AND T_AMPERSAND_EQ T_AMPERSAND_2 T_AMPERSAND
follow(nonempty_formal_argument_list_with_defaults) = T_RPAREN
follow(nonempty_formal_argument_list) = T_RPAREN
follow(nonempty_catch_list) = T_TRY T_THROW T_SWITCH T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_RETURN T_RBRACC T_PHPE T_PARENT T_NULL T_NEW T_LPAREN T_LBRACC T_INT_LITERAL T_IF T_IDENTIFIER T_FUNCTION T_FLOAT_LITERAL T_ELSE T_DOLLAR T_DEFAULT T_CLASS T_CASE T_BREAK T_ABSTRACT
follow(new_expression_noiv) = T_XOR T_SLASH_EQ T_SLASH T_SEMICOLON T_RPAREN T_RBRACS T_RARROW T_QUESTION T_PLUS_EQ T_PLUS_2 T_PLUS T_PERCENT_EQ T_PERCENT T_OR T_MINUS_EQ T_MINUS_2 T_MINUS T_LT_LT_EQ T_LT_LT T_LT_GT T_LT_EQ T_LT T_LPAREN T_LBRACS T_INSTANCEOF T_GT_GT_EQ T_GT_GT T_GT_EQ T_GT T_EXCL_EQ_EQ T_EXCL_EQ T_EQ_EQ_EQ T_EQ_EQ T_EQ T_DOT_EQ T_DOT T_COMMA T_COLON T_CARET_EQ T_CARET T_BAR_EQ T_BAR_2 T_BAR T_ASTERISK_EQ T_ASTERISK T_AND T_AMPERSAND_EQ T_AMPERSAND_2 T_AMPERSAND
follow(method_definition) = T_STATIC T_RBRACC T_PUBLIC T_PROTECTED T_PRIVATE T_FUNCTION T_CONST
follow(lvalue_novariable) = T_EQ
follow(logical_xor_expression_weak) = T_XOR T_SEMICOLON T_RPAREN T_RBRACS T_OR T_COMMA T_COLON
follow(logical_or_expression_weak) = T_SEMICOLON T_RPAREN T_RBRACS T_OR T_COMMA T_COLON
follow(logical_or_expression_strong) = T_XOR T_SLASH_EQ T_SEMICOLON T_RPAREN T_RBRACS T_QUESTION T_PLUS_EQ T_PERCENT_EQ T_OR T_MINUS_EQ T_LT_LT_EQ T_GT_GT_EQ T_EQ T_DOT_EQ T_COMMA T_COLON T_CARET_EQ T_BAR_EQ T_BAR_2 T_ASTERISK_EQ T_AND T_AMPERSAND_EQ
follow(logical_not_expression) = T_XOR T_SLASH_EQ T_SLASH T_SEMICOLON T_RPAREN T_RBRACS T_QUESTION T_PLUS_EQ T_PLUS T_PERCENT_EQ T_PERCENT T_OR T_MINUS_EQ T_MINUS T_LT_LT_EQ T_LT_LT T_LT_GT T_LT_EQ T_LT T_GT_GT_EQ T_GT_GT T_GT_EQ T_GT T_EXCL_EQ_EQ T_EXCL_EQ T_EQ_EQ_EQ T_EQ_EQ T_EQ T_DOT_EQ T_DOT T_COMMA T_COLON T_CARET_EQ T_CARET T_BAR_EQ T_BAR_2 T_BAR T_ASTERISK_EQ T_ASTERISK T_AND T_AMPERSAND_EQ T_AMPERSAND_2 T_AMPERSAND
follow(logical_and_expression_weak) = T_XOR T_SEMICOLON T_RPAREN T_RBRACS T_OR T_COMMA T_COLON T_AND
follow(logical_and_expression_strong) = T_XOR T_SLASH_EQ T_SEMICOLON T_RPAREN T_RBRACS T_QUESTION T_PLUS_EQ T_PERCENT_EQ T_OR T_MINUS_EQ T_LT_LT_EQ T_GT_GT_EQ T_EQ T_DOT_EQ T_COMMA T_COLON T_CARET_EQ T_BAR_EQ T_BAR_2 T_ASTERISK_EQ T_AND T_AMPERSAND_EQ T_AMPERSAND_2
follow(literal) = T_XOR T_SLASH_EQ T_SLASH T_SEMICOLON T_RPAREN T_RBRACS T_RARROW T_QUESTION T_PLUS_EQ T_PLUS_2 T_PLUS T_PERCENT_EQ T_PERCENT T_OR T_MINUS_EQ T_MINUS_2 T_MINUS T_LT_LT_EQ T_LT_LT T_LT_GT T_LT_EQ T_LT T_LPAREN T_LBRACS T_INSTANCEOF T_GT_GT_EQ T_GT_GT T_GT_EQ T_GT T_EXCL_EQ_EQ T_EXCL_EQ T_EQ_EQ_EQ T_EQ_EQ T_EQ T_DOT_EQ T_DOT T_COMMA T_COLON T_CARET_EQ T_CARET T_BAR_EQ T_BAR_2 T_BAR T_ASTERISK_EQ T_ASTERISK T_AND T_AMPERSAND_EQ T_AMPERSAND_2 T_AMPERSAND
follow(instanceof_expression) = T_XOR T_SLASH_EQ T_SLASH T_SEMICOLON T_RPAREN T_RBRACS T_QUESTION T_PLUS_EQ T_PLUS T_PERCENT_EQ T_PERCENT T_OR T_MINUS_EQ T_MINUS T_LT_LT_EQ T_LT_LT T_LT_GT T_LT_EQ T_LT T_GT_GT_EQ T_GT_GT T_GT_EQ T_GT T_EXCL_EQ_EQ T_EXCL_EQ T_EQ_EQ_EQ T_EQ_EQ T_EQ T_DOT_EQ T_DOT T_COMMA T_COLON T_CARET_EQ T_CARET T_BAR_EQ T_BAR_2 T_BAR T_ASTERISK_EQ T_ASTERISK T_AND T_AMPERSAND_EQ T_AMPERSAND_2 T_AMPERSAND
follow(if_statement_unmatched) = T_TRY T_THROW T_SWITCH T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_RETURN T_RBRACC T_PHPE T_PARENT T_NULL T_NEW T_LPAREN T_LBRACC T_INT_LITERAL T_IF T_IDENTIFIER T_FUNCTION T_FLOAT_LITERAL T_DOLLAR T_DEFAULT T_CLASS T_CASE T_BREAK T_ABSTRACT
follow(if_statement_matched) = T_TRY T_THROW T_SWITCH T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_RETURN T_RBRACC T_PHPE T_PARENT T_NULL T_NEW T_LPAREN T_LBRACC T_INT_LITERAL T_IF T_IDENTIFIER T_FUNCTION T_FLOAT_LITERAL T_ELSE T_DOLLAR T_DEFAULT T_CLASS T_CASE T_BREAK T_ABSTRACT
follow(identifier_variable) = T_XOR T_SLASH_EQ T_SLASH T_SEMICOLON T_RPAREN T_RBRACS T_RARROW T_QUESTION T_PLUS_EQ T_PLUS_2 T_PLUS T_PERCENT_EQ T_PERCENT T_OR T_MINUS_EQ T_MINUS_2 T_MINUS T_LT_LT_EQ T_LT_LT T_LT_GT T_LT_EQ T_LT T_LPAREN T_LBRACS T_INSTANCEOF T_GT_GT_EQ T_GT_GT T_GT_EQ T_GT T_EXCL_EQ_EQ T_EXCL_EQ T_EQ_EQ_EQ T_EQ_EQ T_EQ T_DOT_EQ T_DOT T_COMMA T_COLON T_CARET_EQ T_CARET T_BAR_EQ T_BAR_2 T_BAR T_ASTERISK_EQ T_ASTERISK T_AND T_AMPERSAND_EQ T_AMPERSAND_2 T_AMPERSAND
follow(identifier) = T_XOR T_SLASH_EQ T_SLASH T_SEMICOLON T_RPAREN T_RBRACS T_RARROW T_QUESTION T_PLUS_EQ T_PLUS_2 T_PLUS T_PERCENT_EQ T_PERCENT T_OR T_MINUS_EQ T_MINUS_2 T_MINUS T_LT_LT_EQ T_LT_LT T_LT_GT T_LT_EQ T_LT T_LPAREN T_LBRACS T_LBRACC T_INSTANCEOF T_GT_GT_EQ T_GT_GT T_GT_EQ T_GT T_EXTENDS T_EXCL_EQ_EQ T_EXCL_EQ T_EQ_EQ_EQ T_EQ_EQ T_EQ T_DOT_EQ T_DOT T_DOLLAR T_COMMA T_COLON_2 T_COLON T_CARET_EQ T_CARET T_BAR_EQ T_BAR_2 T_BAR T_ASTERISK_EQ T_ASTERISK T_AND T_AMPERSAND_EQ T_AMPERSAND_2 T_AMPERSAND
follow(function_definition) = T_TRY T_THROW T_SWITCH T_STRING_LITERAL_S T_STRING_LITERAL_D T_STATIC T_SELF T_RETURN T_RBRACC T_PUBLIC T_PROTECTED T_PRIVATE T_PHPE T_PARENT T_NULL T_NEW T_LPAREN T_LBRACC T_INT_LITERAL T_IF T_IDENTIFIER T_FUNCTION T_FLOAT_LITERAL T_DOLLAR T_CONST T_CLASS T_BREAK T_ABSTRACT
follow(function_call_statement) = T_TRY T_THROW T_SWITCH T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_RETURN T_RBRACC T_PHPE T_PARENT T_NULL T_NEW T_LPAREN T_LBRACC T_INT_LITERAL T_IF T_IDENTIFIER T_FUNCTION T_FLOAT_LITERAL T_ELSE T_DOLLAR T_DEFAULT T_CLASS T_CASE T_BREAK T_ABSTRACT
follow(function_call_expression_basic) = T_XOR T_SLASH_EQ T_SLASH T_SEMICOLON T_RPAREN T_RBRACS T_QUESTION T_PLUS_EQ T_PLUS_2 T_PLUS T_PERCENT_EQ T_PERCENT T_OR T_MINUS_EQ T_MINUS_2 T_MINUS T_LT_LT_EQ T_LT_LT T_LT_GT T_LT_EQ T_LT T_INSTANCEOF T_GT_GT_EQ T_GT_GT T_GT_EQ T_GT T_EXCL_EQ_EQ T_EXCL_EQ T_EQ_EQ_EQ T_EQ_EQ T_EQ T_DOT_EQ T_DOT T_COMMA T_COLON T_CARET_EQ T_CARET T_BAR_EQ T_BAR_2 T_BAR T_ASTERISK_EQ T_ASTERISK T_AND T_AMPERSAND_EQ T_AMPERSAND_2 T_AMPERSAND
follow(function_call_expression) = T_XOR T_SLASH_EQ T_SLASH T_SEMICOLON T_RPAREN T_RBRACS T_QUESTION T_PLUS_EQ T_PLUS_2 T_PLUS T_PERCENT_EQ T_PERCENT T_OR T_MINUS_EQ T_MINUS_2 T_MINUS T_LT_LT_EQ T_LT_LT T_LT_GT T_LT_EQ T_LT T_INSTANCEOF T_GT_GT_EQ T_GT_GT T_GT_EQ T_GT T_EXCL_EQ_EQ T_EXCL_EQ T_EQ_EQ_EQ T_EQ_EQ T_EQ T_DOT_EQ T_DOT T_COMMA T_COLON T_CARET_EQ T_CARET T_BAR_EQ T_BAR_2 T_BAR T_ASTERISK_EQ T_ASTERISK T_AND T_AMPERSAND_EQ T_AMPERSAND_2 T_AMPERSAND
follow(formal_argument_with_default) = T_RPAREN T_COMMA
follow(formal_argument_list) = T_RPAREN
follow(formal_argument) = T_RPAREN T_EQ T_COMMA
follow(field_definition) = T_STATIC T_RBRACC T_PUBLIC T_PROTECTED T_PRIVATE T_FUNCTION T_CONST
follow(extends_clause) = T_LBRACC
follow(expression_list_suffx) = T_RPAREN
follow(expression_list) = T_RPAREN
follow(expression) = T_SEMICOLON T_RPAREN T_RBRACS T_COMMA T_COLON
follow(crement_expression) = T_XOR T_SLASH_EQ T_SLASH T_SEMICOLON T_RPAREN T_RBRACS T_QUESTION T_PLUS_EQ T_PLUS T_PERCENT_EQ T_PERCENT T_OR T_MINUS_EQ T_MINUS T_LT_LT_EQ T_LT_LT T_LT_GT T_LT_EQ T_LT T_INSTANCEOF T_GT_GT_EQ T_GT_GT T_GT_EQ T_GT T_EXCL_EQ_EQ T_EXCL_EQ T_EQ_EQ_EQ T_EQ_EQ T_EQ T_DOT_EQ T_DOT T_COMMA T_COLON T_CARET_EQ T_CARET T_BAR_EQ T_BAR_2 T_BAR T_ASTERISK_EQ T_ASTERISK T_AND T_AMPERSAND_EQ T_AMPERSAND_2 T_AMPERSAND
follow(constant_literal) = T_XOR T_SLASH_EQ T_SLASH T_SEMICOLON T_RPAREN T_RBRACS T_RARROW T_QUESTION T_PLUS_EQ T_PLUS_2 T_PLUS T_PERCENT_EQ T_PERCENT T_OR T_MINUS_EQ T_MINUS_2 T_MINUS T_LT_LT_EQ T_LT_LT T_LT_GT T_LT_EQ T_LT T_LPAREN T_LBRACS T_INSTANCEOF T_GT_GT_EQ T_GT_GT T_GT_EQ T_GT T_EXCL_EQ_EQ T_EXCL_EQ T_EQ_EQ_EQ T_EQ_EQ T_EQ T_DOT_EQ T_DOT T_COMMA T_COLON T_CARET_EQ T_CARET T_BAR_EQ T_BAR_2 T_BAR T_ASTERISK_EQ T_ASTERISK T_AND T_AMPERSAND_EQ T_AMPERSAND_2 T_AMPERSAND
follow(compound_statement_no_unmatched_if) = T_TRY T_THROW T_SWITCH T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_RETURN T_RBRACC T_PHPE T_PARENT T_NULL T_NEW T_LPAREN T_LBRACC T_INT_LITERAL T_IF T_IDENTIFIER T_FUNCTION T_FLOAT_LITERAL T_ELSE T_DOLLAR T_DEFAULT T_CLASS T_CASE T_BREAK T_ABSTRACT
follow(comparison_expression_weak) = T_XOR T_SLASH_EQ T_SEMICOLON T_RPAREN T_RBRACS T_QUESTION T_PLUS_EQ T_PERCENT_EQ T_OR T_MINUS_EQ T_LT_LT_EQ T_GT_GT_EQ T_EQ T_DOT_EQ T_COMMA T_COLON T_CARET_EQ T_CARET T_BAR_EQ T_BAR_2 T_BAR T_ASTERISK_EQ T_AND T_AMPERSAND_EQ T_AMPERSAND_2 T_AMPERSAND
follow(comparison_expression) = T_XOR T_SLASH_EQ T_SEMICOLON T_RPAREN T_RBRACS T_QUESTION T_PLUS_EQ T_PERCENT_EQ T_OR T_MINUS_EQ T_LT_LT_EQ T_GT_GT_EQ T_EXCL_EQ_EQ T_EXCL_EQ T_EQ_EQ_EQ T_EQ_EQ T_EQ T_DOT_EQ T_COMMA T_COLON T_CARET_EQ T_CARET T_BAR_EQ T_BAR_2 T_BAR T_ASTERISK_EQ T_AND T_AMPERSAND_EQ T_AMPERSAND_2 T_AMPERSAND
follow(class_item_visibility) = T_STATIC T_FUNCTION T_CONST
follow(class_item_list) = T_RBRACC
follow(class_definition) = T_TRY T_THROW T_SWITCH T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_RETURN T_PHPE T_PARENT T_NULL T_NEW T_LPAREN T_LBRACC T_INT_LITERAL T_IF T_IDENTIFIER T_FUNCTION T_FLOAT_LITERAL T_DOLLAR T_CLASS T_BREAK T_ABSTRACT
follow(catch) = T_TRY T_THROW T_SWITCH T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_RETURN T_RBRACC T_PHPE T_PARENT T_NULL T_NEW T_LPAREN T_LBRACC T_INT_LITERAL T_IF T_IDENTIFIER T_FUNCTION T_FLOAT_LITERAL T_ELSE T_DOLLAR T_DEFAULT T_CLASS T_CATCH T_CASE T_BREAK T_ABSTRACT
follow(break_statement) = T_TRY T_THROW T_SWITCH T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_RETURN T_RBRACC T_PHPE T_PARENT T_NULL T_NEW T_LPAREN T_LBRACC T_INT_LITERAL T_IF T_IDENTIFIER T_FUNCTION T_FLOAT_LITERAL T_ELSE T_DOLLAR T_DEFAULT T_CLASS T_CASE T_BREAK T_ABSTRACT
follow(block_statement) = T_TRY T_THROW T_SWITCH T_STRING_LITERAL_S T_STRING_LITERAL_D T_STATIC T_SELF T_RETURN T_RBRACC T_PUBLIC T_PROTECTED T_PRIVATE T_PHPE T_PARENT T_NULL T_NEW T_LPAREN T_LBRACC T_INT_LITERAL T_IF T_IDENTIFIER T_FUNCTION T_FLOAT_LITERAL T_ELSE T_DOLLAR T_DEFAULT T_CONST T_CLASS T_CATCH T_CASE T_BREAK T_ABSTRACT
follow(bitwise_xor_expression) = T_XOR T_SLASH_EQ T_SEMICOLON T_RPAREN T_RBRACS T_QUESTION T_PLUS_EQ T_PERCENT_EQ T_OR T_MINUS_EQ T_LT_LT_EQ T_GT_GT_EQ T_EQ T_DOT_EQ T_COMMA T_COLON T_CARET_EQ T_CARET T_BAR_EQ T_BAR_2 T_BAR T_ASTERISK_EQ T_AND T_AMPERSAND_EQ T_AMPERSAND_2
follow(bitwise_or_expression) = T_XOR T_SLASH_EQ T_SEMICOLON T_RPAREN T_RBRACS T_QUESTION T_PLUS_EQ T_PERCENT_EQ T_OR T_MINUS_EQ T_LT_LT_EQ T_GT_GT_EQ T_EQ T_DOT_EQ T_COMMA T_COLON T_CARET_EQ T_BAR_EQ T_BAR_2 T_BAR T_ASTERISK_EQ T_AND T_AMPERSAND_EQ T_AMPERSAND_2
follow(bitwise_and_expression) = T_XOR T_SLASH_EQ T_SEMICOLON T_RPAREN T_RBRACS T_QUESTION T_PLUS_EQ T_PERCENT_EQ T_OR T_MINUS_EQ T_LT_LT_EQ T_GT_GT_EQ T_EQ T_DOT_EQ T_COMMA T_COLON T_CARET_EQ T_CARET T_BAR_EQ T_BAR_2 T_BAR T_ASTERISK_EQ T_AND T_AMPERSAND_EQ T_AMPERSAND_2 T_AMPERSAND
follow(atomic_expression_noiv) = T_XOR T_SLASH_EQ T_SLASH T_SEMICOLON T_RPAREN T_RBRACS T_RARROW T_QUESTION T_PLUS_EQ T_PLUS_2 T_PLUS T_PERCENT_EQ T_PERCENT T_OR T_MINUS_EQ T_MINUS_2 T_MINUS T_LT_LT_EQ T_LT_LT T_LT_GT T_LT_EQ T_LT T_LPAREN T_LBRACS T_INSTANCEOF T_GT_GT_EQ T_GT_GT T_GT_EQ T_GT T_EXCL_EQ_EQ T_EXCL_EQ T_EQ_EQ_EQ T_EQ_EQ T_EQ T_DOT_EQ T_DOT T_COMMA T_COLON T_CARET_EQ T_CARET T_BAR_EQ T_BAR_2 T_BAR T_ASTERISK_EQ T_ASTERISK T_AND T_AMPERSAND_EQ T_AMPERSAND_2 T_AMPERSAND
follow(assignment_statement) = T_TRY T_THROW T_SWITCH T_STRING_LITERAL_S T_STRING_LITERAL_D T_SELF T_RETURN T_RBRACC T_PHPE T_PARENT T_NULL T_NEW T_LPAREN T_LBRACC T_INT_LITERAL T_IF T_IDENTIFIER T_FUNCTION T_FLOAT_LITERAL T_ELSE T_DOLLAR T_DEFAULT T_CLASS T_CASE T_BREAK T_ABSTRACT
follow(assignment_expression) = T_XOR T_SEMICOLON T_RPAREN T_RBRACS T_OR T_COMMA T_COLON T_AND
follow(array_expression_noiv) = T_XOR T_SLASH_EQ T_SLASH T_SEMICOLON T_RPAREN T_RBRACS T_QUESTION T_PLUS_EQ T_PLUS_2 T_PLUS T_PERCENT_EQ T_PERCENT T_OR T_MINUS_EQ T_MINUS_2 T_MINUS T_LT_LT_EQ T_LT_LT T_LT_GT T_LT_EQ T_LT T_LPAREN T_LBRACS T_INSTANCEOF T_GT_GT_EQ T_GT_GT T_GT_EQ T_GT T_EXCL_EQ_EQ T_EXCL_EQ T_EQ_EQ_EQ T_EQ_EQ T_EQ T_DOT_EQ T_DOT T_COMMA T_COLON T_CARET_EQ T_CARET T_BAR_EQ T_BAR_2 T_BAR T_ASTERISK_EQ T_ASTERISK T_AND T_AMPERSAND_EQ T_AMPERSAND_2 T_AMPERSAND
follow(array_expression) = T_XOR T_SLASH_EQ T_SLASH T_SEMICOLON T_RPAREN T_RBRACS T_QUESTION T_PLUS_EQ T_PLUS_2 T_PLUS T_PERCENT_EQ T_PERCENT T_OR T_MINUS_EQ T_MINUS_2 T_MINUS T_LT_LT_EQ T_LT_LT T_LT_GT T_LT_EQ T_LT T_LPAREN T_LBRACS T_INSTANCEOF T_GT_GT_EQ T_GT_GT T_GT_EQ T_GT T_EXCL_EQ_EQ T_EXCL_EQ T_EQ_EQ_EQ T_EQ_EQ T_EQ T_DOT_EQ T_DOT T_COMMA T_COLON T_CARET_EQ T_CARET T_BAR_EQ T_BAR_2 T_BAR T_ASTERISK_EQ T_ASTERISK T_AND T_AMPERSAND_EQ T_AMPERSAND_2 T_AMPERSAND
follow(arithmetic_string_expression) = T_XOR T_SLASH_EQ T_SEMICOLON T_RPAREN T_RBRACS T_QUESTION T_PLUS_EQ T_PLUS T_PERCENT_EQ T_OR T_MINUS_EQ T_MINUS T_LT_LT_EQ T_LT_LT T_LT_GT T_LT_EQ T_LT T_GT_GT_EQ T_GT_GT T_GT_EQ T_GT T_EXCL_EQ_EQ T_EXCL_EQ T_EQ_EQ_EQ T_EQ_EQ T_EQ T_DOT_EQ T_DOT T_COMMA T_COLON T_CARET_EQ T_CARET T_BAR_EQ T_BAR_2 T_BAR T_ASTERISK_EQ T_AND T_AMPERSAND_EQ T_AMPERSAND_2 T_AMPERSAND
follow(arithmetic_expression) = T_XOR T_SLASH_EQ T_SLASH T_SEMICOLON T_RPAREN T_RBRACS T_QUESTION T_PLUS_EQ T_PLUS T_PERCENT_EQ T_PERCENT T_OR T_MINUS_EQ T_MINUS T_LT_LT_EQ T_LT_LT T_LT_GT T_LT_EQ T_LT T_GT_GT_EQ T_GT_GT T_GT_EQ T_GT T_EXCL_EQ_EQ T_EXCL_EQ T_EQ_EQ_EQ T_EQ_EQ T_EQ T_DOT_EQ T_DOT T_COMMA T_COLON T_CARET_EQ T_CARET T_BAR_EQ T_BAR_2 T_BAR T_ASTERISK_EQ T_ASTERISK T_AND T_AMPERSAND_EQ T_AMPERSAND_2 T_AMPERSAND
follow(abstract_clause) = T_CLASS
Built an LR(0) automaton with 321 states.
The grammar is not SLR(1) -- 5 states have a conflict.
Built an LR(1) automaton with 321 states.
241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340
File "phpparser.mly", line 84, characters 0-5:
Warning: the precedence level assigned to T_AMPERSAND is never useful.
File "phpparser.mly", line 81, characters 0-5:
Warning: the precedence level assigned to T_AMPERSAND_2 is never useful.
File "phpparser.mly", line 78, characters 0-6:
Warning: the precedence level assigned to T_AMPERSAND_EQ is never useful.
File "phpparser.mly", line 75, characters 0-5:
Warning: the precedence level assigned to T_AND is never useful.
File "phpparser.mly", line 89, characters 0-5:
Warning: the precedence level assigned to T_ASTERISK is never useful.
File "phpparser.mly", line 78, characters 0-6:
Warning: the precedence level assigned to T_ASTERISK_EQ is never useful.
File "phpparser.mly", line 82, characters 0-5:
Warning: the precedence level assigned to T_BAR is never useful.
File "phpparser.mly", line 80, characters 0-5:
Warning: the precedence level assigned to T_BAR_2 is never useful.
File "phpparser.mly", line 78, characters 0-6:
Warning: the precedence level assigned to T_BAR_EQ is never useful.
File "phpparser.mly", line 83, characters 0-5:
Warning: the precedence level assigned to T_CARET is never useful.
File "phpparser.mly", line 78, characters 0-6:
Warning: the precedence level assigned to T_CARET_EQ is never useful.
File "phpparser.mly", line 94, characters 0-5:
Warning: the precedence level assigned to T_COLON_2 is never useful.
File "phpparser.mly", line 72, characters 0-5:
Warning: the precedence level assigned to T_COMMA is never useful.
File "phpparser.mly", line 88, characters 0-5:
Warning: the precedence level assigned to T_DOT is never useful.
File "phpparser.mly", line 78, characters 0-6:
Warning: the precedence level assigned to T_DOT_EQ is never useful.
File "phpparser.mly", line 78, characters 0-6:
Warning: the precedence level assigned to T_EQ is never useful.
File "phpparser.mly", line 85, characters 0-9:
Warning: the precedence level assigned to T_EQ_EQ is never useful.
File "phpparser.mly", line 85, characters 0-9:
Warning: the precedence level assigned to T_EQ_EQ_EQ is never useful.
File "phpparser.mly", line 90, characters 0-6:
Warning: the precedence level assigned to T_EXCLAMATION is never useful.
File "phpparser.mly", line 85, characters 0-9:
Warning: the precedence level assigned to T_EXCL_EQ is never useful.
File "phpparser.mly", line 85, characters 0-9:
Warning: the precedence level assigned to T_EXCL_EQ_EQ is never useful.
File "phpparser.mly", line 86, characters 0-9:
Warning: the precedence level assigned to T_GT is never useful.
File "phpparser.mly", line 86, characters 0-9:
Warning: the precedence level assigned to T_GT_EQ is never useful.
File "phpparser.mly", line 87, characters 0-5:
Warning: the precedence level assigned to T_GT_GT is never useful.
File "phpparser.mly", line 78, characters 0-6:
Warning: the precedence level assigned to T_GT_GT_EQ is never useful.
File "phpparser.mly", line 91, characters 0-9:
Warning: the precedence level assigned to T_INSTANCEOF is never useful.
File "phpparser.mly", line 86, characters 0-9:
Warning: the precedence level assigned to T_LT is never useful.
File "phpparser.mly", line 86, characters 0-9:
Warning: the precedence level assigned to T_LT_EQ is never useful.
File "phpparser.mly", line 86, characters 0-9:
Warning: the precedence level assigned to T_LT_GT is never useful.
File "phpparser.mly", line 87, characters 0-5:
Warning: the precedence level assigned to T_LT_LT is never useful.
File "phpparser.mly", line 78, characters 0-6:
Warning: the precedence level assigned to T_LT_LT_EQ is never useful.
File "phpparser.mly", line 88, characters 0-5:
Warning: the precedence level assigned to T_MINUS is never useful.
File "phpparser.mly", line 93, characters 0-9:
Warning: the precedence level assigned to T_MINUS_2 is never useful.
File "phpparser.mly", line 78, characters 0-6:
Warning: the precedence level assigned to T_MINUS_EQ is never useful.
File "phpparser.mly", line 95, characters 0-5:
Warning: the precedence level assigned to T_NEW is never useful.
File "phpparser.mly", line 73, characters 0-5:
Warning: the precedence level assigned to T_OR is never useful.
File "phpparser.mly", line 89, characters 0-5:
Warning: the precedence level assigned to T_PERCENT is never useful.
File "phpparser.mly", line 78, characters 0-6:
Warning: the precedence level assigned to T_PERCENT_EQ is never useful.
File "phpparser.mly", line 88, characters 0-5:
Warning: the precedence level assigned to T_PLUS is never useful.
File "phpparser.mly", line 93, characters 0-9:
Warning: the precedence level assigned to T_PLUS_2 is never useful.
File "phpparser.mly", line 78, characters 0-6:
Warning: the precedence level assigned to T_PLUS_EQ is never useful.
File "phpparser.mly", line 94, characters 0-5:
Warning: the precedence level assigned to T_RARROW is never useful.
File "phpparser.mly", line 89, characters 0-5:
Warning: the precedence level assigned to T_SLASH is never useful.
File "phpparser.mly", line 78, characters 0-6:
Warning: the precedence level assigned to T_SLASH_EQ is never useful.
File "phpparser.mly", line 92, characters 0-9:
Warning: the precedence level assigned to T_TILDE is never useful.
File "phpparser.mly", line 92, characters 0-9:
Warning: the precedence level assigned to T_UMINUS is never useful.
File "phpparser.mly", line 92, characters 0-9:
Warning: the precedence level assigned to T_UPLUS is never useful.
File "phpparser.mly", line 74, characters 0-5:
Warning: the precedence level assigned to T_XOR is never useful.
File "phpparser.mly", line 201, characters 37-44:
Warning: this %prec declaration is never useful.
File "phpparser.mly", line 202, characters 37-45:
Warning: this %prec declaration is never useful.
341
130 out of 321 states have a default reduction.
342 343 344 345 346 347
111 out of 321 states are represented.
0 out of 174 symbols keep track of their start position.
0 out of 174 symbols keep track of their end position.
93 out of 182 productions exploit shiftreduce optimization.
0 out of 321 states can peek at an error.
906 functions before inlining, 133 functions after inlining.