[refactoring] update ast structure of "Encapsed", "EncapsedStringPart" and "Heredoc" nodes

This commit is contained in:
Vadym Slizov
2020-11-20 23:36:45 +02:00
parent e3ad9747f4
commit e6a23dfa3a
8 changed files with 556 additions and 487 deletions

View File

@@ -126,7 +126,9 @@ func (n *ScalarDnumber) Accept(v NodeVisitor) {
// ScalarEncapsed node
type ScalarEncapsed struct {
Node
Parts []Vertex
OpenQoteTkn *token.Token
Parts []Vertex
CloseQoteTkn *token.Token
}
func (n *ScalarEncapsed) Accept(v NodeVisitor) {
@@ -136,7 +138,8 @@ func (n *ScalarEncapsed) Accept(v NodeVisitor) {
// ScalarEncapsedStringPart node
type ScalarEncapsedStringPart struct {
Node
Value []byte
EncapsedStrTkn *token.Token
Value []byte
}
func (n *ScalarEncapsedStringPart) Accept(v NodeVisitor) {
@@ -146,8 +149,9 @@ func (n *ScalarEncapsedStringPart) Accept(v NodeVisitor) {
// ScalarHeredoc node
type ScalarHeredoc struct {
Node
Label []byte
Parts []Vertex
OpenHeredocTkn *token.Token
Parts []Vertex
CloseHeredocTkn *token.Token
}
func (n *ScalarHeredoc) Accept(v NodeVisitor) {

View File

@@ -1224,9 +1224,6 @@ func (v *Dump) ScalarHeredoc(n *ast.ScalarHeredoc) {
v.printIndentIfNotSingle(v.indent - 1)
v.print("&ast.ScalarHeredoc{\n")
v.printNode(n.GetNode())
v.printIndent(v.indent)
v.print(fmt.Sprintf("Label: %q,\n", n.Label))
}
func (v *Dump) ScalarLnumber(n *ast.ScalarLnumber) {

View File

@@ -558,7 +558,7 @@ func (p *PrettyPrinter) printScalarEncapsed(n ast.Vertex) {
func (p *PrettyPrinter) printScalarHeredoc(n ast.Vertex) {
nn := n.(*ast.ScalarHeredoc)
io.WriteString(p.w, string(nn.Label))
io.WriteString(p.w, string(nn.OpenHeredocTkn.Value))
for _, part := range nn.Parts {
switch part.(type) {
@@ -571,7 +571,7 @@ func (p *PrettyPrinter) printScalarHeredoc(n ast.Vertex) {
}
}
io.WriteString(p.w, strings.Trim(string(nn.Label), "<\"'\n"))
io.WriteString(p.w, strings.Trim(string(nn.OpenHeredocTkn.Value), "<\"'\n"))
}
func (p *PrettyPrinter) printScalarMagicConstant(n ast.Vertex) {

View File

@@ -687,7 +687,7 @@ func (p *Printer) printScalarHeredoc(n ast.Vertex) {
p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart)
p.bufStart = ""
p.write(nn.Label)
p.write(nn.OpenHeredocTkn.Value)
for _, part := range nn.Parts {
switch part.(type) {
@@ -710,7 +710,7 @@ func (p *Printer) printScalarHeredoc(n ast.Vertex) {
}
}
p.write([]byte(strings.Trim(string(nn.Label), "<\"'\n")))
p.write([]byte(strings.Trim(string(nn.OpenHeredocTkn.Value), "<\"'\n")))
p.printFreeFloating(nn, token.End)
}