[refactoring] update printer

This commit is contained in:
Vadym Slizov 2020-12-11 09:54:26 +02:00
parent f3a605aba1
commit 497e7f82ee
No known key found for this signature in database
GPG Key ID: AEA2A9388EF42A4A
10 changed files with 2916 additions and 4270 deletions

164
internal/php5/php5.go generated
View File

@ -2315,6 +2315,8 @@ yydefault:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:266
{
yylex.(*Parser).currentToken.Value = nil
yylex.(*Parser).rootNode = &ast.Root{
Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].list),
Stmts: yyDollar[1].list,
@ -2323,7 +2325,7 @@ yydefault:
}
case 2:
yyDollar = yyS[yypt-2 : yypt+1]
// line internal/php5/php5.y:277
// line internal/php5/php5.y:279
{
if yyDollar[2].node != nil {
yyVAL.list = append(yyDollar[1].list, yyDollar[2].node)
@ -2331,13 +2333,13 @@ yydefault:
}
case 3:
yyDollar = yyS[yypt-0 : yypt+1]
// line internal/php5/php5.y:283
// line internal/php5/php5.y:285
{
yyVAL.list = []ast.Vertex{}
}
case 4:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:290
// line internal/php5/php5.y:292
{
yyVAL.node = &ast.ParserSeparatedList{
Items: []ast.Vertex{
@ -2351,7 +2353,7 @@ yydefault:
}
case 5:
yyDollar = yyS[yypt-3 : yypt+1]
// line internal/php5/php5.y:302
// line internal/php5/php5.y:304
{
part := &ast.NameNamePart{
Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token),
@ -2366,32 +2368,32 @@ yydefault:
}
case 6:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:318
// line internal/php5/php5.y:320
{
// error
yyVAL.node = nil
}
case 7:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:323
// line internal/php5/php5.y:325
{
yyVAL.node = yyDollar[1].node
}
case 8:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:327
// line internal/php5/php5.y:329
{
yyVAL.node = yyDollar[1].node
}
case 9:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:331
// line internal/php5/php5.y:333
{
yyVAL.node = yyDollar[1].node
}
case 10:
yyDollar = yyS[yypt-4 : yypt+1]
// line internal/php5/php5.y:335
// line internal/php5/php5.y:337
{
yyVAL.node = &ast.StmtHaltCompiler{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token),
@ -2403,7 +2405,7 @@ yydefault:
}
case 11:
yyDollar = yyS[yypt-3 : yypt+1]
// line internal/php5/php5.y:345
// line internal/php5/php5.y:347
{
yyVAL.node = &ast.StmtNamespace{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token),
@ -2418,7 +2420,7 @@ yydefault:
}
case 12:
yyDollar = yyS[yypt-5 : yypt+1]
// line internal/php5/php5.y:358
// line internal/php5/php5.y:360
{
yyVAL.node = &ast.StmtNamespace{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token),
@ -2435,7 +2437,7 @@ yydefault:
}
case 13:
yyDollar = yyS[yypt-4 : yypt+1]
// line internal/php5/php5.y:373
// line internal/php5/php5.y:375
{
yyVAL.node = &ast.StmtNamespace{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token),
@ -2447,7 +2449,7 @@ yydefault:
}
case 14:
yyDollar = yyS[yypt-3 : yypt+1]
// line internal/php5/php5.y:383
// line internal/php5/php5.y:385
{
yyVAL.node = &ast.StmtUse{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token),
@ -2459,7 +2461,7 @@ yydefault:
}
case 15:
yyDollar = yyS[yypt-4 : yypt+1]
// line internal/php5/php5.y:393
// line internal/php5/php5.y:395
{
yyVAL.node = &ast.StmtUse{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token),
@ -2476,7 +2478,7 @@ yydefault:
}
case 16:
yyDollar = yyS[yypt-4 : yypt+1]
// line internal/php5/php5.y:408
// line internal/php5/php5.y:410
{
yyVAL.node = &ast.StmtUse{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token),
@ -2493,7 +2495,7 @@ yydefault:
}
case 17:
yyDollar = yyS[yypt-2 : yypt+1]
// line internal/php5/php5.y:423
// line internal/php5/php5.y:425
{
yyDollar[1].node.(*ast.StmtConstList).SemiColonTkn = yyDollar[2].token
yyDollar[1].node.(*ast.StmtConstList).Position = yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)
@ -2501,7 +2503,7 @@ yydefault:
}
case 18:
yyDollar = yyS[yypt-3 : yypt+1]
// line internal/php5/php5.y:432
// line internal/php5/php5.y:434
{
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)
@ -2510,7 +2512,7 @@ yydefault:
}
case 19:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:439
// line internal/php5/php5.y:441
{
yyVAL.node = &ast.ParserSeparatedList{
Items: []ast.Vertex{yyDollar[1].node},
@ -2518,7 +2520,7 @@ yydefault:
}
case 20:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:448
// line internal/php5/php5.y:450
{
yyVAL.node = &ast.StmtUseDeclaration{
Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items),
@ -2531,7 +2533,7 @@ yydefault:
}
case 21:
yyDollar = yyS[yypt-3 : yypt+1]
// line internal/php5/php5.y:459
// line internal/php5/php5.y:461
{
yyVAL.node = &ast.StmtUseDeclaration{
Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].token),
@ -2550,7 +2552,7 @@ yydefault:
}
case 22:
yyDollar = yyS[yypt-2 : yypt+1]
// line internal/php5/php5.y:476
// line internal/php5/php5.y:478
{
yyVAL.node = &ast.StmtUseDeclaration{
Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items),
@ -2564,7 +2566,7 @@ yydefault:
}
case 23:
yyDollar = yyS[yypt-4 : yypt+1]
// line internal/php5/php5.y:488
// line internal/php5/php5.y:490
{
yyVAL.node = &ast.StmtUseDeclaration{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token),
@ -2584,7 +2586,7 @@ yydefault:
}
case 24:
yyDollar = yyS[yypt-3 : yypt+1]
// line internal/php5/php5.y:509
// line internal/php5/php5.y:511
{
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)
@ -2593,7 +2595,7 @@ yydefault:
}
case 25:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:516
// line internal/php5/php5.y:518
{
yyVAL.node = &ast.ParserSeparatedList{
Items: []ast.Vertex{yyDollar[1].node},
@ -2601,7 +2603,7 @@ yydefault:
}
case 26:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:525
// line internal/php5/php5.y:527
{
yyVAL.node = &ast.StmtUseDeclaration{
Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items),
@ -2614,7 +2616,7 @@ yydefault:
}
case 27:
yyDollar = yyS[yypt-3 : yypt+1]
// line internal/php5/php5.y:536
// line internal/php5/php5.y:538
{
yyVAL.node = &ast.StmtUseDeclaration{
Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].token),
@ -2633,7 +2635,7 @@ yydefault:
}
case 28:
yyDollar = yyS[yypt-2 : yypt+1]
// line internal/php5/php5.y:553
// line internal/php5/php5.y:555
{
yyVAL.node = &ast.StmtUseDeclaration{
Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items),
@ -2647,7 +2649,7 @@ yydefault:
}
case 29:
yyDollar = yyS[yypt-4 : yypt+1]
// line internal/php5/php5.y:565
// line internal/php5/php5.y:567
{
yyVAL.node = &ast.StmtUseDeclaration{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token),
@ -2667,7 +2669,7 @@ yydefault:
}
case 30:
yyDollar = yyS[yypt-3 : yypt+1]
// line internal/php5/php5.y:586
// line internal/php5/php5.y:588
{
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)
@ -2676,7 +2678,7 @@ yydefault:
}
case 31:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:593
// line internal/php5/php5.y:595
{
yyVAL.node = &ast.ParserSeparatedList{
Items: []ast.Vertex{yyDollar[1].node},
@ -2684,7 +2686,7 @@ yydefault:
}
case 32:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:602
// line internal/php5/php5.y:604
{
yyVAL.node = &ast.StmtUseDeclaration{
Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items),
@ -2697,7 +2699,7 @@ yydefault:
}
case 33:
yyDollar = yyS[yypt-3 : yypt+1]
// line internal/php5/php5.y:613
// line internal/php5/php5.y:615
{
yyVAL.node = &ast.StmtUseDeclaration{
Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].token),
@ -2716,7 +2718,7 @@ yydefault:
}
case 34:
yyDollar = yyS[yypt-2 : yypt+1]
// line internal/php5/php5.y:630
// line internal/php5/php5.y:632
{
yyVAL.node = &ast.StmtUseDeclaration{
Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items),
@ -2730,7 +2732,7 @@ yydefault:
}
case 35:
yyDollar = yyS[yypt-4 : yypt+1]
// line internal/php5/php5.y:642
// line internal/php5/php5.y:644
{
yyVAL.node = &ast.StmtUseDeclaration{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token),
@ -2750,7 +2752,7 @@ yydefault:
}
case 36:
yyDollar = yyS[yypt-5 : yypt+1]
// line internal/php5/php5.y:663
// line internal/php5/php5.y:665
{
constList := yyDollar[1].node.(*ast.StmtConstList)
constList.Position = yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node)
@ -2770,7 +2772,7 @@ yydefault:
}
case 37:
yyDollar = yyS[yypt-4 : yypt+1]
// line internal/php5/php5.y:681
// line internal/php5/php5.y:683
{
yyVAL.node = &ast.StmtConstList{
Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node),
@ -2791,7 +2793,7 @@ yydefault:
}
case 38:
yyDollar = yyS[yypt-2 : yypt+1]
// line internal/php5/php5.y:703
// line internal/php5/php5.y:705
{
if yyDollar[2].node != nil {
yyVAL.list = append(yyDollar[1].list, yyDollar[2].node)
@ -2799,38 +2801,38 @@ yydefault:
}
case 39:
yyDollar = yyS[yypt-0 : yypt+1]
// line internal/php5/php5.y:709
// line internal/php5/php5.y:711
{
yyVAL.list = []ast.Vertex{}
}
case 40:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:717
// line internal/php5/php5.y:719
{
// error
yyVAL.node = nil
}
case 41:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:722
// line internal/php5/php5.y:724
{
yyVAL.node = yyDollar[1].node
}
case 42:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:726
// line internal/php5/php5.y:728
{
yyVAL.node = yyDollar[1].node
}
case 43:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:730
// line internal/php5/php5.y:732
{
yyVAL.node = yyDollar[1].node
}
case 44:
yyDollar = yyS[yypt-4 : yypt+1]
// line internal/php5/php5.y:734
// line internal/php5/php5.y:736
{
yyVAL.node = &ast.StmtHaltCompiler{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token),
@ -2842,13 +2844,13 @@ yydefault:
}
case 45:
yyDollar = yyS[yypt-1 : yypt+1]
// line internal/php5/php5.y:748
// line internal/php5/php5.y:750
{
yyVAL.node = yyDollar[1].node
}
case 46:
yyDollar = yyS[yypt-2 : yypt+1]
// line internal/php5/php5.y:752
// line internal/php5/php5.y:754
{
yyVAL.node = &ast.StmtLabel{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token),
@ -2862,7 +2864,7 @@ yydefault:
}
case 47:
yyDollar = yyS[yypt-3 : yypt+1]
// line internal/php5/php5.y:767
// line internal/php5/php5.y:769
{
yyVAL.node = &ast.StmtStmtList{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token),
@ -2873,7 +2875,7 @@ yydefault:
}
case 48:
yyDollar = yyS[yypt-5 : yypt+1]
// line internal/php5/php5.y:776
// line internal/php5/php5.y:778
{
pos := yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)
if yyDollar[5].node != nil {
@ -2895,7 +2897,7 @@ yydefault:
}
case 49:
yyDollar = yyS[yypt-8 : yypt+1]
// line internal/php5/php5.y:796
// line internal/php5/php5.y:798
{
yyVAL.node = &ast.StmtIf{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token),
@ -2917,7 +2919,7 @@ yydefault:
}
case 50:
yyDollar = yyS[yypt-3 : yypt+1]
// line internal/php5/php5.y:816
// line internal/php5/php5.y:818
{
yyDollar[3].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token
yyDollar[3].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn
@ -2929,7 +2931,7 @@ yydefault:
}
case 51:
yyDollar = yyS[yypt-5 : yypt+1]
// line internal/php5/php5.y:826
// line internal/php5/php5.y:828
{
yyVAL.node = &ast.StmtDo{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token),
@ -2944,7 +2946,7 @@ yydefault:
}
case 52:
yyDollar = yyS[yypt-9 : yypt+1]
// line internal/php5/php5.y:839
// line internal/php5/php5.y:841
{
yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token
yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token
@ -2963,7 +2965,7 @@ yydefault:
}
case 53:
yyDollar = yyS[yypt-3 : yypt+1]
// line internal/php5/php5.y:856
// line internal/php5/php5.y:858
{
yyDollar[3].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token
yyDollar[3].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn
@ -2975,7 +2977,7 @@ yydefault:
}
case 54:
yyDollar = yyS[yypt-2 : yypt+1]
// line internal/php5/php5.y:866
// line internal/php5/php5.y:868
{
yyVAL.node = &ast.StmtBreak{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token),
@ -2985,7 +2987,7 @@ yydefault:
}
case 55:
yyDollar = yyS[yypt-3 : yypt+1]
// line internal/php5/php5.y:874
// line internal/php5/php5.y:876
{
yyVAL.node = &ast.StmtBreak{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token),
@ -2996,7 +2998,7 @@ yydefault:
}
case 56:
yyDollar = yyS[yypt-2 : yypt+1]
// line internal/php5/php5.y:883
// line internal/php5/php5.y:885
{
yyVAL.node = &ast.StmtContinue{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token),
@ -3006,7 +3008,7 @@ yydefault:
}
case 57:
yyDollar = yyS[yypt-3 : yypt+1]
// line internal/php5/php5.y:891
// line internal/php5/php5.y:893
{
yyVAL.node = &ast.StmtContinue{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token),
@ -3017,7 +3019,7 @@ yydefault:
}
case 58:
yyDollar = yyS[yypt-2 : yypt+1]
// line internal/php5/php5.y:900
// line internal/php5/php5.y:902
{
yyVAL.node = &ast.StmtReturn{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token),
@ -3027,7 +3029,7 @@ yydefault:
}
case 59:
yyDollar = yyS[yypt-3 : yypt+1]
// line internal/php5/php5.y:908
// line internal/php5/php5.y:910
{
yyVAL.node = &ast.StmtReturn{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token),
@ -3038,7 +3040,7 @@ yydefault:
}
case 60:
yyDollar = yyS[yypt-3 : yypt+1]
// line internal/php5/php5.y:917
// line internal/php5/php5.y:919
{
yyVAL.node = &ast.StmtReturn{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token),
@ -3049,7 +3051,7 @@ yydefault:
}
case 61:
yyDollar = yyS[yypt-2 : yypt+1]
// line internal/php5/php5.y:926
// line internal/php5/php5.y:928
{
yyVAL.node = &ast.StmtExpression{
Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token),
@ -3059,22 +3061,20 @@ yydefault:
}
case 62:
yyDollar = yyS[yypt-3 : yypt+1]
// line internal/php5/php5.y:934
// line internal/php5/php5.y:936
{
yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token
yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token
yyDollar[2].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[2].node.(*ast.StmtGlobal).SeparatorTkns, nil)
yyDollar[2].node.(*ast.StmtGlobal).Position = yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)
yyVAL.node = yyDollar[2].node
}
case 63:
yyDollar = yyS[yypt-3 : yypt+1]
// line internal/php5/php5.y:943
// line internal/php5/php5.y:944
{
yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token
yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token
yyDollar[2].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[2].node.(*ast.StmtStatic).SeparatorTkns, nil)
yyDollar[2].node.(*ast.StmtStatic).Position = yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)
yyVAL.node = yyDollar[2].node
@ -3222,8 +3222,8 @@ yydefault:
GotoTkn: yyDollar[1].token,
Label: &ast.Identifier{
Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token),
IdentifierTkn: yyDollar[1].token,
Value: yyDollar[1].token.Value,
IdentifierTkn: yyDollar[2].token,
Value: yyDollar[2].token.Value,
},
SemiColonTkn: yyDollar[3].token,
}
@ -4395,10 +4395,10 @@ yydefault:
// line internal/php5/php5.y:2197
{
yyVAL.node = &ast.StmtTraitAdaptationList{
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token),
OpenParenthesisTkn: yyDollar[1].token,
Adaptations: yyDollar[2].list,
CloseParenthesisTkn: yyDollar[3].token,
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token),
OpenCurlyBracketTkn: yyDollar[1].token,
Adaptations: yyDollar[2].list,
CloseCurlyBracketTkn: yyDollar[3].token,
}
}
case 180:
@ -4921,7 +4921,7 @@ yydefault:
OpenParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).OpenParenthesisTkn,
Arguments: yyDollar[3].node.(*ast.ArgumentList).Arguments,
SeparatorTkns: yyDollar[3].node.(*ast.ArgumentList).SeparatorTkns,
CloseParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).OpenParenthesisTkn,
CloseParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).CloseParenthesisTkn,
}
} else {
yyVAL.node = &ast.ExprNew{
@ -4984,7 +4984,7 @@ yydefault:
OpenParenthesisTkn: yyDollar[6].node.(*ast.ArgumentList).OpenParenthesisTkn,
Arguments: yyDollar[6].node.(*ast.ArgumentList).Arguments,
SeparatorTkns: yyDollar[6].node.(*ast.ArgumentList).SeparatorTkns,
CloseParenthesisTkn: yyDollar[6].node.(*ast.ArgumentList).OpenParenthesisTkn,
CloseParenthesisTkn: yyDollar[6].node.(*ast.ArgumentList).CloseParenthesisTkn,
}
} else {
_new = &ast.ExprNew{
@ -6010,7 +6010,7 @@ yydefault:
OpenParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn,
Arguments: yyDollar[2].node.(*ast.ArgumentList).Arguments,
SeparatorTkns: yyDollar[2].node.(*ast.ArgumentList).SeparatorTkns,
CloseParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn,
CloseParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).CloseParenthesisTkn,
}
}
case 324:
@ -6029,7 +6029,7 @@ yydefault:
OpenParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn,
Arguments: yyDollar[4].node.(*ast.ArgumentList).Arguments,
SeparatorTkns: yyDollar[4].node.(*ast.ArgumentList).SeparatorTkns,
CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn,
CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).CloseParenthesisTkn,
}
}
case 325:
@ -6047,7 +6047,7 @@ yydefault:
OpenParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).OpenParenthesisTkn,
Arguments: yyDollar[3].node.(*ast.ArgumentList).Arguments,
SeparatorTkns: yyDollar[3].node.(*ast.ArgumentList).SeparatorTkns,
CloseParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).OpenParenthesisTkn,
CloseParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).CloseParenthesisTkn,
}
}
case 326:
@ -6062,7 +6062,7 @@ yydefault:
OpenParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn,
Arguments: yyDollar[4].node.(*ast.ArgumentList).Arguments,
SeparatorTkns: yyDollar[4].node.(*ast.ArgumentList).SeparatorTkns,
CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn,
CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).CloseParenthesisTkn,
}
}
case 327:
@ -6077,7 +6077,7 @@ yydefault:
OpenParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn,
Arguments: yyDollar[4].node.(*ast.ArgumentList).Arguments,
SeparatorTkns: yyDollar[4].node.(*ast.ArgumentList).SeparatorTkns,
CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn,
CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).CloseParenthesisTkn,
}
}
case 328:
@ -6092,7 +6092,7 @@ yydefault:
OpenParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn,
Arguments: yyDollar[4].node.(*ast.ArgumentList).Arguments,
SeparatorTkns: yyDollar[4].node.(*ast.ArgumentList).SeparatorTkns,
CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn,
CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).CloseParenthesisTkn,
}
}
case 329:
@ -6107,7 +6107,7 @@ yydefault:
OpenParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn,
Arguments: yyDollar[4].node.(*ast.ArgumentList).Arguments,
SeparatorTkns: yyDollar[4].node.(*ast.ArgumentList).SeparatorTkns,
CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn,
CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).CloseParenthesisTkn,
}
}
case 330:
@ -6120,7 +6120,7 @@ yydefault:
OpenParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn,
Arguments: yyDollar[2].node.(*ast.ArgumentList).Arguments,
SeparatorTkns: yyDollar[2].node.(*ast.ArgumentList).SeparatorTkns,
CloseParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn,
CloseParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).CloseParenthesisTkn,
}
}
case 331:
@ -7030,7 +7030,7 @@ yydefault:
Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token),
OpenQoteTkn: yyDollar[1].token,
Parts: yyDollar[2].list,
CloseQoteTkn: yyDollar[1].token,
CloseQoteTkn: yyDollar[3].token,
}
}
case 419:
@ -7211,7 +7211,7 @@ yydefault:
OpenParenthesisTkn: mc.OpenParenthesisTkn,
Arguments: mc.Arguments,
SeparatorTkns: mc.SeparatorTkns,
CloseParenthesisTkn: mc.OpenParenthesisTkn,
CloseParenthesisTkn: mc.CloseParenthesisTkn,
},
)
yyDollar[3].list = append(yyDollar[3].list, yyDollar[4].list[1:len(yyDollar[4].list)]...)

View File

@ -264,6 +264,8 @@ import (
start:
top_statement_list
{
yylex.(*Parser).currentToken.Value = nil
yylex.(*Parser).rootNode = &ast.Root{
Position: yylex.(*Parser).builder.NewNodeListPosition($1),
Stmts: $1,
@ -934,7 +936,6 @@ unticked_statement:
{
$2.(*ast.StmtGlobal).GlobalTkn = $1
$2.(*ast.StmtGlobal).SemiColonTkn = $3
$2.(*ast.StmtGlobal).SeparatorTkns = append($2.(*ast.StmtGlobal).SeparatorTkns, nil)
$2.(*ast.StmtGlobal).Position = yylex.(*Parser).builder.NewTokensPosition($1, $3)
$$ = $2
@ -943,7 +944,6 @@ unticked_statement:
{
$2.(*ast.StmtStatic).StaticTkn = $1
$2.(*ast.StmtStatic).SemiColonTkn = $3
$2.(*ast.StmtStatic).SeparatorTkns = append($2.(*ast.StmtStatic).SeparatorTkns, nil)
$2.(*ast.StmtStatic).Position = yylex.(*Parser).builder.NewTokensPosition($1, $3)
$$ = $2
@ -1069,8 +1069,8 @@ unticked_statement:
GotoTkn: $1,
Label: &ast.Identifier{
Position: yylex.(*Parser).builder.NewTokenPosition($1),
IdentifierTkn: $1,
Value: $1.Value,
IdentifierTkn: $2,
Value: $2.Value,
},
SemiColonTkn: $3,
}
@ -2197,9 +2197,9 @@ trait_adaptations:
{
$$ = &ast.StmtTraitAdaptationList{
Position: yylex.(*Parser).builder.NewTokensPosition($1, $3),
OpenParenthesisTkn: $1,
Adaptations: $2,
CloseParenthesisTkn: $3,
OpenCurlyBracketTkn: $1,
Adaptations: $2,
CloseCurlyBracketTkn: $3,
}
}
;
@ -2691,7 +2691,7 @@ new_expr:
OpenParenthesisTkn: $3.(*ast.ArgumentList).OpenParenthesisTkn,
Arguments: $3.(*ast.ArgumentList).Arguments,
SeparatorTkns: $3.(*ast.ArgumentList).SeparatorTkns,
CloseParenthesisTkn: $3.(*ast.ArgumentList).OpenParenthesisTkn,
CloseParenthesisTkn: $3.(*ast.ArgumentList).CloseParenthesisTkn,
}
} else {
$$ = &ast.ExprNew{
@ -2749,7 +2749,7 @@ expr_without_variable:
OpenParenthesisTkn: $6.(*ast.ArgumentList).OpenParenthesisTkn,
Arguments: $6.(*ast.ArgumentList).Arguments,
SeparatorTkns: $6.(*ast.ArgumentList).SeparatorTkns,
CloseParenthesisTkn: $6.(*ast.ArgumentList).OpenParenthesisTkn,
CloseParenthesisTkn: $6.(*ast.ArgumentList).CloseParenthesisTkn,
}
} else {
_new = &ast.ExprNew{
@ -3620,7 +3620,7 @@ function_call:
OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn,
Arguments: $2.(*ast.ArgumentList).Arguments,
SeparatorTkns: $2.(*ast.ArgumentList).SeparatorTkns,
CloseParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn,
CloseParenthesisTkn: $2.(*ast.ArgumentList).CloseParenthesisTkn,
}
}
| T_NAMESPACE T_NS_SEPARATOR namespace_name function_call_parameter_list
@ -3637,7 +3637,7 @@ function_call:
OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn,
Arguments: $4.(*ast.ArgumentList).Arguments,
SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns,
CloseParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn,
CloseParenthesisTkn: $4.(*ast.ArgumentList).CloseParenthesisTkn,
}
}
| T_NS_SEPARATOR namespace_name function_call_parameter_list
@ -3653,7 +3653,7 @@ function_call:
OpenParenthesisTkn: $3.(*ast.ArgumentList).OpenParenthesisTkn,
Arguments: $3.(*ast.ArgumentList).Arguments,
SeparatorTkns: $3.(*ast.ArgumentList).SeparatorTkns,
CloseParenthesisTkn: $3.(*ast.ArgumentList).OpenParenthesisTkn,
CloseParenthesisTkn: $3.(*ast.ArgumentList).CloseParenthesisTkn,
}
}
| class_name T_PAAMAYIM_NEKUDOTAYIM variable_name function_call_parameter_list
@ -3666,7 +3666,7 @@ function_call:
OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn,
Arguments: $4.(*ast.ArgumentList).Arguments,
SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns,
CloseParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn,
CloseParenthesisTkn: $4.(*ast.ArgumentList).CloseParenthesisTkn,
}
}
| class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects function_call_parameter_list
@ -3679,7 +3679,7 @@ function_call:
OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn,
Arguments: $4.(*ast.ArgumentList).Arguments,
SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns,
CloseParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn,
CloseParenthesisTkn: $4.(*ast.ArgumentList).CloseParenthesisTkn,
}
}
| variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_name function_call_parameter_list
@ -3692,7 +3692,7 @@ function_call:
OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn,
Arguments: $4.(*ast.ArgumentList).Arguments,
SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns,
CloseParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn,
CloseParenthesisTkn: $4.(*ast.ArgumentList).CloseParenthesisTkn,
}
}
| variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects function_call_parameter_list
@ -3705,7 +3705,7 @@ function_call:
OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn,
Arguments: $4.(*ast.ArgumentList).Arguments,
SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns,
CloseParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn,
CloseParenthesisTkn: $4.(*ast.ArgumentList).CloseParenthesisTkn,
}
}
| variable_without_objects function_call_parameter_list
@ -3716,7 +3716,7 @@ function_call:
OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn,
Arguments: $2.(*ast.ArgumentList).Arguments,
SeparatorTkns: $2.(*ast.ArgumentList).SeparatorTkns,
CloseParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn,
CloseParenthesisTkn: $2.(*ast.ArgumentList).CloseParenthesisTkn,
}
}
;
@ -4500,7 +4500,7 @@ scalar:
Position: yylex.(*Parser).builder.NewTokensPosition($1, $3),
OpenQoteTkn: $1,
Parts: $2,
CloseQoteTkn: $1,
CloseQoteTkn: $3,
}
}
| T_START_HEREDOC encaps_list T_END_HEREDOC
@ -4674,7 +4674,7 @@ variable:
OpenParenthesisTkn: mc.OpenParenthesisTkn,
Arguments: mc.Arguments,
SeparatorTkns: mc.SeparatorTkns,
CloseParenthesisTkn: mc.OpenParenthesisTkn,
CloseParenthesisTkn: mc.CloseParenthesisTkn,
},
)
$3 = append($3, $4[1:len($4)]...)

1088
internal/php7/php7.go generated

File diff suppressed because it is too large Load Diff

View File

@ -281,6 +281,8 @@ import (
start:
top_statement_list
{
yylex.(*Parser).currentToken.Value = nil
yylex.(*Parser).rootNode = &ast.Root{
Position: yylex.(*Parser).builder.NewNodeListPosition($1),
Stmts: $1,
@ -579,7 +581,9 @@ group_use_declaration:
mixed_group_use_declaration:
namespace_name T_NS_SEPARATOR '{' inline_use_declarations possible_comma '}'
{
$4.(*ast.ParserSeparatedList).SeparatorTkns = append($4.(*ast.ParserSeparatedList).SeparatorTkns, $5)
if $5 != nil {
$4.(*ast.ParserSeparatedList).SeparatorTkns = append($4.(*ast.ParserSeparatedList).SeparatorTkns, $5)
}
$$ = &ast.StmtGroupUse{
Position: yylex.(*Parser).builder.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $6),
@ -597,7 +601,9 @@ mixed_group_use_declaration:
}
| T_NS_SEPARATOR namespace_name T_NS_SEPARATOR '{' inline_use_declarations possible_comma '}'
{
$5.(*ast.ParserSeparatedList).SeparatorTkns = append($5.(*ast.ParserSeparatedList).SeparatorTkns, $6)
if $6 != nil {
$5.(*ast.ParserSeparatedList).SeparatorTkns = append($5.(*ast.ParserSeparatedList).SeparatorTkns, $6)
}
$$ = &ast.StmtGroupUse{
Position: yylex.(*Parser).builder.NewTokensPosition($1, $7),
@ -941,7 +947,9 @@ statement:
{
$3.(*ast.StmtUnset).UnsetTkn = $1
$3.(*ast.StmtUnset).OpenParenthesisTkn = $2
$3.(*ast.StmtUnset).SeparatorTkns = append($3.(*ast.StmtUnset).SeparatorTkns, $4)
if $4 != nil {
$3.(*ast.StmtUnset).SeparatorTkns = append($3.(*ast.StmtUnset).SeparatorTkns, $4)
}
$3.(*ast.StmtUnset).CloseParenthesisTkn = $5
$3.(*ast.StmtUnset).SemiColonTkn = $6
$3.(*ast.StmtUnset).Position = yylex.(*Parser).builder.NewTokensPosition($1, $6)
@ -1815,7 +1823,9 @@ argument_list:
argumentList := $2.(*ast.ArgumentList)
argumentList.Position = yylex.(*Parser).builder.NewTokensPosition($1, $4)
argumentList.OpenParenthesisTkn = $1
argumentList.SeparatorTkns = append(argumentList.SeparatorTkns, $3)
if $3 != nil {
argumentList.SeparatorTkns = append(argumentList.SeparatorTkns, $3)
}
argumentList.CloseParenthesisTkn = $4
$$ = argumentList
@ -2029,17 +2039,17 @@ trait_adaptations:
{
$$ = &ast.StmtTraitAdaptationList{
Position: yylex.(*Parser).builder.NewTokensPosition($1, $2),
OpenParenthesisTkn: $1,
CloseParenthesisTkn: $2,
OpenCurlyBracketTkn: $1,
CloseCurlyBracketTkn: $2,
}
}
| '{' trait_adaptation_list '}'
{
$$ = &ast.StmtTraitAdaptationList{
Position: yylex.(*Parser).builder.NewTokensPosition($1, $3),
OpenParenthesisTkn: $1,
Adaptations: $2,
CloseParenthesisTkn: $3,
OpenCurlyBracketTkn: $1,
Adaptations: $2,
CloseCurlyBracketTkn: $3,
}
}
;
@ -2435,7 +2445,7 @@ anonymous_class:
OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn,
Arguments: $2.(*ast.ArgumentList).Arguments,
SeparatorTkns: $2.(*ast.ArgumentList).SeparatorTkns,
CloseParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn,
CloseParenthesisTkn: $2.(*ast.ArgumentList).CloseParenthesisTkn,
Extends: $3,
Implements: $4,
OpenCurlyBracket: $6,
@ -2456,7 +2466,7 @@ new_expr:
OpenParenthesisTkn: $3.(*ast.ArgumentList).OpenParenthesisTkn,
Arguments: $3.(*ast.ArgumentList).Arguments,
SeparatorTkns: $3.(*ast.ArgumentList).SeparatorTkns,
CloseParenthesisTkn: $3.(*ast.ArgumentList).OpenParenthesisTkn,
CloseParenthesisTkn: $3.(*ast.ArgumentList).CloseParenthesisTkn,
}
} else {
$$ = &ast.ExprNew{
@ -3284,7 +3294,7 @@ function_call:
OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn,
Arguments: $2.(*ast.ArgumentList).Arguments,
SeparatorTkns: $2.(*ast.ArgumentList).SeparatorTkns,
CloseParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn,
CloseParenthesisTkn: $2.(*ast.ArgumentList).CloseParenthesisTkn,
}
}
| class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list
@ -3297,7 +3307,7 @@ function_call:
OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn,
Arguments: $4.(*ast.ArgumentList).Arguments,
SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns,
CloseParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn,
CloseParenthesisTkn: $4.(*ast.ArgumentList).CloseParenthesisTkn,
}
}
| variable_class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list
@ -3310,7 +3320,7 @@ function_call:
OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn,
Arguments: $4.(*ast.ArgumentList).Arguments,
SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns,
CloseParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn,
CloseParenthesisTkn: $4.(*ast.ArgumentList).CloseParenthesisTkn,
}
}
| callable_expr argument_list
@ -3321,7 +3331,7 @@ function_call:
OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn,
Arguments: $2.(*ast.ArgumentList).Arguments,
SeparatorTkns: $2.(*ast.ArgumentList).SeparatorTkns,
CloseParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn,
CloseParenthesisTkn: $2.(*ast.ArgumentList).CloseParenthesisTkn,
}
}
;
@ -3542,7 +3552,7 @@ scalar:
Position: yylex.(*Parser).builder.NewTokensPosition($1, $3),
OpenQoteTkn: $1,
Parts: $2,
CloseQoteTkn: $1,
CloseQoteTkn: $3,
}
}
| T_START_HEREDOC encaps_list T_END_HEREDOC

View File

@ -954,10 +954,10 @@ func (n *StmtTrait) GetPosition() *position.Position {
// StmtTraitAdaptationList node
type StmtTraitAdaptationList struct {
Position *position.Position
OpenParenthesisTkn *token.Token
Adaptations []Vertex
CloseParenthesisTkn *token.Token
Position *position.Position
OpenCurlyBracketTkn *token.Token
Adaptations []Vertex
CloseCurlyBracketTkn *token.Token
}
func (n *StmtTraitAdaptationList) Accept(v NodeVisitor) {

1239
pkg/ast/visitor/printer.go Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,14 +1,14 @@
package printer_test
package visitor_test
import (
"bytes"
"github.com/z7zmey/php-parser/pkg/ast/visitor"
"testing"
"github.com/z7zmey/php-parser/pkg/ast"
"github.com/z7zmey/php-parser/internal/php5"
"github.com/z7zmey/php-parser/internal/scanner"
"github.com/z7zmey/php-parser/pkg/printer"
)
func parsePhp5(src string) ast.Vertex {
@ -22,8 +22,8 @@ func parsePhp5(src string) ast.Vertex {
func printPhp5(n ast.Vertex) string {
o := bytes.NewBufferString("")
p := printer.NewPrinter(o)
p.Print(n)
printer := visitor.NewPrinter(o)
n.Accept(printer)
return o.String()
}

View File

@ -1,15 +1,14 @@
package printer_test
package visitor_test
import (
"bytes"
"os"
"testing"
"github.com/z7zmey/php-parser/pkg/ast"
"github.com/z7zmey/php-parser/internal/php7"
"github.com/z7zmey/php-parser/internal/scanner"
"github.com/z7zmey/php-parser/pkg/printer"
"github.com/z7zmey/php-parser/pkg/ast"
"github.com/z7zmey/php-parser/pkg/ast/visitor"
)
func ExamplePrinter() {
@ -42,8 +41,8 @@ abstract class Bar extends Baz
// print
p := printer.NewPrinter(os.Stdout)
p.Print(rootNode)
printer := visitor.NewPrinter(os.Stdout)
rootNode.Accept(printer)
// Output:
//<?php
@ -71,8 +70,8 @@ func parse(src string) ast.Vertex {
func print(n ast.Vertex) string {
o := bytes.NewBufferString("")
p := printer.NewPrinter(o)
p.Print(n)
printer := visitor.NewPrinter(o)
n.Accept(printer)
return o.String()
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff