refactoring: create "ScalarEncapsedStringBrackets" node
This commit is contained in:
@@ -2274,6 +2274,19 @@ func (v *Dumper) ScalarEncapsedStringVar(n *ast.ScalarEncapsedStringVar) {
|
||||
v.print(v.indent, "},\n")
|
||||
}
|
||||
|
||||
func (v *Dumper) ScalarEncapsedStringBrackets(n *ast.ScalarEncapsedStringBrackets) {
|
||||
v.print(0, "&ast.ScalarEncapsedStringBrackets{\n")
|
||||
v.indent++
|
||||
|
||||
v.dumpPosition(n.Position)
|
||||
v.dumpToken("OpenCurlyBracketTkn", n.OpenCurlyBracketTkn)
|
||||
v.dumpVertex("Var", n.Var)
|
||||
v.dumpToken("CloseCurlyBracketTkn", n.CloseCurlyBracketTkn)
|
||||
|
||||
v.indent--
|
||||
v.print(v.indent, "},\n")
|
||||
}
|
||||
|
||||
func (v *Dumper) ScalarHeredoc(n *ast.ScalarHeredoc) {
|
||||
v.print(0, "&ast.ScalarHeredoc{\n")
|
||||
v.indent++
|
||||
@@ -2374,16 +2387,3 @@ func (v *Dumper) NameNamePart(n *ast.NameNamePart) {
|
||||
v.indent--
|
||||
v.print(v.indent, "},\n")
|
||||
}
|
||||
|
||||
func (v *Dumper) ParserBrackets(n *ast.ParserBrackets) {
|
||||
v.print(0, "&ast.ParserBrackets{\n")
|
||||
v.indent++
|
||||
|
||||
v.dumpPosition(n.Position)
|
||||
v.dumpToken("OpenBracketTkn", n.OpenBracketTkn)
|
||||
v.dumpVertex("Child", n.Child)
|
||||
v.dumpToken("CloseBracketTkn", n.CloseBracketTkn)
|
||||
|
||||
v.indent--
|
||||
v.print(v.indent, "},\n")
|
||||
}
|
||||
|
||||
@@ -1985,6 +1985,12 @@ func (f *formatter) ScalarEncapsedStringVar(n *ast.ScalarEncapsedStringVar) {
|
||||
n.CloseCurlyBracketTkn = f.newToken('}', []byte("}"))
|
||||
}
|
||||
|
||||
func (f *formatter) ScalarEncapsedStringBrackets(n *ast.ScalarEncapsedStringBrackets) {
|
||||
n.OpenCurlyBracketTkn = f.newToken('{', []byte("{"))
|
||||
n.Var.Accept(f)
|
||||
n.CloseCurlyBracketTkn = f.newToken('}', []byte("}"))
|
||||
}
|
||||
|
||||
func (f *formatter) ScalarHeredoc(n *ast.ScalarHeredoc) {
|
||||
n.OpenHeredocTkn = f.newToken(token.T_START_HEREDOC, []byte("<<<EOT\n"))
|
||||
for _, p := range n.Parts {
|
||||
@@ -2062,7 +2068,3 @@ func (f *formatter) NameNamePart(n *ast.NameNamePart) {
|
||||
n.StringTkn.FreeFloating = f.getFreeFloating()
|
||||
}
|
||||
}
|
||||
|
||||
func (f *formatter) ParserBrackets(n *ast.ParserBrackets) {
|
||||
// TODO
|
||||
}
|
||||
|
||||
@@ -6694,6 +6694,31 @@ func TestFormatter_ScalarEncapsedStringVar_Dim(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestFormatter_ScalarEncapsedStringBrackets(t *testing.T) {
|
||||
o := bytes.NewBufferString("")
|
||||
|
||||
n := &ast.ScalarEncapsedStringBrackets{
|
||||
Var: &ast.ExprVariable{
|
||||
VarName: &ast.Identifier{
|
||||
Value: []byte("$foo"),
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1)
|
||||
n.Accept(f)
|
||||
|
||||
p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP)
|
||||
n.Accept(p)
|
||||
|
||||
expected := `{$foo}`
|
||||
actual := o.String()
|
||||
|
||||
if expected != actual {
|
||||
t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual)
|
||||
}
|
||||
}
|
||||
|
||||
func TestFormatter_ScalarHeredoc(t *testing.T) {
|
||||
o := bytes.NewBufferString("")
|
||||
|
||||
|
||||
@@ -618,6 +618,10 @@ func (v *Null) ScalarEncapsedStringPart(_ *ast.ScalarEncapsedStringPart) {
|
||||
// do nothing
|
||||
}
|
||||
|
||||
func (v *Null) ScalarEncapsedStringBrackets(_ *ast.ScalarEncapsedStringBrackets) {
|
||||
// do nothing
|
||||
}
|
||||
|
||||
func (v *Null) ScalarEncapsedStringVar(_ *ast.ScalarEncapsedStringVar) {
|
||||
// do nothing
|
||||
}
|
||||
@@ -653,7 +657,3 @@ func (v *Null) NameRelative(_ *ast.NameRelative) {
|
||||
func (v *Null) NameNamePart(_ *ast.NameNamePart) {
|
||||
// do nothing
|
||||
}
|
||||
|
||||
func (v *Null) ParserBrackets(_ *ast.ParserBrackets) {
|
||||
// do nothing
|
||||
}
|
||||
|
||||
@@ -1208,6 +1208,12 @@ func (p *printer) ScalarEncapsedStringVar(n *ast.ScalarEncapsedStringVar) {
|
||||
p.printToken(n.CloseCurlyBracketTkn, []byte("}"))
|
||||
}
|
||||
|
||||
func (p *printer) ScalarEncapsedStringBrackets(n *ast.ScalarEncapsedStringBrackets) {
|
||||
p.printToken(n.OpenCurlyBracketTkn, []byte("{"))
|
||||
p.printNode(n.Var)
|
||||
p.printToken(n.CloseCurlyBracketTkn, []byte("}"))
|
||||
}
|
||||
|
||||
func (p *printer) ScalarHeredoc(n *ast.ScalarHeredoc) {
|
||||
p.printToken(n.OpenHeredocTkn, []byte("<<<EOT\n"))
|
||||
p.printList(n.Parts)
|
||||
@@ -1245,9 +1251,3 @@ func (p *printer) NameRelative(n *ast.NameRelative) {
|
||||
func (p *printer) NameNamePart(n *ast.NameNamePart) {
|
||||
p.printToken(n.StringTkn, n.Value)
|
||||
}
|
||||
|
||||
func (p *printer) ParserBrackets(n *ast.ParserBrackets) {
|
||||
p.printToken(n.OpenBracketTkn, nil)
|
||||
p.printNode(n.Child)
|
||||
p.printToken(n.CloseBracketTkn, nil)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user