Merge pull request #123 from i582/pmakhnev/fix_parsing_new_expr
internal: fixed parsing of expression new
This commit is contained in:
		
						commit
						15562c740e
					
				| @ -38822,9 +38822,9 @@ func TestExprNew(t *testing.T) { | |||||||
| 				Expr: &ast.ExprNew{ | 				Expr: &ast.ExprNew{ | ||||||
| 					Position: &position.Position{ | 					Position: &position.Position{ | ||||||
| 						StartLine: 1, | 						StartLine: 1, | ||||||
| 						EndLine:   -1, | 						EndLine:   1, | ||||||
| 						StartPos:  3, | 						StartPos:  3, | ||||||
| 						EndPos:    -1, | 						EndPos:    10, | ||||||
| 					}, | 					}, | ||||||
| 					NewTkn: &token.Token{ | 					NewTkn: &token.Token{ | ||||||
| 						ID:    token.T_NEW, | 						ID:    token.T_NEW, | ||||||
| @ -43954,9 +43954,9 @@ func TestExprAssign(t *testing.T) { | |||||||
| 				Expr: &ast.ExprAssignReference{ | 				Expr: &ast.ExprAssignReference{ | ||||||
| 					Position: &position.Position{ | 					Position: &position.Position{ | ||||||
| 						StartLine: 4, | 						StartLine: 4, | ||||||
| 						EndLine:   -1, | 						EndLine:   4, | ||||||
| 						StartPos:  28, | 						StartPos:  28, | ||||||
| 						EndPos:    -1, | 						EndPos:    41, | ||||||
| 					}, | 					}, | ||||||
| 					Var: &ast.ExprVariable{ | 					Var: &ast.ExprVariable{ | ||||||
| 						Position: &position.Position{ | 						Position: &position.Position{ | ||||||
| @ -44032,9 +44032,9 @@ func TestExprAssign(t *testing.T) { | |||||||
| 					Expr: &ast.ExprNew{ | 					Expr: &ast.ExprNew{ | ||||||
| 						Position: &position.Position{ | 						Position: &position.Position{ | ||||||
| 							StartLine: 4, | 							StartLine: 4, | ||||||
| 							EndLine:   -1, | 							EndLine:   4, | ||||||
| 							StartPos:  34, | 							StartPos:  34, | ||||||
| 							EndPos:    -1, | 							EndPos:    41, | ||||||
| 						}, | 						}, | ||||||
| 						NewTkn: &token.Token{ | 						NewTkn: &token.Token{ | ||||||
| 							ID:    token.T_NEW, | 							ID:    token.T_NEW, | ||||||
|  | |||||||
							
								
								
									
										5
									
								
								internal/php5/php5.go
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										5
									
								
								internal/php5/php5.go
									
									
									
										generated
									
									
									
								
							| @ -4981,6 +4981,7 @@ yydefault: | |||||||
| 			} else { | 			} else { | ||||||
| 				yyVAL.node = &ast.ExprNew{ | 				yyVAL.node = &ast.ExprNew{ | ||||||
| 					Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), | 					Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), | ||||||
|  | 					NewTkn:   yyDollar[1].token, | ||||||
| 					Class:    yyDollar[2].node, | 					Class:    yyDollar[2].node, | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| @ -5031,7 +5032,7 @@ yydefault: | |||||||
| 		// line internal/php5/php5.y:2797 | 		// line internal/php5/php5.y:2797 | ||||||
| 		{ | 		{ | ||||||
| 			var _new *ast.ExprNew | 			var _new *ast.ExprNew | ||||||
| 			if yyDollar[3].token != nil { | 			if yyDollar[6].token != nil { | ||||||
| 				_new = &ast.ExprNew{ | 				_new = &ast.ExprNew{ | ||||||
| 					Position:            yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node), | 					Position:            yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node), | ||||||
| 					NewTkn:              yyDollar[4].token, | 					NewTkn:              yyDollar[4].token, | ||||||
| @ -6401,7 +6402,7 @@ yydefault: | |||||||
| 		yyDollar = yyS[yypt-0 : yypt+1] | 		yyDollar = yyS[yypt-0 : yypt+1] | ||||||
| 		// line internal/php5/php5.y:3986 | 		// line internal/php5/php5.y:3986 | ||||||
| 		{ | 		{ | ||||||
| 			yyVAL.node = &ArgumentList{} | 			yyVAL.node = nil | ||||||
| 		} | 		} | ||||||
| 	case 352: | 	case 352: | ||||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | 		yyDollar = yyS[yypt-1 : yypt+1] | ||||||
|  | |||||||
| @ -2751,6 +2751,7 @@ new_expr: | |||||||
|                 } else { |                 } else { | ||||||
|                     $$ = &ast.ExprNew{ |                     $$ = &ast.ExprNew{ | ||||||
|                         Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), |                         Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), | ||||||
|  |                         NewTkn: $1, | ||||||
|                         Class: $2, |                         Class: $2, | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
| @ -2796,7 +2797,7 @@ expr_without_variable: | |||||||
|     |   variable '=' '&' T_NEW class_name_reference ctor_arguments |     |   variable '=' '&' T_NEW class_name_reference ctor_arguments | ||||||
|             { |             { | ||||||
|                 var _new *ast.ExprNew |                 var _new *ast.ExprNew | ||||||
|                 if $3 != nil { |                 if $6 != nil { | ||||||
|                     _new = &ast.ExprNew{ |                     _new = &ast.ExprNew{ | ||||||
|                         Position: yylex.(*Parser).builder.NewTokenNodePosition($4, $6), |                         Position: yylex.(*Parser).builder.NewTokenNodePosition($4, $6), | ||||||
|                         NewTkn:              $4, |                         NewTkn:              $4, | ||||||
| @ -3984,7 +3985,7 @@ backticks_expr: | |||||||
| ctor_arguments: | ctor_arguments: | ||||||
|         /* empty */ |         /* empty */ | ||||||
|             { |             { | ||||||
|                 $$ = &ArgumentList{} |                 $$ = nil | ||||||
|             } |             } | ||||||
|     |   function_call_parameter_list |     |   function_call_parameter_list | ||||||
|             { |             { | ||||||
|  | |||||||
| @ -43581,9 +43581,9 @@ func TestExprNew(t *testing.T) { | |||||||
| 				Expr: &ast.ExprNew{ | 				Expr: &ast.ExprNew{ | ||||||
| 					Position: &position.Position{ | 					Position: &position.Position{ | ||||||
| 						StartLine: 1, | 						StartLine: 1, | ||||||
| 						EndLine:   -1, | 						EndLine:   1, | ||||||
| 						StartPos:  3, | 						StartPos:  3, | ||||||
| 						EndPos:    -1, | 						EndPos:    10, | ||||||
| 					}, | 					}, | ||||||
| 					NewTkn: &token.Token{ | 					NewTkn: &token.Token{ | ||||||
| 						ID:    token.T_NEW, | 						ID:    token.T_NEW, | ||||||
| @ -49806,9 +49806,9 @@ func TestExprAssign_Assign(t *testing.T) { | |||||||
| 				Expr: &ast.ExprAssignReference{ | 				Expr: &ast.ExprAssignReference{ | ||||||
| 					Position: &position.Position{ | 					Position: &position.Position{ | ||||||
| 						StartLine: 4, | 						StartLine: 4, | ||||||
| 						EndLine:   -1, | 						EndLine:   4, | ||||||
| 						StartPos:  28, | 						StartPos:  28, | ||||||
| 						EndPos:    -1, | 						EndPos:    41, | ||||||
| 					}, | 					}, | ||||||
| 					Var: &ast.ExprVariable{ | 					Var: &ast.ExprVariable{ | ||||||
| 						Position: &position.Position{ | 						Position: &position.Position{ | ||||||
| @ -49884,9 +49884,9 @@ func TestExprAssign_Assign(t *testing.T) { | |||||||
| 					Expr: &ast.ExprNew{ | 					Expr: &ast.ExprNew{ | ||||||
| 						Position: &position.Position{ | 						Position: &position.Position{ | ||||||
| 							StartLine: 4, | 							StartLine: 4, | ||||||
| 							EndLine:   -1, | 							EndLine:   4, | ||||||
| 							StartPos:  34, | 							StartPos:  34, | ||||||
| 							EndPos:    -1, | 							EndPos:    41, | ||||||
| 						}, | 						}, | ||||||
| 						NewTkn: &token.Token{ | 						NewTkn: &token.Token{ | ||||||
| 							ID:    token.T_NEW, | 							ID:    token.T_NEW, | ||||||
|  | |||||||
							
								
								
									
										6
									
								
								internal/php7/php7.go
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										6
									
								
								internal/php7/php7.go
									
									
									
										generated
									
									
									
								
							| @ -4935,6 +4935,10 @@ yydefault: | |||||||
| 		yyDollar = yyS[yypt-8 : yypt+1] | 		yyDollar = yyS[yypt-8 : yypt+1] | ||||||
| 		// line internal/php7/php7.y:2499 | 		// line internal/php7/php7.y:2499 | ||||||
| 		{ | 		{ | ||||||
|  | 			if yyDollar[2].node == nil { | ||||||
|  | 				yyDollar[2].node = &ArgumentList{} | ||||||
|  | 			} | ||||||
|  | 
 | ||||||
| 			class := &ast.StmtClass{ | 			class := &ast.StmtClass{ | ||||||
| 				Position:             yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), | 				Position:             yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), | ||||||
| 				ClassTkn:             yyDollar[1].token, | 				ClassTkn:             yyDollar[1].token, | ||||||
| @ -6091,7 +6095,7 @@ yydefault: | |||||||
| 		yyDollar = yyS[yypt-0 : yypt+1] | 		yyDollar = yyS[yypt-0 : yypt+1] | ||||||
| 		// line internal/php7/php7.y:3492 | 		// line internal/php7/php7.y:3492 | ||||||
| 		{ | 		{ | ||||||
| 			yyVAL.node = &ArgumentList{} | 			yyVAL.node = nil | ||||||
| 		} | 		} | ||||||
| 	case 398: | 	case 398: | ||||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | 		yyDollar = yyS[yypt-1 : yypt+1] | ||||||
|  | |||||||
| @ -2497,6 +2497,10 @@ non_empty_for_exprs: | |||||||
| anonymous_class: | anonymous_class: | ||||||
|         T_CLASS ctor_arguments extends_from implements_list backup_doc_comment '{' class_statement_list '}' |         T_CLASS ctor_arguments extends_from implements_list backup_doc_comment '{' class_statement_list '}' | ||||||
|             { |             { | ||||||
|  |             	if $2 == nil { | ||||||
|  |             	    $2 = &ArgumentList{} | ||||||
|  |             	} | ||||||
|  | 
 | ||||||
|                 class := &ast.StmtClass{ |                 class := &ast.StmtClass{ | ||||||
|                     Position: yylex.(*Parser).builder.NewTokensPosition($1, $8), |                     Position: yylex.(*Parser).builder.NewTokensPosition($1, $8), | ||||||
|                     ClassTkn:             $1, |                     ClassTkn:             $1, | ||||||
| @ -3490,7 +3494,7 @@ backticks_expr: | |||||||
| ctor_arguments: | ctor_arguments: | ||||||
|         /* empty */ |         /* empty */ | ||||||
|             { |             { | ||||||
|                 $$ = &ArgumentList{} |                 $$ = nil | ||||||
|             } |             } | ||||||
|     |   argument_list |     |   argument_list | ||||||
|             { |             { | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user