diff --git a/node/expr/n_variable.go b/node/expr/n_variable.go index 858e736..f0c269d 100644 --- a/node/expr/n_variable.go +++ b/node/expr/n_variable.go @@ -9,10 +9,9 @@ import ( // Variable node type Variable struct { - Meta meta.Collection - StringVar bool - Position *position.Position - VarName node.Node + Meta meta.Collection + Position *position.Position + VarName node.Node } // NewVariable node constructor @@ -38,9 +37,7 @@ func (n *Variable) GetMeta() *meta.Collection { // Attributes returns node attributes as map func (n *Variable) Attributes() map[string]interface{} { - return map[string]interface{}{ - "StringVar": n.StringVar, - } + return nil } // SetVarName reset var name diff --git a/node/expr/t_visitor_test.go b/node/expr/t_visitor_test.go index 2087c81..a8bc087 100644 --- a/node/expr/t_visitor_test.go +++ b/node/expr/t_visitor_test.go @@ -333,9 +333,7 @@ var nodesToTest = []struct { { &expr.Variable{VarName: &node.Identifier{Value: "a"}}, []string{"VarName"}, - map[string]interface{}{ - "StringVar": false, - }, + map[string]interface{}{}, }, { &expr.YieldFrom{ diff --git a/node/scalar/t_encapsed_test.go b/node/scalar/t_encapsed_test.go index 6669ecf..c77cd8d 100644 --- a/node/scalar/t_encapsed_test.go +++ b/node/scalar/t_encapsed_test.go @@ -453,7 +453,6 @@ func TestDollarOpenCurlyBraces(t *testing.T) { StartPos: 10, EndPos: 15, }, - StringVar: true, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, @@ -530,7 +529,6 @@ func TestDollarOpenCurlyBracesDimNumber(t *testing.T) { StartPos: 12, EndPos: 14, }, - StringVar: true, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, diff --git a/php5/parser.go b/php5/parser.go index 16596c2..079bf4e 100644 --- a/php5/parser.go +++ b/php5/parser.go @@ -122,6 +122,14 @@ func (l *Parser) appendMetaToken(n node.Node, t *scanner.Token, tn meta.TokenNam n.GetMeta().Push(m) } +func (l *Parser) appendMeta(n node.Node, m *meta.Data, tn meta.TokenName) { + if !l.Lexer.WithMeta { + return + } + + n.GetMeta().Push(m) +} + func (l *Parser) prependMetaToken(n node.Node, t *scanner.Token, tn meta.TokenName) { if !l.Lexer.WithMeta { return diff --git a/php5/php5.go b/php5/php5.go index eae36b4..e98e183 100644 --- a/php5/php5.go +++ b/php5/php5.go @@ -1,3 +1,5 @@ +// Code generated by goyacc -o php5/php5.go php5/php5.y. DO NOT EDIT. + //line php5/php5.y:2 package php5 @@ -346,7 +348,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -//line php5/php5.y:6965 +//line php5/php5.y:6991 type simpleIndirectReference struct { all []*expr.Variable last *expr.Variable @@ -3539,6 +3541,7 @@ yydefault: yyDollar[1].token.Meta.SetTokenName(meta.CatchToken).AppendTo(catch.GetMeta()) yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(catch.GetMeta()) yyDollar[4].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yyDollar[5].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(catch.GetMeta()) yyDollar[6].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(catch.GetMeta()) yyDollar[8].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(catch.GetMeta()) @@ -3547,7 +3550,7 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1401 + //line php5/php5.y:1402 { yyVAL.node = nil @@ -3555,7 +3558,7 @@ yydefault: } case 78: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1407 + //line php5/php5.y:1408 { yyVAL.node = stmt.NewFinally(yyDollar[3].list) @@ -3571,7 +3574,7 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1424 + //line php5/php5.y:1425 { yyVAL.list = yyDollar[1].list @@ -3579,7 +3582,7 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1430 + //line php5/php5.y:1431 { yyVAL.list = []node.Node{} @@ -3587,7 +3590,7 @@ yydefault: } case 81: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1439 + //line php5/php5.y:1440 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3595,7 +3598,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1445 + //line php5/php5.y:1446 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3603,7 +3606,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:1454 + //line php5/php5.y:1455 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -3618,6 +3621,7 @@ yydefault: yyDollar[1].token.Meta.SetTokenName(meta.CatchToken).AppendTo(yyVAL.node.GetMeta()) yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) yyDollar[4].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yyDollar[5].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) yyDollar[6].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yyDollar[8].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) @@ -3626,7 +3630,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1478 + //line php5/php5.y:1480 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3634,7 +3638,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1484 + //line php5/php5.y:1486 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3645,7 +3649,7 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1496 + //line php5/php5.y:1498 { yyVAL.node = yyDollar[1].node @@ -3653,7 +3657,7 @@ yydefault: } case 87: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1505 + //line php5/php5.y:1507 { yyVAL.node = yyDollar[1].node @@ -3661,7 +3665,7 @@ yydefault: } case 88: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1514 + //line php5/php5.y:1516 { yyVAL.node = yyDollar[1].node @@ -3669,31 +3673,31 @@ yydefault: } case 89: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1523 + //line php5/php5.y:1525 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1527 + //line php5/php5.y:1529 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1534 + //line php5/php5.y:1536 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1538 + //line php5/php5.y:1540 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:1545 + //line php5/php5.y:1547 { name := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewFunction(name, yyDollar[2].token != nil, yyDollar[5].list, nil, yyDollar[8].list, "") @@ -3717,7 +3721,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - //line php5/php5.y:1570 + //line php5/php5.y:1572 { name := node.NewIdentifier(yyDollar[2].token.Value) switch n := yyDollar[1].node.(type) { @@ -3747,7 +3751,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:1598 + //line php5/php5.y:1600 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewInterface(name, yyDollar[3].InterfaceExtends, yyDollar[5].list, "") @@ -3766,7 +3770,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1619 + //line php5/php5.y:1621 { yyVAL.node = stmt.NewClass(nil, nil, nil, nil, nil, nil, "") @@ -3780,7 +3784,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1631 + //line php5/php5.y:1633 { classModifier := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewClass(nil, []node.Node{classModifier}, nil, nil, nil, nil, "") @@ -3797,7 +3801,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1646 + //line php5/php5.y:1648 { yyVAL.node = stmt.NewTrait(nil, nil, "") @@ -3811,7 +3815,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1658 + //line php5/php5.y:1660 { classModifier := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewClass(nil, []node.Node{classModifier}, nil, nil, nil, nil, "") @@ -3828,7 +3832,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1676 + //line php5/php5.y:1678 { yyVAL.ClassExtends = nil @@ -3836,7 +3840,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1682 + //line php5/php5.y:1684 { yyVAL.ClassExtends = stmt.NewClassExtends(yyDollar[2].node) @@ -3850,13 +3854,13 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1697 + //line php5/php5.y:1699 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1704 + //line php5/php5.y:1706 { yyVAL.InterfaceExtends = nil @@ -3864,7 +3868,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1710 + //line php5/php5.y:1712 { yyVAL.InterfaceExtends = stmt.NewInterfaceExtends(yyDollar[2].list) @@ -3878,7 +3882,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1725 + //line php5/php5.y:1727 { yyVAL.ClassImplements = nil @@ -3886,7 +3890,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1731 + //line php5/php5.y:1733 { yyVAL.ClassImplements = stmt.NewClassImplements(yyDollar[2].list) @@ -3900,7 +3904,7 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1746 + //line php5/php5.y:1748 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3908,7 +3912,7 @@ yydefault: } case 108: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1752 + //line php5/php5.y:1754 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3919,7 +3923,7 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1764 + //line php5/php5.y:1766 { yyVAL.node = nil @@ -3927,7 +3931,7 @@ yydefault: } case 110: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1770 + //line php5/php5.y:1772 { yyVAL.node = yyDollar[2].node @@ -3938,7 +3942,7 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1782 + //line php5/php5.y:1784 { yyVAL.node = yyDollar[1].node @@ -3946,7 +3950,7 @@ yydefault: } case 112: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1788 + //line php5/php5.y:1790 { yyVAL.node = expr.NewReference(yyDollar[2].node) @@ -3960,7 +3964,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1800 + //line php5/php5.y:1802 { yyVAL.node = expr.NewList(yyDollar[3].list) @@ -3976,7 +3980,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1817 + //line php5/php5.y:1819 { yyVAL.node = stmt.NewFor(nil, nil, nil, yyDollar[1].node) @@ -3987,7 +3991,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1826 + //line php5/php5.y:1828 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltFor(nil, nil, nil, stmtList) @@ -4006,7 +4010,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1846 + //line php5/php5.y:1848 { yyVAL.node = stmt.NewForeach(nil, nil, nil, yyDollar[1].node) @@ -4017,7 +4021,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1855 + //line php5/php5.y:1857 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltForeach(nil, nil, nil, stmtList) @@ -4036,7 +4040,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1876 + //line php5/php5.y:1878 { yyVAL.node = stmt.NewDeclare(nil, yyDollar[1].node, false) @@ -4047,7 +4051,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1885 + //line php5/php5.y:1887 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewDeclare(nil, stmtList, true) @@ -4066,7 +4070,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1906 + //line php5/php5.y:1908 { name := node.NewIdentifier(yyDollar[1].token.Value) constant := stmt.NewConstant(name, yyDollar[3].node, "") @@ -4084,7 +4088,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1922 + //line php5/php5.y:1924 { name := node.NewIdentifier(yyDollar[3].token.Value) constant := stmt.NewConstant(name, yyDollar[5].node, "") @@ -4103,7 +4107,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1943 + //line php5/php5.y:1945 { caseList := stmt.NewCaseList(yyDollar[2].list) yyVAL.node = stmt.NewSwitch(nil, caseList) @@ -4120,7 +4124,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1958 + //line php5/php5.y:1960 { caseList := stmt.NewCaseList(yyDollar[3].list) yyVAL.node = stmt.NewSwitch(nil, caseList) @@ -4139,7 +4143,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1975 + //line php5/php5.y:1977 { caseList := stmt.NewCaseList(yyDollar[2].list) yyVAL.node = stmt.NewAltSwitch(nil, caseList) @@ -4158,7 +4162,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1992 + //line php5/php5.y:1994 { caseList := stmt.NewCaseList(yyDollar[3].list) @@ -4180,7 +4184,7 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2016 + //line php5/php5.y:2018 { yyVAL.list = []node.Node{} @@ -4188,7 +4192,7 @@ yydefault: } case 127: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:2022 + //line php5/php5.y:2024 { _case := stmt.NewCase(yyDollar[3].node, yyDollar[5].list) yyVAL.list = append(yyDollar[1].list, _case) @@ -4205,7 +4209,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2037 + //line php5/php5.y:2039 { _default := stmt.NewDefault(yyDollar[4].list) yyVAL.list = append(yyDollar[1].list, _default) @@ -4222,19 +4226,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2056 + //line php5/php5.y:2058 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2060 + //line php5/php5.y:2062 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2068 + //line php5/php5.y:2070 { yyVAL.node = stmt.NewWhile(nil, yyDollar[1].node) @@ -4245,7 +4249,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2077 + //line php5/php5.y:2079 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltWhile(nil, stmtList) @@ -4264,7 +4268,7 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2099 + //line php5/php5.y:2101 { yyVAL.list = nil @@ -4272,7 +4276,7 @@ yydefault: } case 134: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2105 + //line php5/php5.y:2107 { _elseIf := stmt.NewElseIf(yyDollar[3].node, yyDollar[4].node) yyVAL.list = append(yyDollar[1].list, _elseIf) @@ -4289,7 +4293,7 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2124 + //line php5/php5.y:2126 { yyVAL.list = nil @@ -4297,7 +4301,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:2130 + //line php5/php5.y:2132 { stmts := stmt.NewStmtList(yyDollar[5].list) _elseIf := stmt.NewAltElseIf(yyDollar[3].node, stmts) @@ -4317,7 +4321,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2152 + //line php5/php5.y:2154 { yyVAL.node = nil @@ -4325,7 +4329,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2158 + //line php5/php5.y:2160 { yyVAL.node = stmt.NewElse(yyDollar[2].node) @@ -4339,7 +4343,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2174 + //line php5/php5.y:2176 { yyVAL.node = nil @@ -4347,7 +4351,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2180 + //line php5/php5.y:2182 { stmts := stmt.NewStmtList(yyDollar[3].list) yyVAL.node = stmt.NewAltElse(stmts) @@ -4364,7 +4368,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2199 + //line php5/php5.y:2201 { yyVAL.list = yyDollar[1].list @@ -4372,7 +4376,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2205 + //line php5/php5.y:2207 { yyVAL.list = nil @@ -4380,7 +4384,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2214 + //line php5/php5.y:2216 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4388,7 +4392,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2220 + //line php5/php5.y:2222 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4399,7 +4403,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2232 + //line php5/php5.y:2234 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4426,12 +4430,13 @@ yydefault: yyDollar[3].token.Meta.SetTokenName(meta.EllipsisToken).AppendTo(yyVAL.node.GetMeta()) } yyDollar[4].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 146: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:2262 + //line php5/php5.y:2265 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4458,13 +4463,14 @@ yydefault: yyDollar[3].token.Meta.SetTokenName(meta.EllipsisToken).AppendTo(yyVAL.node.GetMeta()) } yyDollar[4].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yyDollar[5].token.Meta.SetTokenName(meta.EqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 147: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2297 + //line php5/php5.y:2301 { yyVAL.node = nil @@ -4472,7 +4478,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2303 + //line php5/php5.y:2307 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4486,7 +4492,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2315 + //line php5/php5.y:2319 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4500,7 +4506,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2327 + //line php5/php5.y:2331 { yyVAL.node = yyDollar[1].node @@ -4508,7 +4514,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2337 + //line php5/php5.y:2341 { yyVAL.node = node.NewArgumentList(nil) @@ -4523,7 +4529,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2350 + //line php5/php5.y:2354 { yyVAL.node = node.NewArgumentList(yyDollar[2].list) @@ -4538,7 +4544,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2363 + //line php5/php5.y:2367 { arg := node.NewArgument(yyDollar[2].node, false, false) yyVAL.node = node.NewArgumentList([]node.Node{arg}) @@ -4555,7 +4561,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2382 + //line php5/php5.y:2386 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4563,7 +4569,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2388 + //line php5/php5.y:2392 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4574,7 +4580,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2400 + //line php5/php5.y:2404 { yyVAL.node = node.NewArgument(yyDollar[1].node, false, false) @@ -4585,7 +4591,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2409 + //line php5/php5.y:2413 { yyVAL.node = node.NewArgument(yyDollar[1].node, false, false) @@ -4596,7 +4602,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2418 + //line php5/php5.y:2422 { yyVAL.node = node.NewArgument(yyDollar[2].node, false, true) @@ -4610,7 +4616,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2430 + //line php5/php5.y:2434 { yyVAL.node = node.NewArgument(yyDollar[2].node, true, false) @@ -4624,7 +4630,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2445 + //line php5/php5.y:2449 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4635,7 +4641,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2454 + //line php5/php5.y:2458 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4643,7 +4649,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2464 + //line php5/php5.y:2468 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -4654,12 +4660,13 @@ yydefault: // save comments yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMeta(yyVAL.node, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 163: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2478 + //line php5/php5.y:2483 { yyVAL.node = expr.NewVariable(yyDollar[2].node) @@ -4668,12 +4675,14 @@ yydefault: // save comments yyDollar[1].token.Meta.SetTokenName(meta.DollarToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.DollarToken) + yylex.(*Parser).appendMeta(yyVAL.node, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 164: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2490 + //line php5/php5.y:2497 { yyVAL.node = expr.NewVariable(yyDollar[3].node) @@ -4682,6 +4691,7 @@ yydefault: // save comments yyDollar[1].token.Meta.SetTokenName(meta.DollarToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.DollarToken) yyDollar[2].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yyDollar[4].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) @@ -4689,7 +4699,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2508 + //line php5/php5.y:2516 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4704,12 +4714,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yyDollar[3].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 166: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:2526 + //line php5/php5.y:2535 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4724,13 +4735,14 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yyDollar[3].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yyDollar[4].token.Meta.SetTokenName(meta.EqualToken).AppendTo(staticVar.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 167: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2545 + //line php5/php5.y:2555 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4744,12 +4756,13 @@ yydefault: // save comments yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 168: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2562 + //line php5/php5.y:2573 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4763,13 +4776,14 @@ yydefault: // save comments yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yyDollar[2].token.Meta.SetTokenName(meta.EqualToken).AppendTo(staticVar.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 169: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2584 + //line php5/php5.y:2596 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4777,7 +4791,7 @@ yydefault: } case 170: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2590 + //line php5/php5.y:2602 { yyVAL.list = []node.Node{} @@ -4785,7 +4799,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2600 + //line php5/php5.y:2612 { yyVAL.node = stmt.NewPropertyList(yyDollar[1].list, yyDollar[2].list) @@ -4800,7 +4814,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2613 + //line php5/php5.y:2625 { yyVAL.node = yyDollar[1].node @@ -4815,7 +4829,7 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2626 + //line php5/php5.y:2638 { yyVAL.node = yyDollar[1].node @@ -4823,7 +4837,7 @@ yydefault: } case 174: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:2632 + //line php5/php5.y:2644 { name := node.NewIdentifier(yyDollar[4].token.Value) yyVAL.node = stmt.NewClassMethod(name, yyDollar[1].list, yyDollar[3].token != nil, yyDollar[6].list, nil, yyDollar[8].node, "") @@ -4849,7 +4863,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2659 + //line php5/php5.y:2671 { yyVAL.node = stmt.NewTraitUse(yyDollar[2].list, yyDollar[3].node) @@ -4863,7 +4877,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2674 + //line php5/php5.y:2686 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4871,7 +4885,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2680 + //line php5/php5.y:2692 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4882,7 +4896,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2692 + //line php5/php5.y:2704 { yyVAL.node = stmt.NewNop() @@ -4896,7 +4910,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2705 + //line php5/php5.y:2717 { yyVAL.node = stmt.NewTraitAdaptationList(yyDollar[2].list) @@ -4910,7 +4924,7 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2720 + //line php5/php5.y:2732 { yyVAL.list = nil @@ -4918,7 +4932,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2726 + //line php5/php5.y:2738 { yyVAL.list = yyDollar[1].list @@ -4926,7 +4940,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2735 + //line php5/php5.y:2747 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4934,7 +4948,7 @@ yydefault: } case 183: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2741 + //line php5/php5.y:2753 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4942,7 +4956,7 @@ yydefault: } case 184: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2750 + //line php5/php5.y:2762 { yyVAL.node = yyDollar[1].node @@ -4954,7 +4968,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2760 + //line php5/php5.y:2772 { yyVAL.node = yyDollar[1].node @@ -4966,7 +4980,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2773 + //line php5/php5.y:2785 { yyVAL.node = stmt.NewTraitUsePrecedence(yyDollar[1].node, yyDollar[3].list) @@ -4980,7 +4994,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2788 + //line php5/php5.y:2800 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4988,7 +5002,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2794 + //line php5/php5.y:2806 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4999,7 +5013,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2806 + //line php5/php5.y:2818 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewTraitMethodRef(nil, name) @@ -5015,7 +5029,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2820 + //line php5/php5.y:2832 { yyVAL.node = yyDollar[1].node @@ -5023,7 +5037,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2829 + //line php5/php5.y:2841 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitMethodRef(yyDollar[1].node, target) @@ -5040,7 +5054,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2847 + //line php5/php5.y:2859 { alias := node.NewIdentifier(yyDollar[4].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, alias) @@ -5057,7 +5071,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2862 + //line php5/php5.y:2874 { yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, nil) @@ -5071,7 +5085,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2877 + //line php5/php5.y:2889 { yyVAL.node = nil @@ -5079,7 +5093,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2883 + //line php5/php5.y:2895 { yyVAL.node = yyDollar[1].node @@ -5087,7 +5101,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2892 + //line php5/php5.y:2904 { yyVAL.node = stmt.NewNop() @@ -5102,7 +5116,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2905 + //line php5/php5.y:2917 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -5117,7 +5131,7 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2921 + //line php5/php5.y:2933 { yyVAL.list = yyDollar[1].list @@ -5125,7 +5139,7 @@ yydefault: } case 199: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2927 + //line php5/php5.y:2939 { modifier := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.list = []node.Node{modifier} @@ -5140,7 +5154,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2943 + //line php5/php5.y:2955 { yyVAL.list = nil @@ -5148,7 +5162,7 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2949 + //line php5/php5.y:2961 { yyVAL.list = yyDollar[1].list @@ -5156,7 +5170,7 @@ yydefault: } case 202: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2958 + //line php5/php5.y:2970 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5164,27 +5178,13 @@ yydefault: } case 203: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2964 + //line php5/php5.y:2976 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 204: - yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2973 - { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) - - // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - - // save comments - yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(yyVAL.node.GetMeta()) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 205: yyDollar = yyS[yypt-1 : yypt+1] //line php5/php5.y:2985 { @@ -5198,7 +5198,7 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 206: + case 205: yyDollar = yyS[yypt-1 : yypt+1] //line php5/php5.y:2997 { @@ -5212,7 +5212,7 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 207: + case 206: yyDollar = yyS[yypt-1 : yypt+1] //line php5/php5.y:3009 { @@ -5226,7 +5226,7 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 208: + case 207: yyDollar = yyS[yypt-1 : yypt+1] //line php5/php5.y:3021 { @@ -5240,7 +5240,7 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 209: + case 208: yyDollar = yyS[yypt-1 : yypt+1] //line php5/php5.y:3033 { @@ -5252,11 +5252,25 @@ yydefault: // save comments yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 209: + yyDollar = yyS[yypt-1 : yypt+1] + //line php5/php5.y:3045 + { + yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) + + // save position + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + + // save comments + yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 210: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3048 + //line php5/php5.y:3060 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5271,12 +5285,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yyDollar[3].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 211: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:3066 + //line php5/php5.y:3079 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5291,13 +5306,14 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yyDollar[3].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yyDollar[4].token.Meta.SetTokenName(meta.EqualToken).AppendTo(property.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 212: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3085 + //line php5/php5.y:3099 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5311,12 +5327,13 @@ yydefault: // save comments yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 213: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3102 + //line php5/php5.y:3117 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5330,13 +5347,14 @@ yydefault: // save comments yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yyDollar[2].token.Meta.SetTokenName(meta.EqualToken).AppendTo(property.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 214: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:3123 + //line php5/php5.y:3139 { name := node.NewIdentifier(yyDollar[3].token.Value) constant := stmt.NewConstant(name, yyDollar[5].node, "") @@ -5359,7 +5377,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3144 + //line php5/php5.y:3160 { name := node.NewIdentifier(yyDollar[2].token.Value) constant := stmt.NewConstant(name, yyDollar[4].node, "") @@ -5379,7 +5397,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3165 + //line php5/php5.y:3181 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5390,7 +5408,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3174 + //line php5/php5.y:3190 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5398,7 +5416,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3184 + //line php5/php5.y:3200 { yyVAL.list = nil @@ -5406,7 +5424,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3190 + //line php5/php5.y:3206 { yyVAL.list = yyDollar[1].list @@ -5414,7 +5432,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3199 + //line php5/php5.y:3215 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5425,7 +5443,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3208 + //line php5/php5.y:3224 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5433,7 +5451,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3217 + //line php5/php5.y:3233 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5441,7 +5459,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3223 + //line php5/php5.y:3239 { yyVAL.list = yyDollar[1].list @@ -5449,7 +5467,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3232 + //line php5/php5.y:3248 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, fetch) @@ -5467,7 +5485,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3248 + //line php5/php5.y:3264 { fetch := expr.NewArrayDimFetch(nil, yyDollar[2].node) yyVAL.list = []node.Node{fetch} @@ -5485,7 +5503,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3267 + //line php5/php5.y:3283 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5493,7 +5511,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3273 + //line php5/php5.y:3289 { yyVAL.list = yyDollar[1].list @@ -5501,7 +5519,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3279 + //line php5/php5.y:3295 { yyVAL.list = yyDollar[1].list @@ -5509,7 +5527,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3288 + //line php5/php5.y:3304 { yyVAL.list = nil @@ -5517,7 +5535,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3294 + //line php5/php5.y:3310 { yyVAL.list = yyDollar[1].list @@ -5525,7 +5543,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3303 + //line php5/php5.y:3319 { if yyDollar[3].node != nil { @@ -5543,7 +5561,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:3322 + //line php5/php5.y:3338 { list := expr.NewList(yyDollar[3].list) yyVAL.node = assign.NewAssign(list, yyDollar[6].node) @@ -5562,7 +5580,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3339 + //line php5/php5.y:3355 { yyVAL.node = assign.NewAssign(yyDollar[1].node, yyDollar[3].node) @@ -5576,7 +5594,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3351 + //line php5/php5.y:3367 { yyVAL.node = assign.NewReference(yyDollar[1].node, yyDollar[4].node) @@ -5591,7 +5609,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:3364 + //line php5/php5.y:3380 { var _new *expr.New @@ -5619,7 +5637,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3390 + //line php5/php5.y:3406 { yyVAL.node = expr.NewClone(yyDollar[2].node) @@ -5633,7 +5651,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3402 + //line php5/php5.y:3418 { yyVAL.node = assign.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -5647,7 +5665,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3414 + //line php5/php5.y:3430 { yyVAL.node = assign.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -5661,7 +5679,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3426 + //line php5/php5.y:3442 { yyVAL.node = assign.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -5675,7 +5693,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3438 + //line php5/php5.y:3454 { yyVAL.node = assign.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -5689,7 +5707,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3450 + //line php5/php5.y:3466 { yyVAL.node = assign.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -5703,7 +5721,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3462 + //line php5/php5.y:3478 { yyVAL.node = assign.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -5717,7 +5735,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3474 + //line php5/php5.y:3490 { yyVAL.node = assign.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -5731,7 +5749,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3486 + //line php5/php5.y:3502 { yyVAL.node = assign.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -5745,7 +5763,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3498 + //line php5/php5.y:3514 { yyVAL.node = assign.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -5759,7 +5777,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3510 + //line php5/php5.y:3526 { yyVAL.node = assign.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -5773,7 +5791,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3522 + //line php5/php5.y:3538 { yyVAL.node = assign.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -5787,7 +5805,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3534 + //line php5/php5.y:3550 { yyVAL.node = assign.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -5801,7 +5819,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3546 + //line php5/php5.y:3562 { yyVAL.node = expr.NewPostInc(yyDollar[1].node) @@ -5815,7 +5833,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3558 + //line php5/php5.y:3574 { yyVAL.node = expr.NewPreInc(yyDollar[2].node) @@ -5829,7 +5847,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3570 + //line php5/php5.y:3586 { yyVAL.node = expr.NewPostDec(yyDollar[1].node) @@ -5843,7 +5861,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3582 + //line php5/php5.y:3598 { yyVAL.node = expr.NewPreDec(yyDollar[2].node) @@ -5857,7 +5875,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3594 + //line php5/php5.y:3610 { yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) @@ -5871,7 +5889,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3606 + //line php5/php5.y:3622 { yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) @@ -5885,7 +5903,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3618 + //line php5/php5.y:3634 { yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) @@ -5899,7 +5917,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3630 + //line php5/php5.y:3646 { yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) @@ -5913,7 +5931,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3642 + //line php5/php5.y:3658 { yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) @@ -5927,7 +5945,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3654 + //line php5/php5.y:3670 { yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -5941,7 +5959,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3666 + //line php5/php5.y:3682 { yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -5955,7 +5973,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3678 + //line php5/php5.y:3694 { yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -5969,7 +5987,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3690 + //line php5/php5.y:3706 { yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -5983,7 +6001,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3702 + //line php5/php5.y:3718 { yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -5997,7 +6015,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3714 + //line php5/php5.y:3730 { yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -6011,7 +6029,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3726 + //line php5/php5.y:3742 { yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -6025,7 +6043,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3738 + //line php5/php5.y:3754 { yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -6039,7 +6057,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3750 + //line php5/php5.y:3766 { yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -6053,7 +6071,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3762 + //line php5/php5.y:3778 { yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -6067,7 +6085,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3774 + //line php5/php5.y:3790 { yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -6081,7 +6099,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3786 + //line php5/php5.y:3802 { yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -6095,7 +6113,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3798 + //line php5/php5.y:3814 { yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) @@ -6109,7 +6127,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3810 + //line php5/php5.y:3826 { yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) @@ -6123,7 +6141,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3822 + //line php5/php5.y:3838 { yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) @@ -6137,7 +6155,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3834 + //line php5/php5.y:3850 { yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) @@ -6151,7 +6169,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3846 + //line php5/php5.y:3862 { yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) @@ -6165,7 +6183,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3858 + //line php5/php5.y:3874 { yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) @@ -6179,7 +6197,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3870 + //line php5/php5.y:3886 { yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) @@ -6193,7 +6211,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3882 + //line php5/php5.y:3898 { yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) @@ -6208,7 +6226,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3895 + //line php5/php5.y:3911 { yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) @@ -6222,7 +6240,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3907 + //line php5/php5.y:3923 { yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -6236,7 +6254,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3919 + //line php5/php5.y:3935 { yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) @@ -6250,7 +6268,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3931 + //line php5/php5.y:3947 { yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -6264,7 +6282,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3943 + //line php5/php5.y:3959 { yyVAL.node = expr.NewInstanceOf(yyDollar[1].node, yyDollar[3].node) @@ -6278,7 +6296,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3955 + //line php5/php5.y:3971 { yyVAL.node = yyDollar[1].node @@ -6289,7 +6307,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3964 + //line php5/php5.y:3980 { yyVAL.node = yyDollar[1].node @@ -6297,7 +6315,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3970 + //line php5/php5.y:3986 { yyVAL.node = yyDollar[2].node @@ -6328,7 +6346,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:3999 + //line php5/php5.y:4015 { yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) @@ -6343,7 +6361,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4012 + //line php5/php5.y:4028 { yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) @@ -6358,7 +6376,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4025 + //line php5/php5.y:4041 { yyVAL.node = yyDollar[1].node @@ -6366,7 +6384,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4031 + //line php5/php5.y:4047 { yyVAL.node = cast.NewInt(yyDollar[2].node) @@ -6381,7 +6399,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4044 + //line php5/php5.y:4060 { yyVAL.node = cast.NewDouble(yyDollar[2].node) @@ -6396,7 +6414,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4057 + //line php5/php5.y:4073 { yyVAL.node = cast.NewString(yyDollar[2].node) @@ -6411,7 +6429,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4070 + //line php5/php5.y:4086 { yyVAL.node = cast.NewArray(yyDollar[2].node) @@ -6426,7 +6444,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4083 + //line php5/php5.y:4099 { yyVAL.node = cast.NewObject(yyDollar[2].node) @@ -6441,7 +6459,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4096 + //line php5/php5.y:4112 { yyVAL.node = cast.NewBool(yyDollar[2].node) @@ -6456,7 +6474,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4109 + //line php5/php5.y:4125 { yyVAL.node = cast.NewUnset(yyDollar[2].node) @@ -6471,7 +6489,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4122 + //line php5/php5.y:4138 { var e *expr.Exit if yyDollar[2].node != nil { @@ -6500,7 +6518,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4149 + //line php5/php5.y:4165 { yyVAL.node = expr.NewErrorSuppress(yyDollar[2].node) @@ -6514,7 +6532,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4161 + //line php5/php5.y:4177 { yyVAL.node = yyDollar[1].node @@ -6522,7 +6540,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4167 + //line php5/php5.y:4183 { yyVAL.node = yyDollar[1].node @@ -6530,7 +6548,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4173 + //line php5/php5.y:4189 { yyVAL.node = yyDollar[1].node @@ -6538,7 +6556,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4179 + //line php5/php5.y:4195 { yyVAL.node = expr.NewShellExec(yyDollar[2].list) @@ -6553,7 +6571,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4192 + //line php5/php5.y:4208 { yyVAL.node = expr.NewPrint(yyDollar[2].node) @@ -6567,7 +6585,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4204 + //line php5/php5.y:4220 { yyVAL.node = expr.NewYield(nil, nil) @@ -6581,7 +6599,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:4216 + //line php5/php5.y:4232 { yyVAL.node = expr.NewClosure(yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list, false, yyDollar[2].token != nil, "") @@ -6602,7 +6620,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - //line php5/php5.y:4235 + //line php5/php5.y:4251 { yyVAL.node = expr.NewClosure(yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list, true, yyDollar[3].token != nil, "") @@ -6624,7 +6642,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4258 + //line php5/php5.y:4274 { yyVAL.node = expr.NewYield(nil, yyDollar[2].node) @@ -6638,7 +6656,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4270 + //line php5/php5.y:4286 { yyVAL.node = expr.NewYield(nil, yyDollar[2].node) @@ -6652,7 +6670,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4282 + //line php5/php5.y:4298 { yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) @@ -6667,7 +6685,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4295 + //line php5/php5.y:4311 { yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) @@ -6682,7 +6700,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4311 + //line php5/php5.y:4327 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6699,7 +6717,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4326 + //line php5/php5.y:4342 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6716,7 +6734,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4341 + //line php5/php5.y:4357 { str := scalar.NewString(yyDollar[1].token.Value) yyVAL.node = expr.NewArrayDimFetch(str, yyDollar[3].node) @@ -6735,7 +6753,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4358 + //line php5/php5.y:4374 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6752,7 +6770,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4376 + //line php5/php5.y:4392 { yyVAL.node = expr.NewArray(yyDollar[3].list) @@ -6768,7 +6786,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4390 + //line php5/php5.y:4406 { yyVAL.node = expr.NewShortArray(yyDollar[2].list) @@ -6783,13 +6801,13 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4406 + //line php5/php5.y:4422 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4413 + //line php5/php5.y:4429 { yyVAL.ClosureUse = nil @@ -6797,7 +6815,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4419 + //line php5/php5.y:4435 { yyVAL.ClosureUse = expr.NewClosureUse(yyDollar[3].list) @@ -6813,7 +6831,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4436 + //line php5/php5.y:4452 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -6826,12 +6844,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yyDollar[3].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 320: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4452 + //line php5/php5.y:4469 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -6847,12 +6866,13 @@ yydefault: yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yyDollar[3].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(reference.GetMeta()) yyDollar[4].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 321: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4471 + //line php5/php5.y:4489 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -6864,12 +6884,13 @@ yydefault: // save comments yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 322: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4486 + //line php5/php5.y:4505 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[2].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -6884,12 +6905,13 @@ yydefault: // save comments yyDollar[1].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(reference.GetMeta()) yyDollar[2].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 323: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4507 + //line php5/php5.y:4527 { name := name.NewName(yyDollar[1].list) yyVAL.node = expr.NewFunctionCall(name, yyDollar[2].node.(*node.ArgumentList)) @@ -6902,7 +6924,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4518 + //line php5/php5.y:4538 { funcName := name.NewRelative(yyDollar[3].list) yyVAL.node = expr.NewFunctionCall(funcName, yyDollar[4].node.(*node.ArgumentList)) @@ -6919,7 +6941,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4533 + //line php5/php5.y:4553 { funcName := name.NewFullyQualified(yyDollar[2].list) yyVAL.node = expr.NewFunctionCall(funcName, yyDollar[3].node.(*node.ArgumentList)) @@ -6935,7 +6957,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4547 + //line php5/php5.y:4567 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6949,7 +6971,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4559 + //line php5/php5.y:4579 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6963,7 +6985,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4571 + //line php5/php5.y:4591 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6977,7 +6999,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4583 + //line php5/php5.y:4603 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6991,7 +7013,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4595 + //line php5/php5.y:4615 { yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].node.(*node.ArgumentList)) @@ -7002,7 +7024,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4607 + //line php5/php5.y:4627 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -7016,7 +7038,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4619 + //line php5/php5.y:4639 { yyVAL.node = name.NewName(yyDollar[1].list) @@ -7027,7 +7049,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4628 + //line php5/php5.y:4648 { yyVAL.node = name.NewRelative(yyDollar[3].list) @@ -7042,7 +7064,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4641 + //line php5/php5.y:4661 { yyVAL.node = name.NewFullyQualified(yyDollar[2].list) @@ -7056,7 +7078,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4656 + //line php5/php5.y:4676 { yyVAL.node = name.NewName(yyDollar[1].list) @@ -7067,7 +7089,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4665 + //line php5/php5.y:4685 { yyVAL.node = name.NewRelative(yyDollar[3].list) @@ -7082,7 +7104,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4678 + //line php5/php5.y:4698 { yyVAL.node = name.NewFullyQualified(yyDollar[2].list) @@ -7096,7 +7118,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4693 + //line php5/php5.y:4713 { yyVAL.node = yyDollar[1].node @@ -7104,7 +7126,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4699 + //line php5/php5.y:4719 { yyVAL.node = yyDollar[1].node @@ -7112,7 +7134,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4708 + //line php5/php5.y:4728 { yyVAL.node = yyDollar[1].node @@ -7151,7 +7173,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4745 + //line php5/php5.y:4765 { yyVAL.node = yyDollar[1].node @@ -7159,7 +7181,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4755 + //line php5/php5.y:4775 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -7167,7 +7189,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4761 + //line php5/php5.y:4781 { yyVAL.list = []node.Node{} @@ -7175,7 +7197,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4771 + //line php5/php5.y:4791 { yyVAL.list = yyDollar[2].list @@ -7186,7 +7208,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4783 + //line php5/php5.y:4803 { yyVAL.node = nil @@ -7194,7 +7216,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4789 + //line php5/php5.y:4809 { yyVAL.node = expr.NewExit(nil) @@ -7211,7 +7233,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4804 + //line php5/php5.y:4824 { yyVAL.node = expr.NewExit(yyDollar[1].node) @@ -7230,7 +7252,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4824 + //line php5/php5.y:4844 { yyVAL.list = []node.Node{} @@ -7238,7 +7260,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4830 + //line php5/php5.y:4850 { yyVAL.list = []node.Node{scalar.NewEncapsedStringPart(yyDollar[1].token.Value)} @@ -7246,7 +7268,7 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4836 + //line php5/php5.y:4856 { yyVAL.list = yyDollar[1].list @@ -7254,7 +7276,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4845 + //line php5/php5.y:4865 { yyVAL.node = nil @@ -7262,7 +7284,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4851 + //line php5/php5.y:4871 { yyVAL.node = yyDollar[1].node @@ -7270,7 +7292,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4860 + //line php5/php5.y:4880 { yyVAL.node = scalar.NewLnumber(yyDollar[1].token.Value) @@ -7284,7 +7306,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4872 + //line php5/php5.y:4892 { yyVAL.node = scalar.NewDnumber(yyDollar[1].token.Value) @@ -7298,7 +7320,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4884 + //line php5/php5.y:4904 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) @@ -7312,7 +7334,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4896 + //line php5/php5.y:4916 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7326,7 +7348,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4908 + //line php5/php5.y:4928 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7340,7 +7362,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4920 + //line php5/php5.y:4940 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7354,7 +7376,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4932 + //line php5/php5.y:4952 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7368,7 +7390,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4944 + //line php5/php5.y:4964 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7382,7 +7404,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4956 + //line php5/php5.y:4976 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7396,7 +7418,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4968 + //line php5/php5.y:4988 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7410,7 +7432,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4980 + //line php5/php5.y:5000 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, []node.Node{encapsed}) @@ -7426,7 +7448,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4994 + //line php5/php5.y:5014 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, nil) @@ -7440,7 +7462,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5009 + //line php5/php5.y:5029 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -7457,7 +7479,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5027 + //line php5/php5.y:5047 { yyVAL.node = yyDollar[1].node @@ -7465,7 +7487,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5036 + //line php5/php5.y:5056 { yyVAL.node = yyDollar[1].node @@ -7473,7 +7495,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5042 + //line php5/php5.y:5062 { yyVAL.node = yyDollar[1].node @@ -7481,7 +7503,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5048 + //line php5/php5.y:5068 { name := name.NewName(yyDollar[1].list) yyVAL.node = expr.NewConstFetch(name) @@ -7494,7 +7516,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5059 + //line php5/php5.y:5079 { name := name.NewRelative(yyDollar[3].list) yyVAL.node = expr.NewConstFetch(name) @@ -7511,7 +7533,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5074 + //line php5/php5.y:5094 { name := name.NewFullyQualified(yyDollar[2].list) yyVAL.node = expr.NewConstFetch(name) @@ -7527,7 +7549,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5088 + //line php5/php5.y:5108 { yyVAL.node = expr.NewArray(yyDollar[3].list) @@ -7543,7 +7565,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5102 + //line php5/php5.y:5122 { yyVAL.node = expr.NewShortArray(yyDollar[2].list) @@ -7558,7 +7580,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5115 + //line php5/php5.y:5135 { yyVAL.node = yyDollar[1].node @@ -7566,7 +7588,7 @@ yydefault: } case 375: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5121 + //line php5/php5.y:5141 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7580,7 +7602,7 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5133 + //line php5/php5.y:5153 { yyVAL.node = yyDollar[1].node @@ -7588,7 +7610,7 @@ yydefault: } case 377: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5142 + //line php5/php5.y:5162 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7605,7 +7627,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5157 + //line php5/php5.y:5177 { yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -7619,7 +7641,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5169 + //line php5/php5.y:5189 { yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -7633,7 +7655,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5181 + //line php5/php5.y:5201 { yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -7647,7 +7669,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5193 + //line php5/php5.y:5213 { yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -7661,7 +7683,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5205 + //line php5/php5.y:5225 { yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -7675,7 +7697,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5217 + //line php5/php5.y:5237 { yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -7689,7 +7711,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5229 + //line php5/php5.y:5249 { yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) @@ -7703,7 +7725,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5241 + //line php5/php5.y:5261 { yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) @@ -7717,7 +7739,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5253 + //line php5/php5.y:5273 { yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -7731,7 +7753,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5265 + //line php5/php5.y:5285 { yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -7745,7 +7767,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5277 + //line php5/php5.y:5297 { yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -7759,7 +7781,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5289 + //line php5/php5.y:5309 { yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -7773,7 +7795,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5301 + //line php5/php5.y:5321 { yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -7787,7 +7809,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5313 + //line php5/php5.y:5333 { yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -7801,7 +7823,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5325 + //line php5/php5.y:5345 { yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) @@ -7815,7 +7837,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5337 + //line php5/php5.y:5357 { yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) @@ -7829,7 +7851,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5349 + //line php5/php5.y:5369 { yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) @@ -7843,7 +7865,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5361 + //line php5/php5.y:5381 { yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) @@ -7857,7 +7879,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5373 + //line php5/php5.y:5393 { yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) @@ -7871,7 +7893,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5385 + //line php5/php5.y:5405 { yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) @@ -7885,7 +7907,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5397 + //line php5/php5.y:5417 { yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) @@ -7899,7 +7921,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5409 + //line php5/php5.y:5429 { yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) @@ -7913,7 +7935,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5421 + //line php5/php5.y:5441 { yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) @@ -7928,7 +7950,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5434 + //line php5/php5.y:5454 { yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) @@ -7942,7 +7964,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5446 + //line php5/php5.y:5466 { yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) @@ -7956,7 +7978,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5458 + //line php5/php5.y:5478 { yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -7970,7 +7992,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5470 + //line php5/php5.y:5490 { yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -7984,7 +8006,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5482 + //line php5/php5.y:5502 { yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) @@ -7999,7 +8021,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:5495 + //line php5/php5.y:5515 { yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) @@ -8014,7 +8036,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5508 + //line php5/php5.y:5528 { yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) @@ -8028,7 +8050,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5520 + //line php5/php5.y:5540 { yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) @@ -8042,7 +8064,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5532 + //line php5/php5.y:5552 { yyVAL.node = yyDollar[2].node @@ -8054,7 +8076,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5545 + //line php5/php5.y:5565 { yyVAL.node = yyDollar[1].node @@ -8062,7 +8084,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5551 + //line php5/php5.y:5571 { name := name.NewName(yyDollar[1].list) yyVAL.node = expr.NewConstFetch(name) @@ -8075,7 +8097,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5562 + //line php5/php5.y:5582 { name := name.NewRelative(yyDollar[3].list) yyVAL.node = expr.NewConstFetch(name) @@ -8090,7 +8112,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5575 + //line php5/php5.y:5595 { name := name.NewFullyQualified(yyDollar[2].list) yyVAL.node = expr.NewConstFetch(name) @@ -8106,7 +8128,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5592 + //line php5/php5.y:5612 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = expr.NewVariable(name) @@ -8117,12 +8139,13 @@ yydefault: // save comments yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + yylex.(*Parser).appendMeta(yyVAL.node, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 415: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5606 + //line php5/php5.y:5627 { yyVAL.node = yyDollar[1].node @@ -8130,7 +8153,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5612 + //line php5/php5.y:5633 { yyVAL.node = yyDollar[1].node @@ -8138,7 +8161,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5618 + //line php5/php5.y:5639 { yyVAL.node = yyDollar[1].node @@ -8146,7 +8169,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5624 + //line php5/php5.y:5645 { yyVAL.node = scalar.NewEncapsed(yyDollar[2].list) @@ -8160,7 +8183,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5636 + //line php5/php5.y:5657 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, yyDollar[2].list) @@ -8174,7 +8197,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5648 + //line php5/php5.y:5669 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -8188,7 +8211,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:5663 + //line php5/php5.y:5684 { yyVAL.list = nil @@ -8196,7 +8219,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5669 + //line php5/php5.y:5690 { yyVAL.list = yyDollar[1].list @@ -8209,19 +8232,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:5683 + //line php5/php5.y:5704 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5687 + //line php5/php5.y:5708 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:5694 + //line php5/php5.y:5715 { arrayItem := expr.NewArrayItem(yyDollar[3].node, yyDollar[5].node) yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8237,7 +8260,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5708 + //line php5/php5.y:5729 { arrayItem := expr.NewArrayItem(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8252,7 +8275,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5721 + //line php5/php5.y:5742 { arrayItem := expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node) yyVAL.list = []node.Node{arrayItem} @@ -8267,7 +8290,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5734 + //line php5/php5.y:5755 { arrayItem := expr.NewArrayItem(nil, yyDollar[1].node) yyVAL.list = []node.Node{arrayItem} @@ -8279,7 +8302,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5747 + //line php5/php5.y:5768 { yyVAL.node = yyDollar[1].node @@ -8287,7 +8310,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5753 + //line php5/php5.y:5774 { yyVAL.node = yyDollar[1].node @@ -8295,7 +8318,7 @@ yydefault: } case 431: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5762 + //line php5/php5.y:5783 { yyVAL.node = yyDollar[2].node @@ -8309,7 +8332,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5774 + //line php5/php5.y:5795 { yyVAL.node = yyDollar[2].node @@ -8323,7 +8346,7 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5790 + //line php5/php5.y:5811 { yyVAL.node = yyDollar[1].node @@ -8331,7 +8354,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5800 + //line php5/php5.y:5821 { yyVAL.node = yyDollar[1].node @@ -8339,7 +8362,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5809 + //line php5/php5.y:5830 { yyVAL.node = yyDollar[1].node @@ -8347,7 +8370,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:5818 + //line php5/php5.y:5839 { yyVAL.node = yyDollar[1].node @@ -8401,7 +8424,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5870 + //line php5/php5.y:5891 { yyVAL.node = yyDollar[1].node @@ -8409,7 +8432,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5879 + //line php5/php5.y:5900 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -8417,7 +8440,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:5885 + //line php5/php5.y:5906 { yyVAL.list = []node.Node{} @@ -8425,7 +8448,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5895 + //line php5/php5.y:5916 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*expr.MethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*expr.PropertyFetch).Property @@ -8441,7 +8464,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5912 + //line php5/php5.y:5933 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, fetch) @@ -8459,7 +8482,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5928 + //line php5/php5.y:5949 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = []node.Node{yyDollar[1].node, fetch} @@ -8477,7 +8500,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5947 + //line php5/php5.y:5968 { yyVAL.node = expr.NewMethodCall(nil, nil, yyDollar[1].node.(*node.ArgumentList)) @@ -8488,7 +8511,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5959 + //line php5/php5.y:5980 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -8496,7 +8519,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5965 + //line php5/php5.y:5986 { yyVAL.list = yyDollar[1].list @@ -8504,7 +8527,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:5971 + //line php5/php5.y:5992 { yyVAL.list = nil @@ -8512,7 +8535,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5980 + //line php5/php5.y:6001 { yyVAL.node = yyDollar[1].node @@ -8520,7 +8543,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5986 + //line php5/php5.y:6007 { yyDollar[1].simpleIndirectReference.last.SetVarName(yyDollar[2].node) @@ -8534,7 +8557,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6001 + //line php5/php5.y:6022 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -8548,7 +8571,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6013 + //line php5/php5.y:6034 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -8562,7 +8585,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6028 + //line php5/php5.y:6049 { yyVAL.node = yyDollar[1].node @@ -8570,7 +8593,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6037 + //line php5/php5.y:6058 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -8587,7 +8610,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6052 + //line php5/php5.y:6073 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -8604,7 +8627,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6070 + //line php5/php5.y:6091 { yyVAL.node = yyDollar[1].node @@ -8612,7 +8635,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6076 + //line php5/php5.y:6097 { yyVAL.node = yyDollar[1].node @@ -8620,7 +8643,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6082 + //line php5/php5.y:6103 { yyVAL.node = yyDollar[1].node @@ -8628,7 +8651,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6092 + //line php5/php5.y:6113 { yyVAL.node = yyDollar[1].node @@ -8636,7 +8659,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6098 + //line php5/php5.y:6119 { yyDollar[1].simpleIndirectReference.last.SetVarName(yyDollar[2].node) @@ -8650,7 +8673,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6110 + //line php5/php5.y:6131 { yyVAL.node = yyDollar[1].node @@ -8658,7 +8681,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6119 + //line php5/php5.y:6140 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -8675,7 +8698,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6134 + //line php5/php5.y:6155 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -8692,7 +8715,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6149 + //line php5/php5.y:6170 { yyVAL.node = yyDollar[1].node @@ -8700,7 +8723,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6159 + //line php5/php5.y:6180 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -8711,12 +8734,13 @@ yydefault: // save comments yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMeta(yyVAL.node, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 464: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6173 + //line php5/php5.y:6195 { yyVAL.node = expr.NewVariable(yyDollar[3].node) @@ -8725,6 +8749,7 @@ yydefault: // save comments yyDollar[1].token.Meta.SetTokenName(meta.DollarToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.DollarToken) yyDollar[2].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[2].token, meta.OpenCurlyBracesToken) yyDollar[4].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) @@ -8734,7 +8759,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:6192 + //line php5/php5.y:6215 { yyVAL.node = nil @@ -8742,7 +8767,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6198 + //line php5/php5.y:6221 { yyVAL.node = yyDollar[1].node @@ -8750,7 +8775,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6208 + //line php5/php5.y:6231 { yyVAL.list = yyDollar[1].list @@ -8758,7 +8783,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6214 + //line php5/php5.y:6237 { fetch := expr.NewPropertyFetch(nil, yyDollar[1].node) yyVAL.list = []node.Node{fetch} @@ -8770,7 +8795,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6227 + //line php5/php5.y:6250 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, fetch) @@ -8788,7 +8813,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6243 + //line php5/php5.y:6266 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, fetch) @@ -8806,7 +8831,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6259 + //line php5/php5.y:6282 { fetch := expr.NewPropertyFetch(nil, yyDollar[1].node) yyVAL.list = []node.Node{fetch} @@ -8818,7 +8843,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6272 + //line php5/php5.y:6295 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -8832,7 +8857,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6284 + //line php5/php5.y:6307 { yyVAL.node = yyDollar[2].node @@ -8849,7 +8874,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6302 + //line php5/php5.y:6325 { n := expr.NewVariable(nil) yyVAL.simpleIndirectReference = simpleIndirectReference{[]*expr.Variable{n}, n} @@ -8859,12 +8884,13 @@ yydefault: // save comments yyDollar[1].token.Meta.SetTokenName(meta.DollarToken).AppendTo(n.GetMeta()) + yylex.(*Parser).appendMetaToken(n, yyDollar[1].token, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 475: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6315 + //line php5/php5.y:6339 { n := expr.NewVariable(nil) @@ -8878,12 +8904,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.DollarToken).AppendTo(n.GetMeta()) + yylex.(*Parser).appendMetaToken(n, yyDollar[2].token, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 476: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6335 + //line php5/php5.y:6360 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []node.Node{expr.NewArrayItem(nil, nil)} @@ -8898,7 +8925,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6348 + //line php5/php5.y:6373 { if yyDollar[1].node.(*expr.ArrayItem).Key == nil && yyDollar[1].node.(*expr.ArrayItem).Val == nil { yyVAL.list = []node.Node{} @@ -8910,7 +8937,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6362 + //line php5/php5.y:6387 { yyVAL.node = expr.NewArrayItem(nil, yyDollar[1].node) @@ -8921,7 +8948,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6371 + //line php5/php5.y:6396 { item := expr.NewList(yyDollar[3].list) yyVAL.node = expr.NewArrayItem(nil, item) @@ -8939,7 +8966,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:6387 + //line php5/php5.y:6412 { yyVAL.node = expr.NewArrayItem(nil, nil) @@ -8947,7 +8974,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:6397 + //line php5/php5.y:6422 { yyVAL.list = []node.Node{} @@ -8955,7 +8982,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6403 + //line php5/php5.y:6428 { yyVAL.list = yyDollar[1].list @@ -8972,7 +8999,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:6421 + //line php5/php5.y:6446 { arrayItem := expr.NewArrayItem(yyDollar[3].node, yyDollar[5].node) yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8988,7 +9015,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6435 + //line php5/php5.y:6460 { arrayItem := expr.NewArrayItem(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -9003,7 +9030,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6448 + //line php5/php5.y:6473 { arrayItem := expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node) yyVAL.list = []node.Node{arrayItem} @@ -9018,7 +9045,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6461 + //line php5/php5.y:6486 { arrayItem := expr.NewArrayItem(nil, yyDollar[1].node) yyVAL.list = []node.Node{arrayItem} @@ -9030,7 +9057,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:6471 + //line php5/php5.y:6496 { reference := expr.NewReference(yyDollar[6].node) arrayItem := expr.NewArrayItem(yyDollar[3].node, reference) @@ -9049,7 +9076,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6488 + //line php5/php5.y:6513 { reference := expr.NewReference(yyDollar[4].node) arrayItem := expr.NewArrayItem(nil, reference) @@ -9067,7 +9094,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6504 + //line php5/php5.y:6529 { reference := expr.NewReference(yyDollar[4].node) arrayItem := expr.NewArrayItem(yyDollar[1].node, reference) @@ -9085,7 +9112,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6520 + //line php5/php5.y:6545 { reference := expr.NewReference(yyDollar[2].node) arrayItem := expr.NewArrayItem(nil, reference) @@ -9102,7 +9129,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6538 + //line php5/php5.y:6563 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -9110,7 +9137,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6544 + //line php5/php5.y:6569 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.list = append(yyDollar[1].list, encapsed) @@ -9125,7 +9152,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6557 + //line php5/php5.y:6582 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -9133,7 +9160,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6563 + //line php5/php5.y:6588 { encapsed := scalar.NewEncapsedStringPart(yyDollar[1].token.Value) yyVAL.list = []node.Node{encapsed, yyDollar[2].node} @@ -9148,7 +9175,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6579 + //line php5/php5.y:6604 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -9159,12 +9186,13 @@ yydefault: // save comments yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMeta(yyVAL.node, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 496: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6593 + //line php5/php5.y:6619 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -9177,6 +9205,7 @@ yydefault: // save comments yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yyDollar[2].token.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[2].token, meta.OpenSquareBracket) yyDollar[4].token.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo(yyVAL.node.GetMeta()) @@ -9186,7 +9215,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6613 + //line php5/php5.y:6640 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -9201,6 +9230,7 @@ yydefault: // save comments yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yyDollar[2].token.Meta.SetTokenName(meta.ObjectOperatorToken).AppendTo(yyVAL.node.GetMeta()) yyDollar[3].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(fetch.GetMeta()) @@ -9208,10 +9238,9 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6633 + //line php5/php5.y:6661 { variable := expr.NewVariable(yyDollar[2].node) - variable.StringVar = true yyVAL.node = variable @@ -9228,11 +9257,10 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6651 + //line php5/php5.y:6678 { name := node.NewIdentifier(yyDollar[2].token.Value) variable := expr.NewVariable(name) - variable.StringVar = true yyVAL.node = variable @@ -9251,11 +9279,10 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:6672 + //line php5/php5.y:6698 { identifier := node.NewIdentifier(yyDollar[2].token.Value) variable := expr.NewVariable(identifier) - variable.StringVar = true yyVAL.node = expr.NewArrayDimFetch(variable, yyDollar[4].node) // save position @@ -9278,7 +9305,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6697 + //line php5/php5.y:6722 { yyVAL.node = yyDollar[2].node @@ -9292,7 +9319,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6712 + //line php5/php5.y:6737 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) @@ -9306,7 +9333,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6724 + //line php5/php5.y:6749 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(yyDollar[1].token.Value); err == nil { @@ -9325,7 +9352,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6741 + //line php5/php5.y:6766 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(identifier) @@ -9336,12 +9363,13 @@ yydefault: // save comments yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMeta(yyVAL.node, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 505: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6758 + //line php5/php5.y:6784 { yyVAL.node = expr.NewIsset(yyDollar[3].list) @@ -9357,7 +9385,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6772 + //line php5/php5.y:6798 { yyVAL.node = expr.NewEmpty(yyDollar[3].node) @@ -9373,7 +9401,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6786 + //line php5/php5.y:6812 { yyVAL.node = expr.NewEmpty(yyDollar[3].node) @@ -9389,7 +9417,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6800 + //line php5/php5.y:6826 { yyVAL.node = expr.NewInclude(yyDollar[2].node) @@ -9403,7 +9431,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6812 + //line php5/php5.y:6838 { yyVAL.node = expr.NewIncludeOnce(yyDollar[2].node) @@ -9417,7 +9445,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6824 + //line php5/php5.y:6850 { yyVAL.node = expr.NewEval(yyDollar[3].node) @@ -9433,7 +9461,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6838 + //line php5/php5.y:6864 { yyVAL.node = expr.NewRequire(yyDollar[2].node) @@ -9447,7 +9475,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6850 + //line php5/php5.y:6876 { yyVAL.node = expr.NewRequireOnce(yyDollar[2].node) @@ -9461,7 +9489,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6865 + //line php5/php5.y:6891 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -9469,7 +9497,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6871 + //line php5/php5.y:6897 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -9480,7 +9508,7 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6883 + //line php5/php5.y:6909 { yyVAL.node = yyDollar[1].node @@ -9488,7 +9516,7 @@ yydefault: } case 516: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6889 + //line php5/php5.y:6915 { yyVAL.node = yyDollar[1].node @@ -9496,7 +9524,7 @@ yydefault: } case 517: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6898 + //line php5/php5.y:6924 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -9513,7 +9541,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6913 + //line php5/php5.y:6939 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -9530,7 +9558,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6931 + //line php5/php5.y:6957 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -9547,7 +9575,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6949 + //line php5/php5.y:6975 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) diff --git a/php5/php5.y b/php5/php5.y index 9d8e7ae..49fe6c4 100644 --- a/php5/php5.y +++ b/php5/php5.y @@ -1388,6 +1388,7 @@ catch_statement: $1.Meta.SetTokenName(meta.CatchToken).AppendTo(catch.GetMeta()) $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(catch.GetMeta()) $4.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) $5.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(catch.GetMeta()) $6.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(catch.GetMeta()) $8.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(catch.GetMeta()) @@ -1465,6 +1466,7 @@ additional_catch: $1.Meta.SetTokenName(meta.CatchToken).AppendTo($$.GetMeta()) $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) $4.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) $5.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) $6.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) $8.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) @@ -2255,6 +2257,7 @@ parameter: $3.Meta.SetTokenName(meta.EllipsisToken).AppendTo($$.GetMeta()) } $4.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2285,6 +2288,7 @@ parameter: $3.Meta.SetTokenName(meta.EllipsisToken).AppendTo($$.GetMeta()) } $4.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) $5.Meta.SetTokenName(meta.EqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2471,6 +2475,7 @@ global_var: // save comments $1.Meta.SetTokenName(meta.VariableToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMeta($$, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2483,6 +2488,8 @@ global_var: // save comments $1.Meta.SetTokenName(meta.DollarToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.DollarToken) + yylex.(*Parser).appendMeta($$, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2495,6 +2502,7 @@ global_var: // save comments $1.Meta.SetTokenName(meta.DollarToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.DollarToken) $2.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) $4.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) @@ -2519,6 +2527,7 @@ static_var_list: // save comments $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) $3.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2537,6 +2546,7 @@ static_var_list: // save comments $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) $3.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) $4.Meta.SetTokenName(meta.EqualToken).AppendTo(staticVar.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2555,6 +2565,7 @@ static_var_list: // save comments $1.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2572,6 +2583,7 @@ static_var_list: // save comments $1.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) $2.Meta.SetTokenName(meta.EqualToken).AppendTo(staticVar.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3059,6 +3071,7 @@ class_variable_declaration: // save comments $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) $3.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3077,6 +3090,7 @@ class_variable_declaration: // save comments $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) $3.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) $4.Meta.SetTokenName(meta.EqualToken).AppendTo(property.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3095,6 +3109,7 @@ class_variable_declaration: // save comments $1.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3112,6 +3127,7 @@ class_variable_declaration: // save comments $1.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) $2.Meta.SetTokenName(meta.EqualToken).AppendTo(property.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4445,6 +4461,7 @@ lexical_var_list: // save comments $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) $3.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4464,6 +4481,7 @@ lexical_var_list: $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) $3.Meta.SetTokenName(meta.AmpersandToken).AppendTo(reference.GetMeta()) $4.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4479,6 +4497,7 @@ lexical_var_list: // save comments $1.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4497,6 +4516,7 @@ lexical_var_list: // save comments $1.Meta.SetTokenName(meta.AmpersandToken).AppendTo(reference.GetMeta()) $2.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5599,6 +5619,7 @@ scalar: // save comments $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + yylex.(*Parser).appendMeta($$, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6166,6 +6187,7 @@ compound_variable: // save comments $1.Meta.SetTokenName(meta.VariableToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMeta($$, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6178,6 +6200,7 @@ compound_variable: // save comments $1.Meta.SetTokenName(meta.DollarToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.DollarToken) $2.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $2, meta.OpenCurlyBracesToken) $4.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) @@ -6308,6 +6331,7 @@ simple_indirect_reference: // save comments $1.Meta.SetTokenName(meta.DollarToken).AppendTo(n.GetMeta()) + yylex.(*Parser).appendMetaToken(n, $1, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6325,6 +6349,7 @@ simple_indirect_reference: // save comments $2.Meta.SetTokenName(meta.DollarToken).AppendTo(n.GetMeta()) + yylex.(*Parser).appendMetaToken(n, $2, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6586,6 +6611,7 @@ encaps_var: // save comments $1.Meta.SetTokenName(meta.VariableToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMeta($$, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6602,6 +6628,7 @@ encaps_var: // save comments $1.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) $2.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $2, meta.OpenSquareBracket) $4.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo($$.GetMeta()) @@ -6624,6 +6651,7 @@ encaps_var: // save comments $1.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) $2.Meta.SetTokenName(meta.ObjectOperatorToken).AppendTo($$.GetMeta()) $3.Meta.SetTokenName(meta.IdentifierToken).AppendTo(fetch.GetMeta()) @@ -6632,7 +6660,6 @@ encaps_var: | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { variable := expr.NewVariable($2) - variable.StringVar = true $$ = variable @@ -6651,7 +6678,6 @@ encaps_var: { name := node.NewIdentifier($2.Value) variable := expr.NewVariable(name) - variable.StringVar = true $$ = variable @@ -6672,7 +6698,6 @@ encaps_var: { identifier := node.NewIdentifier($2.Value) variable := expr.NewVariable(identifier) - variable.StringVar = true $$ = expr.NewArrayDimFetch(variable, $4) // save position @@ -6748,6 +6773,7 @@ encaps_var_offset: // save comments $1.Meta.SetTokenName(meta.VariableToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMeta($$, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } diff --git a/php5/php5_test.go b/php5/php5_test.go index 33eebe8..6296881 100644 --- a/php5/php5_test.go +++ b/php5/php5_test.go @@ -481,7 +481,6 @@ func TestPhp5(t *testing.T) { StartPos: 10, EndPos: 11, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 2, @@ -509,7 +508,6 @@ func TestPhp5(t *testing.T) { StartPos: 17, EndPos: 18, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 2, @@ -546,7 +544,6 @@ func TestPhp5(t *testing.T) { StartPos: 24, EndPos: 27, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 3, @@ -581,7 +578,6 @@ func TestPhp5(t *testing.T) { StartPos: 29, EndPos: 30, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 3, @@ -609,7 +605,6 @@ func TestPhp5(t *testing.T) { StartPos: 36, EndPos: 37, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 3, @@ -646,7 +641,6 @@ func TestPhp5(t *testing.T) { StartPos: 43, EndPos: 46, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 4, @@ -690,7 +684,6 @@ func TestPhp5(t *testing.T) { StartPos: 53, EndPos: 54, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 4, @@ -718,7 +711,6 @@ func TestPhp5(t *testing.T) { StartPos: 60, EndPos: 61, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 4, @@ -800,7 +792,6 @@ func TestPhp5(t *testing.T) { StartPos: 76, EndPos: 77, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 5, @@ -828,7 +819,6 @@ func TestPhp5(t *testing.T) { StartPos: 83, EndPos: 84, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 5, @@ -865,7 +855,6 @@ func TestPhp5(t *testing.T) { StartPos: 90, EndPos: 93, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 6, @@ -909,7 +898,6 @@ func TestPhp5(t *testing.T) { StartPos: 100, EndPos: 101, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 6, @@ -937,7 +925,6 @@ func TestPhp5(t *testing.T) { StartPos: 107, EndPos: 108, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 6, @@ -1010,7 +997,6 @@ func TestPhp5(t *testing.T) { StartPos: 122, EndPos: 123, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 7, @@ -1038,7 +1024,6 @@ func TestPhp5(t *testing.T) { StartPos: 129, EndPos: 130, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 7, @@ -1108,7 +1093,6 @@ func TestPhp5(t *testing.T) { StartPos: 154, EndPos: 157, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 9, @@ -1182,7 +1166,6 @@ func TestPhp5(t *testing.T) { StartPos: 173, EndPos: 176, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 9, @@ -1280,7 +1263,6 @@ func TestPhp5(t *testing.T) { StartPos: 219, EndPos: 222, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 10, @@ -1354,7 +1336,6 @@ func TestPhp5(t *testing.T) { StartPos: 238, EndPos: 241, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 10, @@ -1432,7 +1413,6 @@ func TestPhp5(t *testing.T) { StartPos: 263, EndPos: 266, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 11, @@ -1506,7 +1486,6 @@ func TestPhp5(t *testing.T) { StartPos: 282, EndPos: 285, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 11, @@ -1575,7 +1554,6 @@ func TestPhp5(t *testing.T) { StartPos: 314, EndPos: 317, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 12, @@ -1649,7 +1627,6 @@ func TestPhp5(t *testing.T) { StartPos: 333, EndPos: 336, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 12, @@ -1951,7 +1928,6 @@ func TestPhp5(t *testing.T) { StartPos: 700, EndPos: 703, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 30, @@ -2003,7 +1979,6 @@ func TestPhp5(t *testing.T) { StartPos: 715, EndPos: 718, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 31, @@ -2065,7 +2040,6 @@ func TestPhp5(t *testing.T) { StartPos: 733, EndPos: 736, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 32, @@ -2127,7 +2101,6 @@ func TestPhp5(t *testing.T) { StartPos: 790, EndPos: 793, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 33, @@ -2189,7 +2162,6 @@ func TestPhp5(t *testing.T) { StartPos: 810, EndPos: 813, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 34, @@ -2207,7 +2179,6 @@ func TestPhp5(t *testing.T) { StartPos: 815, EndPos: 818, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 34, @@ -2244,7 +2215,6 @@ func TestPhp5(t *testing.T) { StartPos: 826, EndPos: 829, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 35, @@ -2271,7 +2241,6 @@ func TestPhp5(t *testing.T) { StartPos: 831, EndPos: 834, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 35, @@ -2323,7 +2292,6 @@ func TestPhp5(t *testing.T) { StartPos: 846, EndPos: 849, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 36, @@ -2387,7 +2355,6 @@ func TestPhp5(t *testing.T) { StartPos: 868, EndPos: 873, }, - StringVar: true, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 37, @@ -2439,7 +2406,6 @@ func TestPhp5(t *testing.T) { StartPos: 887, EndPos: 889, }, - StringVar: true, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 38, @@ -2501,7 +2467,6 @@ func TestPhp5(t *testing.T) { StartPos: 906, EndPos: 909, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 39, @@ -2547,7 +2512,6 @@ func TestPhp5(t *testing.T) { StartPos: 928, EndPos: 929, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 41, @@ -2582,7 +2546,6 @@ func TestPhp5(t *testing.T) { StartPos: 949, EndPos: 950, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 43, @@ -2617,7 +2580,6 @@ func TestPhp5(t *testing.T) { StartPos: 965, EndPos: 966, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 44, @@ -2654,7 +2616,6 @@ func TestPhp5(t *testing.T) { StartPos: 985, EndPos: 986, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 46, @@ -2706,7 +2667,6 @@ func TestPhp5(t *testing.T) { StartPos: 1014, EndPos: 1015, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 49, @@ -2741,7 +2701,6 @@ func TestPhp5(t *testing.T) { StartPos: 1030, EndPos: 1031, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 50, @@ -2776,7 +2735,6 @@ func TestPhp5(t *testing.T) { StartPos: 1045, EndPos: 1046, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 51, @@ -3911,7 +3869,6 @@ func TestPhp5(t *testing.T) { StartPos: 1739, EndPos: 1740, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 75, @@ -3948,7 +3905,6 @@ func TestPhp5(t *testing.T) { StartPos: 1753, EndPos: 1754, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 76, @@ -3983,7 +3939,6 @@ func TestPhp5(t *testing.T) { StartPos: 1764, EndPos: 1765, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 77, @@ -4020,7 +3975,6 @@ func TestPhp5(t *testing.T) { StartPos: 1772, EndPos: 1773, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 77, @@ -4057,7 +4011,6 @@ func TestPhp5(t *testing.T) { StartPos: 1781, EndPos: 1782, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 77, @@ -4083,7 +4036,6 @@ func TestPhp5(t *testing.T) { StartPos: 1787, EndPos: 1788, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 77, @@ -4128,7 +4080,6 @@ func TestPhp5(t *testing.T) { StartPos: 1804, EndPos: 1805, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 78, @@ -4165,7 +4116,6 @@ func TestPhp5(t *testing.T) { StartPos: 1813, EndPos: 1814, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 78, @@ -4202,7 +4152,6 @@ func TestPhp5(t *testing.T) { StartPos: 1840, EndPos: 1841, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 79, @@ -4220,7 +4169,6 @@ func TestPhp5(t *testing.T) { StartPos: 1846, EndPos: 1847, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 79, @@ -4264,7 +4212,6 @@ func TestPhp5(t *testing.T) { StartPos: 1870, EndPos: 1871, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 80, @@ -4299,7 +4246,6 @@ func TestPhp5(t *testing.T) { StartPos: 1888, EndPos: 1889, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 81, @@ -4317,7 +4263,6 @@ func TestPhp5(t *testing.T) { StartPos: 1894, EndPos: 1895, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 81, @@ -4352,7 +4297,6 @@ func TestPhp5(t *testing.T) { StartPos: 1923, EndPos: 1924, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 82, @@ -4370,7 +4314,6 @@ func TestPhp5(t *testing.T) { StartPos: 1929, EndPos: 1930, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 82, @@ -4388,7 +4331,6 @@ func TestPhp5(t *testing.T) { StartPos: 1935, EndPos: 1936, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 82, @@ -4432,7 +4374,6 @@ func TestPhp5(t *testing.T) { StartPos: 1959, EndPos: 1960, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 83, @@ -4450,7 +4391,6 @@ func TestPhp5(t *testing.T) { StartPos: 1965, EndPos: 1966, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 83, @@ -4485,7 +4425,6 @@ func TestPhp5(t *testing.T) { StartPos: 1983, EndPos: 1984, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 84, @@ -4503,7 +4442,6 @@ func TestPhp5(t *testing.T) { StartPos: 1989, EndPos: 1990, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 84, @@ -4528,7 +4466,6 @@ func TestPhp5(t *testing.T) { StartPos: 1996, EndPos: 1997, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 84, @@ -4564,7 +4501,6 @@ func TestPhp5(t *testing.T) { StartPos: 2014, EndPos: 2015, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 85, @@ -4582,7 +4518,6 @@ func TestPhp5(t *testing.T) { StartPos: 2020, EndPos: 2021, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 85, @@ -4615,7 +4550,6 @@ func TestPhp5(t *testing.T) { StartPos: 2031, EndPos: 2032, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 85, @@ -4731,7 +4665,6 @@ func TestPhp5(t *testing.T) { StartPos: 2126, EndPos: 2127, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 91, @@ -4789,7 +4722,6 @@ func TestPhp5(t *testing.T) { StartPos: 2158, EndPos: 2159, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 94, @@ -4826,7 +4758,6 @@ func TestPhp5(t *testing.T) { StartPos: 2171, EndPos: 2172, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 94, @@ -4923,7 +4854,6 @@ func TestPhp5(t *testing.T) { StartPos: 2245, EndPos: 2246, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 97, @@ -4941,7 +4871,6 @@ func TestPhp5(t *testing.T) { StartPos: 2249, EndPos: 2250, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 97, @@ -4959,7 +4888,6 @@ func TestPhp5(t *testing.T) { StartPos: 2253, EndPos: 2255, }, - StringVar: false, VarName: &expr.Variable{ Position: &position.Position{ StartLine: 97, @@ -4967,7 +4895,6 @@ func TestPhp5(t *testing.T) { StartPos: 2254, EndPos: 2255, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 97, @@ -4986,7 +4913,6 @@ func TestPhp5(t *testing.T) { StartPos: 2258, EndPos: 2265, }, - StringVar: false, VarName: &expr.FunctionCall{ Position: &position.Position{ StartLine: 97, @@ -5073,7 +4999,6 @@ func TestPhp5(t *testing.T) { StartPos: 2290, EndPos: 2291, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 100, @@ -5108,7 +5033,6 @@ func TestPhp5(t *testing.T) { StartPos: 2303, EndPos: 2304, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 101, @@ -5143,7 +5067,6 @@ func TestPhp5(t *testing.T) { StartPos: 2318, EndPos: 2319, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 101, @@ -5180,7 +5103,6 @@ func TestPhp5(t *testing.T) { StartPos: 2331, EndPos: 2332, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 102, @@ -5232,7 +5154,6 @@ func TestPhp5(t *testing.T) { StartPos: 2352, EndPos: 2353, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 103, @@ -5267,7 +5188,6 @@ func TestPhp5(t *testing.T) { StartPos: 2367, EndPos: 2368, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 103, @@ -5302,7 +5222,6 @@ func TestPhp5(t *testing.T) { StartPos: 2382, EndPos: 2383, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 103, @@ -5356,7 +5275,6 @@ func TestPhp5(t *testing.T) { StartPos: 2403, EndPos: 2404, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 104, @@ -5391,7 +5309,6 @@ func TestPhp5(t *testing.T) { StartPos: 2418, EndPos: 2419, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 104, @@ -5434,7 +5351,6 @@ func TestPhp5(t *testing.T) { StartPos: 2434, EndPos: 2435, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 104, @@ -5750,7 +5666,6 @@ func TestPhp5(t *testing.T) { StartPos: 2627, EndPos: 2628, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 112, @@ -5827,7 +5742,6 @@ func TestPhp5(t *testing.T) { StartPos: 2659, EndPos: 2660, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 113, @@ -5854,7 +5768,6 @@ func TestPhp5(t *testing.T) { StartPos: 2663, EndPos: 2664, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 113, @@ -5940,7 +5853,6 @@ func TestPhp5(t *testing.T) { StartPos: 2699, EndPos: 2700, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 114, @@ -5976,7 +5888,6 @@ func TestPhp5(t *testing.T) { StartPos: 2707, EndPos: 2708, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 114, @@ -6014,7 +5925,6 @@ func TestPhp5(t *testing.T) { StartPos: 2721, EndPos: 2722, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 115, @@ -6040,7 +5950,6 @@ func TestPhp5(t *testing.T) { StartPos: 2725, EndPos: 2726, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 115, @@ -6085,7 +5994,6 @@ func TestPhp5(t *testing.T) { StartPos: 2742, EndPos: 2743, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 116, @@ -6120,7 +6028,6 @@ func TestPhp5(t *testing.T) { StartPos: 2750, EndPos: 2751, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 116, @@ -6445,7 +6352,6 @@ func TestPhp5(t *testing.T) { StartPos: 2994, EndPos: 2995, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 138, @@ -7111,7 +7017,6 @@ func TestPhp5(t *testing.T) { StartPos: 3286, EndPos: 3287, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 147, @@ -7170,7 +7075,6 @@ func TestPhp5(t *testing.T) { StartPos: 3319, EndPos: 3320, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 148, @@ -7218,7 +7122,6 @@ func TestPhp5(t *testing.T) { StartPos: 3350, EndPos: 3351, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 148, @@ -7277,7 +7180,6 @@ func TestPhp5(t *testing.T) { StartPos: 3383, EndPos: 3384, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 149, @@ -7325,7 +7227,6 @@ func TestPhp5(t *testing.T) { StartPos: 3415, EndPos: 3416, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 149, @@ -7373,7 +7274,6 @@ func TestPhp5(t *testing.T) { StartPos: 3457, EndPos: 3458, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 149, @@ -7432,7 +7332,6 @@ func TestPhp5(t *testing.T) { StartPos: 3490, EndPos: 3491, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 150, @@ -7471,7 +7370,6 @@ func TestPhp5(t *testing.T) { StartPos: 3517, EndPos: 3518, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 152, @@ -7489,7 +7387,6 @@ func TestPhp5(t *testing.T) { StartPos: 3521, EndPos: 3522, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 152, @@ -8108,7 +8005,6 @@ func TestPhp5(t *testing.T) { StartPos: 3737, EndPos: 3738, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 164, @@ -8158,7 +8054,6 @@ func TestPhp5(t *testing.T) { StartPos: 3746, EndPos: 3747, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 165, @@ -8304,7 +8199,6 @@ func TestPhp5(t *testing.T) { StartPos: 3794, EndPos: 3795, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 168, @@ -8366,7 +8260,6 @@ func TestPhp5(t *testing.T) { StartPos: 3813, EndPos: 3814, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 169, @@ -8418,7 +8311,6 @@ func TestPhp5(t *testing.T) { StartPos: 3827, EndPos: 3828, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 170, @@ -8504,7 +8396,6 @@ func TestPhp5(t *testing.T) { StartPos: 3845, EndPos: 3846, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 170, @@ -8541,7 +8432,6 @@ func TestPhp5(t *testing.T) { StartPos: 3853, EndPos: 3854, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 171, @@ -8575,7 +8465,6 @@ func TestPhp5(t *testing.T) { StartPos: 3860, EndPos: 3861, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 172, @@ -8653,7 +8542,6 @@ func TestPhp5(t *testing.T) { StartPos: 3885, EndPos: 3886, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 175, @@ -8687,7 +8575,6 @@ func TestPhp5(t *testing.T) { StartPos: 3898, EndPos: 3899, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 176, @@ -8754,7 +8641,6 @@ func TestPhp5(t *testing.T) { StartPos: 3929, EndPos: 3930, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 178, @@ -8782,7 +8668,6 @@ func TestPhp5(t *testing.T) { StartPos: 3933, EndPos: 3934, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 178, @@ -8810,7 +8695,6 @@ func TestPhp5(t *testing.T) { StartPos: 3942, EndPos: 3943, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 178, @@ -8835,7 +8719,6 @@ func TestPhp5(t *testing.T) { StartPos: 3947, EndPos: 3948, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 178, @@ -8886,7 +8769,6 @@ func TestPhp5(t *testing.T) { StartPos: 3966, EndPos: 3967, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 179, @@ -8914,7 +8796,6 @@ func TestPhp5(t *testing.T) { StartPos: 3970, EndPos: 3971, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 179, @@ -8949,7 +8830,6 @@ func TestPhp5(t *testing.T) { StartPos: 3980, EndPos: 3981, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 179, @@ -8968,7 +8848,6 @@ func TestPhp5(t *testing.T) { StartPos: 3984, EndPos: 3985, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 179, @@ -9130,7 +9009,6 @@ func TestPhp5(t *testing.T) { StartPos: 4050, EndPos: 4051, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 185, @@ -9207,7 +9085,6 @@ func TestPhp5(t *testing.T) { StartPos: 4072, EndPos: 4073, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 187, @@ -9241,7 +9118,6 @@ func TestPhp5(t *testing.T) { StartPos: 4083, EndPos: 4084, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 188, @@ -9293,7 +9169,6 @@ func TestPhp5(t *testing.T) { StartPos: 4103, EndPos: 4104, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 190, @@ -9345,7 +9220,6 @@ func TestPhp5(t *testing.T) { StartPos: 4123, EndPos: 4124, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 192, @@ -9458,7 +9332,6 @@ func TestPhp5(t *testing.T) { StartPos: 4154, EndPos: 4155, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 194, @@ -9559,7 +9432,6 @@ func TestPhp5(t *testing.T) { StartPos: 4173, EndPos: 4176, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 196, @@ -9601,7 +9473,6 @@ func TestPhp5(t *testing.T) { StartPos: 4184, EndPos: 4185, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 196, @@ -9639,7 +9510,6 @@ func TestPhp5(t *testing.T) { StartPos: 4192, EndPos: 4193, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 198, @@ -9673,7 +9543,6 @@ func TestPhp5(t *testing.T) { StartPos: 4200, EndPos: 4201, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 199, @@ -9707,7 +9576,6 @@ func TestPhp5(t *testing.T) { StartPos: 4210, EndPos: 4211, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 200, @@ -9741,7 +9609,6 @@ func TestPhp5(t *testing.T) { StartPos: 4218, EndPos: 4219, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 201, @@ -9775,7 +9642,6 @@ func TestPhp5(t *testing.T) { StartPos: 4233, EndPos: 4234, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 203, @@ -9809,7 +9675,6 @@ func TestPhp5(t *testing.T) { StartPos: 4252, EndPos: 4253, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 204, @@ -9843,7 +9708,6 @@ func TestPhp5(t *testing.T) { StartPos: 4266, EndPos: 4267, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 205, @@ -9877,7 +9741,6 @@ func TestPhp5(t *testing.T) { StartPos: 4285, EndPos: 4286, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 206, @@ -9911,7 +9774,6 @@ func TestPhp5(t *testing.T) { StartPos: 4292, EndPos: 4293, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 208, @@ -9964,7 +9826,6 @@ func TestPhp5(t *testing.T) { StartPos: 4313, EndPos: 4314, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 209, @@ -10017,7 +9878,6 @@ func TestPhp5(t *testing.T) { StartPos: 4344, EndPos: 4345, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 210, @@ -10071,7 +9931,6 @@ func TestPhp5(t *testing.T) { StartPos: 4373, EndPos: 4374, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 212, @@ -10089,7 +9948,6 @@ func TestPhp5(t *testing.T) { StartPos: 4377, EndPos: 4378, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 212, @@ -10178,7 +10036,6 @@ func TestPhp5(t *testing.T) { StartPos: 4407, EndPos: 4408, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 214, @@ -10227,7 +10084,6 @@ func TestPhp5(t *testing.T) { StartPos: 4418, EndPos: 4419, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 215, @@ -10253,7 +10109,6 @@ func TestPhp5(t *testing.T) { StartPos: 4422, EndPos: 4423, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 215, @@ -10274,7 +10129,6 @@ func TestPhp5(t *testing.T) { StartPos: 4428, EndPos: 4429, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 215, @@ -10330,7 +10184,6 @@ func TestPhp5(t *testing.T) { StartPos: 4439, EndPos: 4440, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 216, @@ -10352,7 +10205,6 @@ func TestPhp5(t *testing.T) { StartPos: 4447, EndPos: 4448, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 216, @@ -10416,7 +10268,6 @@ func TestPhp5(t *testing.T) { StartPos: 4463, EndPos: 4464, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 217, @@ -10440,7 +10291,6 @@ func TestPhp5(t *testing.T) { StartPos: 4470, EndPos: 4471, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 217, @@ -10474,7 +10324,6 @@ func TestPhp5(t *testing.T) { StartPos: 4477, EndPos: 4478, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 219, @@ -10646,7 +10495,6 @@ func TestPhp5(t *testing.T) { StartPos: 4544, EndPos: 4545, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 223, @@ -10680,7 +10528,6 @@ func TestPhp5(t *testing.T) { StartPos: 4551, EndPos: 4552, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 224, @@ -10730,7 +10577,6 @@ func TestPhp5(t *testing.T) { StartPos: 4562, EndPos: 4563, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 225, @@ -10811,7 +10657,6 @@ func TestPhp5(t *testing.T) { StartPos: 4576, EndPos: 4577, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 226, @@ -10916,7 +10761,6 @@ func TestPhp5(t *testing.T) { StartPos: 4608, EndPos: 4609, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 227, @@ -10997,7 +10841,6 @@ func TestPhp5(t *testing.T) { StartPos: 4632, EndPos: 4633, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 228, @@ -11163,7 +11006,6 @@ func TestPhp5(t *testing.T) { StartPos: 4675, EndPos: 4676, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 233, @@ -11376,7 +11218,6 @@ func TestPhp5(t *testing.T) { StartPos: 4742, EndPos: 4745, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 238, @@ -11418,7 +11259,6 @@ func TestPhp5(t *testing.T) { StartPos: 4752, EndPos: 4755, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 239, @@ -11436,7 +11276,6 @@ func TestPhp5(t *testing.T) { StartPos: 4758, EndPos: 4761, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 239, @@ -11497,7 +11336,6 @@ func TestPhp5(t *testing.T) { StartPos: 4773, EndPos: 4776, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 240, @@ -11550,7 +11388,6 @@ func TestPhp5(t *testing.T) { StartPos: 4796, EndPos: 4799, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 241, @@ -11603,7 +11440,6 @@ func TestPhp5(t *testing.T) { StartPos: 4810, EndPos: 4813, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 242, @@ -11637,7 +11473,6 @@ func TestPhp5(t *testing.T) { StartPos: 4818, EndPos: 4819, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 243, @@ -11655,7 +11490,6 @@ func TestPhp5(t *testing.T) { StartPos: 4823, EndPos: 4824, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 243, @@ -11673,7 +11507,6 @@ func TestPhp5(t *testing.T) { StartPos: 4828, EndPos: 4829, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 243, @@ -11707,7 +11540,6 @@ func TestPhp5(t *testing.T) { StartPos: 4834, EndPos: 4835, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 244, @@ -11725,7 +11557,6 @@ func TestPhp5(t *testing.T) { StartPos: 4841, EndPos: 4842, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 244, @@ -11759,7 +11590,6 @@ func TestPhp5(t *testing.T) { StartPos: 4847, EndPos: 4848, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 245, @@ -11784,7 +11614,6 @@ func TestPhp5(t *testing.T) { StartPos: 4852, EndPos: 4853, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 245, @@ -11802,7 +11631,6 @@ func TestPhp5(t *testing.T) { StartPos: 4857, EndPos: 4858, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 245, @@ -11820,7 +11648,6 @@ func TestPhp5(t *testing.T) { StartPos: 4862, EndPos: 4863, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 245, @@ -11839,7 +11666,6 @@ func TestPhp5(t *testing.T) { StartPos: 4867, EndPos: 4868, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 245, @@ -11880,7 +11706,6 @@ func TestPhp5(t *testing.T) { StartPos: 4873, EndPos: 4874, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 246, @@ -11898,7 +11723,6 @@ func TestPhp5(t *testing.T) { StartPos: 4878, EndPos: 4879, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 246, @@ -11916,7 +11740,6 @@ func TestPhp5(t *testing.T) { StartPos: 4883, EndPos: 4884, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 246, @@ -11935,7 +11758,6 @@ func TestPhp5(t *testing.T) { StartPos: 4888, EndPos: 4889, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 246, @@ -11953,7 +11775,6 @@ func TestPhp5(t *testing.T) { StartPos: 4893, EndPos: 4894, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 246, @@ -11987,7 +11808,6 @@ func TestPhp5(t *testing.T) { StartPos: 4900, EndPos: 4901, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 247, @@ -12021,7 +11841,6 @@ func TestPhp5(t *testing.T) { StartPos: 4907, EndPos: 4908, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 248, @@ -12048,7 +11867,6 @@ func TestPhp5(t *testing.T) { StartPos: 4913, EndPos: 4915, }, - StringVar: false, VarName: &expr.Variable{ Position: &position.Position{ StartLine: 249, @@ -12056,7 +11874,6 @@ func TestPhp5(t *testing.T) { StartPos: 4914, EndPos: 4915, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 249, @@ -12083,7 +11900,6 @@ func TestPhp5(t *testing.T) { StartPos: 4920, EndPos: 4923, }, - StringVar: false, VarName: &expr.Variable{ Position: &position.Position{ StartLine: 250, @@ -12091,7 +11907,6 @@ func TestPhp5(t *testing.T) { StartPos: 4921, EndPos: 4923, }, - StringVar: false, VarName: &expr.Variable{ Position: &position.Position{ StartLine: 250, @@ -12099,7 +11914,6 @@ func TestPhp5(t *testing.T) { StartPos: 4922, EndPos: 4923, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 250, @@ -12150,7 +11964,6 @@ func TestPhp5(t *testing.T) { StartPos: 4943, EndPos: 4944, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 252, @@ -12184,7 +11997,6 @@ func TestPhp5(t *testing.T) { StartPos: 4955, EndPos: 4956, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 253, @@ -12202,7 +12014,6 @@ func TestPhp5(t *testing.T) { StartPos: 4961, EndPos: 4962, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 253, @@ -12288,7 +12099,6 @@ func TestPhp5(t *testing.T) { StartPos: 4993, EndPos: 4994, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 255, @@ -12358,7 +12168,6 @@ func TestPhp5(t *testing.T) { StartPos: 5023, EndPos: 5024, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 257, @@ -12392,7 +12201,6 @@ func TestPhp5(t *testing.T) { StartPos: 5038, EndPos: 5039, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 258, @@ -12426,7 +12234,6 @@ func TestPhp5(t *testing.T) { StartPos: 5050, EndPos: 5051, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 259, @@ -12460,7 +12267,6 @@ func TestPhp5(t *testing.T) { StartPos: 5064, EndPos: 5065, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 260, @@ -12494,7 +12300,6 @@ func TestPhp5(t *testing.T) { StartPos: 5077, EndPos: 5078, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 261, @@ -12528,7 +12333,6 @@ func TestPhp5(t *testing.T) { StartPos: 5092, EndPos: 5093, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 262, @@ -12562,7 +12366,6 @@ func TestPhp5(t *testing.T) { StartPos: 5103, EndPos: 5104, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 263, @@ -12596,7 +12399,6 @@ func TestPhp5(t *testing.T) { StartPos: 5117, EndPos: 5118, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 264, @@ -12630,7 +12432,6 @@ func TestPhp5(t *testing.T) { StartPos: 5131, EndPos: 5132, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 265, @@ -12664,7 +12465,6 @@ func TestPhp5(t *testing.T) { StartPos: 5144, EndPos: 5145, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 266, @@ -12698,7 +12498,6 @@ func TestPhp5(t *testing.T) { StartPos: 5151, EndPos: 5152, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 268, @@ -12716,7 +12515,6 @@ func TestPhp5(t *testing.T) { StartPos: 5156, EndPos: 5157, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 268, @@ -12750,7 +12548,6 @@ func TestPhp5(t *testing.T) { StartPos: 5162, EndPos: 5163, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 269, @@ -12768,7 +12565,6 @@ func TestPhp5(t *testing.T) { StartPos: 5167, EndPos: 5168, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 269, @@ -12802,7 +12598,6 @@ func TestPhp5(t *testing.T) { StartPos: 5173, EndPos: 5174, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 270, @@ -12820,7 +12615,6 @@ func TestPhp5(t *testing.T) { StartPos: 5178, EndPos: 5179, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 270, @@ -12854,7 +12648,6 @@ func TestPhp5(t *testing.T) { StartPos: 5184, EndPos: 5185, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 271, @@ -12872,7 +12665,6 @@ func TestPhp5(t *testing.T) { StartPos: 5190, EndPos: 5191, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 271, @@ -12906,7 +12698,6 @@ func TestPhp5(t *testing.T) { StartPos: 5196, EndPos: 5197, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 272, @@ -12924,7 +12715,6 @@ func TestPhp5(t *testing.T) { StartPos: 5202, EndPos: 5203, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 272, @@ -12958,7 +12748,6 @@ func TestPhp5(t *testing.T) { StartPos: 5208, EndPos: 5209, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 273, @@ -12976,7 +12765,6 @@ func TestPhp5(t *testing.T) { StartPos: 5213, EndPos: 5214, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 273, @@ -13010,7 +12798,6 @@ func TestPhp5(t *testing.T) { StartPos: 5219, EndPos: 5220, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 274, @@ -13028,7 +12815,6 @@ func TestPhp5(t *testing.T) { StartPos: 5224, EndPos: 5225, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 274, @@ -13062,7 +12848,6 @@ func TestPhp5(t *testing.T) { StartPos: 5230, EndPos: 5231, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 275, @@ -13080,7 +12865,6 @@ func TestPhp5(t *testing.T) { StartPos: 5236, EndPos: 5237, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 275, @@ -13114,7 +12898,6 @@ func TestPhp5(t *testing.T) { StartPos: 5242, EndPos: 5243, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 276, @@ -13132,7 +12915,6 @@ func TestPhp5(t *testing.T) { StartPos: 5248, EndPos: 5249, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 276, @@ -13166,7 +12948,6 @@ func TestPhp5(t *testing.T) { StartPos: 5254, EndPos: 5255, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 277, @@ -13184,7 +12965,6 @@ func TestPhp5(t *testing.T) { StartPos: 5259, EndPos: 5260, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 277, @@ -13218,7 +12998,6 @@ func TestPhp5(t *testing.T) { StartPos: 5265, EndPos: 5266, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 278, @@ -13236,7 +13015,6 @@ func TestPhp5(t *testing.T) { StartPos: 5272, EndPos: 5273, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 278, @@ -13270,7 +13048,6 @@ func TestPhp5(t *testing.T) { StartPos: 5278, EndPos: 5279, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 279, @@ -13288,7 +13065,6 @@ func TestPhp5(t *testing.T) { StartPos: 5285, EndPos: 5286, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 279, @@ -13322,7 +13098,6 @@ func TestPhp5(t *testing.T) { StartPos: 5291, EndPos: 5292, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 280, @@ -13340,7 +13115,6 @@ func TestPhp5(t *testing.T) { StartPos: 5297, EndPos: 5298, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 280, @@ -13374,7 +13148,6 @@ func TestPhp5(t *testing.T) { StartPos: 5303, EndPos: 5304, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 281, @@ -13392,7 +13165,6 @@ func TestPhp5(t *testing.T) { StartPos: 5310, EndPos: 5311, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 281, @@ -13426,7 +13198,6 @@ func TestPhp5(t *testing.T) { StartPos: 5316, EndPos: 5317, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 282, @@ -13444,7 +13215,6 @@ func TestPhp5(t *testing.T) { StartPos: 5321, EndPos: 5322, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 282, @@ -13478,7 +13248,6 @@ func TestPhp5(t *testing.T) { StartPos: 5327, EndPos: 5328, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 283, @@ -13496,7 +13265,6 @@ func TestPhp5(t *testing.T) { StartPos: 5332, EndPos: 5333, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 283, @@ -13530,7 +13298,6 @@ func TestPhp5(t *testing.T) { StartPos: 5338, EndPos: 5339, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 284, @@ -13548,7 +13315,6 @@ func TestPhp5(t *testing.T) { StartPos: 5343, EndPos: 5344, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 284, @@ -13582,7 +13348,6 @@ func TestPhp5(t *testing.T) { StartPos: 5349, EndPos: 5350, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 285, @@ -13600,7 +13365,6 @@ func TestPhp5(t *testing.T) { StartPos: 5355, EndPos: 5356, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 285, @@ -13634,7 +13398,6 @@ func TestPhp5(t *testing.T) { StartPos: 5361, EndPos: 5362, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 286, @@ -13652,7 +13415,6 @@ func TestPhp5(t *testing.T) { StartPos: 5368, EndPos: 5369, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 286, @@ -13686,7 +13448,6 @@ func TestPhp5(t *testing.T) { StartPos: 5374, EndPos: 5375, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 287, @@ -13704,7 +13465,6 @@ func TestPhp5(t *testing.T) { StartPos: 5379, EndPos: 5380, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 287, @@ -13738,7 +13498,6 @@ func TestPhp5(t *testing.T) { StartPos: 5385, EndPos: 5386, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 288, @@ -13756,7 +13515,6 @@ func TestPhp5(t *testing.T) { StartPos: 5391, EndPos: 5392, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 288, @@ -13790,7 +13548,6 @@ func TestPhp5(t *testing.T) { StartPos: 5397, EndPos: 5398, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 289, @@ -13808,7 +13565,6 @@ func TestPhp5(t *testing.T) { StartPos: 5403, EndPos: 5404, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 289, @@ -13842,7 +13598,6 @@ func TestPhp5(t *testing.T) { StartPos: 5409, EndPos: 5410, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 290, @@ -13860,7 +13615,6 @@ func TestPhp5(t *testing.T) { StartPos: 5415, EndPos: 5416, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 290, @@ -13894,7 +13648,6 @@ func TestPhp5(t *testing.T) { StartPos: 5421, EndPos: 5422, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 291, @@ -13912,7 +13665,6 @@ func TestPhp5(t *testing.T) { StartPos: 5427, EndPos: 5428, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 291, @@ -13946,7 +13698,6 @@ func TestPhp5(t *testing.T) { StartPos: 5433, EndPos: 5434, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 292, @@ -13964,7 +13715,6 @@ func TestPhp5(t *testing.T) { StartPos: 5438, EndPos: 5439, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 292, @@ -13998,7 +13748,6 @@ func TestPhp5(t *testing.T) { StartPos: 5445, EndPos: 5446, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 294, @@ -14016,7 +13765,6 @@ func TestPhp5(t *testing.T) { StartPos: 5451, EndPos: 5452, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 294, @@ -14050,7 +13798,6 @@ func TestPhp5(t *testing.T) { StartPos: 5457, EndPos: 5458, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 295, @@ -14111,7 +13858,6 @@ func TestPhp5(t *testing.T) { StartPos: 5474, EndPos: 5475, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 296, @@ -14172,7 +13918,6 @@ func TestPhp5(t *testing.T) { StartPos: 5488, EndPos: 5489, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 296, @@ -14210,7 +13955,6 @@ func TestPhp5(t *testing.T) { StartPos: 5495, EndPos: 5496, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 297, @@ -14228,7 +13972,6 @@ func TestPhp5(t *testing.T) { StartPos: 5500, EndPos: 5501, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 297, @@ -14262,7 +14005,6 @@ func TestPhp5(t *testing.T) { StartPos: 5506, EndPos: 5507, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 298, @@ -14280,7 +14022,6 @@ func TestPhp5(t *testing.T) { StartPos: 5512, EndPos: 5513, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 298, @@ -14314,7 +14055,6 @@ func TestPhp5(t *testing.T) { StartPos: 5518, EndPos: 5519, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 299, @@ -14332,7 +14072,6 @@ func TestPhp5(t *testing.T) { StartPos: 5524, EndPos: 5525, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 299, @@ -14366,7 +14105,6 @@ func TestPhp5(t *testing.T) { StartPos: 5530, EndPos: 5531, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 300, @@ -14384,7 +14122,6 @@ func TestPhp5(t *testing.T) { StartPos: 5536, EndPos: 5537, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 300, @@ -14418,7 +14155,6 @@ func TestPhp5(t *testing.T) { StartPos: 5542, EndPos: 5543, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 301, @@ -14436,7 +14172,6 @@ func TestPhp5(t *testing.T) { StartPos: 5548, EndPos: 5549, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 301, @@ -14470,7 +14205,6 @@ func TestPhp5(t *testing.T) { StartPos: 5554, EndPos: 5555, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 302, @@ -14488,7 +14222,6 @@ func TestPhp5(t *testing.T) { StartPos: 5560, EndPos: 5561, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 302, @@ -14522,7 +14255,6 @@ func TestPhp5(t *testing.T) { StartPos: 5566, EndPos: 5567, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 303, @@ -14540,7 +14272,6 @@ func TestPhp5(t *testing.T) { StartPos: 5572, EndPos: 5573, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 303, @@ -14574,7 +14305,6 @@ func TestPhp5(t *testing.T) { StartPos: 5578, EndPos: 5579, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 304, @@ -14592,7 +14322,6 @@ func TestPhp5(t *testing.T) { StartPos: 5584, EndPos: 5585, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 304, @@ -14626,7 +14355,6 @@ func TestPhp5(t *testing.T) { StartPos: 5590, EndPos: 5591, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 305, @@ -14644,7 +14372,6 @@ func TestPhp5(t *testing.T) { StartPos: 5596, EndPos: 5597, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 305, @@ -14678,7 +14405,6 @@ func TestPhp5(t *testing.T) { StartPos: 5602, EndPos: 5603, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 306, @@ -14696,7 +14422,6 @@ func TestPhp5(t *testing.T) { StartPos: 5608, EndPos: 5609, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 306, @@ -14730,7 +14455,6 @@ func TestPhp5(t *testing.T) { StartPos: 5614, EndPos: 5615, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 307, @@ -14748,7 +14472,6 @@ func TestPhp5(t *testing.T) { StartPos: 5621, EndPos: 5622, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 307, @@ -14782,7 +14505,6 @@ func TestPhp5(t *testing.T) { StartPos: 5627, EndPos: 5628, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 308, @@ -14800,7 +14522,6 @@ func TestPhp5(t *testing.T) { StartPos: 5634, EndPos: 5635, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 308, @@ -14834,7 +14555,6 @@ func TestPhp5(t *testing.T) { StartPos: 5640, EndPos: 5641, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 309, @@ -14852,7 +14572,6 @@ func TestPhp5(t *testing.T) { StartPos: 5647, EndPos: 5648, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 309, @@ -15383,7 +15102,6 @@ func TestPhp5(t *testing.T) { StartPos: 5810, EndPos: 5813, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 322, @@ -15424,7 +15142,6 @@ func TestPhp5(t *testing.T) { StartPos: 5822, EndPos: 5825, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 323, @@ -15442,7 +15159,6 @@ func TestPhp5(t *testing.T) { StartPos: 5828, EndPos: 5831, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 323, @@ -15491,7 +15207,6 @@ func TestPhp5(t *testing.T) { StartPos: 5840, EndPos: 5844, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 324, @@ -15580,7 +15295,6 @@ func TestPhp5(t *testing.T) { StartPos: 5856, EndPos: 5860, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 325, @@ -15615,7 +15329,6 @@ func TestPhp5(t *testing.T) { StartPos: 5862, EndPos: 5863, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 325, @@ -15662,7 +15375,6 @@ func TestPhp5(t *testing.T) { StartPos: 5875, EndPos: 5876, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 325, @@ -15718,7 +15430,6 @@ func TestPhp5(t *testing.T) { StartPos: 5891, EndPos: 5892, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 325, @@ -15798,7 +15509,6 @@ func TestPhp5(t *testing.T) { StartPos: 5914, EndPos: 5915, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 327, @@ -15851,7 +15561,6 @@ func TestPhp5(t *testing.T) { StartPos: 5932, EndPos: 5933, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 328, @@ -15904,7 +15613,6 @@ func TestPhp5(t *testing.T) { StartPos: 5950, EndPos: 5951, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 329, @@ -15957,7 +15665,6 @@ func TestPhp5(t *testing.T) { StartPos: 5968, EndPos: 5969, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 330, @@ -16010,7 +15717,6 @@ func TestPhp5(t *testing.T) { StartPos: 5986, EndPos: 5987, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 331, @@ -16055,7 +15761,6 @@ func TestPhp5(t *testing.T) { StartPos: 6005, EndPos: 6006, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 332, @@ -16117,7 +15822,6 @@ func TestPhp5(t *testing.T) { StartPos: 6027, EndPos: 6028, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 333, @@ -16188,7 +15892,6 @@ func TestPhp5(t *testing.T) { StartPos: 6052, EndPos: 6053, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 334, @@ -16250,7 +15953,6 @@ func TestPhp5(t *testing.T) { StartPos: 6073, EndPos: 6074, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 335, @@ -16312,7 +16014,6 @@ func TestPhp5(t *testing.T) { StartPos: 6094, EndPos: 6095, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 336, @@ -16374,7 +16075,6 @@ func TestPhp5(t *testing.T) { StartPos: 6115, EndPos: 6116, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 337, @@ -16436,7 +16136,6 @@ func TestPhp5(t *testing.T) { StartPos: 6137, EndPos: 6138, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 338, @@ -16498,7 +16197,6 @@ func TestPhp5(t *testing.T) { StartPos: 6159, EndPos: 6160, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 339, @@ -16560,7 +16258,6 @@ func TestPhp5(t *testing.T) { StartPos: 6180, EndPos: 6181, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 340, @@ -16622,7 +16319,6 @@ func TestPhp5(t *testing.T) { StartPos: 6201, EndPos: 6202, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 341, @@ -16684,7 +16380,6 @@ func TestPhp5(t *testing.T) { StartPos: 6223, EndPos: 6224, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 342, @@ -16746,7 +16441,6 @@ func TestPhp5(t *testing.T) { StartPos: 6245, EndPos: 6246, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 343, @@ -16808,7 +16502,6 @@ func TestPhp5(t *testing.T) { StartPos: 6266, EndPos: 6267, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 344, @@ -16870,7 +16563,6 @@ func TestPhp5(t *testing.T) { StartPos: 6289, EndPos: 6290, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 345, @@ -16932,7 +16624,6 @@ func TestPhp5(t *testing.T) { StartPos: 6312, EndPos: 6313, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 346, @@ -16994,7 +16685,6 @@ func TestPhp5(t *testing.T) { StartPos: 6334, EndPos: 6335, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 347, @@ -17056,7 +16746,6 @@ func TestPhp5(t *testing.T) { StartPos: 6357, EndPos: 6358, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 348, @@ -17118,7 +16807,6 @@ func TestPhp5(t *testing.T) { StartPos: 6378, EndPos: 6379, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 349, @@ -17180,7 +16868,6 @@ func TestPhp5(t *testing.T) { StartPos: 6399, EndPos: 6400, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 350, @@ -17242,7 +16929,6 @@ func TestPhp5(t *testing.T) { StartPos: 6420, EndPos: 6421, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 351, @@ -17304,7 +16990,6 @@ func TestPhp5(t *testing.T) { StartPos: 6442, EndPos: 6443, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 352, @@ -17366,7 +17051,6 @@ func TestPhp5(t *testing.T) { StartPos: 6465, EndPos: 6466, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 353, @@ -17428,7 +17112,6 @@ func TestPhp5(t *testing.T) { StartPos: 6486, EndPos: 6487, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 354, @@ -17490,7 +17173,6 @@ func TestPhp5(t *testing.T) { StartPos: 6508, EndPos: 6509, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 355, @@ -17552,7 +17234,6 @@ func TestPhp5(t *testing.T) { StartPos: 6530, EndPos: 6531, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 356, @@ -17614,7 +17295,6 @@ func TestPhp5(t *testing.T) { StartPos: 6552, EndPos: 6553, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 357, @@ -17676,7 +17356,6 @@ func TestPhp5(t *testing.T) { StartPos: 6574, EndPos: 6575, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 358, @@ -17738,7 +17417,6 @@ func TestPhp5(t *testing.T) { StartPos: 6595, EndPos: 6596, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 359, @@ -17810,7 +17488,6 @@ func TestPhp5(t *testing.T) { StartPos: 6619, EndPos: 6620, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 360, @@ -17882,7 +17559,6 @@ func TestPhp5(t *testing.T) { StartPos: 6645, EndPos: 6646, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 361, @@ -17927,7 +17603,6 @@ func TestPhp5(t *testing.T) { StartPos: 6670, EndPos: 6671, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 362, @@ -17990,7 +17665,6 @@ func TestPhp5(t *testing.T) { StartPos: 6689, EndPos: 6690, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 363, @@ -18053,7 +17727,6 @@ func TestPhp5(t *testing.T) { StartPos: 6718, EndPos: 6719, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 364, @@ -18116,7 +17789,6 @@ func TestPhp5(t *testing.T) { StartPos: 6738, EndPos: 6739, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 365, @@ -18160,7 +17832,6 @@ func TestPhp5(t *testing.T) { StartPos: 6761, EndPos: 6762, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 366, @@ -18249,7 +17920,6 @@ func TestPhp5(t *testing.T) { StartPos: 6793, EndPos: 6794, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 367, @@ -18407,7 +18077,6 @@ func TestPhp5(t *testing.T) { StartPos: 6840, EndPos: 6844, }, - StringVar: false, VarName: &expr.Variable{ Position: &position.Position{ StartLine: 370, @@ -18415,7 +18084,6 @@ func TestPhp5(t *testing.T) { StartPos: 6841, EndPos: 6844, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 370, @@ -18450,7 +18118,6 @@ func TestPhp5(t *testing.T) { StartPos: 6850, EndPos: 6853, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 372, @@ -18506,7 +18173,6 @@ func TestPhp5(t *testing.T) { StartPos: 6860, EndPos: 6863, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 373, @@ -18568,7 +18234,6 @@ func TestPhp5(t *testing.T) { StartPos: 6876, EndPos: 6877, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 374, @@ -18586,7 +18251,6 @@ func TestPhp5(t *testing.T) { StartPos: 6879, EndPos: 6880, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 374, @@ -18613,7 +18277,6 @@ func TestPhp5(t *testing.T) { StartPos: 6886, EndPos: 6890, }, - StringVar: false, VarName: &expr.Variable{ Position: &position.Position{ StartLine: 375, @@ -18621,7 +18284,6 @@ func TestPhp5(t *testing.T) { StartPos: 6888, EndPos: 6889, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 375, @@ -18655,7 +18317,6 @@ func TestPhp5(t *testing.T) { StartPos: 6895, EndPos: 6898, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 376, @@ -18673,7 +18334,6 @@ func TestPhp5(t *testing.T) { StartPos: 6901, EndPos: 6906, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 376, @@ -18715,7 +18375,6 @@ func TestPhp5(t *testing.T) { StartPos: 6913, EndPos: 6916, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 377, diff --git a/php7/parser.go b/php7/parser.go index c850d0c..329eba6 100644 --- a/php7/parser.go +++ b/php7/parser.go @@ -113,6 +113,14 @@ func (l *Parser) appendMetaToken(n node.Node, t *scanner.Token, tn meta.TokenNam n.GetMeta().Push(m) } +func (l *Parser) appendMeta(n node.Node, m *meta.Data, tn meta.TokenName) { + if !l.Lexer.WithMeta { + return + } + + n.GetMeta().Push(m) +} + func (l *Parser) prependMetaToken(n node.Node, t *scanner.Token, tn meta.TokenName) { if !l.Lexer.WithMeta { return diff --git a/php7/php7.go b/php7/php7.go index ebe666c..3bc23af 100644 --- a/php7/php7.go +++ b/php7/php7.go @@ -1,3 +1,5 @@ +// Code generated by goyacc -o php7/php7.go php7/php7.y. DO NOT EDIT. + //line php7/php7.y:2 package php7 @@ -346,7 +348,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -//line php7/php7.y:5453 +//line php7/php7.y:5466 //line yacctab:1 var yyExca = [...]int{ @@ -3693,6 +3695,7 @@ yydefault: yyDollar[2].token.Meta.SetTokenName(meta.CatchToken).AppendTo(catch.GetMeta()) yyDollar[3].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(catch.GetMeta()) yyDollar[5].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yyDollar[6].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(catch.GetMeta()) yyDollar[7].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(catch.GetMeta()) yyDollar[9].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(catch.GetMeta()) @@ -3701,7 +3704,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1357 + //line php7/php7.y:1358 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3709,7 +3712,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1363 + //line php7/php7.y:1364 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3720,7 +3723,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1375 + //line php7/php7.y:1376 { yyVAL.node = nil @@ -3728,7 +3731,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1381 + //line php7/php7.y:1382 { yyVAL.node = stmt.NewFinally(yyDollar[3].list) @@ -3744,7 +3747,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1398 + //line php7/php7.y:1399 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3752,7 +3755,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1404 + //line php7/php7.y:1405 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3763,7 +3766,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1416 + //line php7/php7.y:1417 { yyVAL.node = yyDollar[1].node @@ -3771,7 +3774,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-11 : yypt+1] - //line php7/php7.y:1425 + //line php7/php7.y:1426 { name := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewFunction(name, yyDollar[2].token != nil, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list, yyDollar[4].str) @@ -3795,31 +3798,31 @@ yydefault: } case 165: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1451 + //line php7/php7.y:1452 { yyVAL.token = nil } case 166: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1455 + //line php7/php7.y:1456 { yyVAL.token = yyDollar[1].token } case 167: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1462 + //line php7/php7.y:1463 { yyVAL.token = nil } case 168: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1466 + //line php7/php7.y:1467 { yyVAL.token = yyDollar[1].token } case 169: yyDollar = yyS[yypt-9 : yypt+1] - //line php7/php7.y:1473 + //line php7/php7.y:1474 { name := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewClass(name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list, yyDollar[6].str) @@ -3838,7 +3841,7 @@ yydefault: } case 170: yyDollar = yyS[yypt-8 : yypt+1] - //line php7/php7.y:1490 + //line php7/php7.y:1491 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewClass(name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list, yyDollar[5].str) @@ -3857,7 +3860,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1510 + //line php7/php7.y:1511 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3865,7 +3868,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1516 + //line php7/php7.y:1517 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3873,7 +3876,7 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1525 + //line php7/php7.y:1526 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -3887,7 +3890,7 @@ yydefault: } case 174: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1537 + //line php7/php7.y:1538 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -3901,7 +3904,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1552 + //line php7/php7.y:1553 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewTrait(name, yyDollar[5].list, yyDollar[3].str) @@ -3920,7 +3923,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:1572 + //line php7/php7.y:1573 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewInterface(name, yyDollar[3].InterfaceExtends, yyDollar[6].list, yyDollar[4].str) @@ -3939,7 +3942,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1592 + //line php7/php7.y:1593 { yyVAL.ClassExtends = nil @@ -3947,7 +3950,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1598 + //line php7/php7.y:1599 { yyVAL.ClassExtends = stmt.NewClassExtends(yyDollar[2].node) @@ -3961,7 +3964,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1613 + //line php7/php7.y:1614 { yyVAL.InterfaceExtends = nil @@ -3969,7 +3972,7 @@ yydefault: } case 180: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1619 + //line php7/php7.y:1620 { yyVAL.InterfaceExtends = stmt.NewInterfaceExtends(yyDollar[2].list) @@ -3983,7 +3986,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1634 + //line php7/php7.y:1635 { yyVAL.ClassImplements = nil @@ -3991,7 +3994,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1640 + //line php7/php7.y:1641 { yyVAL.ClassImplements = stmt.NewClassImplements(yyDollar[2].list) @@ -4005,7 +4008,7 @@ yydefault: } case 183: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1655 + //line php7/php7.y:1656 { yyVAL.node = yyDollar[1].node @@ -4013,7 +4016,7 @@ yydefault: } case 184: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1661 + //line php7/php7.y:1662 { yyVAL.node = expr.NewReference(yyDollar[2].node) @@ -4027,7 +4030,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1673 + //line php7/php7.y:1674 { yyVAL.node = expr.NewList(yyDollar[3].list) @@ -4043,7 +4046,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1687 + //line php7/php7.y:1688 { yyVAL.node = expr.NewShortList(yyDollar[2].list) @@ -4058,7 +4061,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1703 + //line php7/php7.y:1704 { yyVAL.node = stmt.NewFor(nil, nil, nil, yyDollar[1].node) @@ -4069,7 +4072,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1712 + //line php7/php7.y:1713 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltFor(nil, nil, nil, stmtList) @@ -4088,7 +4091,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1732 + //line php7/php7.y:1733 { yyVAL.node = stmt.NewForeach(nil, nil, nil, yyDollar[1].node) @@ -4099,7 +4102,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1741 + //line php7/php7.y:1742 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltForeach(nil, nil, nil, stmtList) @@ -4118,7 +4121,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1761 + //line php7/php7.y:1762 { yyVAL.node = stmt.NewDeclare(nil, yyDollar[1].node, false) @@ -4129,7 +4132,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1770 + //line php7/php7.y:1771 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewDeclare(nil, stmtList, true) @@ -4148,7 +4151,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1790 + //line php7/php7.y:1791 { caseList := stmt.NewCaseList(yyDollar[2].list) yyVAL.node = stmt.NewSwitch(nil, caseList) @@ -4165,7 +4168,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1805 + //line php7/php7.y:1806 { caseList := stmt.NewCaseList(yyDollar[3].list) yyVAL.node = stmt.NewSwitch(nil, caseList) @@ -4184,7 +4187,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1822 + //line php7/php7.y:1823 { caseList := stmt.NewCaseList(yyDollar[2].list) yyVAL.node = stmt.NewAltSwitch(nil, caseList) @@ -4203,7 +4206,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1839 + //line php7/php7.y:1840 { caseList := stmt.NewCaseList(yyDollar[3].list) @@ -4225,7 +4228,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1862 + //line php7/php7.y:1863 { yyVAL.list = []node.Node{} @@ -4233,7 +4236,7 @@ yydefault: } case 198: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1868 + //line php7/php7.y:1869 { _case := stmt.NewCase(yyDollar[3].node, yyDollar[5].list) yyVAL.list = append(yyDollar[1].list, _case) @@ -4250,7 +4253,7 @@ yydefault: } case 199: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1883 + //line php7/php7.y:1884 { _default := stmt.NewDefault(yyDollar[4].list) yyVAL.list = append(yyDollar[1].list, _default) @@ -4267,19 +4270,19 @@ yydefault: } case 200: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1901 + //line php7/php7.y:1902 { yyVAL.token = yyDollar[1].token } case 201: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1905 + //line php7/php7.y:1906 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1912 + //line php7/php7.y:1913 { yyVAL.node = stmt.NewWhile(nil, yyDollar[1].node) @@ -4290,7 +4293,7 @@ yydefault: } case 203: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1921 + //line php7/php7.y:1922 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltWhile(nil, stmtList) @@ -4309,7 +4312,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1941 + //line php7/php7.y:1942 { yyVAL.node = stmt.NewIf(yyDollar[3].node, yyDollar[5].node, nil, nil) @@ -4325,7 +4328,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1955 + //line php7/php7.y:1956 { _elseIf := stmt.NewElseIf(yyDollar[4].node, yyDollar[6].node) yyVAL.node = yyDollar[1].node.(*stmt.If).AddElseIf(_elseIf) @@ -4343,7 +4346,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1974 + //line php7/php7.y:1975 { yyVAL.node = yyDollar[1].node @@ -4351,7 +4354,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1980 + //line php7/php7.y:1981 { _else := stmt.NewElse(yyDollar[3].node) yyVAL.node = yyDollar[1].node.(*stmt.If).SetElse(_else) @@ -4367,7 +4370,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1997 + //line php7/php7.y:1998 { stmts := stmt.NewStmtList(yyDollar[6].list) yyVAL.node = stmt.NewAltIf(yyDollar[3].node, stmts, nil, nil) @@ -4386,7 +4389,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:2014 + //line php7/php7.y:2015 { stmts := stmt.NewStmtList(yyDollar[7].list) _elseIf := stmt.NewAltElseIf(yyDollar[4].node, stmts) @@ -4406,7 +4409,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2035 + //line php7/php7.y:2036 { yyVAL.node = yyDollar[1].node @@ -4422,7 +4425,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:2049 + //line php7/php7.y:2050 { stmts := stmt.NewStmtList(yyDollar[4].list) _else := stmt.NewAltElse(stmts) @@ -4444,7 +4447,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2072 + //line php7/php7.y:2073 { yyVAL.list = yyDollar[1].list @@ -4452,7 +4455,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2078 + //line php7/php7.y:2079 { yyVAL.list = nil @@ -4460,7 +4463,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2087 + //line php7/php7.y:2088 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4468,7 +4471,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2093 + //line php7/php7.y:2094 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4479,7 +4482,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2105 + //line php7/php7.y:2106 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4506,12 +4509,13 @@ yydefault: yyDollar[3].token.Meta.SetTokenName(meta.EllipsisToken).AppendTo(yyVAL.node.GetMeta()) } yyDollar[4].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 217: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:2135 + //line php7/php7.y:2137 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4538,13 +4542,14 @@ yydefault: yyDollar[3].token.Meta.SetTokenName(meta.EllipsisToken).AppendTo(yyVAL.node.GetMeta()) } yyDollar[4].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yyDollar[5].token.Meta.SetTokenName(meta.EqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 218: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2169 + //line php7/php7.y:2172 { yyVAL.node = nil @@ -4552,7 +4557,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2175 + //line php7/php7.y:2178 { yyVAL.node = yyDollar[1].node @@ -4560,7 +4565,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2184 + //line php7/php7.y:2187 { yyVAL.node = yyDollar[1].node @@ -4568,7 +4573,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2190 + //line php7/php7.y:2193 { yyVAL.node = node.NewNullable(yyDollar[2].node) @@ -4582,7 +4587,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2205 + //line php7/php7.y:2208 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4596,7 +4601,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2217 + //line php7/php7.y:2220 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4610,7 +4615,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2229 + //line php7/php7.y:2232 { yyVAL.node = yyDollar[1].node @@ -4618,7 +4623,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2238 + //line php7/php7.y:2241 { yyVAL.node = nil @@ -4626,7 +4631,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2244 + //line php7/php7.y:2247 { yyVAL.node = yyDollar[2].node @@ -4637,7 +4642,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2256 + //line php7/php7.y:2259 { yyVAL.node = node.NewArgumentList(nil) @@ -4652,7 +4657,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2269 + //line php7/php7.y:2272 { yyVAL.node = node.NewArgumentList(yyDollar[2].list) @@ -4671,7 +4676,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2289 + //line php7/php7.y:2292 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4679,7 +4684,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2295 + //line php7/php7.y:2298 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4690,7 +4695,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2307 + //line php7/php7.y:2310 { yyVAL.node = node.NewArgument(yyDollar[1].node, false, false) @@ -4701,7 +4706,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2316 + //line php7/php7.y:2319 { yyVAL.node = node.NewArgument(yyDollar[2].node, true, false) @@ -4715,7 +4720,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2331 + //line php7/php7.y:2334 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4726,7 +4731,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2340 + //line php7/php7.y:2343 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4734,7 +4739,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2349 + //line php7/php7.y:2352 { yyVAL.node = yyDollar[1].node @@ -4742,7 +4747,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2358 + //line php7/php7.y:2361 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4753,7 +4758,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2367 + //line php7/php7.y:2370 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4761,7 +4766,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2376 + //line php7/php7.y:2379 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4774,12 +4779,13 @@ yydefault: // save comments yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 239: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2392 + //line php7/php7.y:2396 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4792,13 +4798,14 @@ yydefault: // save comments yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yyDollar[2].token.Meta.SetTokenName(meta.EqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 240: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2412 + //line php7/php7.y:2417 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4806,7 +4813,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2418 + //line php7/php7.y:2423 { yyVAL.list = []node.Node{} @@ -4814,7 +4821,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2427 + //line php7/php7.y:2432 { yyVAL.node = stmt.NewPropertyList(yyDollar[1].list, yyDollar[2].list) @@ -4829,7 +4836,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2440 + //line php7/php7.y:2445 { yyVAL.node = stmt.NewClassConstList(yyDollar[1].list, yyDollar[3].list) @@ -4845,7 +4852,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2454 + //line php7/php7.y:2459 { yyVAL.node = stmt.NewTraitUse(yyDollar[2].list, yyDollar[3].node) @@ -4859,7 +4866,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-10 : yypt+1] - //line php7/php7.y:2466 + //line php7/php7.y:2471 { name := node.NewIdentifier(yyDollar[4].token.Value) yyVAL.node = stmt.NewClassMethod(name, yyDollar[1].list, yyDollar[3].token != nil, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node, yyDollar[5].str) @@ -4885,7 +4892,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2493 + //line php7/php7.y:2498 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4893,7 +4900,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2499 + //line php7/php7.y:2504 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4904,7 +4911,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2511 + //line php7/php7.y:2516 { yyVAL.node = stmt.NewNop() @@ -4918,7 +4925,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2524 + //line php7/php7.y:2529 { yyVAL.node = stmt.NewTraitAdaptationList(nil) @@ -4932,7 +4939,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2536 + //line php7/php7.y:2541 { yyVAL.node = stmt.NewTraitAdaptationList(yyDollar[2].list) @@ -4946,7 +4953,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2551 + //line php7/php7.y:2556 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4954,7 +4961,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2557 + //line php7/php7.y:2562 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4962,7 +4969,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2566 + //line php7/php7.y:2571 { yyVAL.node = yyDollar[1].node @@ -4974,7 +4981,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2576 + //line php7/php7.y:2581 { yyVAL.node = yyDollar[1].node @@ -4986,7 +4993,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2589 + //line php7/php7.y:2594 { yyVAL.node = stmt.NewTraitUsePrecedence(yyDollar[1].node, yyDollar[3].list) @@ -5000,7 +5007,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2604 + //line php7/php7.y:2609 { alias := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, nil, alias) @@ -5017,7 +5024,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2619 + //line php7/php7.y:2624 { alias := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, nil, alias) @@ -5034,7 +5041,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2634 + //line php7/php7.y:2639 { alias := node.NewIdentifier(yyDollar[4].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, alias) @@ -5051,7 +5058,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2649 + //line php7/php7.y:2654 { yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, nil) @@ -5065,7 +5072,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2664 + //line php7/php7.y:2669 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewTraitMethodRef(nil, name) @@ -5081,7 +5088,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2678 + //line php7/php7.y:2683 { yyVAL.node = yyDollar[1].node @@ -5089,7 +5096,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2687 + //line php7/php7.y:2692 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitMethodRef(yyDollar[1].node, target) @@ -5106,7 +5113,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2705 + //line php7/php7.y:2710 { yyVAL.node = stmt.NewNop() @@ -5121,7 +5128,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2718 + //line php7/php7.y:2723 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -5136,7 +5143,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2734 + //line php7/php7.y:2739 { yyVAL.list = yyDollar[1].list @@ -5144,7 +5151,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2740 + //line php7/php7.y:2745 { modifier := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.list = []node.Node{modifier} @@ -5159,7 +5166,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2756 + //line php7/php7.y:2761 { yyVAL.list = nil @@ -5167,7 +5174,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2762 + //line php7/php7.y:2767 { yyVAL.list = yyDollar[1].list @@ -5175,7 +5182,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2771 + //line php7/php7.y:2776 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5183,7 +5190,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2777 + //line php7/php7.y:2782 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5191,7 +5198,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2786 + //line php7/php7.y:2791 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5205,7 +5212,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2798 + //line php7/php7.y:2803 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5219,7 +5226,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2810 + //line php7/php7.y:2815 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5233,7 +5240,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2822 + //line php7/php7.y:2827 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5247,7 +5254,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2834 + //line php7/php7.y:2839 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5261,7 +5268,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2846 + //line php7/php7.y:2851 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5275,7 +5282,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2861 + //line php7/php7.y:2866 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5286,7 +5293,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2870 + //line php7/php7.y:2875 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5294,7 +5301,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2879 + //line php7/php7.y:2884 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5307,12 +5314,13 @@ yydefault: // save comments yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 280: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2895 + //line php7/php7.y:2901 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5325,13 +5333,14 @@ yydefault: // save comments yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yyDollar[2].token.Meta.SetTokenName(meta.EqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 281: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2915 + //line php7/php7.y:2922 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5342,7 +5351,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2924 + //line php7/php7.y:2931 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5350,7 +5359,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2933 + //line php7/php7.y:2940 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewConstant(name, yyDollar[3].node, yyDollar[4].str) @@ -5367,7 +5376,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2951 + //line php7/php7.y:2958 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewConstant(name, yyDollar[3].node, yyDollar[4].str) @@ -5384,7 +5393,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2969 + //line php7/php7.y:2976 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5395,7 +5404,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2978 + //line php7/php7.y:2985 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5403,7 +5412,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2987 + //line php7/php7.y:2994 { yyVAL.node = yyDollar[1].node @@ -5411,7 +5420,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2996 + //line php7/php7.y:3003 { yyVAL.list = nil @@ -5419,7 +5428,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3002 + //line php7/php7.y:3009 { yyVAL.list = yyDollar[1].list @@ -5427,7 +5436,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3011 + //line php7/php7.y:3018 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5438,7 +5447,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3020 + //line php7/php7.y:3027 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5446,7 +5455,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-8 : yypt+1] - //line php7/php7.y:3029 + //line php7/php7.y:3036 { if yyDollar[2].node != nil { yyVAL.node = stmt.NewClass(nil, nil, yyDollar[2].node.(*node.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list, yyDollar[5].str) @@ -5466,7 +5475,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3050 + //line php7/php7.y:3057 { if yyDollar[3].node != nil { yyVAL.node = expr.NewNew(yyDollar[2].node, yyDollar[3].node.(*node.ArgumentList)) @@ -5483,7 +5492,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3065 + //line php7/php7.y:3072 { yyVAL.node = expr.NewNew(yyDollar[2].node, nil) @@ -5497,7 +5506,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:3080 + //line php7/php7.y:3087 { list := expr.NewList(yyDollar[3].list) yyVAL.node = assign.NewAssign(list, yyDollar[6].node) @@ -5516,7 +5525,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:3097 + //line php7/php7.y:3104 { shortList := expr.NewShortList(yyDollar[2].list) yyVAL.node = assign.NewAssign(shortList, yyDollar[5].node) @@ -5534,7 +5543,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3113 + //line php7/php7.y:3120 { yyVAL.node = assign.NewAssign(yyDollar[1].node, yyDollar[3].node) @@ -5548,7 +5557,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3125 + //line php7/php7.y:3132 { yyVAL.node = assign.NewReference(yyDollar[1].node, yyDollar[4].node) @@ -5563,7 +5572,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3138 + //line php7/php7.y:3145 { yyVAL.node = expr.NewClone(yyDollar[2].node) @@ -5577,7 +5586,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3150 + //line php7/php7.y:3157 { yyVAL.node = assign.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -5591,7 +5600,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3162 + //line php7/php7.y:3169 { yyVAL.node = assign.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -5605,7 +5614,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3174 + //line php7/php7.y:3181 { yyVAL.node = assign.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -5619,7 +5628,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3186 + //line php7/php7.y:3193 { yyVAL.node = assign.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -5633,7 +5642,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3198 + //line php7/php7.y:3205 { yyVAL.node = assign.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -5647,7 +5656,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3210 + //line php7/php7.y:3217 { yyVAL.node = assign.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -5661,7 +5670,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3222 + //line php7/php7.y:3229 { yyVAL.node = assign.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -5675,7 +5684,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3234 + //line php7/php7.y:3241 { yyVAL.node = assign.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -5689,7 +5698,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3246 + //line php7/php7.y:3253 { yyVAL.node = assign.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -5703,7 +5712,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3258 + //line php7/php7.y:3265 { yyVAL.node = assign.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -5717,7 +5726,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3270 + //line php7/php7.y:3277 { yyVAL.node = assign.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -5731,7 +5740,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3282 + //line php7/php7.y:3289 { yyVAL.node = assign.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -5745,7 +5754,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3294 + //line php7/php7.y:3301 { yyVAL.node = expr.NewPostInc(yyDollar[1].node) @@ -5759,7 +5768,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3306 + //line php7/php7.y:3313 { yyVAL.node = expr.NewPreInc(yyDollar[2].node) @@ -5773,7 +5782,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3318 + //line php7/php7.y:3325 { yyVAL.node = expr.NewPostDec(yyDollar[1].node) @@ -5787,7 +5796,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3330 + //line php7/php7.y:3337 { yyVAL.node = expr.NewPreDec(yyDollar[2].node) @@ -5801,7 +5810,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3342 + //line php7/php7.y:3349 { yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) @@ -5815,7 +5824,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3354 + //line php7/php7.y:3361 { yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) @@ -5829,7 +5838,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3366 + //line php7/php7.y:3373 { yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) @@ -5843,7 +5852,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3378 + //line php7/php7.y:3385 { yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) @@ -5857,7 +5866,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3390 + //line php7/php7.y:3397 { yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) @@ -5871,7 +5880,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3402 + //line php7/php7.y:3409 { yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -5885,7 +5894,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3414 + //line php7/php7.y:3421 { yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -5899,7 +5908,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3426 + //line php7/php7.y:3433 { yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -5913,7 +5922,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3438 + //line php7/php7.y:3445 { yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -5927,7 +5936,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3450 + //line php7/php7.y:3457 { yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -5941,7 +5950,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3462 + //line php7/php7.y:3469 { yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -5955,7 +5964,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3474 + //line php7/php7.y:3481 { yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -5969,7 +5978,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3486 + //line php7/php7.y:3493 { yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -5983,7 +5992,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3498 + //line php7/php7.y:3505 { yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -5997,7 +6006,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3510 + //line php7/php7.y:3517 { yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -6011,7 +6020,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3522 + //line php7/php7.y:3529 { yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -6025,7 +6034,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3534 + //line php7/php7.y:3541 { yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -6039,7 +6048,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3546 + //line php7/php7.y:3553 { yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) @@ -6053,7 +6062,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3558 + //line php7/php7.y:3565 { yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) @@ -6067,7 +6076,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3570 + //line php7/php7.y:3577 { yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) @@ -6081,7 +6090,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3582 + //line php7/php7.y:3589 { yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) @@ -6095,7 +6104,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3594 + //line php7/php7.y:3601 { yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) @@ -6109,7 +6118,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3606 + //line php7/php7.y:3613 { yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) @@ -6123,7 +6132,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3618 + //line php7/php7.y:3625 { yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) @@ -6137,7 +6146,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3630 + //line php7/php7.y:3637 { yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) @@ -6152,7 +6161,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3643 + //line php7/php7.y:3650 { yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) @@ -6166,7 +6175,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3655 + //line php7/php7.y:3662 { yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -6180,7 +6189,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3667 + //line php7/php7.y:3674 { yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) @@ -6194,7 +6203,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3679 + //line php7/php7.y:3686 { yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -6208,7 +6217,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3691 + //line php7/php7.y:3698 { yyVAL.node = binary.NewSpaceship(yyDollar[1].node, yyDollar[3].node) @@ -6222,7 +6231,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3703 + //line php7/php7.y:3710 { yyVAL.node = expr.NewInstanceOf(yyDollar[1].node, yyDollar[3].node) @@ -6236,7 +6245,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3715 + //line php7/php7.y:3722 { yyVAL.node = yyDollar[2].node @@ -6250,7 +6259,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3727 + //line php7/php7.y:3734 { yyVAL.node = yyDollar[1].node @@ -6258,7 +6267,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:3733 + //line php7/php7.y:3740 { yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) @@ -6273,7 +6282,7 @@ yydefault: } case 350: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3746 + //line php7/php7.y:3753 { yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) @@ -6288,7 +6297,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3759 + //line php7/php7.y:3766 { yyVAL.node = binary.NewCoalesce(yyDollar[1].node, yyDollar[3].node) @@ -6302,7 +6311,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3771 + //line php7/php7.y:3778 { yyVAL.node = yyDollar[1].node @@ -6310,7 +6319,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3777 + //line php7/php7.y:3784 { yyVAL.node = cast.NewInt(yyDollar[2].node) @@ -6325,7 +6334,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3790 + //line php7/php7.y:3797 { yyVAL.node = cast.NewDouble(yyDollar[2].node) @@ -6340,7 +6349,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3803 + //line php7/php7.y:3810 { yyVAL.node = cast.NewString(yyDollar[2].node) @@ -6355,7 +6364,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3816 + //line php7/php7.y:3823 { yyVAL.node = cast.NewArray(yyDollar[2].node) @@ -6370,7 +6379,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3829 + //line php7/php7.y:3836 { yyVAL.node = cast.NewObject(yyDollar[2].node) @@ -6385,7 +6394,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3842 + //line php7/php7.y:3849 { yyVAL.node = cast.NewBool(yyDollar[2].node) @@ -6400,7 +6409,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3855 + //line php7/php7.y:3862 { yyVAL.node = cast.NewUnset(yyDollar[2].node) @@ -6415,7 +6424,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3868 + //line php7/php7.y:3875 { var e *expr.Exit if yyDollar[2].node != nil { @@ -6444,7 +6453,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3895 + //line php7/php7.y:3902 { yyVAL.node = expr.NewErrorSuppress(yyDollar[2].node) @@ -6458,7 +6467,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3907 + //line php7/php7.y:3914 { yyVAL.node = yyDollar[1].node @@ -6466,7 +6475,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3913 + //line php7/php7.y:3920 { yyVAL.node = expr.NewShellExec(yyDollar[2].list) @@ -6481,7 +6490,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3926 + //line php7/php7.y:3933 { yyVAL.node = expr.NewPrint(yyDollar[2].node) @@ -6495,7 +6504,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3938 + //line php7/php7.y:3945 { yyVAL.node = expr.NewYield(nil, nil) @@ -6509,7 +6518,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3950 + //line php7/php7.y:3957 { yyVAL.node = expr.NewYield(nil, yyDollar[2].node) @@ -6523,7 +6532,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3962 + //line php7/php7.y:3969 { yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) @@ -6538,7 +6547,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3975 + //line php7/php7.y:3982 { yyVAL.node = expr.NewYieldFrom(yyDollar[2].node) @@ -6552,7 +6561,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-11 : yypt+1] - //line php7/php7.y:3987 + //line php7/php7.y:3994 { yyVAL.node = expr.NewClosure(yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list, false, yyDollar[2].token != nil, yyDollar[3].str) @@ -6573,7 +6582,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-12 : yypt+1] - //line php7/php7.y:4006 + //line php7/php7.y:4013 { yyVAL.node = expr.NewClosure(yyDollar[6].list, yyDollar[8].ClosureUse, yyDollar[9].node, yyDollar[11].list, true, yyDollar[3].token != nil, yyDollar[4].str) @@ -6595,7 +6604,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4029 + //line php7/php7.y:4036 { yyVAL.str = yylex.(*Parser).PhpDocComment yylex.(*Parser).PhpDocComment = "" @@ -6604,19 +6613,19 @@ yydefault: } case 372: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4039 + //line php7/php7.y:4046 { yyVAL.token = nil } case 373: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4043 + //line php7/php7.y:4050 { yyVAL.token = yyDollar[1].token } case 374: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4050 + //line php7/php7.y:4057 { yyVAL.ClosureUse = nil @@ -6624,7 +6633,7 @@ yydefault: } case 375: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4056 + //line php7/php7.y:4063 { yyVAL.ClosureUse = expr.NewClosureUse(yyDollar[3].list) @@ -6640,7 +6649,7 @@ yydefault: } case 376: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4073 + //line php7/php7.y:4080 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6651,7 +6660,7 @@ yydefault: } case 377: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4082 + //line php7/php7.y:4089 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -6659,7 +6668,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4091 + //line php7/php7.y:4098 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(identifier) @@ -6670,12 +6679,13 @@ yydefault: // save comments yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMeta(yyVAL.node, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 379: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4105 + //line php7/php7.y:4113 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[2].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -6689,12 +6699,13 @@ yydefault: // save comments yyDollar[1].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(yyVAL.node.GetMeta()) yyDollar[2].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 380: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4125 + //line php7/php7.y:4134 { yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].node.(*node.ArgumentList)) @@ -6705,7 +6716,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4134 + //line php7/php7.y:4143 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6719,7 +6730,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4146 + //line php7/php7.y:4155 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6733,7 +6744,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4158 + //line php7/php7.y:4167 { yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].node.(*node.ArgumentList)) @@ -6744,7 +6755,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4170 + //line php7/php7.y:4179 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -6758,7 +6769,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4182 + //line php7/php7.y:4191 { yyVAL.node = yyDollar[1].node @@ -6766,7 +6777,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4191 + //line php7/php7.y:4200 { yyVAL.node = yyDollar[1].node @@ -6774,7 +6785,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4197 + //line php7/php7.y:4206 { yyVAL.node = yyDollar[1].node @@ -6782,7 +6793,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4206 + //line php7/php7.y:4215 { yyVAL.node = nil @@ -6790,7 +6801,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4212 + //line php7/php7.y:4221 { yyVAL.node = expr.NewExit(yyDollar[2].node) @@ -6807,7 +6818,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4230 + //line php7/php7.y:4239 { yyVAL.list = []node.Node{} @@ -6815,7 +6826,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4236 + //line php7/php7.y:4245 { yyVAL.list = []node.Node{scalar.NewEncapsedStringPart(yyDollar[1].token.Value)} @@ -6823,7 +6834,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4242 + //line php7/php7.y:4251 { yyVAL.list = yyDollar[1].list @@ -6831,7 +6842,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4251 + //line php7/php7.y:4260 { yyVAL.node = nil @@ -6839,7 +6850,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4257 + //line php7/php7.y:4266 { yyVAL.node = yyDollar[1].node @@ -6847,7 +6858,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4266 + //line php7/php7.y:4275 { yyVAL.node = expr.NewArray(yyDollar[3].list) @@ -6863,7 +6874,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4280 + //line php7/php7.y:4289 { yyVAL.node = expr.NewShortArray(yyDollar[2].list) @@ -6878,7 +6889,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4293 + //line php7/php7.y:4302 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) @@ -6892,7 +6903,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4308 + //line php7/php7.y:4317 { yyVAL.node = scalar.NewLnumber(yyDollar[1].token.Value) @@ -6906,7 +6917,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4320 + //line php7/php7.y:4329 { yyVAL.node = scalar.NewDnumber(yyDollar[1].token.Value) @@ -6920,7 +6931,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4332 + //line php7/php7.y:4341 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6934,7 +6945,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4344 + //line php7/php7.y:4353 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6948,7 +6959,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4356 + //line php7/php7.y:4365 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6962,7 +6973,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4368 + //line php7/php7.y:4377 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6976,7 +6987,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4380 + //line php7/php7.y:4389 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6990,7 +7001,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4392 + //line php7/php7.y:4401 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7004,7 +7015,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4404 + //line php7/php7.y:4413 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7018,7 +7029,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4416 + //line php7/php7.y:4425 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7032,7 +7043,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4428 + //line php7/php7.y:4437 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, []node.Node{encapsed}) @@ -7048,7 +7059,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4442 + //line php7/php7.y:4451 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, nil) @@ -7062,7 +7073,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4454 + //line php7/php7.y:4463 { yyVAL.node = scalar.NewEncapsed(yyDollar[2].list) @@ -7076,7 +7087,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4466 + //line php7/php7.y:4475 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, yyDollar[2].list) @@ -7090,7 +7101,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4478 + //line php7/php7.y:4487 { yyVAL.node = yyDollar[1].node @@ -7098,7 +7109,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4484 + //line php7/php7.y:4493 { yyVAL.node = yyDollar[1].node @@ -7106,7 +7117,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4493 + //line php7/php7.y:4502 { yyVAL.node = expr.NewConstFetch(yyDollar[1].node) @@ -7117,7 +7128,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4502 + //line php7/php7.y:4511 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -7134,7 +7145,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4517 + //line php7/php7.y:4526 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -7151,7 +7162,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4535 + //line php7/php7.y:4544 { yyVAL.node = yyDollar[1].node @@ -7159,7 +7170,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4541 + //line php7/php7.y:4550 { yyVAL.node = yyDollar[1].node @@ -7167,7 +7178,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4550 + //line php7/php7.y:4559 { yyVAL.node = nil @@ -7175,7 +7186,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4556 + //line php7/php7.y:4565 { yyVAL.node = yyDollar[1].node @@ -7183,7 +7194,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4565 + //line php7/php7.y:4574 { yyVAL.node = yyDollar[1].node @@ -7191,7 +7202,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4574 + //line php7/php7.y:4583 { yyVAL.node = yyDollar[1].node @@ -7199,7 +7210,7 @@ yydefault: } case 423: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4580 + //line php7/php7.y:4589 { yyVAL.node = yyDollar[2].node @@ -7213,7 +7224,7 @@ yydefault: } case 424: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4592 + //line php7/php7.y:4601 { yyVAL.node = yyDollar[1].node @@ -7221,7 +7232,7 @@ yydefault: } case 425: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4601 + //line php7/php7.y:4610 { yyVAL.node = yyDollar[1].node @@ -7229,7 +7240,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4607 + //line php7/php7.y:4616 { yyVAL.node = yyDollar[2].node @@ -7243,7 +7254,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4619 + //line php7/php7.y:4628 { yyVAL.node = yyDollar[1].node @@ -7251,7 +7262,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4628 + //line php7/php7.y:4637 { yyVAL.node = yyDollar[1].node @@ -7259,7 +7270,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4634 + //line php7/php7.y:4643 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7276,7 +7287,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4649 + //line php7/php7.y:4658 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7293,7 +7304,7 @@ yydefault: } case 431: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4664 + //line php7/php7.y:4673 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7310,7 +7321,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4679 + //line php7/php7.y:4688 { yyVAL.node = expr.NewMethodCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -7324,7 +7335,7 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4691 + //line php7/php7.y:4700 { yyVAL.node = yyDollar[1].node @@ -7332,7 +7343,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4700 + //line php7/php7.y:4709 { yyVAL.node = yyDollar[1].node @@ -7340,7 +7351,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4706 + //line php7/php7.y:4715 { yyVAL.node = yyDollar[1].node @@ -7348,7 +7359,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4712 + //line php7/php7.y:4721 { yyVAL.node = expr.NewPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7362,7 +7373,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4727 + //line php7/php7.y:4736 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -7373,12 +7384,13 @@ yydefault: // save comments yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMeta(yyVAL.node, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 438: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4741 + //line php7/php7.y:4751 { yyVAL.node = expr.NewVariable(yyDollar[3].node) @@ -7387,6 +7399,7 @@ yydefault: // save comments yyDollar[1].token.Meta.SetTokenName(meta.DollarToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.DollarToken) yyDollar[2].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[2].token, meta.OpenCurlyBracesToken) yyDollar[4].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) @@ -7396,7 +7409,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4757 + //line php7/php7.y:4768 { yyVAL.node = expr.NewVariable(yyDollar[2].node) @@ -7405,24 +7418,11 @@ yydefault: // save comments yyDollar[1].token.Meta.SetTokenName(meta.DollarToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 440: - yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4772 - { - yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) - - // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - - // save comments - yyDollar[2].token.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo(yyVAL.node.GetMeta()) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 441: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:4784 { @@ -7434,11 +7434,25 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 441: + yyDollar = yyS[yypt-3 : yypt+1] + //line php7/php7.y:4796 + { + yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) + + // save position + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + + // save comments + yyDollar[2].token.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 442: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4799 + //line php7/php7.y:4811 { yyVAL.node = yyDollar[1].node @@ -7446,7 +7460,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4805 + //line php7/php7.y:4817 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7463,7 +7477,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4820 + //line php7/php7.y:4832 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7480,7 +7494,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4835 + //line php7/php7.y:4847 { yyVAL.node = expr.NewPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7494,7 +7508,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4847 + //line php7/php7.y:4859 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7508,7 +7522,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4859 + //line php7/php7.y:4871 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7522,7 +7536,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4874 + //line php7/php7.y:4886 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -7536,7 +7550,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4886 + //line php7/php7.y:4898 { yyVAL.node = yyDollar[2].node @@ -7550,7 +7564,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4898 + //line php7/php7.y:4910 { yyVAL.node = yyDollar[1].node @@ -7558,7 +7572,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4907 + //line php7/php7.y:4919 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -7572,7 +7586,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4919 + //line php7/php7.y:4931 { yyVAL.node = yyDollar[2].node @@ -7586,7 +7600,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4931 + //line php7/php7.y:4943 { yyVAL.node = yyDollar[1].node @@ -7594,7 +7608,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4940 + //line php7/php7.y:4952 { yyVAL.list = yyDollar[1].list @@ -7602,7 +7616,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4949 + //line php7/php7.y:4961 { yyVAL.node = expr.NewArrayItem(nil, nil) @@ -7610,7 +7624,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4955 + //line php7/php7.y:4967 { yyVAL.node = yyDollar[1].node @@ -7618,7 +7632,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4964 + //line php7/php7.y:4976 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []node.Node{expr.NewArrayItem(nil, nil)} @@ -7633,7 +7647,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4977 + //line php7/php7.y:4989 { if yyDollar[1].node.(*expr.ArrayItem).Key == nil && yyDollar[1].node.(*expr.ArrayItem).Val == nil { yyVAL.list = []node.Node{} @@ -7645,7 +7659,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4990 + //line php7/php7.y:5002 { yyVAL.node = expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node) @@ -7659,7 +7673,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5002 + //line php7/php7.y:5014 { yyVAL.node = expr.NewArrayItem(nil, yyDollar[1].node) @@ -7670,7 +7684,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:5011 + //line php7/php7.y:5023 { reference := expr.NewReference(yyDollar[4].node) yyVAL.node = expr.NewArrayItem(yyDollar[1].node, reference) @@ -7687,7 +7701,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5026 + //line php7/php7.y:5038 { reference := expr.NewReference(yyDollar[2].node) yyVAL.node = expr.NewArrayItem(nil, reference) @@ -7703,7 +7717,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:5040 + //line php7/php7.y:5052 { // TODO: Cannot use list() as standalone expression list := expr.NewList(yyDollar[5].list) @@ -7723,7 +7737,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:5058 + //line php7/php7.y:5070 { // TODO: Cannot use list() as standalone expression list := expr.NewList(yyDollar[3].list) @@ -7742,7 +7756,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5078 + //line php7/php7.y:5090 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -7750,7 +7764,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5084 + //line php7/php7.y:5096 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7765,7 +7779,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5097 + //line php7/php7.y:5109 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -7773,7 +7787,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5103 + //line php7/php7.y:5115 { encapsed := scalar.NewEncapsedStringPart(yyDollar[1].token.Value) yyVAL.list = []node.Node{encapsed, yyDollar[2].node} @@ -7788,7 +7802,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5119 + //line php7/php7.y:5131 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -7799,12 +7813,13 @@ yydefault: // save comments yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMeta(yyVAL.node, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 470: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:5133 + //line php7/php7.y:5146 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -7817,6 +7832,7 @@ yydefault: // save comments yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yyDollar[2].token.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[2].token, meta.OpenCurlyBracesToken) yyDollar[4].token.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo(yyVAL.node.GetMeta()) @@ -7826,7 +7842,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5153 + //line php7/php7.y:5167 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -7841,6 +7857,7 @@ yydefault: // save comments yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yyDollar[2].token.Meta.SetTokenName(meta.ObjectOperatorToken).AppendTo(yyVAL.node.GetMeta()) yyDollar[3].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(fetch.GetMeta()) @@ -7848,10 +7865,9 @@ yydefault: } case 472: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5173 + //line php7/php7.y:5188 { variable := expr.NewVariable(yyDollar[2].node) - variable.StringVar = true yyVAL.node = variable @@ -7868,11 +7884,10 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5191 + //line php7/php7.y:5205 { name := node.NewIdentifier(yyDollar[2].token.Value) variable := expr.NewVariable(name) - variable.StringVar = true yyVAL.node = variable @@ -7891,11 +7906,10 @@ yydefault: } case 474: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:5212 + //line php7/php7.y:5225 { identifier := node.NewIdentifier(yyDollar[2].token.Value) variable := expr.NewVariable(identifier) - variable.StringVar = true yyVAL.node = expr.NewArrayDimFetch(variable, yyDollar[4].node) // save position @@ -7918,7 +7932,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5237 + //line php7/php7.y:5249 { yyVAL.node = yyDollar[2].node @@ -7932,7 +7946,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5252 + //line php7/php7.y:5264 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) @@ -7946,7 +7960,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5264 + //line php7/php7.y:5276 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(yyDollar[1].token.Value); err == nil { @@ -7965,7 +7979,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5281 + //line php7/php7.y:5293 { var lnumber *scalar.Lnumber // TODO: add option to handle 64 bit integer @@ -7998,7 +8012,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5312 + //line php7/php7.y:5324 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(identifier) @@ -8009,12 +8023,13 @@ yydefault: // save comments yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMeta(yyVAL.node, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 480: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:5329 + //line php7/php7.y:5342 { yyVAL.node = expr.NewIsset(yyDollar[3].list) @@ -8034,7 +8049,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:5347 + //line php7/php7.y:5360 { yyVAL.node = expr.NewEmpty(yyDollar[3].node) @@ -8050,7 +8065,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5361 + //line php7/php7.y:5374 { yyVAL.node = expr.NewInclude(yyDollar[2].node) @@ -8064,7 +8079,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5373 + //line php7/php7.y:5386 { yyVAL.node = expr.NewIncludeOnce(yyDollar[2].node) @@ -8078,7 +8093,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:5385 + //line php7/php7.y:5398 { yyVAL.node = expr.NewEval(yyDollar[3].node) @@ -8094,7 +8109,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5399 + //line php7/php7.y:5412 { yyVAL.node = expr.NewRequire(yyDollar[2].node) @@ -8108,7 +8123,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5411 + //line php7/php7.y:5424 { yyVAL.node = expr.NewRequireOnce(yyDollar[2].node) @@ -8122,7 +8137,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5426 + //line php7/php7.y:5439 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -8130,7 +8145,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5432 + //line php7/php7.y:5445 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8141,7 +8156,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5444 + //line php7/php7.y:5457 { yyVAL.node = yyDollar[1].node diff --git a/php7/php7.y b/php7/php7.y index 1be9c53..3c8dd08 100644 --- a/php7/php7.y +++ b/php7/php7.y @@ -1345,6 +1345,7 @@ catch_list: $2.Meta.SetTokenName(meta.CatchToken).AppendTo(catch.GetMeta()) $3.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(catch.GetMeta()) $5.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) $6.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(catch.GetMeta()) $7.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(catch.GetMeta()) $9.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(catch.GetMeta()) @@ -2128,6 +2129,7 @@ parameter: $3.Meta.SetTokenName(meta.EllipsisToken).AppendTo($$.GetMeta()) } $4.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2158,6 +2160,7 @@ parameter: $3.Meta.SetTokenName(meta.EllipsisToken).AppendTo($$.GetMeta()) } $4.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) $5.Meta.SetTokenName(meta.EqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2385,6 +2388,7 @@ static_var: // save comments $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2401,6 +2405,7 @@ static_var: // save comments $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) $2.Meta.SetTokenName(meta.EqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2888,6 +2893,7 @@ property: // save comments $1.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2904,6 +2910,7 @@ property: // save comments $1.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) $2.Meta.SetTokenName(meta.EqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4098,6 +4105,7 @@ lexical_var: // save comments $1.Meta.SetTokenName(meta.VariableToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMeta($$, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4115,6 +4123,7 @@ lexical_var: // save comments $1.Meta.SetTokenName(meta.AmpersandToken).AppendTo($$.GetMeta()) $2.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4734,6 +4743,7 @@ simple_variable: // save comments $1.Meta.SetTokenName(meta.VariableToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMeta($$, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4746,6 +4756,7 @@ simple_variable: // save comments $1.Meta.SetTokenName(meta.DollarToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.DollarToken) $2.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $2, meta.OpenCurlyBracesToken) $4.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) @@ -4762,6 +4773,7 @@ simple_variable: // save comments $1.Meta.SetTokenName(meta.DollarToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5126,6 +5138,7 @@ encaps_var: // save comments $1.Meta.SetTokenName(meta.VariableToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMeta($$, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5142,6 +5155,7 @@ encaps_var: // save comments $1.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) $2.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $2, meta.OpenCurlyBracesToken) $4.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo($$.GetMeta()) @@ -5164,6 +5178,7 @@ encaps_var: // save comments $1.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) $2.Meta.SetTokenName(meta.ObjectOperatorToken).AppendTo($$.GetMeta()) $3.Meta.SetTokenName(meta.IdentifierToken).AppendTo(fetch.GetMeta()) @@ -5172,7 +5187,6 @@ encaps_var: | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { variable := expr.NewVariable($2) - variable.StringVar = true $$ = variable @@ -5191,7 +5205,6 @@ encaps_var: { name := node.NewIdentifier($2.Value) variable := expr.NewVariable(name) - variable.StringVar = true $$ = variable @@ -5212,7 +5225,6 @@ encaps_var: { identifier := node.NewIdentifier($2.Value) variable := expr.NewVariable(identifier) - variable.StringVar = true $$ = expr.NewArrayDimFetch(variable, $4) // save position @@ -5319,6 +5331,7 @@ encaps_var_offset: // save comments $1.Meta.SetTokenName(meta.VariableToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMeta($$, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } diff --git a/php7/php7_test.go b/php7/php7_test.go index 3ebc9c3..1b6592b 100644 --- a/php7/php7_test.go +++ b/php7/php7_test.go @@ -449,7 +449,6 @@ func TestPhp7(t *testing.T) { StartPos: 10, EndPos: 11, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 2, @@ -477,7 +476,6 @@ func TestPhp7(t *testing.T) { StartPos: 17, EndPos: 18, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 2, @@ -514,7 +512,6 @@ func TestPhp7(t *testing.T) { StartPos: 24, EndPos: 27, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 3, @@ -549,7 +546,6 @@ func TestPhp7(t *testing.T) { StartPos: 29, EndPos: 30, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 3, @@ -577,7 +573,6 @@ func TestPhp7(t *testing.T) { StartPos: 36, EndPos: 37, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 3, @@ -614,7 +609,6 @@ func TestPhp7(t *testing.T) { StartPos: 43, EndPos: 46, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 4, @@ -658,7 +652,6 @@ func TestPhp7(t *testing.T) { StartPos: 53, EndPos: 54, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 4, @@ -686,7 +679,6 @@ func TestPhp7(t *testing.T) { StartPos: 60, EndPos: 61, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 4, @@ -768,7 +760,6 @@ func TestPhp7(t *testing.T) { StartPos: 76, EndPos: 77, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 5, @@ -796,7 +787,6 @@ func TestPhp7(t *testing.T) { StartPos: 83, EndPos: 84, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 5, @@ -833,7 +823,6 @@ func TestPhp7(t *testing.T) { StartPos: 90, EndPos: 93, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 6, @@ -877,7 +866,6 @@ func TestPhp7(t *testing.T) { StartPos: 100, EndPos: 101, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 6, @@ -905,7 +893,6 @@ func TestPhp7(t *testing.T) { StartPos: 107, EndPos: 108, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 6, @@ -978,7 +965,6 @@ func TestPhp7(t *testing.T) { StartPos: 122, EndPos: 123, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 7, @@ -1006,7 +992,6 @@ func TestPhp7(t *testing.T) { StartPos: 129, EndPos: 130, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 7, @@ -1068,7 +1053,6 @@ func TestPhp7(t *testing.T) { StartPos: 172, EndPos: 173, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 9, @@ -1096,7 +1080,6 @@ func TestPhp7(t *testing.T) { StartPos: 179, EndPos: 180, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 9, @@ -1161,7 +1144,6 @@ func TestPhp7(t *testing.T) { StartPos: 209, EndPos: 212, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 11, @@ -1202,7 +1184,6 @@ func TestPhp7(t *testing.T) { StartPos: 221, EndPos: 224, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 12, @@ -1253,7 +1234,6 @@ func TestPhp7(t *testing.T) { StartPos: 236, EndPos: 239, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 13, @@ -1271,7 +1251,6 @@ func TestPhp7(t *testing.T) { StartPos: 241, EndPos: 244, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 13, @@ -1313,7 +1292,6 @@ func TestPhp7(t *testing.T) { StartPos: 254, EndPos: 257, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 14, @@ -1364,7 +1342,6 @@ func TestPhp7(t *testing.T) { StartPos: 271, EndPos: 274, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 15, @@ -1382,7 +1359,6 @@ func TestPhp7(t *testing.T) { StartPos: 277, EndPos: 280, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 15, @@ -1433,7 +1409,6 @@ func TestPhp7(t *testing.T) { StartPos: 297, EndPos: 300, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 16, @@ -1509,7 +1484,6 @@ func TestPhp7(t *testing.T) { StartPos: 324, EndPos: 327, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 18, @@ -1583,7 +1557,6 @@ func TestPhp7(t *testing.T) { StartPos: 343, EndPos: 346, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 18, @@ -1689,7 +1662,6 @@ func TestPhp7(t *testing.T) { StartPos: 390, EndPos: 393, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 19, @@ -1763,7 +1735,6 @@ func TestPhp7(t *testing.T) { StartPos: 409, EndPos: 412, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 19, @@ -1849,7 +1820,6 @@ func TestPhp7(t *testing.T) { StartPos: 435, EndPos: 438, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 20, @@ -1923,7 +1893,6 @@ func TestPhp7(t *testing.T) { StartPos: 454, EndPos: 457, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 20, @@ -2000,7 +1969,6 @@ func TestPhp7(t *testing.T) { StartPos: 487, EndPos: 490, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 21, @@ -2074,7 +2042,6 @@ func TestPhp7(t *testing.T) { StartPos: 506, EndPos: 509, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 21, @@ -2376,7 +2343,6 @@ func TestPhp7(t *testing.T) { StartPos: 873, EndPos: 876, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 39, @@ -2428,7 +2394,6 @@ func TestPhp7(t *testing.T) { StartPos: 888, EndPos: 891, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 40, @@ -2490,7 +2455,6 @@ func TestPhp7(t *testing.T) { StartPos: 906, EndPos: 909, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 41, @@ -2560,7 +2524,6 @@ func TestPhp7(t *testing.T) { StartPos: 925, EndPos: 928, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 42, @@ -2622,7 +2585,6 @@ func TestPhp7(t *testing.T) { StartPos: 982, EndPos: 985, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 43, @@ -2684,7 +2646,6 @@ func TestPhp7(t *testing.T) { StartPos: 1040, EndPos: 1043, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 44, @@ -2746,7 +2707,6 @@ func TestPhp7(t *testing.T) { StartPos: 1060, EndPos: 1063, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 45, @@ -2764,7 +2724,6 @@ func TestPhp7(t *testing.T) { StartPos: 1065, EndPos: 1068, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 45, @@ -2801,7 +2760,6 @@ func TestPhp7(t *testing.T) { StartPos: 1076, EndPos: 1079, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 46, @@ -2828,7 +2786,6 @@ func TestPhp7(t *testing.T) { StartPos: 1081, EndPos: 1084, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 46, @@ -2880,7 +2837,6 @@ func TestPhp7(t *testing.T) { StartPos: 1096, EndPos: 1099, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 47, @@ -2944,7 +2900,6 @@ func TestPhp7(t *testing.T) { StartPos: 1118, EndPos: 1123, }, - StringVar: true, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 48, @@ -2996,7 +2951,6 @@ func TestPhp7(t *testing.T) { StartPos: 1137, EndPos: 1139, }, - StringVar: true, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 49, @@ -3051,7 +3005,6 @@ func TestPhp7(t *testing.T) { StartPos: 1155, EndPos: 1161, }, - StringVar: true, VarName: &expr.Variable{ Position: &position.Position{ StartLine: 50, @@ -3059,7 +3012,6 @@ func TestPhp7(t *testing.T) { StartPos: 1157, EndPos: 1160, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 50, @@ -3112,7 +3064,6 @@ func TestPhp7(t *testing.T) { StartPos: 1174, EndPos: 1177, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 51, @@ -3158,7 +3109,6 @@ func TestPhp7(t *testing.T) { StartPos: 1196, EndPos: 1197, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 53, @@ -3193,7 +3143,6 @@ func TestPhp7(t *testing.T) { StartPos: 1217, EndPos: 1218, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 55, @@ -3228,7 +3177,6 @@ func TestPhp7(t *testing.T) { StartPos: 1233, EndPos: 1234, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 56, @@ -3265,7 +3213,6 @@ func TestPhp7(t *testing.T) { StartPos: 1253, EndPos: 1254, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 58, @@ -3317,7 +3264,6 @@ func TestPhp7(t *testing.T) { StartPos: 1282, EndPos: 1283, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 61, @@ -3352,7 +3298,6 @@ func TestPhp7(t *testing.T) { StartPos: 1298, EndPos: 1299, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 62, @@ -3387,7 +3332,6 @@ func TestPhp7(t *testing.T) { StartPos: 1313, EndPos: 1314, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 63, @@ -4631,7 +4575,6 @@ func TestPhp7(t *testing.T) { StartPos: 2035, EndPos: 2036, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 89, @@ -4668,7 +4611,6 @@ func TestPhp7(t *testing.T) { StartPos: 2049, EndPos: 2050, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 90, @@ -4703,7 +4645,6 @@ func TestPhp7(t *testing.T) { StartPos: 2060, EndPos: 2061, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 91, @@ -4740,7 +4681,6 @@ func TestPhp7(t *testing.T) { StartPos: 2068, EndPos: 2069, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 91, @@ -4777,7 +4717,6 @@ func TestPhp7(t *testing.T) { StartPos: 2077, EndPos: 2078, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 91, @@ -4803,7 +4742,6 @@ func TestPhp7(t *testing.T) { StartPos: 2083, EndPos: 2084, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 91, @@ -4848,7 +4786,6 @@ func TestPhp7(t *testing.T) { StartPos: 2100, EndPos: 2101, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 92, @@ -4885,7 +4822,6 @@ func TestPhp7(t *testing.T) { StartPos: 2109, EndPos: 2110, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 92, @@ -4911,7 +4847,6 @@ func TestPhp7(t *testing.T) { StartPos: 2115, EndPos: 2116, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 92, @@ -4948,7 +4883,6 @@ func TestPhp7(t *testing.T) { StartPos: 2142, EndPos: 2143, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 93, @@ -4966,7 +4900,6 @@ func TestPhp7(t *testing.T) { StartPos: 2148, EndPos: 2149, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 93, @@ -5001,7 +4934,6 @@ func TestPhp7(t *testing.T) { StartPos: 2166, EndPos: 2167, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 94, @@ -5019,7 +4951,6 @@ func TestPhp7(t *testing.T) { StartPos: 2172, EndPos: 2173, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 94, @@ -5054,7 +4985,6 @@ func TestPhp7(t *testing.T) { StartPos: 2201, EndPos: 2202, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 95, @@ -5072,7 +5002,6 @@ func TestPhp7(t *testing.T) { StartPos: 2207, EndPos: 2208, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 95, @@ -5090,7 +5019,6 @@ func TestPhp7(t *testing.T) { StartPos: 2213, EndPos: 2214, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 95, @@ -5125,7 +5053,6 @@ func TestPhp7(t *testing.T) { StartPos: 2231, EndPos: 2232, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 96, @@ -5143,7 +5070,6 @@ func TestPhp7(t *testing.T) { StartPos: 2237, EndPos: 2238, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 96, @@ -5168,7 +5094,6 @@ func TestPhp7(t *testing.T) { StartPos: 2244, EndPos: 2245, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 96, @@ -5204,7 +5129,6 @@ func TestPhp7(t *testing.T) { StartPos: 2262, EndPos: 2263, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 97, @@ -5222,7 +5146,6 @@ func TestPhp7(t *testing.T) { StartPos: 2268, EndPos: 2269, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 97, @@ -5255,7 +5178,6 @@ func TestPhp7(t *testing.T) { StartPos: 2279, EndPos: 2280, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 97, @@ -5293,7 +5215,6 @@ func TestPhp7(t *testing.T) { StartPos: 2298, EndPos: 2299, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 98, @@ -5311,7 +5232,6 @@ func TestPhp7(t *testing.T) { StartPos: 2304, EndPos: 2305, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 98, @@ -5344,7 +5264,6 @@ func TestPhp7(t *testing.T) { StartPos: 2311, EndPos: 2312, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 98, @@ -5509,7 +5428,6 @@ func TestPhp7(t *testing.T) { StartPos: 2432, EndPos: 2433, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 103, @@ -5527,7 +5445,6 @@ func TestPhp7(t *testing.T) { StartPos: 2436, EndPos: 2437, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 103, @@ -5588,7 +5505,6 @@ func TestPhp7(t *testing.T) { StartPos: 2462, EndPos: 2463, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 106, @@ -5623,7 +5539,6 @@ func TestPhp7(t *testing.T) { StartPos: 2475, EndPos: 2476, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 107, @@ -5658,7 +5573,6 @@ func TestPhp7(t *testing.T) { StartPos: 2490, EndPos: 2491, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 107, @@ -5695,7 +5609,6 @@ func TestPhp7(t *testing.T) { StartPos: 2503, EndPos: 2504, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 108, @@ -5747,7 +5660,6 @@ func TestPhp7(t *testing.T) { StartPos: 2524, EndPos: 2525, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 109, @@ -5782,7 +5694,6 @@ func TestPhp7(t *testing.T) { StartPos: 2539, EndPos: 2540, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 109, @@ -5817,7 +5728,6 @@ func TestPhp7(t *testing.T) { StartPos: 2554, EndPos: 2555, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 109, @@ -5871,7 +5781,6 @@ func TestPhp7(t *testing.T) { StartPos: 2575, EndPos: 2576, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 110, @@ -5906,7 +5815,6 @@ func TestPhp7(t *testing.T) { StartPos: 2590, EndPos: 2591, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 110, @@ -5949,7 +5857,6 @@ func TestPhp7(t *testing.T) { StartPos: 2606, EndPos: 2607, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 110, @@ -6256,7 +6163,6 @@ func TestPhp7(t *testing.T) { StartPos: 2795, EndPos: 2796, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 118, @@ -6333,7 +6239,6 @@ func TestPhp7(t *testing.T) { StartPos: 2827, EndPos: 2828, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 119, @@ -6360,7 +6265,6 @@ func TestPhp7(t *testing.T) { StartPos: 2831, EndPos: 2832, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 119, @@ -6407,7 +6311,6 @@ func TestPhp7(t *testing.T) { StartPos: 2849, EndPos: 2850, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 120, @@ -6433,7 +6336,6 @@ func TestPhp7(t *testing.T) { StartPos: 2853, EndPos: 2854, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 120, @@ -6767,7 +6669,6 @@ func TestPhp7(t *testing.T) { StartPos: 3102, EndPos: 3103, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 143, @@ -7545,7 +7446,6 @@ func TestPhp7(t *testing.T) { StartPos: 3444, EndPos: 3445, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 154, @@ -7623,7 +7523,6 @@ func TestPhp7(t *testing.T) { StartPos: 3494, EndPos: 3495, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 155, @@ -7682,7 +7581,6 @@ func TestPhp7(t *testing.T) { StartPos: 3527, EndPos: 3528, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 156, @@ -7730,7 +7628,6 @@ func TestPhp7(t *testing.T) { StartPos: 3558, EndPos: 3559, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 156, @@ -7789,7 +7686,6 @@ func TestPhp7(t *testing.T) { StartPos: 3591, EndPos: 3592, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 157, @@ -7828,7 +7724,6 @@ func TestPhp7(t *testing.T) { StartPos: 3618, EndPos: 3619, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 159, @@ -7846,7 +7741,6 @@ func TestPhp7(t *testing.T) { StartPos: 3622, EndPos: 3623, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 159, @@ -8925,7 +8819,6 @@ func TestPhp7(t *testing.T) { StartPos: 3990, EndPos: 3991, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 177, @@ -8975,7 +8868,6 @@ func TestPhp7(t *testing.T) { StartPos: 3999, EndPos: 4000, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 178, @@ -9121,7 +9013,6 @@ func TestPhp7(t *testing.T) { StartPos: 4047, EndPos: 4048, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 181, @@ -9159,7 +9050,6 @@ func TestPhp7(t *testing.T) { StartPos: 4056, EndPos: 4057, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 182, @@ -9193,7 +9083,6 @@ func TestPhp7(t *testing.T) { StartPos: 4063, EndPos: 4064, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 183, @@ -9271,7 +9160,6 @@ func TestPhp7(t *testing.T) { StartPos: 4082, EndPos: 4085, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 186, @@ -9314,7 +9202,6 @@ func TestPhp7(t *testing.T) { StartPos: 4101, EndPos: 4102, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 187, @@ -9348,7 +9235,6 @@ func TestPhp7(t *testing.T) { StartPos: 4114, EndPos: 4115, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 188, @@ -9415,7 +9301,6 @@ func TestPhp7(t *testing.T) { StartPos: 4145, EndPos: 4146, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 190, @@ -9443,7 +9328,6 @@ func TestPhp7(t *testing.T) { StartPos: 4149, EndPos: 4150, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 190, @@ -9471,7 +9355,6 @@ func TestPhp7(t *testing.T) { StartPos: 4158, EndPos: 4159, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 190, @@ -9496,7 +9379,6 @@ func TestPhp7(t *testing.T) { StartPos: 4163, EndPos: 4164, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 190, @@ -9678,7 +9560,6 @@ func TestPhp7(t *testing.T) { StartPos: 4235, EndPos: 4236, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 196, @@ -9712,7 +9593,6 @@ func TestPhp7(t *testing.T) { StartPos: 4243, EndPos: 4244, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 197, @@ -9746,7 +9626,6 @@ func TestPhp7(t *testing.T) { StartPos: 4254, EndPos: 4255, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 198, @@ -9798,7 +9677,6 @@ func TestPhp7(t *testing.T) { StartPos: 4274, EndPos: 4275, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 200, @@ -9850,7 +9728,6 @@ func TestPhp7(t *testing.T) { StartPos: 4292, EndPos: 4293, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 202, @@ -10013,7 +9890,6 @@ func TestPhp7(t *testing.T) { StartPos: 4337, EndPos: 4340, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 206, @@ -10055,7 +9931,6 @@ func TestPhp7(t *testing.T) { StartPos: 4348, EndPos: 4349, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 208, @@ -10089,7 +9964,6 @@ func TestPhp7(t *testing.T) { StartPos: 4356, EndPos: 4357, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 209, @@ -10123,7 +9997,6 @@ func TestPhp7(t *testing.T) { StartPos: 4366, EndPos: 4367, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 210, @@ -10157,7 +10030,6 @@ func TestPhp7(t *testing.T) { StartPos: 4374, EndPos: 4375, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 211, @@ -10191,7 +10063,6 @@ func TestPhp7(t *testing.T) { StartPos: 4389, EndPos: 4390, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 213, @@ -10225,7 +10096,6 @@ func TestPhp7(t *testing.T) { StartPos: 4408, EndPos: 4409, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 214, @@ -10259,7 +10129,6 @@ func TestPhp7(t *testing.T) { StartPos: 4422, EndPos: 4423, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 215, @@ -10293,7 +10162,6 @@ func TestPhp7(t *testing.T) { StartPos: 4441, EndPos: 4442, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 216, @@ -10327,7 +10195,6 @@ func TestPhp7(t *testing.T) { StartPos: 4448, EndPos: 4449, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 218, @@ -10380,7 +10247,6 @@ func TestPhp7(t *testing.T) { StartPos: 4469, EndPos: 4470, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 219, @@ -10433,7 +10299,6 @@ func TestPhp7(t *testing.T) { StartPos: 4500, EndPos: 4501, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 220, @@ -10487,7 +10352,6 @@ func TestPhp7(t *testing.T) { StartPos: 4529, EndPos: 4530, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 222, @@ -10505,7 +10369,6 @@ func TestPhp7(t *testing.T) { StartPos: 4533, EndPos: 4534, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 222, @@ -10555,7 +10418,6 @@ func TestPhp7(t *testing.T) { StartPos: 4545, EndPos: 4546, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 223, @@ -10576,7 +10438,6 @@ func TestPhp7(t *testing.T) { StartPos: 4551, EndPos: 4552, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 223, @@ -10632,7 +10493,6 @@ func TestPhp7(t *testing.T) { StartPos: 4562, EndPos: 4563, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 224, @@ -10654,7 +10514,6 @@ func TestPhp7(t *testing.T) { StartPos: 4570, EndPos: 4571, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 224, @@ -10718,7 +10577,6 @@ func TestPhp7(t *testing.T) { StartPos: 4586, EndPos: 4587, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 225, @@ -10742,7 +10600,6 @@ func TestPhp7(t *testing.T) { StartPos: 4593, EndPos: 4594, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 225, @@ -10776,7 +10633,6 @@ func TestPhp7(t *testing.T) { StartPos: 4600, EndPos: 4601, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 227, @@ -10981,7 +10837,6 @@ func TestPhp7(t *testing.T) { StartPos: 4674, EndPos: 4675, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 231, @@ -11009,7 +10864,6 @@ func TestPhp7(t *testing.T) { StartPos: 4681, EndPos: 4682, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 231, @@ -11048,7 +10902,6 @@ func TestPhp7(t *testing.T) { StartPos: 4697, EndPos: 4698, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 232, @@ -11082,7 +10935,6 @@ func TestPhp7(t *testing.T) { StartPos: 4704, EndPos: 4705, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 233, @@ -11135,7 +10987,6 @@ func TestPhp7(t *testing.T) { StartPos: 4720, EndPos: 4721, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 234, @@ -11301,7 +11152,6 @@ func TestPhp7(t *testing.T) { StartPos: 4763, EndPos: 4764, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 239, @@ -11354,7 +11204,6 @@ func TestPhp7(t *testing.T) { StartPos: 4773, EndPos: 4774, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 241, @@ -11375,7 +11224,6 @@ func TestPhp7(t *testing.T) { StartPos: 4779, EndPos: 4780, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 241, @@ -11431,7 +11279,6 @@ func TestPhp7(t *testing.T) { StartPos: 4786, EndPos: 4787, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 242, @@ -11453,7 +11300,6 @@ func TestPhp7(t *testing.T) { StartPos: 4794, EndPos: 4795, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 242, @@ -11517,7 +11363,6 @@ func TestPhp7(t *testing.T) { StartPos: 4806, EndPos: 4807, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 243, @@ -11541,7 +11386,6 @@ func TestPhp7(t *testing.T) { StartPos: 4813, EndPos: 4814, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 243, @@ -11750,7 +11594,6 @@ func TestPhp7(t *testing.T) { StartPos: 4877, EndPos: 4880, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 247, @@ -11784,7 +11627,6 @@ func TestPhp7(t *testing.T) { StartPos: 4885, EndPos: 4888, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 248, @@ -11802,7 +11644,6 @@ func TestPhp7(t *testing.T) { StartPos: 4891, EndPos: 4894, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 248, @@ -11855,7 +11696,6 @@ func TestPhp7(t *testing.T) { StartPos: 4914, EndPos: 4917, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 249, @@ -11908,7 +11748,6 @@ func TestPhp7(t *testing.T) { StartPos: 4928, EndPos: 4931, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 250, @@ -11942,7 +11781,6 @@ func TestPhp7(t *testing.T) { StartPos: 4936, EndPos: 4937, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 251, @@ -11960,7 +11798,6 @@ func TestPhp7(t *testing.T) { StartPos: 4941, EndPos: 4942, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 251, @@ -11978,7 +11815,6 @@ func TestPhp7(t *testing.T) { StartPos: 4946, EndPos: 4947, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 251, @@ -12012,7 +11848,6 @@ func TestPhp7(t *testing.T) { StartPos: 4952, EndPos: 4953, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 252, @@ -12030,7 +11865,6 @@ func TestPhp7(t *testing.T) { StartPos: 4959, EndPos: 4960, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 252, @@ -12064,7 +11898,6 @@ func TestPhp7(t *testing.T) { StartPos: 4965, EndPos: 4966, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 253, @@ -12089,7 +11922,6 @@ func TestPhp7(t *testing.T) { StartPos: 4970, EndPos: 4971, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 253, @@ -12107,7 +11939,6 @@ func TestPhp7(t *testing.T) { StartPos: 4975, EndPos: 4976, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 253, @@ -12125,7 +11956,6 @@ func TestPhp7(t *testing.T) { StartPos: 4980, EndPos: 4981, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 253, @@ -12144,7 +11974,6 @@ func TestPhp7(t *testing.T) { StartPos: 4985, EndPos: 4986, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 253, @@ -12185,7 +12014,6 @@ func TestPhp7(t *testing.T) { StartPos: 4991, EndPos: 4992, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 254, @@ -12203,7 +12031,6 @@ func TestPhp7(t *testing.T) { StartPos: 4996, EndPos: 4997, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 254, @@ -12221,7 +12048,6 @@ func TestPhp7(t *testing.T) { StartPos: 5001, EndPos: 5002, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 254, @@ -12240,7 +12066,6 @@ func TestPhp7(t *testing.T) { StartPos: 5006, EndPos: 5007, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 254, @@ -12258,7 +12083,6 @@ func TestPhp7(t *testing.T) { StartPos: 5011, EndPos: 5012, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 254, @@ -12292,7 +12116,6 @@ func TestPhp7(t *testing.T) { StartPos: 5018, EndPos: 5019, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 255, @@ -12326,7 +12149,6 @@ func TestPhp7(t *testing.T) { StartPos: 5025, EndPos: 5026, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 256, @@ -12353,7 +12175,6 @@ func TestPhp7(t *testing.T) { StartPos: 5031, EndPos: 5033, }, - StringVar: false, VarName: &expr.Variable{ Position: &position.Position{ StartLine: 257, @@ -12361,7 +12182,6 @@ func TestPhp7(t *testing.T) { StartPos: 5032, EndPos: 5033, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 257, @@ -12411,7 +12231,6 @@ func TestPhp7(t *testing.T) { StartPos: 5053, EndPos: 5054, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 259, @@ -12445,7 +12264,6 @@ func TestPhp7(t *testing.T) { StartPos: 5065, EndPos: 5066, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 260, @@ -12463,7 +12281,6 @@ func TestPhp7(t *testing.T) { StartPos: 5071, EndPos: 5072, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 260, @@ -12497,7 +12314,6 @@ func TestPhp7(t *testing.T) { StartPos: 5088, EndPos: 5089, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 261, @@ -12531,7 +12347,6 @@ func TestPhp7(t *testing.T) { StartPos: 5104, EndPos: 5105, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 263, @@ -12565,7 +12380,6 @@ func TestPhp7(t *testing.T) { StartPos: 5119, EndPos: 5120, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 264, @@ -12599,7 +12413,6 @@ func TestPhp7(t *testing.T) { StartPos: 5131, EndPos: 5132, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 265, @@ -12633,7 +12446,6 @@ func TestPhp7(t *testing.T) { StartPos: 5145, EndPos: 5146, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 266, @@ -12667,7 +12479,6 @@ func TestPhp7(t *testing.T) { StartPos: 5158, EndPos: 5159, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 267, @@ -12701,7 +12512,6 @@ func TestPhp7(t *testing.T) { StartPos: 5173, EndPos: 5174, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 268, @@ -12735,7 +12545,6 @@ func TestPhp7(t *testing.T) { StartPos: 5184, EndPos: 5185, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 269, @@ -12769,7 +12578,6 @@ func TestPhp7(t *testing.T) { StartPos: 5198, EndPos: 5199, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 270, @@ -12803,7 +12611,6 @@ func TestPhp7(t *testing.T) { StartPos: 5212, EndPos: 5213, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 271, @@ -12837,7 +12644,6 @@ func TestPhp7(t *testing.T) { StartPos: 5225, EndPos: 5226, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 272, @@ -12871,7 +12677,6 @@ func TestPhp7(t *testing.T) { StartPos: 5232, EndPos: 5233, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 274, @@ -12889,7 +12694,6 @@ func TestPhp7(t *testing.T) { StartPos: 5237, EndPos: 5238, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 274, @@ -12923,7 +12727,6 @@ func TestPhp7(t *testing.T) { StartPos: 5243, EndPos: 5244, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 275, @@ -12941,7 +12744,6 @@ func TestPhp7(t *testing.T) { StartPos: 5248, EndPos: 5249, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 275, @@ -12975,7 +12777,6 @@ func TestPhp7(t *testing.T) { StartPos: 5254, EndPos: 5255, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 276, @@ -12993,7 +12794,6 @@ func TestPhp7(t *testing.T) { StartPos: 5259, EndPos: 5260, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 276, @@ -13027,7 +12827,6 @@ func TestPhp7(t *testing.T) { StartPos: 5265, EndPos: 5266, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 277, @@ -13045,7 +12844,6 @@ func TestPhp7(t *testing.T) { StartPos: 5271, EndPos: 5272, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 277, @@ -13079,7 +12877,6 @@ func TestPhp7(t *testing.T) { StartPos: 5277, EndPos: 5278, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 278, @@ -13097,7 +12894,6 @@ func TestPhp7(t *testing.T) { StartPos: 5283, EndPos: 5284, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 278, @@ -13131,7 +12927,6 @@ func TestPhp7(t *testing.T) { StartPos: 5289, EndPos: 5290, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 279, @@ -13149,7 +12944,6 @@ func TestPhp7(t *testing.T) { StartPos: 5295, EndPos: 5296, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 279, @@ -13183,7 +12977,6 @@ func TestPhp7(t *testing.T) { StartPos: 5301, EndPos: 5302, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 280, @@ -13201,7 +12994,6 @@ func TestPhp7(t *testing.T) { StartPos: 5306, EndPos: 5307, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 280, @@ -13235,7 +13027,6 @@ func TestPhp7(t *testing.T) { StartPos: 5312, EndPos: 5313, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 281, @@ -13253,7 +13044,6 @@ func TestPhp7(t *testing.T) { StartPos: 5317, EndPos: 5318, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 281, @@ -13287,7 +13077,6 @@ func TestPhp7(t *testing.T) { StartPos: 5323, EndPos: 5324, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 282, @@ -13305,7 +13094,6 @@ func TestPhp7(t *testing.T) { StartPos: 5329, EndPos: 5330, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 282, @@ -13339,7 +13127,6 @@ func TestPhp7(t *testing.T) { StartPos: 5335, EndPos: 5336, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 283, @@ -13357,7 +13144,6 @@ func TestPhp7(t *testing.T) { StartPos: 5341, EndPos: 5342, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 283, @@ -13391,7 +13177,6 @@ func TestPhp7(t *testing.T) { StartPos: 5347, EndPos: 5348, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 284, @@ -13409,7 +13194,6 @@ func TestPhp7(t *testing.T) { StartPos: 5352, EndPos: 5353, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 284, @@ -13443,7 +13227,6 @@ func TestPhp7(t *testing.T) { StartPos: 5358, EndPos: 5359, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 285, @@ -13461,7 +13244,6 @@ func TestPhp7(t *testing.T) { StartPos: 5365, EndPos: 5366, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 285, @@ -13495,7 +13277,6 @@ func TestPhp7(t *testing.T) { StartPos: 5371, EndPos: 5372, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 286, @@ -13513,7 +13294,6 @@ func TestPhp7(t *testing.T) { StartPos: 5378, EndPos: 5379, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 286, @@ -13547,7 +13327,6 @@ func TestPhp7(t *testing.T) { StartPos: 5384, EndPos: 5385, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 287, @@ -13565,7 +13344,6 @@ func TestPhp7(t *testing.T) { StartPos: 5390, EndPos: 5391, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 287, @@ -13599,7 +13377,6 @@ func TestPhp7(t *testing.T) { StartPos: 5396, EndPos: 5397, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 288, @@ -13617,7 +13394,6 @@ func TestPhp7(t *testing.T) { StartPos: 5403, EndPos: 5404, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 288, @@ -13651,7 +13427,6 @@ func TestPhp7(t *testing.T) { StartPos: 5409, EndPos: 5410, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 289, @@ -13669,7 +13444,6 @@ func TestPhp7(t *testing.T) { StartPos: 5414, EndPos: 5415, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 289, @@ -13703,7 +13477,6 @@ func TestPhp7(t *testing.T) { StartPos: 5420, EndPos: 5421, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 290, @@ -13721,7 +13494,6 @@ func TestPhp7(t *testing.T) { StartPos: 5425, EndPos: 5426, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 290, @@ -13755,7 +13527,6 @@ func TestPhp7(t *testing.T) { StartPos: 5431, EndPos: 5432, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 291, @@ -13773,7 +13544,6 @@ func TestPhp7(t *testing.T) { StartPos: 5436, EndPos: 5437, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 291, @@ -13807,7 +13577,6 @@ func TestPhp7(t *testing.T) { StartPos: 5442, EndPos: 5443, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 292, @@ -13825,7 +13594,6 @@ func TestPhp7(t *testing.T) { StartPos: 5448, EndPos: 5449, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 292, @@ -13859,7 +13627,6 @@ func TestPhp7(t *testing.T) { StartPos: 5454, EndPos: 5455, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 293, @@ -13877,7 +13644,6 @@ func TestPhp7(t *testing.T) { StartPos: 5461, EndPos: 5462, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 293, @@ -13911,7 +13677,6 @@ func TestPhp7(t *testing.T) { StartPos: 5467, EndPos: 5468, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 294, @@ -13929,7 +13694,6 @@ func TestPhp7(t *testing.T) { StartPos: 5472, EndPos: 5473, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 294, @@ -13963,7 +13727,6 @@ func TestPhp7(t *testing.T) { StartPos: 5478, EndPos: 5479, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 295, @@ -13981,7 +13744,6 @@ func TestPhp7(t *testing.T) { StartPos: 5484, EndPos: 5485, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 295, @@ -14015,7 +13777,6 @@ func TestPhp7(t *testing.T) { StartPos: 5490, EndPos: 5491, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 296, @@ -14033,7 +13794,6 @@ func TestPhp7(t *testing.T) { StartPos: 5496, EndPos: 5497, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 296, @@ -14067,7 +13827,6 @@ func TestPhp7(t *testing.T) { StartPos: 5502, EndPos: 5503, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 297, @@ -14085,7 +13844,6 @@ func TestPhp7(t *testing.T) { StartPos: 5508, EndPos: 5509, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 297, @@ -14119,7 +13877,6 @@ func TestPhp7(t *testing.T) { StartPos: 5514, EndPos: 5515, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 298, @@ -14137,7 +13894,6 @@ func TestPhp7(t *testing.T) { StartPos: 5520, EndPos: 5521, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 298, @@ -14171,7 +13927,6 @@ func TestPhp7(t *testing.T) { StartPos: 5526, EndPos: 5527, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 299, @@ -14189,7 +13944,6 @@ func TestPhp7(t *testing.T) { StartPos: 5531, EndPos: 5532, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 299, @@ -14223,7 +13977,6 @@ func TestPhp7(t *testing.T) { StartPos: 5537, EndPos: 5538, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 300, @@ -14241,7 +13994,6 @@ func TestPhp7(t *testing.T) { StartPos: 5544, EndPos: 5545, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 300, @@ -14275,7 +14027,6 @@ func TestPhp7(t *testing.T) { StartPos: 5551, EndPos: 5552, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 302, @@ -14293,7 +14044,6 @@ func TestPhp7(t *testing.T) { StartPos: 5557, EndPos: 5558, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 302, @@ -14327,7 +14077,6 @@ func TestPhp7(t *testing.T) { StartPos: 5563, EndPos: 5564, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 303, @@ -14345,7 +14094,6 @@ func TestPhp7(t *testing.T) { StartPos: 5568, EndPos: 5569, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 303, @@ -14379,7 +14127,6 @@ func TestPhp7(t *testing.T) { StartPos: 5574, EndPos: 5575, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 304, @@ -14397,7 +14144,6 @@ func TestPhp7(t *testing.T) { StartPos: 5580, EndPos: 5581, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 304, @@ -14431,7 +14177,6 @@ func TestPhp7(t *testing.T) { StartPos: 5586, EndPos: 5587, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 305, @@ -14449,7 +14194,6 @@ func TestPhp7(t *testing.T) { StartPos: 5592, EndPos: 5593, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 305, @@ -14483,7 +14227,6 @@ func TestPhp7(t *testing.T) { StartPos: 5598, EndPos: 5599, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 306, @@ -14501,7 +14244,6 @@ func TestPhp7(t *testing.T) { StartPos: 5604, EndPos: 5605, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 306, @@ -14535,7 +14277,6 @@ func TestPhp7(t *testing.T) { StartPos: 5610, EndPos: 5611, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 307, @@ -14553,7 +14294,6 @@ func TestPhp7(t *testing.T) { StartPos: 5616, EndPos: 5617, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 307, @@ -14587,7 +14327,6 @@ func TestPhp7(t *testing.T) { StartPos: 5622, EndPos: 5623, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 308, @@ -14605,7 +14344,6 @@ func TestPhp7(t *testing.T) { StartPos: 5628, EndPos: 5629, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 308, @@ -14639,7 +14377,6 @@ func TestPhp7(t *testing.T) { StartPos: 5634, EndPos: 5635, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 309, @@ -14657,7 +14394,6 @@ func TestPhp7(t *testing.T) { StartPos: 5640, EndPos: 5641, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 309, @@ -14691,7 +14427,6 @@ func TestPhp7(t *testing.T) { StartPos: 5646, EndPos: 5647, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 310, @@ -14709,7 +14444,6 @@ func TestPhp7(t *testing.T) { StartPos: 5652, EndPos: 5653, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 310, @@ -14743,7 +14477,6 @@ func TestPhp7(t *testing.T) { StartPos: 5658, EndPos: 5659, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 311, @@ -14761,7 +14494,6 @@ func TestPhp7(t *testing.T) { StartPos: 5664, EndPos: 5665, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 311, @@ -14795,7 +14527,6 @@ func TestPhp7(t *testing.T) { StartPos: 5670, EndPos: 5671, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 312, @@ -14813,7 +14544,6 @@ func TestPhp7(t *testing.T) { StartPos: 5676, EndPos: 5677, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 312, @@ -14847,7 +14577,6 @@ func TestPhp7(t *testing.T) { StartPos: 5682, EndPos: 5683, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 313, @@ -14865,7 +14594,6 @@ func TestPhp7(t *testing.T) { StartPos: 5689, EndPos: 5690, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 313, @@ -14899,7 +14627,6 @@ func TestPhp7(t *testing.T) { StartPos: 5695, EndPos: 5696, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 314, @@ -14917,7 +14644,6 @@ func TestPhp7(t *testing.T) { StartPos: 5702, EndPos: 5703, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 314, @@ -14951,7 +14677,6 @@ func TestPhp7(t *testing.T) { StartPos: 5708, EndPos: 5709, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 315, @@ -14969,7 +14694,6 @@ func TestPhp7(t *testing.T) { StartPos: 5715, EndPos: 5716, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 315, @@ -15128,7 +14852,6 @@ func TestPhp7(t *testing.T) { StartPos: 5793, EndPos: 5794, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 320, @@ -15156,7 +14879,6 @@ func TestPhp7(t *testing.T) { StartPos: 5800, EndPos: 5801, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 320, @@ -15292,7 +15014,6 @@ func TestPhp7(t *testing.T) { StartPos: 5926, EndPos: 5927, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 328, @@ -15329,7 +15050,6 @@ func TestPhp7(t *testing.T) { StartPos: 5937, EndPos: 5938, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 328, @@ -15366,7 +15086,6 @@ func TestPhp7(t *testing.T) { StartPos: 5945, EndPos: 5946, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 328, @@ -15434,7 +15153,6 @@ func TestPhp7(t *testing.T) { StartPos: 5977, EndPos: 5978, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 329, @@ -15471,7 +15189,6 @@ func TestPhp7(t *testing.T) { StartPos: 5990, EndPos: 5991, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 329, @@ -15776,7 +15493,6 @@ func TestPhp7(t *testing.T) { StartPos: 6139, EndPos: 6142, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 334, @@ -15966,7 +15682,6 @@ func TestPhp7(t *testing.T) { StartPos: 6180, EndPos: 6183, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 337, @@ -16002,7 +15717,6 @@ func TestPhp7(t *testing.T) { StartPos: 6191, EndPos: 6198, }, - StringVar: false, VarName: &expr.FunctionCall{ Position: &position.Position{ StartLine: 338, @@ -16080,7 +15794,6 @@ func TestPhp7(t *testing.T) { StartPos: 6209, EndPos: 6212, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 340, @@ -16148,7 +15861,6 @@ func TestPhp7(t *testing.T) { StartPos: 6225, EndPos: 6228, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 341, @@ -16200,7 +15912,6 @@ func TestPhp7(t *testing.T) { StartPos: 6242, EndPos: 6245, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 343, @@ -16218,7 +15929,6 @@ func TestPhp7(t *testing.T) { StartPos: 6248, EndPos: 6251, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 343, @@ -16252,7 +15962,6 @@ func TestPhp7(t *testing.T) { StartPos: 6256, EndPos: 6259, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 344, @@ -16277,7 +15986,6 @@ func TestPhp7(t *testing.T) { StartPos: 6263, EndPos: 6266, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 344, @@ -16345,7 +16053,6 @@ func TestPhp7(t *testing.T) { StartPos: 6281, EndPos: 6282, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 346, @@ -16396,7 +16103,6 @@ func TestPhp7(t *testing.T) { StartPos: 6293, EndPos: 6294, }, - StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 346, diff --git a/printer/printer.go b/printer/printer.go index 9fe4ec9..648a4b5 100644 --- a/printer/printer.go +++ b/printer/printer.go @@ -1791,10 +1791,6 @@ func (p *Printer) printExprVariable(n node.Node) { p.printMeta(nn, meta.DollarOpenCurlyBracesToken) p.printMeta(nn, meta.DollarToken) - if !nn.StringVar { - io.WriteString(p.w, "$") - } - p.printMeta(nn, meta.OpenCurlyBracesToken) p.Print(nn.VarName) p.printMeta(nn, meta.DollarCloseCurlyBracesToken) diff --git a/printer/printer_test.go b/printer/printer_test.go index 6c55f34..5a2ae67 100644 --- a/printer/printer_test.go +++ b/printer/printer_test.go @@ -92,6 +92,13 @@ func TestPrinterPrintFileInlineHtml(t *testing.T) { }, }, Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, VarName: &node.Identifier{ Value: "a", }, @@ -171,7 +178,16 @@ func TestPrinterPrintParameter(t *testing.T) { }, }, }, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }, DefaultValue: &scalar.String{ Meta: meta.Collection{ &meta.Data{ @@ -240,6 +256,11 @@ func TestPrinterPrintNullable(t *testing.T) { Value: " ", TokenName: meta.VariableToken, }, + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, }, VarName: &node.Identifier{ Value: "var", @@ -287,6 +308,11 @@ func TestPrinterPrintArgument(t *testing.T) { Value: " ", TokenName: meta.VariableToken, }, + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, }, VarName: &node.Identifier{ Value: "var", @@ -322,6 +348,11 @@ func TestPrinterPrintArgumentByRef(t *testing.T) { Value: " ", TokenName: meta.VariableToken, }, + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, }, VarName: &node.Identifier{ Value: "var", @@ -594,7 +625,16 @@ func TestPrinterPrintScalarEncapsed(t *testing.T) { }, Parts: []node.Node{ &scalar.EncapsedStringPart{Value: "hello "}, - &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }, &scalar.EncapsedStringPart{Value: " world"}, }, }) @@ -619,7 +659,16 @@ func TestPrinterPrintScalarHeredoc(t *testing.T) { Label: "LBL", Parts: []node.Node{ &scalar.EncapsedStringPart{Value: "hello "}, - &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }, &scalar.EncapsedStringPart{Value: " world"}, }, }) @@ -696,7 +745,16 @@ func TestPrinterPrintAssign(t *testing.T) { TokenName: meta.EqualToken, }, }, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, Expression: &expr.Variable{ Meta: meta.Collection{ &meta.Data{ @@ -704,6 +762,11 @@ func TestPrinterPrintAssign(t *testing.T) { Value: " ", TokenName: meta.VariableToken, }, + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, }, VarName: &node.Identifier{Value: "b"}, }, @@ -734,7 +797,16 @@ func TestPrinterPrintReference(t *testing.T) { TokenName: meta.AmpersandToken, }, }, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, Expression: &expr.Variable{ Meta: meta.Collection{ &meta.Data{ @@ -742,6 +814,11 @@ func TestPrinterPrintReference(t *testing.T) { Value: " ", TokenName: meta.VariableToken, }, + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, }, VarName: &node.Identifier{Value: "b"}, }, @@ -767,7 +844,16 @@ func TestPrinterPrintAssignBitwiseAnd(t *testing.T) { TokenName: meta.AndEqualToken, }, }, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, Expression: &expr.Variable{ Meta: meta.Collection{ &meta.Data{ @@ -775,6 +861,11 @@ func TestPrinterPrintAssignBitwiseAnd(t *testing.T) { Value: " ", TokenName: meta.VariableToken, }, + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, }, VarName: &node.Identifier{Value: "b"}, }, @@ -800,8 +891,26 @@ func TestPrinterPrintAssignBitwiseOr(t *testing.T) { TokenName: meta.OrEqualToken, }, }, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Expression: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a |=$b` @@ -824,8 +933,26 @@ func TestPrinterPrintAssignBitwiseXor(t *testing.T) { TokenName: meta.XorEqualToken, }, }, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Expression: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a ^=$b` @@ -848,8 +975,26 @@ func TestPrinterPrintAssignConcat(t *testing.T) { TokenName: meta.ConcatEqualToken, }, }, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Expression: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a .=$b` @@ -872,8 +1017,26 @@ func TestPrinterPrintAssignDiv(t *testing.T) { TokenName: meta.DivEqualToken, }, }, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Expression: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a /=$b` @@ -896,8 +1059,26 @@ func TestPrinterPrintAssignMinus(t *testing.T) { TokenName: meta.MinusEqualToken, }, }, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Expression: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a -=$b` @@ -920,8 +1101,26 @@ func TestPrinterPrintAssignMod(t *testing.T) { TokenName: meta.ModEqualToken, }, }, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Expression: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a %=$b` @@ -944,8 +1143,26 @@ func TestPrinterPrintAssignMul(t *testing.T) { TokenName: meta.MulEqualToken, }, }, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Expression: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a *=$b` @@ -968,8 +1185,26 @@ func TestPrinterPrintAssignPlus(t *testing.T) { TokenName: meta.PlusEqualToken, }, }, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Expression: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a +=$b` @@ -992,8 +1227,26 @@ func TestPrinterPrintAssignPow(t *testing.T) { TokenName: meta.PowEqualToken, }, }, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Expression: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a **=$b` @@ -1016,8 +1269,26 @@ func TestPrinterPrintAssignShiftLeft(t *testing.T) { TokenName: meta.SlEqualToken, }, }, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Expression: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a <<=$b` @@ -1040,8 +1311,26 @@ func TestPrinterPrintAssignShiftRight(t *testing.T) { TokenName: meta.SrEqualToken, }, }, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Expression: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a >>=$b` @@ -1066,8 +1355,26 @@ func TestPrinterPrintBinaryBitwiseAnd(t *testing.T) { TokenName: meta.AmpersandToken, }, }, - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Left: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Right: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a &$b` @@ -1090,8 +1397,26 @@ func TestPrinterPrintBinaryBitwiseOr(t *testing.T) { TokenName: meta.VerticalBarToken, }, }, - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Left: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Right: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a |$b` @@ -1114,8 +1439,26 @@ func TestPrinterPrintBinaryBitwiseXor(t *testing.T) { TokenName: meta.CaretToken, }, }, - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Left: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Right: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a ^$b` @@ -1138,8 +1481,26 @@ func TestPrinterPrintBinaryBooleanAnd(t *testing.T) { TokenName: meta.BooleanAndToken, }, }, - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Left: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Right: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a &&$b` @@ -1162,8 +1523,26 @@ func TestPrinterPrintBinaryBooleanOr(t *testing.T) { TokenName: meta.BooleanOrToken, }, }, - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Left: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Right: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a ||$b` @@ -1186,8 +1565,26 @@ func TestPrinterPrintBinaryCoalesce(t *testing.T) { TokenName: meta.CoalesceToken, }, }, - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Left: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Right: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a ??$b` @@ -1210,8 +1607,26 @@ func TestPrinterPrintBinaryConcat(t *testing.T) { TokenName: meta.DotToken, }, }, - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Left: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Right: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a .$b` @@ -1234,8 +1649,26 @@ func TestPrinterPrintBinaryDiv(t *testing.T) { TokenName: meta.SlashToken, }, }, - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Left: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Right: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a /$b` @@ -1258,8 +1691,26 @@ func TestPrinterPrintBinaryEqual(t *testing.T) { TokenName: meta.IsEqualToken, }, }, - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Left: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Right: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a ==$b` @@ -1282,8 +1733,26 @@ func TestPrinterPrintBinaryGreaterOrEqual(t *testing.T) { TokenName: meta.IsGreaterOrEqualToken, }, }, - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Left: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Right: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a >=$b` @@ -1306,8 +1775,26 @@ func TestPrinterPrintBinaryGreater(t *testing.T) { TokenName: meta.GreaterToken, }, }, - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Left: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Right: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a >$b` @@ -1330,8 +1817,26 @@ func TestPrinterPrintBinaryIdentical(t *testing.T) { TokenName: meta.IsIdenticalToken, }, }, - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Left: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Right: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a ===$b` @@ -1354,8 +1859,26 @@ func TestPrinterPrintBinaryLogicalAnd(t *testing.T) { TokenName: meta.LogicalAndToken, }, }, - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Left: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Right: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a and$b` @@ -1378,8 +1901,26 @@ func TestPrinterPrintBinaryLogicalOr(t *testing.T) { TokenName: meta.LogicalOrToken, }, }, - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Left: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Right: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a or$b` @@ -1402,8 +1943,26 @@ func TestPrinterPrintBinaryLogicalXor(t *testing.T) { TokenName: meta.LogicalXorToken, }, }, - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Left: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Right: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a xor$b` @@ -1426,8 +1985,26 @@ func TestPrinterPrintBinaryMinus(t *testing.T) { TokenName: meta.MinusToken, }, }, - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Left: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Right: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a -$b` @@ -1450,8 +2027,26 @@ func TestPrinterPrintBinaryMod(t *testing.T) { TokenName: meta.PercentToken, }, }, - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Left: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Right: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a %$b` @@ -1474,8 +2069,26 @@ func TestPrinterPrintBinaryMul(t *testing.T) { TokenName: meta.AsteriskToken, }, }, - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Left: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Right: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a *$b` @@ -1503,8 +2116,26 @@ func TestPrinterPrintBinaryNotEqual(t *testing.T) { TokenName: meta.IsNotEqualToken, }, }, - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Left: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Right: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a !=$b` @@ -1527,8 +2158,26 @@ func TestPrinterPrintBinaryNotIdentical(t *testing.T) { TokenName: meta.IsNotIdenticalToken, }, }, - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Left: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Right: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a !==$b` @@ -1551,8 +2200,26 @@ func TestPrinterPrintBinaryPlus(t *testing.T) { TokenName: meta.PlusToken, }, }, - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Left: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Right: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a +$b` @@ -1575,8 +2242,26 @@ func TestPrinterPrintBinaryPow(t *testing.T) { TokenName: meta.PowToken, }, }, - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Left: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Right: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a **$b` @@ -1599,8 +2284,26 @@ func TestPrinterPrintBinaryShiftLeft(t *testing.T) { TokenName: meta.SlToken, }, }, - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Left: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Right: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a <<$b` @@ -1623,8 +2326,26 @@ func TestPrinterPrintBinaryShiftRight(t *testing.T) { TokenName: meta.SrToken, }, }, - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Left: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Right: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a >>$b` @@ -1647,8 +2368,26 @@ func TestPrinterPrintBinarySmallerOrEqual(t *testing.T) { TokenName: meta.IsSmallerOrEqualToken, }, }, - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Left: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Right: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a <=$b` @@ -1671,8 +2410,26 @@ func TestPrinterPrintBinarySmaller(t *testing.T) { TokenName: meta.LessToken, }, }, - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Left: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Right: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a <$b` @@ -1695,8 +2452,26 @@ func TestPrinterPrintBinarySpaceship(t *testing.T) { TokenName: meta.SpaceshipToken, }, }, - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Left: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Right: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a <=>$b` @@ -1726,7 +2501,16 @@ func TestPrinterPrintArray(t *testing.T) { TokenName: meta.ArrayCastToken, }, }, - Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }, }) expected := ` (array)$var` @@ -1754,7 +2538,16 @@ func TestPrinterPrintBool(t *testing.T) { TokenName: meta.BoolCastToken, }, }, - Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }, }) expected := ` (bool)$var` @@ -1782,7 +2575,16 @@ func TestPrinterPrintDouble(t *testing.T) { TokenName: meta.DoubleCastToken, }, }, - Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }, }) expected := ` (float)$var` @@ -1810,7 +2612,16 @@ func TestPrinterPrintInt(t *testing.T) { TokenName: meta.IntCastToken, }, }, - Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }, }) expected := ` (int)$var` @@ -1838,7 +2649,16 @@ func TestPrinterPrintObject(t *testing.T) { TokenName: meta.ObjectCastToken, }, }, - Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }, }) expected := ` (object)$var` @@ -1866,7 +2686,16 @@ func TestPrinterPrintString(t *testing.T) { TokenName: meta.StringCastToken, }, }, - Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }, }) expected := ` (string)$var` @@ -1894,7 +2723,16 @@ func TestPrinterPrintUnset(t *testing.T) { TokenName: meta.UnsetCastToken, }, }, - Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }, }) expected := ` (unset)$var` @@ -1934,8 +2772,17 @@ func TestPrinterPrintExprArrayDimFetch(t *testing.T) { TokenName: meta.CloseSquareBracket, }, }, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, - Dim: &scalar.Lnumber{Value: "1"}, + Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }, + Dim: &scalar.Lnumber{Value: "1"}, }) expected := `$var [1 ]` @@ -1966,6 +2813,11 @@ func TestPrinterPrintExprArrayItemWithKey(t *testing.T) { Value: " ", TokenName: meta.VariableToken, }, + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, }, VarName: &node.Identifier{Value: "world"}, }, @@ -1984,7 +2836,16 @@ func TestPrinterPrintExprArrayItem(t *testing.T) { p := printer.NewPrinter(o) p.Print(&expr.ArrayItem{ - Val: &expr.Reference{Variable: &expr.Variable{VarName: &node.Identifier{Value: "world"}}}, + Val: &expr.Reference{Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "world"}, + }}, }) expected := `&$world` @@ -2020,14 +2881,41 @@ func TestPrinterPrintExprArray(t *testing.T) { Items: []node.Node{ &expr.ArrayItem{ Key: &scalar.String{Value: "'Hello'"}, - Val: &expr.Variable{VarName: &node.Identifier{Value: "world"}}, + Val: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "world"}, + }, }, &expr.ArrayItem{ Key: &scalar.Lnumber{Value: "2"}, - Val: &expr.Reference{Variable: &expr.Variable{VarName: &node.Identifier{Value: "var"}}}, + Val: &expr.Reference{Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }}, }, &expr.ArrayItem{ - Val: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + Val: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }, }, }, }) @@ -2052,7 +2940,16 @@ func TestPrinterPrintExprBitwiseNot(t *testing.T) { TokenName: meta.TildeToken, }, }, - Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }, }) expected := ` ~$var` @@ -2075,7 +2972,16 @@ func TestPrinterPrintExprBooleanNot(t *testing.T) { TokenName: meta.ExclamationMarkToken, }, }, - Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }, }) expected := ` !$var` @@ -2098,7 +3004,16 @@ func TestPrinterPrintExprClassConstFetch(t *testing.T) { TokenName: meta.PaamayimNekudotayimToken, }, }, - Class: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + Class: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }, ConstantName: &node.Identifier{ Meta: meta.Collection{ &meta.Data{ @@ -2131,7 +3046,16 @@ func TestPrinterPrintExprClone(t *testing.T) { TokenName: meta.CloneToken, }, }, - Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }, }) expected := ` clone$var` @@ -2165,8 +3089,26 @@ func TestPrinterPrintExprClosureUse(t *testing.T) { }, }, Uses: []node.Node{ - &expr.Reference{Variable: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}}, - &expr.Variable{VarName: &node.Identifier{Value: "bar"}}, + &expr.Reference{Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "foo"}, + }}, + &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "bar"}, + }, }, }) @@ -2226,13 +3168,40 @@ func TestPrinterPrintExprClosure(t *testing.T) { &node.Parameter{ ByRef: true, Variadic: false, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }, }, }, ClosureUse: &expr.ClosureUse{ Uses: []node.Node{ - &expr.Reference{Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, - &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + &expr.Reference{Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }}, + &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }, }, ReturnType: &name.FullyQualified{ @@ -2246,7 +3215,16 @@ func TestPrinterPrintExprClosure(t *testing.T) { Parts: []node.Node{&name.NamePart{Value: "Foo"}}, }, Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, + &stmt.Expression{Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }}, }, }) @@ -2296,7 +3274,16 @@ func TestPrinterPrintEmpty(t *testing.T) { TokenName: meta.CloseParenthesisToken, }, }, - Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }, }) expected := ` empty ($var )` @@ -2319,7 +3306,16 @@ func TestPrinterPrettyPrinterrorSuppress(t *testing.T) { TokenName: meta.AtToken, }, }, - Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }, }) expected := ` @$var` @@ -2352,7 +3348,16 @@ func TestPrinterPrintEval(t *testing.T) { TokenName: meta.CloseParenthesisToken, }, }, - Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }, }) expected := ` eval ($var )` @@ -2387,6 +3392,13 @@ func TestPrinterPrintExit(t *testing.T) { }, Die: false, Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, VarName: &node.Identifier{Value: "var"}, }, }) @@ -2423,6 +3435,13 @@ func TestPrinterPrintDie(t *testing.T) { }, }, Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, VarName: &node.Identifier{Value: "var"}, }, }) @@ -2440,7 +3459,16 @@ func TestPrinterPrintFunctionCall(t *testing.T) { p := printer.NewPrinter(o) p.Print(&expr.FunctionCall{ - Function: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + Function: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }, ArgumentList: &node.ArgumentList{ Meta: meta.Collection{ &meta.Data{ @@ -2457,14 +3485,41 @@ func TestPrinterPrintFunctionCall(t *testing.T) { Arguments: []node.Node{ &node.Argument{ IsReference: true, - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, }, &node.Argument{ Variadic: true, - Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }, &node.Argument{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "c"}}, + Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "c"}, + }, }, }, }, @@ -2535,7 +3590,16 @@ func TestPrinterPrintInstanceOf(t *testing.T) { TokenName: meta.InstanceofToken, }, }, - Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }, Class: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Foo"}}}, }) @@ -2570,8 +3634,26 @@ func TestPrinterPrintIsset(t *testing.T) { }, }, Variables: []node.Node{ - &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }, }) @@ -2607,16 +3689,43 @@ func TestPrinterPrintList(t *testing.T) { }, Items: []node.Node{ &expr.ArrayItem{ - Val: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Val: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, }, &expr.ArrayItem{ Val: &expr.List{ Items: []node.Node{ &expr.ArrayItem{ - Val: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Val: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }, &expr.ArrayItem{ - Val: &expr.Variable{VarName: &node.Identifier{Value: "c"}}, + Val: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "c"}, + }, }, }, }, @@ -2644,8 +3753,17 @@ func TestPrinterPrintMethodCall(t *testing.T) { TokenName: meta.ObjectOperatorToken, }, }, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - Method: &node.Identifier{Value: "bar"}, + Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "foo"}, + }, + Method: &node.Identifier{Value: "bar"}, ArgumentList: &node.ArgumentList{ Meta: meta.Collection{ &meta.Data{ @@ -2661,10 +3779,28 @@ func TestPrinterPrintMethodCall(t *testing.T) { }, Arguments: []node.Node{ &node.Argument{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, }, &node.Argument{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }, }, }, @@ -2719,10 +3855,28 @@ func TestPrinterPrintNew(t *testing.T) { }, Arguments: []node.Node{ &node.Argument{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, }, &node.Argument{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }, }, }, @@ -2748,7 +3902,16 @@ func TestPrinterPrintPostDec(t *testing.T) { TokenName: meta.DecToken, }, }, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }, }) expected := `$var --` @@ -2771,7 +3934,16 @@ func TestPrinterPrintPostInc(t *testing.T) { TokenName: meta.IncToken, }, }, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }, }) expected := `$var ++` @@ -2794,7 +3966,16 @@ func TestPrinterPrintPreDec(t *testing.T) { TokenName: meta.DecToken, }, }, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }, }) expected := ` --$var` @@ -2817,7 +3998,16 @@ func TestPrinterPrintPreInc(t *testing.T) { TokenName: meta.IncToken, }, }, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }, }) expected := ` ++$var` @@ -2847,6 +4037,11 @@ func TestPrinterPrintPrint(t *testing.T) { Value: " ", TokenName: meta.NodeStart, }, + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, }, VarName: &node.Identifier{Value: "var"}, }, @@ -2872,7 +4067,16 @@ func TestPrinterPrintPropertyFetch(t *testing.T) { TokenName: meta.ObjectOperatorToken, }, }, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, + Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "foo"}, + }, Property: &node.Identifier{Value: "bar"}, }) @@ -2896,7 +4100,16 @@ func TestPrinterPrintExprReference(t *testing.T) { TokenName: meta.AmpersandToken, }, }, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, + Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "foo"}, + }, }) expected := ` &$foo` @@ -2967,7 +4180,16 @@ func TestPrinterPrintShellExec(t *testing.T) { }, Parts: []node.Node{ &scalar.EncapsedStringPart{Value: "hello "}, - &expr.Variable{VarName: &node.Identifier{Value: "world"}}, + &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "world"}, + }, &scalar.EncapsedStringPart{Value: "!"}, }, }) @@ -3000,14 +4222,41 @@ func TestPrinterPrintExprShortArray(t *testing.T) { Items: []node.Node{ &expr.ArrayItem{ Key: &scalar.String{Value: "'Hello'"}, - Val: &expr.Variable{VarName: &node.Identifier{Value: "world"}}, + Val: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "world"}, + }, }, &expr.ArrayItem{ Key: &scalar.Lnumber{Value: "2"}, - Val: &expr.Reference{Variable: &expr.Variable{VarName: &node.Identifier{Value: "var"}}}, + Val: &expr.Reference{Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }}, }, &expr.ArrayItem{ - Val: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + Val: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }, }, }, }) @@ -3039,16 +4288,43 @@ func TestPrinterPrintShortList(t *testing.T) { }, Items: []node.Node{ &expr.ArrayItem{ - Val: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Val: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, }, &expr.ArrayItem{ Val: &expr.List{ Items: []node.Node{ &expr.ArrayItem{ - Val: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Val: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }, &expr.ArrayItem{ - Val: &expr.Variable{VarName: &node.Identifier{Value: "c"}}, + Val: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "c"}, + }, }, }, }, @@ -3093,10 +4369,28 @@ func TestPrinterPrintStaticCall(t *testing.T) { }, Arguments: []node.Node{ &node.Argument{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, }, &node.Argument{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }, }, }, @@ -3122,8 +4416,17 @@ func TestPrinterPrintStaticPropertyFetch(t *testing.T) { TokenName: meta.PaamayimNekudotayimToken, }, }, - Class: &node.Identifier{Value: "Foo"}, - Property: &expr.Variable{VarName: &node.Identifier{Value: "bar"}}, + Class: &node.Identifier{Value: "Foo"}, + Property: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "bar"}, + }, }) expected := `Foo ::$bar` @@ -3151,8 +4454,26 @@ func TestPrinterPrintTernary(t *testing.T) { TokenName: meta.ColonToken, }, }, - Condition: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - IfFalse: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Condition: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + IfFalse: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }) expected := `$a ? :$b` @@ -3180,9 +4501,36 @@ func TestPrinterPrintTernaryFull(t *testing.T) { TokenName: meta.ColonToken, }, }, - Condition: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - IfTrue: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - IfFalse: &expr.Variable{VarName: &node.Identifier{Value: "c"}}, + Condition: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + IfTrue: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, + IfFalse: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "c"}, + }, }) expected := `$a ?$b :$c` @@ -3205,7 +4553,16 @@ func TestPrinterPrintUnaryMinus(t *testing.T) { TokenName: meta.MinusToken, }, }, - Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }, }) expected := ` -$var` @@ -3228,7 +4585,16 @@ func TestPrinterPrintUnaryPlus(t *testing.T) { TokenName: meta.PlusToken, }, }, - Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }, }) expected := ` +$var` @@ -3250,8 +4616,20 @@ func TestPrinterPrintVariable(t *testing.T) { Value: " ", TokenName: meta.DollarToken, }, + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, }, VarName: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, VarName: &node.Identifier{Value: "var"}, }, }) @@ -3276,7 +4654,16 @@ func TestPrinterPrintYieldFrom(t *testing.T) { TokenName: meta.YieldFromToken, }, }, - Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }, }) expected := ` yield from$var` @@ -3299,7 +4686,16 @@ func TestPrinterPrintYield(t *testing.T) { TokenName: meta.YieldToken, }, }, - Value: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + Value: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }, }) expected := ` yield$var` @@ -3327,8 +4723,26 @@ func TestPrinterPrintYieldFull(t *testing.T) { TokenName: meta.DoubleArrowToken, }, }, - Key: &expr.Variable{VarName: &node.Identifier{Value: "k"}}, - Value: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + Key: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "k"}, + }, + Value: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }, }) expected := ` yield$k =>$var` @@ -3368,10 +4782,28 @@ func TestPrinterPrintAltElseIf(t *testing.T) { TokenName: meta.ColonToken, }, }, - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Cond: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, Stmt: &stmt.StmtList{ Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, + &stmt.Expression{Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }}, }, }, }) @@ -3411,7 +4843,16 @@ func TestPrinterPrintAltElseIfEmpty(t *testing.T) { TokenName: meta.ColonToken, }, }, - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Cond: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, Stmt: &stmt.StmtList{}, }) @@ -3442,7 +4883,16 @@ func TestPrinterPrintAltElse(t *testing.T) { }, Stmt: &stmt.StmtList{ Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, + &stmt.Expression{Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }}, }, }, }) @@ -3536,17 +4986,53 @@ func TestPrinterPrintAltFor(t *testing.T) { }, }, Init: []node.Node{ - &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, }, Cond: []node.Node{ - &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }, Loop: []node.Node{ - &expr.Variable{VarName: &node.Identifier{Value: "c"}}, + &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "c"}, + }, }, Stmt: &stmt.StmtList{ Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "d"}}}, + &stmt.Expression{Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "d"}, + }}, }, }, }) @@ -3611,12 +5097,48 @@ func TestPrinterPrintAltForeach(t *testing.T) { TokenName: meta.SemiColonToken, }, }, - Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, - Key: &expr.Variable{VarName: &node.Identifier{Value: "key"}}, - Variable: &expr.Reference{Variable: &expr.Variable{VarName: &node.Identifier{Value: "val"}}}, + Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }, + Key: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "key"}, + }, + Variable: &expr.Reference{Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "val"}, + }}, Stmt: &stmt.StmtList{ Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "d"}}}, + &stmt.Expression{Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "d"}, + }}, }, }, }) @@ -3671,30 +5193,84 @@ func TestPrinterPrintAltIf(t *testing.T) { TokenName: meta.SemiColonToken, }, }, - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Cond: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, Stmt: &stmt.StmtList{ Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "d"}}}, + &stmt.Expression{Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "d"}, + }}, }, }, ElseIf: []node.Node{ &stmt.AltElseIf{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Cond: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, Stmt: &stmt.StmtList{ Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, + &stmt.Expression{Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }}, }, }, }, &stmt.AltElseIf{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "c"}}, + Cond: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "c"}, + }, Stmt: &stmt.StmtList{}, }, }, Else: &stmt.AltElse{ Stmt: &stmt.StmtList{ Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, + &stmt.Expression{Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }}, }, }, }, @@ -3750,19 +5326,46 @@ func TestPrinterPrintStmtAltSwitch(t *testing.T) { TokenName: meta.SemiColonToken, }, }, - Cond: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + Cond: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }, CaseList: &stmt.CaseList{ Cases: []node.Node{ &stmt.Case{ Cond: &scalar.String{Value: "'a'"}, Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, + &stmt.Expression{Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }}, }, }, &stmt.Case{ Cond: &scalar.String{Value: "'b'"}, Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, + &stmt.Expression{Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }}, }, }, }, @@ -3819,10 +5422,28 @@ func TestPrinterPrintAltWhile(t *testing.T) { TokenName: meta.SemiColonToken, }, }, - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Cond: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, Stmt: &stmt.StmtList{ Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, + &stmt.Expression{Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }}, }, }, }) @@ -3889,9 +5510,27 @@ func TestPrinterPrintStmtCase(t *testing.T) { TokenName: meta.CaseToken, }, }, - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Cond: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, + &stmt.Expression{Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }}, }, }) @@ -3915,7 +5554,16 @@ func TestPrinterPrintStmtCaseEmpty(t *testing.T) { TokenName: meta.CaseToken, }, }, - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Cond: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, Stmts: []node.Node{}, }) @@ -3963,9 +5611,27 @@ func TestPrinterPrintStmtCatch(t *testing.T) { &name.Name{Parts: []node.Node{&name.NamePart{Value: "Exception"}}}, &name.FullyQualified{Parts: []node.Node{&name.NamePart{Value: "RuntimeException"}}}, }, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "e"}}, + Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "e"}, + }, Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, + &stmt.Expression{Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }}, }, }) @@ -4011,12 +5677,30 @@ func TestPrinterPrintStmtClassMethod(t *testing.T) { &node.Parameter{ ByRef: true, VariableType: &node.Nullable{Expr: &name.Name{Parts: []node.Node{&name.NamePart{Value: "int"}}}}, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, DefaultValue: &expr.ConstFetch{Constant: &name.Name{Parts: []node.Node{&name.NamePart{Value: "null"}}}}, }, &node.Parameter{ Variadic: true, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }, }, ReturnType: &name.Name{ @@ -4043,7 +5727,16 @@ func TestPrinterPrintStmtClassMethod(t *testing.T) { }, }, Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, + &stmt.Expression{Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }}, }, }, }) @@ -4090,12 +5783,30 @@ func TestPrinterPrintStmtAbstractClassMethod(t *testing.T) { &node.Parameter{ ByRef: true, VariableType: &node.Nullable{Expr: &name.Name{Parts: []node.Node{&name.NamePart{Value: "int"}}}}, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, DefaultValue: &expr.ConstFetch{Constant: &name.Name{Parts: []node.Node{&name.NamePart{Value: "null"}}}}, }, &node.Parameter{ Variadic: true, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }, }, ReturnType: &name.Name{ @@ -4225,10 +5936,28 @@ func TestPrinterPrintStmtAnonymousClass(t *testing.T) { }, Arguments: []node.Node{ &node.Argument{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, }, &node.Argument{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }, }, }, @@ -4544,7 +6273,16 @@ func TestPrinterPrintStmtDefalut(t *testing.T) { }, }, Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, + &stmt.Expression{Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }}, }, }) @@ -4618,7 +6356,16 @@ func TestPrinterPrintStmtDo_Expression(t *testing.T) { }, Cond: &scalar.Lnumber{Value: "1"}, Stmt: &stmt.Expression{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, }, }) @@ -4670,7 +6417,16 @@ func TestPrinterPrintStmtDo_StmtList(t *testing.T) { Cond: &scalar.Lnumber{Value: "1"}, Stmt: &stmt.StmtList{ Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, + &stmt.Expression{Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }}, }, }, }) @@ -4711,8 +6467,26 @@ func TestPrinterPrintStmtEcho(t *testing.T) { }, }, Exprs: []node.Node{ - &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }, }) @@ -4746,7 +6520,16 @@ func TestPrinterPrintStmtElseIfStmts(t *testing.T) { TokenName: meta.CloseParenthesisToken, }, }, - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Cond: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, Stmt: &stmt.StmtList{ Stmts: []node.Node{ &stmt.Nop{}, @@ -4784,7 +6567,16 @@ func TestPrinterPrintStmtElseIfExpr(t *testing.T) { TokenName: meta.CloseParenthesisToken, }, }, - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Cond: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, Stmt: &stmt.Expression{Expr: &scalar.String{Value: "'bar'"}}, }) @@ -4801,7 +6593,16 @@ func TestPrinterPrintStmtElseIfNop(t *testing.T) { p := printer.NewPrinter(o) p.Print(&stmt.ElseIf{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Cond: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, Stmt: &stmt.Nop{}, }) @@ -4896,7 +6697,16 @@ func TestPrinterPrintExpression(t *testing.T) { TokenName: meta.SemiColonToken, }, }, - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, }) expected := `$a ` @@ -4975,16 +6785,70 @@ func TestPrinterPrintStmtFor(t *testing.T) { }, }, Init: []node.Node{ - &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }, Cond: []node.Node{ - &expr.Variable{VarName: &node.Identifier{Value: "c"}}, - &expr.Variable{VarName: &node.Identifier{Value: "d"}}, + &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "c"}, + }, + &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "d"}, + }, }, Loop: []node.Node{ - &expr.Variable{VarName: &node.Identifier{Value: "e"}}, - &expr.Variable{VarName: &node.Identifier{Value: "f"}}, + &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "e"}, + }, + &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "f"}, + }, }, Stmt: &stmt.StmtList{ Stmts: []node.Node{ @@ -5033,9 +6897,36 @@ func TestPrinterPrintStmtForeach(t *testing.T) { TokenName: meta.CloseParenthesisToken, }, }, - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Key: &expr.Variable{VarName: &node.Identifier{Value: "k"}}, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "v"}}, + Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Key: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "k"}, + }, + Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "v"}, + }, Stmt: &stmt.StmtList{ Stmts: []node.Node{ &stmt.Nop{}, @@ -5094,7 +6985,16 @@ func TestPrinterPrintStmtFunction(t *testing.T) { &node.Parameter{ ByRef: true, Variadic: false, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }, }, }, ReturnType: &name.FullyQualified{ @@ -5143,8 +7043,26 @@ func TestPrinterPrintStmtGlobal(t *testing.T) { }, }, Vars: []node.Node{ - &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }, }) @@ -5311,29 +7229,83 @@ func TestPrinterPrintIfExpression(t *testing.T) { TokenName: meta.CloseParenthesisToken, }, }, - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Cond: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, Stmt: &stmt.Expression{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }, ElseIf: []node.Node{ &stmt.ElseIf{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "c"}}, + Cond: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "c"}, + }, Stmt: &stmt.StmtList{ Stmts: []node.Node{ &stmt.Expression{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "d"}}, + Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "d"}, + }, }, }, }, }, &stmt.ElseIf{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "e"}}, + Cond: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "e"}, + }, Stmt: &stmt.Nop{}, }, }, Else: &stmt.Else{ Stmt: &stmt.Expression{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "f"}}, + Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "f"}, + }, }, }, }) @@ -5368,11 +7340,29 @@ func TestPrinterPrintIfStmtList(t *testing.T) { TokenName: meta.CloseParenthesisToken, }, }, - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Cond: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, Stmt: &stmt.StmtList{ Stmts: []node.Node{ &stmt.Expression{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }, }, }, @@ -5391,7 +7381,16 @@ func TestPrinterPrintIfNop(t *testing.T) { p := printer.NewPrinter(o) p.Print(&stmt.If{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Cond: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, Stmt: &stmt.Nop{}, }) @@ -5469,7 +7468,16 @@ func TestPrinterPrintInterface(t *testing.T) { Params: []node.Node{}, Stmt: &stmt.StmtList{ Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, + &stmt.Expression{Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }}, }, }, }, @@ -5564,7 +7572,16 @@ func TestPrinterPrintNamespaceWithStmts(t *testing.T) { }, NamespaceName: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Foo"}}}, Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, + &stmt.Expression{Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }}, }, }) @@ -5621,10 +7638,28 @@ func TestPrinterPrintPropertyList(t *testing.T) { }, Properties: []node.Node{ &stmt.Property{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, }, &stmt.Property{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }, }, }) @@ -5649,8 +7684,17 @@ func TestPrinterPrintProperty(t *testing.T) { TokenName: meta.EqualToken, }, }, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &scalar.Lnumber{Value: "1"}, + Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Expr: &scalar.Lnumber{Value: "1"}, }) expected := `$a =1` @@ -5706,8 +7750,17 @@ func TestPrinterPrintStaticVar(t *testing.T) { TokenName: meta.EqualToken, }, }, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &scalar.Lnumber{Value: "1"}, + Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + Expr: &scalar.Lnumber{Value: "1"}, }) expected := `$a =1` @@ -5742,10 +7795,28 @@ func TestPrinterPrintStatic(t *testing.T) { }, Vars: []node.Node{ &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, }, &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }, }, }) @@ -5776,8 +7847,26 @@ func TestPrinterPrintStmtList(t *testing.T) { }, }, Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, + &stmt.Expression{Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }}, + &stmt.Expression{Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }}, }, }) @@ -5807,13 +7896,40 @@ func TestPrinterPrintStmtListNested(t *testing.T) { }, }, Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, + &stmt.Expression{Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }}, &stmt.StmtList{ Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, + &stmt.Expression{Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }}, &stmt.StmtList{ Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "c"}}}, + &stmt.Expression{Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "c"}, + }}, }, }, }, @@ -5851,7 +7967,16 @@ func TestPrinterPrintStmtSwitch(t *testing.T) { TokenName: meta.CloseParenthesisToken, }, }, - Cond: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + Cond: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }, CaseList: &stmt.CaseList{ Meta: meta.Collection{ &meta.Data{ @@ -5869,13 +7994,31 @@ func TestPrinterPrintStmtSwitch(t *testing.T) { &stmt.Case{ Cond: &scalar.String{Value: "'a'"}, Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, + &stmt.Expression{Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }}, }, }, &stmt.Case{ Cond: &scalar.String{Value: "'b'"}, Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, + &stmt.Expression{Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }}, }, }, }, @@ -5912,7 +8055,16 @@ func TestPrinterPrintStmtThrow(t *testing.T) { TokenName: meta.SemiColonToken, }, }, - Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "var"}, + }, }) expected := ` throw$var ` @@ -6160,7 +8312,16 @@ func TestPrinterPrintTrait(t *testing.T) { Params: []node.Node{}, Stmt: &stmt.StmtList{ Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, + &stmt.Expression{Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }}, }, }, }, @@ -6198,7 +8359,16 @@ func TestPrinterPrintStmtTry(t *testing.T) { }, }, Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, + &stmt.Expression{Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }}, }, Catches: []node.Node{ &stmt.Catch{ @@ -6206,9 +8376,27 @@ func TestPrinterPrintStmtTry(t *testing.T) { &name.Name{Parts: []node.Node{&name.NamePart{Value: "Exception"}}}, &name.FullyQualified{Parts: []node.Node{&name.NamePart{Value: "RuntimeException"}}}, }, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "e"}}, + Variable: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "e"}, + }, Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, + &stmt.Expression{Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }}, }, }, }, @@ -6260,8 +8448,26 @@ func TestPrinterPrintStmtUnset(t *testing.T) { }, }, Vars: []node.Node{ - &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, + &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "b"}, + }, }, }) @@ -6362,10 +8568,28 @@ func TestPrinterPrintWhileStmtList(t *testing.T) { TokenName: meta.CloseParenthesisToken, }, }, - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Cond: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }, Stmt: &stmt.StmtList{ Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, + &stmt.Expression{Expr: &expr.Variable{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "$", + TokenName: meta.DollarToken, + }, + }, + VarName: &node.Identifier{Value: "a"}, + }}, }, }, }) diff --git a/visitor/dumper_test.go b/visitor/dumper_test.go index 8866ac4..290082c 100644 --- a/visitor/dumper_test.go +++ b/visitor/dumper_test.go @@ -110,7 +110,7 @@ func ExampleDumper() { // | "Position": Pos{Line: 5-5 Pos: 79-82} // | "Meta": // | " " before "VariableToken" - // | "StringVar": false + // | "$" before "DollarToken" // | "VarName": // | [*node.Identifier] // | "Position": Pos{Line: 5-5 Pos: 79-82} @@ -146,7 +146,7 @@ func ExampleDumper() { // | "\n\t\t\t\t\t" before "VariableToken" // | "// some comment\n" before "VariableToken" // | "\t\t\t\t\t" before "VariableToken" - // | "StringVar": false + // | "$" before "DollarToken" // | "VarName": // | [*node.Identifier] // | "Position": Pos{Line: 8-8 Pos: 124-127} diff --git a/visitor/go_dumper.go b/visitor/go_dumper.go index 2798243..78dd1be 100644 --- a/visitor/go_dumper.go +++ b/visitor/go_dumper.go @@ -78,19 +78,23 @@ func (d *GoDumper) EnterNode(w walker.Walkable) bool { d.depth++ printIndent(d.Writer, d.depth) - fmt.Fprint(d.Writer, "Position: &position.Position{\n") - d.depth++ - printIndent(d.Writer, d.depth) - fmt.Fprintf(d.Writer, "StartLine: %d,\n", m.Position.StartLine) - printIndent(d.Writer, d.depth) - fmt.Fprintf(d.Writer, "EndLine: %d,\n", m.Position.EndLine) - printIndent(d.Writer, d.depth) - fmt.Fprintf(d.Writer, "StartPos: %d,\n", m.Position.StartPos) - printIndent(d.Writer, d.depth) - fmt.Fprintf(d.Writer, "EndPos: %d,\n", m.Position.EndPos) - d.depth-- - printIndent(d.Writer, d.depth) - fmt.Fprint(d.Writer, "},\n") + if m.Position != nil { + fmt.Fprint(d.Writer, "Position: &position.Position{\n") + d.depth++ + printIndent(d.Writer, d.depth) + fmt.Fprintf(d.Writer, "StartLine: %d,\n", m.Position.StartLine) + printIndent(d.Writer, d.depth) + fmt.Fprintf(d.Writer, "EndLine: %d,\n", m.Position.EndLine) + printIndent(d.Writer, d.depth) + fmt.Fprintf(d.Writer, "StartPos: %d,\n", m.Position.StartPos) + printIndent(d.Writer, d.depth) + fmt.Fprintf(d.Writer, "EndPos: %d,\n", m.Position.EndPos) + d.depth-- + printIndent(d.Writer, d.depth) + fmt.Fprint(d.Writer, "},\n") + } else { + fmt.Fprint(d.Writer, "Position: nil,\n") + } printIndent(d.Writer, d.depth) fmt.Fprintf(d.Writer, "Value: %q,\n", m.String()) diff --git a/visitor/go_dumper_test.go b/visitor/go_dumper_test.go index 33e9805..dc87a47 100644 --- a/visitor/go_dumper_test.go +++ b/visitor/go_dumper_test.go @@ -310,8 +310,12 @@ func ExampleGoDumper() { // Value: " ", // TokenName: 12, // }, + // &meta.TokenType{ + // Position: nil, + // Value: "$", + // TokenName: 145, + // }, // }, - // StringVar: false, // VarName: &node.Identifier{ // Position: &position.Position{ // StartLine: 5, @@ -450,8 +454,12 @@ func ExampleGoDumper() { // Value: "\t\t\t\t\t", // TokenName: 12, // }, + // &meta.TokenType{ + // Position: nil, + // Value: "$", + // TokenName: 145, + // }, // }, - // StringVar: false, // VarName: &node.Identifier{ // Position: &position.Position{ // StartLine: 8, diff --git a/visitor/json_dumper_test.go b/visitor/json_dumper_test.go index 51f8219..63b908d 100644 --- a/visitor/json_dumper_test.go +++ b/visitor/json_dumper_test.go @@ -37,5 +37,5 @@ func ExampleJsonDumper() { nodes.Walk(dumper) // Output: - // {"type":"*node.Root","position":{"startPos":10,"endPos":166,"startLine":3,"endLine":12},"Stmts":[{"type":"*stmt.Namespace","position":{"startPos":10,"endPos":166,"startLine":3,"endLine":12},"meta":[{"type":"*meta.TokenType","value":"