[refactoring] update ast structure of "Print", "Reference", "Require" and "RequireOnce" nodes
This commit is contained in:
		
							parent
							
								
									45e959056b
								
							
						
					
					
						commit
						592c9b9aff
					
				
							
								
								
									
										472
									
								
								internal/php5/php5.go
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										472
									
								
								internal/php5/php5.go
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -1609,13 +1609,13 @@ foreach_variable: | ||||
|             } | ||||
|     |   '&' variable | ||||
|             { | ||||
|                 $$ = &ast.ExprReference{ast.Node{}, $2} | ||||
| 
 | ||||
|                 // save position | ||||
|                 $$.GetNode().Position = position.NewTokenNodePosition($1, $2) | ||||
| 
 | ||||
|                 // save comments | ||||
|                 yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) | ||||
|                 $$ = &ast.ExprReference{ | ||||
|                     Node: ast.Node{ | ||||
|                         Position: position.NewTokenNodePosition($1, $2), | ||||
|                     }, | ||||
|                     AmpersandTkn: $1, | ||||
|                     Var:          $2, | ||||
|                 } | ||||
|             } | ||||
|     |   T_LIST '(' assignment_list ')' | ||||
|             { | ||||
| @ -3943,13 +3943,13 @@ expr_without_variable: | ||||
|             } | ||||
|     |   T_PRINT expr | ||||
|             { | ||||
|                 $$ = &ast.ExprPrint{ast.Node{}, $2} | ||||
| 
 | ||||
|                 // save position | ||||
|                 $$.GetNode().Position = position.NewTokenNodePosition($1, $2) | ||||
| 
 | ||||
|                 // save comments | ||||
|                 yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) | ||||
|                 $$ = &ast.ExprPrint{ | ||||
|                     Node: ast.Node{ | ||||
|                         Position: position.NewTokenNodePosition($1, $2), | ||||
|                     }, | ||||
|                     PrintTkn: $1, | ||||
|                     Expr:     $2, | ||||
|                 } | ||||
|             } | ||||
|     |   T_YIELD | ||||
|             { | ||||
| @ -4182,6 +4182,7 @@ lexical_var_list: | ||||
|                     Node: ast.Node{ | ||||
|                         Position: position.NewTokensPosition($3, $4), | ||||
|                     }, | ||||
|                     AmpersandTkn: $3, | ||||
|                     Var: &ast.ExprVariable{ | ||||
|                         Node: ast.Node{ | ||||
|                             Position: position.NewTokenPosition($4), | ||||
| @ -4228,6 +4229,7 @@ lexical_var_list: | ||||
|                             Node: ast.Node{ | ||||
|                                 Position: position.NewTokensPosition($1, $2), | ||||
|                             }, | ||||
|                             AmpersandTkn: $1, | ||||
|                             Var: &ast.ExprVariable{ | ||||
|                                 Node: ast.Node{ | ||||
|                                     Position: position.NewTokenPosition($2), | ||||
| @ -6100,7 +6102,8 @@ non_empty_array_pair_list: | ||||
|                         Node: ast.Node{ | ||||
|                             Position: position.NewTokenNodePosition($5, $6), | ||||
|                         }, | ||||
|                         Var: $6, | ||||
|                         AmpersandTkn: $5, | ||||
|                         Var:          $6, | ||||
|                     }, | ||||
|                 } | ||||
| 
 | ||||
| @ -6119,7 +6122,8 @@ non_empty_array_pair_list: | ||||
|                         Node: ast.Node{ | ||||
|                             Position: position.NewTokenNodePosition($3, $4), | ||||
|                         }, | ||||
|                         Var: $4, | ||||
|                         AmpersandTkn: $3, | ||||
|                         Var:          $4, | ||||
|                     }, | ||||
|                 } | ||||
| 
 | ||||
| @ -6142,7 +6146,8 @@ non_empty_array_pair_list: | ||||
|                                 Node: ast.Node{ | ||||
|                                     Position: position.NewTokenNodePosition($3, $4), | ||||
|                                 }, | ||||
|                                 Var: $4, | ||||
|                                 AmpersandTkn: $3, | ||||
|                                 Var:          $4, | ||||
|                             }, | ||||
|                         }, | ||||
|                     }, | ||||
| @ -6160,7 +6165,8 @@ non_empty_array_pair_list: | ||||
|                                 Node: ast.Node{ | ||||
|                                     Position: position.NewTokenNodePosition($1, $2), | ||||
|                                 }, | ||||
|                                 Var: $2, | ||||
|                                 AmpersandTkn: $1, | ||||
|                                 Var:          $2, | ||||
|                             }, | ||||
|                         }, | ||||
|                     }, | ||||
| @ -6471,23 +6477,23 @@ internal_functions_in_yacc: | ||||
|             } | ||||
|     |   T_REQUIRE expr | ||||
|             { | ||||
|                 $$ = &ast.ExprRequire{ast.Node{}, $2} | ||||
| 
 | ||||
|                 // save position | ||||
|                 $$.GetNode().Position = position.NewTokenNodePosition($1, $2) | ||||
| 
 | ||||
|                 // save comments | ||||
|                 yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) | ||||
|                 $$ = &ast.ExprRequire{ | ||||
|                     Node: ast.Node{ | ||||
|                         Position: position.NewTokenNodePosition($1, $2), | ||||
|                     }, | ||||
|                     RequireTkn: $1, | ||||
|                     Expr:       $2, | ||||
|                 } | ||||
|             } | ||||
|     |   T_REQUIRE_ONCE expr | ||||
|             { | ||||
|                 $$ = &ast.ExprRequireOnce{ast.Node{}, $2} | ||||
| 
 | ||||
|                 // save position | ||||
|                 $$.GetNode().Position = position.NewTokenNodePosition($1, $2) | ||||
| 
 | ||||
|                 // save comments | ||||
|                 yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) | ||||
|                 $$ = &ast.ExprRequireOnce{ | ||||
|                     Node: ast.Node{ | ||||
|                         Position: position.NewTokenNodePosition($1, $2), | ||||
|                     }, | ||||
|                     RequireOnceTkn: $1, | ||||
|                     Expr:           $2, | ||||
|                 } | ||||
|             } | ||||
| ; | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										315
									
								
								internal/php7/php7.go
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										315
									
								
								internal/php7/php7.go
									
									
									
										generated
									
									
									
								
							| @ -343,7 +343,7 @@ const yyEofCode = 1 | ||||
| const yyErrCode = 2 | ||||
| const yyInitialStackSize = 16 | ||||
| 
 | ||||
| // line internal/php7/php7.y:5008 | ||||
| // line internal/php7/php7.y:5011 | ||||
| 
 | ||||
| // line yacctab:1 | ||||
| var yyExca = [...]int{ | ||||
| @ -3812,13 +3812,13 @@ yydefault: | ||||
| 		yyDollar = yyS[yypt-2 : yypt+1] | ||||
| // line internal/php7/php7.y:1445 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} | ||||
| 
 | ||||
| 			// save position | ||||
| 			yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) | ||||
| 
 | ||||
| 			// save comments | ||||
| 			yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) | ||||
| 			yyVAL.node = &ast.ExprReference{ | ||||
| 				Node: ast.Node{ | ||||
| 					Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), | ||||
| 				}, | ||||
| 				AmpersandTkn: yyDollar[1].token, | ||||
| 				Var:          yyDollar[2].node, | ||||
| 			} | ||||
| 		} | ||||
| 	case 186: | ||||
| 		yyDollar = yyS[yypt-4 : yypt+1] | ||||
| @ -6156,13 +6156,13 @@ yydefault: | ||||
| 		yyDollar = yyS[yypt-2 : yypt+1] | ||||
| // line internal/php7/php7.y:3583 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} | ||||
| 
 | ||||
| 			// save position | ||||
| 			yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) | ||||
| 
 | ||||
| 			// save comments | ||||
| 			yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) | ||||
| 			yyVAL.node = &ast.ExprPrint{ | ||||
| 				Node: ast.Node{ | ||||
| 					Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), | ||||
| 				}, | ||||
| 				PrintTkn: yyDollar[1].token, | ||||
| 				Expr:     yyDollar[2].node, | ||||
| 			} | ||||
| 		} | ||||
| 	case 367: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| @ -6347,27 +6347,28 @@ yydefault: | ||||
| 		yyDollar = yyS[yypt-2 : yypt+1] | ||||
| // line internal/php7/php7.y:3761 | ||||
| 		{ | ||||
| 			identifier := &ast.Identifier{ | ||||
| 			yyVAL.node = &ast.ExprReference{ | ||||
| 				Node: ast.Node{ | ||||
| 					Position: position.NewTokenPosition(yyDollar[2].token), | ||||
| 					Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), | ||||
| 				}, | ||||
| 				AmpersandTkn: yyDollar[1].token, | ||||
| 				Var: &ast.ExprVariable{ | ||||
| 					Node: ast.Node{ | ||||
| 						Position: position.NewTokenPosition(yyDollar[2].token), | ||||
| 					}, | ||||
| 					VarName: &ast.Identifier{ | ||||
| 						Node: ast.Node{ | ||||
| 							Position: position.NewTokenPosition(yyDollar[2].token), | ||||
| 						}, | ||||
| 						IdentifierTkn: yyDollar[2].token, | ||||
| 						Value:         yyDollar[2].token.Value, | ||||
| 					}, | ||||
| 				}, | ||||
| 				IdentifierTkn: yyDollar[2].token, | ||||
| 				Value:         yyDollar[2].token.Value, | ||||
| 			} | ||||
| 			variable := &ast.ExprVariable{ast.Node{}, identifier} | ||||
| 			yyVAL.node = &ast.ExprReference{ast.Node{}, variable} | ||||
| 
 | ||||
| 			// save position | ||||
| 			variable.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) | ||||
| 			yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) | ||||
| 
 | ||||
| 			// save comments | ||||
| 			yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) | ||||
| 			yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[2].token.SkippedTokens) | ||||
| 		} | ||||
| 	case 384: | ||||
| 		yyDollar = yyS[yypt-2 : yypt+1] | ||||
| // line internal/php7/php7.y:3784 | ||||
| // line internal/php7/php7.y:3785 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprFunctionCall{ | ||||
| 				Node: ast.Node{ | ||||
| @ -6381,7 +6382,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 385: | ||||
| 		yyDollar = yyS[yypt-4 : yypt+1] | ||||
| // line internal/php7/php7.y:3796 | ||||
| // line internal/php7/php7.y:3797 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} | ||||
| 
 | ||||
| @ -6394,7 +6395,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 386: | ||||
| 		yyDollar = yyS[yypt-4 : yypt+1] | ||||
| // line internal/php7/php7.y:3807 | ||||
| // line internal/php7/php7.y:3808 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} | ||||
| 
 | ||||
| @ -6407,7 +6408,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 387: | ||||
| 		yyDollar = yyS[yypt-2 : yypt+1] | ||||
| // line internal/php7/php7.y:3818 | ||||
| // line internal/php7/php7.y:3819 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprFunctionCall{ | ||||
| 				Node: ast.Node{ | ||||
| @ -6421,7 +6422,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 388: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:3833 | ||||
| // line internal/php7/php7.y:3834 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.Identifier{ | ||||
| 				Node: ast.Node{ | ||||
| @ -6433,31 +6434,31 @@ yydefault: | ||||
| 		} | ||||
| 	case 389: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:3843 | ||||
| // line internal/php7/php7.y:3844 | ||||
| 		{ | ||||
| 			yyVAL.node = yyDollar[1].node | ||||
| 		} | ||||
| 	case 390: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:3850 | ||||
| // line internal/php7/php7.y:3851 | ||||
| 		{ | ||||
| 			yyVAL.node = yyDollar[1].node | ||||
| 		} | ||||
| 	case 391: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:3854 | ||||
| // line internal/php7/php7.y:3855 | ||||
| 		{ | ||||
| 			yyVAL.node = yyDollar[1].node | ||||
| 		} | ||||
| 	case 392: | ||||
| 		yyDollar = yyS[yypt-0 : yypt+1] | ||||
| // line internal/php7/php7.y:3861 | ||||
| // line internal/php7/php7.y:3862 | ||||
| 		{ | ||||
| 			yyVAL.node = nil | ||||
| 		} | ||||
| 	case 393: | ||||
| 		yyDollar = yyS[yypt-3 : yypt+1] | ||||
| // line internal/php7/php7.y:3865 | ||||
| // line internal/php7/php7.y:3866 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ParserBrackets{ | ||||
| 				Node: ast.Node{ | ||||
| @ -6474,13 +6475,13 @@ yydefault: | ||||
| 		} | ||||
| 	case 394: | ||||
| 		yyDollar = yyS[yypt-0 : yypt+1] | ||||
| // line internal/php7/php7.y:3883 | ||||
| // line internal/php7/php7.y:3884 | ||||
| 		{ | ||||
| 			yyVAL.list = []ast.Vertex{} | ||||
| 		} | ||||
| 	case 395: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:3887 | ||||
| // line internal/php7/php7.y:3888 | ||||
| 		{ | ||||
| 			yyVAL.list = []ast.Vertex{ | ||||
| 				&ast.ScalarEncapsedStringPart{ | ||||
| @ -6494,25 +6495,25 @@ yydefault: | ||||
| 		} | ||||
| 	case 396: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:3899 | ||||
| // line internal/php7/php7.y:3900 | ||||
| 		{ | ||||
| 			yyVAL.list = yyDollar[1].list | ||||
| 		} | ||||
| 	case 397: | ||||
| 		yyDollar = yyS[yypt-0 : yypt+1] | ||||
| // line internal/php7/php7.y:3906 | ||||
| // line internal/php7/php7.y:3907 | ||||
| 		{ | ||||
| 			yyVAL.node = nil | ||||
| 		} | ||||
| 	case 398: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:3910 | ||||
| // line internal/php7/php7.y:3911 | ||||
| 		{ | ||||
| 			yyVAL.node = yyDollar[1].node | ||||
| 		} | ||||
| 	case 399: | ||||
| 		yyDollar = yyS[yypt-4 : yypt+1] | ||||
| // line internal/php7/php7.y:3917 | ||||
| // line internal/php7/php7.y:3918 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprArray{ | ||||
| 				Node: ast.Node{ | ||||
| @ -6527,7 +6528,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 400: | ||||
| 		yyDollar = yyS[yypt-3 : yypt+1] | ||||
| // line internal/php7/php7.y:3930 | ||||
| // line internal/php7/php7.y:3931 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprArray{ | ||||
| 				Node: ast.Node{ | ||||
| @ -6541,7 +6542,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 401: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:3942 | ||||
| // line internal/php7/php7.y:3943 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ScalarString{ | ||||
| 				Node: ast.Node{ | ||||
| @ -6553,7 +6554,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 402: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:3955 | ||||
| // line internal/php7/php7.y:3956 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ScalarLnumber{ | ||||
| 				Node: ast.Node{ | ||||
| @ -6565,7 +6566,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 403: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:3965 | ||||
| // line internal/php7/php7.y:3966 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ScalarDnumber{ | ||||
| 				Node: ast.Node{ | ||||
| @ -6577,7 +6578,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 404: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:3975 | ||||
| // line internal/php7/php7.y:3976 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ScalarMagicConstant{ | ||||
| 				Node: ast.Node{ | ||||
| @ -6589,7 +6590,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 405: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:3985 | ||||
| // line internal/php7/php7.y:3986 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ScalarMagicConstant{ | ||||
| 				Node: ast.Node{ | ||||
| @ -6601,7 +6602,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 406: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:3995 | ||||
| // line internal/php7/php7.y:3996 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ScalarMagicConstant{ | ||||
| 				Node: ast.Node{ | ||||
| @ -6613,7 +6614,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 407: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:4005 | ||||
| // line internal/php7/php7.y:4006 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ScalarMagicConstant{ | ||||
| 				Node: ast.Node{ | ||||
| @ -6625,7 +6626,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 408: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:4015 | ||||
| // line internal/php7/php7.y:4016 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ScalarMagicConstant{ | ||||
| 				Node: ast.Node{ | ||||
| @ -6637,7 +6638,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 409: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:4025 | ||||
| // line internal/php7/php7.y:4026 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ScalarMagicConstant{ | ||||
| 				Node: ast.Node{ | ||||
| @ -6649,7 +6650,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 410: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:4035 | ||||
| // line internal/php7/php7.y:4036 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ScalarMagicConstant{ | ||||
| 				Node: ast.Node{ | ||||
| @ -6661,7 +6662,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 411: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:4045 | ||||
| // line internal/php7/php7.y:4046 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ScalarMagicConstant{ | ||||
| 				Node: ast.Node{ | ||||
| @ -6673,7 +6674,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 412: | ||||
| 		yyDollar = yyS[yypt-3 : yypt+1] | ||||
| // line internal/php7/php7.y:4055 | ||||
| // line internal/php7/php7.y:4056 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ScalarHeredoc{ | ||||
| 				Node: ast.Node{ | ||||
| @ -6694,7 +6695,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 413: | ||||
| 		yyDollar = yyS[yypt-2 : yypt+1] | ||||
| // line internal/php7/php7.y:4074 | ||||
| // line internal/php7/php7.y:4075 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ScalarHeredoc{ | ||||
| 				Node: ast.Node{ | ||||
| @ -6706,7 +6707,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 414: | ||||
| 		yyDollar = yyS[yypt-3 : yypt+1] | ||||
| // line internal/php7/php7.y:4084 | ||||
| // line internal/php7/php7.y:4085 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ScalarEncapsed{ | ||||
| 				Node: ast.Node{ | ||||
| @ -6719,7 +6720,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 415: | ||||
| 		yyDollar = yyS[yypt-3 : yypt+1] | ||||
| // line internal/php7/php7.y:4095 | ||||
| // line internal/php7/php7.y:4096 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ScalarHeredoc{ | ||||
| 				Node: ast.Node{ | ||||
| @ -6732,19 +6733,19 @@ yydefault: | ||||
| 		} | ||||
| 	case 416: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:4106 | ||||
| // line internal/php7/php7.y:4107 | ||||
| 		{ | ||||
| 			yyVAL.node = yyDollar[1].node | ||||
| 		} | ||||
| 	case 417: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:4110 | ||||
| // line internal/php7/php7.y:4111 | ||||
| 		{ | ||||
| 			yyVAL.node = yyDollar[1].node | ||||
| 		} | ||||
| 	case 418: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:4117 | ||||
| // line internal/php7/php7.y:4118 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprConstFetch{ | ||||
| 				Node: ast.Node{ | ||||
| @ -6755,7 +6756,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 419: | ||||
| 		yyDollar = yyS[yypt-3 : yypt+1] | ||||
| // line internal/php7/php7.y:4126 | ||||
| // line internal/php7/php7.y:4127 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprClassConstFetch{ | ||||
| 				Node: ast.Node{ | ||||
| @ -6774,7 +6775,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 420: | ||||
| 		yyDollar = yyS[yypt-3 : yypt+1] | ||||
| // line internal/php7/php7.y:4143 | ||||
| // line internal/php7/php7.y:4144 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprClassConstFetch{ | ||||
| 				Node: ast.Node{ | ||||
| @ -6793,43 +6794,43 @@ yydefault: | ||||
| 		} | ||||
| 	case 421: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:4163 | ||||
| // line internal/php7/php7.y:4164 | ||||
| 		{ | ||||
| 			yyVAL.node = yyDollar[1].node | ||||
| 		} | ||||
| 	case 422: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:4167 | ||||
| // line internal/php7/php7.y:4168 | ||||
| 		{ | ||||
| 			yyVAL.node = yyDollar[1].node | ||||
| 		} | ||||
| 	case 423: | ||||
| 		yyDollar = yyS[yypt-0 : yypt+1] | ||||
| // line internal/php7/php7.y:4174 | ||||
| // line internal/php7/php7.y:4175 | ||||
| 		{ | ||||
| 			yyVAL.node = nil | ||||
| 		} | ||||
| 	case 424: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:4178 | ||||
| // line internal/php7/php7.y:4179 | ||||
| 		{ | ||||
| 			yyVAL.node = yyDollar[1].node | ||||
| 		} | ||||
| 	case 425: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:4185 | ||||
| // line internal/php7/php7.y:4186 | ||||
| 		{ | ||||
| 			yyVAL.node = yyDollar[1].node | ||||
| 		} | ||||
| 	case 426: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:4192 | ||||
| // line internal/php7/php7.y:4193 | ||||
| 		{ | ||||
| 			yyVAL.node = yyDollar[1].node | ||||
| 		} | ||||
| 	case 427: | ||||
| 		yyDollar = yyS[yypt-3 : yypt+1] | ||||
| // line internal/php7/php7.y:4196 | ||||
| // line internal/php7/php7.y:4197 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ParserBrackets{ | ||||
| 				Node: ast.Node{ | ||||
| @ -6846,19 +6847,19 @@ yydefault: | ||||
| 		} | ||||
| 	case 428: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:4211 | ||||
| // line internal/php7/php7.y:4212 | ||||
| 		{ | ||||
| 			yyVAL.node = yyDollar[1].node | ||||
| 		} | ||||
| 	case 429: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:4218 | ||||
| // line internal/php7/php7.y:4219 | ||||
| 		{ | ||||
| 			yyVAL.node = yyDollar[1].node | ||||
| 		} | ||||
| 	case 430: | ||||
| 		yyDollar = yyS[yypt-3 : yypt+1] | ||||
| // line internal/php7/php7.y:4222 | ||||
| // line internal/php7/php7.y:4223 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ParserBrackets{ | ||||
| 				Node: ast.Node{ | ||||
| @ -6875,19 +6876,19 @@ yydefault: | ||||
| 		} | ||||
| 	case 431: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:4237 | ||||
| // line internal/php7/php7.y:4238 | ||||
| 		{ | ||||
| 			yyVAL.node = yyDollar[1].node | ||||
| 		} | ||||
| 	case 432: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:4244 | ||||
| // line internal/php7/php7.y:4245 | ||||
| 		{ | ||||
| 			yyVAL.node = yyDollar[1].node | ||||
| 		} | ||||
| 	case 433: | ||||
| 		yyDollar = yyS[yypt-4 : yypt+1] | ||||
| // line internal/php7/php7.y:4248 | ||||
| // line internal/php7/php7.y:4249 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprArrayDimFetch{ | ||||
| 				Node: ast.Node{ | ||||
| @ -6901,7 +6902,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 434: | ||||
| 		yyDollar = yyS[yypt-4 : yypt+1] | ||||
| // line internal/php7/php7.y:4260 | ||||
| // line internal/php7/php7.y:4261 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprArrayDimFetch{ | ||||
| 				Node: ast.Node{ | ||||
| @ -6915,7 +6916,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 435: | ||||
| 		yyDollar = yyS[yypt-4 : yypt+1] | ||||
| // line internal/php7/php7.y:4272 | ||||
| // line internal/php7/php7.y:4273 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprArrayDimFetch{ | ||||
| 				Node: ast.Node{ | ||||
| @ -6929,7 +6930,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 436: | ||||
| 		yyDollar = yyS[yypt-4 : yypt+1] | ||||
| // line internal/php7/php7.y:4284 | ||||
| // line internal/php7/php7.y:4285 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprMethodCall{ | ||||
| 				Node: ast.Node{ | ||||
| @ -6945,25 +6946,25 @@ yydefault: | ||||
| 		} | ||||
| 	case 437: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:4298 | ||||
| // line internal/php7/php7.y:4299 | ||||
| 		{ | ||||
| 			yyVAL.node = yyDollar[1].node | ||||
| 		} | ||||
| 	case 438: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:4305 | ||||
| // line internal/php7/php7.y:4306 | ||||
| 		{ | ||||
| 			yyVAL.node = yyDollar[1].node | ||||
| 		} | ||||
| 	case 439: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:4309 | ||||
| // line internal/php7/php7.y:4310 | ||||
| 		{ | ||||
| 			yyVAL.node = yyDollar[1].node | ||||
| 		} | ||||
| 	case 440: | ||||
| 		yyDollar = yyS[yypt-3 : yypt+1] | ||||
| // line internal/php7/php7.y:4313 | ||||
| // line internal/php7/php7.y:4314 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprPropertyFetch{ | ||||
| 				Node: ast.Node{ | ||||
| @ -6976,7 +6977,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 441: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:4327 | ||||
| // line internal/php7/php7.y:4328 | ||||
| 		{ | ||||
| 			name := &ast.Identifier{ | ||||
| 				Node: ast.Node{ | ||||
| @ -6995,7 +6996,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 442: | ||||
| 		yyDollar = yyS[yypt-4 : yypt+1] | ||||
| // line internal/php7/php7.y:4344 | ||||
| // line internal/php7/php7.y:4345 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} | ||||
| 
 | ||||
| @ -7009,7 +7010,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 443: | ||||
| 		yyDollar = yyS[yypt-2 : yypt+1] | ||||
| // line internal/php7/php7.y:4356 | ||||
| // line internal/php7/php7.y:4357 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} | ||||
| 
 | ||||
| @ -7021,7 +7022,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 444: | ||||
| 		yyDollar = yyS[yypt-3 : yypt+1] | ||||
| // line internal/php7/php7.y:4369 | ||||
| // line internal/php7/php7.y:4370 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} | ||||
| 
 | ||||
| @ -7034,7 +7035,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 445: | ||||
| 		yyDollar = yyS[yypt-3 : yypt+1] | ||||
| // line internal/php7/php7.y:4380 | ||||
| // line internal/php7/php7.y:4381 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} | ||||
| 
 | ||||
| @ -7047,13 +7048,13 @@ yydefault: | ||||
| 		} | ||||
| 	case 446: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:4394 | ||||
| // line internal/php7/php7.y:4395 | ||||
| 		{ | ||||
| 			yyVAL.node = yyDollar[1].node | ||||
| 		} | ||||
| 	case 447: | ||||
| 		yyDollar = yyS[yypt-4 : yypt+1] | ||||
| // line internal/php7/php7.y:4398 | ||||
| // line internal/php7/php7.y:4399 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprArrayDimFetch{ | ||||
| 				Node: ast.Node{ | ||||
| @ -7067,7 +7068,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 448: | ||||
| 		yyDollar = yyS[yypt-4 : yypt+1] | ||||
| // line internal/php7/php7.y:4410 | ||||
| // line internal/php7/php7.y:4411 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprArrayDimFetch{ | ||||
| 				Node: ast.Node{ | ||||
| @ -7081,7 +7082,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 449: | ||||
| 		yyDollar = yyS[yypt-3 : yypt+1] | ||||
| // line internal/php7/php7.y:4422 | ||||
| // line internal/php7/php7.y:4423 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprPropertyFetch{ | ||||
| 				Node: ast.Node{ | ||||
| @ -7094,7 +7095,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 450: | ||||
| 		yyDollar = yyS[yypt-3 : yypt+1] | ||||
| // line internal/php7/php7.y:4433 | ||||
| // line internal/php7/php7.y:4434 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} | ||||
| 
 | ||||
| @ -7107,7 +7108,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 451: | ||||
| 		yyDollar = yyS[yypt-3 : yypt+1] | ||||
| // line internal/php7/php7.y:4444 | ||||
| // line internal/php7/php7.y:4445 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} | ||||
| 
 | ||||
| @ -7120,7 +7121,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 452: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:4458 | ||||
| // line internal/php7/php7.y:4459 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.Identifier{ | ||||
| 				Node: ast.Node{ | ||||
| @ -7132,7 +7133,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 453: | ||||
| 		yyDollar = yyS[yypt-3 : yypt+1] | ||||
| // line internal/php7/php7.y:4468 | ||||
| // line internal/php7/php7.y:4469 | ||||
| 		{ | ||||
| 			yyVAL.node = yyDollar[2].node | ||||
| 
 | ||||
| @ -7142,13 +7143,13 @@ yydefault: | ||||
| 		} | ||||
| 	case 454: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:4476 | ||||
| // line internal/php7/php7.y:4477 | ||||
| 		{ | ||||
| 			yyVAL.node = yyDollar[1].node | ||||
| 		} | ||||
| 	case 455: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:4483 | ||||
| // line internal/php7/php7.y:4484 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.Identifier{ | ||||
| 				Node: ast.Node{ | ||||
| @ -7160,7 +7161,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 456: | ||||
| 		yyDollar = yyS[yypt-3 : yypt+1] | ||||
| // line internal/php7/php7.y:4493 | ||||
| // line internal/php7/php7.y:4494 | ||||
| 		{ | ||||
| 			yyVAL.node = yyDollar[2].node | ||||
| 
 | ||||
| @ -7170,13 +7171,13 @@ yydefault: | ||||
| 		} | ||||
| 	case 457: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:4501 | ||||
| // line internal/php7/php7.y:4502 | ||||
| 		{ | ||||
| 			yyVAL.node = yyDollar[1].node | ||||
| 		} | ||||
| 	case 458: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:4508 | ||||
| // line internal/php7/php7.y:4509 | ||||
| 		{ | ||||
| 			pairList := yyDollar[1].node.(*ast.ParserSeparatedList) | ||||
| 			fistPair := pairList.Items[0].(*ast.ExprArrayItem) | ||||
| @ -7189,19 +7190,19 @@ yydefault: | ||||
| 		} | ||||
| 	case 459: | ||||
| 		yyDollar = yyS[yypt-0 : yypt+1] | ||||
| // line internal/php7/php7.y:4522 | ||||
| // line internal/php7/php7.y:4523 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprArrayItem{} | ||||
| 		} | ||||
| 	case 460: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:4526 | ||||
| // line internal/php7/php7.y:4527 | ||||
| 		{ | ||||
| 			yyVAL.node = yyDollar[1].node | ||||
| 		} | ||||
| 	case 461: | ||||
| 		yyDollar = yyS[yypt-3 : yypt+1] | ||||
| // line internal/php7/php7.y:4533 | ||||
| // line internal/php7/php7.y:4534 | ||||
| 		{ | ||||
| 			yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) | ||||
| 			yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) | ||||
| @ -7210,7 +7211,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 462: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:4540 | ||||
| // line internal/php7/php7.y:4541 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ParserSeparatedList{ | ||||
| 				Items: []ast.Vertex{yyDollar[1].node}, | ||||
| @ -7218,7 +7219,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 463: | ||||
| 		yyDollar = yyS[yypt-3 : yypt+1] | ||||
| // line internal/php7/php7.y:4549 | ||||
| // line internal/php7/php7.y:4550 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprArrayItem{ | ||||
| 				Node: ast.Node{ | ||||
| @ -7231,7 +7232,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 464: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:4560 | ||||
| // line internal/php7/php7.y:4561 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprArrayItem{ | ||||
| 				Node: ast.Node{ | ||||
| @ -7242,7 +7243,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 465: | ||||
| 		yyDollar = yyS[yypt-4 : yypt+1] | ||||
| // line internal/php7/php7.y:4569 | ||||
| // line internal/php7/php7.y:4570 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprArrayItem{ | ||||
| 				Node: ast.Node{ | ||||
| @ -7254,13 +7255,14 @@ yydefault: | ||||
| 					Node: ast.Node{ | ||||
| 						Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node), | ||||
| 					}, | ||||
| 					Var: yyDollar[4].node, | ||||
| 					AmpersandTkn: yyDollar[3].token, | ||||
| 					Var:          yyDollar[4].node, | ||||
| 				}, | ||||
| 			} | ||||
| 		} | ||||
| 	case 466: | ||||
| 		yyDollar = yyS[yypt-2 : yypt+1] | ||||
| // line internal/php7/php7.y:4585 | ||||
| // line internal/php7/php7.y:4587 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprArrayItem{ | ||||
| 				Node: ast.Node{ | ||||
| @ -7270,13 +7272,14 @@ yydefault: | ||||
| 					Node: ast.Node{ | ||||
| 						Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), | ||||
| 					}, | ||||
| 					Var: yyDollar[2].node, | ||||
| 					AmpersandTkn: yyDollar[1].token, | ||||
| 					Var:          yyDollar[2].node, | ||||
| 				}, | ||||
| 			} | ||||
| 		} | ||||
| 	case 467: | ||||
| 		yyDollar = yyS[yypt-2 : yypt+1] | ||||
| // line internal/php7/php7.y:4599 | ||||
| // line internal/php7/php7.y:4602 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprArrayItem{ | ||||
| 				Node: ast.Node{ | ||||
| @ -7288,7 +7291,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 468: | ||||
| 		yyDollar = yyS[yypt-6 : yypt+1] | ||||
| // line internal/php7/php7.y:4609 | ||||
| // line internal/php7/php7.y:4612 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprArrayItem{ | ||||
| 				Node: ast.Node{ | ||||
| @ -7310,7 +7313,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 469: | ||||
| 		yyDollar = yyS[yypt-4 : yypt+1] | ||||
| // line internal/php7/php7.y:4629 | ||||
| // line internal/php7/php7.y:4632 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprArrayItem{ | ||||
| 				Node: ast.Node{ | ||||
| @ -7330,13 +7333,13 @@ yydefault: | ||||
| 		} | ||||
| 	case 470: | ||||
| 		yyDollar = yyS[yypt-2 : yypt+1] | ||||
| // line internal/php7/php7.y:4650 | ||||
| // line internal/php7/php7.y:4653 | ||||
| 		{ | ||||
| 			yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) | ||||
| 		} | ||||
| 	case 471: | ||||
| 		yyDollar = yyS[yypt-2 : yypt+1] | ||||
| // line internal/php7/php7.y:4654 | ||||
| // line internal/php7/php7.y:4657 | ||||
| 		{ | ||||
| 			yyVAL.list = append( | ||||
| 				yyDollar[1].list, | ||||
| @ -7351,13 +7354,13 @@ yydefault: | ||||
| 		} | ||||
| 	case 472: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:4667 | ||||
| // line internal/php7/php7.y:4670 | ||||
| 		{ | ||||
| 			yyVAL.list = []ast.Vertex{yyDollar[1].node} | ||||
| 		} | ||||
| 	case 473: | ||||
| 		yyDollar = yyS[yypt-2 : yypt+1] | ||||
| // line internal/php7/php7.y:4671 | ||||
| // line internal/php7/php7.y:4674 | ||||
| 		{ | ||||
| 			yyVAL.list = []ast.Vertex{ | ||||
| 				&ast.ScalarEncapsedStringPart{ | ||||
| @ -7372,7 +7375,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 474: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:4687 | ||||
| // line internal/php7/php7.y:4690 | ||||
| 		{ | ||||
| 			name := &ast.Identifier{ | ||||
| 				Node: ast.Node{ | ||||
| @ -7391,7 +7394,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 475: | ||||
| 		yyDollar = yyS[yypt-4 : yypt+1] | ||||
| // line internal/php7/php7.y:4704 | ||||
| // line internal/php7/php7.y:4707 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprArrayDimFetch{ | ||||
| 				Node: ast.Node{ | ||||
| @ -7416,7 +7419,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 476: | ||||
| 		yyDollar = yyS[yypt-3 : yypt+1] | ||||
| // line internal/php7/php7.y:4727 | ||||
| // line internal/php7/php7.y:4730 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprPropertyFetch{ | ||||
| 				Node: ast.Node{ | ||||
| @ -7446,7 +7449,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 477: | ||||
| 		yyDollar = yyS[yypt-3 : yypt+1] | ||||
| // line internal/php7/php7.y:4755 | ||||
| // line internal/php7/php7.y:4758 | ||||
| 		{ | ||||
| 			variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} | ||||
| 
 | ||||
| @ -7461,7 +7464,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 478: | ||||
| 		yyDollar = yyS[yypt-3 : yypt+1] | ||||
| // line internal/php7/php7.y:4768 | ||||
| // line internal/php7/php7.y:4771 | ||||
| 		{ | ||||
| 			name := &ast.Identifier{ | ||||
| 				Node: ast.Node{ | ||||
| @ -7483,7 +7486,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 479: | ||||
| 		yyDollar = yyS[yypt-6 : yypt+1] | ||||
| // line internal/php7/php7.y:4788 | ||||
| // line internal/php7/php7.y:4791 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprArrayDimFetch{ | ||||
| 				Node: ast.Node{ | ||||
| @ -7510,7 +7513,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 480: | ||||
| 		yyDollar = yyS[yypt-3 : yypt+1] | ||||
| // line internal/php7/php7.y:4813 | ||||
| // line internal/php7/php7.y:4816 | ||||
| 		{ | ||||
| 			yyVAL.node = yyDollar[2].node | ||||
| 
 | ||||
| @ -7520,7 +7523,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 481: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:4824 | ||||
| // line internal/php7/php7.y:4827 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ScalarString{ | ||||
| 				Node: ast.Node{ | ||||
| @ -7532,7 +7535,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 482: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:4834 | ||||
| // line internal/php7/php7.y:4837 | ||||
| 		{ | ||||
| 			// TODO: add option to handle 64 bit integer | ||||
| 			if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { | ||||
| @ -7555,7 +7558,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 483: | ||||
| 		yyDollar = yyS[yypt-2 : yypt+1] | ||||
| // line internal/php7/php7.y:4855 | ||||
| // line internal/php7/php7.y:4858 | ||||
| 		{ | ||||
| 			_, err := strconv.Atoi(string(yyDollar[2].token.Value)) | ||||
| 			isInt := err == nil | ||||
| @ -7583,7 +7586,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 484: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:4881 | ||||
| // line internal/php7/php7.y:4884 | ||||
| 		{ | ||||
| 			identifier := &ast.Identifier{ | ||||
| 				Node: ast.Node{ | ||||
| @ -7602,7 +7605,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 485: | ||||
| 		yyDollar = yyS[yypt-5 : yypt+1] | ||||
| // line internal/php7/php7.y:4901 | ||||
| // line internal/php7/php7.y:4904 | ||||
| 		{ | ||||
| 			if yyDollar[4].token != nil { | ||||
| 				yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[4].token) | ||||
| @ -7621,7 +7624,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 486: | ||||
| 		yyDollar = yyS[yypt-4 : yypt+1] | ||||
| // line internal/php7/php7.y:4918 | ||||
| // line internal/php7/php7.y:4921 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprEmpty{ | ||||
| 				Node: ast.Node{ | ||||
| @ -7635,7 +7638,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 487: | ||||
| 		yyDollar = yyS[yypt-2 : yypt+1] | ||||
| // line internal/php7/php7.y:4930 | ||||
| // line internal/php7/php7.y:4933 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprInclude{ | ||||
| 				Node: ast.Node{ | ||||
| @ -7647,7 +7650,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 488: | ||||
| 		yyDollar = yyS[yypt-2 : yypt+1] | ||||
| // line internal/php7/php7.y:4940 | ||||
| // line internal/php7/php7.y:4943 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprIncludeOnce{ | ||||
| 				Node: ast.Node{ | ||||
| @ -7659,7 +7662,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 489: | ||||
| 		yyDollar = yyS[yypt-4 : yypt+1] | ||||
| // line internal/php7/php7.y:4950 | ||||
| // line internal/php7/php7.y:4953 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprEval{ | ||||
| 				Node: ast.Node{ | ||||
| @ -7673,31 +7676,31 @@ yydefault: | ||||
| 		} | ||||
| 	case 490: | ||||
| 		yyDollar = yyS[yypt-2 : yypt+1] | ||||
| // line internal/php7/php7.y:4962 | ||||
| // line internal/php7/php7.y:4965 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} | ||||
| 
 | ||||
| 			// save position | ||||
| 			yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) | ||||
| 
 | ||||
| 			// save comments | ||||
| 			yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) | ||||
| 			yyVAL.node = &ast.ExprRequire{ | ||||
| 				Node: ast.Node{ | ||||
| 					Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), | ||||
| 				}, | ||||
| 				RequireTkn: yyDollar[1].token, | ||||
| 				Expr:       yyDollar[2].node, | ||||
| 			} | ||||
| 		} | ||||
| 	case 491: | ||||
| 		yyDollar = yyS[yypt-2 : yypt+1] | ||||
| // line internal/php7/php7.y:4972 | ||||
| // line internal/php7/php7.y:4975 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} | ||||
| 
 | ||||
| 			// save position | ||||
| 			yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) | ||||
| 
 | ||||
| 			// save comments | ||||
| 			yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) | ||||
| 			yyVAL.node = &ast.ExprRequireOnce{ | ||||
| 				Node: ast.Node{ | ||||
| 					Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), | ||||
| 				}, | ||||
| 				RequireOnceTkn: yyDollar[1].token, | ||||
| 				Expr:           yyDollar[2].node, | ||||
| 			} | ||||
| 		} | ||||
| 	case 492: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:4985 | ||||
| // line internal/php7/php7.y:4988 | ||||
| 		{ | ||||
| 			yyVAL.node = &ast.ParserSeparatedList{ | ||||
| 				Items: []ast.Vertex{yyDollar[1].node}, | ||||
| @ -7705,7 +7708,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 493: | ||||
| 		yyDollar = yyS[yypt-3 : yypt+1] | ||||
| // line internal/php7/php7.y:4991 | ||||
| // line internal/php7/php7.y:4994 | ||||
| 		{ | ||||
| 			yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) | ||||
| 			yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) | ||||
| @ -7714,7 +7717,7 @@ yydefault: | ||||
| 		} | ||||
| 	case 494: | ||||
| 		yyDollar = yyS[yypt-1 : yypt+1] | ||||
| // line internal/php7/php7.y:5001 | ||||
| // line internal/php7/php7.y:5004 | ||||
| 		{ | ||||
| 			yyVAL.node = yyDollar[1].node | ||||
| 		} | ||||
|  | ||||
| @ -1443,13 +1443,13 @@ foreach_variable: | ||||
|             } | ||||
|     |   '&' variable | ||||
|             { | ||||
|                 $$ = &ast.ExprReference{ast.Node{}, $2} | ||||
| 
 | ||||
|                 // save position | ||||
|                 $$.GetNode().Position = position.NewTokenNodePosition($1, $2) | ||||
| 
 | ||||
|                 // save comments | ||||
|                 yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) | ||||
|                 $$ = &ast.ExprReference{ | ||||
|                     Node: ast.Node{ | ||||
|                         Position: position.NewTokenNodePosition($1, $2), | ||||
|                     }, | ||||
|                     AmpersandTkn: $1, | ||||
|                     Var:          $2, | ||||
|                 } | ||||
|             } | ||||
|     |   T_LIST '(' array_pair_list ')' | ||||
|             { | ||||
| @ -3581,13 +3581,13 @@ expr_without_variable: | ||||
|             } | ||||
|     |   T_PRINT expr | ||||
|             { | ||||
|                 $$ = &ast.ExprPrint{ast.Node{}, $2} | ||||
| 
 | ||||
|                 // save position | ||||
|                 $$.GetNode().Position = position.NewTokenNodePosition($1, $2) | ||||
| 
 | ||||
|                 // save comments | ||||
|                 yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) | ||||
|                 $$ = &ast.ExprPrint{ | ||||
|                     Node: ast.Node{ | ||||
|                         Position: position.NewTokenNodePosition($1, $2), | ||||
|                     }, | ||||
|                     PrintTkn: $1, | ||||
|                     Expr:     $2, | ||||
|                 } | ||||
|             } | ||||
|     |   T_YIELD | ||||
|             { | ||||
| @ -3759,23 +3759,24 @@ lexical_var: | ||||
|             } | ||||
|     |   '&' T_VARIABLE | ||||
|             { | ||||
|                 identifier := &ast.Identifier{ | ||||
|                 $$ = &ast.ExprReference{ | ||||
|                     Node: ast.Node{ | ||||
|                         Position: position.NewTokenPosition($2), | ||||
|                         Position: position.NewTokensPosition($1, $2), | ||||
|                     }, | ||||
|                     AmpersandTkn: $1, | ||||
|                     Var: &ast.ExprVariable{ | ||||
|                         Node: ast.Node{ | ||||
|                             Position: position.NewTokenPosition($2), | ||||
|                         }, | ||||
|                         VarName: &ast.Identifier{ | ||||
|                             Node: ast.Node{ | ||||
|                                 Position: position.NewTokenPosition($2), | ||||
|                             }, | ||||
|                             IdentifierTkn: $2, | ||||
|                             Value:         $2.Value, | ||||
|                         }, | ||||
|                     }, | ||||
|                     IdentifierTkn: $2, | ||||
|                     Value:         $2.Value, | ||||
|                 } | ||||
|                 variable := &ast.ExprVariable{ast.Node{}, identifier} | ||||
|                 $$ = &ast.ExprReference{ast.Node{}, variable} | ||||
| 
 | ||||
|                 // save position | ||||
|                 variable.GetNode().Position = position.NewTokenPosition($2) | ||||
|                 $$.GetNode().Position = position.NewTokensPosition($1, $2) | ||||
| 
 | ||||
|                 // save comments | ||||
|                 yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) | ||||
|                 yylex.(*Parser).setFreeFloating(variable, token.Start, $2.SkippedTokens) | ||||
|             } | ||||
| ; | ||||
| 
 | ||||
| @ -4577,7 +4578,8 @@ array_pair: | ||||
|                         Node: ast.Node{ | ||||
|                             Position: position.NewTokenNodePosition($3, $4), | ||||
|                         }, | ||||
|                         Var: $4, | ||||
|                         AmpersandTkn: $3, | ||||
|                         Var:          $4, | ||||
|                     }, | ||||
|                 } | ||||
|             } | ||||
| @ -4591,7 +4593,8 @@ array_pair: | ||||
|                         Node: ast.Node{ | ||||
|                             Position: position.NewTokenNodePosition($1, $2), | ||||
|                         }, | ||||
|                         Var: $2, | ||||
|                         AmpersandTkn: $1, | ||||
|                         Var:          $2, | ||||
|                     }, | ||||
|                 } | ||||
|             } | ||||
| @ -4960,23 +4963,23 @@ internal_functions_in_yacc: | ||||
|             } | ||||
|     |   T_REQUIRE expr | ||||
|             { | ||||
|                 $$ = &ast.ExprRequire{ast.Node{}, $2} | ||||
| 
 | ||||
|                 // save position | ||||
|                 $$.GetNode().Position = position.NewTokenNodePosition($1, $2) | ||||
| 
 | ||||
|                 // save comments | ||||
|                 yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) | ||||
|                 $$ = &ast.ExprRequire{ | ||||
|                     Node: ast.Node{ | ||||
|                         Position: position.NewTokenNodePosition($1, $2), | ||||
|                     }, | ||||
|                     RequireTkn: $1, | ||||
|                     Expr:       $2, | ||||
|                 } | ||||
|             } | ||||
|     |   T_REQUIRE_ONCE expr | ||||
|             { | ||||
|                 $$ = &ast.ExprRequireOnce{ast.Node{}, $2} | ||||
| 
 | ||||
|                 // save position | ||||
|                 $$.GetNode().Position = position.NewTokenNodePosition($1, $2) | ||||
| 
 | ||||
|                 // save comments | ||||
|                 yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) | ||||
|                 $$ = &ast.ExprRequireOnce{ | ||||
|                     Node: ast.Node{ | ||||
|                         Position: position.NewTokenNodePosition($1, $2), | ||||
|                     }, | ||||
|                     RequireOnceTkn: $1, | ||||
|                     Expr:           $2, | ||||
|                 } | ||||
|             } | ||||
| ; | ||||
| 
 | ||||
|  | ||||
| @ -1288,7 +1288,8 @@ func (n *ExprPreInc) Accept(v NodeVisitor) { | ||||
| // ExprPrint node | ||||
| type ExprPrint struct { | ||||
| 	Node | ||||
| 	Expr Vertex | ||||
| 	PrintTkn *token.Token | ||||
| 	Expr     Vertex | ||||
| } | ||||
| 
 | ||||
| func (n *ExprPrint) Accept(v NodeVisitor) { | ||||
| @ -1310,7 +1311,8 @@ func (n *ExprPropertyFetch) Accept(v NodeVisitor) { | ||||
| // ExprReference node | ||||
| type ExprReference struct { | ||||
| 	Node | ||||
| 	Var Vertex | ||||
| 	AmpersandTkn *token.Token | ||||
| 	Var          Vertex | ||||
| } | ||||
| 
 | ||||
| func (n *ExprReference) Accept(v NodeVisitor) { | ||||
| @ -1320,7 +1322,8 @@ func (n *ExprReference) Accept(v NodeVisitor) { | ||||
| // ExprRequire node | ||||
| type ExprRequire struct { | ||||
| 	Node | ||||
| 	Expr Vertex | ||||
| 	RequireTkn *token.Token | ||||
| 	Expr       Vertex | ||||
| } | ||||
| 
 | ||||
| func (n *ExprRequire) Accept(v NodeVisitor) { | ||||
| @ -1330,7 +1333,8 @@ func (n *ExprRequire) Accept(v NodeVisitor) { | ||||
| // ExprRequireOnce node | ||||
| type ExprRequireOnce struct { | ||||
| 	Node | ||||
| 	Expr Vertex | ||||
| 	RequireOnceTkn *token.Token | ||||
| 	Expr           Vertex | ||||
| } | ||||
| 
 | ||||
| func (n *ExprRequireOnce) Accept(v NodeVisitor) { | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user