[refactoring] update ast structure of "ExprMethodCall" and "ExprPropertyFetch" nodes

This commit is contained in:
Vadym Slizov
2020-12-03 21:42:16 +02:00
parent b5ef30eb36
commit b1e9f5e167
9 changed files with 638 additions and 519 deletions

View File

@@ -1215,9 +1215,12 @@ func (n *ExprList) Accept(v NodeVisitor) {
// ExprMethodCall node
type ExprMethodCall struct {
Node
Var Vertex
Method Vertex
ArgumentList *ArgumentList
Var Vertex
ObjectOperatorTkn *token.Token
Method Vertex
OpenParenthesisTkn *token.Token
Arguments []Vertex
CloseParenthesisTkn *token.Token
}
func (n *ExprMethodCall) Accept(v NodeVisitor) {
@@ -1288,8 +1291,9 @@ func (n *ExprPrint) Accept(v NodeVisitor) {
// ExprPropertyFetch node
type ExprPropertyFetch struct {
Node
Var Vertex
Property Vertex
Var Vertex
ObjectOperatorTkn *token.Token
Property Vertex
}
func (n *ExprPropertyFetch) Accept(v NodeVisitor) {

View File

@@ -1396,10 +1396,12 @@ func (t *DFS) Traverse(n ast.Vertex) {
t.Traverse(nn.Method)
t.visitor.Leave("Method", true)
}
if nn.ArgumentList != nil {
t.visitor.Enter("ArgumentList", true)
t.Traverse(nn.ArgumentList)
t.visitor.Leave("ArgumentList", true)
if nn.Arguments != nil {
t.visitor.Enter("Arguments", false)
for _, c := range nn.Arguments {
t.Traverse(c)
}
t.visitor.Leave("Arguments", false)
}
case *ast.ExprNew:
if nn == nil {