@@ -946,6 +946,10 @@ xx_parameter_type(R) ::= TYPE_RESOURCE . {
946946 xx_ret_type(&R, XX_TYPE_RESOURCE);
947947}
948948
949+ xx_parameter_type(R) ::= TYPE_MIXED . {
950+ xx_ret_type(&R, XX_TYPE_MIXED);
951+ }
952+
949953xx_parameter_type(R) ::= TYPE_OBJECT . {
950954 xx_ret_type(&R, XX_TYPE_OBJECT);
951955}
@@ -982,6 +986,10 @@ xx_statement(R) ::= xx_return_statement(S) . {
982986 R = S;
983987}
984988
989+ xx_statement(R) ::= xx_yield_statement(S) . {
990+ R = S;
991+ }
992+
985993xx_statement(R) ::= xx_require_once_statement(S) . {
986994 R = S;
987995}
@@ -1522,16 +1530,31 @@ xx_fetch_statement(R) ::= xx_fetch_expr(E) DOTCOMMA . {
15221530 xx_ret_fetch_statement(&R, &E, status->scanner_state);
15231531}
15241532
1525- /* return statement */
1533+ /* return var; */
15261534xx_return_statement(R) ::= RETURN xx_common_expr(E) DOTCOMMA . {
15271535 xx_ret_return_statement(&R, &E, status->scanner_state);
15281536}
15291537
1530- /* return statement */
1538+ /* return; */
15311539xx_return_statement(R) ::= RETURN DOTCOMMA . {
15321540 xx_ret_return_statement(&R, NULL, status->scanner_state);
15331541}
15341542
1543+ /* yield var; */
1544+ xx_yield_statement(R) ::= YIELD xx_common_expr(E) DOTCOMMA . {
1545+ xx_ret_yield_statement(&R, &E, NULL, NULL, status->scanner_state);
1546+ }
1547+
1548+ /* yield key, val; */
1549+ xx_yield_statement(R) ::= YIELD xx_common_expr(K) COMMA xx_common_expr(V) DOTCOMMA . {
1550+ xx_ret_yield_statement(&R, NULL, &K, &V, status->scanner_state);
1551+ }
1552+
1553+ /* yield; */
1554+ xx_yield_statement(R) ::= YIELD DOTCOMMA . {
1555+ xx_ret_yield_statement(&R, NULL, NULL, NULL, status->scanner_state);
1556+ }
1557+
15351558/* require_once statement */
15361559xx_require_once_statement(R) ::= REQUIRE_ONCE xx_common_expr(E) DOTCOMMA . {
15371560 xx_ret_require_once_statement(&R, &E, status->scanner_state);
@@ -1596,6 +1619,10 @@ xx_declare_statement(R) ::= TYPE_ARRAY xx_declare_variable_list(L) DOTCOMMA . {
15961619 xx_ret_declare_statement(&R, XX_T_TYPE_ARRAY, &L, status->scanner_state);
15971620}
15981621
1622+ xx_declare_statement(R) ::= TYPE_MIXED xx_declare_variable_list(L) DOTCOMMA . {
1623+ xx_ret_declare_statement(&R, XX_T_TYPE_MIXED, &L, status->scanner_state);
1624+ }
1625+
15991626xx_declare_variable_list(R) ::= xx_declare_variable_list(L) COMMA xx_declare_variable(V) . {
16001627 xx_ret_list(&R, &L, &V, status->scanner_state);
16011628}
@@ -1898,7 +1925,7 @@ xx_common_expr(R) ::= NULL . {
18981925 xx_ret_literal(&R, XX_T_NULL, NULL, status->scanner_state);
18991926}
19001927
1901- /* y = false */
1928+ /* y = true */
19021929xx_common_expr(R) ::= TRUE . {
19031930 xx_ret_literal(&R, XX_T_TRUE, NULL, status->scanner_state);
19041931}
0 commit comments