[refactoring] update use ast structure

This commit is contained in:
Vadym Slizov
2020-08-03 21:22:53 +02:00
parent 88dfd32d9e
commit feebb017c4
21 changed files with 4604 additions and 3695 deletions

File diff suppressed because it is too large Load Diff

1111
internal/php5/php5.go generated

File diff suppressed because it is too large Load Diff

View File

@@ -428,49 +428,56 @@ top_statement:
}
| T_USE use_declarations ';'
{
$$ = &ast.StmtUseList{ast.Node{}, nil, $2}
useList := &ast.StmtUseList{ast.Node{}, $2}
$$ = &ast.StmtUse{ast.Node{}, useList}
// save position
useList.GetNode().Position = position.NewNodeListPosition($2)
$$.GetNode().Position = position.NewTokensPosition($1, $3)
// save comments
yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens)
yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $3.Tokens)
yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens)
yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.Tokens)
yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL)
}
| T_USE T_FUNCTION use_function_declarations ';'
{
useType := &ast.Identifier{ast.Node{}, $2.Value}
$$ = &ast.StmtUseList{ast.Node{}, useType, $3}
identifier := &ast.Identifier{ast.Node{}, $2.Value}
useList := &ast.StmtUseList{ast.Node{}, $3}
useType := &ast.StmtUseType{ast.Node{}, identifier, useList}
$$ = &ast.StmtUse{ast.Node{}, useType}
// save position
useType.GetNode().Position = position.NewTokenPosition($2)
identifier.GetNode().Position = position.NewTokenPosition($2)
useList.GetNode().Position = position.NewNodeListPosition($3)
useType.GetNode().Position = position.NewTokenNodePosition($2, useList)
$$.GetNode().Position = position.NewTokensPosition($1, $4)
// save comments
yylex.(*Parser).setFreeFloating(identifier, token.Start, $2.Tokens)
yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens)
yylex.(*Parser).setFreeFloating(useType, token.Start, $2.Tokens)
yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $4.Tokens)
yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens)
yylex.(*Parser).setFreeFloatingTokens($$, token.End, $4.Tokens)
yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL)
}
| T_USE T_CONST use_const_declarations ';'
{
useType := &ast.Identifier{ast.Node{}, $2.Value}
$$ = &ast.StmtUseList{ast.Node{}, useType, $3}
identifier := &ast.Identifier{ast.Node{}, $2.Value}
useList := &ast.StmtUseList{ast.Node{}, $3}
useType := &ast.StmtUseType{ast.Node{}, identifier, useList}
$$ = &ast.StmtUse{ast.Node{}, useType}
// save position
useType.GetNode().Position = position.NewTokenPosition($2)
identifier.GetNode().Position = position.NewTokenPosition($2)
useList.GetNode().Position = position.NewNodeListPosition($3)
useType.GetNode().Position = position.NewTokenNodePosition($2, useList)
$$.GetNode().Position = position.NewTokensPosition($1, $4)
// save comments
yylex.(*Parser).setFreeFloating(identifier, token.Start, $2.Tokens)
yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens)
yylex.(*Parser).setFreeFloating(useType, token.Start, $2.Tokens)
yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $4.Tokens)
yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens)
yylex.(*Parser).setFreeFloatingTokens($$, token.End, $4.Tokens)
yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL)
}
@@ -511,22 +518,19 @@ use_declaration:
namespace_name
{
name := &ast.NameName{ast.Node{}, $1}
$$ = &ast.StmtUse{ast.Node{}, nil, name, nil}
$$ = &ast.StmtUseDeclaration{ast.Node{}, name, nil}
// save position
name.GetNode().Position = position.NewNodeListPosition($1)
$$.GetNode().Position = position.NewNodeListPosition($1)
// save comments
yylex.(*Parser).MoveFreeFloating($1[0], $$)
yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL)
}
| namespace_name T_AS T_STRING
{
name := &ast.NameName{ast.Node{}, $1}
alias := &ast.Identifier{ast.Node{}, $3.Value}
$$ = &ast.StmtUse{ast.Node{}, nil, name, alias}
$$ = &ast.StmtUseDeclaration{ast.Node{}, name, alias}
// save position
name.GetNode().Position = position.NewNodeListPosition($1)
@@ -534,7 +538,6 @@ use_declaration:
$$.GetNode().Position = position.NewNodeListTokenPosition($1, $3)
// save comments
yylex.(*Parser).MoveFreeFloating($1[0], $$)
yylex.(*Parser).setFreeFloating(name, token.End, $2.Tokens)
yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens)
@@ -543,16 +546,14 @@ use_declaration:
| T_NS_SEPARATOR namespace_name
{
name := &ast.NameName{ast.Node{}, $2}
$$ = &ast.StmtUse{ast.Node{}, nil, name, nil}
$$ = &ast.StmtUseDeclaration{ast.Node{}, name, nil}
// save position
name.GetNode().Position = position.NewNodeListPosition($2)
$$.GetNode().Position = position.NewNodeListPosition($2)
// save comments
yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens)
yylex.(*Parser).setToken($$, token.Slash, $1.Tokens)
yylex.(*Parser).MoveFreeFloating($2[0], name)
yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens)
yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL)
}
@@ -560,7 +561,7 @@ use_declaration:
{
name := &ast.NameName{ast.Node{}, $2}
alias := &ast.Identifier{ast.Node{}, $4.Value}
$$ = &ast.StmtUse{ast.Node{}, nil, name, alias}
$$ = &ast.StmtUseDeclaration{ast.Node{}, name, alias}
// save position
name.GetNode().Position = position.NewNodeListPosition($2)
@@ -568,9 +569,7 @@ use_declaration:
$$.GetNode().Position = position.NewNodeListTokenPosition($2, $4)
// save comments
yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens)
yylex.(*Parser).setToken($$, token.Slash, $1.Tokens)
yylex.(*Parser).MoveFreeFloating($2[0], name)
yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens)
yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens)
yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Tokens)
@@ -600,22 +599,19 @@ use_function_declaration:
namespace_name
{
name := &ast.NameName{ast.Node{}, $1}
$$ = &ast.StmtUse{ast.Node{}, nil, name, nil}
$$ = &ast.StmtUseDeclaration{ast.Node{}, name, nil}
// save position
name.GetNode().Position = position.NewNodeListPosition($1)
$$.GetNode().Position = position.NewNodeListPosition($1)
// save comments
yylex.(*Parser).MoveFreeFloating($1[0], $$)
yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL)
}
| namespace_name T_AS T_STRING
{
name := &ast.NameName{ast.Node{}, $1}
alias := &ast.Identifier{ast.Node{}, $3.Value}
$$ = &ast.StmtUse{ast.Node{}, nil, name, alias}
$$ = &ast.StmtUseDeclaration{ast.Node{}, name, alias}
// save position
name.GetNode().Position = position.NewNodeListPosition($1)
@@ -623,7 +619,6 @@ use_function_declaration:
$$.GetNode().Position = position.NewNodeListTokenPosition($1, $3)
// save comments
yylex.(*Parser).MoveFreeFloating($1[0], $$)
yylex.(*Parser).setFreeFloating(name, token.End, $2.Tokens)
yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens)
@@ -632,16 +627,14 @@ use_function_declaration:
| T_NS_SEPARATOR namespace_name
{
name := &ast.NameName{ast.Node{}, $2}
$$ = &ast.StmtUse{ast.Node{}, nil, name, nil}
$$ = &ast.StmtUseDeclaration{ast.Node{}, name, nil}
// save position
name.GetNode().Position = position.NewNodeListPosition($2)
$$.GetNode().Position = position.NewNodeListPosition($2)
// save comments
yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens)
yylex.(*Parser).setToken($$, token.Slash, $1.Tokens)
yylex.(*Parser).MoveFreeFloating($2[0], name)
yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens)
yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL)
}
@@ -649,7 +642,7 @@ use_function_declaration:
{
name := &ast.NameName{ast.Node{}, $2}
alias := &ast.Identifier{ast.Node{}, $4.Value}
$$ = &ast.StmtUse{ast.Node{}, nil, name, alias}
$$ = &ast.StmtUseDeclaration{ast.Node{}, name, alias}
// save position
name.GetNode().Position = position.NewNodeListPosition($2)
@@ -657,9 +650,7 @@ use_function_declaration:
$$.GetNode().Position = position.NewNodeListTokenPosition($2, $4)
// save comments
yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens)
yylex.(*Parser).setToken($$, token.Slash, $1.Tokens)
yylex.(*Parser).MoveFreeFloating($2[0], name)
yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens)
yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens)
yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Tokens)
@@ -689,22 +680,19 @@ use_const_declaration:
namespace_name
{
name := &ast.NameName{ast.Node{}, $1}
$$ = &ast.StmtUse{ast.Node{}, nil, name, nil}
$$ = &ast.StmtUseDeclaration{ast.Node{}, name, nil}
// save position
name.GetNode().Position = position.NewNodeListPosition($1)
$$.GetNode().Position = position.NewNodeListPosition($1)
// save comments
yylex.(*Parser).MoveFreeFloating($1[0], $$)
yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL)
}
| namespace_name T_AS T_STRING
{
name := &ast.NameName{ast.Node{}, $1}
alias := &ast.Identifier{ast.Node{}, $3.Value}
$$ = &ast.StmtUse{ast.Node{}, nil, name, alias}
$$ = &ast.StmtUseDeclaration{ast.Node{}, name, alias}
// save position
name.GetNode().Position = position.NewNodeListPosition($1)
@@ -712,7 +700,6 @@ use_const_declaration:
$$.GetNode().Position = position.NewNodeListTokenPosition($1, $3)
// save comments
yylex.(*Parser).MoveFreeFloating($1[0], $$)
yylex.(*Parser).setFreeFloating(name, token.End, $2.Tokens)
yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens)
@@ -721,16 +708,14 @@ use_const_declaration:
| T_NS_SEPARATOR namespace_name
{
name := &ast.NameName{ast.Node{}, $2}
$$ = &ast.StmtUse{ast.Node{}, nil, name, nil}
$$ = &ast.StmtUseDeclaration{ast.Node{}, name, nil}
// save position
name.GetNode().Position = position.NewNodeListPosition($2)
$$.GetNode().Position = position.NewNodeListPosition($2)
// save comments
yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens)
yylex.(*Parser).setToken($$, token.Slash, $1.Tokens)
yylex.(*Parser).MoveFreeFloating($2[0], name)
yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens)
yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL)
}
@@ -738,7 +723,7 @@ use_const_declaration:
{
name := &ast.NameName{ast.Node{}, $2}
alias := &ast.Identifier{ast.Node{}, $4.Value}
$$ = &ast.StmtUse{ast.Node{}, nil, name, alias}
$$ = &ast.StmtUseDeclaration{ast.Node{}, name, alias}
// save position
name.GetNode().Position = position.NewNodeListPosition($2)
@@ -746,9 +731,7 @@ use_const_declaration:
$$.GetNode().Position = position.NewNodeListTokenPosition($2, $4)
// save comments
yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens)
yylex.(*Parser).setToken($$, token.Slash, $1.Tokens)
yylex.(*Parser).MoveFreeFloating($2[0], name)
yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens)
yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens)
yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Tokens)

File diff suppressed because it is too large Load Diff