[refactoring] update ast structure of "Return" node

This commit is contained in:
Vadym Slizov
2020-09-06 13:09:00 +03:00
parent e817f8dd8d
commit 59ef622082
7 changed files with 892 additions and 901 deletions

976
internal/php5/php5.go generated

File diff suppressed because it is too large Load Diff

View File

@@ -992,39 +992,35 @@ unticked_statement:
}
| T_RETURN ';'
{
$$ = &ast.StmtReturn{ast.Node{}, nil}
// save position
$$.GetNode().Position = position.NewTokensPosition($1, $2)
// save comments
yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens)
yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens)
yylex.(*Parser).setToken($$, token.SemiColon, $2.SkippedTokens)
$$ = &ast.StmtReturn{
Node: ast.Node{
Position: position.NewTokensPosition($1, $2),
},
ReturnTkn: $1,
SemiColonTkn: $2,
}
}
| T_RETURN expr_without_variable ';'
{
$$ = &ast.StmtReturn{ast.Node{}, $2}
// save position
$$.GetNode().Position = position.NewTokensPosition($1, $3)
// save comments
yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens)
yylex.(*Parser).setFreeFloating($$, token.Expr, $3.SkippedTokens)
yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens)
$$ = &ast.StmtReturn{
Node: ast.Node{
Position: position.NewTokensPosition($1, $3),
},
ReturnTkn: $1,
Expr: $2,
SemiColonTkn: $3,
}
}
| T_RETURN variable ';'
{
$$ = &ast.StmtReturn{ast.Node{}, $2}
// save position
$$.GetNode().Position = position.NewTokensPosition($1, $3)
// save comments
yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens)
yylex.(*Parser).setFreeFloating($$, token.Expr, $3.SkippedTokens)
yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens)
$$ = &ast.StmtReturn{
Node: ast.Node{
Position: position.NewTokensPosition($1, $3),
},
ReturnTkn: $1,
Expr: $2,
SemiColonTkn: $3,
}
}
| yield_expr ';'
{

723
internal/php7/php7.go generated

File diff suppressed because it is too large Load Diff

View File

@@ -941,15 +941,14 @@ statement:
}
| T_RETURN optional_expr ';'
{
$$ = &ast.StmtReturn{ast.Node{}, $2}
// save position
$$.GetNode().Position = position.NewTokensPosition($1, $3)
// save comments
yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens)
yylex.(*Parser).setFreeFloating($$, token.Expr, $3.SkippedTokens)
yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens)
$$ = &ast.StmtReturn{
Node: ast.Node{
Position: position.NewTokensPosition($1, $3),
},
ReturnTkn: $1,
Expr: $2,
SemiColonTkn: $3,
}
}
| T_GLOBAL global_var_list ';'
{