Created
April 18, 2011 07:59
-
-
Save flavius/924965 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
%left INCLUDE INCLUDE_ONCE EVAL REQUIRE REQUIRE_ONCE. | |
%left COMMA. | |
%left LOGICAL_OR. | |
%left LOGICAL_XOR. | |
%left LOGICAL_AND. | |
%right PRINT. | |
%left EQUAL PLUS_EQUAL MINUS_EQUAL MUL_EQUAL DIV_EQUAL CONCAT_EQUAL MOD_EQUAL AND_EQUAL OR_EQUAL XOR_EQUAL SL_EQUAL SR_EQUAL. | |
%left QUESTION_MARK COLON. | |
%left BOOLEAN_OR. | |
%left BOOLEAN_AND. | |
%left BW_OR. | |
%left BW_XOR. | |
%left BW_AND. | |
%nonassoc IS_EQUAL IS_NOT_EQUAL IS_IDENTICAL IS_NOT_IDENTICAL. | |
%nonassoc IS_SMALLER IS_SMALLER_OR_EQUAL IS_GREATER IS_GREATER_OR_EQUAL. | |
%left SL SR. | |
%left PLUS MINUS DOT. | |
%left MULT DIV MOD. | |
%right BOOL_NOT. | |
%nonassoc INSTANCEOF. | |
%right BW_NOT INC DEC INT_CAST NUMERIC_CAST SCALAR_CAST DOUBLE_CAST STRING_CAST ARRAY_CAST OBJECT_CAST BOOL_CAST UNSET_CAST AT. | |
%right RBRACKET. | |
%nonassoc NEW CLONE. | |
%nonassoc EXIT. | |
%nonassoc IF. | |
%left ELSEIF. | |
%left ELSE. | |
%left ENDIF. | |
%right STATIC ABSTRACT FINAL PRIVATE PROTECTED PUBLIC. | |
// dummy tokens | |
%nonassoc OPEN_TAG OPEN_TAG_WITH_ECHO WHITESPACE COMMENT CLOSE_TAG DOC_COMMENT. | |
start ::= top_statement_list. | |
top_statement_list_i ::= top_statement_list. | |
top_statement_list ::= top_statement_list_i top_statement. | |
top_statement_list ::=. | |
namespace_name ::= STRING. | |
namespace_name ::= namespace_name NS_SEPARATOR STRING. | |
namespace_start_i ::= NAMESPACE. | |
namespace_start ::= namespace_start_i LBRACE. | |
namespace_start2_i ::= NAMESPACE namespace_name. | |
namespace_start2 ::= namespace_start2_i LBRACE. | |
namespace_start3 ::= NAMESPACE namespace_name. | |
top_statement ::= statement_ns. | |
top_statement ::= function_declaration_statement. | |
top_statement ::= class_declaration_statement_ns. | |
top_statement ::= HALT_COMPILER LPAREN RPAREN SEMICOLON. | |
top_statement ::= namespace_start3 SEMICOLON. | |
top_statement ::= namespace_start2 top_statement_list RBRACE. | |
top_statement ::= namespace_start top_statement_list RBRACE. | |
top_statement ::= USE use_declarations SEMICOLON. | |
top_statement ::= constant_declaration SEMICOLON. | |
use_declarations ::= use_declarations COMMA use_declaration. | |
use_declarations ::= use_declaration. | |
use_declaration ::= namespace_name. | |
use_declaration ::= namespace_name AS STRING. | |
use_declaration ::= NS_SEPARATOR namespace_name. | |
use_declaration ::= NS_SEPARATOR namespace_name AS STRING. | |
constant_declaration ::= constant_declaration COMMA STRING EQUAL static_scalar. | |
constant_declaration ::= CONST STRING EQUAL static_scalar. | |
inner_statement_list_i ::= inner_statement_list. | |
inner_statement_list ::= inner_statement_list_i inner_statement. | |
inner_statement_list ::=. | |
inner_statement ::= statement. | |
inner_statement ::= function_declaration_statement. | |
inner_statement ::= class_declaration_statement. | |
inner_statement ::= HALT_COMPILER LPAREN RPAREN SEMICOLON. | |
statement ::= unticked_statement. | |
statement ::= STRING COLON. | |
statement_ns ::= unticked_statement_ns. | |
statement_ns ::= STRING COLON. | |
elseif_list_i ::= elseif_list ELSEIF LPAREN expr RPAREN. | |
elseif_list ::=. | |
elseif_list ::= elseif_list_i statement. | |
else ::=. | |
else ::= ELSE statement. | |
if_cond ::= IF LPAREN expr RPAREN. | |
if_cond_then ::= if_cond statement. | |
if ::= if_cond_then elseif_list else. | |
if_cond_ns ::= IF LPAREN expr RPAREN. | |
if_cond_then_ns ::= if_cond_ns statement. | |
if_ns ::= if_cond_then_ns elseif_list else. | |
elseif_alt_list_i ::= elseif_alt_list ELSEIF LPAREN expr RPAREN COLON. | |
elseif_alt_list ::=. | |
elseif_alt_list ::= elseif_alt_list_i inner_statement_list. | |
else_alt ::=. | |
else_alt ::= ELSE COLON inner_statement_list. | |
if_alt_cond ::= IF LPAREN expr RPAREN COLON. | |
if_alt_cond_then ::= if_alt_cond inner_statement_list. | |
if_alt ::= if_alt_cond_then elseif_alt_list else_alt ENDIF SEMICOLON. | |
if_alt_cond_ns ::= IF LPAREN expr RPAREN COLON. | |
if_alt_cond_then_ns ::= if_alt_cond_ns inner_statement_list. | |
if_alt_ns ::= if_alt_cond_then_ns elseif_alt_list else_alt ENDIF SEMICOLON. | |
while_statement ::= statement. | |
while_statement ::= COLON inner_statement_list ENDWHILE SEMICOLON. | |
while_begin ::= WHILE LPAREN. | |
while_cond ::= while_begin expr RPAREN. | |
while ::= while_cond while_statement. | |
while_begin_ns ::= WHILE LPAREN. | |
while_cond_ns ::= while_begin_ns expr RPAREN. | |
while_ns ::= while_cond_ns while_statement. | |
do_start ::= DO. | |
do_statement ::= do_start statement WHILE LPAREN. | |
do_while ::= do_statement expr RPAREN SEMICOLON. | |
do_start_ns ::= DO. | |
do_statement_ns ::= do_start_ns statement WHILE LPAREN. | |
do_while_ns ::= do_statement_ns expr RPAREN SEMICOLON. | |
for_expr ::=. | |
for_expr ::= non_empty_for_expr. | |
non_empty_for_expr_i ::= non_empty_for_expr COMMA. | |
non_empty_for_expr ::= non_empty_for_expr_i expr. | |
non_empty_for_expr ::= expr. | |
for_statement ::= statement. | |
for_statement ::= COLON inner_statement_list ENDFOR SEMICOLON. | |
for_begin ::= FOR LPAREN for_expr SEMICOLON. | |
for_cont ::= for_begin for_expr SEMICOLON. | |
for_cont_2 ::= for_cont for_expr RPAREN. | |
for ::= for_cont_2 for_statement. | |
for_begin_ns ::= FOR LPAREN for_expr SEMICOLON. | |
for_cont_ns ::= for_begin_ns for_expr SEMICOLON. | |
for_cont_2_ns ::= for_cont_ns for_expr RPAREN. | |
for_ns ::= for_cont_2_ns for_statement. | |
switch_case_list ::= LBRACE case_list RBRACE. | |
switch_case_list ::= LBRACE SEMICOLON case_list RBRACE. | |
switch_case_list ::= COLON case_list ENDSWITCH SEMICOLON. | |
switch_case_list ::= COLON SEMICOLON case_list ENDSWITCH SEMICOLON. | |
case_list_i ::= case_list CASE expr case_separator. | |
case_list_ii ::= case_list DEFAULT case_separator. | |
case_list ::=. | |
case_list ::= case_list_i inner_statement_list. | |
case_list ::= case_list_ii inner_statement_list. | |
case_separator ::= COLON. | |
case_separator ::= SEMICOLON. | |
switch_i ::= SWITCH LPAREN expr RPAREN. | |
switch ::= switch_i switch_case_list. | |
switch_i_ns ::= SWITCH LPAREN expr RPAREN. | |
switch_ns ::= switch_i_ns switch_case_list. | |
declare_statement ::= statement. | |
declare_statement ::= COLON inner_statement_list ENDDECLARE SEMICOLON. | |
declare_list ::= STRING EQUAL static_scalar. | |
declare_list ::= declare_list COMMA STRING EQUAL static_scalar. | |
declare_i ::= DECLARE. | |
declare ::= declare_i LPAREN declare_list RPAREN declare_statement. | |
declare_i_ns ::= DECLARE. | |
declare_ns ::= declare_i_ns LPAREN declare_list RPAREN declare_statement. | |
foreach_optional_arg ::=. | |
foreach_optional_arg ::= DOUBLE_ARROW foreach_variable. | |
foreach_variable ::= variable. | |
foreach_variable ::= BW_AND variable. | |
foreach_statement ::= statement. | |
foreach_statement ::= COLON inner_statement_list ENDFOREACH SEMICOLON. | |
foreach_ii ::= FOREACH LPAREN variable AS. | |
foreach_i ::= foreach_ii foreach_variable foreach_optional_arg RPAREN. | |
foreach ::= foreach_i foreach_statement. | |
foreach_ii_ns ::= FOREACH LPAREN variable AS. | |
foreach_i_ns ::= foreach_ii_ns foreach_variable foreach_optional_arg RPAREN. | |
foreach_ns ::= foreach_i_ns foreach_statement. | |
foreach2_ii ::= FOREACH LPAREN expr_wo_var AS. | |
foreach2_i ::= foreach2_ii variable foreach_optional_arg RPAREN. | |
foreach2 ::= foreach2_i foreach_statement. | |
foreach2_ii_ns ::= FOREACH LPAREN expr_wo_var AS. | |
foreach2_i_ns ::= foreach2_ii_ns variable foreach_optional_arg RPAREN. | |
foreach2_ns ::= foreach2_i_ns foreach_statement. | |
additional_catches ::=. | |
additional_catches ::= non_empty_additional_catches. | |
non_empty_additional_catches ::= additional_catch. | |
non_empty_additional_catches ::= non_empty_additional_catches additional_catch. | |
additional_catch_i ::= CATCH LPAREN fully_qualified_class_name. | |
additional_catch_ii ::= additional_catch_i VARIABLE RPAREN. | |
additional_catch ::= additional_catch_ii LBRACE inner_statement_list RBRACE. | |
try_catch_v ::= TRY. | |
try_catch_iv ::= try_catch_v LBRACE inner_statement_list RBRACE CATCH LPAREN. | |
try_catch_iii ::= try_catch_iv fully_qualified_class_name. | |
try_catch_ii ::= try_catch_iii VARIABLE RPAREN. | |
try_catch_i ::= try_catch_ii LBRACE inner_statement_list RBRACE. | |
try_catch ::= try_catch_i additional_catches. | |
try_catch_v_ns ::= TRY. | |
try_catch_iv_ns ::= try_catch_v_ns LBRACE inner_statement_list RBRACE CATCH LPAREN. | |
try_catch_iii_ns ::= try_catch_iv_ns fully_qualified_class_name. | |
try_catch_ii_ns ::= try_catch_iii_ns VARIABLE RPAREN. | |
try_catch_i_ns ::= try_catch_ii_ns LBRACE inner_statement_list RBRACE. | |
try_catch_ns ::= try_catch_i_ns additional_catches. | |
unticked_statement ::= LBRACE inner_statement_list RBRACE. | |
unticked_statement ::= SEMICOLON. | |
unticked_statement ::= foreach. | |
unticked_statement ::= foreach2. | |
unticked_statement ::= declare. | |
unticked_statement ::= try_catch. | |
unticked_statement ::= while. | |
unticked_statement ::= for. | |
unticked_statement ::= do_while. | |
unticked_statement ::= switch. | |
unticked_statement ::= if. | |
unticked_statement ::= if_alt. | |
unticked_statement ::= global SEMICOLON. | |
unticked_statement ::= static SEMICOLON. | |
unticked_statement ::= echo SEMICOLON. | |
unticked_statement ::= unset SEMICOLON. | |
unticked_statement ::= break SEMICOLON. | |
unticked_statement ::= continue SEMICOLON. | |
unticked_statement ::= return SEMICOLON. | |
unticked_statement ::= INLINE_HTML. | |
unticked_statement ::= expr_expr SEMICOLON. | |
unticked_statement ::= throw SEMICOLON. | |
unticked_statement ::= goto SEMICOLON. | |
unticked_statement_ns ::= LBRACE inner_statement_list RBRACE. | |
unticked_statement_ns ::= SEMICOLON. | |
unticked_statement_ns ::= foreach_ns. | |
unticked_statement_ns ::= foreach2_ns. | |
unticked_statement_ns ::= declare_ns. | |
unticked_statement_ns ::= try_catch_ns. | |
unticked_statement_ns ::= while_ns. | |
unticked_statement_ns ::= for_ns. | |
unticked_statement_ns ::= do_while_ns. | |
unticked_statement_ns ::= switch_ns. | |
unticked_statement_ns ::= if_ns. | |
unticked_statement_ns ::= if_alt_ns. | |
unticked_statement_ns ::= global_ns SEMICOLON. | |
unticked_statement_ns ::= static_ns SEMICOLON. | |
unticked_statement_ns ::= echo_ns SEMICOLON. | |
unticked_statement_ns ::= unset_ns SEMICOLON. | |
unticked_statement_ns ::= break_ns SEMICOLON. | |
unticked_statement_ns ::= continue_ns SEMICOLON. | |
unticked_statement_ns ::= return_ns SEMICOLON. | |
unticked_statement_ns ::= INLINE_HTML. | |
unticked_statement_ns ::= expr_expr_ns SEMICOLON. | |
unticked_statement_ns ::= throw_ns SEMICOLON. | |
unticked_statement_ns ::= goto_ns SEMICOLON. | |
global ::= GLOBAL global_var_list. | |
global_ns ::= GLOBAL global_var_list. | |
static ::= STATIC static_var_list. | |
static_ns ::= STATIC static_var_list. | |
unset ::= UNSET LPAREN unset_variables RPAREN. | |
unset_ns ::= UNSET LPAREN unset_variables RPAREN. | |
break ::= BREAK. | |
break ::= BREAK expr. | |
break_ns ::= BREAK. | |
break_ns ::= BREAK expr. | |
continue ::= CONTINUE. | |
continue ::= CONTINUE expr. | |
continue_ns ::= CONTINUE. | |
continue_ns ::= CONTINUE expr. | |
return ::= RETURN. | |
return ::= return_expr. | |
return_ns ::= RETURN. | |
return_ns ::= return_expr. | |
echo ::= ECHO echo_expr_list. | |
echo_ns ::= ECHO echo_expr_list. | |
throw ::= THROW expr. | |
throw_ns ::= THROW expr. | |
expr_expr ::= expr. | |
expr_expr_ns ::= expr. | |
return_expr ::= RETURN variable. | |
return_expr ::= RETURN expr_wo_var. | |
goto ::= GOTO STRING. | |
goto_ns ::= GOTO STRING. | |
unset_variables ::= unset_variable. | |
unset_variables ::= unset_variables COMMA unset_variable. | |
unset_variable ::= variable. | |
function_declaration_statement ::= unticked_function_declaration_statement RBRACE. | |
class_declaration_statement ::= unticked_class_declaration_statement RBRACE. | |
class_declaration_statement_ns ::= unticked_class_declaration_statement_ns RBRACE. | |
is_reference ::=. | |
is_reference ::= BW_AND. | |
unticked_function_declaration_statement_iii ::= function is_reference STRING. | |
unticked_function_declaration_statement_ii ::= unticked_function_declaration_statement_iii LPAREN parameters RPAREN. | |
unticked_function_declaration_statement_i ::= unticked_function_declaration_statement_ii LBRACE inner_statement_list. | |
unticked_function_declaration_statement ::= unticked_function_declaration_statement_i. | |
unticked_class_declaration_statement_i ::= class_entry_type STRING extends_from. | |
unticked_class_declaration_statement_ii ::= interface_entry STRING. | |
unticked_class_declaration_statement ::= unticked_class_declaration_statement_i implements_list LBRACE class_statements. | |
unticked_class_declaration_statement ::= unticked_class_declaration_statement_ii interface_extends_list LBRACE class_statements. | |
unticked_class_declaration_statement_ns ::= unticked_class_declaration_statement_i implements_list LBRACE class_statements. | |
unticked_class_declaration_statement_ns ::= unticked_class_declaration_statement_ii interface_extends_list LBRACE class_statements. | |
class_entry_type ::= CLASS. | |
class_entry_type ::= ABSTRACT CLASS. | |
class_entry_type ::= TRAIT. | |
class_entry_type ::= FINAL CLASS. | |
extends_from ::=. | |
extends_from ::= EXTENDS fully_qualified_class_name. | |
interface_entry ::= INTERFACE. | |
interface_extends_list ::=. | |
interface_extends_list ::= EXTENDS interface_list. | |
implements_list ::=. | |
implements_list ::= IMPLEMENTS interface_list. | |
interface_list ::= fully_qualified_class_name. | |
interface_list ::= interface_list COMMA fully_qualified_class_name. | |
parameters ::=. | |
parameters ::= parameters_list. | |
parameters_list ::= type_hint VARIABLE. | |
parameters_list ::= type_hint BW_AND VARIABLE. | |
parameters_list ::= type_hint BW_AND VARIABLE EQUAL static_scalar. | |
parameters_list ::= type_hint VARIABLE EQUAL static_scalar. | |
parameters_list ::= parameters_list COMMA type_hint VARIABLE. | |
parameters_list ::= parameters_list COMMA type_hint BW_AND VARIABLE. | |
parameters_list ::= parameters_list COMMA type_hint BW_AND VARIABLE EQUAL static_scalar. | |
parameters_list ::= parameters_list COMMA type_hint VARIABLE EQUAL static_scalar. | |
type_hint ::=. | |
type_hint ::= ARRAY. | |
type_hint ::= BOOL_HINT. | |
type_hint ::= STRING_HINT. | |
type_hint ::= INT_HINT. | |
type_hint ::= DOUBLE_HINT. | |
type_hint ::= RESOURCE_HINT. | |
type_hint ::= OBJECT_HINT. | |
type_hint ::= SCALAR_HINT. | |
type_hint ::= NUMERIC_HINT. | |
type_hint ::= fully_qualified_class_name. | |
fcall_parameters ::=. | |
fcall_parameters ::= fcall_parameters_list. | |
fcall_parameters_list ::= expr_wo_var. | |
fcall_parameters_list ::= variable. | |
fcall_parameters_list ::= BW_AND w_variable. | |
fcall_parameters_list ::= fcall_parameters_list COMMA expr_wo_var. | |
fcall_parameters_list ::= fcall_parameters_list COMMA variable. | |
fcall_parameters_list ::= fcall_parameters_list COMMA BW_AND w_variable. | |
global_var_list ::= global_var_list COMMA global_var. | |
global_var_list ::= global_var. | |
global_var ::= VARIABLE. | |
global_var ::= DOLLAR r_variable. | |
global_var ::= DOLLAR LBRACE expr RBRACE. | |
static_var_list ::= static_var_list COMMA VARIABLE. | |
static_var_list ::= static_var_list COMMA VARIABLE EQUAL static_scalar. | |
static_var_list ::= VARIABLE. | |
static_var_list ::= VARIABLE EQUAL static_scalar. | |
class_statements ::=. | |
class_statements ::= class_statements class_statement. | |
class_statement_i ::= variable_modifiers. | |
class_statement_ii ::= method_modifiers function is_reference STRING. | |
class_statement ::= class_statement_i class_variables SEMICOLON. | |
class_statement ::= class_constants SEMICOLON. | |
class_statement ::= trait_use_statement. | |
method_body_i ::= LPAREN parameters RPAREN LBRACE inner_statement_list. | |
method_body ::= class_statement_ii method_body_i. | |
method_body_abstract ::= class_statement_ii LPAREN parameters RPAREN. | |
class_statement ::= method_body_abstract SEMICOLON. | |
class_statement ::= method_body RBRACE. | |
trait_use_statement ::= USE trait_list trait_adaptations. | |
trait_list ::= fully_qualified_class_name. | |
trait_list ::= trait_list COMMA fully_qualified_class_name. | |
trait_adaptations ::= SEMICOLON. | |
trait_adaptations ::= LBRACE trait_adaptations_list RBRACE. | |
trait_adaptations_list ::=. | |
trait_adaptations_list ::= trait_adaptations_list trait_adaptation_statement. | |
trait_adaptation_statement ::= trait_precedence SEMICOLON. | |
trait_adaptation_statement ::= trait_alias SEMICOLON. | |
trait_precedence ::= trait_method_reference_fully_qualified INSTEADOF trait_reference_list. | |
trait_reference_list ::= fully_qualified_class_name. | |
trait_reference_list ::= trait_reference_list COMMA fully_qualified_class_name. | |
trait_method_reference ::= STRING. | |
trait_method_reference ::= trait_method_reference_fully_qualified. | |
trait_method_reference_fully_qualified ::= fully_qualified_class_name PAAMAYIM_NEKUDOTAYIM STRING. | |
trait_alias ::= trait_method_reference AS trait_modifiers STRING. | |
trait_alias ::= trait_method_reference AS member_modifier. | |
trait_modifiers ::=. | |
trait_modifiers ::= member_modifier. | |
variable_modifiers ::= member_modifiers_list. | |
variable_modifiers ::= VAR. | |
method_modifiers ::=. | |
method_modifiers ::= member_modifiers_list. | |
member_modifiers_list ::= member_modifier. | |
member_modifiers_list ::= member_modifiers_list member_modifier. | |
member_modifier ::= PUBLIC. | |
member_modifier ::= PROTECTED. | |
member_modifier ::= PRIVATE. | |
member_modifier ::= STATIC. | |
member_modifier ::= ABSTRACT. | |
member_modifier ::= FINAL. | |
class_variables ::= class_variables COMMA VARIABLE. | |
class_variables ::= class_variables COMMA VARIABLE EQUAL static_scalar. | |
class_variables ::= VARIABLE. | |
class_variables ::= VARIABLE EQUAL static_scalar. | |
class_constants ::= class_constants COMMA STRING EQUAL static_scalar. | |
class_constants ::= CONST STRING EQUAL static_scalar. | |
echo_expr_list ::= expr. | |
echo_expr_list ::= echo_expr_list COMMA expr. | |
new_i ::= NEW class_name_reference. | |
new_ii ::= variable EQUAL BW_AND new_i. | |
list_i ::= LIST LPAREN. | |
list ::= list_i assignment_list RPAREN EQUAL expr. | |
expr_wo_var ::= list. | |
expr_wo_var ::= variable EQUAL expr. | |
expr_wo_var ::= variable EQUAL BW_AND variable. | |
expr_wo_var ::= new_ii ctor_arguments. | |
expr_wo_var ::= new_i ctor_arguments. | |
expr_wo_var ::= CLONE expr. | |
expr_wo_var ::= variable PLUS_EQUAL expr. | |
expr_wo_var ::= variable MINUS_EQUAL expr. | |
expr_wo_var ::= variable MUL_EQUAL expr. | |
expr_wo_var ::= variable DIV_EQUAL expr. | |
expr_wo_var ::= variable CONCAT_EQUAL expr. | |
expr_wo_var ::= variable MOD_EQUAL expr. | |
expr_wo_var ::= variable AND_EQUAL expr. | |
expr_wo_var ::= variable OR_EQUAL expr. | |
expr_wo_var ::= variable XOR_EQUAL expr. | |
expr_wo_var ::= variable SL_EQUAL expr. | |
expr_wo_var ::= variable SR_EQUAL expr. | |
expr_wo_var ::= rw_variable INC. | |
expr_wo_var ::= INC rw_variable. | |
expr_wo_var ::= rw_variable DEC. | |
expr_wo_var ::= DEC rw_variable. | |
expr_wo_var ::= bool_or_expr. | |
expr_wo_var ::= bool_and_expr. | |
expr_wo_var ::= logic_or_expr. | |
expr_wo_var ::= logic_and_expr. | |
expr_wo_var ::= expr LOGICAL_XOR expr. | |
expr_wo_var ::= expr BW_OR expr. | |
expr_wo_var ::= expr BW_AND expr. | |
expr_wo_var ::= expr BW_XOR expr. | |
expr_wo_var ::= expr DOT expr. | |
expr_wo_var ::= expr PLUS expr. | |
expr_wo_var ::= expr MINUS expr. | |
expr_wo_var ::= expr MULT expr. | |
expr_wo_var ::= expr DIV expr. | |
expr_wo_var ::= expr MOD expr. | |
expr_wo_var ::= expr SL expr. | |
expr_wo_var ::= expr SR expr. | |
expr_wo_var ::= BOOL_NOT expr. | |
expr_wo_var ::= BW_NOT expr. | |
expr_wo_var ::= expr IS_IDENTICAL expr. | |
expr_wo_var ::= expr IS_NOT_IDENTICAL expr. | |
expr_wo_var ::= expr IS_EQUAL expr. | |
expr_wo_var ::= expr IS_NOT_EQUAL expr. | |
expr_wo_var ::= expr IS_SMALLER expr. | |
expr_wo_var ::= expr IS_SMALLER_OR_EQUAL expr. | |
expr_wo_var ::= expr IS_GREATER expr. | |
expr_wo_var ::= expr IS_GREATER_OR_EQUAL expr. | |
expr_wo_var ::= expr INSTANCEOF class_name_reference. | |
expr_wo_var ::= LPAREN expr RPAREN. | |
expr_wo_var ::= ternary. | |
expr_wo_var ::= short_ternary. | |
expr_wo_var ::= internal_functions_in_yacc. | |
expr_wo_var ::= INT_CAST expr. | |
expr_wo_var ::= DOUBLE_CAST expr. | |
expr_wo_var ::= STRING_CAST expr. | |
expr_wo_var ::= ARRAY_CAST expr. | |
expr_wo_var ::= OBJECT_CAST expr. | |
expr_wo_var ::= BOOL_CAST expr. | |
expr_wo_var ::= SCALAR_CAST expr. | |
expr_wo_var ::= NUMERIC_CAST expr. | |
expr_wo_var ::= UNSET_CAST expr. | |
expr_wo_var ::= EXIT exit_expr. | |
expr_wo_var ::= silent expr. [IF] | |
expr_wo_var ::= ARRAY LPAREN array_pairs RPAREN. | |
expr_wo_var ::= scalar. | |
expr_wo_var ::= BACKQUOTE backticks_expr BACKQUOTE. | |
expr_wo_var ::= PRINT expr. | |
expr_wo_var ::= closure. | |
expr_wo_var ::= PLUS expr. [INC] | |
expr_wo_var ::= MINUS expr. [INC] | |
closure ::= closure_i parameters RPAREN lexical_vars LBRACE inner_statement_list RBRACE. | |
closure ::= closure_ii parameters RPAREN lexical_vars LBRACE inner_statement_list RBRACE. | |
bool_or_expr_i ::= expr BOOLEAN_OR. | |
bool_or_expr ::= bool_or_expr_i expr. | |
bool_and_expr_i ::= expr BOOLEAN_AND. | |
bool_and_expr ::= bool_and_expr_i expr. | |
logic_or_expr_i ::= expr LOGICAL_OR. | |
logic_or_expr ::= logic_or_expr_i expr. | |
logic_and_expr_i ::= expr LOGICAL_AND. | |
logic_and_expr ::= logic_and_expr_i expr. | |
ternary_ii ::= expr QUESTION_MARK. | |
ternary_i ::= ternary_ii expr COLON. | |
ternary ::= ternary_i expr. | |
short_ternary_i ::= expr QUESTION_MARK COLON. | |
short_ternary ::= short_ternary_i expr. | |
closure_i ::= function is_reference LPAREN. | |
closure_ii ::= STATIC function is_reference LPAREN. | |
silent ::= AT. | |
function ::= FUNCTION. | |
lexical_vars ::=. | |
lexical_vars ::= USE LPAREN lexical_var_list RPAREN. | |
lexical_var_list ::= lexical_var_list COMMA VARIABLE. | |
lexical_var_list ::= lexical_var_list COMMA BW_AND VARIABLE. | |
lexical_var_list ::= VARIABLE. | |
lexical_var_list ::= BW_AND VARIABLE. | |
function_call_ns_i ::= namespace_name LPAREN. | |
function_call_ns_ii ::= NAMESPACE NS_SEPARATOR namespace_name LPAREN. | |
function_call_ns_iii ::= NS_SEPARATOR namespace_name LPAREN. | |
function_call_cls_i ::= class_name PAAMAYIM_NEKUDOTAYIM STRING LPAREN. | |
function_call_cls_ii ::= class_name PAAMAYIM_NEKUDOTAYIM variable_without_objects LPAREN. | |
function_call_var_i ::= variable_class_name PAAMAYIM_NEKUDOTAYIM STRING LPAREN. | |
function_call_var_ii ::= variable_class_name PAAMAYIM_NEKUDOTAYIM variable_without_objects LPAREN. | |
function_call_var_iii ::= variable_without_objects LPAREN. | |
function_call ::= function_call_ns_i fcall_parameters RPAREN. | |
function_call ::= function_call_ns_ii fcall_parameters RPAREN. | |
function_call ::= function_call_ns_iii fcall_parameters RPAREN. | |
function_call ::= function_call_cls_i fcall_parameters RPAREN. | |
function_call ::= function_call_cls_ii fcall_parameters RPAREN. | |
function_call ::= function_call_var_i fcall_parameters RPAREN. | |
function_call ::= function_call_var_ii fcall_parameters RPAREN. | |
function_call ::= function_call_var_iii fcall_parameters RPAREN. | |
class_name ::= STATIC. | |
class_name ::= namespace_name. | |
class_name ::= NAMESPACE NS_SEPARATOR namespace_name. | |
class_name ::= NS_SEPARATOR namespace_name. | |
fully_qualified_class_name ::= namespace_name. | |
fully_qualified_class_name ::= NAMESPACE NS_SEPARATOR namespace_name. | |
fully_qualified_class_name ::= NS_SEPARATOR namespace_name. | |
class_name_reference ::= class_name. | |
class_name_reference ::= dynamic_class_name_reference. | |
dynamic_class_name_reference_i ::= base_variable OBJECT_OPERATOR. | |
dynamic_class_name_reference_ii ::= dynamic_class_name_reference_i object_property. | |
dynamic_class_name_reference ::= dynamic_class_name_reference_ii dynamic_class_name_variable_properties. | |
dynamic_class_name_reference ::= base_variable. | |
dynamic_class_name_variable_properties ::=. | |
dynamic_class_name_variable_properties ::= dynamic_class_name_variable_properties dynamic_class_name_variable_property. | |
dynamic_class_name_variable_property ::= OBJECT_OPERATOR object_property. | |
exit_expr ::=. | |
exit_expr ::= LPAREN RPAREN. | |
exit_expr ::= LPAREN expr RPAREN. | |
backticks_expr ::=. | |
backticks_expr ::= ENCAPSED_AND_WHITESPACE. | |
backticks_expr ::= encaps_list. | |
ctor_arguments ::=. | |
ctor_arguments ::= LPAREN fcall_parameters RPAREN. | |
common_scalar ::= LNUMBER. | |
common_scalar ::= DNUMBER. | |
common_scalar ::= CONSTANT_ENCAPSED_STRING. | |
common_scalar ::= LINE. | |
common_scalar ::= FILE. | |
common_scalar ::= DIR. | |
common_scalar ::= CLASS_C. | |
common_scalar ::= METHOD_C. | |
common_scalar ::= FUNC_C. | |
common_scalar ::= NS_C. | |
common_scalar ::= START_HEREDOC ENCAPSED_AND_WHITESPACE END_HEREDOC. | |
common_scalar ::= START_HEREDOC END_HEREDOC. | |
static_scalar ::= common_scalar. | |
static_scalar ::= namespace_name. | |
static_scalar ::= NAMESPACE NS_SEPARATOR namespace_name. | |
static_scalar ::= NS_SEPARATOR namespace_name. | |
static_scalar ::= PLUS static_scalar. | |
static_scalar ::= MINUS static_scalar. | |
static_scalar ::= ARRAY LPAREN static_array_pair_list RPAREN. | |
static_scalar ::= static_class_constant. | |
static_class_constant ::= class_name PAAMAYIM_NEKUDOTAYIM STRING. | |
scalar ::= STRING_VARNAME. | |
scalar ::= class_constant. | |
scalar ::= namespace_name. | |
scalar ::= NAMESPACE NS_SEPARATOR namespace_name. | |
scalar ::= NS_SEPARATOR namespace_name. | |
scalar ::= common_scalar. | |
scalar ::= QUOTE encaps_list QUOTE. | |
scalar ::= START_HEREDOC encaps_list END_HEREDOC. | |
static_array_pair_list ::=. | |
static_array_pair_list ::= non_empty_static_array_pair_list possible_comma. | |
possible_comma ::=. | |
possible_comma ::= COMMA. | |
non_empty_static_array_pair_list ::= non_empty_static_array_pair_list COMMA static_scalar DOUBLE_ARROW static_scalar. | |
non_empty_static_array_pair_list ::= non_empty_static_array_pair_list COMMA static_scalar. | |
non_empty_static_array_pair_list ::= static_scalar DOUBLE_ARROW static_scalar. | |
non_empty_static_array_pair_list ::= static_scalar. | |
expr ::= r_variable. | |
expr ::= expr_wo_var. | |
r_variable ::= variable. | |
w_variable ::= variable. | |
rw_variable ::= variable. | |
variable_i ::= base_variable_with_function_calls OBJECT_OPERATOR. | |
variable_ii ::= object_property. | |
variable ::= variable_i variable_ii method_or_not variable_properties. | |
variable ::= base_variable_with_function_calls. | |
variable_properties ::=. | |
variable_properties ::= variable_properties variable_property. | |
variable_property_i ::= OBJECT_OPERATOR object_property. | |
variable_property ::= variable_property_i method_or_not. | |
array_method_dereference ::= array_method_dereference LBRACKET dim_offset RBRACKET. | |
array_method_dereference ::= method LBRACKET dim_offset RBRACKET. | |
method_i ::= LPAREN. | |
method ::= method_i fcall_parameters RPAREN. | |
method_or_not ::=. | |
method_or_not ::= method. | |
method_or_not ::= array_method_dereference. | |
variable_without_objects ::= reference_variable. | |
variable_without_objects ::= simple_indirect_reference reference_variable. | |
static_member ::= class_name PAAMAYIM_NEKUDOTAYIM variable_without_objects. | |
static_member ::= variable_class_name PAAMAYIM_NEKUDOTAYIM variable_without_objects. | |
variable_class_name ::= reference_variable. | |
array_function_dereference_i ::= function_call. | |
array_function_dereference ::= array_function_dereference LBRACKET dim_offset RBRACKET. | |
array_function_dereference ::= array_function_dereference_i LBRACKET dim_offset RBRACKET. | |
base_variable_with_function_calls ::= base_variable. | |
base_variable_with_function_calls ::= array_function_dereference. | |
base_variable_with_function_calls ::= function_call. | |
base_variable ::= reference_variable. | |
base_variable ::= simple_indirect_reference reference_variable. | |
base_variable ::= static_member. | |
reference_variable ::= reference_variable LBRACKET dim_offset RBRACKET. | |
reference_variable ::= reference_variable LBRACE expr RBRACE. | |
reference_variable ::= compound_variable. | |
compound_variable ::= VARIABLE. | |
compound_variable ::= DOLLAR LBRACE expr RBRACE. | |
dim_offset ::=. | |
dim_offset ::= expr. | |
object_property ::= object_dim_list. | |
object_property ::= variable_without_objects. | |
object_dim_list ::= object_dim_list LBRACKET dim_offset RBRACKET. | |
object_dim_list ::= object_dim_list LBRACE expr RBRACE. | |
object_dim_list ::= variable_name. | |
variable_name ::= STRING. | |
variable_name ::= LBRACE expr RBRACE. | |
simple_indirect_reference ::= DOLLAR. | |
simple_indirect_reference ::= simple_indirect_reference DOLLAR. | |
assignment_list ::= assignment_list COMMA assignment_list_element. | |
assignment_list ::= assignment_list_element. | |
assignment_list_element_i ::= LIST LPAREN. | |
assignment_list_element ::= variable. | |
assignment_list_element ::= assignment_list_element_i assignment_list RPAREN. | |
assignment_list_element ::=. | |
array_pairs ::=. | |
array_pairs ::= array_pairs_list possible_comma. | |
array_pairs_list ::= array_pairs_list COMMA expr DOUBLE_ARROW expr. | |
array_pairs_list ::= array_pairs_list COMMA expr. | |
array_pairs_list ::= array_pairs_list COMMA expr DOUBLE_ARROW BW_AND w_variable. | |
array_pairs_list ::= array_pairs_list COMMA BW_AND w_variable. | |
array_pairs_list ::= expr DOUBLE_ARROW expr. | |
array_pairs_list ::= expr. | |
array_pairs_list ::= expr DOUBLE_ARROW BW_AND w_variable. | |
array_pairs_list ::= BW_AND w_variable. | |
encaps_list ::= encaps_list encaps_var. | |
encaps_list ::= encaps_list ENCAPSED_AND_WHITESPACE. | |
encaps_list ::= encaps_var. | |
encaps_list ::= ENCAPSED_AND_WHITESPACE encaps_var. | |
encaps_var_i ::= VARIABLE LBRACKET. | |
encaps_var ::= VARIABLE. | |
encaps_var ::= encaps_var_i encaps_var_offset RBRACKET. | |
encaps_var ::= VARIABLE OBJECT_OPERATOR STRING. | |
encaps_var ::= DOLLAR_OPEN_CURLY_BRACES expr RBRACE. | |
encaps_var ::= DOLLAR_OPEN_CURLY_BRACES STRING_VARNAME LBRACKET expr RBRACKET RBRACE. | |
encaps_var ::= CURLY_OPEN variable RBRACE. | |
encaps_var_offset ::= STRING. | |
encaps_var_offset ::= NUM_STRING. | |
encaps_var_offset ::= VARIABLE. | |
internal_functions_in_yacc ::= ISSET LPAREN isset_variables RPAREN. | |
internal_functions_in_yacc ::= EMPTY LPAREN variable RPAREN. | |
internal_functions_in_yacc ::= INCLUDE expr. | |
internal_functions_in_yacc ::= INCLUDE_ONCE expr. | |
internal_functions_in_yacc ::= EVAL LPAREN expr RPAREN. | |
internal_functions_in_yacc ::= REQUIRE expr. | |
internal_functions_in_yacc ::= REQUIRE_ONCE expr. | |
isset_variables_i ::= isset_variables COMMA. | |
isset_variables ::= variable. | |
isset_variables ::= isset_variables_i variable. | |
class_constant ::= class_name PAAMAYIM_NEKUDOTAYIM STRING. | |
class_constant ::= variable_class_name PAAMAYIM_NEKUDOTAYIM STRING. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment