From b5e29fc9f5ebe7ec6b1f89a0cf82aade9cb3858b Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sun, 5 Jul 2020 18:27:34 +0300 Subject: [PATCH] [refactoring] fix dfs traverser --- pkg/ast/traverser/dfs.go | 41 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/pkg/ast/traverser/dfs.go b/pkg/ast/traverser/dfs.go index 2bba30c..7a13184 100644 --- a/pkg/ast/traverser/dfs.go +++ b/pkg/ast/traverser/dfs.go @@ -337,6 +337,21 @@ func (t *DFS) Traverse(n ast.Vertex) { } t.visitor.Leave("Modifiers", false) } + if nn.ArgumentList != nil { + t.visitor.Enter("ArgumentList", true) + t.Traverse(nn.ArgumentList) + t.visitor.Leave("ArgumentList", true) + } + if nn.Extends != nil { + t.visitor.Enter("Extends", true) + t.Traverse(nn.Extends) + t.visitor.Leave("Extends", true) + } + if nn.Implements != nil { + t.visitor.Enter("Implements", true) + t.Traverse(nn.Implements) + t.visitor.Leave("Implements", true) + } if nn.Stmts != nil { t.visitor.Enter("Stmts", false) for _, c := range nn.Stmts { @@ -785,6 +800,11 @@ func (t *DFS) Traverse(n ast.Vertex) { t.Traverse(nn.InterfaceName) t.visitor.Leave("InterfaceName", true) } + if nn.Extends != nil { + t.visitor.Enter("Extends", true) + t.Traverse(nn.Extends) + t.visitor.Leave("Extends", true) + } if nn.Stmts != nil { t.visitor.Enter("Stmts", false) for _, c := range nn.Stmts { @@ -845,6 +865,12 @@ func (t *DFS) Traverse(n ast.Vertex) { return } case *ast.StmtProperty: + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } if nn.Var != nil { t.visitor.Enter("Var", true) t.Traverse(nn.Var) @@ -950,6 +976,11 @@ func (t *DFS) Traverse(n ast.Vertex) { t.Traverse(nn.Cond) t.visitor.Leave("Cond", true) } + if nn.CaseList != nil { + t.visitor.Enter("CaseList", true) + t.Traverse(nn.CaseList) + t.visitor.Leave("CaseList", true) + } case *ast.StmtThrow: if nn == nil { return @@ -1503,6 +1534,11 @@ 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) + } case *ast.ExprNew: if nn == nil { return @@ -1515,6 +1551,11 @@ func (t *DFS) Traverse(n ast.Vertex) { t.Traverse(nn.Class) t.visitor.Leave("Class", true) } + if nn.ArgumentList != nil { + t.visitor.Enter("ArgumentList", true) + t.Traverse(nn.ArgumentList) + t.visitor.Leave("ArgumentList", true) + } case *ast.ExprPostDec: if nn == nil { return