refactor printer
This commit is contained in:
@@ -131,10 +131,25 @@ func (l *Parser) GetFreeFloatingToken(t *scanner.Token) []token.Token {
|
||||
return []token.Token{}
|
||||
}
|
||||
|
||||
tokens := make([]token.Token, len(t.Tokens))
|
||||
copy(tokens, t.Tokens)
|
||||
return []token.Token{
|
||||
{
|
||||
ID: token.ID(t.ID),
|
||||
Value: t.Value,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
return tokens
|
||||
func (l *Parser) addDollarToken(v ast.Vertex) {
|
||||
if l.Lexer.GetWithFreeFloating() == false {
|
||||
return
|
||||
}
|
||||
|
||||
l.setFreeFloating(v, token.Dollar, []token.Token{
|
||||
{
|
||||
ID: token.ID('$'),
|
||||
Value: []byte("$"),
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
func (l *Parser) splitSemiColonAndPhpCloseTag(htmlNode ast.Vertex, prevNode ast.Vertex) {
|
||||
|
||||
@@ -982,7 +982,7 @@ func TestPhp7ParameterNode(t *testing.T) {
|
||||
EndPos: 51,
|
||||
},
|
||||
},
|
||||
ReturnsRef: false,
|
||||
ReturnsRef: false,
|
||||
FunctionName: &ast.Identifier{
|
||||
Node: ast.Node{
|
||||
Position: &position.Position{
|
||||
@@ -1183,7 +1183,7 @@ func TestPhp7ParameterNode(t *testing.T) {
|
||||
EndPos: 117,
|
||||
},
|
||||
},
|
||||
ReturnsRef: false,
|
||||
ReturnsRef: false,
|
||||
MethodName: &ast.Identifier{
|
||||
Node: ast.Node{
|
||||
Position: &position.Position{
|
||||
@@ -1397,8 +1397,8 @@ func TestPhp7ParameterNode(t *testing.T) {
|
||||
EndPos: 162,
|
||||
},
|
||||
},
|
||||
ReturnsRef: false,
|
||||
Static: false,
|
||||
ReturnsRef: false,
|
||||
Static: false,
|
||||
Params: []ast.Vertex{
|
||||
&ast.Parameter{
|
||||
Node: ast.Node{
|
||||
@@ -1577,8 +1577,8 @@ func TestPhp7ParameterNode(t *testing.T) {
|
||||
EndPos: 214,
|
||||
},
|
||||
},
|
||||
Static: true,
|
||||
ReturnsRef: false,
|
||||
Static: true,
|
||||
ReturnsRef: false,
|
||||
Params: []ast.Vertex{
|
||||
&ast.Parameter{
|
||||
Node: ast.Node{
|
||||
@@ -4376,7 +4376,7 @@ func TestStmtClassMethod_SimpleClassMethod(t *testing.T) {
|
||||
EndPos: 31,
|
||||
},
|
||||
},
|
||||
ReturnsRef: false,
|
||||
ReturnsRef: false,
|
||||
MethodName: &ast.Identifier{
|
||||
Node: ast.Node{
|
||||
Position: &position.Position{
|
||||
@@ -4454,7 +4454,7 @@ func TestStmtClassMethod_PrivateProtectedClassMethod(t *testing.T) {
|
||||
EndPos: 45,
|
||||
},
|
||||
},
|
||||
ReturnsRef: false,
|
||||
ReturnsRef: false,
|
||||
MethodName: &ast.Identifier{
|
||||
Node: ast.Node{
|
||||
Position: &position.Position{
|
||||
@@ -4511,7 +4511,7 @@ func TestStmtClassMethod_PrivateProtectedClassMethod(t *testing.T) {
|
||||
EndPos: 73,
|
||||
},
|
||||
},
|
||||
ReturnsRef: false,
|
||||
ReturnsRef: false,
|
||||
MethodName: &ast.Identifier{
|
||||
Node: ast.Node{
|
||||
Position: &position.Position{
|
||||
@@ -4602,7 +4602,7 @@ func TestStmtClassMethod_Php7ClassMethod(t *testing.T) {
|
||||
EndPos: 52,
|
||||
},
|
||||
},
|
||||
ReturnsRef: true,
|
||||
ReturnsRef: true,
|
||||
MethodName: &ast.Identifier{
|
||||
Node: ast.Node{
|
||||
Position: &position.Position{
|
||||
@@ -4740,7 +4740,7 @@ func TestStmtClassMethod_AbstractClassMethod(t *testing.T) {
|
||||
EndPos: 54,
|
||||
},
|
||||
},
|
||||
ReturnsRef: false,
|
||||
ReturnsRef: false,
|
||||
MethodName: &ast.Identifier{
|
||||
Node: ast.Node{
|
||||
Position: &position.Position{
|
||||
@@ -4854,7 +4854,7 @@ func TestStmtClassMethod_Php7AbstractClassMethod(t *testing.T) {
|
||||
EndPos: 51,
|
||||
},
|
||||
},
|
||||
ReturnsRef: false,
|
||||
ReturnsRef: false,
|
||||
MethodName: &ast.Identifier{
|
||||
Node: ast.Node{
|
||||
Position: &position.Position{
|
||||
@@ -7300,7 +7300,7 @@ func TestStmtFunction(t *testing.T) {
|
||||
EndPos: 20,
|
||||
},
|
||||
},
|
||||
ReturnsRef: false,
|
||||
ReturnsRef: false,
|
||||
FunctionName: &ast.Identifier{
|
||||
Node: ast.Node{
|
||||
Position: &position.Position{
|
||||
@@ -7345,7 +7345,7 @@ func TestStmtFunction_Return(t *testing.T) {
|
||||
EndPos: 27,
|
||||
},
|
||||
},
|
||||
ReturnsRef: false,
|
||||
ReturnsRef: false,
|
||||
FunctionName: &ast.Identifier{
|
||||
Node: ast.Node{
|
||||
Position: &position.Position{
|
||||
@@ -7401,7 +7401,7 @@ func TestStmtFunction_ReturnVar(t *testing.T) {
|
||||
EndPos: 51,
|
||||
},
|
||||
},
|
||||
ReturnsRef: false,
|
||||
ReturnsRef: false,
|
||||
FunctionName: &ast.Identifier{
|
||||
Node: ast.Node{
|
||||
Position: &position.Position{
|
||||
@@ -7568,7 +7568,7 @@ func TestStmtFunction_Ref(t *testing.T) {
|
||||
EndPos: 30,
|
||||
},
|
||||
},
|
||||
ReturnsRef: true,
|
||||
ReturnsRef: true,
|
||||
FunctionName: &ast.Identifier{
|
||||
Node: ast.Node{
|
||||
Position: &position.Position{
|
||||
@@ -7635,7 +7635,7 @@ func TestStmtFunction_ReturnType(t *testing.T) {
|
||||
EndPos: 27,
|
||||
},
|
||||
},
|
||||
ReturnsRef: true,
|
||||
ReturnsRef: true,
|
||||
FunctionName: &ast.Identifier{
|
||||
Node: ast.Node{
|
||||
Position: &position.Position{
|
||||
@@ -14535,8 +14535,8 @@ func TestExprArrowFunction(t *testing.T) {
|
||||
EndPos: 13,
|
||||
},
|
||||
},
|
||||
ReturnsRef: false,
|
||||
Static: false,
|
||||
ReturnsRef: false,
|
||||
Static: false,
|
||||
Expr: &ast.ExprVariable{
|
||||
Node: ast.Node{
|
||||
Position: &position.Position{
|
||||
@@ -14600,8 +14600,8 @@ func TestExprArrowFunction_ReturnType(t *testing.T) {
|
||||
EndPos: 22,
|
||||
},
|
||||
},
|
||||
Static: false,
|
||||
ReturnsRef: true,
|
||||
Static: false,
|
||||
ReturnsRef: true,
|
||||
ReturnType: &ast.NameName{
|
||||
Node: ast.Node{
|
||||
Position: &position.Position{
|
||||
@@ -15080,9 +15080,9 @@ func TestExprClosure(t *testing.T) {
|
||||
EndPos: 15,
|
||||
},
|
||||
},
|
||||
ReturnsRef: false,
|
||||
Static: false,
|
||||
Stmts: []ast.Vertex{},
|
||||
ReturnsRef: false,
|
||||
Static: false,
|
||||
Stmts: []ast.Vertex{},
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -15125,8 +15125,8 @@ func TestExprClosure_Use(t *testing.T) {
|
||||
EndPos: 36,
|
||||
},
|
||||
},
|
||||
ReturnsRef: false,
|
||||
Static: false,
|
||||
ReturnsRef: false,
|
||||
Static: false,
|
||||
Params: []ast.Vertex{
|
||||
&ast.Parameter{
|
||||
Node: ast.Node{
|
||||
@@ -15302,8 +15302,8 @@ func TestExprClosure_Use2(t *testing.T) {
|
||||
EndPos: 36,
|
||||
},
|
||||
},
|
||||
ReturnsRef: false,
|
||||
Static: false,
|
||||
ReturnsRef: false,
|
||||
Static: false,
|
||||
Params: []ast.Vertex{
|
||||
&ast.Parameter{
|
||||
Node: ast.Node{
|
||||
@@ -15479,8 +15479,8 @@ func TestExprClosure_ReturnType(t *testing.T) {
|
||||
EndPos: 22,
|
||||
},
|
||||
},
|
||||
ReturnsRef: false,
|
||||
Static: false,
|
||||
ReturnsRef: false,
|
||||
Static: false,
|
||||
ReturnType: &ast.NameName{
|
||||
Node: ast.Node{
|
||||
Position: &position.Position{
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1368,6 +1368,7 @@ catch_list:
|
||||
yylex.(*Parser).setFreeFloating(catch, token.Start, $2.Tokens)
|
||||
yylex.(*Parser).setFreeFloating(catch, token.Catch, $3.Tokens)
|
||||
yylex.(*Parser).setFreeFloating(variable, token.Start, $5.Tokens)
|
||||
yylex.(*Parser).addDollarToken(variable)
|
||||
yylex.(*Parser).setFreeFloating(catch, token.Var, $6.Tokens)
|
||||
yylex.(*Parser).setFreeFloating(catch, token.Cond, $7.Tokens)
|
||||
yylex.(*Parser).setFreeFloating(catch, token.Stmts, $9.Tokens)
|
||||
@@ -2172,6 +2173,8 @@ parameter:
|
||||
}
|
||||
yylex.(*Parser).setFreeFloating($$, token.Variadic, $4.Tokens)
|
||||
|
||||
yylex.(*Parser).addDollarToken(variable)
|
||||
|
||||
// normalize
|
||||
if $3 == nil {
|
||||
yylex.(*Parser).setFreeFloating($$, token.Ampersand, $$.GetNode().Tokens[token.Variadic]); delete($$.GetNode().Tokens, token.Variadic)
|
||||
@@ -2217,6 +2220,8 @@ parameter:
|
||||
yylex.(*Parser).setFreeFloating($$, token.Variadic, $4.Tokens)
|
||||
yylex.(*Parser).setFreeFloating($$, token.Var, $5.Tokens)
|
||||
|
||||
yylex.(*Parser).addDollarToken(variable)
|
||||
|
||||
// normalize
|
||||
if $3 == nil {
|
||||
yylex.(*Parser).setFreeFloating($$, token.Ampersand, $$.GetNode().Tokens[token.Variadic]); delete($$.GetNode().Tokens, token.Variadic)
|
||||
@@ -2456,6 +2461,7 @@ static_var:
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens)
|
||||
yylex.(*Parser).addDollarToken(variable)
|
||||
|
||||
yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL)
|
||||
}
|
||||
@@ -2472,6 +2478,7 @@ static_var:
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens)
|
||||
yylex.(*Parser).addDollarToken(variable)
|
||||
yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens)
|
||||
|
||||
yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL)
|
||||
@@ -2981,6 +2988,7 @@ property:
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens)
|
||||
yylex.(*Parser).addDollarToken(variable)
|
||||
|
||||
yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL)
|
||||
}
|
||||
@@ -2997,6 +3005,7 @@ property:
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens)
|
||||
yylex.(*Parser).addDollarToken(variable)
|
||||
yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens)
|
||||
|
||||
yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL)
|
||||
@@ -4297,6 +4306,7 @@ lexical_var:
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens)
|
||||
yylex.(*Parser).addDollarToken($$)
|
||||
|
||||
yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL)
|
||||
}
|
||||
@@ -4314,6 +4324,7 @@ lexical_var:
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens)
|
||||
yylex.(*Parser).setFreeFloating(variable, token.Start, $2.Tokens)
|
||||
yylex.(*Parser).addDollarToken(variable)
|
||||
|
||||
yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL)
|
||||
}
|
||||
@@ -4943,6 +4954,7 @@ simple_variable:
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens)
|
||||
yylex.(*Parser).addDollarToken($$)
|
||||
|
||||
yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL)
|
||||
}
|
||||
@@ -5352,6 +5364,7 @@ encaps_var:
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens)
|
||||
yylex.(*Parser).addDollarToken($$)
|
||||
|
||||
yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL)
|
||||
}
|
||||
@@ -5367,6 +5380,7 @@ encaps_var:
|
||||
$$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).addDollarToken(variable)
|
||||
yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...))
|
||||
yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...))
|
||||
|
||||
@@ -5386,6 +5400,7 @@ encaps_var:
|
||||
$$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).addDollarToken(variable)
|
||||
yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens)
|
||||
yylex.(*Parser).setFreeFloating(fetch, token.Start, $3.Tokens)
|
||||
|
||||
@@ -5521,6 +5536,7 @@ encaps_var_offset:
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens)
|
||||
yylex.(*Parser).addDollarToken($$)
|
||||
|
||||
yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user