From fcdb6e0811953b2aa57f755632add0f67b01e6bc Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Fri, 20 Feb 2015 12:59:56 +0100 Subject: WIP --- Zend/zend_language_parser.y | 1 + 1 file changed, 1 insertion(+) (limited to 'Zend/zend_language_parser.y') diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y index 009d7bae0b..65ccbab3bb 100644 --- a/Zend/zend_language_parser.y +++ b/Zend/zend_language_parser.y @@ -872,6 +872,7 @@ expr_without_variable: | T_YIELD { $$ = zend_ast_create(ZEND_AST_YIELD, NULL, NULL); } | T_YIELD expr { $$ = zend_ast_create(ZEND_AST_YIELD, $2, NULL); } | T_YIELD expr T_DOUBLE_ARROW expr { $$ = zend_ast_create(ZEND_AST_YIELD, $4, $2); } + | T_YIELD '*' expr { $$ = zend_ast_create(ZEND_AST_YIELD_FROM, $3); } | function returns_ref '(' parameter_list ')' lexical_vars return_type backup_doc_comment '{' inner_statement_list '}' { $$ = zend_ast_create_decl(ZEND_AST_CLOSURE, $2, $1, $8, -- cgit v1.2.1 From b4a142ab974747be2fd03d055b30c63286a687fd Mon Sep 17 00:00:00 2001 From: Bob Weinand Date: Sat, 7 Mar 2015 00:28:12 +0100 Subject: Added yield from operator --- Zend/zend_language_parser.y | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'Zend/zend_language_parser.y') diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y index 65ccbab3bb..6f83b79812 100644 --- a/Zend/zend_language_parser.y +++ b/Zend/zend_language_parser.y @@ -67,6 +67,7 @@ static YYSIZE_T zend_yytnamerr(char*, const char*); %right T_PRINT %right T_YIELD %right T_DOUBLE_ARROW +%right T_YIELD_FROM %left '=' T_PLUS_EQUAL T_MINUS_EQUAL T_MUL_EQUAL T_DIV_EQUAL T_CONCAT_EQUAL T_MOD_EQUAL T_AND_EQUAL T_OR_EQUAL T_XOR_EQUAL T_SL_EQUAL T_SR_EQUAL T_POW_EQUAL %left '?' ':' %right T_COALESCE @@ -112,6 +113,7 @@ static YYSIZE_T zend_yytnamerr(char*, const char*); %token T_LOGICAL_AND "and (T_LOGICAL_AND)" %token T_PRINT "print (T_PRINT)" %token T_YIELD "yield (T_YIELD)" +%token T_YIELD_FROM "yield from (T_YIELD_FROM)" %token T_PLUS_EQUAL "+= (T_PLUS_EQUAL)" %token T_MINUS_EQUAL "-= (T_MINUS_EQUAL)" %token T_MUL_EQUAL "*= (T_MUL_EQUAL)" @@ -872,7 +874,7 @@ expr_without_variable: | T_YIELD { $$ = zend_ast_create(ZEND_AST_YIELD, NULL, NULL); } | T_YIELD expr { $$ = zend_ast_create(ZEND_AST_YIELD, $2, NULL); } | T_YIELD expr T_DOUBLE_ARROW expr { $$ = zend_ast_create(ZEND_AST_YIELD, $4, $2); } - | T_YIELD '*' expr { $$ = zend_ast_create(ZEND_AST_YIELD_FROM, $3); } + | T_YIELD_FROM expr { $$ = zend_ast_create(ZEND_AST_YIELD_FROM, $2); } | function returns_ref '(' parameter_list ')' lexical_vars return_type backup_doc_comment '{' inner_statement_list '}' { $$ = zend_ast_create_decl(ZEND_AST_CLOSURE, $2, $1, $8, -- cgit v1.2.1