remove unused attributes fields

This commit is contained in:
z7zmey
2018-01-05 00:12:01 +02:00
parent 469db8f9e2
commit 17bca8d1dc
156 changed files with 739 additions and 996 deletions

View File

@@ -5,10 +5,6 @@ import __yyfmt__ "fmt"
//line parser/parser.y:2
import (
"io"
"strconv"
"strings"
"github.com/z7zmey/php-parser/node"
"github.com/z7zmey/php-parser/node/expr"
"github.com/z7zmey/php-parser/node/expr/assign_op"
@@ -18,9 +14,12 @@ import (
"github.com/z7zmey/php-parser/node/scalar"
"github.com/z7zmey/php-parser/node/stmt"
"github.com/z7zmey/php-parser/token"
"io"
"strconv"
"strings"
)
var rootnode node.Node
var rootnode = stmt.NewStmtList([]node.Node{})
func Parse(src io.Reader, fName string) node.Node {
yyDebug = 0
@@ -2668,13 +2667,13 @@ yydefault:
yyDollar = yyS[yypt-1 : yypt+1]
//line parser/parser.y:333
{
yyVAL.node = node.NewIdentifier(yyDollar[1].token).SetPosition(NewTokenPosition(yyDollar[1].token))
yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token))
}
case 100:
yyDollar = yyS[yypt-1 : yypt+1]
//line parser/parser.y:334
{
yyVAL.node = node.NewIdentifier(yyDollar[1].token).SetPosition(NewTokenPosition(yyDollar[1].token))
yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token))
}
case 101:
yyDollar = yyS[yypt-6 : yypt+1]
@@ -2766,7 +2765,7 @@ yydefault:
yyDollar = yyS[yypt-3 : yypt+1]
//line parser/parser.y:396
{
yyVAL.node = stmt.NewUse(nil, name.NewName(yyDollar[1].list).SetPosition(NewNodeListPosition(yyDollar[1].list)), node.NewIdentifier(yyDollar[3].token).SetPosition(NewTokenPosition(yyDollar[3].token))).SetPosition(NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token))
yyVAL.node = stmt.NewUse(nil, name.NewName(yyDollar[1].list).SetPosition(NewNodeListPosition(yyDollar[1].list)), node.NewIdentifier(yyDollar[3].token.Value).SetPosition(NewTokenPosition(yyDollar[3].token))).SetPosition(NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token))
}
case 117:
yyDollar = yyS[yypt-1 : yypt+1]
@@ -2980,13 +2979,13 @@ yydefault:
yyDollar = yyS[yypt-3 : yypt+1]
//line parser/parser.y:457
{
yyVAL.node = stmt.NewGoto(node.NewIdentifier(yyDollar[2].token).SetPosition(NewTokenPosition(yyDollar[2].token))).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token))
yyVAL.node = stmt.NewGoto(node.NewIdentifier(yyDollar[2].token.Value).SetPosition(NewTokenPosition(yyDollar[2].token))).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token))
}
case 152:
yyDollar = yyS[yypt-2 : yypt+1]
//line parser/parser.y:458
{
yyVAL.node = stmt.NewLabel(node.NewIdentifier(yyDollar[1].token).SetPosition(NewTokenPosition(yyDollar[1].token))).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[2].token))
yyVAL.node = stmt.NewLabel(node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token))).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[2].token))
}
case 153:
yyDollar = yyS[yypt-0 : yypt+1]
@@ -2998,7 +2997,7 @@ yydefault:
yyDollar = yyS[yypt-9 : yypt+1]
//line parser/parser.y:463
{
identifier := node.NewIdentifier(yyDollar[5].token).SetPosition(NewTokenPosition(yyDollar[5].token))
identifier := node.NewIdentifier(yyDollar[5].token.Value).SetPosition(NewTokenPosition(yyDollar[5].token))
variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition(yyDollar[5].token))
yyVAL.list = append(yyDollar[1].list, stmt.NewCatch(yyDollar[4].list, variable, yyDollar[8].list).SetPosition(NewTokensPosition(yyDollar[2].token, yyDollar[9].token)))
}
@@ -3048,7 +3047,7 @@ yydefault:
yyDollar = yyS[yypt-11 : yypt+1]
//line parser/parser.y:490
{
name := node.NewIdentifier(yyDollar[3].token).SetPosition(NewTokenPosition(yyDollar[3].token))
name := node.NewIdentifier(yyDollar[3].token.Value).SetPosition(NewTokenPosition(yyDollar[3].token))
yyVAL.node = stmt.NewFunction(name, yyDollar[2].boolWithToken.value, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list, yyDollar[4].str).
SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[11].token))
}
@@ -3080,7 +3079,7 @@ yydefault:
yyDollar = yyS[yypt-9 : yypt+1]
//line parser/parser.y:509
{
name := node.NewIdentifier(yyDollar[3].token).SetPosition(NewTokenPosition(yyDollar[3].token))
name := node.NewIdentifier(yyDollar[3].token.Value).SetPosition(NewTokenPosition(yyDollar[3].token))
yyVAL.node = stmt.NewClass(name, yyDollar[1].list, nil, yyDollar[4].node, yyDollar[5].list, yyDollar[8].list, yyDollar[6].str).
SetPosition(NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[9].token))
}
@@ -3088,7 +3087,7 @@ yydefault:
yyDollar = yyS[yypt-8 : yypt+1]
//line parser/parser.y:515
{
name := node.NewIdentifier(yyDollar[2].token).SetPosition(NewTokenPosition(yyDollar[2].token))
name := node.NewIdentifier(yyDollar[2].token.Value).SetPosition(NewTokenPosition(yyDollar[2].token))
yyVAL.node = stmt.NewClass(name, nil, nil, yyDollar[3].node, yyDollar[4].list, yyDollar[7].list, yyDollar[5].str).
SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[8].token))
}
@@ -3108,19 +3107,19 @@ yydefault:
yyDollar = yyS[yypt-1 : yypt+1]
//line parser/parser.y:528
{
yyVAL.node = node.NewIdentifier(yyDollar[1].token).SetPosition(NewTokenPosition(yyDollar[1].token))
yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token))
}
case 172:
yyDollar = yyS[yypt-1 : yypt+1]
//line parser/parser.y:529
{
yyVAL.node = node.NewIdentifier(yyDollar[1].token).SetPosition(NewTokenPosition(yyDollar[1].token))
yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token))
}
case 173:
yyDollar = yyS[yypt-6 : yypt+1]
//line parser/parser.y:534
{
name := node.NewIdentifier(yyDollar[2].token).SetPosition(NewTokenPosition(yyDollar[2].token))
name := node.NewIdentifier(yyDollar[2].token.Value).SetPosition(NewTokenPosition(yyDollar[2].token))
yyVAL.node = stmt.NewTrait(name, yyDollar[5].list, yyDollar[3].str).
SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[6].token))
}
@@ -3128,7 +3127,7 @@ yydefault:
yyDollar = yyS[yypt-7 : yypt+1]
//line parser/parser.y:543
{
name := node.NewIdentifier(yyDollar[2].token).SetPosition(NewTokenPosition(yyDollar[2].token))
name := node.NewIdentifier(yyDollar[2].token.Value).SetPosition(NewTokenPosition(yyDollar[2].token))
yyVAL.node = stmt.NewInterface(name, yyDollar[3].list, yyDollar[6].list, yyDollar[4].str).
SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[7].token))
}
@@ -3362,7 +3361,7 @@ yydefault:
yyDollar = yyS[yypt-4 : yypt+1]
//line parser/parser.y:667
{
identifier := node.NewIdentifier(yyDollar[4].token).SetPosition(NewTokenPosition(yyDollar[4].token))
identifier := node.NewIdentifier(yyDollar[4].token.Value).SetPosition(NewTokenPosition(yyDollar[4].token))
variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition(yyDollar[4].token))
if yyDollar[1].node != nil {
yyVAL.node = node.NewParameter(yyDollar[1].node, variable, nil, yyDollar[2].boolWithToken.value, yyDollar[3].boolWithToken.value).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token))
@@ -3378,7 +3377,7 @@ yydefault:
yyDollar = yyS[yypt-6 : yypt+1]
//line parser/parser.y:681
{
identifier := node.NewIdentifier(yyDollar[4].token).SetPosition(NewTokenPosition(yyDollar[4].token))
identifier := node.NewIdentifier(yyDollar[4].token.Value).SetPosition(NewTokenPosition(yyDollar[4].token))
variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition(yyDollar[4].token))
if yyDollar[1].node != nil {
yyVAL.node = node.NewParameter(yyDollar[1].node, variable, yyDollar[6].node, yyDollar[2].boolWithToken.value, yyDollar[3].boolWithToken.value).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[6].node))
@@ -3418,13 +3417,13 @@ yydefault:
yyDollar = yyS[yypt-1 : yypt+1]
//line parser/parser.y:707
{
yyVAL.node = node.NewIdentifier(yyDollar[1].token).SetPosition(NewTokenPosition(yyDollar[1].token))
yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token))
}
case 221:
yyDollar = yyS[yypt-1 : yypt+1]
//line parser/parser.y:708
{
yyVAL.node = node.NewIdentifier(yyDollar[1].token).SetPosition(NewTokenPosition(yyDollar[1].token))
yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token))
}
case 222:
yyDollar = yyS[yypt-1 : yypt+1]
@@ -3514,7 +3513,7 @@ yydefault:
yyDollar = yyS[yypt-1 : yypt+1]
//line parser/parser.y:748
{
identifier := node.NewIdentifier(yyDollar[1].token).SetPosition(NewTokenPosition(yyDollar[1].token))
identifier := node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token))
variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition(yyDollar[1].token))
yyVAL.node = stmt.NewStaticVar(variable, nil).SetPosition(NewTokenPosition(yyDollar[1].token))
}
@@ -3522,7 +3521,7 @@ yydefault:
yyDollar = yyS[yypt-3 : yypt+1]
//line parser/parser.y:754
{
identifier := node.NewIdentifier(yyDollar[1].token).SetPosition(NewTokenPosition(yyDollar[1].token))
identifier := node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token))
variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition(yyDollar[1].token))
yyVAL.node = stmt.NewStaticVar(variable, yyDollar[3].node).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node))
}
@@ -3560,7 +3559,7 @@ yydefault:
yyDollar = yyS[yypt-10 : yypt+1]
//line parser/parser.y:771
{
name := node.NewIdentifier(yyDollar[4].token).SetPosition(NewTokenPosition(yyDollar[4].token))
name := node.NewIdentifier(yyDollar[4].token.Value).SetPosition(NewTokenPosition(yyDollar[4].token))
yyVAL.node = stmt.NewClassMethod(name, yyDollar[1].list, yyDollar[3].boolWithToken.value, yyDollar[7].list, yyDollar[9].node, yyDollar[10].nodesWithEndToken.nodes, yyDollar[5].str).
SetPosition(NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[10].nodesWithEndToken.endToken))
}
@@ -3629,19 +3628,19 @@ yydefault:
yyDollar = yyS[yypt-3 : yypt+1]
//line parser/parser.y:808
{
yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, nil, node.NewIdentifier(yyDollar[3].token).SetPosition(NewTokenPosition(yyDollar[3].token))).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token))
yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, nil, node.NewIdentifier(yyDollar[3].token.Value).SetPosition(NewTokenPosition(yyDollar[3].token))).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token))
}
case 255:
yyDollar = yyS[yypt-3 : yypt+1]
//line parser/parser.y:810
{
yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, nil, node.NewIdentifier(yyDollar[3].token).SetPosition(NewTokenPosition(yyDollar[3].token))).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token))
yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, nil, node.NewIdentifier(yyDollar[3].token.Value).SetPosition(NewTokenPosition(yyDollar[3].token))).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token))
}
case 256:
yyDollar = yyS[yypt-4 : yypt+1]
//line parser/parser.y:812
{
yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, node.NewIdentifier(yyDollar[4].token).SetPosition(NewTokenPosition(yyDollar[4].token))).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token))
yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, node.NewIdentifier(yyDollar[4].token.Value).SetPosition(NewTokenPosition(yyDollar[4].token))).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token))
}
case 257:
yyDollar = yyS[yypt-3 : yypt+1]
@@ -3653,7 +3652,7 @@ yydefault:
yyDollar = yyS[yypt-1 : yypt+1]
//line parser/parser.y:817
{
yyVAL.node = stmt.NewTraitMethodRef(nil, node.NewIdentifier(yyDollar[1].token).SetPosition(NewTokenPosition(yyDollar[1].token))).SetPosition(NewTokenPosition(yyDollar[1].token))
yyVAL.node = stmt.NewTraitMethodRef(nil, node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token))).SetPosition(NewTokenPosition(yyDollar[1].token))
}
case 259:
yyDollar = yyS[yypt-1 : yypt+1]
@@ -3665,7 +3664,7 @@ yydefault:
yyDollar = yyS[yypt-3 : yypt+1]
//line parser/parser.y:822
{
yyVAL.node = stmt.NewTraitMethodRef(yyDollar[1].node, node.NewIdentifier(yyDollar[3].token).SetPosition(NewTokenPosition(yyDollar[3].token))).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token))
yyVAL.node = stmt.NewTraitMethodRef(yyDollar[1].node, node.NewIdentifier(yyDollar[3].token.Value).SetPosition(NewTokenPosition(yyDollar[3].token))).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token))
}
case 261:
yyDollar = yyS[yypt-1 : yypt+1]
@@ -3689,7 +3688,7 @@ yydefault:
yyDollar = yyS[yypt-1 : yypt+1]
//line parser/parser.y:832
{
yyVAL.list = []node.Node{node.NewIdentifier(yyDollar[1].token).SetPosition(NewTokenPosition(yyDollar[1].token))}
yyVAL.list = []node.Node{node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token))}
}
case 265:
yyDollar = yyS[yypt-0 : yypt+1]
@@ -3719,37 +3718,37 @@ yydefault:
yyDollar = yyS[yypt-1 : yypt+1]
//line parser/parser.y:846
{
yyVAL.node = node.NewIdentifier(yyDollar[1].token).SetPosition(NewTokenPosition(yyDollar[1].token))
yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token))
}
case 270:
yyDollar = yyS[yypt-1 : yypt+1]
//line parser/parser.y:847
{
yyVAL.node = node.NewIdentifier(yyDollar[1].token).SetPosition(NewTokenPosition(yyDollar[1].token))
yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token))
}
case 271:
yyDollar = yyS[yypt-1 : yypt+1]
//line parser/parser.y:848
{
yyVAL.node = node.NewIdentifier(yyDollar[1].token).SetPosition(NewTokenPosition(yyDollar[1].token))
yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token))
}
case 272:
yyDollar = yyS[yypt-1 : yypt+1]
//line parser/parser.y:849
{
yyVAL.node = node.NewIdentifier(yyDollar[1].token).SetPosition(NewTokenPosition(yyDollar[1].token))
yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token))
}
case 273:
yyDollar = yyS[yypt-1 : yypt+1]
//line parser/parser.y:850
{
yyVAL.node = node.NewIdentifier(yyDollar[1].token).SetPosition(NewTokenPosition(yyDollar[1].token))
yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token))
}
case 274:
yyDollar = yyS[yypt-1 : yypt+1]
//line parser/parser.y:851
{
yyVAL.node = node.NewIdentifier(yyDollar[1].token).SetPosition(NewTokenPosition(yyDollar[1].token))
yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token))
}
case 275:
yyDollar = yyS[yypt-3 : yypt+1]
@@ -3767,7 +3766,7 @@ yydefault:
yyDollar = yyS[yypt-2 : yypt+1]
//line parser/parser.y:861
{
identifier := node.NewIdentifier(yyDollar[1].token).SetPosition(NewTokenPosition(yyDollar[1].token))
identifier := node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token))
variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition(yyDollar[1].token))
yyVAL.node = stmt.NewProperty(variable, nil, yyDollar[2].str).SetPosition(NewTokenPosition(yyDollar[1].token))
}
@@ -3775,7 +3774,7 @@ yydefault:
yyDollar = yyS[yypt-4 : yypt+1]
//line parser/parser.y:867
{
identifier := node.NewIdentifier(yyDollar[1].token).SetPosition(NewTokenPosition(yyDollar[1].token))
identifier := node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token))
variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition(yyDollar[1].token))
yyVAL.node = stmt.NewProperty(variable, yyDollar[3].node, yyDollar[4].str).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node))
}
@@ -3795,14 +3794,14 @@ yydefault:
yyDollar = yyS[yypt-4 : yypt+1]
//line parser/parser.y:881
{
name := node.NewIdentifier(yyDollar[1].token).SetPosition(NewTokenPosition(yyDollar[1].token))
name := node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token))
yyVAL.node = stmt.NewConstant(name, yyDollar[3].node, yyDollar[4].str).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node))
}
case 282:
yyDollar = yyS[yypt-4 : yypt+1]
//line parser/parser.y:889
{
name := node.NewIdentifier(yyDollar[1].token).SetPosition(NewTokenPosition(yyDollar[1].token))
name := node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token))
yyVAL.node = stmt.NewConstant(name, yyDollar[3].node, yyDollar[4].str).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node))
}
case 283:
@@ -4380,7 +4379,7 @@ yydefault:
yyDollar = yyS[yypt-1 : yypt+1]
//line parser/parser.y:1052
{
identifier := node.NewIdentifier(yyDollar[1].token).SetPosition(NewTokenPosition(yyDollar[1].token))
identifier := node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token))
variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition(yyDollar[1].token))
yyVAL.node = expr.NewClusureUse(variable, false).SetPosition(NewTokenPosition(yyDollar[1].token))
}
@@ -4388,7 +4387,7 @@ yydefault:
yyDollar = yyS[yypt-2 : yypt+1]
//line parser/parser.y:1058
{
identifier := node.NewIdentifier(yyDollar[2].token).SetPosition(NewTokenPosition(yyDollar[2].token))
identifier := node.NewIdentifier(yyDollar[2].token.Value).SetPosition(NewTokenPosition(yyDollar[2].token))
variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition(yyDollar[2].token))
yyVAL.node = expr.NewClusureUse(variable, true).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[2].token))
}
@@ -4420,7 +4419,7 @@ yydefault:
yyDollar = yyS[yypt-1 : yypt+1]
//line parser/parser.y:1079
{
yyVAL.node = node.NewIdentifier(yyDollar[1].token).SetPosition(NewTokenPosition(yyDollar[1].token))
yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token))
}
case 383:
yyDollar = yyS[yypt-1 : yypt+1]
@@ -4606,13 +4605,13 @@ yydefault:
yyDollar = yyS[yypt-3 : yypt+1]
//line parser/parser.y:1133
{
yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, node.NewIdentifier(yyDollar[3].token).SetPosition(NewTokenPosition(yyDollar[3].token))).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token))
yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, node.NewIdentifier(yyDollar[3].token.Value).SetPosition(NewTokenPosition(yyDollar[3].token))).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token))
}
case 414:
yyDollar = yyS[yypt-3 : yypt+1]
//line parser/parser.y:1135
{
yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, node.NewIdentifier(yyDollar[3].token).SetPosition(NewTokenPosition(yyDollar[3].token))).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token))
yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, node.NewIdentifier(yyDollar[3].token.Value).SetPosition(NewTokenPosition(yyDollar[3].token))).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token))
}
case 415:
yyDollar = yyS[yypt-1 : yypt+1]
@@ -4738,7 +4737,7 @@ yydefault:
yyDollar = yyS[yypt-1 : yypt+1]
//line parser/parser.y:1181
{
yyVAL.node = expr.NewVariable(node.NewIdentifier(yyDollar[1].token).SetPosition(NewTokenPosition(yyDollar[1].token))).SetPosition(NewTokenPosition(yyDollar[1].token))
yyVAL.node = expr.NewVariable(node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token))).SetPosition(NewTokenPosition(yyDollar[1].token))
}
case 436:
yyDollar = yyS[yypt-4 : yypt+1]
@@ -4804,7 +4803,7 @@ yydefault:
yyDollar = yyS[yypt-1 : yypt+1]
//line parser/parser.y:1213
{
yyVAL.node = node.NewIdentifier(yyDollar[1].token).SetPosition(NewTokenPosition(yyDollar[1].token))
yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token))
}
case 447:
yyDollar = yyS[yypt-3 : yypt+1]
@@ -4822,7 +4821,7 @@ yydefault:
yyDollar = yyS[yypt-1 : yypt+1]
//line parser/parser.y:1219
{
yyVAL.node = node.NewIdentifier(yyDollar[1].token).SetPosition(NewTokenPosition(yyDollar[1].token))
yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token))
}
case 450:
yyDollar = yyS[yypt-3 : yypt+1]
@@ -4940,13 +4939,13 @@ yydefault:
yyDollar = yyS[yypt-1 : yypt+1]
//line parser/parser.y:1275
{
yyVAL.node = expr.NewVariable(node.NewIdentifier(yyDollar[1].token).SetPosition(NewTokenPosition(yyDollar[1].token))).SetPosition(NewTokenPosition(yyDollar[1].token))
yyVAL.node = expr.NewVariable(node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token))).SetPosition(NewTokenPosition(yyDollar[1].token))
}
case 468:
yyDollar = yyS[yypt-4 : yypt+1]
//line parser/parser.y:1277
{
identifier := node.NewIdentifier(yyDollar[1].token).SetPosition(NewTokenPosition(yyDollar[1].token))
identifier := node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token))
variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition(yyDollar[1].token))
yyVAL.node = expr.NewArrayDimFetch(variable, yyDollar[3].node).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[4].token))
}
@@ -4954,9 +4953,9 @@ yydefault:
yyDollar = yyS[yypt-3 : yypt+1]
//line parser/parser.y:1283
{
identifier := node.NewIdentifier(yyDollar[1].token).SetPosition(NewTokenPosition(yyDollar[1].token))
identifier := node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token))
variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition(yyDollar[1].token))
yyVAL.node = expr.NewPropertyFetch(variable, node.NewIdentifier(yyDollar[3].token).SetPosition(NewTokenPosition(yyDollar[3].token))).
yyVAL.node = expr.NewPropertyFetch(variable, node.NewIdentifier(yyDollar[3].token.Value).SetPosition(NewTokenPosition(yyDollar[3].token))).
SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token))
}
case 470:
@@ -4969,13 +4968,13 @@ yydefault:
yyDollar = yyS[yypt-3 : yypt+1]
//line parser/parser.y:1290
{
yyVAL.node = expr.NewVariable(node.NewIdentifier(yyDollar[2].token).SetPosition(NewTokenPosition(yyDollar[2].token))).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token))
yyVAL.node = expr.NewVariable(node.NewIdentifier(yyDollar[2].token.Value).SetPosition(NewTokenPosition(yyDollar[2].token))).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token))
}
case 472:
yyDollar = yyS[yypt-6 : yypt+1]
//line parser/parser.y:1292
{
identifier := node.NewIdentifier(yyDollar[2].token).SetPosition(NewTokenPosition(yyDollar[2].token))
identifier := node.NewIdentifier(yyDollar[2].token.Value).SetPosition(NewTokenPosition(yyDollar[2].token))
variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition(yyDollar[2].token))
yyVAL.node = expr.NewArrayDimFetch(variable, yyDollar[4].node).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[6].token))
}
@@ -5019,7 +5018,7 @@ yydefault:
yyDollar = yyS[yypt-1 : yypt+1]
//line parser/parser.y:1322
{
identifier := node.NewIdentifier(yyDollar[1].token).SetPosition(NewTokenPosition(yyDollar[1].token))
identifier := node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token))
yyVAL.node = expr.NewVariable(identifier).SetPosition(NewTokenPosition(yyDollar[1].token))
}
case 478:

View File

@@ -330,8 +330,8 @@ top_statement:
;
use_type:
T_FUNCTION { $$ = node.NewIdentifier($1).SetPosition(NewTokenPosition($1)) }
| T_CONST { $$ = node.NewIdentifier($1).SetPosition(NewTokenPosition($1)) }
T_FUNCTION { $$ = node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) }
| T_CONST { $$ = node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) }
;
group_use_declaration:
@@ -393,7 +393,7 @@ inline_use_declaration:
unprefixed_use_declaration:
namespace_name { $$ = stmt.NewUse(nil, name.NewName($1).SetPosition(NewNodeListPosition($1)), nil).SetPosition(NewNodeListPosition($1)) }
| namespace_name T_AS T_STRING { $$ = stmt.NewUse(nil, name.NewName($1).SetPosition(NewNodeListPosition($1)), node.NewIdentifier($3).SetPosition(NewTokenPosition($3))).SetPosition(NewNodeListTokenPosition($1, $3)) }
| namespace_name T_AS T_STRING { $$ = stmt.NewUse(nil, name.NewName($1).SetPosition(NewNodeListPosition($1)), node.NewIdentifier($3.Value).SetPosition(NewTokenPosition($3))).SetPosition(NewNodeListTokenPosition($1, $3)) }
;
use_declaration:
@@ -454,14 +454,14 @@ statement:
}
}
| T_THROW expr ';' { $$ = stmt.NewThrow($2).SetPosition(NewTokensPosition($1, $3)) }
| T_GOTO T_STRING ';' { $$ = stmt.NewGoto(node.NewIdentifier($2).SetPosition(NewTokenPosition($2))).SetPosition(NewTokensPosition($1, $3)) }
| T_STRING ':' { $$ = stmt.NewLabel(node.NewIdentifier($1).SetPosition(NewTokenPosition($1))).SetPosition(NewTokensPosition($1, $2)) }
| T_GOTO T_STRING ';' { $$ = stmt.NewGoto(node.NewIdentifier($2.Value).SetPosition(NewTokenPosition($2))).SetPosition(NewTokensPosition($1, $3)) }
| T_STRING ':' { $$ = stmt.NewLabel(node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1))).SetPosition(NewTokensPosition($1, $2)) }
catch_list:
/* empty */ { $$ = []node.Node{} }
| catch_list T_CATCH '(' catch_name_list T_VARIABLE ')' '{' inner_statement_list '}'
{
identifier := node.NewIdentifier($5).SetPosition(NewTokenPosition($5))
identifier := node.NewIdentifier($5.Value).SetPosition(NewTokenPosition($5))
variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition($5))
$$ = append($1, stmt.NewCatch($4, variable, $8).SetPosition(NewTokensPosition($2, $9)))
}
@@ -488,7 +488,7 @@ unset_variable:
function_declaration_statement:
T_FUNCTION returns_ref T_STRING backup_doc_comment '(' parameter_list ')' return_type '{' inner_statement_list '}'
{
name := node.NewIdentifier($3).SetPosition(NewTokenPosition($3))
name := node.NewIdentifier($3.Value).SetPosition(NewTokenPosition($3))
$$ = stmt.NewFunction(name, $2.value, $6, $8, $10, $4).
SetPosition(NewTokensPosition($1, $11))
}
@@ -507,13 +507,13 @@ is_variadic:
class_declaration_statement:
class_modifiers T_CLASS T_STRING extends_from implements_list backup_doc_comment '{' class_statement_list '}'
{
name := node.NewIdentifier($3).SetPosition(NewTokenPosition($3))
name := node.NewIdentifier($3.Value).SetPosition(NewTokenPosition($3))
$$ = stmt.NewClass(name, $1, nil, $4, $5, $8, $6).
SetPosition(NewOptionalListTokensPosition($1, $2, $9))
}
| T_CLASS T_STRING extends_from implements_list backup_doc_comment '{' class_statement_list '}'
{
name := node.NewIdentifier($2).SetPosition(NewTokenPosition($2))
name := node.NewIdentifier($2.Value).SetPosition(NewTokenPosition($2))
$$ = stmt.NewClass(name, nil, nil, $3, $4, $7, $5).
SetPosition(NewTokensPosition($1, $8))
}
@@ -525,14 +525,14 @@ class_modifiers:
;
class_modifier:
T_ABSTRACT { $$ = node.NewIdentifier($1).SetPosition(NewTokenPosition($1)) }
| T_FINAL { $$ = node.NewIdentifier($1).SetPosition(NewTokenPosition($1)) }
T_ABSTRACT { $$ = node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) }
| T_FINAL { $$ = node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) }
;
trait_declaration_statement:
T_TRAIT T_STRING backup_doc_comment '{' class_statement_list '}'
{
name := node.NewIdentifier($2).SetPosition(NewTokenPosition($2))
name := node.NewIdentifier($2.Value).SetPosition(NewTokenPosition($2))
$$ = stmt.NewTrait(name, $5, $3).
SetPosition(NewTokensPosition($1, $6))
}
@@ -541,7 +541,7 @@ trait_declaration_statement:
interface_declaration_statement:
T_INTERFACE T_STRING interface_extends_list backup_doc_comment '{' class_statement_list '}'
{
name := node.NewIdentifier($2).SetPosition(NewTokenPosition($2))
name := node.NewIdentifier($2.Value).SetPosition(NewTokenPosition($2))
$$ = stmt.NewInterface(name, $3, $6, $4).
SetPosition(NewTokensPosition($1, $7))
}
@@ -665,7 +665,7 @@ non_empty_parameter_list:
parameter:
optional_type is_reference is_variadic T_VARIABLE
{
identifier := node.NewIdentifier($4).SetPosition(NewTokenPosition($4))
identifier := node.NewIdentifier($4.Value).SetPosition(NewTokenPosition($4))
variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition($4))
if $1 != nil {
$$ = node.NewParameter($1, variable, nil, $2.value, $3.value).SetPosition(NewNodeTokenPosition($1, $4))
@@ -679,7 +679,7 @@ parameter:
}
| optional_type is_reference is_variadic T_VARIABLE '=' expr
{
identifier := node.NewIdentifier($4).SetPosition(NewTokenPosition($4))
identifier := node.NewIdentifier($4.Value).SetPosition(NewTokenPosition($4))
variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition($4))
if $1 != nil {
$$ = node.NewParameter($1, variable, $6, $2.value, $3.value).SetPosition(NewNodesPosition($1, $6))
@@ -704,8 +704,8 @@ type_expr:
;
type:
T_ARRAY { $$ = node.NewIdentifier($1).SetPosition(NewTokenPosition($1)) }
| T_CALLABLE { $$ = node.NewIdentifier($1).SetPosition(NewTokenPosition($1)) }
T_ARRAY { $$ = node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) }
| T_CALLABLE { $$ = node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) }
| name { $$ = $1; }
;
@@ -746,13 +746,13 @@ static_var_list:
static_var:
T_VARIABLE
{
identifier := node.NewIdentifier($1).SetPosition(NewTokenPosition($1))
identifier := node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1))
variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition($1))
$$ = stmt.NewStaticVar(variable, nil).SetPosition(NewTokenPosition($1))
}
| T_VARIABLE '=' expr
{
identifier := node.NewIdentifier($1).SetPosition(NewTokenPosition($1))
identifier := node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1))
variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition($1))
$$ = stmt.NewStaticVar(variable, $3).SetPosition(NewTokenNodePosition($1, $3))
}
@@ -769,7 +769,7 @@ class_statement:
| T_USE name_list trait_adaptations { $$ = stmt.NewTraitUse($2, $3.nodes).SetPosition(NewTokensPosition($1, $3.endToken)) }
| method_modifiers T_FUNCTION returns_ref identifier backup_doc_comment '(' parameter_list ')' return_type method_body
{
name := node.NewIdentifier($4).SetPosition(NewTokenPosition($4))
name := node.NewIdentifier($4.Value).SetPosition(NewTokenPosition($4))
$$ = stmt.NewClassMethod(name, $1, $3.value, $7, $9, $10.nodes, $5).
SetPosition(NewOptionalListTokensPosition($1, $2, $10.endToken))
}
@@ -805,21 +805,21 @@ trait_precedence:
;
trait_alias:
trait_method_reference T_AS T_STRING { $$ = stmt.NewTraitUseAlias($1, nil, node.NewIdentifier($3).SetPosition(NewTokenPosition($3))).SetPosition(NewNodeTokenPosition($1, $3)) }
trait_method_reference T_AS T_STRING { $$ = stmt.NewTraitUseAlias($1, nil, node.NewIdentifier($3.Value).SetPosition(NewTokenPosition($3))).SetPosition(NewNodeTokenPosition($1, $3)) }
| trait_method_reference T_AS reserved_non_modifiers
{ $$ = stmt.NewTraitUseAlias($1, nil, node.NewIdentifier($3).SetPosition(NewTokenPosition($3))).SetPosition(NewNodeTokenPosition($1, $3)) }
{ $$ = stmt.NewTraitUseAlias($1, nil, node.NewIdentifier($3.Value).SetPosition(NewTokenPosition($3))).SetPosition(NewNodeTokenPosition($1, $3)) }
| trait_method_reference T_AS member_modifier identifier
{ $$ = stmt.NewTraitUseAlias($1, $3, node.NewIdentifier($4).SetPosition(NewTokenPosition($4))).SetPosition(NewNodeTokenPosition($1, $4)) }
{ $$ = stmt.NewTraitUseAlias($1, $3, node.NewIdentifier($4.Value).SetPosition(NewTokenPosition($4))).SetPosition(NewNodeTokenPosition($1, $4)) }
| trait_method_reference T_AS member_modifier { $$ = stmt.NewTraitUseAlias($1, $3, nil).SetPosition(NewNodesPosition($1, $3)) }
;
trait_method_reference:
identifier { $$ = stmt.NewTraitMethodRef(nil, node.NewIdentifier($1).SetPosition(NewTokenPosition($1))).SetPosition(NewTokenPosition($1)) }
identifier { $$ = stmt.NewTraitMethodRef(nil, node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1))).SetPosition(NewTokenPosition($1)) }
| absolute_trait_method_reference { $$ = $1; }
;
absolute_trait_method_reference:
name T_PAAMAYIM_NEKUDOTAYIM identifier { $$ = stmt.NewTraitMethodRef($1, node.NewIdentifier($3).SetPosition(NewTokenPosition($3))).SetPosition(NewNodeTokenPosition($1, $3)) }
name T_PAAMAYIM_NEKUDOTAYIM identifier { $$ = stmt.NewTraitMethodRef($1, node.NewIdentifier($3.Value).SetPosition(NewTokenPosition($3))).SetPosition(NewNodeTokenPosition($1, $3)) }
;
method_body:
@@ -829,7 +829,7 @@ method_body:
variable_modifiers:
non_empty_member_modifiers { $$ = $1; }
| T_VAR { $$ = []node.Node{node.NewIdentifier($1).SetPosition(NewTokenPosition($1))} }
| T_VAR { $$ = []node.Node{node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1))} }
;
method_modifiers:
@@ -843,12 +843,12 @@ non_empty_member_modifiers:
;
member_modifier:
T_PUBLIC { $$ = node.NewIdentifier($1).SetPosition(NewTokenPosition($1)) }
| T_PROTECTED { $$ = node.NewIdentifier($1).SetPosition(NewTokenPosition($1)) }
| T_PRIVATE { $$ = node.NewIdentifier($1).SetPosition(NewTokenPosition($1)) }
| T_STATIC { $$ = node.NewIdentifier($1).SetPosition(NewTokenPosition($1)) }
| T_ABSTRACT { $$ = node.NewIdentifier($1).SetPosition(NewTokenPosition($1)) }
| T_FINAL { $$ = node.NewIdentifier($1).SetPosition(NewTokenPosition($1)) }
T_PUBLIC { $$ = node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) }
| T_PROTECTED { $$ = node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) }
| T_PRIVATE { $$ = node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) }
| T_STATIC { $$ = node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) }
| T_ABSTRACT { $$ = node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) }
| T_FINAL { $$ = node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) }
;
property_list:
@@ -859,13 +859,13 @@ property_list:
property:
T_VARIABLE backup_doc_comment
{
identifier := node.NewIdentifier($1).SetPosition(NewTokenPosition($1))
identifier := node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1))
variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition($1))
$$ = stmt.NewProperty(variable, nil, $2).SetPosition(NewTokenPosition($1))
}
| T_VARIABLE '=' expr backup_doc_comment
{
identifier := node.NewIdentifier($1).SetPosition(NewTokenPosition($1))
identifier := node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1))
variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition($1))
$$ = stmt.NewProperty(variable, $3, $4).SetPosition(NewTokenNodePosition($1, $3))
}
@@ -879,7 +879,7 @@ class_const_list:
class_const_decl:
identifier '=' expr backup_doc_comment
{
name := node.NewIdentifier($1).SetPosition(NewTokenPosition($1))
name := node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1))
$$ = stmt.NewConstant(name, $3, $4).SetPosition(NewTokenNodePosition($1, $3))
}
;
@@ -887,7 +887,7 @@ class_const_decl:
const_decl:
T_STRING '=' expr backup_doc_comment
{
name := node.NewIdentifier($1).SetPosition(NewTokenPosition($1))
name := node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1))
$$ = stmt.NewConstant(name, $3, $4).SetPosition(NewTokenNodePosition($1, $3))
}
;
@@ -1050,13 +1050,13 @@ lexical_var_list:
lexical_var:
T_VARIABLE
{
identifier := node.NewIdentifier($1).SetPosition(NewTokenPosition($1))
identifier := node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1))
variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition($1))
$$ = expr.NewClusureUse(variable, false).SetPosition(NewTokenPosition($1))
}
| '&' T_VARIABLE
{
identifier := node.NewIdentifier($2).SetPosition(NewTokenPosition($2))
identifier := node.NewIdentifier($2.Value).SetPosition(NewTokenPosition($2))
variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition($2))
$$ = expr.NewClusureUse(variable, true).SetPosition(NewTokensPosition($1, $2))
}
@@ -1076,7 +1076,7 @@ function_call:
;
class_name:
T_STATIC { $$ = node.NewIdentifier($1).SetPosition(NewTokenPosition($1)) }
T_STATIC { $$ = node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) }
| name { $$ = $1; }
;
@@ -1130,9 +1130,9 @@ scalar:
constant:
name { $$ = expr.NewConstFetch($1).SetPosition(NewNodePosition($1)) }
| class_name T_PAAMAYIM_NEKUDOTAYIM identifier { $$ = expr.NewClassConstFetch($1, node.NewIdentifier($3).SetPosition(NewTokenPosition($3))).SetPosition(NewNodeTokenPosition($1, $3)) }
| class_name T_PAAMAYIM_NEKUDOTAYIM identifier { $$ = expr.NewClassConstFetch($1, node.NewIdentifier($3.Value).SetPosition(NewTokenPosition($3))).SetPosition(NewNodeTokenPosition($1, $3)) }
| variable_class_name T_PAAMAYIM_NEKUDOTAYIM identifier
{ $$ = expr.NewClassConstFetch($1, node.NewIdentifier($3).SetPosition(NewTokenPosition($3))).SetPosition(NewNodeTokenPosition($1, $3)) }
{ $$ = expr.NewClassConstFetch($1, node.NewIdentifier($3.Value).SetPosition(NewTokenPosition($3))).SetPosition(NewNodeTokenPosition($1, $3)) }
;
expr:
@@ -1178,7 +1178,7 @@ variable:
;
simple_variable:
T_VARIABLE { $$ = expr.NewVariable(node.NewIdentifier($1).SetPosition(NewTokenPosition($1))).SetPosition(NewTokenPosition($1)) }
T_VARIABLE { $$ = expr.NewVariable(node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1))).SetPosition(NewTokenPosition($1)) }
| '$' '{' expr '}' { $$ = expr.NewVariable($3).SetPosition(NewTokensPosition($1, $4)) }
| '$' simple_variable { $$ = expr.NewVariable($2).SetPosition(NewTokenNodePosition($1, $2)) }
;
@@ -1210,13 +1210,13 @@ new_variable:
;
member_name:
identifier { $$ = node.NewIdentifier($1).SetPosition(NewTokenPosition($1)) }
identifier { $$ = node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) }
| '{' expr '}' { $$ = $2; }
| simple_variable { $$ = $1 }
;
property_name:
T_STRING { $$ = node.NewIdentifier($1).SetPosition(NewTokenPosition($1)) }
T_STRING { $$ = node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) }
| '{' expr '}' { $$ = $2; }
| simple_variable { $$ = $1 }
;
@@ -1272,25 +1272,25 @@ encaps_list:
;
encaps_var:
T_VARIABLE { $$ = expr.NewVariable(node.NewIdentifier($1).SetPosition(NewTokenPosition($1))).SetPosition(NewTokenPosition($1)) }
T_VARIABLE { $$ = expr.NewVariable(node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1))).SetPosition(NewTokenPosition($1)) }
| T_VARIABLE '[' encaps_var_offset ']'
{
identifier := node.NewIdentifier($1).SetPosition(NewTokenPosition($1))
identifier := node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1))
variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition($1))
$$ = expr.NewArrayDimFetch(variable, $3).SetPosition(NewTokensPosition($1, $4))
}
| T_VARIABLE T_OBJECT_OPERATOR T_STRING
{
identifier := node.NewIdentifier($1).SetPosition(NewTokenPosition($1))
identifier := node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1))
variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition($1))
$$ = expr.NewPropertyFetch(variable, node.NewIdentifier($3).SetPosition(NewTokenPosition($3))).
$$ = expr.NewPropertyFetch(variable, node.NewIdentifier($3.Value).SetPosition(NewTokenPosition($3))).
SetPosition(NewTokensPosition($1, $3))
}
| T_DOLLAR_OPEN_CURLY_BRACES expr '}' { $$ = expr.NewVariable($2).SetPosition(NewTokensPosition($1, $3)) }
| T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '}' { $$ = expr.NewVariable(node.NewIdentifier($2).SetPosition(NewTokenPosition($2))).SetPosition(NewTokensPosition($1, $3)) }
| T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '}' { $$ = expr.NewVariable(node.NewIdentifier($2.Value).SetPosition(NewTokenPosition($2))).SetPosition(NewTokensPosition($1, $3)) }
| T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}'
{
identifier := node.NewIdentifier($2).SetPosition(NewTokenPosition($2))
identifier := node.NewIdentifier($2.Value).SetPosition(NewTokenPosition($2))
variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition($2))
$$ = expr.NewArrayDimFetch(variable, $4).SetPosition(NewTokensPosition($1, $6))
}
@@ -1320,7 +1320,7 @@ encaps_var_offset:
}
| T_VARIABLE
{
identifier := node.NewIdentifier($1).SetPosition(NewTokenPosition($1))
identifier := node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1))
$$ = expr.NewVariable(identifier).SetPosition(NewTokenPosition($1))
}
;