create ArgumentList node

This commit is contained in:
z7zmey
2018-04-29 19:58:49 +03:00
parent be3bdbfdc0
commit 8fc4c60bfe
28 changed files with 2010 additions and 1832 deletions

View File

@@ -1097,7 +1097,7 @@ func (p *Printer) printExprFunctionCall(n node.Node) {
p.Print(nn.Function)
io.WriteString(p.w, "(")
p.joinPrint(", ", nn.Arguments)
p.joinPrint(", ", nn.ArgumentList.Arguments)
io.WriteString(p.w, ")")
}
@@ -1146,7 +1146,7 @@ func (p *Printer) printExprMethodCall(n node.Node) {
io.WriteString(p.w, "->")
p.Print(nn.Method)
io.WriteString(p.w, "(")
p.joinPrint(", ", nn.Arguments)
p.joinPrint(", ", nn.ArgumentList.Arguments)
io.WriteString(p.w, ")")
}
@@ -1156,9 +1156,9 @@ func (p *Printer) printExprNew(n node.Node) {
io.WriteString(p.w, "new ")
p.Print(nn.Class)
if nn.Arguments != nil {
if nn.ArgumentList != nil {
io.WriteString(p.w, "(")
p.joinPrint(", ", nn.Arguments)
p.joinPrint(", ", nn.ArgumentList.Arguments)
io.WriteString(p.w, ")")
}
}
@@ -1254,7 +1254,7 @@ func (p *Printer) printExprStaticCall(n node.Node) {
io.WriteString(p.w, "::")
p.Print(nn.Call)
io.WriteString(p.w, "(")
p.joinPrint(", ", nn.Arguments)
p.joinPrint(", ", nn.ArgumentList.Arguments)
io.WriteString(p.w, ")")
}
@@ -1536,9 +1536,9 @@ func (p *Printer) printStmtClass(n node.Node) {
p.Print(nn.ClassName)
}
if nn.Args != nil {
if nn.ArgumentList != nil {
io.WriteString(p.w, "(")
p.joinPrint(", ", nn.Args)
p.joinPrint(", ", nn.ArgumentList.Arguments)
io.WriteString(p.w, ")")
}

View File

@@ -1522,17 +1522,19 @@ func TestPrintFunctionCall(t *testing.T) {
p := printer.NewPrinter(o, " ")
p.Print(&expr.FunctionCall{
Function: &expr.Variable{VarName: &node.Identifier{Value: "var"}},
Arguments: []node.Node{
&node.Argument{
IsReference: true,
Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}},
},
&node.Argument{
Variadic: true,
Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}},
},
&node.Argument{
Expr: &expr.Variable{VarName: &node.Identifier{Value: "c"}},
ArgumentList: &node.ArgumentList{
Arguments: []node.Node{
&node.Argument{
IsReference: true,
Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}},
},
&node.Argument{
Variadic: true,
Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}},
},
&node.Argument{
Expr: &expr.Variable{VarName: &node.Identifier{Value: "c"}},
},
},
},
})
@@ -1648,12 +1650,14 @@ func TestPrintMethodCall(t *testing.T) {
p.Print(&expr.MethodCall{
Variable: &expr.Variable{VarName: &node.Identifier{Value: "foo"}},
Method: &node.Identifier{Value: "bar"},
Arguments: []node.Node{
&node.Argument{
Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}},
},
&node.Argument{
Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}},
ArgumentList: &node.ArgumentList{
Arguments: []node.Node{
&node.Argument{
Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}},
},
&node.Argument{
Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}},
},
},
},
})
@@ -1672,12 +1676,14 @@ func TestPrintNew(t *testing.T) {
p := printer.NewPrinter(o, " ")
p.Print(&expr.New{
Class: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Foo"}}},
Arguments: []node.Node{
&node.Argument{
Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}},
},
&node.Argument{
Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}},
ArgumentList: &node.ArgumentList{
Arguments: []node.Node{
&node.Argument{
Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}},
},
&node.Argument{
Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}},
},
},
},
})
@@ -1901,12 +1907,14 @@ func TestPrintStaticCall(t *testing.T) {
p.Print(&expr.StaticCall{
Class: &node.Identifier{Value: "Foo"},
Call: &node.Identifier{Value: "bar"},
Arguments: []node.Node{
&node.Argument{
Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}},
},
&node.Argument{
Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}},
ArgumentList: &node.ArgumentList{
Arguments: []node.Node{
&node.Argument{
Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}},
},
&node.Argument{
Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}},
},
},
},
})
@@ -2509,12 +2517,14 @@ func TestPrintStmtAnonymousClass(t *testing.T) {
Stmts: []node.Node{
&stmt.Class{
Modifiers: []node.Node{&node.Identifier{Value: "abstract"}},
Args: []node.Node{
&node.Argument{
Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}},
},
&node.Argument{
Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}},
ArgumentList: &node.ArgumentList{
Arguments: []node.Node{
&node.Argument{
Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}},
},
&node.Argument{
Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}},
},
},
},
Extends: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Bar"}}},