[refactoring] add Parser nodes for use
This commit is contained in:
File diff suppressed because it is too large
Load Diff
1128
internal/php5/php5.go
generated
1128
internal/php5/php5.go
generated
File diff suppressed because it is too large
Load Diff
@@ -525,15 +525,17 @@ use_declaration:
|
||||
{
|
||||
name := &ast.NameName{ast.Node{}, $1}
|
||||
alias := &ast.Identifier{ast.Node{}, $3.Value}
|
||||
$$ = &ast.StmtUseDeclaration{ast.Node{}, name, alias}
|
||||
asAlias := &ast.ParserAs{ast.Node{}, alias}
|
||||
$$ = &ast.StmtUseDeclaration{ast.Node{}, name, asAlias}
|
||||
|
||||
// save position
|
||||
name.GetNode().Position = position.NewNodeListPosition($1)
|
||||
alias.GetNode().Position = position.NewTokenPosition($3)
|
||||
asAlias.GetNode().Position = position.NewTokensPosition($2, $3)
|
||||
$$.GetNode().Position = position.NewNodeListTokenPosition($1, $3)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating(name, token.End, $2.Tokens)
|
||||
yylex.(*Parser).setFreeFloating(asAlias, token.Start, $2.Tokens)
|
||||
yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens)
|
||||
|
||||
yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL)
|
||||
@@ -541,14 +543,16 @@ use_declaration:
|
||||
| T_NS_SEPARATOR namespace_name
|
||||
{
|
||||
name := &ast.NameName{ast.Node{}, $2}
|
||||
$$ = &ast.StmtUseDeclaration{ast.Node{}, name, nil}
|
||||
useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, nil}
|
||||
$$ = &ast.ParserNsSeparator{ast.Node{}, useDeclaration}
|
||||
|
||||
// save position
|
||||
name.GetNode().Position = position.NewNodeListPosition($2)
|
||||
$$.GetNode().Position = position.NewNodeListPosition($2)
|
||||
useDeclaration.GetNode().Position = position.NewTokenNodePosition($1, name)
|
||||
$$.GetNode().Position = position.NewTokenNodePosition($1, name)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens)
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens)
|
||||
|
||||
yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL)
|
||||
}
|
||||
@@ -556,16 +560,20 @@ use_declaration:
|
||||
{
|
||||
name := &ast.NameName{ast.Node{}, $2}
|
||||
alias := &ast.Identifier{ast.Node{}, $4.Value}
|
||||
$$ = &ast.StmtUseDeclaration{ast.Node{}, name, alias}
|
||||
asAlias := &ast.ParserAs{ast.Node{}, alias}
|
||||
useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, alias}
|
||||
$$ = &ast.ParserNsSeparator{ast.Node{}, useDeclaration}
|
||||
|
||||
// save position
|
||||
name.GetNode().Position = position.NewNodeListPosition($2)
|
||||
alias.GetNode().Position = position.NewTokenPosition($4)
|
||||
$$.GetNode().Position = position.NewNodeListTokenPosition($2, $4)
|
||||
asAlias.GetNode().Position = position.NewTokensPosition($3, $4)
|
||||
useDeclaration.GetNode().Position = position.NewTokensPosition($1, $4)
|
||||
$$.GetNode().Position = position.NewTokensPosition($1, $4)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens)
|
||||
yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens)
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens)
|
||||
yylex.(*Parser).setFreeFloating(asAlias, token.Start, $3.Tokens)
|
||||
yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Tokens)
|
||||
|
||||
yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL)
|
||||
@@ -606,15 +614,17 @@ use_function_declaration:
|
||||
{
|
||||
name := &ast.NameName{ast.Node{}, $1}
|
||||
alias := &ast.Identifier{ast.Node{}, $3.Value}
|
||||
$$ = &ast.StmtUseDeclaration{ast.Node{}, name, alias}
|
||||
asAlias := &ast.ParserAs{ast.Node{}, alias}
|
||||
$$ = &ast.StmtUseDeclaration{ast.Node{}, name, asAlias}
|
||||
|
||||
// save position
|
||||
name.GetNode().Position = position.NewNodeListPosition($1)
|
||||
alias.GetNode().Position = position.NewTokenPosition($3)
|
||||
asAlias.GetNode().Position = position.NewTokensPosition($2, $3)
|
||||
$$.GetNode().Position = position.NewNodeListTokenPosition($1, $3)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating(name, token.End, $2.Tokens)
|
||||
yylex.(*Parser).setFreeFloating(asAlias, token.Start, $2.Tokens)
|
||||
yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens)
|
||||
|
||||
yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL)
|
||||
@@ -622,14 +632,16 @@ use_function_declaration:
|
||||
| T_NS_SEPARATOR namespace_name
|
||||
{
|
||||
name := &ast.NameName{ast.Node{}, $2}
|
||||
$$ = &ast.StmtUseDeclaration{ast.Node{}, name, nil}
|
||||
useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, nil}
|
||||
$$ = &ast.ParserNsSeparator{ast.Node{}, useDeclaration}
|
||||
|
||||
// save position
|
||||
name.GetNode().Position = position.NewNodeListPosition($2)
|
||||
$$.GetNode().Position = position.NewNodeListPosition($2)
|
||||
useDeclaration.GetNode().Position = position.NewTokenNodePosition($1, name)
|
||||
$$.GetNode().Position = position.NewTokenNodePosition($1, name)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens)
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens)
|
||||
|
||||
yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL)
|
||||
}
|
||||
@@ -637,16 +649,20 @@ use_function_declaration:
|
||||
{
|
||||
name := &ast.NameName{ast.Node{}, $2}
|
||||
alias := &ast.Identifier{ast.Node{}, $4.Value}
|
||||
$$ = &ast.StmtUseDeclaration{ast.Node{}, name, alias}
|
||||
asAlias := &ast.ParserAs{ast.Node{}, alias}
|
||||
useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, alias}
|
||||
$$ = &ast.ParserNsSeparator{ast.Node{}, useDeclaration}
|
||||
|
||||
// save position
|
||||
name.GetNode().Position = position.NewNodeListPosition($2)
|
||||
alias.GetNode().Position = position.NewTokenPosition($4)
|
||||
$$.GetNode().Position = position.NewNodeListTokenPosition($2, $4)
|
||||
asAlias.GetNode().Position = position.NewTokensPosition($3, $4)
|
||||
useDeclaration.GetNode().Position = position.NewTokensPosition($1, $4)
|
||||
$$.GetNode().Position = position.NewTokensPosition($1, $4)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens)
|
||||
yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens)
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens)
|
||||
yylex.(*Parser).setFreeFloating(asAlias, token.Start, $3.Tokens)
|
||||
yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Tokens)
|
||||
|
||||
yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL)
|
||||
@@ -687,15 +703,17 @@ use_const_declaration:
|
||||
{
|
||||
name := &ast.NameName{ast.Node{}, $1}
|
||||
alias := &ast.Identifier{ast.Node{}, $3.Value}
|
||||
$$ = &ast.StmtUseDeclaration{ast.Node{}, name, alias}
|
||||
asAlias := &ast.ParserAs{ast.Node{}, alias}
|
||||
$$ = &ast.StmtUseDeclaration{ast.Node{}, name, asAlias}
|
||||
|
||||
// save position
|
||||
name.GetNode().Position = position.NewNodeListPosition($1)
|
||||
alias.GetNode().Position = position.NewTokenPosition($3)
|
||||
asAlias.GetNode().Position = position.NewTokensPosition($2, $3)
|
||||
$$.GetNode().Position = position.NewNodeListTokenPosition($1, $3)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating(name, token.End, $2.Tokens)
|
||||
yylex.(*Parser).setFreeFloating(asAlias, token.Start, $2.Tokens)
|
||||
yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens)
|
||||
|
||||
yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL)
|
||||
@@ -703,14 +721,16 @@ use_const_declaration:
|
||||
| T_NS_SEPARATOR namespace_name
|
||||
{
|
||||
name := &ast.NameName{ast.Node{}, $2}
|
||||
$$ = &ast.StmtUseDeclaration{ast.Node{}, name, nil}
|
||||
useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, nil}
|
||||
$$ = &ast.ParserNsSeparator{ast.Node{}, useDeclaration}
|
||||
|
||||
// save position
|
||||
name.GetNode().Position = position.NewNodeListPosition($2)
|
||||
$$.GetNode().Position = position.NewNodeListPosition($2)
|
||||
useDeclaration.GetNode().Position = position.NewTokenNodePosition($1, name)
|
||||
$$.GetNode().Position = position.NewTokenNodePosition($1, name)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens)
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens)
|
||||
|
||||
yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL)
|
||||
}
|
||||
@@ -718,16 +738,20 @@ use_const_declaration:
|
||||
{
|
||||
name := &ast.NameName{ast.Node{}, $2}
|
||||
alias := &ast.Identifier{ast.Node{}, $4.Value}
|
||||
$$ = &ast.StmtUseDeclaration{ast.Node{}, name, alias}
|
||||
asAlias := &ast.ParserAs{ast.Node{}, alias}
|
||||
useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, alias}
|
||||
$$ = &ast.ParserNsSeparator{ast.Node{}, useDeclaration}
|
||||
|
||||
// save position
|
||||
name.GetNode().Position = position.NewNodeListPosition($2)
|
||||
alias.GetNode().Position = position.NewTokenPosition($4)
|
||||
$$.GetNode().Position = position.NewNodeListTokenPosition($2, $4)
|
||||
asAlias.GetNode().Position = position.NewTokensPosition($3, $4)
|
||||
useDeclaration.GetNode().Position = position.NewTokensPosition($1, $4)
|
||||
$$.GetNode().Position = position.NewTokensPosition($1, $4)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens)
|
||||
yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens)
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens)
|
||||
yylex.(*Parser).setFreeFloating(asAlias, token.Start, $3.Tokens)
|
||||
yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Tokens)
|
||||
|
||||
yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL)
|
||||
|
||||
@@ -9,6 +9,8 @@ import (
|
||||
"github.com/z7zmey/php-parser/internal/php5"
|
||||
"github.com/z7zmey/php-parser/internal/scanner"
|
||||
"github.com/z7zmey/php-parser/pkg/ast"
|
||||
"github.com/z7zmey/php-parser/pkg/ast/traverser"
|
||||
"github.com/z7zmey/php-parser/pkg/ast/visitor"
|
||||
"github.com/z7zmey/php-parser/pkg/errors"
|
||||
"github.com/z7zmey/php-parser/pkg/position"
|
||||
)
|
||||
@@ -8594,7 +8596,7 @@ func TestPhp5(t *testing.T) {
|
||||
Position: &position.Position{
|
||||
StartLine: 155,
|
||||
EndLine: 155,
|
||||
StartPos: 3295,
|
||||
StartPos: 3294,
|
||||
EndPos: 3298,
|
||||
},
|
||||
},
|
||||
@@ -8604,7 +8606,7 @@ func TestPhp5(t *testing.T) {
|
||||
Position: &position.Position{
|
||||
StartLine: 155,
|
||||
EndLine: 155,
|
||||
StartPos: 3295,
|
||||
StartPos: 3294,
|
||||
EndPos: 3298,
|
||||
},
|
||||
},
|
||||
@@ -8649,7 +8651,7 @@ func TestPhp5(t *testing.T) {
|
||||
Position: &position.Position{
|
||||
StartLine: 156,
|
||||
EndLine: 156,
|
||||
StartPos: 3305,
|
||||
StartPos: 3304,
|
||||
EndPos: 3315,
|
||||
},
|
||||
},
|
||||
@@ -8659,7 +8661,7 @@ func TestPhp5(t *testing.T) {
|
||||
Position: &position.Position{
|
||||
StartLine: 156,
|
||||
EndLine: 156,
|
||||
StartPos: 3305,
|
||||
StartPos: 3304,
|
||||
EndPos: 3315,
|
||||
},
|
||||
},
|
||||
@@ -8965,7 +8967,7 @@ func TestPhp5(t *testing.T) {
|
||||
Position: &position.Position{
|
||||
StartLine: 159,
|
||||
EndLine: 159,
|
||||
StartPos: 3371,
|
||||
StartPos: 3370,
|
||||
EndPos: 3374,
|
||||
},
|
||||
},
|
||||
@@ -9085,7 +9087,7 @@ func TestPhp5(t *testing.T) {
|
||||
Position: &position.Position{
|
||||
StartLine: 160,
|
||||
EndLine: 160,
|
||||
StartPos: 3402,
|
||||
StartPos: 3401,
|
||||
EndPos: 3412,
|
||||
},
|
||||
},
|
||||
@@ -9205,7 +9207,7 @@ func TestPhp5(t *testing.T) {
|
||||
Position: &position.Position{
|
||||
StartLine: 161,
|
||||
EndLine: 161,
|
||||
StartPos: 3430,
|
||||
StartPos: 3429,
|
||||
EndPos: 3433,
|
||||
},
|
||||
},
|
||||
@@ -9325,7 +9327,7 @@ func TestPhp5(t *testing.T) {
|
||||
Position: &position.Position{
|
||||
StartLine: 162,
|
||||
EndLine: 162,
|
||||
StartPos: 3458,
|
||||
StartPos: 3457,
|
||||
EndPos: 3468,
|
||||
},
|
||||
},
|
||||
@@ -22214,6 +22216,7 @@ func TestPhp5(t *testing.T) {
|
||||
php5parser := php5.NewParser(lexer, nil)
|
||||
php5parser.Parse()
|
||||
actual := php5parser.GetRootNode()
|
||||
traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual)
|
||||
assert.DeepEqual(t, expected, actual)
|
||||
}
|
||||
|
||||
@@ -22352,6 +22355,7 @@ func TestPhp5Strings(t *testing.T) {
|
||||
php5parser := php5.NewParser(lexer, nil)
|
||||
php5parser.Parse()
|
||||
actual := php5parser.GetRootNode()
|
||||
traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual)
|
||||
assert.DeepEqual(t, expected, actual)
|
||||
}
|
||||
|
||||
@@ -22579,6 +22583,7 @@ CAD;
|
||||
php5parser := php5.NewParser(lexer, nil)
|
||||
php5parser.Parse()
|
||||
actual := php5parser.GetRootNode()
|
||||
traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual)
|
||||
assert.DeepEqual(t, expected, actual)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user