[refactoring] update ast structure of "Parameter", "Class", "FunctionCall", "MethodCall", "New" and "StaticCall" nodes
This commit is contained in:
@@ -20,8 +20,6 @@ type Visitor interface {
|
||||
type NodeVisitor interface {
|
||||
Root(n *Root)
|
||||
Nullable(n *Nullable)
|
||||
Reference(n *Reference)
|
||||
Variadic(n *Variadic)
|
||||
Parameter(n *Parameter)
|
||||
Identifier(n *Identifier)
|
||||
Argument(n *Argument)
|
||||
|
||||
@@ -42,32 +42,12 @@ func (n *Nullable) Accept(v NodeVisitor) {
|
||||
v.Nullable(n)
|
||||
}
|
||||
|
||||
// Reference node
|
||||
type Reference struct {
|
||||
Node
|
||||
AmpersandTkn *token.Token
|
||||
Var Vertex
|
||||
}
|
||||
|
||||
func (n *Reference) Accept(v NodeVisitor) {
|
||||
v.Reference(n)
|
||||
}
|
||||
|
||||
// Variadic node
|
||||
type Variadic struct {
|
||||
Node
|
||||
VariadicTkn *token.Token
|
||||
Var Vertex
|
||||
}
|
||||
|
||||
func (n *Variadic) Accept(v NodeVisitor) {
|
||||
v.Variadic(n)
|
||||
}
|
||||
|
||||
// Parameter node
|
||||
type Parameter struct {
|
||||
Node
|
||||
Type Vertex
|
||||
AmpersandTkn *token.Token
|
||||
VariadicTkn *token.Token
|
||||
Var Vertex
|
||||
EqualTkn *token.Token
|
||||
DefaultValue Vertex
|
||||
@@ -231,6 +211,7 @@ type StmtClass struct {
|
||||
ClassName Vertex
|
||||
OpenParenthesisTkn *token.Token
|
||||
Arguments []Vertex
|
||||
SeparatorTkns []*token.Token
|
||||
CloseParenthesisTkn *token.Token
|
||||
Extends Vertex
|
||||
Implements Vertex
|
||||
@@ -1131,6 +1112,7 @@ type ExprFunctionCall struct {
|
||||
Function Vertex
|
||||
OpenParenthesisTkn *token.Token
|
||||
Arguments []Vertex
|
||||
SeparatorTkns []*token.Token
|
||||
CloseParenthesisTkn *token.Token
|
||||
}
|
||||
|
||||
@@ -1208,6 +1190,7 @@ type ExprMethodCall struct {
|
||||
Method Vertex
|
||||
OpenParenthesisTkn *token.Token
|
||||
Arguments []Vertex
|
||||
SeparatorTkns []*token.Token
|
||||
CloseParenthesisTkn *token.Token
|
||||
}
|
||||
|
||||
@@ -1222,6 +1205,7 @@ type ExprNew struct {
|
||||
Class Vertex
|
||||
OpenParenthesisTkn *token.Token
|
||||
Arguments []Vertex
|
||||
SeparatorTkns []*token.Token
|
||||
CloseParenthesisTkn *token.Token
|
||||
}
|
||||
|
||||
@@ -1349,6 +1333,7 @@ type ExprStaticCall struct {
|
||||
Call Vertex
|
||||
OpenParenthesisTkn *token.Token
|
||||
Arguments []Vertex
|
||||
SeparatorTkns []*token.Token
|
||||
CloseParenthesisTkn *token.Token
|
||||
}
|
||||
|
||||
|
||||
@@ -40,30 +40,6 @@ func (t *DFS) Traverse(n ast.Vertex) {
|
||||
t.Traverse(nn.Expr)
|
||||
t.visitor.Leave("Expr", true)
|
||||
}
|
||||
case *ast.Reference:
|
||||
if nn == nil {
|
||||
return
|
||||
}
|
||||
if !t.visitor.EnterNode(nn) {
|
||||
return
|
||||
}
|
||||
if nn.Var != nil {
|
||||
t.visitor.Enter("Var", true)
|
||||
t.Traverse(nn.Var)
|
||||
t.visitor.Leave("Var", true)
|
||||
}
|
||||
case *ast.Variadic:
|
||||
if nn == nil {
|
||||
return
|
||||
}
|
||||
if !t.visitor.EnterNode(nn) {
|
||||
return
|
||||
}
|
||||
if nn.Var != nil {
|
||||
t.visitor.Enter("Var", true)
|
||||
t.Traverse(nn.Var)
|
||||
t.visitor.Leave("Var", true)
|
||||
}
|
||||
case *ast.Parameter:
|
||||
if nn == nil {
|
||||
return
|
||||
|
||||
@@ -203,18 +203,6 @@ func (v *Dump) Nullable(n *ast.Nullable) {
|
||||
v.printNode(n.GetNode())
|
||||
}
|
||||
|
||||
func (v *Dump) Reference(n *ast.Reference) {
|
||||
v.printIndentIfNotSingle(v.indent - 1)
|
||||
v.print("&ast.Reference{\n")
|
||||
v.printNode(n.GetNode())
|
||||
}
|
||||
|
||||
func (v *Dump) Variadic(n *ast.Variadic) {
|
||||
v.printIndentIfNotSingle(v.indent - 1)
|
||||
v.print("&ast.Variadic{\n")
|
||||
v.printNode(n.GetNode())
|
||||
}
|
||||
|
||||
func (v *Dump) Parameter(n *ast.Parameter) {
|
||||
v.printIndent(v.indent - 1)
|
||||
v.print("&ast.Parameter{\n")
|
||||
|
||||
@@ -30,14 +30,6 @@ func (v *Null) Nullable(_ *ast.Nullable) {
|
||||
// do nothing
|
||||
}
|
||||
|
||||
func (v *Null) Reference(_ *ast.Reference) {
|
||||
// do nothing
|
||||
}
|
||||
|
||||
func (v *Null) Variadic(_ *ast.Variadic) {
|
||||
// do nothing
|
||||
}
|
||||
|
||||
func (v *Null) Parameter(_ *ast.Parameter) {
|
||||
// do nothing
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user