refactoring: update ast structure of "MethodCall" and "PropertyFetch" nodes

This commit is contained in:
Vadym Slizov
2020-12-27 23:04:09 +02:00
parent 2c09138600
commit 0f2341bfa9
9 changed files with 353 additions and 195 deletions

190
internal/php5/php5.go generated
View File

@@ -340,7 +340,7 @@ const yyEofCode = 1
const yyErrCode = 2
const yyInitialStackSize = 16
// line internal/php5/php5.y:5651
// line internal/php5/php5.y:5661
// line yacctab:1
var yyExca = [...]int{
@@ -7246,7 +7246,9 @@ yydefault:
)
yyDollar[3].list = append(yyDollar[3].list, yyDollar[4].list[1:len(yyDollar[4].list)]...)
case *ast.ExprPropertyFetch:
yyDollar[4].list[0].(*ast.ExprMethodCall).OpenCurlyBracketTkn = l.OpenCurlyBracketTkn
yyDollar[4].list[0].(*ast.ExprMethodCall).Method = l.Property
yyDollar[4].list[0].(*ast.ExprMethodCall).CloseCurlyBracketTkn = l.CloseCurlyBracketTkn
yyDollar[4].list[0].(*ast.ExprMethodCall).ObjectOperatorTkn = l.ObjectOperatorTkn
yyDollar[3].list = append(yyDollar[3].list[:len(yyDollar[3].list)-1], yyDollar[4].list...)
}
@@ -7302,25 +7304,25 @@ yydefault:
}
case 437:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:4767
// line internal/php5/php5.y:4769
{
yyVAL.node = yyDollar[1].node
}
case 438:
yyDollar = yyS[yypt-2 : yypt+1]
// line internal/php5/php5.y:4774
// line internal/php5/php5.y:4776
{
yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...)
}
case 439:
yyDollar = yyS[yypt-0 : yypt+1]
// line internal/php5/php5.y:4778
// line internal/php5/php5.y:4780
{
yyVAL.list = []ast.Vertex{}
}
case 440:
yyDollar = yyS[yypt-3 : yypt+1]
// line internal/php5/php5.y:4786
// line internal/php5/php5.y:4788
{
yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token
@@ -7339,7 +7341,9 @@ yydefault:
)
yyDollar[2].list = append(yyDollar[2].list, yyDollar[3].list[1:len(yyDollar[3].list)]...)
case *ast.ExprPropertyFetch:
yyDollar[3].list[0].(*ast.ExprMethodCall).OpenCurlyBracketTkn = l.OpenCurlyBracketTkn
yyDollar[3].list[0].(*ast.ExprMethodCall).Method = l.Property
yyDollar[3].list[0].(*ast.ExprMethodCall).CloseCurlyBracketTkn = l.CloseCurlyBracketTkn
yyDollar[3].list[0].(*ast.ExprMethodCall).ObjectOperatorTkn = l.ObjectOperatorTkn
yyDollar[2].list = append(yyDollar[2].list[:len(yyDollar[2].list)-1], yyDollar[3].list...)
}
@@ -7349,7 +7353,7 @@ yydefault:
}
case 441:
yyDollar = yyS[yypt-4 : yypt+1]
// line internal/php5/php5.y:4816
// line internal/php5/php5.y:4820
{
fetch := &ast.ExprArrayDimFetch{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token),
@@ -7363,7 +7367,7 @@ yydefault:
}
case 442:
yyDollar = yyS[yypt-4 : yypt+1]
// line internal/php5/php5.y:4828
// line internal/php5/php5.y:4832
{
fetch := &ast.ExprArrayDimFetch{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token),
@@ -7377,7 +7381,7 @@ yydefault:
}
case 443:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:4843
// line internal/php5/php5.y:4847
{
yyVAL.node = &ast.ExprMethodCall{
Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node),
@@ -7389,31 +7393,31 @@ yydefault:
}
case 444:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:4856
// line internal/php5/php5.y:4860
{
yyVAL.list = []ast.Vertex{yyDollar[1].node}
}
case 445:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:4860
// line internal/php5/php5.y:4864
{
yyVAL.list = yyDollar[1].list
}
case 446:
yyDollar = yyS[yypt-0 : yypt+1]
// line internal/php5/php5.y:4864
// line internal/php5/php5.y:4868
{
yyVAL.list = nil
}
case 447:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:4871
// line internal/php5/php5.y:4875
{
yyVAL.node = yyDollar[1].node
}
case 448:
yyDollar = yyS[yypt-2 : yypt+1]
// line internal/php5/php5.y:4875
// line internal/php5/php5.y:4879
{
for i := len(yyDollar[1].list) - 1; i >= 0; i-- {
yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node
@@ -7425,7 +7429,7 @@ yydefault:
}
case 449:
yyDollar = yyS[yypt-3 : yypt+1]
// line internal/php5/php5.y:4888
// line internal/php5/php5.y:4892
{
yyVAL.node = &ast.ExprStaticPropertyFetch{
Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node),
@@ -7436,7 +7440,7 @@ yydefault:
}
case 450:
yyDollar = yyS[yypt-3 : yypt+1]
// line internal/php5/php5.y:4897
// line internal/php5/php5.y:4901
{
yyVAL.node = &ast.ExprStaticPropertyFetch{
Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node),
@@ -7447,13 +7451,13 @@ yydefault:
}
case 451:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:4909
// line internal/php5/php5.y:4913
{
yyVAL.node = yyDollar[1].node
}
case 452:
yyDollar = yyS[yypt-4 : yypt+1]
// line internal/php5/php5.y:4916
// line internal/php5/php5.y:4920
{
yyVAL.node = &ast.ExprArrayDimFetch{
Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token),
@@ -7465,7 +7469,7 @@ yydefault:
}
case 453:
yyDollar = yyS[yypt-4 : yypt+1]
// line internal/php5/php5.y:4926
// line internal/php5/php5.y:4930
{
yyVAL.node = &ast.ExprArrayDimFetch{
Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token),
@@ -7477,31 +7481,31 @@ yydefault:
}
case 454:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:4939
// line internal/php5/php5.y:4943
{
yyVAL.node = yyDollar[1].node
}
case 455:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:4943
// line internal/php5/php5.y:4947
{
yyVAL.node = yyDollar[1].node
}
case 456:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:4947
// line internal/php5/php5.y:4951
{
yyVAL.node = yyDollar[1].node
}
case 457:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:4955
// line internal/php5/php5.y:4959
{
yyVAL.node = yyDollar[1].node
}
case 458:
yyDollar = yyS[yypt-2 : yypt+1]
// line internal/php5/php5.y:4959
// line internal/php5/php5.y:4963
{
for i := len(yyDollar[1].list) - 1; i >= 0; i-- {
yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node
@@ -7513,13 +7517,13 @@ yydefault:
}
case 459:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:4969
// line internal/php5/php5.y:4973
{
yyVAL.node = yyDollar[1].node
}
case 460:
yyDollar = yyS[yypt-4 : yypt+1]
// line internal/php5/php5.y:4976
// line internal/php5/php5.y:4980
{
yyVAL.node = &ast.ExprArrayDimFetch{
Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token),
@@ -7531,7 +7535,7 @@ yydefault:
}
case 461:
yyDollar = yyS[yypt-4 : yypt+1]
// line internal/php5/php5.y:4986
// line internal/php5/php5.y:4990
{
yyVAL.node = &ast.ExprArrayDimFetch{
Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token),
@@ -7543,13 +7547,13 @@ yydefault:
}
case 462:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:4996
// line internal/php5/php5.y:5000
{
yyVAL.node = yyDollar[1].node
}
case 463:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:5004
// line internal/php5/php5.y:5008
{
yyVAL.node = &ast.ExprVariable{
Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token),
@@ -7562,7 +7566,7 @@ yydefault:
}
case 464:
yyDollar = yyS[yypt-4 : yypt+1]
// line internal/php5/php5.y:5015
// line internal/php5/php5.y:5019
{
yyVAL.node = &ast.ExprVariable{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token),
@@ -7574,25 +7578,25 @@ yydefault:
}
case 465:
yyDollar = yyS[yypt-0 : yypt+1]
// line internal/php5/php5.y:5028
// line internal/php5/php5.y:5032
{
yyVAL.node = nil
}
case 466:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:5032
// line internal/php5/php5.y:5036
{
yyVAL.node = yyDollar[1].node
}
case 467:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:5040
// line internal/php5/php5.y:5044
{
yyVAL.list = yyDollar[1].list
}
case 468:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:5044
// line internal/php5/php5.y:5048
{
yyVAL.list = []ast.Vertex{
&ast.ExprPropertyFetch{
@@ -7603,7 +7607,7 @@ yydefault:
}
case 469:
yyDollar = yyS[yypt-4 : yypt+1]
// line internal/php5/php5.y:5056
// line internal/php5/php5.y:5060
{
fetch := &ast.ExprArrayDimFetch{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token),
@@ -7617,7 +7621,7 @@ yydefault:
}
case 470:
yyDollar = yyS[yypt-4 : yypt+1]
// line internal/php5/php5.y:5068
// line internal/php5/php5.y:5072
{
fetch := &ast.ExprArrayDimFetch{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token),
@@ -7631,18 +7635,24 @@ yydefault:
}
case 471:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:5080
// line internal/php5/php5.y:5084
{
yyVAL.list = []ast.Vertex{
&ast.ExprPropertyFetch{
Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node),
Property: yyDollar[1].node,
},
property := &ast.ExprPropertyFetch{
Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node),
Property: yyDollar[1].node,
}
if brackets, ok := yyDollar[1].node.(*ast.ParserBrackets); ok {
property.OpenCurlyBracketTkn = brackets.OpenBracketTkn
property.Property = brackets.Child
property.CloseCurlyBracketTkn = brackets.CloseBracketTkn
}
yyVAL.list = []ast.Vertex{property}
}
case 472:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:5092
// line internal/php5/php5.y:5102
{
yyVAL.node = &ast.Identifier{
Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token),
@@ -7652,7 +7662,7 @@ yydefault:
}
case 473:
yyDollar = yyS[yypt-3 : yypt+1]
// line internal/php5/php5.y:5100
// line internal/php5/php5.y:5110
{
yyVAL.node = &ast.ParserBrackets{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token),
@@ -7663,7 +7673,7 @@ yydefault:
}
case 474:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:5112
// line internal/php5/php5.y:5122
{
yyVAL.list = []ast.Vertex{
&ast.ExprVariable{
@@ -7674,7 +7684,7 @@ yydefault:
}
case 475:
yyDollar = yyS[yypt-2 : yypt+1]
// line internal/php5/php5.y:5121
// line internal/php5/php5.y:5131
{
yyVAL.list = append(yyDollar[1].list, &ast.ExprVariable{
Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token),
@@ -7683,7 +7693,7 @@ yydefault:
}
case 476:
yyDollar = yyS[yypt-3 : yypt+1]
// line internal/php5/php5.y:5131
// line internal/php5/php5.y:5141
{
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)
@@ -7692,7 +7702,7 @@ yydefault:
}
case 477:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:5138
// line internal/php5/php5.y:5148
{
yyVAL.node = &ast.ParserSeparatedList{
Items: []ast.Vertex{yyDollar[1].node},
@@ -7700,7 +7710,7 @@ yydefault:
}
case 478:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:5148
// line internal/php5/php5.y:5158
{
yyVAL.node = &ast.ExprArrayItem{
Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node),
@@ -7709,7 +7719,7 @@ yydefault:
}
case 479:
yyDollar = yyS[yypt-4 : yypt+1]
// line internal/php5/php5.y:5155
// line internal/php5/php5.y:5165
{
pairList := yyDollar[3].node.(*ast.ParserSeparatedList)
fistPair := pairList.Items[0].(*ast.ExprArrayItem)
@@ -7732,19 +7742,19 @@ yydefault:
}
case 480:
yyDollar = yyS[yypt-0 : yypt+1]
// line internal/php5/php5.y:5176
// line internal/php5/php5.y:5186
{
yyVAL.node = &ast.ExprArrayItem{}
}
case 481:
yyDollar = yyS[yypt-0 : yypt+1]
// line internal/php5/php5.y:5184
// line internal/php5/php5.y:5194
{
yyVAL.node = &ast.ParserSeparatedList{}
}
case 482:
yyDollar = yyS[yypt-2 : yypt+1]
// line internal/php5/php5.y:5188
// line internal/php5/php5.y:5198
{
if yyDollar[2].token != nil {
yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token)
@@ -7755,7 +7765,7 @@ yydefault:
}
case 483:
yyDollar = yyS[yypt-5 : yypt+1]
// line internal/php5/php5.y:5200
// line internal/php5/php5.y:5210
{
arrayItem := &ast.ExprArrayItem{
Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node),
@@ -7771,7 +7781,7 @@ yydefault:
}
case 484:
yyDollar = yyS[yypt-3 : yypt+1]
// line internal/php5/php5.y:5214
// line internal/php5/php5.y:5224
{
arrayItem := &ast.ExprArrayItem{
Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[3].node),
@@ -7785,7 +7795,7 @@ yydefault:
}
case 485:
yyDollar = yyS[yypt-3 : yypt+1]
// line internal/php5/php5.y:5226
// line internal/php5/php5.y:5236
{
yyVAL.node = &ast.ParserSeparatedList{
Items: []ast.Vertex{
@@ -7800,7 +7810,7 @@ yydefault:
}
case 486:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:5239
// line internal/php5/php5.y:5249
{
yyVAL.node = &ast.ParserSeparatedList{
Items: []ast.Vertex{
@@ -7813,7 +7823,7 @@ yydefault:
}
case 487:
yyDollar = yyS[yypt-6 : yypt+1]
// line internal/php5/php5.y:5250
// line internal/php5/php5.y:5260
{
arrayItem := &ast.ExprArrayItem{
Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[3].node, yyDollar[6].node),
@@ -7830,7 +7840,7 @@ yydefault:
}
case 488:
yyDollar = yyS[yypt-4 : yypt+1]
// line internal/php5/php5.y:5265
// line internal/php5/php5.y:5275
{
arrayItem := &ast.ExprArrayItem{
Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node),
@@ -7845,7 +7855,7 @@ yydefault:
}
case 489:
yyDollar = yyS[yypt-4 : yypt+1]
// line internal/php5/php5.y:5278
// line internal/php5/php5.y:5288
{
yyVAL.node = &ast.ParserSeparatedList{
Items: []ast.Vertex{
@@ -7861,7 +7871,7 @@ yydefault:
}
case 490:
yyDollar = yyS[yypt-2 : yypt+1]
// line internal/php5/php5.y:5292
// line internal/php5/php5.y:5302
{
yyVAL.node = &ast.ParserSeparatedList{
Items: []ast.Vertex{
@@ -7875,13 +7885,13 @@ yydefault:
}
case 491:
yyDollar = yyS[yypt-2 : yypt+1]
// line internal/php5/php5.y:5307
// line internal/php5/php5.y:5317
{
yyVAL.list = append(yyDollar[1].list, yyDollar[2].node)
}
case 492:
yyDollar = yyS[yypt-2 : yypt+1]
// line internal/php5/php5.y:5311
// line internal/php5/php5.y:5321
{
yyVAL.list = append(
yyDollar[1].list,
@@ -7894,13 +7904,13 @@ yydefault:
}
case 493:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:5322
// line internal/php5/php5.y:5332
{
yyVAL.list = []ast.Vertex{yyDollar[1].node}
}
case 494:
yyDollar = yyS[yypt-2 : yypt+1]
// line internal/php5/php5.y:5326
// line internal/php5/php5.y:5336
{
yyVAL.list = []ast.Vertex{
&ast.ScalarEncapsedStringPart{
@@ -7913,7 +7923,7 @@ yydefault:
}
case 495:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:5340
// line internal/php5/php5.y:5350
{
yyVAL.node = &ast.ExprVariable{
Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token),
@@ -7926,7 +7936,7 @@ yydefault:
}
case 496:
yyDollar = yyS[yypt-4 : yypt+1]
// line internal/php5/php5.y:5351
// line internal/php5/php5.y:5361
{
yyVAL.node = &ast.ExprArrayDimFetch{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token),
@@ -7945,7 +7955,7 @@ yydefault:
}
case 497:
yyDollar = yyS[yypt-3 : yypt+1]
// line internal/php5/php5.y:5368
// line internal/php5/php5.y:5378
{
yyVAL.node = &ast.ExprPropertyFetch{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token),
@@ -7967,7 +7977,7 @@ yydefault:
}
case 498:
yyDollar = yyS[yypt-3 : yypt+1]
// line internal/php5/php5.y:5388
// line internal/php5/php5.y:5398
{
yyVAL.node = &ast.ParserBrackets{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token),
@@ -7981,7 +7991,7 @@ yydefault:
}
case 499:
yyDollar = yyS[yypt-3 : yypt+1]
// line internal/php5/php5.y:5400
// line internal/php5/php5.y:5410
{
yyVAL.node = &ast.ParserBrackets{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token),
@@ -7999,7 +8009,7 @@ yydefault:
}
case 500:
yyDollar = yyS[yypt-6 : yypt+1]
// line internal/php5/php5.y:5416
// line internal/php5/php5.y:5426
{
yyVAL.node = &ast.ParserBrackets{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token),
@@ -8023,7 +8033,7 @@ yydefault:
}
case 501:
yyDollar = yyS[yypt-3 : yypt+1]
// line internal/php5/php5.y:5438
// line internal/php5/php5.y:5448
{
yyVAL.node = &ast.ParserBrackets{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token),
@@ -8034,7 +8044,7 @@ yydefault:
}
case 502:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:5450
// line internal/php5/php5.y:5460
{
yyVAL.node = &ast.ScalarString{
Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token),
@@ -8044,7 +8054,7 @@ yydefault:
}
case 503:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:5458
// line internal/php5/php5.y:5468
{
// TODO: add option to handle 64 bit integer
if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil {
@@ -8063,7 +8073,7 @@ yydefault:
}
case 504:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:5475
// line internal/php5/php5.y:5485
{
yyVAL.node = &ast.ExprVariable{
Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token),
@@ -8076,7 +8086,7 @@ yydefault:
}
case 505:
yyDollar = yyS[yypt-4 : yypt+1]
// line internal/php5/php5.y:5489
// line internal/php5/php5.y:5499
{
yyVAL.node = &ast.ExprIsset{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token),
@@ -8089,7 +8099,7 @@ yydefault:
}
case 506:
yyDollar = yyS[yypt-4 : yypt+1]
// line internal/php5/php5.y:5500
// line internal/php5/php5.y:5510
{
yyVAL.node = &ast.ExprEmpty{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token),
@@ -8101,7 +8111,7 @@ yydefault:
}
case 507:
yyDollar = yyS[yypt-4 : yypt+1]
// line internal/php5/php5.y:5510
// line internal/php5/php5.y:5520
{
yyVAL.node = &ast.ExprEmpty{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token),
@@ -8113,7 +8123,7 @@ yydefault:
}
case 508:
yyDollar = yyS[yypt-2 : yypt+1]
// line internal/php5/php5.y:5520
// line internal/php5/php5.y:5530
{
yyVAL.node = &ast.ExprInclude{
Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node),
@@ -8123,7 +8133,7 @@ yydefault:
}
case 509:
yyDollar = yyS[yypt-2 : yypt+1]
// line internal/php5/php5.y:5528
// line internal/php5/php5.y:5538
{
yyVAL.node = &ast.ExprIncludeOnce{
Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node),
@@ -8133,7 +8143,7 @@ yydefault:
}
case 510:
yyDollar = yyS[yypt-4 : yypt+1]
// line internal/php5/php5.y:5536
// line internal/php5/php5.y:5546
{
yyVAL.node = &ast.ExprEval{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token),
@@ -8145,7 +8155,7 @@ yydefault:
}
case 511:
yyDollar = yyS[yypt-2 : yypt+1]
// line internal/php5/php5.y:5546
// line internal/php5/php5.y:5556
{
yyVAL.node = &ast.ExprRequire{
Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node),
@@ -8155,7 +8165,7 @@ yydefault:
}
case 512:
yyDollar = yyS[yypt-2 : yypt+1]
// line internal/php5/php5.y:5554
// line internal/php5/php5.y:5564
{
yyVAL.node = &ast.ExprRequireOnce{
Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node),
@@ -8165,7 +8175,7 @@ yydefault:
}
case 513:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:5565
// line internal/php5/php5.y:5575
{
yyVAL.node = &ast.ParserSeparatedList{
Items: []ast.Vertex{yyDollar[1].node},
@@ -8173,7 +8183,7 @@ yydefault:
}
case 514:
yyDollar = yyS[yypt-3 : yypt+1]
// line internal/php5/php5.y:5571
// line internal/php5/php5.y:5581
{
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)
@@ -8182,19 +8192,19 @@ yydefault:
}
case 515:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:5581
// line internal/php5/php5.y:5591
{
yyVAL.node = yyDollar[1].node
}
case 516:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:5585
// line internal/php5/php5.y:5595
{
yyVAL.node = yyDollar[1].node
}
case 517:
yyDollar = yyS[yypt-3 : yypt+1]
// line internal/php5/php5.y:5592
// line internal/php5/php5.y:5602
{
yyVAL.node = &ast.ExprClassConstFetch{
Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token),
@@ -8209,7 +8219,7 @@ yydefault:
}
case 518:
yyDollar = yyS[yypt-3 : yypt+1]
// line internal/php5/php5.y:5605
// line internal/php5/php5.y:5615
{
yyVAL.node = &ast.ExprClassConstFetch{
Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token),
@@ -8224,7 +8234,7 @@ yydefault:
}
case 519:
yyDollar = yyS[yypt-3 : yypt+1]
// line internal/php5/php5.y:5621
// line internal/php5/php5.y:5631
{
yyVAL.node = &ast.ExprClassConstFetch{
Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token),
@@ -8239,7 +8249,7 @@ yydefault:
}
case 520:
yyDollar = yyS[yypt-3 : yypt+1]
// line internal/php5/php5.y:5637
// line internal/php5/php5.y:5647
{
yyVAL.node = &ast.ExprClassConstFetch{
Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token),

View File

@@ -4709,7 +4709,9 @@ variable:
)
$3 = append($3, $4[1:len($4)]...)
case *ast.ExprPropertyFetch:
$4[0].(*ast.ExprMethodCall).OpenCurlyBracketTkn = l.OpenCurlyBracketTkn
$4[0].(*ast.ExprMethodCall).Method = l.Property
$4[0].(*ast.ExprMethodCall).CloseCurlyBracketTkn = l.CloseCurlyBracketTkn
$4[0].(*ast.ExprMethodCall).ObjectOperatorTkn = l.ObjectOperatorTkn
$3 = append($3[:len($3)-1], $4...)
}
@@ -4801,7 +4803,9 @@ variable_property:
)
$2 = append($2, $3[1:len($3)]...)
case *ast.ExprPropertyFetch:
$3[0].(*ast.ExprMethodCall).OpenCurlyBracketTkn = l.OpenCurlyBracketTkn
$3[0].(*ast.ExprMethodCall).Method = l.Property
$3[0].(*ast.ExprMethodCall).CloseCurlyBracketTkn = l.CloseCurlyBracketTkn
$3[0].(*ast.ExprMethodCall).ObjectOperatorTkn = l.ObjectOperatorTkn
$2 = append($2[:len($2)-1], $3...)
}
@@ -5078,12 +5082,18 @@ object_dim_list:
}
| variable_name
{
$$ = []ast.Vertex{
&ast.ExprPropertyFetch{
Position: yylex.(*Parser).builder.NewNodePosition($1),
Property: $1,
},
property := &ast.ExprPropertyFetch{
Position: yylex.(*Parser).builder.NewNodePosition($1),
Property: $1,
}
if brackets, ok := $1.(*ast.ParserBrackets); ok {
property.OpenCurlyBracketTkn = brackets.OpenBracketTkn
property.Property = brackets.Child
property.CloseCurlyBracketTkn = brackets.CloseBracketTkn
}
$$ = []ast.Vertex{ property }
}
;