refactoring: update ast structure of "StaticCall" node
This commit is contained in:
parent
0f2341bfa9
commit
ad884c99df
410
internal/php5/php5.go
generated
410
internal/php5/php5.go
generated
File diff suppressed because it is too large
Load Diff
@ -3688,7 +3688,7 @@ function_call:
|
||||
}
|
||||
| class_name T_PAAMAYIM_NEKUDOTAYIM variable_name function_call_parameter_list
|
||||
{
|
||||
$$ = &ast.ExprStaticCall{
|
||||
staticCall := &ast.ExprStaticCall{
|
||||
Position: yylex.(*Parser).builder.NewNodesPosition($1, $4),
|
||||
Class: $1,
|
||||
DoubleColonTkn: $2,
|
||||
@ -3698,6 +3698,14 @@ function_call:
|
||||
SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns,
|
||||
CloseParenthesisTkn: $4.(*ast.ArgumentList).CloseParenthesisTkn,
|
||||
}
|
||||
|
||||
if brackets, ok := $3.(*ast.ParserBrackets); ok {
|
||||
staticCall.OpenCurlyBracketTkn = brackets.OpenBracketTkn
|
||||
staticCall.Call = brackets.Child
|
||||
staticCall.CloseCurlyBracketTkn = brackets.CloseBracketTkn
|
||||
}
|
||||
|
||||
$$ = staticCall
|
||||
}
|
||||
| class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects function_call_parameter_list
|
||||
{
|
||||
@ -3714,7 +3722,7 @@ function_call:
|
||||
}
|
||||
| variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_name function_call_parameter_list
|
||||
{
|
||||
$$ = &ast.ExprStaticCall{
|
||||
staticCall := &ast.ExprStaticCall{
|
||||
Position: yylex.(*Parser).builder.NewNodesPosition($1, $4),
|
||||
Class: $1,
|
||||
DoubleColonTkn: $2,
|
||||
@ -3724,6 +3732,14 @@ function_call:
|
||||
SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns,
|
||||
CloseParenthesisTkn: $4.(*ast.ArgumentList).CloseParenthesisTkn,
|
||||
}
|
||||
|
||||
if brackets, ok := $3.(*ast.ParserBrackets); ok {
|
||||
staticCall.OpenCurlyBracketTkn = brackets.OpenBracketTkn
|
||||
staticCall.Call = brackets.Child
|
||||
staticCall.CloseCurlyBracketTkn = brackets.CloseBracketTkn
|
||||
}
|
||||
|
||||
$$ = staticCall
|
||||
}
|
||||
| variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects function_call_parameter_list
|
||||
{
|
||||
|
240
internal/php7/php7.go
generated
240
internal/php7/php7.go
generated
@ -339,7 +339,7 @@ const yyEofCode = 1
|
||||
const yyErrCode = 2
|
||||
const yyInitialStackSize = 16
|
||||
|
||||
// line internal/php7/php7.y:4374
|
||||
// line internal/php7/php7.y:4390
|
||||
|
||||
// line yacctab:1
|
||||
var yyExca = [...]int{
|
||||
@ -5913,7 +5913,7 @@ yydefault:
|
||||
yyDollar = yyS[yypt-4 : yypt+1]
|
||||
// line internal/php7/php7.y:3323
|
||||
{
|
||||
yyVAL.node = &ast.ExprStaticCall{
|
||||
staticCall := &ast.ExprStaticCall{
|
||||
Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node),
|
||||
Class: yyDollar[1].node,
|
||||
DoubleColonTkn: yyDollar[2].token,
|
||||
@ -5923,12 +5923,20 @@ yydefault:
|
||||
SeparatorTkns: yyDollar[4].node.(*ast.ArgumentList).SeparatorTkns,
|
||||
CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).CloseParenthesisTkn,
|
||||
}
|
||||
|
||||
if brackets, ok := yyDollar[3].node.(*ast.ParserBrackets); ok {
|
||||
staticCall.OpenCurlyBracketTkn = brackets.OpenBracketTkn
|
||||
staticCall.Call = brackets.Child
|
||||
staticCall.CloseCurlyBracketTkn = brackets.CloseBracketTkn
|
||||
}
|
||||
|
||||
yyVAL.node = staticCall
|
||||
}
|
||||
case 386:
|
||||
yyDollar = yyS[yypt-4 : yypt+1]
|
||||
// line internal/php7/php7.y:3336
|
||||
// line internal/php7/php7.y:3344
|
||||
{
|
||||
yyVAL.node = &ast.ExprStaticCall{
|
||||
staticCall := &ast.ExprStaticCall{
|
||||
Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node),
|
||||
Class: yyDollar[1].node,
|
||||
DoubleColonTkn: yyDollar[2].token,
|
||||
@ -5938,10 +5946,18 @@ yydefault:
|
||||
SeparatorTkns: yyDollar[4].node.(*ast.ArgumentList).SeparatorTkns,
|
||||
CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).CloseParenthesisTkn,
|
||||
}
|
||||
|
||||
if brackets, ok := yyDollar[3].node.(*ast.ParserBrackets); ok {
|
||||
staticCall.OpenCurlyBracketTkn = brackets.OpenBracketTkn
|
||||
staticCall.Call = brackets.Child
|
||||
staticCall.CloseCurlyBracketTkn = brackets.CloseBracketTkn
|
||||
}
|
||||
|
||||
yyVAL.node = staticCall
|
||||
}
|
||||
case 387:
|
||||
yyDollar = yyS[yypt-2 : yypt+1]
|
||||
// line internal/php7/php7.y:3349
|
||||
// line internal/php7/php7.y:3365
|
||||
{
|
||||
yyVAL.node = &ast.ExprFunctionCall{
|
||||
Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node),
|
||||
@ -5954,7 +5970,7 @@ yydefault:
|
||||
}
|
||||
case 388:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3363
|
||||
// line internal/php7/php7.y:3379
|
||||
{
|
||||
yyVAL.node = &ast.Identifier{
|
||||
Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token),
|
||||
@ -5964,31 +5980,31 @@ yydefault:
|
||||
}
|
||||
case 389:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3371
|
||||
// line internal/php7/php7.y:3387
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
case 390:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3378
|
||||
// line internal/php7/php7.y:3394
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
case 391:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3382
|
||||
// line internal/php7/php7.y:3398
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
case 392:
|
||||
yyDollar = yyS[yypt-0 : yypt+1]
|
||||
// line internal/php7/php7.y:3389
|
||||
// line internal/php7/php7.y:3405
|
||||
{
|
||||
yyVAL.node = nil
|
||||
}
|
||||
case 393:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:3393
|
||||
// line internal/php7/php7.y:3409
|
||||
{
|
||||
yyVAL.node = &ast.ParserBrackets{
|
||||
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token),
|
||||
@ -5999,13 +6015,13 @@ yydefault:
|
||||
}
|
||||
case 394:
|
||||
yyDollar = yyS[yypt-0 : yypt+1]
|
||||
// line internal/php7/php7.y:3405
|
||||
// line internal/php7/php7.y:3421
|
||||
{
|
||||
yyVAL.list = []ast.Vertex{}
|
||||
}
|
||||
case 395:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3409
|
||||
// line internal/php7/php7.y:3425
|
||||
{
|
||||
yyVAL.list = []ast.Vertex{
|
||||
&ast.ScalarEncapsedStringPart{
|
||||
@ -6017,25 +6033,25 @@ yydefault:
|
||||
}
|
||||
case 396:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3419
|
||||
// line internal/php7/php7.y:3435
|
||||
{
|
||||
yyVAL.list = yyDollar[1].list
|
||||
}
|
||||
case 397:
|
||||
yyDollar = yyS[yypt-0 : yypt+1]
|
||||
// line internal/php7/php7.y:3426
|
||||
// line internal/php7/php7.y:3442
|
||||
{
|
||||
yyVAL.node = &ast.ArgumentList{}
|
||||
}
|
||||
case 398:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3430
|
||||
// line internal/php7/php7.y:3446
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
case 399:
|
||||
yyDollar = yyS[yypt-4 : yypt+1]
|
||||
// line internal/php7/php7.y:3437
|
||||
// line internal/php7/php7.y:3453
|
||||
{
|
||||
yyVAL.node = &ast.ExprArray{
|
||||
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token),
|
||||
@ -6048,7 +6064,7 @@ yydefault:
|
||||
}
|
||||
case 400:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:3448
|
||||
// line internal/php7/php7.y:3464
|
||||
{
|
||||
yyVAL.node = &ast.ExprArray{
|
||||
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token),
|
||||
@ -6060,7 +6076,7 @@ yydefault:
|
||||
}
|
||||
case 401:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3458
|
||||
// line internal/php7/php7.y:3474
|
||||
{
|
||||
yyVAL.node = &ast.ScalarString{
|
||||
Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token),
|
||||
@ -6070,7 +6086,7 @@ yydefault:
|
||||
}
|
||||
case 402:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3469
|
||||
// line internal/php7/php7.y:3485
|
||||
{
|
||||
yyVAL.node = &ast.ScalarLnumber{
|
||||
Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token),
|
||||
@ -6080,7 +6096,7 @@ yydefault:
|
||||
}
|
||||
case 403:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3477
|
||||
// line internal/php7/php7.y:3493
|
||||
{
|
||||
yyVAL.node = &ast.ScalarDnumber{
|
||||
Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token),
|
||||
@ -6090,7 +6106,7 @@ yydefault:
|
||||
}
|
||||
case 404:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3485
|
||||
// line internal/php7/php7.y:3501
|
||||
{
|
||||
yyVAL.node = &ast.ScalarMagicConstant{
|
||||
Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token),
|
||||
@ -6100,7 +6116,7 @@ yydefault:
|
||||
}
|
||||
case 405:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3493
|
||||
// line internal/php7/php7.y:3509
|
||||
{
|
||||
yyVAL.node = &ast.ScalarMagicConstant{
|
||||
Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token),
|
||||
@ -6110,7 +6126,7 @@ yydefault:
|
||||
}
|
||||
case 406:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3501
|
||||
// line internal/php7/php7.y:3517
|
||||
{
|
||||
yyVAL.node = &ast.ScalarMagicConstant{
|
||||
Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token),
|
||||
@ -6120,7 +6136,7 @@ yydefault:
|
||||
}
|
||||
case 407:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3509
|
||||
// line internal/php7/php7.y:3525
|
||||
{
|
||||
yyVAL.node = &ast.ScalarMagicConstant{
|
||||
Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token),
|
||||
@ -6130,7 +6146,7 @@ yydefault:
|
||||
}
|
||||
case 408:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3517
|
||||
// line internal/php7/php7.y:3533
|
||||
{
|
||||
yyVAL.node = &ast.ScalarMagicConstant{
|
||||
Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token),
|
||||
@ -6140,7 +6156,7 @@ yydefault:
|
||||
}
|
||||
case 409:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3525
|
||||
// line internal/php7/php7.y:3541
|
||||
{
|
||||
yyVAL.node = &ast.ScalarMagicConstant{
|
||||
Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token),
|
||||
@ -6150,7 +6166,7 @@ yydefault:
|
||||
}
|
||||
case 410:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3533
|
||||
// line internal/php7/php7.y:3549
|
||||
{
|
||||
yyVAL.node = &ast.ScalarMagicConstant{
|
||||
Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token),
|
||||
@ -6160,7 +6176,7 @@ yydefault:
|
||||
}
|
||||
case 411:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3541
|
||||
// line internal/php7/php7.y:3557
|
||||
{
|
||||
yyVAL.node = &ast.ScalarMagicConstant{
|
||||
Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token),
|
||||
@ -6170,7 +6186,7 @@ yydefault:
|
||||
}
|
||||
case 412:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:3549
|
||||
// line internal/php7/php7.y:3565
|
||||
{
|
||||
yyVAL.node = &ast.ScalarHeredoc{
|
||||
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token),
|
||||
@ -6187,7 +6203,7 @@ yydefault:
|
||||
}
|
||||
case 413:
|
||||
yyDollar = yyS[yypt-2 : yypt+1]
|
||||
// line internal/php7/php7.y:3564
|
||||
// line internal/php7/php7.y:3580
|
||||
{
|
||||
yyVAL.node = &ast.ScalarHeredoc{
|
||||
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token),
|
||||
@ -6197,7 +6213,7 @@ yydefault:
|
||||
}
|
||||
case 414:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:3572
|
||||
// line internal/php7/php7.y:3588
|
||||
{
|
||||
yyVAL.node = &ast.ScalarEncapsed{
|
||||
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token),
|
||||
@ -6208,7 +6224,7 @@ yydefault:
|
||||
}
|
||||
case 415:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:3581
|
||||
// line internal/php7/php7.y:3597
|
||||
{
|
||||
yyVAL.node = &ast.ScalarHeredoc{
|
||||
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token),
|
||||
@ -6219,19 +6235,19 @@ yydefault:
|
||||
}
|
||||
case 416:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3590
|
||||
// line internal/php7/php7.y:3606
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
case 417:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3594
|
||||
// line internal/php7/php7.y:3610
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
case 418:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3601
|
||||
// line internal/php7/php7.y:3617
|
||||
{
|
||||
yyVAL.node = &ast.ExprConstFetch{
|
||||
Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node),
|
||||
@ -6240,7 +6256,7 @@ yydefault:
|
||||
}
|
||||
case 419:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:3608
|
||||
// line internal/php7/php7.y:3624
|
||||
{
|
||||
yyVAL.node = &ast.ExprClassConstFetch{
|
||||
Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token),
|
||||
@ -6255,7 +6271,7 @@ yydefault:
|
||||
}
|
||||
case 420:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:3621
|
||||
// line internal/php7/php7.y:3637
|
||||
{
|
||||
yyVAL.node = &ast.ExprClassConstFetch{
|
||||
Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token),
|
||||
@ -6270,43 +6286,43 @@ yydefault:
|
||||
}
|
||||
case 421:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3637
|
||||
// line internal/php7/php7.y:3653
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
case 422:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3641
|
||||
// line internal/php7/php7.y:3657
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
case 423:
|
||||
yyDollar = yyS[yypt-0 : yypt+1]
|
||||
// line internal/php7/php7.y:3648
|
||||
// line internal/php7/php7.y:3664
|
||||
{
|
||||
yyVAL.node = nil
|
||||
}
|
||||
case 424:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3652
|
||||
// line internal/php7/php7.y:3668
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
case 425:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3659
|
||||
// line internal/php7/php7.y:3675
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
case 426:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3666
|
||||
// line internal/php7/php7.y:3682
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
case 427:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:3670
|
||||
// line internal/php7/php7.y:3686
|
||||
{
|
||||
yyVAL.node = &ast.ParserBrackets{
|
||||
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token),
|
||||
@ -6317,19 +6333,19 @@ yydefault:
|
||||
}
|
||||
case 428:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3679
|
||||
// line internal/php7/php7.y:3695
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
case 429:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3686
|
||||
// line internal/php7/php7.y:3702
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
case 430:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:3690
|
||||
// line internal/php7/php7.y:3706
|
||||
{
|
||||
yyVAL.node = &ast.ParserBrackets{
|
||||
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token),
|
||||
@ -6340,19 +6356,19 @@ yydefault:
|
||||
}
|
||||
case 431:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3699
|
||||
// line internal/php7/php7.y:3715
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
case 432:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3706
|
||||
// line internal/php7/php7.y:3722
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
case 433:
|
||||
yyDollar = yyS[yypt-4 : yypt+1]
|
||||
// line internal/php7/php7.y:3710
|
||||
// line internal/php7/php7.y:3726
|
||||
{
|
||||
yyVAL.node = &ast.ExprArrayDimFetch{
|
||||
Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token),
|
||||
@ -6364,7 +6380,7 @@ yydefault:
|
||||
}
|
||||
case 434:
|
||||
yyDollar = yyS[yypt-4 : yypt+1]
|
||||
// line internal/php7/php7.y:3720
|
||||
// line internal/php7/php7.y:3736
|
||||
{
|
||||
yyVAL.node = &ast.ExprArrayDimFetch{
|
||||
Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token),
|
||||
@ -6376,7 +6392,7 @@ yydefault:
|
||||
}
|
||||
case 435:
|
||||
yyDollar = yyS[yypt-4 : yypt+1]
|
||||
// line internal/php7/php7.y:3730
|
||||
// line internal/php7/php7.y:3746
|
||||
{
|
||||
yyVAL.node = &ast.ExprArrayDimFetch{
|
||||
Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token),
|
||||
@ -6388,7 +6404,7 @@ yydefault:
|
||||
}
|
||||
case 436:
|
||||
yyDollar = yyS[yypt-4 : yypt+1]
|
||||
// line internal/php7/php7.y:3740
|
||||
// line internal/php7/php7.y:3756
|
||||
{
|
||||
methodCall := &ast.ExprMethodCall{
|
||||
Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node),
|
||||
@ -6411,25 +6427,25 @@ yydefault:
|
||||
}
|
||||
case 437:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3761
|
||||
// line internal/php7/php7.y:3777
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
case 438:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3768
|
||||
// line internal/php7/php7.y:3784
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
case 439:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3772
|
||||
// line internal/php7/php7.y:3788
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
case 440:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:3776
|
||||
// line internal/php7/php7.y:3792
|
||||
{
|
||||
propertyFetch := &ast.ExprPropertyFetch{
|
||||
Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node),
|
||||
@ -6448,7 +6464,7 @@ yydefault:
|
||||
}
|
||||
case 441:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3796
|
||||
// line internal/php7/php7.y:3812
|
||||
{
|
||||
yyVAL.node = &ast.ExprVariable{
|
||||
Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token),
|
||||
@ -6461,7 +6477,7 @@ yydefault:
|
||||
}
|
||||
case 442:
|
||||
yyDollar = yyS[yypt-4 : yypt+1]
|
||||
// line internal/php7/php7.y:3807
|
||||
// line internal/php7/php7.y:3823
|
||||
{
|
||||
yyVAL.node = &ast.ExprVariable{
|
||||
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token),
|
||||
@ -6473,7 +6489,7 @@ yydefault:
|
||||
}
|
||||
case 443:
|
||||
yyDollar = yyS[yypt-2 : yypt+1]
|
||||
// line internal/php7/php7.y:3817
|
||||
// line internal/php7/php7.y:3833
|
||||
{
|
||||
yyVAL.node = &ast.ExprVariable{
|
||||
Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node),
|
||||
@ -6483,7 +6499,7 @@ yydefault:
|
||||
}
|
||||
case 444:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:3828
|
||||
// line internal/php7/php7.y:3844
|
||||
{
|
||||
yyVAL.node = &ast.ExprStaticPropertyFetch{
|
||||
Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node),
|
||||
@ -6494,7 +6510,7 @@ yydefault:
|
||||
}
|
||||
case 445:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:3837
|
||||
// line internal/php7/php7.y:3853
|
||||
{
|
||||
yyVAL.node = &ast.ExprStaticPropertyFetch{
|
||||
Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node),
|
||||
@ -6505,13 +6521,13 @@ yydefault:
|
||||
}
|
||||
case 446:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3849
|
||||
// line internal/php7/php7.y:3865
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
case 447:
|
||||
yyDollar = yyS[yypt-4 : yypt+1]
|
||||
// line internal/php7/php7.y:3853
|
||||
// line internal/php7/php7.y:3869
|
||||
{
|
||||
yyVAL.node = &ast.ExprArrayDimFetch{
|
||||
Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token),
|
||||
@ -6523,7 +6539,7 @@ yydefault:
|
||||
}
|
||||
case 448:
|
||||
yyDollar = yyS[yypt-4 : yypt+1]
|
||||
// line internal/php7/php7.y:3863
|
||||
// line internal/php7/php7.y:3879
|
||||
{
|
||||
yyVAL.node = &ast.ExprArrayDimFetch{
|
||||
Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token),
|
||||
@ -6535,7 +6551,7 @@ yydefault:
|
||||
}
|
||||
case 449:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:3873
|
||||
// line internal/php7/php7.y:3889
|
||||
{
|
||||
propertyFetch := &ast.ExprPropertyFetch{
|
||||
Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node),
|
||||
@ -6554,7 +6570,7 @@ yydefault:
|
||||
}
|
||||
case 450:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:3890
|
||||
// line internal/php7/php7.y:3906
|
||||
{
|
||||
yyVAL.node = &ast.ExprStaticPropertyFetch{
|
||||
Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node),
|
||||
@ -6565,7 +6581,7 @@ yydefault:
|
||||
}
|
||||
case 451:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:3899
|
||||
// line internal/php7/php7.y:3915
|
||||
{
|
||||
yyVAL.node = &ast.ExprStaticPropertyFetch{
|
||||
Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node),
|
||||
@ -6576,7 +6592,7 @@ yydefault:
|
||||
}
|
||||
case 452:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3911
|
||||
// line internal/php7/php7.y:3927
|
||||
{
|
||||
yyVAL.node = &ast.Identifier{
|
||||
Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token),
|
||||
@ -6586,7 +6602,7 @@ yydefault:
|
||||
}
|
||||
case 453:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:3919
|
||||
// line internal/php7/php7.y:3935
|
||||
{
|
||||
yyVAL.node = &ast.ParserBrackets{
|
||||
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token),
|
||||
@ -6597,13 +6613,13 @@ yydefault:
|
||||
}
|
||||
case 454:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3928
|
||||
// line internal/php7/php7.y:3944
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
case 455:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3935
|
||||
// line internal/php7/php7.y:3951
|
||||
{
|
||||
yyVAL.node = &ast.Identifier{
|
||||
Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token),
|
||||
@ -6613,7 +6629,7 @@ yydefault:
|
||||
}
|
||||
case 456:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:3943
|
||||
// line internal/php7/php7.y:3959
|
||||
{
|
||||
yyVAL.node = &ast.ParserBrackets{
|
||||
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token),
|
||||
@ -6624,13 +6640,13 @@ yydefault:
|
||||
}
|
||||
case 457:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3952
|
||||
// line internal/php7/php7.y:3968
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
case 458:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3959
|
||||
// line internal/php7/php7.y:3975
|
||||
{
|
||||
pairList := yyDollar[1].node.(*ast.ParserSeparatedList)
|
||||
fistPair := pairList.Items[0].(*ast.ExprArrayItem)
|
||||
@ -6643,19 +6659,19 @@ yydefault:
|
||||
}
|
||||
case 459:
|
||||
yyDollar = yyS[yypt-0 : yypt+1]
|
||||
// line internal/php7/php7.y:3973
|
||||
// line internal/php7/php7.y:3989
|
||||
{
|
||||
yyVAL.node = &ast.ExprArrayItem{}
|
||||
}
|
||||
case 460:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3977
|
||||
// line internal/php7/php7.y:3993
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
case 461:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:3984
|
||||
// line internal/php7/php7.y:4000
|
||||
{
|
||||
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)
|
||||
@ -6664,7 +6680,7 @@ yydefault:
|
||||
}
|
||||
case 462:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3991
|
||||
// line internal/php7/php7.y:4007
|
||||
{
|
||||
yyVAL.node = &ast.ParserSeparatedList{
|
||||
Items: []ast.Vertex{yyDollar[1].node},
|
||||
@ -6672,7 +6688,7 @@ yydefault:
|
||||
}
|
||||
case 463:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:4000
|
||||
// line internal/php7/php7.y:4016
|
||||
{
|
||||
yyVAL.node = &ast.ExprArrayItem{
|
||||
Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node),
|
||||
@ -6683,7 +6699,7 @@ yydefault:
|
||||
}
|
||||
case 464:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4009
|
||||
// line internal/php7/php7.y:4025
|
||||
{
|
||||
yyVAL.node = &ast.ExprArrayItem{
|
||||
Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node),
|
||||
@ -6692,7 +6708,7 @@ yydefault:
|
||||
}
|
||||
case 465:
|
||||
yyDollar = yyS[yypt-4 : yypt+1]
|
||||
// line internal/php7/php7.y:4016
|
||||
// line internal/php7/php7.y:4032
|
||||
{
|
||||
yyVAL.node = &ast.ExprArrayItem{
|
||||
Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node),
|
||||
@ -6704,7 +6720,7 @@ yydefault:
|
||||
}
|
||||
case 466:
|
||||
yyDollar = yyS[yypt-2 : yypt+1]
|
||||
// line internal/php7/php7.y:4026
|
||||
// line internal/php7/php7.y:4042
|
||||
{
|
||||
yyVAL.node = &ast.ExprArrayItem{
|
||||
Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node),
|
||||
@ -6714,7 +6730,7 @@ yydefault:
|
||||
}
|
||||
case 467:
|
||||
yyDollar = yyS[yypt-2 : yypt+1]
|
||||
// line internal/php7/php7.y:4034
|
||||
// line internal/php7/php7.y:4050
|
||||
{
|
||||
yyVAL.node = &ast.ExprArrayItem{
|
||||
Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node),
|
||||
@ -6724,7 +6740,7 @@ yydefault:
|
||||
}
|
||||
case 468:
|
||||
yyDollar = yyS[yypt-6 : yypt+1]
|
||||
// line internal/php7/php7.y:4042
|
||||
// line internal/php7/php7.y:4058
|
||||
{
|
||||
yyVAL.node = &ast.ExprArrayItem{
|
||||
Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token),
|
||||
@ -6742,7 +6758,7 @@ yydefault:
|
||||
}
|
||||
case 469:
|
||||
yyDollar = yyS[yypt-4 : yypt+1]
|
||||
// line internal/php7/php7.y:4058
|
||||
// line internal/php7/php7.y:4074
|
||||
{
|
||||
yyVAL.node = &ast.ExprArrayItem{
|
||||
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token),
|
||||
@ -6758,13 +6774,13 @@ yydefault:
|
||||
}
|
||||
case 470:
|
||||
yyDollar = yyS[yypt-2 : yypt+1]
|
||||
// line internal/php7/php7.y:4075
|
||||
// line internal/php7/php7.y:4091
|
||||
{
|
||||
yyVAL.list = append(yyDollar[1].list, yyDollar[2].node)
|
||||
}
|
||||
case 471:
|
||||
yyDollar = yyS[yypt-2 : yypt+1]
|
||||
// line internal/php7/php7.y:4079
|
||||
// line internal/php7/php7.y:4095
|
||||
{
|
||||
yyVAL.list = append(
|
||||
yyDollar[1].list,
|
||||
@ -6777,13 +6793,13 @@ yydefault:
|
||||
}
|
||||
case 472:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4090
|
||||
// line internal/php7/php7.y:4106
|
||||
{
|
||||
yyVAL.list = []ast.Vertex{yyDollar[1].node}
|
||||
}
|
||||
case 473:
|
||||
yyDollar = yyS[yypt-2 : yypt+1]
|
||||
// line internal/php7/php7.y:4094
|
||||
// line internal/php7/php7.y:4110
|
||||
{
|
||||
yyVAL.list = []ast.Vertex{
|
||||
&ast.ScalarEncapsedStringPart{
|
||||
@ -6796,7 +6812,7 @@ yydefault:
|
||||
}
|
||||
case 474:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4108
|
||||
// line internal/php7/php7.y:4124
|
||||
{
|
||||
yyVAL.node = &ast.ExprVariable{
|
||||
Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token),
|
||||
@ -6809,7 +6825,7 @@ yydefault:
|
||||
}
|
||||
case 475:
|
||||
yyDollar = yyS[yypt-4 : yypt+1]
|
||||
// line internal/php7/php7.y:4119
|
||||
// line internal/php7/php7.y:4135
|
||||
{
|
||||
yyVAL.node = &ast.ExprArrayDimFetch{
|
||||
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token),
|
||||
@ -6828,7 +6844,7 @@ yydefault:
|
||||
}
|
||||
case 476:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:4136
|
||||
// line internal/php7/php7.y:4152
|
||||
{
|
||||
yyVAL.node = &ast.ExprPropertyFetch{
|
||||
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token),
|
||||
@ -6850,7 +6866,7 @@ yydefault:
|
||||
}
|
||||
case 477:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:4156
|
||||
// line internal/php7/php7.y:4172
|
||||
{
|
||||
yyVAL.node = &ast.ParserBrackets{
|
||||
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token),
|
||||
@ -6864,7 +6880,7 @@ yydefault:
|
||||
}
|
||||
case 478:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:4168
|
||||
// line internal/php7/php7.y:4184
|
||||
{
|
||||
yyVAL.node = &ast.ParserBrackets{
|
||||
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token),
|
||||
@ -6882,7 +6898,7 @@ yydefault:
|
||||
}
|
||||
case 479:
|
||||
yyDollar = yyS[yypt-6 : yypt+1]
|
||||
// line internal/php7/php7.y:4184
|
||||
// line internal/php7/php7.y:4200
|
||||
{
|
||||
yyVAL.node = &ast.ParserBrackets{
|
||||
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token),
|
||||
@ -6906,7 +6922,7 @@ yydefault:
|
||||
}
|
||||
case 480:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:4206
|
||||
// line internal/php7/php7.y:4222
|
||||
{
|
||||
yyVAL.node = &ast.ParserBrackets{
|
||||
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token),
|
||||
@ -6917,7 +6933,7 @@ yydefault:
|
||||
}
|
||||
case 481:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4218
|
||||
// line internal/php7/php7.y:4234
|
||||
{
|
||||
yyVAL.node = &ast.ScalarString{
|
||||
Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token),
|
||||
@ -6927,7 +6943,7 @@ yydefault:
|
||||
}
|
||||
case 482:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4226
|
||||
// line internal/php7/php7.y:4242
|
||||
{
|
||||
// TODO: add option to handle 64 bit integer
|
||||
if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil {
|
||||
@ -6946,7 +6962,7 @@ yydefault:
|
||||
}
|
||||
case 483:
|
||||
yyDollar = yyS[yypt-2 : yypt+1]
|
||||
// line internal/php7/php7.y:4243
|
||||
// line internal/php7/php7.y:4259
|
||||
{
|
||||
_, err := strconv.Atoi(string(yyDollar[2].token.Value))
|
||||
isInt := err == nil
|
||||
@ -6972,7 +6988,7 @@ yydefault:
|
||||
}
|
||||
case 484:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4267
|
||||
// line internal/php7/php7.y:4283
|
||||
{
|
||||
yyVAL.node = &ast.ExprVariable{
|
||||
Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token),
|
||||
@ -6985,7 +7001,7 @@ yydefault:
|
||||
}
|
||||
case 485:
|
||||
yyDollar = yyS[yypt-5 : yypt+1]
|
||||
// line internal/php7/php7.y:4281
|
||||
// line internal/php7/php7.y:4297
|
||||
{
|
||||
if yyDollar[4].token != nil {
|
||||
yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[4].token)
|
||||
@ -7002,7 +7018,7 @@ yydefault:
|
||||
}
|
||||
case 486:
|
||||
yyDollar = yyS[yypt-4 : yypt+1]
|
||||
// line internal/php7/php7.y:4296
|
||||
// line internal/php7/php7.y:4312
|
||||
{
|
||||
yyVAL.node = &ast.ExprEmpty{
|
||||
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token),
|
||||
@ -7014,7 +7030,7 @@ yydefault:
|
||||
}
|
||||
case 487:
|
||||
yyDollar = yyS[yypt-2 : yypt+1]
|
||||
// line internal/php7/php7.y:4306
|
||||
// line internal/php7/php7.y:4322
|
||||
{
|
||||
yyVAL.node = &ast.ExprInclude{
|
||||
Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node),
|
||||
@ -7024,7 +7040,7 @@ yydefault:
|
||||
}
|
||||
case 488:
|
||||
yyDollar = yyS[yypt-2 : yypt+1]
|
||||
// line internal/php7/php7.y:4314
|
||||
// line internal/php7/php7.y:4330
|
||||
{
|
||||
yyVAL.node = &ast.ExprIncludeOnce{
|
||||
Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node),
|
||||
@ -7034,7 +7050,7 @@ yydefault:
|
||||
}
|
||||
case 489:
|
||||
yyDollar = yyS[yypt-4 : yypt+1]
|
||||
// line internal/php7/php7.y:4322
|
||||
// line internal/php7/php7.y:4338
|
||||
{
|
||||
yyVAL.node = &ast.ExprEval{
|
||||
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token),
|
||||
@ -7046,7 +7062,7 @@ yydefault:
|
||||
}
|
||||
case 490:
|
||||
yyDollar = yyS[yypt-2 : yypt+1]
|
||||
// line internal/php7/php7.y:4332
|
||||
// line internal/php7/php7.y:4348
|
||||
{
|
||||
yyVAL.node = &ast.ExprRequire{
|
||||
Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node),
|
||||
@ -7056,7 +7072,7 @@ yydefault:
|
||||
}
|
||||
case 491:
|
||||
yyDollar = yyS[yypt-2 : yypt+1]
|
||||
// line internal/php7/php7.y:4340
|
||||
// line internal/php7/php7.y:4356
|
||||
{
|
||||
yyVAL.node = &ast.ExprRequireOnce{
|
||||
Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node),
|
||||
@ -7066,7 +7082,7 @@ yydefault:
|
||||
}
|
||||
case 492:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4351
|
||||
// line internal/php7/php7.y:4367
|
||||
{
|
||||
yyVAL.node = &ast.ParserSeparatedList{
|
||||
Items: []ast.Vertex{yyDollar[1].node},
|
||||
@ -7074,7 +7090,7 @@ yydefault:
|
||||
}
|
||||
case 493:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:4357
|
||||
// line internal/php7/php7.y:4373
|
||||
{
|
||||
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)
|
||||
@ -7083,7 +7099,7 @@ yydefault:
|
||||
}
|
||||
case 494:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4367
|
||||
// line internal/php7/php7.y:4383
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
|
@ -3321,7 +3321,7 @@ function_call:
|
||||
}
|
||||
| class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list
|
||||
{
|
||||
$$ = &ast.ExprStaticCall{
|
||||
staticCall := &ast.ExprStaticCall{
|
||||
Position: yylex.(*Parser).builder.NewNodesPosition($1, $4),
|
||||
Class: $1,
|
||||
DoubleColonTkn: $2,
|
||||
@ -3331,10 +3331,18 @@ function_call:
|
||||
SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns,
|
||||
CloseParenthesisTkn: $4.(*ast.ArgumentList).CloseParenthesisTkn,
|
||||
}
|
||||
|
||||
if brackets, ok := $3.(*ast.ParserBrackets); ok {
|
||||
staticCall.OpenCurlyBracketTkn = brackets.OpenBracketTkn
|
||||
staticCall.Call = brackets.Child
|
||||
staticCall.CloseCurlyBracketTkn = brackets.CloseBracketTkn
|
||||
}
|
||||
|
||||
$$ = staticCall
|
||||
}
|
||||
| variable_class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list
|
||||
{
|
||||
$$ = &ast.ExprStaticCall{
|
||||
staticCall := &ast.ExprStaticCall{
|
||||
Position: yylex.(*Parser).builder.NewNodesPosition($1, $4),
|
||||
Class: $1,
|
||||
DoubleColonTkn: $2,
|
||||
@ -3344,6 +3352,14 @@ function_call:
|
||||
SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns,
|
||||
CloseParenthesisTkn: $4.(*ast.ArgumentList).CloseParenthesisTkn,
|
||||
}
|
||||
|
||||
if brackets, ok := $3.(*ast.ParserBrackets); ok {
|
||||
staticCall.OpenCurlyBracketTkn = brackets.OpenBracketTkn
|
||||
staticCall.Call = brackets.Child
|
||||
staticCall.CloseCurlyBracketTkn = brackets.CloseBracketTkn
|
||||
}
|
||||
|
||||
$$ = staticCall
|
||||
}
|
||||
| callable_expr argument_list
|
||||
{
|
||||
|
@ -1684,7 +1684,9 @@ type ExprStaticCall struct {
|
||||
Position *position.Position
|
||||
Class Vertex
|
||||
DoubleColonTkn *token.Token
|
||||
OpenCurlyBracketTkn *token.Token
|
||||
Call Vertex
|
||||
CloseCurlyBracketTkn *token.Token
|
||||
OpenParenthesisTkn *token.Token
|
||||
Arguments []Vertex
|
||||
SeparatorTkns []*token.Token
|
||||
|
@ -1473,7 +1473,9 @@ func (v *Dumper) ExprStaticCall(n *ast.ExprStaticCall) {
|
||||
v.dumpPosition(n.Position)
|
||||
v.dumpVertex("Class", n.Class)
|
||||
v.dumpToken("DoubleColonTkn", n.DoubleColonTkn)
|
||||
v.dumpToken("OpenCurlyBracketTkn", n.OpenCurlyBracketTkn)
|
||||
v.dumpVertex("Call", n.Call)
|
||||
v.dumpToken("CloseCurlyBracketTkn", n.CloseCurlyBracketTkn)
|
||||
v.dumpToken("OpenParenthesisTkn", n.OpenParenthesisTkn)
|
||||
v.dumpVertexList("Arguments", n.Arguments)
|
||||
v.dumpTokenList("SeparatorTkns", n.SeparatorTkns)
|
||||
|
@ -1394,6 +1394,17 @@ func (f *formatter) ExprShellExec(n *ast.ExprShellExec) {
|
||||
func (f *formatter) ExprStaticCall(n *ast.ExprStaticCall) {
|
||||
n.Class.Accept(f)
|
||||
n.DoubleColonTkn = f.newToken(token.T_PAAMAYIM_NEKUDOTAYIM, []byte("::"))
|
||||
|
||||
n.OpenCurlyBracketTkn = nil
|
||||
n.CloseCurlyBracketTkn = nil
|
||||
switch n.Call.(type) {
|
||||
case *ast.Identifier:
|
||||
case *ast.ExprVariable:
|
||||
default:
|
||||
n.OpenCurlyBracketTkn = f.newToken('{', []byte("{"))
|
||||
n.CloseCurlyBracketTkn = f.newToken('}', []byte("}"))
|
||||
}
|
||||
|
||||
n.Call.Accept(f)
|
||||
|
||||
n.OpenParenthesisTkn = f.newToken('(', []byte("("))
|
||||
|
@ -4692,6 +4692,36 @@ func TestFormatter_ExprStaticCall(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestFormatter_ExprStaticCall_Expr(t *testing.T) {
|
||||
o := bytes.NewBufferString("")
|
||||
|
||||
n := &ast.ExprStaticCall{
|
||||
Class: &ast.NameName{
|
||||
Parts: []ast.Vertex{
|
||||
&ast.NameNamePart{
|
||||
Value: []byte("foo"),
|
||||
},
|
||||
},
|
||||
},
|
||||
Call: &ast.ScalarString{
|
||||
Value: []byte("'bar'"),
|
||||
},
|
||||
}
|
||||
|
||||
f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1)
|
||||
n.Accept(f)
|
||||
|
||||
p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP)
|
||||
n.Accept(p)
|
||||
|
||||
expected := `foo::{'bar'}()`
|
||||
actual := o.String()
|
||||
|
||||
if expected != actual {
|
||||
t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual)
|
||||
}
|
||||
}
|
||||
|
||||
func TestFormatter_ExprStaticCall_Arguments(t *testing.T) {
|
||||
o := bytes.NewBufferString("")
|
||||
|
||||
|
@ -840,7 +840,9 @@ func (p *printer) ExprShellExec(n *ast.ExprShellExec) {
|
||||
func (p *printer) ExprStaticCall(n *ast.ExprStaticCall) {
|
||||
p.printNode(n.Class)
|
||||
p.printToken(n.DoubleColonTkn, []byte("::"))
|
||||
p.printToken(n.OpenCurlyBracketTkn, nil)
|
||||
p.printNode(n.Call)
|
||||
p.printToken(n.CloseCurlyBracketTkn, nil)
|
||||
p.printToken(n.OpenParenthesisTkn, p.ifNodeList(n.Arguments, []byte("(")))
|
||||
p.printSeparatedList(n.Arguments, n.SeparatorTkns, []byte(","))
|
||||
p.printToken(n.CloseParenthesisTkn, p.ifNodeList(n.Arguments, []byte(")")))
|
||||
|
Loading…
x
Reference in New Issue
Block a user