refactoring: update ast structure of "ArrayItem" node
This commit is contained in:
parent
8bf1fa822d
commit
0f5f5e7dc7
@ -30786,61 +30786,53 @@ func TestExprArray_Items(t *testing.T) {
|
|||||||
StartPos: 15,
|
StartPos: 15,
|
||||||
EndPos: 18,
|
EndPos: 18,
|
||||||
},
|
},
|
||||||
Val: &ast.ExprReference{
|
AmpersandTkn: &token.Token{
|
||||||
|
ID: token.ID(38),
|
||||||
|
Value: []byte("&"),
|
||||||
Position: &position.Position{
|
Position: &position.Position{
|
||||||
StartLine: 1,
|
StartLine: 1,
|
||||||
EndLine: 1,
|
EndLine: 1,
|
||||||
StartPos: 15,
|
StartPos: 15,
|
||||||
EndPos: 18,
|
EndPos: 16,
|
||||||
},
|
},
|
||||||
AmpersandTkn: &token.Token{
|
FreeFloating: []*token.Token{
|
||||||
ID: token.ID(38),
|
{
|
||||||
Value: []byte("&"),
|
ID: token.T_WHITESPACE,
|
||||||
Position: &position.Position{
|
Value: []byte(" "),
|
||||||
StartLine: 1,
|
Position: &position.Position{
|
||||||
EndLine: 1,
|
StartLine: 1,
|
||||||
StartPos: 15,
|
EndLine: 1,
|
||||||
EndPos: 16,
|
StartPos: 14,
|
||||||
},
|
EndPos: 15,
|
||||||
FreeFloating: []*token.Token{
|
|
||||||
{
|
|
||||||
ID: token.T_WHITESPACE,
|
|
||||||
Value: []byte(" "),
|
|
||||||
Position: &position.Position{
|
|
||||||
StartLine: 1,
|
|
||||||
EndLine: 1,
|
|
||||||
StartPos: 14,
|
|
||||||
EndPos: 15,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Var: &ast.ExprVariable{
|
},
|
||||||
|
Val: &ast.ExprVariable{
|
||||||
|
Position: &position.Position{
|
||||||
|
StartLine: 1,
|
||||||
|
EndLine: 1,
|
||||||
|
StartPos: 16,
|
||||||
|
EndPos: 18,
|
||||||
|
},
|
||||||
|
VarName: &ast.Identifier{
|
||||||
Position: &position.Position{
|
Position: &position.Position{
|
||||||
StartLine: 1,
|
StartLine: 1,
|
||||||
EndLine: 1,
|
EndLine: 1,
|
||||||
StartPos: 16,
|
StartPos: 16,
|
||||||
EndPos: 18,
|
EndPos: 18,
|
||||||
},
|
},
|
||||||
VarName: &ast.Identifier{
|
IdentifierTkn: &token.Token{
|
||||||
|
ID: token.T_VARIABLE,
|
||||||
|
Value: []byte("$b"),
|
||||||
Position: &position.Position{
|
Position: &position.Position{
|
||||||
StartLine: 1,
|
StartLine: 1,
|
||||||
EndLine: 1,
|
EndLine: 1,
|
||||||
StartPos: 16,
|
StartPos: 16,
|
||||||
EndPos: 18,
|
EndPos: 18,
|
||||||
},
|
},
|
||||||
IdentifierTkn: &token.Token{
|
|
||||||
ID: token.T_VARIABLE,
|
|
||||||
Value: []byte("$b"),
|
|
||||||
Position: &position.Position{
|
|
||||||
StartLine: 1,
|
|
||||||
EndLine: 1,
|
|
||||||
StartPos: 16,
|
|
||||||
EndPos: 18,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Value: []byte("$b"),
|
|
||||||
},
|
},
|
||||||
|
Value: []byte("$b"),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -39025,61 +39017,53 @@ func TestExprShortArray_Items(t *testing.T) {
|
|||||||
StartPos: 10,
|
StartPos: 10,
|
||||||
EndPos: 13,
|
EndPos: 13,
|
||||||
},
|
},
|
||||||
Val: &ast.ExprReference{
|
AmpersandTkn: &token.Token{
|
||||||
|
ID: token.ID(38),
|
||||||
|
Value: []byte("&"),
|
||||||
Position: &position.Position{
|
Position: &position.Position{
|
||||||
StartLine: 1,
|
StartLine: 1,
|
||||||
EndLine: 1,
|
EndLine: 1,
|
||||||
StartPos: 10,
|
StartPos: 10,
|
||||||
EndPos: 13,
|
EndPos: 11,
|
||||||
},
|
},
|
||||||
AmpersandTkn: &token.Token{
|
FreeFloating: []*token.Token{
|
||||||
ID: token.ID(38),
|
{
|
||||||
Value: []byte("&"),
|
ID: token.T_WHITESPACE,
|
||||||
Position: &position.Position{
|
Value: []byte(" "),
|
||||||
StartLine: 1,
|
Position: &position.Position{
|
||||||
EndLine: 1,
|
StartLine: 1,
|
||||||
StartPos: 10,
|
EndLine: 1,
|
||||||
EndPos: 11,
|
StartPos: 9,
|
||||||
},
|
EndPos: 10,
|
||||||
FreeFloating: []*token.Token{
|
|
||||||
{
|
|
||||||
ID: token.T_WHITESPACE,
|
|
||||||
Value: []byte(" "),
|
|
||||||
Position: &position.Position{
|
|
||||||
StartLine: 1,
|
|
||||||
EndLine: 1,
|
|
||||||
StartPos: 9,
|
|
||||||
EndPos: 10,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Var: &ast.ExprVariable{
|
},
|
||||||
|
Val: &ast.ExprVariable{
|
||||||
|
Position: &position.Position{
|
||||||
|
StartLine: 1,
|
||||||
|
EndLine: 1,
|
||||||
|
StartPos: 11,
|
||||||
|
EndPos: 13,
|
||||||
|
},
|
||||||
|
VarName: &ast.Identifier{
|
||||||
Position: &position.Position{
|
Position: &position.Position{
|
||||||
StartLine: 1,
|
StartLine: 1,
|
||||||
EndLine: 1,
|
EndLine: 1,
|
||||||
StartPos: 11,
|
StartPos: 11,
|
||||||
EndPos: 13,
|
EndPos: 13,
|
||||||
},
|
},
|
||||||
VarName: &ast.Identifier{
|
IdentifierTkn: &token.Token{
|
||||||
|
ID: token.T_VARIABLE,
|
||||||
|
Value: []byte("$b"),
|
||||||
Position: &position.Position{
|
Position: &position.Position{
|
||||||
StartLine: 1,
|
StartLine: 1,
|
||||||
EndLine: 1,
|
EndLine: 1,
|
||||||
StartPos: 11,
|
StartPos: 11,
|
||||||
EndPos: 13,
|
EndPos: 13,
|
||||||
},
|
},
|
||||||
IdentifierTkn: &token.Token{
|
|
||||||
ID: token.T_VARIABLE,
|
|
||||||
Value: []byte("$b"),
|
|
||||||
Position: &position.Position{
|
|
||||||
StartLine: 1,
|
|
||||||
EndLine: 1,
|
|
||||||
StartPos: 11,
|
|
||||||
EndPos: 13,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Value: []byte("$b"),
|
|
||||||
},
|
},
|
||||||
|
Value: []byte("$b"),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
BIN
internal/php5/php5.go
generated
BIN
internal/php5/php5.go
generated
Binary file not shown.
@ -5255,14 +5255,11 @@ non_empty_array_pair_list:
|
|||||||
| non_empty_array_pair_list ',' expr T_DOUBLE_ARROW '&' w_variable
|
| non_empty_array_pair_list ',' expr T_DOUBLE_ARROW '&' w_variable
|
||||||
{
|
{
|
||||||
arrayItem := &ast.ExprArrayItem{
|
arrayItem := &ast.ExprArrayItem{
|
||||||
Position: yylex.(*Parser).builder.NewNodesPosition($3, $6),
|
Position: yylex.(*Parser).builder.NewNodesPosition($3, $6),
|
||||||
Key: $3,
|
Key: $3,
|
||||||
DoubleArrowTkn: $4,
|
DoubleArrowTkn: $4,
|
||||||
Val: &ast.ExprReference{
|
AmpersandTkn: $5,
|
||||||
Position: yylex.(*Parser).builder.NewTokenNodePosition($5, $6),
|
Val: $6,
|
||||||
AmpersandTkn: $5,
|
|
||||||
Var: $6,
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2)
|
$1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2)
|
||||||
@ -5273,12 +5270,9 @@ non_empty_array_pair_list:
|
|||||||
| non_empty_array_pair_list ',' '&' w_variable
|
| non_empty_array_pair_list ',' '&' w_variable
|
||||||
{
|
{
|
||||||
arrayItem := &ast.ExprArrayItem{
|
arrayItem := &ast.ExprArrayItem{
|
||||||
Position: yylex.(*Parser).builder.NewTokenNodePosition($3, $4),
|
Position: yylex.(*Parser).builder.NewTokenNodePosition($3, $4),
|
||||||
Val: &ast.ExprReference{
|
AmpersandTkn: $3,
|
||||||
Position: yylex.(*Parser).builder.NewTokenNodePosition($3, $4),
|
Val: $4,
|
||||||
AmpersandTkn: $3,
|
|
||||||
Var: $4,
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2)
|
$1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2)
|
||||||
@ -5291,14 +5285,11 @@ non_empty_array_pair_list:
|
|||||||
$$ = &ast.ParserSeparatedList{
|
$$ = &ast.ParserSeparatedList{
|
||||||
Items: []ast.Vertex{
|
Items: []ast.Vertex{
|
||||||
&ast.ExprArrayItem{
|
&ast.ExprArrayItem{
|
||||||
Position: yylex.(*Parser).builder.NewNodesPosition($1, $4),
|
Position: yylex.(*Parser).builder.NewNodesPosition($1, $4),
|
||||||
Key: $1,
|
Key: $1,
|
||||||
DoubleArrowTkn: $2,
|
DoubleArrowTkn: $2,
|
||||||
Val: &ast.ExprReference{
|
AmpersandTkn: $3,
|
||||||
Position: yylex.(*Parser).builder.NewTokenNodePosition($3, $4),
|
Val: $4,
|
||||||
AmpersandTkn: $3,
|
|
||||||
Var: $4,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@ -5308,12 +5299,9 @@ non_empty_array_pair_list:
|
|||||||
$$ = &ast.ParserSeparatedList{
|
$$ = &ast.ParserSeparatedList{
|
||||||
Items: []ast.Vertex{
|
Items: []ast.Vertex{
|
||||||
&ast.ExprArrayItem{
|
&ast.ExprArrayItem{
|
||||||
Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2),
|
Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2),
|
||||||
Val: &ast.ExprReference{
|
AmpersandTkn: $1,
|
||||||
Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2),
|
Val: $2,
|
||||||
AmpersandTkn: $1,
|
|
||||||
Var: $2,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -34718,61 +34718,53 @@ func TestExprArray_Items(t *testing.T) {
|
|||||||
StartPos: 15,
|
StartPos: 15,
|
||||||
EndPos: 18,
|
EndPos: 18,
|
||||||
},
|
},
|
||||||
Val: &ast.ExprReference{
|
AmpersandTkn: &token.Token{
|
||||||
|
ID: token.ID(38),
|
||||||
|
Value: []byte("&"),
|
||||||
Position: &position.Position{
|
Position: &position.Position{
|
||||||
StartLine: 1,
|
StartLine: 1,
|
||||||
EndLine: 1,
|
EndLine: 1,
|
||||||
StartPos: 15,
|
StartPos: 15,
|
||||||
EndPos: 18,
|
EndPos: 16,
|
||||||
},
|
},
|
||||||
AmpersandTkn: &token.Token{
|
FreeFloating: []*token.Token{
|
||||||
ID: token.ID(38),
|
{
|
||||||
Value: []byte("&"),
|
ID: token.T_WHITESPACE,
|
||||||
Position: &position.Position{
|
Value: []byte(" "),
|
||||||
StartLine: 1,
|
Position: &position.Position{
|
||||||
EndLine: 1,
|
StartLine: 1,
|
||||||
StartPos: 15,
|
EndLine: 1,
|
||||||
EndPos: 16,
|
StartPos: 14,
|
||||||
},
|
EndPos: 15,
|
||||||
FreeFloating: []*token.Token{
|
|
||||||
{
|
|
||||||
ID: token.T_WHITESPACE,
|
|
||||||
Value: []byte(" "),
|
|
||||||
Position: &position.Position{
|
|
||||||
StartLine: 1,
|
|
||||||
EndLine: 1,
|
|
||||||
StartPos: 14,
|
|
||||||
EndPos: 15,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Var: &ast.ExprVariable{
|
},
|
||||||
|
Val: &ast.ExprVariable{
|
||||||
|
Position: &position.Position{
|
||||||
|
StartLine: 1,
|
||||||
|
EndLine: 1,
|
||||||
|
StartPos: 16,
|
||||||
|
EndPos: 18,
|
||||||
|
},
|
||||||
|
VarName: &ast.Identifier{
|
||||||
Position: &position.Position{
|
Position: &position.Position{
|
||||||
StartLine: 1,
|
StartLine: 1,
|
||||||
EndLine: 1,
|
EndLine: 1,
|
||||||
StartPos: 16,
|
StartPos: 16,
|
||||||
EndPos: 18,
|
EndPos: 18,
|
||||||
},
|
},
|
||||||
VarName: &ast.Identifier{
|
IdentifierTkn: &token.Token{
|
||||||
|
ID: token.T_VARIABLE,
|
||||||
|
Value: []byte("$b"),
|
||||||
Position: &position.Position{
|
Position: &position.Position{
|
||||||
StartLine: 1,
|
StartLine: 1,
|
||||||
EndLine: 1,
|
EndLine: 1,
|
||||||
StartPos: 16,
|
StartPos: 16,
|
||||||
EndPos: 18,
|
EndPos: 18,
|
||||||
},
|
},
|
||||||
IdentifierTkn: &token.Token{
|
|
||||||
ID: token.T_VARIABLE,
|
|
||||||
Value: []byte("$b"),
|
|
||||||
Position: &position.Position{
|
|
||||||
StartLine: 1,
|
|
||||||
EndLine: 1,
|
|
||||||
StartPos: 16,
|
|
||||||
EndPos: 18,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Value: []byte("$b"),
|
|
||||||
},
|
},
|
||||||
|
Value: []byte("$b"),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -43983,61 +43975,53 @@ func TestExprShortArray_Items(t *testing.T) {
|
|||||||
StartPos: 10,
|
StartPos: 10,
|
||||||
EndPos: 13,
|
EndPos: 13,
|
||||||
},
|
},
|
||||||
Val: &ast.ExprReference{
|
AmpersandTkn: &token.Token{
|
||||||
|
ID: token.ID(38),
|
||||||
|
Value: []byte("&"),
|
||||||
Position: &position.Position{
|
Position: &position.Position{
|
||||||
StartLine: 1,
|
StartLine: 1,
|
||||||
EndLine: 1,
|
EndLine: 1,
|
||||||
StartPos: 10,
|
StartPos: 10,
|
||||||
EndPos: 13,
|
EndPos: 11,
|
||||||
},
|
},
|
||||||
AmpersandTkn: &token.Token{
|
FreeFloating: []*token.Token{
|
||||||
ID: token.ID(38),
|
{
|
||||||
Value: []byte("&"),
|
ID: token.T_WHITESPACE,
|
||||||
Position: &position.Position{
|
Value: []byte(" "),
|
||||||
StartLine: 1,
|
Position: &position.Position{
|
||||||
EndLine: 1,
|
StartLine: 1,
|
||||||
StartPos: 10,
|
EndLine: 1,
|
||||||
EndPos: 11,
|
StartPos: 9,
|
||||||
},
|
EndPos: 10,
|
||||||
FreeFloating: []*token.Token{
|
|
||||||
{
|
|
||||||
ID: token.T_WHITESPACE,
|
|
||||||
Value: []byte(" "),
|
|
||||||
Position: &position.Position{
|
|
||||||
StartLine: 1,
|
|
||||||
EndLine: 1,
|
|
||||||
StartPos: 9,
|
|
||||||
EndPos: 10,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Var: &ast.ExprVariable{
|
},
|
||||||
|
Val: &ast.ExprVariable{
|
||||||
|
Position: &position.Position{
|
||||||
|
StartLine: 1,
|
||||||
|
EndLine: 1,
|
||||||
|
StartPos: 11,
|
||||||
|
EndPos: 13,
|
||||||
|
},
|
||||||
|
VarName: &ast.Identifier{
|
||||||
Position: &position.Position{
|
Position: &position.Position{
|
||||||
StartLine: 1,
|
StartLine: 1,
|
||||||
EndLine: 1,
|
EndLine: 1,
|
||||||
StartPos: 11,
|
StartPos: 11,
|
||||||
EndPos: 13,
|
EndPos: 13,
|
||||||
},
|
},
|
||||||
VarName: &ast.Identifier{
|
IdentifierTkn: &token.Token{
|
||||||
|
ID: token.T_VARIABLE,
|
||||||
|
Value: []byte("$b"),
|
||||||
Position: &position.Position{
|
Position: &position.Position{
|
||||||
StartLine: 1,
|
StartLine: 1,
|
||||||
EndLine: 1,
|
EndLine: 1,
|
||||||
StartPos: 11,
|
StartPos: 11,
|
||||||
EndPos: 13,
|
EndPos: 13,
|
||||||
},
|
},
|
||||||
IdentifierTkn: &token.Token{
|
|
||||||
ID: token.T_VARIABLE,
|
|
||||||
Value: []byte("$b"),
|
|
||||||
Position: &position.Position{
|
|
||||||
StartLine: 1,
|
|
||||||
EndLine: 1,
|
|
||||||
StartPos: 11,
|
|
||||||
EndPos: 13,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Value: []byte("$b"),
|
|
||||||
},
|
},
|
||||||
|
Value: []byte("$b"),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
BIN
internal/php7/php7.go
generated
BIN
internal/php7/php7.go
generated
Binary file not shown.
@ -3994,25 +3994,19 @@ array_pair:
|
|||||||
| expr T_DOUBLE_ARROW '&' variable
|
| expr T_DOUBLE_ARROW '&' variable
|
||||||
{
|
{
|
||||||
$$ = &ast.ExprArrayItem{
|
$$ = &ast.ExprArrayItem{
|
||||||
Position: yylex.(*Parser).builder.NewNodesPosition($1, $4),
|
Position: yylex.(*Parser).builder.NewNodesPosition($1, $4),
|
||||||
Key: $1,
|
Key: $1,
|
||||||
DoubleArrowTkn: $2,
|
DoubleArrowTkn: $2,
|
||||||
Val: &ast.ExprReference{
|
AmpersandTkn: $3,
|
||||||
Position: yylex.(*Parser).builder.NewTokenNodePosition($3, $4),
|
Val: $4,
|
||||||
AmpersandTkn: $3,
|
|
||||||
Var: $4,
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
| '&' variable
|
| '&' variable
|
||||||
{
|
{
|
||||||
$$ = &ast.ExprArrayItem{
|
$$ = &ast.ExprArrayItem{
|
||||||
Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2),
|
Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2),
|
||||||
Val: &ast.ExprReference{
|
AmpersandTkn: $1,
|
||||||
Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2),
|
Val: $2,
|
||||||
AmpersandTkn: $1,
|
|
||||||
Var: $2,
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
| T_ELLIPSIS expr
|
| T_ELLIPSIS expr
|
||||||
|
@ -1177,6 +1177,7 @@ type ExprArrayItem struct {
|
|||||||
EllipsisTkn *token.Token
|
EllipsisTkn *token.Token
|
||||||
Key Vertex
|
Key Vertex
|
||||||
DoubleArrowTkn *token.Token
|
DoubleArrowTkn *token.Token
|
||||||
|
AmpersandTkn *token.Token
|
||||||
Val Vertex
|
Val Vertex
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1056,6 +1056,7 @@ func (v *Dumper) ExprArrayItem(n *ast.ExprArrayItem) {
|
|||||||
v.dumpToken("EllipsisTkn", n.EllipsisTkn)
|
v.dumpToken("EllipsisTkn", n.EllipsisTkn)
|
||||||
v.dumpVertex("Key", n.Key)
|
v.dumpVertex("Key", n.Key)
|
||||||
v.dumpToken("DoubleArrowTkn", n.DoubleArrowTkn)
|
v.dumpToken("DoubleArrowTkn", n.DoubleArrowTkn)
|
||||||
|
v.dumpToken("AmpersandTkn", n.AmpersandTkn)
|
||||||
v.dumpVertex("Val", n.Val)
|
v.dumpVertex("Val", n.Val)
|
||||||
|
|
||||||
v.indent--
|
v.indent--
|
||||||
|
@ -641,6 +641,7 @@ func (p *printer) ExprArrayItem(n *ast.ExprArrayItem) {
|
|||||||
p.printToken(n.EllipsisTkn, nil)
|
p.printToken(n.EllipsisTkn, nil)
|
||||||
p.printNode(n.Key)
|
p.printNode(n.Key)
|
||||||
p.printToken(n.DoubleArrowTkn, p.ifNode(n.Key, []byte("=>")))
|
p.printToken(n.DoubleArrowTkn, p.ifNode(n.Key, []byte("=>")))
|
||||||
|
p.printToken(n.AmpersandTkn, nil)
|
||||||
p.printNode(n.Val)
|
p.printNode(n.Val)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1559,9 +1559,31 @@ func TestPrinterPrintExprArrayItem(t *testing.T) {
|
|||||||
|
|
||||||
p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP)
|
p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP)
|
||||||
n := &ast.ExprArrayItem{
|
n := &ast.ExprArrayItem{
|
||||||
Val: &ast.ExprReference{Var: &ast.ExprVariable{
|
Val: &ast.ExprVariable{
|
||||||
VarName: &ast.Identifier{Value: []byte("$world")},
|
VarName: &ast.Identifier{Value: []byte("$world")},
|
||||||
}},
|
},
|
||||||
|
}
|
||||||
|
n.Accept(p)
|
||||||
|
|
||||||
|
expected := `$world`
|
||||||
|
actual := o.String()
|
||||||
|
|
||||||
|
if expected != actual {
|
||||||
|
t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestPrinterPrintExprArrayItem_Reference(t *testing.T) {
|
||||||
|
o := bytes.NewBufferString("")
|
||||||
|
|
||||||
|
p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP)
|
||||||
|
n := &ast.ExprArrayItem{
|
||||||
|
AmpersandTkn: &token.Token{
|
||||||
|
Value: []byte("&"),
|
||||||
|
},
|
||||||
|
Val: &ast.ExprVariable{
|
||||||
|
VarName: &ast.Identifier{Value: []byte("$world")},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
n.Accept(p)
|
n.Accept(p)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user