B));} global $a; //global_var(A) ::= DOLLAR r_variable(B). {A = new PHP_Parser_CoreyyToken('$' . B);} global $$a; //global_var(A) ::= DOLLAR LCURLY expr(B) RCURLY.{ global ${1}; //global_var_list(A) ::= global_var_list(B) COMMA global_var(C). { global $a, $$a, ${1}; //unticked_statement(A) ::= T_STATIC static_var_list(B) SEMI. {A = B;} //static_var_list(A) ::= T_VARIABLE(B). { static $a; //static_var_list(A) ::= T_VARIABLE(B) EQUALS static_scalar(C). { static $a = 1; //static_var_list(A) ::= static_var_list(B) COMMA T_VARIABLE(C) EQUALS static_scalar(D). { static $a,$b = 1; //static_var_list(A) ::= static_var_list(B) COMMA T_VARIABLE(C). { static $a,$b; //unticked_statement(A) ::= T_ECHO echo_expr_list(B) SEMI. { //echo_expr_list(A) ::= expr(B). {A = B;} echo 1; //echo_expr_list(A) ::= echo_expr_list(B) COMMA expr(C). {A = B;A[] = C;} echo 1,2; //unticked_statement ::= T_INLINE_HTML. ?>hi $c); //foreach_statement(A) ::= COLON inner_statement_list(B) T_ENDFOREACH SEMI. {A = B;} foreach ($a as $b => $c):endforeach; //unticked_statement(A) ::= T_FOREACH LPAREN expr_without_variable(B) T_AS // w_variable foreach_optional_arg RPAREN // foreach_statement(C). { //foreach_variable ::= w_variable. //foreach_optional_arg ::= . //foreach_statement(A) ::= statement(B). {A = B;} foreach (array() as $b); foreach (array() as $b => $c); //foreach_statement(A) ::= COLON inner_statement_list(B) T_ENDFOREACH SEMI. {A = B;} foreach (array() as $b):endforeach; foreach (array() as $b => $c):endforeach; //foreach_variable ::= AMPERSAND w_variable. //foreach_statement(A) ::= statement(B). {A = B;} foreach (array() as $b => &$c); //foreach_statement(A) ::= COLON inner_statement_list(B) T_ENDFOREACH SEMI. {A = B;} foreach (array() as $b):endforeach; //foreach_variable ::= AMPERSAND w_variable. //foreach_optional_arg ::= T_DOUBLE_ARROW foreach_variable. foreach (array() as $b => &$c):endforeach; //unticked_statement(A) ::= T_DECLARE LPAREN declare_list(B) RPAREN declare_statement(C). //declare_list(A) ::= T_STRING(B) EQUALS static_scalar(C). declare(hi = 1); //declare_statement(A) ::= COLON inner_statement_list(B) T_ENDDECLARE SEMI. declare(hi = 1):enddeclare; //declare_list(A) ::= declare_list(DEC) COMMA T_STRING(B) EQUALS static_scalar(C). declare(hit = 2, bye = 3); //declare_statement(A) ::= COLON inner_statement_list(B) T_ENDDECLARE SEMI. declare(hit = 2, bye = 3):enddeclare; //unticked_statement ::= SEMI. ; //unticked_statement(A) ::= T_TRY LCURLY inner_statement_list(B) RCURLY // T_CATCH LPAREN // fully_qualified_class_name(C) // T_VARIABLE RPAREN // LCURLY inner_statement_list(D) RCURLY // additional_catches(E). { //additional_catches ::= . try {} catch (Blah $a) {} //additional_catches(A) ::= non_empty_additional_catches(B). {A = B;} //non_empty_additional_catches(A) ::= additional_catch(B). {A = B;} //additional_catch(A) ::= T_CATCH LPAREN fully_qualified_class_name(B) T_VARIABLE RPAREN LCURLY inner_statement_list(C) RCURLY. { try {} catch (Blah $a) {} catch (Foo $b) {} //unticked_statement(A) ::= T_THROW expr(B) SEMI. { throw 1; throw $a; throw new Classname; ?>