[refactoring] update ast structure of "Class" and "Trait" nodes

This commit is contained in:
Vadym Slizov
2020-11-22 02:03:39 +02:00
parent 3bda40e8ce
commit fe2e097d8f
7 changed files with 1257 additions and 1233 deletions

View File

@@ -238,12 +238,15 @@ func (n *StmtCatch) Accept(v NodeVisitor) {
// StmtClass node
type StmtClass struct {
Node
ClassName Vertex
Modifiers []Vertex
ArgumentList *ArgumentList
Extends *StmtClassExtends
Implements *StmtClassImplements
Stmts []Vertex
Modifiers []Vertex
ClassTkn *token.Token
ClassName Vertex
ArgumentList Vertex
Extends *StmtClassExtends
Implements *StmtClassImplements
OpenCurlyBracket *token.Token
Stmts []Vertex
CloseCurlyBracket *token.Token
}
func (n *StmtClass) Accept(v NodeVisitor) {
@@ -741,8 +744,13 @@ func (n *StmtThrow) Accept(v NodeVisitor) {
// StmtTrait node
type StmtTrait struct {
Node
TraitName Vertex
Stmts []Vertex
TraitTkn *token.Token
TraitName Vertex
Extends *StmtClassExtends
Implements *StmtClassImplements
OpenCurlyBracket *token.Token
Stmts []Vertex
CloseCurlyBracket *token.Token
}
func (n *StmtTrait) Accept(v NodeVisitor) {

View File

@@ -1476,7 +1476,7 @@ func (p *PrettyPrinter) printStmtClass(n ast.Vertex) {
if nn.ArgumentList != nil {
io.WriteString(p.w, "(")
p.joinPrint(", ", nn.ArgumentList.Arguments)
p.joinPrint(", ", nn.ArgumentList.(*ast.ArgumentList).Arguments)
io.WriteString(p.w, ")")
}

View File

@@ -2097,7 +2097,7 @@ func (p *Printer) printStmtClass(n ast.Vertex) {
if nn.ArgumentList != nil {
p.printFreeFloatingOrDefault(nn.ArgumentList, token.Start, "(")
p.joinPrint(",", nn.ArgumentList.Arguments)
p.joinPrint(",", nn.ArgumentList.(*ast.ArgumentList).Arguments)
p.printFreeFloatingOrDefault(nn.ArgumentList, token.End, ")")
}