From e7ba0ca4359c4092af9937947c2b7e1bb67c1ab7 Mon Sep 17 00:00:00 2001 From: z7zmey Date: Mon, 4 Dec 2017 23:24:12 +0200 Subject: [PATCH] change SimpleNode --- node/node.go | 40 +- node/node_expr_shellexec.go | 6 +- node/node_scalar_encapsed.go | 6 +- node/node_scalar_encapsed_string_part.go | 8 +- node/node_scalar_string.go | 8 +- parser/parser.go | 536 +++++++++++------------ parser/parser.y | 536 +++++++++++------------ 7 files changed, 570 insertions(+), 570 deletions(-) diff --git a/node/node.go b/node/node.go index 7beae34..0b0e2d1 100644 --- a/node/node.go +++ b/node/node.go @@ -13,58 +13,58 @@ type Node interface { Attribute(key string, value string) Node } -type simpleNode struct { - name string - children []Node - attributes map[string]string +type SimpleNode struct { + Name string + Children []Node + Attributes map[string]string } type tokenNode struct { - *simpleNode + *SimpleNode token token.Token } -func (n simpleNode) String() string { +func (n SimpleNode) String() string { buf := new(bytes.Buffer) n.Print(buf, " ") return buf.String() } -func (n simpleNode) Print(out io.Writer, indent string) { - if len(n.attributes) > 0 { - fmt.Fprintf(out, "\n%v%v %s", indent, n.name, n.attributes) +func (n SimpleNode) Print(out io.Writer, indent string) { + if len(n.Attributes) > 0 { + fmt.Fprintf(out, "\n%v%v %s", indent, n.Name, n.Attributes) } else { - fmt.Fprintf(out, "\n%v%v", indent, n.name) + fmt.Fprintf(out, "\n%v%v", indent, n.Name) } - for _, nn := range n.children { + for _, nn := range n.Children { nn.Print(out, indent+" ") } } -func SimpleNode(name string) Node { - return simpleNode{name: name, attributes: make(map[string]string)} +func NewSimpleNode(name string) Node { + return SimpleNode{Name: name, Attributes: make(map[string]string)} } func TokenNode(name string, t token.Token) Node { return tokenNode{ - &simpleNode{name: name, attributes: make(map[string]string)}, + &SimpleNode{Name: name, Attributes: make(map[string]string)}, t, } } func (n tokenNode) Print(out io.Writer, indent string) { - fmt.Fprintf(out, "\n%v%v [%d %d] %q", indent, n.name, n.token.StartLine, n.token.EndLine, n.token.Value) - for _, nn := range n.children { + fmt.Fprintf(out, "\n%v%v [%d %d] %q", indent, n.Name, n.token.StartLine, n.token.EndLine, n.token.Value) + for _, nn := range n.Children { nn.Print(out, indent+" ") } } -func (n simpleNode) Append(nn ...Node) Node { - n.children = append(n.children, nn...) +func (n SimpleNode) Append(nn ...Node) Node { + n.Children = append(n.Children, nn...) return n } -func (n simpleNode) Attribute(key string, value string) Node { - n.attributes[key] = value +func (n SimpleNode) Attribute(key string, value string) Node { + n.Attributes[key] = value return n } diff --git a/node/node_expr_shellexec.go b/node/node_expr_shellexec.go index ffd2a38..a5147d7 100644 --- a/node/node_expr_shellexec.go +++ b/node/node_expr_shellexec.go @@ -8,7 +8,7 @@ import ( type NodeExprShellExec struct { - *simpleNode + *SimpleNode startToken token.Token endToken token.Token parts []Node @@ -17,7 +17,7 @@ type NodeExprShellExec struct { func NewNodeExprShellExec(startToken token.Token, parts []Node, endToken token.Token) Node { return NodeExprShellExec{ - &simpleNode{name: "NodeExprShellExec", attributes: make(map[string]string)}, + &SimpleNode{Name: "NodeExprShellExec", Attributes: make(map[string]string)}, startToken, endToken, parts, @@ -25,7 +25,7 @@ func NewNodeExprShellExec(startToken token.Token, parts []Node, endToken token.T } func (n NodeExprShellExec) Print(out io.Writer, indent string) { - fmt.Fprintf(out, "\n%v%v [%d %d]", indent, n.name, n.startToken.StartLine, n.endToken.EndLine) + fmt.Fprintf(out, "\n%v%v [%d %d]", indent, n.Name, n.startToken.StartLine, n.endToken.EndLine) fmt.Fprintf(out, "\n%vparts:", indent+" ",) for _, nn := range n.parts { nn.Print(out, indent+" ") diff --git a/node/node_scalar_encapsed.go b/node/node_scalar_encapsed.go index 5e009d4..6dd1835 100644 --- a/node/node_scalar_encapsed.go +++ b/node/node_scalar_encapsed.go @@ -8,7 +8,7 @@ import ( type NodeScalarEncapsed struct { - *simpleNode + *SimpleNode startToken token.Token endToken token.Token parts []Node @@ -17,7 +17,7 @@ type NodeScalarEncapsed struct { func NewNodeScalarEncapsed(startToken token.Token, parts []Node, endToken token.Token) Node { return NodeScalarEncapsed{ - &simpleNode{name: "NodeScalarEncapsed", attributes: make(map[string]string)}, + &SimpleNode{Name: "NodeScalarEncapsed", Attributes: make(map[string]string)}, startToken, endToken, parts, @@ -25,7 +25,7 @@ func NewNodeScalarEncapsed(startToken token.Token, parts []Node, endToken token. } func (n NodeScalarEncapsed) Print(out io.Writer, indent string) { - fmt.Fprintf(out, "\n%v%v [%d %d]", indent, n.name, n.startToken.StartLine, n.endToken.EndLine) + fmt.Fprintf(out, "\n%v%v [%d %d]", indent, n.Name, n.startToken.StartLine, n.endToken.EndLine) fmt.Fprintf(out, "\n%vparts:", indent+" ",) for _, nn := range n.parts { nn.Print(out, indent+" ") diff --git a/node/node_scalar_encapsed_string_part.go b/node/node_scalar_encapsed_string_part.go index f180e85..34825e6 100644 --- a/node/node_scalar_encapsed_string_part.go +++ b/node/node_scalar_encapsed_string_part.go @@ -7,21 +7,21 @@ import ( ) type NodeScalarEncapsedStringPart struct { - *simpleNode + *SimpleNode token token.Token } func NewNodeScalarEncapsedStringPart(t token.Token) Node { return NodeScalarEncapsedStringPart{ - &simpleNode{name: "NodeScalarEncapsedStringPart", attributes: make(map[string]string)}, + &SimpleNode{Name: "NodeScalarEncapsedStringPart", Attributes: make(map[string]string)}, t, } } func (n NodeScalarEncapsedStringPart) Print(out io.Writer, indent string) { - fmt.Fprintf(out, "\n%v%v [%d %d] %q", indent, n.name, n.token.StartLine, n.token.EndLine, n.token.Value) - for _, nn := range n.children { + fmt.Fprintf(out, "\n%v%v [%d %d] %q", indent, n.Name, n.token.StartLine, n.token.EndLine, n.token.Value) + for _, nn := range n.Children { nn.Print(out, indent+" ") } } diff --git a/node/node_scalar_string.go b/node/node_scalar_string.go index edcfa5c..8180e95 100644 --- a/node/node_scalar_string.go +++ b/node/node_scalar_string.go @@ -8,21 +8,21 @@ import ( type NodeScalarString struct { - *simpleNode + *SimpleNode token token.Token } func NewNodeScalarString(t token.Token) Node { return NodeScalarString{ - &simpleNode{name: "NodeScalarString", attributes: make(map[string]string)}, + &SimpleNode{Name: "NodeScalarString", Attributes: make(map[string]string)}, t, } } func (n NodeScalarString) Print(out io.Writer, indent string) { - fmt.Fprintf(out, "\n%v%v [%d %d] %q", indent, n.name, n.token.StartLine, n.token.EndLine, n.token.Value) - for _, nn := range n.children { + fmt.Fprintf(out, "\n%v%v [%d %d] %q", indent, n.Name, n.token.StartLine, n.token.EndLine, n.token.Value) + for _, nn := range n.Children { nn.Print(out, indent+" ") } } diff --git a/parser/parser.go b/parser/parser.go index 4af75bd..b8ee72f 100644 --- a/parser/parser.go +++ b/parser/parser.go @@ -10,12 +10,12 @@ import ( "io" ) -var rootnode = node.SimpleNode("Root") +var rootnode = node.NewSimpleNode("Root") func Parse(src io.Reader, fName string) node.Node { yyDebug = 0 yyErrorVerbose = true - rootnode = node.SimpleNode("Root") //reset + rootnode = node.NewSimpleNode("Root") //reset yyParse(newLexer(src, fName)) return rootnode } @@ -2506,13 +2506,13 @@ yydefault: yyDollar = yyS[yypt-0 : yypt+1] //line parser/parser.y:240 { - yyVAL.node = node.SimpleNode("Statements") + yyVAL.node = node.NewSimpleNode("Statements") } case 80: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:244 { - yyVAL.node = node.SimpleNode("NamespaceParts").Append(node.TokenNode("NsPart", yyDollar[1].token)) + yyVAL.node = node.NewSimpleNode("NamespaceParts").Append(node.TokenNode("NsPart", yyDollar[1].token)) } case 81: yyDollar = yyS[yypt-3 : yypt+1] @@ -2524,19 +2524,19 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:249 { - yyVAL.node = node.SimpleNode("Name").Append(yyDollar[1].node) + yyVAL.node = node.NewSimpleNode("Name").Append(yyDollar[1].node) } case 83: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:250 { - yyVAL.node = node.SimpleNode("Name").Append(yyDollar[3].node).Attribute("Relative", "true") + yyVAL.node = node.NewSimpleNode("Name").Append(yyDollar[3].node).Attribute("Relative", "true") } case 84: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:251 { - yyVAL.node = node.SimpleNode("Name").Append(yyDollar[2].node).Attribute("FullyQualified", "true") + yyVAL.node = node.NewSimpleNode("Name").Append(yyDollar[2].node).Attribute("FullyQualified", "true") } case 85: yyDollar = yyS[yypt-1 : yypt+1] @@ -2572,25 +2572,25 @@ yydefault: yyDollar = yyS[yypt-4 : yypt+1] //line parser/parser.y:260 { - yyVAL.node = node.SimpleNode("THaltCompiler") + yyVAL.node = node.NewSimpleNode("THaltCompiler") } case 91: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:261 { - yyVAL.node = node.SimpleNode("Namespace").Append(yyDollar[2].node) + yyVAL.node = node.NewSimpleNode("Namespace").Append(yyDollar[2].node) } case 92: yyDollar = yyS[yypt-5 : yypt+1] //line parser/parser.y:263 { - yyVAL.node = node.SimpleNode("Namespace").Append(yyDollar[2].node).Append(yyDollar[4].node) + yyVAL.node = node.NewSimpleNode("Namespace").Append(yyDollar[2].node).Append(yyDollar[4].node) } case 93: yyDollar = yyS[yypt-4 : yypt+1] //line parser/parser.y:264 { - yyVAL.node = node.SimpleNode("Namespace").Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("Namespace").Append(yyDollar[3].node) } case 94: yyDollar = yyS[yypt-3 : yypt+1] @@ -2626,37 +2626,37 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:273 { - yyVAL.node = node.SimpleNode("FuncUseType") + yyVAL.node = node.NewSimpleNode("FuncUseType") } case 100: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:274 { - yyVAL.node = node.SimpleNode("ConstUseType") + yyVAL.node = node.NewSimpleNode("ConstUseType") } case 101: yyDollar = yyS[yypt-6 : yypt+1] //line parser/parser.y:279 { - yyVAL.node = node.SimpleNode("GroupUse").Append(yyDollar[1].node).Append(yyDollar[4].node) + yyVAL.node = node.NewSimpleNode("GroupUse").Append(yyDollar[1].node).Append(yyDollar[4].node) } case 102: yyDollar = yyS[yypt-7 : yypt+1] //line parser/parser.y:281 { - yyVAL.node = node.SimpleNode("GroupUse").Append(yyDollar[2].node).Append(yyDollar[5].node) + yyVAL.node = node.NewSimpleNode("GroupUse").Append(yyDollar[2].node).Append(yyDollar[5].node) } case 103: yyDollar = yyS[yypt-6 : yypt+1] //line parser/parser.y:286 { - yyVAL.node = node.SimpleNode("MixedGroupUse").Append(yyDollar[1].node).Append(yyDollar[4].node) + yyVAL.node = node.NewSimpleNode("MixedGroupUse").Append(yyDollar[1].node).Append(yyDollar[4].node) } case 104: yyDollar = yyS[yypt-7 : yypt+1] //line parser/parser.y:288 { - yyVAL.node = node.SimpleNode("MixedGroupUse").Append(yyDollar[2].node).Append(yyDollar[5].node) + yyVAL.node = node.NewSimpleNode("MixedGroupUse").Append(yyDollar[2].node).Append(yyDollar[5].node) } case 107: yyDollar = yyS[yypt-3 : yypt+1] @@ -2668,7 +2668,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:299 { - yyVAL.node = node.SimpleNode("UseList").Append(yyDollar[1].node) + yyVAL.node = node.NewSimpleNode("UseList").Append(yyDollar[1].node) } case 109: yyDollar = yyS[yypt-3 : yypt+1] @@ -2680,7 +2680,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:305 { - yyVAL.node = node.SimpleNode("UseList").Append(yyDollar[1].node) + yyVAL.node = node.NewSimpleNode("UseList").Append(yyDollar[1].node) } case 111: yyDollar = yyS[yypt-3 : yypt+1] @@ -2692,7 +2692,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:310 { - yyVAL.node = node.SimpleNode("UseList").Append(yyDollar[1].node) + yyVAL.node = node.NewSimpleNode("UseList").Append(yyDollar[1].node) } case 113: yyDollar = yyS[yypt-1 : yypt+1] @@ -2710,13 +2710,13 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:319 { - yyVAL.node = node.SimpleNode("UseElem").Append(yyDollar[1].node) + yyVAL.node = node.NewSimpleNode("UseElem").Append(yyDollar[1].node) } case 116: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:320 { - yyVAL.node = node.SimpleNode("UseElem").Append(yyDollar[1].node).Append(node.SimpleNode("as").Attribute("value", yyDollar[3].token.String())) + yyVAL.node = node.NewSimpleNode("UseElem").Append(yyDollar[1].node).Append(node.NewSimpleNode("as").Attribute("value", yyDollar[3].token.String())) } case 117: yyDollar = yyS[yypt-1 : yypt+1] @@ -2740,7 +2740,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:330 { - yyVAL.node = node.SimpleNode("ConstList").Append(yyDollar[1].node) + yyVAL.node = node.NewSimpleNode("ConstList").Append(yyDollar[1].node) } case 121: yyDollar = yyS[yypt-2 : yypt+1] @@ -2752,7 +2752,7 @@ yydefault: yyDollar = yyS[yypt-0 : yypt+1] //line parser/parser.y:335 { - yyVAL.node = node.SimpleNode("stmt") + yyVAL.node = node.NewSimpleNode("stmt") } case 123: yyDollar = yyS[yypt-1 : yypt+1] @@ -2788,7 +2788,7 @@ yydefault: yyDollar = yyS[yypt-4 : yypt+1] //line parser/parser.y:344 { - yyVAL.node = node.SimpleNode("THaltCompiler") + yyVAL.node = node.NewSimpleNode("THaltCompiler") } case 129: yyDollar = yyS[yypt-3 : yypt+1] @@ -2812,51 +2812,51 @@ yydefault: yyDollar = yyS[yypt-5 : yypt+1] //line parser/parser.y:351 { - yyVAL.node = node.SimpleNode("While"). - Append(node.SimpleNode("expr").Append(yyDollar[3].node)). - Append(node.SimpleNode("stmt").Append(yyDollar[5].node)) + yyVAL.node = node.NewSimpleNode("While"). + Append(node.NewSimpleNode("expr").Append(yyDollar[3].node)). + Append(node.NewSimpleNode("stmt").Append(yyDollar[5].node)) } case 133: yyDollar = yyS[yypt-7 : yypt+1] //line parser/parser.y:357 { - yyVAL.node = node.SimpleNode("DoWhile"). - Append(node.SimpleNode("expr").Append(yyDollar[5].node)). - Append(node.SimpleNode("stmt").Append(yyDollar[2].node)) + yyVAL.node = node.NewSimpleNode("DoWhile"). + Append(node.NewSimpleNode("expr").Append(yyDollar[5].node)). + Append(node.NewSimpleNode("stmt").Append(yyDollar[2].node)) } case 134: yyDollar = yyS[yypt-9 : yypt+1] //line parser/parser.y:363 { - yyVAL.node = node.SimpleNode("For"). - Append(node.SimpleNode("expr1").Append(yyDollar[3].node)). - Append(node.SimpleNode("expr2").Append(yyDollar[5].node)). - Append(node.SimpleNode("expr3").Append(yyDollar[7].node)). - Append(node.SimpleNode("stmt").Append(yyDollar[9].node)) + yyVAL.node = node.NewSimpleNode("For"). + Append(node.NewSimpleNode("expr1").Append(yyDollar[3].node)). + Append(node.NewSimpleNode("expr2").Append(yyDollar[5].node)). + Append(node.NewSimpleNode("expr3").Append(yyDollar[7].node)). + Append(node.NewSimpleNode("stmt").Append(yyDollar[9].node)) } case 135: yyDollar = yyS[yypt-5 : yypt+1] //line parser/parser.y:370 { - yyVAL.node = node.SimpleNode("Switch").Append(node.SimpleNode("expr").Append(yyDollar[3].node)).Append(yyDollar[5].node) + yyVAL.node = node.NewSimpleNode("Switch").Append(node.NewSimpleNode("expr").Append(yyDollar[3].node)).Append(yyDollar[5].node) } case 136: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:371 { - yyVAL.node = node.SimpleNode("Break").Append(yyDollar[2].node) + yyVAL.node = node.NewSimpleNode("Break").Append(yyDollar[2].node) } case 137: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:372 { - yyVAL.node = node.SimpleNode("Continue").Append(yyDollar[2].node) + yyVAL.node = node.NewSimpleNode("Continue").Append(yyDollar[2].node) } case 138: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:373 { - yyVAL.node = node.SimpleNode("Return").Append(yyDollar[2].node) + yyVAL.node = node.NewSimpleNode("Return").Append(yyDollar[2].node) } case 139: yyDollar = yyS[yypt-3 : yypt+1] @@ -2880,7 +2880,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:377 { - yyVAL.node = node.SimpleNode("Echo").Append(node.SimpleNode("InlineHtml").Attribute("value", yyDollar[1].token.String())) + yyVAL.node = node.NewSimpleNode("Echo").Append(node.NewSimpleNode("InlineHtml").Attribute("value", yyDollar[1].token.String())) } case 143: yyDollar = yyS[yypt-2 : yypt+1] @@ -2892,44 +2892,44 @@ yydefault: yyDollar = yyS[yypt-6 : yypt+1] //line parser/parser.y:380 { - yyVAL.node = node.SimpleNode("Unset").Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("Unset").Append(yyDollar[3].node) } case 145: yyDollar = yyS[yypt-7 : yypt+1] //line parser/parser.y:382 { - yyVAL.node = node.SimpleNode("Foreach"). - Append(node.SimpleNode("expr").Append(yyDollar[3].node)). - Append(node.SimpleNode("ForeachVariable").Append(yyDollar[5].node)). + yyVAL.node = node.NewSimpleNode("Foreach"). + Append(node.NewSimpleNode("expr").Append(yyDollar[3].node)). + Append(node.NewSimpleNode("ForeachVariable").Append(yyDollar[5].node)). Append(yyDollar[7].node) } case 146: yyDollar = yyS[yypt-9 : yypt+1] //line parser/parser.y:389 { - yyVAL.node = node.SimpleNode("Foreach"). - Append(node.SimpleNode("expr").Append(yyDollar[3].node)). - Append(node.SimpleNode("ForeachKey").Append(yyDollar[5].node)). - Append(node.SimpleNode("ForeachVariable").Append(yyDollar[7].node)). + yyVAL.node = node.NewSimpleNode("Foreach"). + Append(node.NewSimpleNode("expr").Append(yyDollar[3].node)). + Append(node.NewSimpleNode("ForeachKey").Append(yyDollar[5].node)). + Append(node.NewSimpleNode("ForeachVariable").Append(yyDollar[7].node)). Append(yyDollar[9].node) } case 147: yyDollar = yyS[yypt-5 : yypt+1] //line parser/parser.y:396 { - yyVAL.node = node.SimpleNode("Declare").Append(yyDollar[3].node).Append(yyDollar[5].node) + yyVAL.node = node.NewSimpleNode("Declare").Append(yyDollar[3].node).Append(yyDollar[5].node) } case 148: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:397 { - yyVAL.node = node.SimpleNode("") + yyVAL.node = node.NewSimpleNode("") } case 149: yyDollar = yyS[yypt-6 : yypt+1] //line parser/parser.y:399 { - yyVAL.node = node.SimpleNode("Try"). + yyVAL.node = node.NewSimpleNode("Try"). Append(yyDollar[3].node). Append(yyDollar[5].node). Append(yyDollar[6].node) @@ -2938,37 +2938,37 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:405 { - yyVAL.node = node.SimpleNode("Throw").Append(yyDollar[2].node) + yyVAL.node = node.NewSimpleNode("Throw").Append(yyDollar[2].node) } case 151: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:406 { - yyVAL.node = node.SimpleNode("GoTo").Attribute("Label", yyDollar[2].token.String()) + yyVAL.node = node.NewSimpleNode("GoTo").Attribute("Label", yyDollar[2].token.String()) } case 152: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:407 { - yyVAL.node = node.SimpleNode("Label").Attribute("name", yyDollar[1].token.String()) + yyVAL.node = node.NewSimpleNode("Label").Attribute("name", yyDollar[1].token.String()) } case 153: yyDollar = yyS[yypt-0 : yypt+1] //line parser/parser.y:410 { - yyVAL.node = node.SimpleNode("CatchList") + yyVAL.node = node.NewSimpleNode("CatchList") } case 154: yyDollar = yyS[yypt-9 : yypt+1] //line parser/parser.y:412 { - yyVAL.node = yyDollar[1].node.Append(yyDollar[4].node).Append(node.SimpleNode("Variable").Attribute("name", yyDollar[5].token.String())).Append(yyDollar[8].node) + yyVAL.node = yyDollar[1].node.Append(yyDollar[4].node).Append(node.NewSimpleNode("Variable").Attribute("name", yyDollar[5].token.String())).Append(yyDollar[8].node) } case 155: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:415 { - yyVAL.node = node.SimpleNode("CatchNameList").Append(yyDollar[1].node) + yyVAL.node = node.NewSimpleNode("CatchNameList").Append(yyDollar[1].node) } case 156: yyDollar = yyS[yypt-3 : yypt+1] @@ -2980,19 +2980,19 @@ yydefault: yyDollar = yyS[yypt-0 : yypt+1] //line parser/parser.y:420 { - yyVAL.node = node.SimpleNode("") + yyVAL.node = node.NewSimpleNode("") } case 158: yyDollar = yyS[yypt-4 : yypt+1] //line parser/parser.y:421 { - yyVAL.node = node.SimpleNode("Finnaly").Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("Finnaly").Append(yyDollar[3].node) } case 159: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:425 { - yyVAL.node = node.SimpleNode("UnsetVariablesList").Append(yyDollar[1].node) + yyVAL.node = node.NewSimpleNode("UnsetVariablesList").Append(yyDollar[1].node) } case 160: yyDollar = yyS[yypt-3 : yypt+1] @@ -3010,7 +3010,7 @@ yydefault: yyDollar = yyS[yypt-10 : yypt+1] //line parser/parser.y:435 { - yyVAL.node = node.SimpleNode("Function"). + yyVAL.node = node.NewSimpleNode("Function"). Attribute("name", yyDollar[3].token.String()). Attribute("returns_ref", yyDollar[2].value). Append(yyDollar[5].node). @@ -3045,28 +3045,28 @@ yydefault: yyDollar = yyS[yypt-8 : yypt+1] //line parser/parser.y:457 { - yyVAL.node = node.SimpleNode("Class"). + yyVAL.node = node.NewSimpleNode("Class"). Attribute("name", yyDollar[3].token.String()). Append(yyDollar[1].node). - Append(node.SimpleNode("Extends").Append(yyDollar[4].node)). - Append(node.SimpleNode("Implements").Append(yyDollar[5].node)). + Append(node.NewSimpleNode("Extends").Append(yyDollar[4].node)). + Append(node.NewSimpleNode("Implements").Append(yyDollar[5].node)). Append(yyDollar[7].node) } case 168: yyDollar = yyS[yypt-7 : yypt+1] //line parser/parser.y:466 { - yyVAL.node = node.SimpleNode("Class"). + yyVAL.node = node.NewSimpleNode("Class"). Attribute("name", yyDollar[2].token.String()). - Append(node.SimpleNode("Extends").Append(yyDollar[3].node)). - Append(node.SimpleNode("Implements").Append(yyDollar[4].node)). + Append(node.NewSimpleNode("Extends").Append(yyDollar[3].node)). + Append(node.NewSimpleNode("Implements").Append(yyDollar[4].node)). Append(yyDollar[6].node) } case 169: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:476 { - yyVAL.node = node.SimpleNode("Class").Attribute(yyDollar[1].value, "true") + yyVAL.node = node.NewSimpleNode("Class").Attribute(yyDollar[1].value, "true") } case 170: yyDollar = yyS[yypt-2 : yypt+1] @@ -3090,22 +3090,22 @@ yydefault: yyDollar = yyS[yypt-5 : yypt+1] //line parser/parser.y:486 { - yyVAL.node = node.SimpleNode("Trait").Attribute("name", yyDollar[2].token.String()).Append(yyDollar[4].node) + yyVAL.node = node.NewSimpleNode("Trait").Attribute("name", yyDollar[2].token.String()).Append(yyDollar[4].node) } case 174: yyDollar = yyS[yypt-6 : yypt+1] //line parser/parser.y:491 { - yyVAL.node = node.SimpleNode("Interface"). + yyVAL.node = node.NewSimpleNode("Interface"). Attribute("name", yyDollar[2].token.String()). - Append(node.SimpleNode("Extends").Append(yyDollar[3].node)). + Append(node.NewSimpleNode("Extends").Append(yyDollar[3].node)). Append(yyDollar[5].node) } case 175: yyDollar = yyS[yypt-0 : yypt+1] //line parser/parser.y:500 { - yyVAL.node = node.SimpleNode("") + yyVAL.node = node.NewSimpleNode("") } case 176: yyDollar = yyS[yypt-2 : yypt+1] @@ -3117,7 +3117,7 @@ yydefault: yyDollar = yyS[yypt-0 : yypt+1] //line parser/parser.y:505 { - yyVAL.node = node.SimpleNode("") + yyVAL.node = node.NewSimpleNode("") } case 178: yyDollar = yyS[yypt-2 : yypt+1] @@ -3129,7 +3129,7 @@ yydefault: yyDollar = yyS[yypt-0 : yypt+1] //line parser/parser.y:510 { - yyVAL.node = node.SimpleNode("") + yyVAL.node = node.NewSimpleNode("") } case 180: yyDollar = yyS[yypt-2 : yypt+1] @@ -3147,19 +3147,19 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:516 { - yyVAL.node = node.SimpleNode("Ref").Append(yyDollar[2].node) + yyVAL.node = node.NewSimpleNode("Ref").Append(yyDollar[2].node) } case 183: yyDollar = yyS[yypt-4 : yypt+1] //line parser/parser.y:517 { - yyVAL.node = node.SimpleNode("List").Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("List").Append(yyDollar[3].node) } case 184: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:518 { - yyVAL.node = node.SimpleNode("ShortList").Append(yyDollar[2].node) + yyVAL.node = node.NewSimpleNode("ShortList").Append(yyDollar[2].node) } case 185: yyDollar = yyS[yypt-1 : yypt+1] @@ -3225,19 +3225,19 @@ yydefault: yyDollar = yyS[yypt-0 : yypt+1] //line parser/parser.y:544 { - yyVAL.node = node.SimpleNode("CaseList") + yyVAL.node = node.NewSimpleNode("CaseList") } case 196: yyDollar = yyS[yypt-5 : yypt+1] //line parser/parser.y:546 { - yyVAL.node = yyDollar[1].node.Append(node.SimpleNode("Case").Append(node.SimpleNode("expr").Append(yyDollar[3].node)).Append(yyDollar[5].node)) + yyVAL.node = yyDollar[1].node.Append(node.NewSimpleNode("Case").Append(node.NewSimpleNode("expr").Append(yyDollar[3].node)).Append(yyDollar[5].node)) } case 197: yyDollar = yyS[yypt-4 : yypt+1] //line parser/parser.y:550 { - yyVAL.node = yyDollar[1].node.Append(node.SimpleNode("Default").Append(yyDollar[4].node)) + yyVAL.node = yyDollar[1].node.Append(node.NewSimpleNode("Default").Append(yyDollar[4].node)) } case 200: yyDollar = yyS[yypt-1 : yypt+1] @@ -3255,13 +3255,13 @@ yydefault: yyDollar = yyS[yypt-5 : yypt+1] //line parser/parser.y:567 { - yyVAL.node = node.SimpleNode("If").Append(node.SimpleNode("expr").Append(yyDollar[3].node)).Append(node.SimpleNode("stmt").Append(yyDollar[5].node)) + yyVAL.node = node.NewSimpleNode("If").Append(node.NewSimpleNode("expr").Append(yyDollar[3].node)).Append(node.NewSimpleNode("stmt").Append(yyDollar[5].node)) } case 203: yyDollar = yyS[yypt-6 : yypt+1] //line parser/parser.y:571 { - yyVAL.node = yyDollar[1].node.Append(node.SimpleNode("ElseIf").Append(node.SimpleNode("expr").Append(yyDollar[4].node)).Append(node.SimpleNode("stmt").Append(yyDollar[6].node))) + yyVAL.node = yyDollar[1].node.Append(node.NewSimpleNode("ElseIf").Append(node.NewSimpleNode("expr").Append(yyDollar[4].node)).Append(node.NewSimpleNode("stmt").Append(yyDollar[6].node))) } case 204: yyDollar = yyS[yypt-1 : yypt+1] @@ -3273,19 +3273,19 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:579 { - yyVAL.node = yyDollar[1].node.Append(node.SimpleNode("Else").Append(node.SimpleNode("stmt").Append(yyDollar[3].node))) + yyVAL.node = yyDollar[1].node.Append(node.NewSimpleNode("Else").Append(node.NewSimpleNode("stmt").Append(yyDollar[3].node))) } case 206: yyDollar = yyS[yypt-6 : yypt+1] //line parser/parser.y:586 { - yyVAL.node = node.SimpleNode("AltIf").Append(node.SimpleNode("expr").Append(yyDollar[3].node)).Append(node.SimpleNode("stmt").Append(yyDollar[6].node)) + yyVAL.node = node.NewSimpleNode("AltIf").Append(node.NewSimpleNode("expr").Append(yyDollar[3].node)).Append(node.NewSimpleNode("stmt").Append(yyDollar[6].node)) } case 207: yyDollar = yyS[yypt-7 : yypt+1] //line parser/parser.y:590 { - yyVAL.node = yyDollar[1].node.Append(node.SimpleNode("AltElseIf").Append(node.SimpleNode("expr").Append(yyDollar[4].node)).Append(node.SimpleNode("stmt").Append(yyDollar[7].node))) + yyVAL.node = yyDollar[1].node.Append(node.NewSimpleNode("AltElseIf").Append(node.NewSimpleNode("expr").Append(yyDollar[4].node)).Append(node.NewSimpleNode("stmt").Append(yyDollar[7].node))) } case 208: yyDollar = yyS[yypt-3 : yypt+1] @@ -3297,7 +3297,7 @@ yydefault: yyDollar = yyS[yypt-6 : yypt+1] //line parser/parser.y:598 { - yyVAL.node = yyDollar[1].node.Append(node.SimpleNode("AltElse").Append(node.SimpleNode("stmt").Append(yyDollar[4].node))) + yyVAL.node = yyDollar[1].node.Append(node.NewSimpleNode("AltElse").Append(node.NewSimpleNode("stmt").Append(yyDollar[4].node))) } case 210: yyDollar = yyS[yypt-1 : yypt+1] @@ -3309,13 +3309,13 @@ yydefault: yyDollar = yyS[yypt-0 : yypt+1] //line parser/parser.y:605 { - yyVAL.node = node.SimpleNode("Parameter list") + yyVAL.node = node.NewSimpleNode("Parameter list") } case 212: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:609 { - yyVAL.node = node.SimpleNode("Parameter list").Append(yyDollar[1].node) + yyVAL.node = node.NewSimpleNode("Parameter list").Append(yyDollar[1].node) } case 213: yyDollar = yyS[yypt-3 : yypt+1] @@ -3327,7 +3327,7 @@ yydefault: yyDollar = yyS[yypt-4 : yypt+1] //line parser/parser.y:615 { - yyVAL.node = node.SimpleNode("Parameter"). + yyVAL.node = node.NewSimpleNode("Parameter"). Append(yyDollar[1].node). Attribute("is_reference", yyDollar[2].value). Attribute("is_variadic", yyDollar[3].value). @@ -3337,7 +3337,7 @@ yydefault: yyDollar = yyS[yypt-6 : yypt+1] //line parser/parser.y:623 { - yyVAL.node = node.SimpleNode("Parameter"). + yyVAL.node = node.NewSimpleNode("Parameter"). Append(yyDollar[1].node). Attribute("is_reference", yyDollar[2].value). Attribute("is_variadic", yyDollar[3].value). @@ -3348,7 +3348,7 @@ yydefault: yyDollar = yyS[yypt-0 : yypt+1] //line parser/parser.y:634 { - yyVAL.node = node.SimpleNode("No type") + yyVAL.node = node.NewSimpleNode("No type") } case 217: yyDollar = yyS[yypt-1 : yypt+1] @@ -3373,13 +3373,13 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:644 { - yyVAL.node = node.SimpleNode("array type") + yyVAL.node = node.NewSimpleNode("array type") } case 221: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:645 { - yyVAL.node = node.SimpleNode("callable type") + yyVAL.node = node.NewSimpleNode("callable type") } case 222: yyDollar = yyS[yypt-1 : yypt+1] @@ -3391,7 +3391,7 @@ yydefault: yyDollar = yyS[yypt-0 : yypt+1] //line parser/parser.y:650 { - yyVAL.node = node.SimpleNode("No return type") + yyVAL.node = node.NewSimpleNode("No return type") } case 224: yyDollar = yyS[yypt-2 : yypt+1] @@ -3403,7 +3403,7 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:655 { - yyVAL.node = node.SimpleNode("ArgumentList") + yyVAL.node = node.NewSimpleNode("ArgumentList") } case 226: yyDollar = yyS[yypt-4 : yypt+1] @@ -3415,7 +3415,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:660 { - yyVAL.node = node.SimpleNode("ArgumentList").Append(yyDollar[1].node) + yyVAL.node = node.NewSimpleNode("ArgumentList").Append(yyDollar[1].node) } case 228: yyDollar = yyS[yypt-3 : yypt+1] @@ -3433,7 +3433,7 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:666 { - yyVAL.node = node.SimpleNode("Unpack").Append(yyDollar[2].node) + yyVAL.node = node.NewSimpleNode("Unpack").Append(yyDollar[2].node) } case 231: yyDollar = yyS[yypt-3 : yypt+1] @@ -3445,7 +3445,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:671 { - yyVAL.node = node.SimpleNode("GlobalVarList").Append(yyDollar[1].node) + yyVAL.node = node.NewSimpleNode("GlobalVarList").Append(yyDollar[1].node) } case 233: yyDollar = yyS[yypt-1 : yypt+1] @@ -3463,19 +3463,19 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:680 { - yyVAL.node = node.SimpleNode("StaticVarList").Append(yyDollar[1].node) + yyVAL.node = node.NewSimpleNode("StaticVarList").Append(yyDollar[1].node) } case 236: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:684 { - yyVAL.node = node.SimpleNode("StaticVariable").Attribute("Name", yyDollar[1].token.String()) + yyVAL.node = node.NewSimpleNode("StaticVariable").Attribute("Name", yyDollar[1].token.String()) } case 237: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:685 { - yyVAL.node = node.SimpleNode("StaticVariable").Attribute("Name", yyDollar[1].token.String()).Append(node.SimpleNode("expr").Append(yyDollar[3].node)) + yyVAL.node = node.NewSimpleNode("StaticVariable").Attribute("Name", yyDollar[1].token.String()).Append(node.NewSimpleNode("expr").Append(yyDollar[3].node)) } case 238: yyDollar = yyS[yypt-2 : yypt+1] @@ -3487,7 +3487,7 @@ yydefault: yyDollar = yyS[yypt-0 : yypt+1] //line parser/parser.y:690 { - yyVAL.node = node.SimpleNode("Stmt") + yyVAL.node = node.NewSimpleNode("Stmt") } case 240: yyDollar = yyS[yypt-3 : yypt+1] @@ -3505,15 +3505,15 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:696 { - yyVAL.node = node.SimpleNode("Use").Append(yyDollar[2].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("Use").Append(yyDollar[2].node).Append(yyDollar[3].node) } case 243: yyDollar = yyS[yypt-9 : yypt+1] //line parser/parser.y:699 { - yyVAL.node = node.SimpleNode("Function"). + yyVAL.node = node.NewSimpleNode("Function"). Append(yyDollar[1].node). - Append(node.SimpleNode("name").Append(yyDollar[4].node)). + Append(node.NewSimpleNode("name").Append(yyDollar[4].node)). Attribute("returns_ref", yyDollar[3].value). Append(yyDollar[6].node). Append(yyDollar[8].node). @@ -3523,7 +3523,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:711 { - yyVAL.node = node.SimpleNode("NameList").Append(yyDollar[1].node) + yyVAL.node = node.NewSimpleNode("NameList").Append(yyDollar[1].node) } case 245: yyDollar = yyS[yypt-3 : yypt+1] @@ -3535,13 +3535,13 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:716 { - yyVAL.node = node.SimpleNode("") + yyVAL.node = node.NewSimpleNode("") } case 247: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:717 { - yyVAL.node = node.SimpleNode("") + yyVAL.node = node.NewSimpleNode("") } case 248: yyDollar = yyS[yypt-3 : yypt+1] @@ -3553,7 +3553,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:722 { - yyVAL.node = node.SimpleNode("TraitAdaptionList").Append(yyDollar[1].node) + yyVAL.node = node.NewSimpleNode("TraitAdaptionList").Append(yyDollar[1].node) } case 250: yyDollar = yyS[yypt-2 : yypt+1] @@ -3577,19 +3577,19 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:733 { - yyVAL.node = node.SimpleNode("TraitPrecedence").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("TraitPrecedence").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 254: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:737 { - yyVAL.node = yyDollar[1].node.Append(node.SimpleNode("as").Attribute("value", yyDollar[3].token.String())) + yyVAL.node = yyDollar[1].node.Append(node.NewSimpleNode("as").Attribute("value", yyDollar[3].token.String())) } case 255: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:739 { - yyVAL.node = yyDollar[1].node.Append(node.SimpleNode("as").Append(node.SimpleNode("reservedNonModifiers"))) + yyVAL.node = yyDollar[1].node.Append(node.NewSimpleNode("as").Append(node.NewSimpleNode("reservedNonModifiers"))) } case 256: yyDollar = yyS[yypt-4 : yypt+1] @@ -3607,7 +3607,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:746 { - yyVAL.node = node.SimpleNode("TraitMethodRef").Append(yyDollar[1].node) + yyVAL.node = node.NewSimpleNode("TraitMethodRef").Append(yyDollar[1].node) } case 259: yyDollar = yyS[yypt-1 : yypt+1] @@ -3619,13 +3619,13 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:751 { - yyVAL.node = node.SimpleNode("TraitMethodRef").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("TraitMethodRef").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 261: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:755 { - yyVAL.node = node.SimpleNode("") + yyVAL.node = node.NewSimpleNode("") } case 262: yyDollar = yyS[yypt-3 : yypt+1] @@ -3643,13 +3643,13 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:761 { - yyVAL.node = node.SimpleNode("VarMemberModifier") + yyVAL.node = node.NewSimpleNode("VarMemberModifier") } case 265: yyDollar = yyS[yypt-0 : yypt+1] //line parser/parser.y:765 { - yyVAL.node = node.SimpleNode("PublicMemberModifier") + yyVAL.node = node.NewSimpleNode("PublicMemberModifier") } case 266: yyDollar = yyS[yypt-1 : yypt+1] @@ -3673,37 +3673,37 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:775 { - yyVAL.node = node.SimpleNode("PublicMemberModifier") + yyVAL.node = node.NewSimpleNode("PublicMemberModifier") } case 270: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:776 { - yyVAL.node = node.SimpleNode("ProtectedMemberModifier") + yyVAL.node = node.NewSimpleNode("ProtectedMemberModifier") } case 271: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:777 { - yyVAL.node = node.SimpleNode("PrivateMemberModifier") + yyVAL.node = node.NewSimpleNode("PrivateMemberModifier") } case 272: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:778 { - yyVAL.node = node.SimpleNode("StaticMemberModifier") + yyVAL.node = node.NewSimpleNode("StaticMemberModifier") } case 273: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:779 { - yyVAL.node = node.SimpleNode("AbstractMemberModifier") + yyVAL.node = node.NewSimpleNode("AbstractMemberModifier") } case 274: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:780 { - yyVAL.node = node.SimpleNode("FinalMemberModifier") + yyVAL.node = node.NewSimpleNode("FinalMemberModifier") } case 275: yyDollar = yyS[yypt-3 : yypt+1] @@ -3715,19 +3715,19 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:785 { - yyVAL.node = node.SimpleNode("PropertyList").Append(yyDollar[1].node) + yyVAL.node = node.NewSimpleNode("PropertyList").Append(yyDollar[1].node) } case 277: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:789 { - yyVAL.node = node.SimpleNode("Property").Attribute("name", yyDollar[1].token.String()) + yyVAL.node = node.NewSimpleNode("Property").Attribute("name", yyDollar[1].token.String()) } case 278: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:790 { - yyVAL.node = node.SimpleNode("Property").Attribute("name", yyDollar[1].token.String()).Append(node.SimpleNode("Default").Append(yyDollar[3].node)) + yyVAL.node = node.NewSimpleNode("Property").Attribute("name", yyDollar[1].token.String()).Append(node.NewSimpleNode("Default").Append(yyDollar[3].node)) } case 279: yyDollar = yyS[yypt-3 : yypt+1] @@ -3739,19 +3739,19 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:795 { - yyVAL.node = node.SimpleNode("ConstList").Append(yyDollar[1].node) + yyVAL.node = node.NewSimpleNode("ConstList").Append(yyDollar[1].node) } case 281: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:799 { - yyVAL.node = node.SimpleNode("Const").Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("Const").Append(yyDollar[3].node) } case 282: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:803 { - yyVAL.node = node.SimpleNode("Const").Attribute("name", yyDollar[1].token.String()).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("Const").Attribute("name", yyDollar[1].token.String()).Append(yyDollar[3].node) } case 283: yyDollar = yyS[yypt-3 : yypt+1] @@ -3763,19 +3763,19 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:808 { - yyVAL.node = node.SimpleNode("EchoList").Append(yyDollar[1].node) + yyVAL.node = node.NewSimpleNode("EchoList").Append(yyDollar[1].node) } case 285: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:812 { - yyVAL.node = node.SimpleNode("Echo").Append(yyDollar[1].node) + yyVAL.node = node.NewSimpleNode("Echo").Append(yyDollar[1].node) } case 286: yyDollar = yyS[yypt-0 : yypt+1] //line parser/parser.y:816 { - yyVAL.node = node.SimpleNode("") + yyVAL.node = node.NewSimpleNode("") } case 287: yyDollar = yyS[yypt-1 : yypt+1] @@ -3793,13 +3793,13 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:821 { - yyVAL.node = node.SimpleNode("ExpressionList").Append(yyDollar[1].node) + yyVAL.node = node.NewSimpleNode("ExpressionList").Append(yyDollar[1].node) } case 290: yyDollar = yyS[yypt-7 : yypt+1] //line parser/parser.y:826 { - yyVAL.node = node.SimpleNode("AnonymousClass"). + yyVAL.node = node.NewSimpleNode("AnonymousClass"). Attribute("name", yyDollar[1].token.String()). Append(yyDollar[2].node). Append(yyDollar[3].node). @@ -3810,325 +3810,325 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:837 { - yyVAL.node = node.SimpleNode("New").Append(yyDollar[2].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("New").Append(yyDollar[2].node).Append(yyDollar[3].node) } case 292: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:838 { - yyVAL.node = node.SimpleNode("New").Append(yyDollar[2].node) + yyVAL.node = node.NewSimpleNode("New").Append(yyDollar[2].node) } case 293: yyDollar = yyS[yypt-6 : yypt+1] //line parser/parser.y:842 { - yyVAL.node = node.SimpleNode("Assign").Append(yyDollar[3].node).Append(yyDollar[6].node) + yyVAL.node = node.NewSimpleNode("Assign").Append(yyDollar[3].node).Append(yyDollar[6].node) } case 294: yyDollar = yyS[yypt-5 : yypt+1] //line parser/parser.y:843 { - yyVAL.node = node.SimpleNode("Assign").Append(yyDollar[2].node).Append(yyDollar[5].node) + yyVAL.node = node.NewSimpleNode("Assign").Append(yyDollar[2].node).Append(yyDollar[5].node) } case 295: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:844 { - yyVAL.node = node.SimpleNode("Assign").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("Assign").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 296: yyDollar = yyS[yypt-4 : yypt+1] //line parser/parser.y:845 { - yyVAL.node = node.SimpleNode("AssignRef").Append(yyDollar[1].node).Append(yyDollar[4].node) + yyVAL.node = node.NewSimpleNode("AssignRef").Append(yyDollar[1].node).Append(yyDollar[4].node) } case 297: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:846 { - yyVAL.node = node.SimpleNode("Clone").Append(yyDollar[2].node) + yyVAL.node = node.NewSimpleNode("Clone").Append(yyDollar[2].node) } case 298: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:847 { - yyVAL.node = node.SimpleNode("AssignAdd").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("AssignAdd").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 299: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:848 { - yyVAL.node = node.SimpleNode("AssignSub").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("AssignSub").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 300: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:849 { - yyVAL.node = node.SimpleNode("AssignMul").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("AssignMul").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 301: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:850 { - yyVAL.node = node.SimpleNode("AssignPow").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("AssignPow").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 302: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:851 { - yyVAL.node = node.SimpleNode("AssignDiv").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("AssignDiv").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 303: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:852 { - yyVAL.node = node.SimpleNode("AssignConcat").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("AssignConcat").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 304: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:853 { - yyVAL.node = node.SimpleNode("AssignMod").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("AssignMod").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 305: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:854 { - yyVAL.node = node.SimpleNode("AssignAnd").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("AssignAnd").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 306: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:855 { - yyVAL.node = node.SimpleNode("AssignOr").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("AssignOr").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 307: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:856 { - yyVAL.node = node.SimpleNode("AssignXor").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("AssignXor").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 308: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:857 { - yyVAL.node = node.SimpleNode("AssignShiftLeft").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("AssignShiftLeft").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 309: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:858 { - yyVAL.node = node.SimpleNode("AssignShiftRight").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("AssignShiftRight").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 310: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:859 { - yyVAL.node = node.SimpleNode("PostIncrement").Append(yyDollar[1].node) + yyVAL.node = node.NewSimpleNode("PostIncrement").Append(yyDollar[1].node) } case 311: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:860 { - yyVAL.node = node.SimpleNode("PreIncrement").Append(yyDollar[2].node) + yyVAL.node = node.NewSimpleNode("PreIncrement").Append(yyDollar[2].node) } case 312: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:861 { - yyVAL.node = node.SimpleNode("PostDecrement").Append(yyDollar[1].node) + yyVAL.node = node.NewSimpleNode("PostDecrement").Append(yyDollar[1].node) } case 313: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:862 { - yyVAL.node = node.SimpleNode("PreDecrement").Append(yyDollar[2].node) + yyVAL.node = node.NewSimpleNode("PreDecrement").Append(yyDollar[2].node) } case 314: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:863 { - yyVAL.node = node.SimpleNode("Or").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("Or").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 315: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:864 { - yyVAL.node = node.SimpleNode("And").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("And").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 316: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:865 { - yyVAL.node = node.SimpleNode("Or").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("Or").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 317: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:866 { - yyVAL.node = node.SimpleNode("And").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("And").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 318: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:867 { - yyVAL.node = node.SimpleNode("Xor").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("Xor").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 319: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:868 { - yyVAL.node = node.SimpleNode("BitwiseOr").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("BitwiseOr").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 320: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:869 { - yyVAL.node = node.SimpleNode("BitwiseAnd").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("BitwiseAnd").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 321: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:870 { - yyVAL.node = node.SimpleNode("BitwiseXor").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("BitwiseXor").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 322: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:871 { - yyVAL.node = node.SimpleNode("Concat").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("Concat").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 323: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:872 { - yyVAL.node = node.SimpleNode("Add").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("Add").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 324: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:873 { - yyVAL.node = node.SimpleNode("Sub").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("Sub").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 325: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:874 { - yyVAL.node = node.SimpleNode("Mul").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("Mul").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 326: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:875 { - yyVAL.node = node.SimpleNode("Pow").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("Pow").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 327: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:876 { - yyVAL.node = node.SimpleNode("Div").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("Div").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 328: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:877 { - yyVAL.node = node.SimpleNode("Mod").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("Mod").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 329: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:878 { - yyVAL.node = node.SimpleNode("ShiftLeft").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("ShiftLeft").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 330: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:879 { - yyVAL.node = node.SimpleNode("ShiftRight").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("ShiftRight").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 331: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:880 { - yyVAL.node = node.SimpleNode("UnaryPlus").Append(yyDollar[2].node) + yyVAL.node = node.NewSimpleNode("UnaryPlus").Append(yyDollar[2].node) } case 332: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:881 { - yyVAL.node = node.SimpleNode("UnaryMinus").Append(yyDollar[2].node) + yyVAL.node = node.NewSimpleNode("UnaryMinus").Append(yyDollar[2].node) } case 333: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:882 { - yyVAL.node = node.SimpleNode("BooleanNot").Append(yyDollar[2].node) + yyVAL.node = node.NewSimpleNode("BooleanNot").Append(yyDollar[2].node) } case 334: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:883 { - yyVAL.node = node.SimpleNode("BitwiseNot").Append(yyDollar[2].node) + yyVAL.node = node.NewSimpleNode("BitwiseNot").Append(yyDollar[2].node) } case 335: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:884 { - yyVAL.node = node.SimpleNode("Identical").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("Identical").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 336: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:885 { - yyVAL.node = node.SimpleNode("NotIdentical").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("NotIdentical").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 337: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:886 { - yyVAL.node = node.SimpleNode("Equal").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("Equal").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 338: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:887 { - yyVAL.node = node.SimpleNode("NotEqual").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("NotEqual").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 339: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:888 { - yyVAL.node = node.SimpleNode("Smaller").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("Smaller").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 340: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:889 { - yyVAL.node = node.SimpleNode("SmallerOrEqual").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("SmallerOrEqual").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 341: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:890 { - yyVAL.node = node.SimpleNode("Greater").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("Greater").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 342: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:891 { - yyVAL.node = node.SimpleNode("GreaterOrEqual").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("GreaterOrEqual").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 343: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:892 { - yyVAL.node = node.SimpleNode("Spaceship").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("Spaceship").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 344: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:893 { - yyVAL.node = node.SimpleNode("InstanceOf").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("InstanceOf").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 345: yyDollar = yyS[yypt-3 : yypt+1] @@ -4146,19 +4146,19 @@ yydefault: yyDollar = yyS[yypt-5 : yypt+1] //line parser/parser.y:896 { - yyVAL.node = node.SimpleNode("Ternary").Append(yyDollar[1].node).Append(yyDollar[3].node).Append(yyDollar[5].node) + yyVAL.node = node.NewSimpleNode("Ternary").Append(yyDollar[1].node).Append(yyDollar[3].node).Append(yyDollar[5].node) } case 348: yyDollar = yyS[yypt-4 : yypt+1] //line parser/parser.y:897 { - yyVAL.node = node.SimpleNode("Ternary").Append(yyDollar[1].node).Append(yyDollar[4].node) + yyVAL.node = node.NewSimpleNode("Ternary").Append(yyDollar[1].node).Append(yyDollar[4].node) } case 349: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:898 { - yyVAL.node = node.SimpleNode("Coalesce").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("Coalesce").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 350: yyDollar = yyS[yypt-1 : yypt+1] @@ -4170,55 +4170,55 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:900 { - yyVAL.node = node.SimpleNode("CastInt").Append(yyDollar[2].node) + yyVAL.node = node.NewSimpleNode("CastInt").Append(yyDollar[2].node) } case 352: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:901 { - yyVAL.node = node.SimpleNode("CastDouble").Append(yyDollar[2].node) + yyVAL.node = node.NewSimpleNode("CastDouble").Append(yyDollar[2].node) } case 353: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:902 { - yyVAL.node = node.SimpleNode("CastString").Append(yyDollar[2].node) + yyVAL.node = node.NewSimpleNode("CastString").Append(yyDollar[2].node) } case 354: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:903 { - yyVAL.node = node.SimpleNode("CastArray").Append(yyDollar[2].node) + yyVAL.node = node.NewSimpleNode("CastArray").Append(yyDollar[2].node) } case 355: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:904 { - yyVAL.node = node.SimpleNode("CastObject").Append(yyDollar[2].node) + yyVAL.node = node.NewSimpleNode("CastObject").Append(yyDollar[2].node) } case 356: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:905 { - yyVAL.node = node.SimpleNode("CastBool").Append(yyDollar[2].node) + yyVAL.node = node.NewSimpleNode("CastBool").Append(yyDollar[2].node) } case 357: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:906 { - yyVAL.node = node.SimpleNode("CastUnset").Append(yyDollar[2].node) + yyVAL.node = node.NewSimpleNode("CastUnset").Append(yyDollar[2].node) } case 358: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:907 { - yyVAL.node = node.SimpleNode("Exit").Append(yyDollar[2].node) + yyVAL.node = node.NewSimpleNode("Exit").Append(yyDollar[2].node) } case 359: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:908 { - yyVAL.node = node.SimpleNode("Silence").Append(yyDollar[2].node) + yyVAL.node = node.NewSimpleNode("Silence").Append(yyDollar[2].node) } case 360: yyDollar = yyS[yypt-1 : yypt+1] @@ -4236,37 +4236,37 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:911 { - yyVAL.node = node.SimpleNode("Print").Append(yyDollar[2].node) + yyVAL.node = node.NewSimpleNode("Print").Append(yyDollar[2].node) } case 363: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:912 { - yyVAL.node = node.SimpleNode("Yield") + yyVAL.node = node.NewSimpleNode("Yield") } case 364: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:913 { - yyVAL.node = node.SimpleNode("Yield").Append(yyDollar[2].node) + yyVAL.node = node.NewSimpleNode("Yield").Append(yyDollar[2].node) } case 365: yyDollar = yyS[yypt-4 : yypt+1] //line parser/parser.y:914 { - yyVAL.node = node.SimpleNode("Yield").Append(yyDollar[2].node).Append(yyDollar[4].node) + yyVAL.node = node.NewSimpleNode("Yield").Append(yyDollar[2].node).Append(yyDollar[4].node) } case 366: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:915 { - yyVAL.node = node.SimpleNode("YieldFrom").Append(yyDollar[2].node) + yyVAL.node = node.NewSimpleNode("YieldFrom").Append(yyDollar[2].node) } case 367: yyDollar = yyS[yypt-10 : yypt+1] //line parser/parser.y:917 { - yyVAL.node = node.SimpleNode("Closure"). + yyVAL.node = node.NewSimpleNode("Closure"). Attribute("returns_ref", yyDollar[2].value). Append(yyDollar[4].node). Append(yyDollar[6].node). @@ -4277,7 +4277,7 @@ yydefault: yyDollar = yyS[yypt-11 : yypt+1] //line parser/parser.y:926 { - yyVAL.node = node.SimpleNode("StaticClosure"). + yyVAL.node = node.NewSimpleNode("StaticClosure"). Attribute("returns_ref", yyDollar[3].value). Append(yyDollar[5].node). Append(yyDollar[7].node). @@ -4300,7 +4300,7 @@ yydefault: yyDollar = yyS[yypt-0 : yypt+1] //line parser/parser.y:942 { - yyVAL.node = node.SimpleNode("") + yyVAL.node = node.NewSimpleNode("") } case 372: yyDollar = yyS[yypt-4 : yypt+1] @@ -4318,49 +4318,49 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:948 { - yyVAL.node = node.SimpleNode("ClosureUses").Append(yyDollar[1].node) + yyVAL.node = node.NewSimpleNode("ClosureUses").Append(yyDollar[1].node) } case 375: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:952 { - yyVAL.node = node.SimpleNode("Variable").Attribute("value", yyDollar[1].token.String()) + yyVAL.node = node.NewSimpleNode("Variable").Attribute("value", yyDollar[1].token.String()) } case 376: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:953 { - yyVAL.node = node.SimpleNode("Variable").Attribute("value", yyDollar[2].token.String()).Attribute("ref", "true") + yyVAL.node = node.NewSimpleNode("Variable").Attribute("value", yyDollar[2].token.String()).Attribute("ref", "true") } case 377: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:957 { - yyVAL.node = node.SimpleNode("FunctionCall").Append(yyDollar[1].node).Append(yyDollar[2].node) + yyVAL.node = node.NewSimpleNode("FunctionCall").Append(yyDollar[1].node).Append(yyDollar[2].node) } case 378: yyDollar = yyS[yypt-4 : yypt+1] //line parser/parser.y:959 { - yyVAL.node = node.SimpleNode("StaticCall").Append(yyDollar[1].node).Append(yyDollar[3].node).Append(yyDollar[4].node) + yyVAL.node = node.NewSimpleNode("StaticCall").Append(yyDollar[1].node).Append(yyDollar[3].node).Append(yyDollar[4].node) } case 379: yyDollar = yyS[yypt-4 : yypt+1] //line parser/parser.y:961 { - yyVAL.node = node.SimpleNode("StaticCall").Append(yyDollar[1].node).Append(yyDollar[3].node).Append(yyDollar[4].node) + yyVAL.node = node.NewSimpleNode("StaticCall").Append(yyDollar[1].node).Append(yyDollar[3].node).Append(yyDollar[4].node) } case 380: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:962 { - yyVAL.node = node.SimpleNode("Call").Append(yyDollar[1].node).Append(yyDollar[2].node) + yyVAL.node = node.NewSimpleNode("Call").Append(yyDollar[1].node).Append(yyDollar[2].node) } case 381: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:966 { - yyVAL.node = node.SimpleNode("Static") + yyVAL.node = node.NewSimpleNode("Static") } case 382: yyDollar = yyS[yypt-1 : yypt+1] @@ -4384,7 +4384,7 @@ yydefault: yyDollar = yyS[yypt-0 : yypt+1] //line parser/parser.y:976 { - yyVAL.node = node.SimpleNode("") + yyVAL.node = node.NewSimpleNode("") } case 386: yyDollar = yyS[yypt-3 : yypt+1] @@ -4414,7 +4414,7 @@ yydefault: yyDollar = yyS[yypt-0 : yypt+1] //line parser/parser.y:987 { - yyVAL.node = node.SimpleNode("ArgumentList") + yyVAL.node = node.NewSimpleNode("ArgumentList") } case 391: yyDollar = yyS[yypt-1 : yypt+1] @@ -4510,7 +4510,7 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:1011 { - yyVAL.node = node.SimpleNode("Scalar").Append(node.TokenNode("Heredoc", yyDollar[1].token)).Append(node.TokenNode("HeredocEnd", yyDollar[2].token)) + yyVAL.node = node.NewSimpleNode("Scalar").Append(node.TokenNode("Heredoc", yyDollar[1].token)).Append(node.TokenNode("HeredocEnd", yyDollar[2].token)) } case 407: yyDollar = yyS[yypt-3 : yypt+1] @@ -4540,19 +4540,19 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:1019 { - yyVAL.node = node.SimpleNode("Const").Append(yyDollar[1].node) + yyVAL.node = node.NewSimpleNode("Const").Append(yyDollar[1].node) } case 412: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:1020 { - yyVAL.node = node.SimpleNode("Const").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("Const").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 413: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:1022 { - yyVAL.node = node.SimpleNode("Const").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("Const").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 414: yyDollar = yyS[yypt-1 : yypt+1] @@ -4570,7 +4570,7 @@ yydefault: yyDollar = yyS[yypt-0 : yypt+1] //line parser/parser.y:1031 { - yyVAL.node = node.SimpleNode("") + yyVAL.node = node.NewSimpleNode("") } case 417: yyDollar = yyS[yypt-1 : yypt+1] @@ -4630,25 +4630,25 @@ yydefault: yyDollar = yyS[yypt-4 : yypt+1] //line parser/parser.y:1053 { - yyVAL.node = node.SimpleNode("Dim").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("Dim").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 427: yyDollar = yyS[yypt-4 : yypt+1] //line parser/parser.y:1054 { - yyVAL.node = node.SimpleNode("Dim").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("Dim").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 428: yyDollar = yyS[yypt-4 : yypt+1] //line parser/parser.y:1055 { - yyVAL.node = node.SimpleNode("Dim").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("Dim").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 429: yyDollar = yyS[yypt-4 : yypt+1] //line parser/parser.y:1057 { - yyVAL.node = node.SimpleNode("MethodCall").Append(yyDollar[1].node).Append(yyDollar[3].node).Append(yyDollar[4].node) + yyVAL.node = node.NewSimpleNode("MethodCall").Append(yyDollar[1].node).Append(yyDollar[3].node).Append(yyDollar[4].node) } case 430: yyDollar = yyS[yypt-1 : yypt+1] @@ -4672,37 +4672,37 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:1064 { - yyVAL.node = node.SimpleNode("Property").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("Property").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 434: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:1068 { - yyVAL.node = node.SimpleNode("Variable").Attribute("name", yyDollar[1].token.String()) + yyVAL.node = node.NewSimpleNode("Variable").Attribute("name", yyDollar[1].token.String()) } case 435: yyDollar = yyS[yypt-4 : yypt+1] //line parser/parser.y:1069 { - yyVAL.node = node.SimpleNode("Variable").Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("Variable").Append(yyDollar[3].node) } case 436: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:1070 { - yyVAL.node = node.SimpleNode("Variable").Append(yyDollar[2].node) + yyVAL.node = node.NewSimpleNode("Variable").Append(yyDollar[2].node) } case 437: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:1075 { - yyVAL.node = node.SimpleNode("StaticProp").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("StaticProp").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 438: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:1077 { - yyVAL.node = node.SimpleNode("StaticProp").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("StaticProp").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 439: yyDollar = yyS[yypt-1 : yypt+1] @@ -4714,31 +4714,31 @@ yydefault: yyDollar = yyS[yypt-4 : yypt+1] //line parser/parser.y:1082 { - yyVAL.node = node.SimpleNode("Dim").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("Dim").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 441: yyDollar = yyS[yypt-4 : yypt+1] //line parser/parser.y:1083 { - yyVAL.node = node.SimpleNode("Dim").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("Dim").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 442: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:1084 { - yyVAL.node = node.SimpleNode("Property").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("Property").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 443: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:1086 { - yyVAL.node = node.SimpleNode("StaticProperty").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("StaticProperty").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 444: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:1088 { - yyVAL.node = node.SimpleNode("StaticProperty").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("StaticProperty").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 445: yyDollar = yyS[yypt-1 : yypt+1] @@ -4762,7 +4762,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:1098 { - yyVAL.node = node.SimpleNode("PropertyName").Attribute("value", yyDollar[1].token.String()) + yyVAL.node = node.NewSimpleNode("PropertyName").Attribute("value", yyDollar[1].token.String()) } case 449: yyDollar = yyS[yypt-3 : yypt+1] @@ -4786,7 +4786,7 @@ yydefault: yyDollar = yyS[yypt-0 : yypt+1] //line parser/parser.y:1108 { - yyVAL.node = node.SimpleNode("") + yyVAL.node = node.NewSimpleNode("") } case 453: yyDollar = yyS[yypt-1 : yypt+1] @@ -4804,46 +4804,46 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:1115 { - yyVAL.node = node.SimpleNode("ArrayPairList").Append(yyDollar[1].node) + yyVAL.node = node.NewSimpleNode("ArrayPairList").Append(yyDollar[1].node) } case 456: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:1119 { - yyVAL.node = node.SimpleNode("ArrayElement").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("ArrayElement").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 457: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:1120 { - yyVAL.node = node.SimpleNode("ArrayElement").Append(yyDollar[1].node) + yyVAL.node = node.NewSimpleNode("ArrayElement").Append(yyDollar[1].node) } case 458: yyDollar = yyS[yypt-4 : yypt+1] //line parser/parser.y:1121 { - yyVAL.node = node.SimpleNode("ArrayElement").Append(yyDollar[1].node).Append(node.SimpleNode("Ref").Append(yyDollar[4].node)) + yyVAL.node = node.NewSimpleNode("ArrayElement").Append(yyDollar[1].node).Append(node.NewSimpleNode("Ref").Append(yyDollar[4].node)) } case 459: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:1122 { - yyVAL.node = node.SimpleNode("ArrayElement").Append(node.SimpleNode("Ref").Append(yyDollar[2].node)) + yyVAL.node = node.NewSimpleNode("ArrayElement").Append(node.NewSimpleNode("Ref").Append(yyDollar[2].node)) } case 460: yyDollar = yyS[yypt-6 : yypt+1] //line parser/parser.y:1124 { - yyVAL.node = node.SimpleNode("ArrayElement"). + yyVAL.node = node.NewSimpleNode("ArrayElement"). Append(yyDollar[1].node). - Append(node.SimpleNode("ArrayList").Append(yyDollar[5].node)) + Append(node.NewSimpleNode("ArrayList").Append(yyDollar[5].node)) } case 461: yyDollar = yyS[yypt-4 : yypt+1] //line parser/parser.y:1130 { - yyVAL.node = node.SimpleNode("ArrayElement"). - Append(node.SimpleNode("ArrayList").Append(yyDollar[3].node)) + yyVAL.node = node.NewSimpleNode("ArrayElement"). + Append(node.NewSimpleNode("ArrayList").Append(yyDollar[3].node)) } case 462: yyDollar = yyS[yypt-2 : yypt+1] @@ -4873,37 +4873,37 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:1144 { - yyVAL.node = node.SimpleNode("Variable").Attribute("value", yyDollar[1].token.String()) + yyVAL.node = node.NewSimpleNode("Variable").Attribute("value", yyDollar[1].token.String()) } case 467: yyDollar = yyS[yypt-4 : yypt+1] //line parser/parser.y:1145 { - yyVAL.node = node.SimpleNode("Variable").Attribute("value", yyDollar[1].token.String()).Append(node.SimpleNode("offset").Append(yyDollar[3].node)) + yyVAL.node = node.NewSimpleNode("Variable").Attribute("value", yyDollar[1].token.String()).Append(node.NewSimpleNode("offset").Append(yyDollar[3].node)) } case 468: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:1146 { - yyVAL.node = node.SimpleNode("Variable").Attribute("value", yyDollar[1].token.String()).Append(node.SimpleNode("property").Attribute("value", yyDollar[3].token.String())) + yyVAL.node = node.NewSimpleNode("Variable").Attribute("value", yyDollar[1].token.String()).Append(node.NewSimpleNode("property").Attribute("value", yyDollar[3].token.String())) } case 469: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:1147 { - yyVAL.node = node.SimpleNode("Variable").Append(node.SimpleNode("expr").Append(yyDollar[2].node)) + yyVAL.node = node.NewSimpleNode("Variable").Append(node.NewSimpleNode("expr").Append(yyDollar[2].node)) } case 470: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:1148 { - yyVAL.node = node.SimpleNode("Variable").Attribute("value", yyDollar[2].token.String()) + yyVAL.node = node.NewSimpleNode("Variable").Attribute("value", yyDollar[2].token.String()) } case 471: yyDollar = yyS[yypt-6 : yypt+1] //line parser/parser.y:1150 { - yyVAL.node = node.SimpleNode("Variable").Attribute("value", yyDollar[2].token.String()).Append(node.SimpleNode("offset").Append(yyDollar[4].node)) + yyVAL.node = node.NewSimpleNode("Variable").Attribute("value", yyDollar[2].token.String()).Append(node.NewSimpleNode("offset").Append(yyDollar[4].node)) } case 472: yyDollar = yyS[yypt-3 : yypt+1] @@ -4915,25 +4915,25 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:1154 { - yyVAL.node = node.SimpleNode("OffsetString").Attribute("value", yyDollar[1].token.String()) + yyVAL.node = node.NewSimpleNode("OffsetString").Attribute("value", yyDollar[1].token.String()) } case 474: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:1155 { - yyVAL.node = node.SimpleNode("OffsetNumString").Attribute("value", yyDollar[1].token.String()) + yyVAL.node = node.NewSimpleNode("OffsetNumString").Attribute("value", yyDollar[1].token.String()) } case 475: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:1156 { - yyVAL.node = node.SimpleNode("OffsetNegateNumString").Attribute("value", yyDollar[2].token.String()) + yyVAL.node = node.NewSimpleNode("OffsetNegateNumString").Attribute("value", yyDollar[2].token.String()) } case 476: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:1157 { - yyVAL.node = node.SimpleNode("OffsetVariable").Attribute("value", yyDollar[1].token.String()) + yyVAL.node = node.NewSimpleNode("OffsetVariable").Attribute("value", yyDollar[1].token.String()) } case 477: yyDollar = yyS[yypt-5 : yypt+1] @@ -4945,37 +4945,37 @@ yydefault: yyDollar = yyS[yypt-4 : yypt+1] //line parser/parser.y:1162 { - yyVAL.node = node.SimpleNode("Empty").Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("Empty").Append(yyDollar[3].node) } case 479: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:1163 { - yyVAL.node = node.SimpleNode("Include").Append(yyDollar[2].node) + yyVAL.node = node.NewSimpleNode("Include").Append(yyDollar[2].node) } case 480: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:1164 { - yyVAL.node = node.SimpleNode("IncludeOnce").Append(yyDollar[2].node) + yyVAL.node = node.NewSimpleNode("IncludeOnce").Append(yyDollar[2].node) } case 481: yyDollar = yyS[yypt-4 : yypt+1] //line parser/parser.y:1165 { - yyVAL.node = node.SimpleNode("Eval").Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("Eval").Append(yyDollar[3].node) } case 482: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:1166 { - yyVAL.node = node.SimpleNode("Require").Append(yyDollar[2].node) + yyVAL.node = node.NewSimpleNode("Require").Append(yyDollar[2].node) } case 483: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.y:1167 { - yyVAL.node = node.SimpleNode("RequireOnce").Append(yyDollar[2].node) + yyVAL.node = node.NewSimpleNode("RequireOnce").Append(yyDollar[2].node) } case 484: yyDollar = yyS[yypt-1 : yypt+1] @@ -4987,13 +4987,13 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] //line parser/parser.y:1172 { - yyVAL.node = node.SimpleNode("AndIsset").Append(yyDollar[1].node).Append(yyDollar[3].node) + yyVAL.node = node.NewSimpleNode("AndIsset").Append(yyDollar[1].node).Append(yyDollar[3].node) } case 486: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.y:1176 { - yyVAL.node = node.SimpleNode("Isset").Append(yyDollar[1].node) + yyVAL.node = node.NewSimpleNode("Isset").Append(yyDollar[1].node) } } goto yystack /* stack new state and value */ diff --git a/parser/parser.y b/parser/parser.y index 260fc4b..08be74d 100644 --- a/parser/parser.y +++ b/parser/parser.y @@ -7,12 +7,12 @@ import ( "github.com/z7zmey/php-parser/node" ) -var rootnode = node.SimpleNode("Root") +var rootnode = node.NewSimpleNode("Root") func Parse(src io.Reader, fName string) node.Node { yyDebug = 0 yyErrorVerbose = true - rootnode = node.SimpleNode("Root") //reset + rootnode = node.NewSimpleNode("Root") //reset yyParse(newLexer(src, fName)) return rootnode } @@ -237,18 +237,18 @@ identifier: top_statement_list: top_statement_list top_statement { $$ = $1.Append($2); } - | /* empty */ { $$ = node.SimpleNode("Statements") } + | /* empty */ { $$ = node.NewSimpleNode("Statements") } ; namespace_name: - T_STRING { $$ = node.SimpleNode("NamespaceParts").Append(node.TokenNode("NsPart", $1)); } + T_STRING { $$ = node.NewSimpleNode("NamespaceParts").Append(node.TokenNode("NsPart", $1)); } | namespace_name T_NS_SEPARATOR T_STRING { $$ = $1.Append(node.TokenNode("NsPart", $3)); } ; name: - namespace_name { $$ = node.SimpleNode("Name").Append($1); } - | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$ = node.SimpleNode("Name").Append($3).Attribute("Relative", "true"); } - | T_NS_SEPARATOR namespace_name { $$ = node.SimpleNode("Name").Append($2).Attribute("FullyQualified", "true"); } + namespace_name { $$ = node.NewSimpleNode("Name").Append($1); } + | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$ = node.NewSimpleNode("Name").Append($3).Attribute("Relative", "true"); } + | T_NS_SEPARATOR namespace_name { $$ = node.NewSimpleNode("Name").Append($2).Attribute("FullyQualified", "true"); } ; top_statement: @@ -257,11 +257,11 @@ top_statement: | class_declaration_statement { $$ = $1; } | trait_declaration_statement { $$ = $1; } | interface_declaration_statement { $$ = $1; } - | T_HALT_COMPILER '(' ')' ';' { $$ = node.SimpleNode("THaltCompiler") } - | T_NAMESPACE namespace_name ';' { $$ = node.SimpleNode("Namespace").Append($2); } + | T_HALT_COMPILER '(' ')' ';' { $$ = node.NewSimpleNode("THaltCompiler") } + | T_NAMESPACE namespace_name ';' { $$ = node.NewSimpleNode("Namespace").Append($2); } | T_NAMESPACE namespace_name '{' top_statement_list '}' - { $$ = node.SimpleNode("Namespace").Append($2).Append($4) } - | T_NAMESPACE '{' top_statement_list '}' { $$ = node.SimpleNode("Namespace").Append($3) } + { $$ = node.NewSimpleNode("Namespace").Append($2).Append($4) } + | T_NAMESPACE '{' top_statement_list '}' { $$ = node.NewSimpleNode("Namespace").Append($3) } | T_USE mixed_group_use_declaration ';' { $$ = $2; } | T_USE use_type group_use_declaration ';' { $$ = $3.Append($2) } | T_USE use_declarations ';' { $$ = $2; } @@ -270,22 +270,22 @@ top_statement: ; use_type: - T_FUNCTION { $$ = node.SimpleNode("FuncUseType"); } - | T_CONST { $$ = node.SimpleNode("ConstUseType"); } + T_FUNCTION { $$ = node.NewSimpleNode("FuncUseType"); } + | T_CONST { $$ = node.NewSimpleNode("ConstUseType"); } ; group_use_declaration: namespace_name T_NS_SEPARATOR '{' unprefixed_use_declarations possible_comma '}' - { $$ = node.SimpleNode("GroupUse").Append($1).Append($4) } + { $$ = node.NewSimpleNode("GroupUse").Append($1).Append($4) } | T_NS_SEPARATOR namespace_name T_NS_SEPARATOR '{' unprefixed_use_declarations possible_comma '}' - { $$ = node.SimpleNode("GroupUse").Append($2).Append($5) } + { $$ = node.NewSimpleNode("GroupUse").Append($2).Append($5) } ; mixed_group_use_declaration: namespace_name T_NS_SEPARATOR '{' inline_use_declarations possible_comma '}' - { $$ = node.SimpleNode("MixedGroupUse").Append($1).Append($4); } + { $$ = node.NewSimpleNode("MixedGroupUse").Append($1).Append($4); } | T_NS_SEPARATOR namespace_name T_NS_SEPARATOR '{' inline_use_declarations possible_comma '}' - { $$ = node.SimpleNode("MixedGroupUse").Append($2).Append($5); } + { $$ = node.NewSimpleNode("MixedGroupUse").Append($2).Append($5); } ; possible_comma: @@ -296,18 +296,18 @@ possible_comma: inline_use_declarations: inline_use_declarations ',' inline_use_declaration { $$ = $1.Append($3) } - | inline_use_declaration { $$ = node.SimpleNode("UseList").Append($1) } + | inline_use_declaration { $$ = node.NewSimpleNode("UseList").Append($1) } ; unprefixed_use_declarations: unprefixed_use_declarations ',' unprefixed_use_declaration { $$ = $1.Append($3) } - | unprefixed_use_declaration { $$ = node.SimpleNode("UseList").Append($1) } + | unprefixed_use_declaration { $$ = node.NewSimpleNode("UseList").Append($1) } ; use_declarations: use_declarations ',' use_declaration { $$ = $1.Append($3) } - | use_declaration { $$ = node.SimpleNode("UseList").Append($1) } + | use_declaration { $$ = node.NewSimpleNode("UseList").Append($1) } ; inline_use_declaration: @@ -316,8 +316,8 @@ inline_use_declaration: ; unprefixed_use_declaration: - namespace_name { $$ = node.SimpleNode("UseElem").Append($1); } - | namespace_name T_AS T_STRING { $$ = node.SimpleNode("UseElem").Append($1).Append(node.SimpleNode("as").Attribute("value", $3.String())); } + namespace_name { $$ = node.NewSimpleNode("UseElem").Append($1); } + | namespace_name T_AS T_STRING { $$ = node.NewSimpleNode("UseElem").Append($1).Append(node.NewSimpleNode("as").Attribute("value", $3.String())); } ; use_declaration: @@ -327,12 +327,12 @@ use_declaration: const_list: const_list ',' const_decl { $$ = $1.Append($3) } - | const_decl { $$ = node.SimpleNode("ConstList").Append($1) } + | const_decl { $$ = node.NewSimpleNode("ConstList").Append($1) } ; inner_statement_list: inner_statement_list inner_statement { $$ = $1.Append($2); } - | /* empty */ { $$ = node.SimpleNode("stmt") } + | /* empty */ { $$ = node.NewSimpleNode("stmt") } ; inner_statement: @@ -341,7 +341,7 @@ inner_statement: | class_declaration_statement { $$ = $1; } | trait_declaration_statement { $$ = $1; } | interface_declaration_statement { $$ = $1; } - | T_HALT_COMPILER '(' ')' ';' { $$ = node.SimpleNode("THaltCompiler") } + | T_HALT_COMPILER '(' ')' ';' { $$ = node.NewSimpleNode("THaltCompiler") } statement: '{' inner_statement_list '}' { $$ = $2; } @@ -349,80 +349,80 @@ statement: | alt_if_stmt { $$ = $1; } | T_WHILE '(' expr ')' while_statement { - $$ = node.SimpleNode("While"). - Append(node.SimpleNode("expr").Append($3)). - Append(node.SimpleNode("stmt").Append($5)); + $$ = node.NewSimpleNode("While"). + Append(node.NewSimpleNode("expr").Append($3)). + Append(node.NewSimpleNode("stmt").Append($5)); } | T_DO statement T_WHILE '(' expr ')' ';' { - $$ = node.SimpleNode("DoWhile"). - Append(node.SimpleNode("expr").Append($5)). - Append(node.SimpleNode("stmt").Append($2)); + $$ = node.NewSimpleNode("DoWhile"). + Append(node.NewSimpleNode("expr").Append($5)). + Append(node.NewSimpleNode("stmt").Append($2)); } | T_FOR '(' for_exprs ';' for_exprs ';' for_exprs ')' for_statement { - $$ = node.SimpleNode("For"). - Append(node.SimpleNode("expr1").Append($3)). - Append(node.SimpleNode("expr2").Append($5)). - Append(node.SimpleNode("expr3").Append($7)). - Append(node.SimpleNode("stmt").Append($9)) + $$ = node.NewSimpleNode("For"). + Append(node.NewSimpleNode("expr1").Append($3)). + Append(node.NewSimpleNode("expr2").Append($5)). + Append(node.NewSimpleNode("expr3").Append($7)). + Append(node.NewSimpleNode("stmt").Append($9)) } - | T_SWITCH '(' expr ')' switch_case_list { $$ = node.SimpleNode("Switch").Append(node.SimpleNode("expr").Append($3)).Append($5); } - | T_BREAK optional_expr ';' { $$ = node.SimpleNode("Break").Append($2) } - | T_CONTINUE optional_expr ';' { $$ = node.SimpleNode("Continue").Append($2) } - | T_RETURN optional_expr ';' { $$ = node.SimpleNode("Return").Append($2) } + | T_SWITCH '(' expr ')' switch_case_list { $$ = node.NewSimpleNode("Switch").Append(node.NewSimpleNode("expr").Append($3)).Append($5); } + | T_BREAK optional_expr ';' { $$ = node.NewSimpleNode("Break").Append($2) } + | T_CONTINUE optional_expr ';' { $$ = node.NewSimpleNode("Continue").Append($2) } + | T_RETURN optional_expr ';' { $$ = node.NewSimpleNode("Return").Append($2) } | T_GLOBAL global_var_list ';' { $$ = $2; } | T_STATIC static_var_list ';' { $$ = $2; } | T_ECHO echo_expr_list ';' { $$ = $2; } - | T_INLINE_HTML { $$ = node.SimpleNode("Echo").Append(node.SimpleNode("InlineHtml").Attribute("value", $1.String())) } + | T_INLINE_HTML { $$ = node.NewSimpleNode("Echo").Append(node.NewSimpleNode("InlineHtml").Attribute("value", $1.String())) } | expr ';' { $$ = $1; } | T_UNSET '(' unset_variables possible_comma ')' ';' - { $$ = node.SimpleNode("Unset").Append($3); } + { $$ = node.NewSimpleNode("Unset").Append($3); } | T_FOREACH '(' expr T_AS foreach_variable ')' foreach_statement { - $$ = node.SimpleNode("Foreach"). - Append(node.SimpleNode("expr").Append($3)). - Append(node.SimpleNode("ForeachVariable").Append($5)). + $$ = node.NewSimpleNode("Foreach"). + Append(node.NewSimpleNode("expr").Append($3)). + Append(node.NewSimpleNode("ForeachVariable").Append($5)). Append($7); } | T_FOREACH '(' expr T_AS foreach_variable T_DOUBLE_ARROW foreach_variable ')' foreach_statement { - $$ = node.SimpleNode("Foreach"). - Append(node.SimpleNode("expr").Append($3)). - Append(node.SimpleNode("ForeachKey").Append($5)). - Append(node.SimpleNode("ForeachVariable").Append($7)). + $$ = node.NewSimpleNode("Foreach"). + Append(node.NewSimpleNode("expr").Append($3)). + Append(node.NewSimpleNode("ForeachKey").Append($5)). + Append(node.NewSimpleNode("ForeachVariable").Append($7)). Append($9); } - | T_DECLARE '(' const_list ')' declare_statement { $$ = node.SimpleNode("Declare").Append($3).Append($5) } - | ';' /* empty statement */ { $$ = node.SimpleNode(""); } + | T_DECLARE '(' const_list ')' declare_statement { $$ = node.NewSimpleNode("Declare").Append($3).Append($5) } + | ';' /* empty statement */ { $$ = node.NewSimpleNode(""); } | T_TRY '{' inner_statement_list '}' catch_list finally_statement { - $$ = node.SimpleNode("Try"). + $$ = node.NewSimpleNode("Try"). Append($3). Append($5). Append($6); } - | T_THROW expr ';' { $$ = node.SimpleNode("Throw").Append($2) } - | T_GOTO T_STRING ';' { $$ = node.SimpleNode("GoTo").Attribute("Label", $2.String()) } - | T_STRING ':' { $$ = node.SimpleNode("Label").Attribute("name", $1.String()) } + | T_THROW expr ';' { $$ = node.NewSimpleNode("Throw").Append($2) } + | T_GOTO T_STRING ';' { $$ = node.NewSimpleNode("GoTo").Attribute("Label", $2.String()) } + | T_STRING ':' { $$ = node.NewSimpleNode("Label").Attribute("name", $1.String()) } catch_list: - /* empty */ { $$ = node.SimpleNode("CatchList") } + /* empty */ { $$ = node.NewSimpleNode("CatchList") } | catch_list T_CATCH '(' catch_name_list T_VARIABLE ')' '{' inner_statement_list '}' - { $$ = $1.Append($4).Append(node.SimpleNode("Variable").Attribute("name", $5.String())).Append($8) } + { $$ = $1.Append($4).Append(node.NewSimpleNode("Variable").Attribute("name", $5.String())).Append($8) } ; catch_name_list: - name { $$ = node.SimpleNode("CatchNameList").Append($1) } + name { $$ = node.NewSimpleNode("CatchNameList").Append($1) } | catch_name_list '|' name { $$ = $1.Append($3) } ; finally_statement: - /* empty */ { $$ = node.SimpleNode(""); } - | T_FINALLY '{' inner_statement_list '}' { $$ = node.SimpleNode("Finnaly").Append($3) } + /* empty */ { $$ = node.NewSimpleNode(""); } + | T_FINALLY '{' inner_statement_list '}' { $$ = node.NewSimpleNode("Finnaly").Append($3) } ; unset_variables: - unset_variable { $$ = node.SimpleNode("UnsetVariablesList").Append($1) } + unset_variable { $$ = node.NewSimpleNode("UnsetVariablesList").Append($1) } | unset_variables ',' unset_variable { $$ = $1.Append($3) } ; @@ -433,7 +433,7 @@ unset_variable: function_declaration_statement: T_FUNCTION returns_ref T_STRING '(' parameter_list ')' return_type '{' inner_statement_list '}' { - $$ = node.SimpleNode("Function"). + $$ = node.NewSimpleNode("Function"). Attribute("name", $3.String()). Attribute("returns_ref", $2). Append($5). @@ -455,25 +455,25 @@ is_variadic: class_declaration_statement: class_modifiers T_CLASS T_STRING extends_from implements_list '{' class_statement_list '}' { - $$ = node.SimpleNode("Class"). + $$ = node.NewSimpleNode("Class"). Attribute("name", $3.String()). Append($1). - Append(node.SimpleNode("Extends").Append($4)). - Append(node.SimpleNode("Implements").Append($5)). + Append(node.NewSimpleNode("Extends").Append($4)). + Append(node.NewSimpleNode("Implements").Append($5)). Append($7); } | T_CLASS T_STRING extends_from implements_list '{' class_statement_list '}' { - $$ = node.SimpleNode("Class"). + $$ = node.NewSimpleNode("Class"). Attribute("name", $2.String()). - Append(node.SimpleNode("Extends").Append($3)). - Append(node.SimpleNode("Implements").Append($4)). + Append(node.NewSimpleNode("Extends").Append($3)). + Append(node.NewSimpleNode("Implements").Append($4)). Append($6); } ; class_modifiers: - class_modifier { $$ = node.SimpleNode("Class").Attribute($1, "true") } + class_modifier { $$ = node.NewSimpleNode("Class").Attribute($1, "true") } | class_modifiers class_modifier { $$ = $1.Attribute($2, "true") } ; @@ -483,39 +483,39 @@ class_modifier: ; trait_declaration_statement: - T_TRAIT T_STRING '{' class_statement_list '}' { $$ = node.SimpleNode("Trait").Attribute("name", $2.String()).Append($4) } + T_TRAIT T_STRING '{' class_statement_list '}' { $$ = node.NewSimpleNode("Trait").Attribute("name", $2.String()).Append($4) } ; interface_declaration_statement: T_INTERFACE T_STRING interface_extends_list '{' class_statement_list '}' { - $$ = node.SimpleNode("Interface"). + $$ = node.NewSimpleNode("Interface"). Attribute("name", $2.String()). - Append(node.SimpleNode("Extends").Append($3)). + Append(node.NewSimpleNode("Extends").Append($3)). Append($5); } ; extends_from: - /* empty */ { $$ = node.SimpleNode(""); } + /* empty */ { $$ = node.NewSimpleNode(""); } | T_EXTENDS name { $$ = $2; } ; interface_extends_list: - /* empty */ { $$ = node.SimpleNode("") } + /* empty */ { $$ = node.NewSimpleNode("") } | T_EXTENDS name_list { $$ = $2; } ; implements_list: - /* empty */ { $$ = node.SimpleNode(""); } + /* empty */ { $$ = node.NewSimpleNode(""); } | T_IMPLEMENTS name_list { $$ = $2; } ; foreach_variable: variable { $$ = $1; } - | '&' variable { $$ = node.SimpleNode("Ref").Append($2); } - | T_LIST '(' array_pair_list ')' { $$ = node.SimpleNode("List").Append($3) } - | '[' array_pair_list ']' { $$ = node.SimpleNode("ShortList").Append($2) } + | '&' variable { $$ = node.NewSimpleNode("Ref").Append($2); } + | T_LIST '(' array_pair_list ')' { $$ = node.NewSimpleNode("List").Append($3) } + | '[' array_pair_list ']' { $$ = node.NewSimpleNode("ShortList").Append($2) } ; for_statement: @@ -541,14 +541,14 @@ switch_case_list: ; case_list: - /* empty */ { $$ = node.SimpleNode("CaseList") } + /* empty */ { $$ = node.NewSimpleNode("CaseList") } | case_list T_CASE expr case_separator inner_statement_list { - $$ = $1.Append(node.SimpleNode("Case").Append(node.SimpleNode("expr").Append($3)).Append($5)) + $$ = $1.Append(node.NewSimpleNode("Case").Append(node.NewSimpleNode("expr").Append($3)).Append($5)) } | case_list T_DEFAULT case_separator inner_statement_list { - $$ = $1.Append(node.SimpleNode("Default").Append($4)) + $$ = $1.Append(node.NewSimpleNode("Default").Append($4)) } ; @@ -565,11 +565,11 @@ while_statement: if_stmt_without_else: T_IF '(' expr ')' statement { - $$ = node.SimpleNode("If").Append(node.SimpleNode("expr").Append($3)).Append(node.SimpleNode("stmt").Append($5)) + $$ = node.NewSimpleNode("If").Append(node.NewSimpleNode("expr").Append($3)).Append(node.NewSimpleNode("stmt").Append($5)) } | if_stmt_without_else T_ELSEIF '(' expr ')' statement { - $$ = $1.Append(node.SimpleNode("ElseIf").Append(node.SimpleNode("expr").Append($4)).Append(node.SimpleNode("stmt").Append($6))) + $$ = $1.Append(node.NewSimpleNode("ElseIf").Append(node.NewSimpleNode("expr").Append($4)).Append(node.NewSimpleNode("stmt").Append($6))) } ; @@ -577,18 +577,18 @@ if_stmt: if_stmt_without_else %prec T_NOELSE { $$ = $1; } | if_stmt_without_else T_ELSE statement { - $$ = $1.Append(node.SimpleNode("Else").Append(node.SimpleNode("stmt").Append($3))) + $$ = $1.Append(node.NewSimpleNode("Else").Append(node.NewSimpleNode("stmt").Append($3))) } ; alt_if_stmt_without_else: T_IF '(' expr ')' ':' inner_statement_list { - $$ = node.SimpleNode("AltIf").Append(node.SimpleNode("expr").Append($3)).Append(node.SimpleNode("stmt").Append($6)) + $$ = node.NewSimpleNode("AltIf").Append(node.NewSimpleNode("expr").Append($3)).Append(node.NewSimpleNode("stmt").Append($6)) } | alt_if_stmt_without_else T_ELSEIF '(' expr ')' ':' inner_statement_list { - $$ = $1.Append(node.SimpleNode("AltElseIf").Append(node.SimpleNode("expr").Append($4)).Append(node.SimpleNode("stmt").Append($7))) + $$ = $1.Append(node.NewSimpleNode("AltElseIf").Append(node.NewSimpleNode("expr").Append($4)).Append(node.NewSimpleNode("stmt").Append($7))) } ; @@ -596,24 +596,24 @@ alt_if_stmt: alt_if_stmt_without_else T_ENDIF ';' { $$ = $1; } | alt_if_stmt_without_else T_ELSE ':' inner_statement_list T_ENDIF ';' { - $$ = $1.Append(node.SimpleNode("AltElse").Append(node.SimpleNode("stmt").Append($4))) + $$ = $1.Append(node.NewSimpleNode("AltElse").Append(node.NewSimpleNode("stmt").Append($4))) } ; parameter_list: non_empty_parameter_list { $$ = $1; } - | /* empty */ { $$ = node.SimpleNode("Parameter list"); } + | /* empty */ { $$ = node.NewSimpleNode("Parameter list"); } ; non_empty_parameter_list: - parameter { $$ = node.SimpleNode("Parameter list").Append($1) } + parameter { $$ = node.NewSimpleNode("Parameter list").Append($1) } | non_empty_parameter_list ',' parameter { $$ = $1.Append($3); } ; parameter: optional_type is_reference is_variadic T_VARIABLE { - $$ = node.SimpleNode("Parameter"). + $$ = node.NewSimpleNode("Parameter"). Append($1). Attribute("is_reference", $2). Attribute("is_variadic", $3). @@ -621,7 +621,7 @@ parameter: } | optional_type is_reference is_variadic T_VARIABLE '=' expr { - $$ = node.SimpleNode("Parameter"). + $$ = node.NewSimpleNode("Parameter"). Append($1). Attribute("is_reference", $2). Attribute("is_variadic", $3). @@ -631,7 +631,7 @@ parameter: ; optional_type: - /* empty */ { $$ = node.SimpleNode("No type") } + /* empty */ { $$ = node.NewSimpleNode("No type") } | type_expr { $$ = $1; } ; @@ -641,34 +641,34 @@ type_expr: ; type: - T_ARRAY { $$ = node.SimpleNode("array type"); } - | T_CALLABLE { $$ = node.SimpleNode("callable type"); } + T_ARRAY { $$ = node.NewSimpleNode("array type"); } + | T_CALLABLE { $$ = node.NewSimpleNode("callable type"); } | name { $$ = $1; } ; return_type: - /* empty */ { $$ = node.SimpleNode("No return type"); } + /* empty */ { $$ = node.NewSimpleNode("No return type"); } | ':' type_expr { $$ = $2; } ; argument_list: - '(' ')' { $$ = node.SimpleNode("ArgumentList") } + '(' ')' { $$ = node.NewSimpleNode("ArgumentList") } | '(' non_empty_argument_list possible_comma ')' { $$ = $2; } ; non_empty_argument_list: - argument { $$ = node.SimpleNode("ArgumentList").Append($1) } + argument { $$ = node.NewSimpleNode("ArgumentList").Append($1) } | non_empty_argument_list ',' argument { $$ = $1.Append($3) } ; argument: expr { $$ = $1; } - | T_ELLIPSIS expr { $$ = node.SimpleNode("Unpack").Append($2) } + | T_ELLIPSIS expr { $$ = node.NewSimpleNode("Unpack").Append($2) } ; global_var_list: global_var_list ',' global_var { $$ = $1.Append($3); } - | global_var { $$ = node.SimpleNode("GlobalVarList").Append($1); } + | global_var { $$ = node.NewSimpleNode("GlobalVarList").Append($1); } ; global_var: @@ -677,29 +677,29 @@ global_var: static_var_list: static_var_list ',' static_var { $$ = $1.Append($3); } - | static_var { $$ = node.SimpleNode("StaticVarList").Append($1); } + | static_var { $$ = node.NewSimpleNode("StaticVarList").Append($1); } ; static_var: - T_VARIABLE { $$ = node.SimpleNode("StaticVariable").Attribute("Name", $1.String()); } - | T_VARIABLE '=' expr { $$ = node.SimpleNode("StaticVariable").Attribute("Name", $1.String()).Append(node.SimpleNode("expr").Append($3)); } + T_VARIABLE { $$ = node.NewSimpleNode("StaticVariable").Attribute("Name", $1.String()); } + | T_VARIABLE '=' expr { $$ = node.NewSimpleNode("StaticVariable").Attribute("Name", $1.String()).Append(node.NewSimpleNode("expr").Append($3)); } ; class_statement_list: class_statement_list class_statement { $$ = $1.Append($2) } - | /* empty */ { $$ = node.SimpleNode("Stmt") } + | /* empty */ { $$ = node.NewSimpleNode("Stmt") } ; class_statement: variable_modifiers property_list ';' { $$ = $2.Append($1) } | method_modifiers T_CONST class_const_list ';' { $$ = $3.Append($1); } - | T_USE name_list trait_adaptations { $$ = node.SimpleNode("Use").Append($2).Append($3); } + | T_USE name_list trait_adaptations { $$ = node.NewSimpleNode("Use").Append($2).Append($3); } | method_modifiers T_FUNCTION returns_ref identifier '(' parameter_list ')' return_type method_body { - $$ = node.SimpleNode("Function"). + $$ = node.NewSimpleNode("Function"). Append($1). - Append(node.SimpleNode("name").Append($4)). + Append(node.NewSimpleNode("name").Append($4)). Attribute("returns_ref", $3). Append($6). Append($8). @@ -708,18 +708,18 @@ class_statement: ; name_list: - name { $$ = node.SimpleNode("NameList").Append($1) } + name { $$ = node.NewSimpleNode("NameList").Append($1) } | name_list ',' name { $$ = $1.Append($3) } ; trait_adaptations: - ';' { $$ = node.SimpleNode(""); } - | '{' '}' { $$ = node.SimpleNode(""); } + ';' { $$ = node.NewSimpleNode(""); } + | '{' '}' { $$ = node.NewSimpleNode(""); } | '{' trait_adaptation_list '}' { $$ = $2; } ; trait_adaptation_list: - trait_adaptation { $$ = node.SimpleNode("TraitAdaptionList").Append($1) } + trait_adaptation { $$ = node.NewSimpleNode("TraitAdaptionList").Append($1) } | trait_adaptation_list trait_adaptation { $$ = $1.Append($2) } ; @@ -730,39 +730,39 @@ trait_adaptation: trait_precedence: absolute_trait_method_reference T_INSTEADOF name_list - { $$ = node.SimpleNode("TraitPrecedence").Append($1).Append($3) } + { $$ = node.NewSimpleNode("TraitPrecedence").Append($1).Append($3) } ; trait_alias: - trait_method_reference T_AS T_STRING { $$ = $1.Append(node.SimpleNode("as").Attribute("value", $3.String())); } + trait_method_reference T_AS T_STRING { $$ = $1.Append(node.NewSimpleNode("as").Attribute("value", $3.String())); } | trait_method_reference T_AS reserved_non_modifiers - { $$ = $1.Append(node.SimpleNode("as").Append(node.SimpleNode("reservedNonModifiers"))); } + { $$ = $1.Append(node.NewSimpleNode("as").Append(node.NewSimpleNode("reservedNonModifiers"))); } | trait_method_reference T_AS member_modifier identifier { $$ = $1.Append($3).Append($4); } | trait_method_reference T_AS member_modifier { $$ = $1.Append($3); } ; trait_method_reference: - identifier { $$ = node.SimpleNode("TraitMethodRef").Append($1); } + identifier { $$ = node.NewSimpleNode("TraitMethodRef").Append($1); } | absolute_trait_method_reference { $$ = $1; } ; absolute_trait_method_reference: - name T_PAAMAYIM_NEKUDOTAYIM identifier { $$ = node.SimpleNode("TraitMethodRef").Append($1).Append($3) } + name T_PAAMAYIM_NEKUDOTAYIM identifier { $$ = node.NewSimpleNode("TraitMethodRef").Append($1).Append($3) } ; method_body: - ';' /* abstract method */ { $$ = node.SimpleNode(""); } + ';' /* abstract method */ { $$ = node.NewSimpleNode(""); } | '{' inner_statement_list '}' { $$ = $2; } ; variable_modifiers: non_empty_member_modifiers { $$ = $1; } - | T_VAR { $$ = node.SimpleNode("VarMemberModifier") } + | T_VAR { $$ = node.NewSimpleNode("VarMemberModifier") } ; method_modifiers: - /* empty */ { $$ = node.SimpleNode("PublicMemberModifier"); } + /* empty */ { $$ = node.NewSimpleNode("PublicMemberModifier"); } | non_empty_member_modifiers { $$ = $1; } ; @@ -772,59 +772,59 @@ non_empty_member_modifiers: ; member_modifier: - T_PUBLIC { $$ = node.SimpleNode("PublicMemberModifier"); } - | T_PROTECTED { $$ = node.SimpleNode("ProtectedMemberModifier"); } - | T_PRIVATE { $$ = node.SimpleNode("PrivateMemberModifier"); } - | T_STATIC { $$ = node.SimpleNode("StaticMemberModifier"); } - | T_ABSTRACT { $$ = node.SimpleNode("AbstractMemberModifier"); } - | T_FINAL { $$ = node.SimpleNode("FinalMemberModifier"); } + T_PUBLIC { $$ = node.NewSimpleNode("PublicMemberModifier"); } + | T_PROTECTED { $$ = node.NewSimpleNode("ProtectedMemberModifier"); } + | T_PRIVATE { $$ = node.NewSimpleNode("PrivateMemberModifier"); } + | T_STATIC { $$ = node.NewSimpleNode("StaticMemberModifier"); } + | T_ABSTRACT { $$ = node.NewSimpleNode("AbstractMemberModifier"); } + | T_FINAL { $$ = node.NewSimpleNode("FinalMemberModifier"); } ; property_list: property_list ',' property { $$ = $1.Append($3) } - | property { $$ = node.SimpleNode("PropertyList").Append($1) } + | property { $$ = node.NewSimpleNode("PropertyList").Append($1) } ; property: - T_VARIABLE { $$ = node.SimpleNode("Property").Attribute("name", $1.String()) } - | T_VARIABLE '=' expr { $$ = node.SimpleNode("Property").Attribute("name", $1.String()).Append(node.SimpleNode("Default").Append($3)) } + T_VARIABLE { $$ = node.NewSimpleNode("Property").Attribute("name", $1.String()) } + | T_VARIABLE '=' expr { $$ = node.NewSimpleNode("Property").Attribute("name", $1.String()).Append(node.NewSimpleNode("Default").Append($3)) } ; class_const_list: class_const_list ',' class_const_decl { $$ = $1.Append($3) } - | class_const_decl { $$ = node.SimpleNode("ConstList").Append($1) } + | class_const_decl { $$ = node.NewSimpleNode("ConstList").Append($1) } ; class_const_decl: - identifier '=' expr { $$ = node.SimpleNode("Const").Append($3) } + identifier '=' expr { $$ = node.NewSimpleNode("Const").Append($3) } ; const_decl: - T_STRING '=' expr { $$ = node.SimpleNode("Const").Attribute("name", $1.String()).Append($3) } + T_STRING '=' expr { $$ = node.NewSimpleNode("Const").Attribute("name", $1.String()).Append($3) } ; echo_expr_list: echo_expr_list ',' echo_expr { $$ = $1.Append($3) } - | echo_expr { $$ = node.SimpleNode("EchoList").Append($1) } + | echo_expr { $$ = node.NewSimpleNode("EchoList").Append($1) } ; echo_expr: - expr { $$ = node.SimpleNode("Echo").Append($1) } + expr { $$ = node.NewSimpleNode("Echo").Append($1) } ; for_exprs: - /* empty */ { $$ = node.SimpleNode(""); } + /* empty */ { $$ = node.NewSimpleNode(""); } | non_empty_for_exprs { $$ = $1; } ; non_empty_for_exprs: non_empty_for_exprs ',' expr { $$ = $1.Append($3) } - | expr { $$ = node.SimpleNode("ExpressionList").Append($1) } + | expr { $$ = node.NewSimpleNode("ExpressionList").Append($1) } ; anonymous_class: T_CLASS ctor_arguments extends_from implements_list '{' class_statement_list '}' { - $$ = node.SimpleNode("AnonymousClass"). + $$ = node.NewSimpleNode("AnonymousClass"). Attribute("name", $1.String()). Append($2). Append($3). @@ -834,88 +834,88 @@ anonymous_class: ; new_expr: - T_NEW class_name_reference ctor_arguments { $$ = node.SimpleNode("New").Append($2).Append($3) } - | T_NEW anonymous_class { $$ = node.SimpleNode("New").Append($2) } + T_NEW class_name_reference ctor_arguments { $$ = node.NewSimpleNode("New").Append($2).Append($3) } + | T_NEW anonymous_class { $$ = node.NewSimpleNode("New").Append($2) } ; expr_without_variable: - T_LIST '(' array_pair_list ')' '=' expr { $$ = node.SimpleNode("Assign").Append($3).Append($6); } - | '[' array_pair_list ']' '=' expr { $$ = node.SimpleNode("Assign").Append($2).Append($5); } - | variable '=' expr { $$ = node.SimpleNode("Assign").Append($1).Append($3); } - | variable '=' '&' expr { $$ = node.SimpleNode("AssignRef").Append($1).Append($4); } - | T_CLONE expr { $$ = node.SimpleNode("Clone").Append($2); } - | variable T_PLUS_EQUAL expr { $$ = node.SimpleNode("AssignAdd").Append($1).Append($3); } - | variable T_MINUS_EQUAL expr { $$ = node.SimpleNode("AssignSub").Append($1).Append($3); } - | variable T_MUL_EQUAL expr { $$ = node.SimpleNode("AssignMul").Append($1).Append($3); } - | variable T_POW_EQUAL expr { $$ = node.SimpleNode("AssignPow").Append($1).Append($3); } - | variable T_DIV_EQUAL expr { $$ = node.SimpleNode("AssignDiv").Append($1).Append($3); } - | variable T_CONCAT_EQUAL expr { $$ = node.SimpleNode("AssignConcat").Append($1).Append($3); } - | variable T_MOD_EQUAL expr { $$ = node.SimpleNode("AssignMod").Append($1).Append($3); } - | variable T_AND_EQUAL expr { $$ = node.SimpleNode("AssignAnd").Append($1).Append($3); } - | variable T_OR_EQUAL expr { $$ = node.SimpleNode("AssignOr").Append($1).Append($3); } - | variable T_XOR_EQUAL expr { $$ = node.SimpleNode("AssignXor").Append($1).Append($3); } - | variable T_SL_EQUAL expr { $$ = node.SimpleNode("AssignShiftLeft").Append($1).Append($3); } - | variable T_SR_EQUAL expr { $$ = node.SimpleNode("AssignShiftRight").Append($1).Append($3); } - | variable T_INC { $$ = node.SimpleNode("PostIncrement").Append($1) } - | T_INC variable { $$ = node.SimpleNode("PreIncrement").Append($2) } - | variable T_DEC { $$ = node.SimpleNode("PostDecrement").Append($1) } - | T_DEC variable { $$ = node.SimpleNode("PreDecrement").Append($2) } - | expr T_BOOLEAN_OR expr { $$ = node.SimpleNode("Or").Append($1).Append($3) } - | expr T_BOOLEAN_AND expr { $$ = node.SimpleNode("And").Append($1).Append($3) } - | expr T_LOGICAL_OR expr { $$ = node.SimpleNode("Or").Append($1).Append($3) } - | expr T_LOGICAL_AND expr { $$ = node.SimpleNode("And").Append($1).Append($3) } - | expr T_LOGICAL_XOR expr { $$ = node.SimpleNode("Xor").Append($1).Append($3) } - | expr '|' expr { $$ = node.SimpleNode("BitwiseOr").Append($1).Append($3) } - | expr '&' expr { $$ = node.SimpleNode("BitwiseAnd").Append($1).Append($3) } - | expr '^' expr { $$ = node.SimpleNode("BitwiseXor").Append($1).Append($3) } - | expr '.' expr { $$ = node.SimpleNode("Concat").Append($1).Append($3) } - | expr '+' expr { $$ = node.SimpleNode("Add").Append($1).Append($3) } - | expr '-' expr { $$ = node.SimpleNode("Sub").Append($1).Append($3) } - | expr '*' expr { $$ = node.SimpleNode("Mul").Append($1).Append($3) } - | expr T_POW expr { $$ = node.SimpleNode("Pow").Append($1).Append($3) } - | expr '/' expr { $$ = node.SimpleNode("Div").Append($1).Append($3) } - | expr '%' expr { $$ = node.SimpleNode("Mod").Append($1).Append($3) } - | expr T_SL expr { $$ = node.SimpleNode("ShiftLeft").Append($1).Append($3) } - | expr T_SR expr { $$ = node.SimpleNode("ShiftRight").Append($1).Append($3) } - | '+' expr %prec T_INC { $$ = node.SimpleNode("UnaryPlus").Append($2) } - | '-' expr %prec T_INC { $$ = node.SimpleNode("UnaryMinus").Append($2) } - | '!' expr { $$ = node.SimpleNode("BooleanNot").Append($2) } - | '~' expr { $$ = node.SimpleNode("BitwiseNot").Append($2) } - | expr T_IS_IDENTICAL expr { $$ = node.SimpleNode("Identical").Append($1).Append($3) } - | expr T_IS_NOT_IDENTICAL expr { $$ = node.SimpleNode("NotIdentical").Append($1).Append($3) } - | expr T_IS_EQUAL expr { $$ = node.SimpleNode("Equal").Append($1).Append($3) } - | expr T_IS_NOT_EQUAL expr { $$ = node.SimpleNode("NotEqual").Append($1).Append($3) } - | expr '<' expr { $$ = node.SimpleNode("Smaller").Append($1).Append($3) } - | expr T_IS_SMALLER_OR_EQUAL expr { $$ = node.SimpleNode("SmallerOrEqual").Append($1).Append($3) } - | expr '>' expr { $$ = node.SimpleNode("Greater").Append($1).Append($3) } - | expr T_IS_GREATER_OR_EQUAL expr { $$ = node.SimpleNode("GreaterOrEqual").Append($1).Append($3) } - | expr T_SPACESHIP expr { $$ = node.SimpleNode("Spaceship").Append($1).Append($3); } - | expr T_INSTANCEOF class_name_reference { $$ = node.SimpleNode("InstanceOf").Append($1).Append($3) } + T_LIST '(' array_pair_list ')' '=' expr { $$ = node.NewSimpleNode("Assign").Append($3).Append($6); } + | '[' array_pair_list ']' '=' expr { $$ = node.NewSimpleNode("Assign").Append($2).Append($5); } + | variable '=' expr { $$ = node.NewSimpleNode("Assign").Append($1).Append($3); } + | variable '=' '&' expr { $$ = node.NewSimpleNode("AssignRef").Append($1).Append($4); } + | T_CLONE expr { $$ = node.NewSimpleNode("Clone").Append($2); } + | variable T_PLUS_EQUAL expr { $$ = node.NewSimpleNode("AssignAdd").Append($1).Append($3); } + | variable T_MINUS_EQUAL expr { $$ = node.NewSimpleNode("AssignSub").Append($1).Append($3); } + | variable T_MUL_EQUAL expr { $$ = node.NewSimpleNode("AssignMul").Append($1).Append($3); } + | variable T_POW_EQUAL expr { $$ = node.NewSimpleNode("AssignPow").Append($1).Append($3); } + | variable T_DIV_EQUAL expr { $$ = node.NewSimpleNode("AssignDiv").Append($1).Append($3); } + | variable T_CONCAT_EQUAL expr { $$ = node.NewSimpleNode("AssignConcat").Append($1).Append($3); } + | variable T_MOD_EQUAL expr { $$ = node.NewSimpleNode("AssignMod").Append($1).Append($3); } + | variable T_AND_EQUAL expr { $$ = node.NewSimpleNode("AssignAnd").Append($1).Append($3); } + | variable T_OR_EQUAL expr { $$ = node.NewSimpleNode("AssignOr").Append($1).Append($3); } + | variable T_XOR_EQUAL expr { $$ = node.NewSimpleNode("AssignXor").Append($1).Append($3); } + | variable T_SL_EQUAL expr { $$ = node.NewSimpleNode("AssignShiftLeft").Append($1).Append($3); } + | variable T_SR_EQUAL expr { $$ = node.NewSimpleNode("AssignShiftRight").Append($1).Append($3); } + | variable T_INC { $$ = node.NewSimpleNode("PostIncrement").Append($1) } + | T_INC variable { $$ = node.NewSimpleNode("PreIncrement").Append($2) } + | variable T_DEC { $$ = node.NewSimpleNode("PostDecrement").Append($1) } + | T_DEC variable { $$ = node.NewSimpleNode("PreDecrement").Append($2) } + | expr T_BOOLEAN_OR expr { $$ = node.NewSimpleNode("Or").Append($1).Append($3) } + | expr T_BOOLEAN_AND expr { $$ = node.NewSimpleNode("And").Append($1).Append($3) } + | expr T_LOGICAL_OR expr { $$ = node.NewSimpleNode("Or").Append($1).Append($3) } + | expr T_LOGICAL_AND expr { $$ = node.NewSimpleNode("And").Append($1).Append($3) } + | expr T_LOGICAL_XOR expr { $$ = node.NewSimpleNode("Xor").Append($1).Append($3) } + | expr '|' expr { $$ = node.NewSimpleNode("BitwiseOr").Append($1).Append($3) } + | expr '&' expr { $$ = node.NewSimpleNode("BitwiseAnd").Append($1).Append($3) } + | expr '^' expr { $$ = node.NewSimpleNode("BitwiseXor").Append($1).Append($3) } + | expr '.' expr { $$ = node.NewSimpleNode("Concat").Append($1).Append($3) } + | expr '+' expr { $$ = node.NewSimpleNode("Add").Append($1).Append($3) } + | expr '-' expr { $$ = node.NewSimpleNode("Sub").Append($1).Append($3) } + | expr '*' expr { $$ = node.NewSimpleNode("Mul").Append($1).Append($3) } + | expr T_POW expr { $$ = node.NewSimpleNode("Pow").Append($1).Append($3) } + | expr '/' expr { $$ = node.NewSimpleNode("Div").Append($1).Append($3) } + | expr '%' expr { $$ = node.NewSimpleNode("Mod").Append($1).Append($3) } + | expr T_SL expr { $$ = node.NewSimpleNode("ShiftLeft").Append($1).Append($3) } + | expr T_SR expr { $$ = node.NewSimpleNode("ShiftRight").Append($1).Append($3) } + | '+' expr %prec T_INC { $$ = node.NewSimpleNode("UnaryPlus").Append($2) } + | '-' expr %prec T_INC { $$ = node.NewSimpleNode("UnaryMinus").Append($2) } + | '!' expr { $$ = node.NewSimpleNode("BooleanNot").Append($2) } + | '~' expr { $$ = node.NewSimpleNode("BitwiseNot").Append($2) } + | expr T_IS_IDENTICAL expr { $$ = node.NewSimpleNode("Identical").Append($1).Append($3) } + | expr T_IS_NOT_IDENTICAL expr { $$ = node.NewSimpleNode("NotIdentical").Append($1).Append($3) } + | expr T_IS_EQUAL expr { $$ = node.NewSimpleNode("Equal").Append($1).Append($3) } + | expr T_IS_NOT_EQUAL expr { $$ = node.NewSimpleNode("NotEqual").Append($1).Append($3) } + | expr '<' expr { $$ = node.NewSimpleNode("Smaller").Append($1).Append($3) } + | expr T_IS_SMALLER_OR_EQUAL expr { $$ = node.NewSimpleNode("SmallerOrEqual").Append($1).Append($3) } + | expr '>' expr { $$ = node.NewSimpleNode("Greater").Append($1).Append($3) } + | expr T_IS_GREATER_OR_EQUAL expr { $$ = node.NewSimpleNode("GreaterOrEqual").Append($1).Append($3) } + | expr T_SPACESHIP expr { $$ = node.NewSimpleNode("Spaceship").Append($1).Append($3); } + | expr T_INSTANCEOF class_name_reference { $$ = node.NewSimpleNode("InstanceOf").Append($1).Append($3) } | '(' expr ')' { $$ = $2; } | new_expr { $$ = $1; } - | expr '?' expr ':' expr { $$ = node.SimpleNode("Ternary").Append($1).Append($3).Append($5); } - | expr '?' ':' expr { $$ = node.SimpleNode("Ternary").Append($1).Append($4); } - | expr T_COALESCE expr { $$ = node.SimpleNode("Coalesce").Append($1).Append($3); } + | expr '?' expr ':' expr { $$ = node.NewSimpleNode("Ternary").Append($1).Append($3).Append($5); } + | expr '?' ':' expr { $$ = node.NewSimpleNode("Ternary").Append($1).Append($4); } + | expr T_COALESCE expr { $$ = node.NewSimpleNode("Coalesce").Append($1).Append($3); } | internal_functions_in_yacc { $$ = $1} - | T_INT_CAST expr { $$ = node.SimpleNode("CastInt").Append($2); } - | T_DOUBLE_CAST expr { $$ = node.SimpleNode("CastDouble").Append($2); } - | T_STRING_CAST expr { $$ = node.SimpleNode("CastString").Append($2); } - | T_ARRAY_CAST expr { $$ = node.SimpleNode("CastArray").Append($2); } - | T_OBJECT_CAST expr { $$ = node.SimpleNode("CastObject").Append($2); } - | T_BOOL_CAST expr { $$ = node.SimpleNode("CastBool").Append($2); } - | T_UNSET_CAST expr { $$ = node.SimpleNode("CastUnset").Append($2); } - | T_EXIT exit_expr { $$ = node.SimpleNode("Exit").Append($2); } - | '@' expr { $$ = node.SimpleNode("Silence").Append($2); } + | T_INT_CAST expr { $$ = node.NewSimpleNode("CastInt").Append($2); } + | T_DOUBLE_CAST expr { $$ = node.NewSimpleNode("CastDouble").Append($2); } + | T_STRING_CAST expr { $$ = node.NewSimpleNode("CastString").Append($2); } + | T_ARRAY_CAST expr { $$ = node.NewSimpleNode("CastArray").Append($2); } + | T_OBJECT_CAST expr { $$ = node.NewSimpleNode("CastObject").Append($2); } + | T_BOOL_CAST expr { $$ = node.NewSimpleNode("CastBool").Append($2); } + | T_UNSET_CAST expr { $$ = node.NewSimpleNode("CastUnset").Append($2); } + | T_EXIT exit_expr { $$ = node.NewSimpleNode("Exit").Append($2); } + | '@' expr { $$ = node.NewSimpleNode("Silence").Append($2); } | scalar { $$ = $1; } | '`' backticks_expr '`' { $$ = node.NewNodeExprShellExec($1, $2, $3) } - | T_PRINT expr { $$ = node.SimpleNode("Print").Append($2); } - | T_YIELD { $$ = node.SimpleNode("Yield"); } - | T_YIELD expr { $$ = node.SimpleNode("Yield").Append($2); } - | T_YIELD expr T_DOUBLE_ARROW expr { $$ = node.SimpleNode("Yield").Append($2).Append($4); } - | T_YIELD_FROM expr { $$ = node.SimpleNode("YieldFrom").Append($2); } + | T_PRINT expr { $$ = node.NewSimpleNode("Print").Append($2); } + | T_YIELD { $$ = node.NewSimpleNode("Yield"); } + | T_YIELD expr { $$ = node.NewSimpleNode("Yield").Append($2); } + | T_YIELD expr T_DOUBLE_ARROW expr { $$ = node.NewSimpleNode("Yield").Append($2).Append($4); } + | T_YIELD_FROM expr { $$ = node.NewSimpleNode("YieldFrom").Append($2); } | T_FUNCTION returns_ref '(' parameter_list ')' lexical_vars return_type '{' inner_statement_list '}' { - $$ = node.SimpleNode("Closure"). + $$ = node.NewSimpleNode("Closure"). Attribute("returns_ref", $2). Append($4). Append($6). @@ -924,7 +924,7 @@ expr_without_variable: } | T_STATIC T_FUNCTION returns_ref '(' parameter_list ')' lexical_vars return_type '{' inner_statement_list '}' { - $$ = node.SimpleNode("StaticClosure"). + $$ = node.NewSimpleNode("StaticClosure"). Attribute("returns_ref", $3). Append($5). Append($7). @@ -939,31 +939,31 @@ returns_ref: ; lexical_vars: - /* empty */ { $$ = node.SimpleNode("") } + /* empty */ { $$ = node.NewSimpleNode("") } | T_USE '(' lexical_var_list ')' { $$ = $3; } ; lexical_var_list: lexical_var_list ',' lexical_var { $$ = $1.Append($3) } - | lexical_var { $$ = node.SimpleNode("ClosureUses").Append($1) } + | lexical_var { $$ = node.NewSimpleNode("ClosureUses").Append($1) } ; lexical_var: - T_VARIABLE { $$ = node.SimpleNode("Variable").Attribute("value", $1.String()) } - | '&' T_VARIABLE { $$ = node.SimpleNode("Variable").Attribute("value", $2.String()).Attribute("ref", "true") } + T_VARIABLE { $$ = node.NewSimpleNode("Variable").Attribute("value", $1.String()) } + | '&' T_VARIABLE { $$ = node.NewSimpleNode("Variable").Attribute("value", $2.String()).Attribute("ref", "true") } ; function_call: - name argument_list { $$ = node.SimpleNode("FunctionCall").Append($1).Append($2) } + name argument_list { $$ = node.NewSimpleNode("FunctionCall").Append($1).Append($2) } | class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list - { $$ = node.SimpleNode("StaticCall").Append($1).Append($3).Append($4) } + { $$ = node.NewSimpleNode("StaticCall").Append($1).Append($3).Append($4) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list - { $$ = node.SimpleNode("StaticCall").Append($1).Append($3).Append($4) } - | callable_expr argument_list { $$ = node.SimpleNode("Call").Append($1).Append($2); } + { $$ = node.NewSimpleNode("StaticCall").Append($1).Append($3).Append($4) } + | callable_expr argument_list { $$ = node.NewSimpleNode("Call").Append($1).Append($2); } ; class_name: - T_STATIC { $$ = node.SimpleNode("Static") } + T_STATIC { $$ = node.NewSimpleNode("Static") } | name { $$ = $1; } ; @@ -973,7 +973,7 @@ class_name_reference: ; exit_expr: - /* empty */ { $$ = node.SimpleNode("") } + /* empty */ { $$ = node.NewSimpleNode("") } | '(' optional_expr ')' { $$ = $2; } ; @@ -984,7 +984,7 @@ backticks_expr: ; ctor_arguments: - /* empty */ { $$ = node.SimpleNode("ArgumentList") } + /* empty */ { $$ = node.NewSimpleNode("ArgumentList") } | argument_list { $$ = $1; } ; @@ -1008,7 +1008,7 @@ scalar: | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC { $$ = node.NewNodeScalarString($2) /* TODO: mark as Heredoc*/ } | T_START_HEREDOC T_END_HEREDOC - { $$ = node.SimpleNode("Scalar").Append(node.TokenNode("Heredoc", $1)).Append(node.TokenNode("HeredocEnd", $2)) } + { $$ = node.NewSimpleNode("Scalar").Append(node.TokenNode("Heredoc", $1)).Append(node.TokenNode("HeredocEnd", $2)) } | '"' encaps_list '"' { $$ = node.NewNodeScalarEncapsed($1, $2, $3) } | T_START_HEREDOC encaps_list T_END_HEREDOC { $$ = node.NewNodeScalarEncapsed($1, $2, $3) } | dereferencable_scalar { $$ = $1; } @@ -1016,10 +1016,10 @@ scalar: ; constant: - name { $$ = node.SimpleNode("Const").Append($1) } - | class_name T_PAAMAYIM_NEKUDOTAYIM identifier { $$ = node.SimpleNode("Const").Append($1).Append($3) } + name { $$ = node.NewSimpleNode("Const").Append($1) } + | class_name T_PAAMAYIM_NEKUDOTAYIM identifier { $$ = node.NewSimpleNode("Const").Append($1).Append($3) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM identifier - { $$ = node.SimpleNode("Const").Append($1).Append($3) } + { $$ = node.NewSimpleNode("Const").Append($1).Append($3) } ; expr: @@ -1028,7 +1028,7 @@ expr: ; optional_expr: - /* empty */ { $$ = node.SimpleNode("") } + /* empty */ { $$ = node.NewSimpleNode("") } | expr { $$ = $1; } ; @@ -1050,42 +1050,42 @@ callable_expr: callable_variable: simple_variable { $$ = $1; } - | dereferencable '[' optional_expr ']' { $$ = node.SimpleNode("Dim").Append($1).Append($3)} - | constant '[' optional_expr ']' { $$ = node.SimpleNode("Dim").Append($1).Append($3)} - | dereferencable '{' expr '}' { $$ = node.SimpleNode("Dim").Append($1).Append($3)} + | dereferencable '[' optional_expr ']' { $$ = node.NewSimpleNode("Dim").Append($1).Append($3)} + | constant '[' optional_expr ']' { $$ = node.NewSimpleNode("Dim").Append($1).Append($3)} + | dereferencable '{' expr '}' { $$ = node.NewSimpleNode("Dim").Append($1).Append($3)} | dereferencable T_OBJECT_OPERATOR property_name argument_list - { $$ = node.SimpleNode("MethodCall").Append($1).Append($3).Append($4)} + { $$ = node.NewSimpleNode("MethodCall").Append($1).Append($3).Append($4)} | function_call { $$ = $1; } ; variable: callable_variable { $$ = $1; } | static_member { $$ = $1; } - | dereferencable T_OBJECT_OPERATOR property_name { $$ = node.SimpleNode("Property").Append($1).Append($3) } + | dereferencable T_OBJECT_OPERATOR property_name { $$ = node.NewSimpleNode("Property").Append($1).Append($3) } ; simple_variable: - T_VARIABLE { $$ = node.SimpleNode("Variable").Attribute("name", $1.String()); } - | '$' '{' expr '}' { $$ = node.SimpleNode("Variable").Append($3); } - | '$' simple_variable { $$ = node.SimpleNode("Variable").Append($2); } + T_VARIABLE { $$ = node.NewSimpleNode("Variable").Attribute("name", $1.String()); } + | '$' '{' expr '}' { $$ = node.NewSimpleNode("Variable").Append($3); } + | '$' simple_variable { $$ = node.NewSimpleNode("Variable").Append($2); } ; static_member: class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable - { $$ = node.SimpleNode("StaticProp").Append($1).Append($3) } + { $$ = node.NewSimpleNode("StaticProp").Append($1).Append($3) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable - { $$ = node.SimpleNode("StaticProp").Append($1).Append($3) } + { $$ = node.NewSimpleNode("StaticProp").Append($1).Append($3) } ; new_variable: simple_variable { $$ = $1 } - | new_variable '[' optional_expr ']' { $$ = node.SimpleNode("Dim").Append($1).Append($3) } - | new_variable '{' expr '}' { $$ = node.SimpleNode("Dim").Append($1).Append($3) } - | new_variable T_OBJECT_OPERATOR property_name { $$ = node.SimpleNode("Property").Append($1).Append($3) } + | new_variable '[' optional_expr ']' { $$ = node.NewSimpleNode("Dim").Append($1).Append($3) } + | new_variable '{' expr '}' { $$ = node.NewSimpleNode("Dim").Append($1).Append($3) } + | new_variable T_OBJECT_OPERATOR property_name { $$ = node.NewSimpleNode("Property").Append($1).Append($3) } | class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable - { $$ = node.SimpleNode("StaticProperty").Append($1).Append($3) } + { $$ = node.NewSimpleNode("StaticProperty").Append($1).Append($3) } | new_variable T_PAAMAYIM_NEKUDOTAYIM simple_variable - { $$ = node.SimpleNode("StaticProperty").Append($1).Append($3) } + { $$ = node.NewSimpleNode("StaticProperty").Append($1).Append($3) } ; member_name: @@ -1095,7 +1095,7 @@ member_name: ; property_name: - T_STRING { $$ = node.SimpleNode("PropertyName").Attribute("value", $1.String()) } + T_STRING { $$ = node.NewSimpleNode("PropertyName").Attribute("value", $1.String()) } | '{' expr '}' { $$ = $2; } | simple_variable { $$ = $1 } ; @@ -1105,31 +1105,31 @@ array_pair_list: ; possible_array_pair: - /* empty */ { $$ = node.SimpleNode(""); } + /* empty */ { $$ = node.NewSimpleNode(""); } | array_pair { $$ = $1; } ; non_empty_array_pair_list: non_empty_array_pair_list ',' possible_array_pair { $$ = $1.Append($3) } - | possible_array_pair { $$ = node.SimpleNode("ArrayPairList").Append($1) } + | possible_array_pair { $$ = node.NewSimpleNode("ArrayPairList").Append($1) } ; array_pair: - expr T_DOUBLE_ARROW expr { $$ = node.SimpleNode("ArrayElement").Append($1).Append($3) } - | expr { $$ = node.SimpleNode("ArrayElement").Append($1) } - | expr T_DOUBLE_ARROW '&' variable { $$ = node.SimpleNode("ArrayElement").Append($1).Append(node.SimpleNode("Ref").Append($4)) } - | '&' variable { $$ = node.SimpleNode("ArrayElement").Append(node.SimpleNode("Ref").Append($2)) } + expr T_DOUBLE_ARROW expr { $$ = node.NewSimpleNode("ArrayElement").Append($1).Append($3) } + | expr { $$ = node.NewSimpleNode("ArrayElement").Append($1) } + | expr T_DOUBLE_ARROW '&' variable { $$ = node.NewSimpleNode("ArrayElement").Append($1).Append(node.NewSimpleNode("Ref").Append($4)) } + | '&' variable { $$ = node.NewSimpleNode("ArrayElement").Append(node.NewSimpleNode("Ref").Append($2)) } | expr T_DOUBLE_ARROW T_LIST '(' array_pair_list ')' { - $$ = node.SimpleNode("ArrayElement"). + $$ = node.NewSimpleNode("ArrayElement"). Append($1). - Append(node.SimpleNode("ArrayList").Append($5)) + Append(node.NewSimpleNode("ArrayList").Append($5)) } | T_LIST '(' array_pair_list ')' { - $$ = node.SimpleNode("ArrayElement"). - Append(node.SimpleNode("ArrayList").Append($3)) + $$ = node.NewSimpleNode("ArrayElement"). + Append(node.NewSimpleNode("ArrayList").Append($3)) } ; @@ -1141,39 +1141,39 @@ encaps_list: ; encaps_var: - T_VARIABLE { $$ = node.SimpleNode("Variable").Attribute("value", $1.String()) } - | T_VARIABLE '[' encaps_var_offset ']' { $$ = node.SimpleNode("Variable").Attribute("value", $1.String()).Append(node.SimpleNode("offset").Append($3)) } - | T_VARIABLE T_OBJECT_OPERATOR T_STRING { $$ = node.SimpleNode("Variable").Attribute("value", $1.String()).Append(node.SimpleNode("property").Attribute("value", $3.String())) } - | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { $$ = node.SimpleNode("Variable").Append(node.SimpleNode("expr").Append($2)) } - | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '}' { $$ = node.SimpleNode("Variable").Attribute("value", $2.String()) } + T_VARIABLE { $$ = node.NewSimpleNode("Variable").Attribute("value", $1.String()) } + | T_VARIABLE '[' encaps_var_offset ']' { $$ = node.NewSimpleNode("Variable").Attribute("value", $1.String()).Append(node.NewSimpleNode("offset").Append($3)) } + | T_VARIABLE T_OBJECT_OPERATOR T_STRING { $$ = node.NewSimpleNode("Variable").Attribute("value", $1.String()).Append(node.NewSimpleNode("property").Attribute("value", $3.String())) } + | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { $$ = node.NewSimpleNode("Variable").Append(node.NewSimpleNode("expr").Append($2)) } + | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '}' { $$ = node.NewSimpleNode("Variable").Attribute("value", $2.String()) } | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' - { $$ = node.SimpleNode("Variable").Attribute("value", $2.String()).Append(node.SimpleNode("offset").Append($4)) } + { $$ = node.NewSimpleNode("Variable").Attribute("value", $2.String()).Append(node.NewSimpleNode("offset").Append($4)) } | T_CURLY_OPEN variable '}' { $$ = $2; } ; encaps_var_offset: - T_STRING { $$ = node.SimpleNode("OffsetString").Attribute("value", $1.String()) } - | T_NUM_STRING { $$ = node.SimpleNode("OffsetNumString").Attribute("value", $1.String()) } - | '-' T_NUM_STRING { $$ = node.SimpleNode("OffsetNegateNumString").Attribute("value", $2.String()) } - | T_VARIABLE { $$ = node.SimpleNode("OffsetVariable").Attribute("value", $1.String()) } + T_STRING { $$ = node.NewSimpleNode("OffsetString").Attribute("value", $1.String()) } + | T_NUM_STRING { $$ = node.NewSimpleNode("OffsetNumString").Attribute("value", $1.String()) } + | '-' T_NUM_STRING { $$ = node.NewSimpleNode("OffsetNegateNumString").Attribute("value", $2.String()) } + | T_VARIABLE { $$ = node.NewSimpleNode("OffsetVariable").Attribute("value", $1.String()) } ; internal_functions_in_yacc: T_ISSET '(' isset_variables possible_comma ')' { $$ = $3; } - | T_EMPTY '(' expr ')' { $$ = node.SimpleNode("Empty").Append($3); } - | T_INCLUDE expr { $$ = node.SimpleNode("Include").Append($2); } - | T_INCLUDE_ONCE expr { $$ = node.SimpleNode("IncludeOnce").Append($2); } - | T_EVAL '(' expr ')' { $$ = node.SimpleNode("Eval").Append($3); } - | T_REQUIRE expr { $$ = node.SimpleNode("Require").Append($2); } - | T_REQUIRE_ONCE expr { $$ = node.SimpleNode("RequireOnce").Append($2); } + | T_EMPTY '(' expr ')' { $$ = node.NewSimpleNode("Empty").Append($3); } + | T_INCLUDE expr { $$ = node.NewSimpleNode("Include").Append($2); } + | T_INCLUDE_ONCE expr { $$ = node.NewSimpleNode("IncludeOnce").Append($2); } + | T_EVAL '(' expr ')' { $$ = node.NewSimpleNode("Eval").Append($3); } + | T_REQUIRE expr { $$ = node.NewSimpleNode("Require").Append($2); } + | T_REQUIRE_ONCE expr { $$ = node.NewSimpleNode("RequireOnce").Append($2); } ; isset_variables: isset_variable { $$ = $1; } - | isset_variables ',' isset_variable { $$ = node.SimpleNode("AndIsset").Append($1).Append($3); } + | isset_variables ',' isset_variable { $$ = node.NewSimpleNode("AndIsset").Append($1).Append($3); } ; isset_variable: - expr { $$ = node.SimpleNode("Isset").Append($1) } + expr { $$ = node.NewSimpleNode("Isset").Append($1) } ; /////////////////////////////////////////////////////////////////////////