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. 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. 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. 130 out of 321 states have a default reduction. 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.