[refactoring] update ast structure of "MagicConstant" and "String" nodes
This commit is contained in:
parent
e6a23dfa3a
commit
3bda40e8ce
590
internal/php5/php5.go
generated
590
internal/php5/php5.go
generated
File diff suppressed because it is too large
Load Diff
@ -4020,15 +4020,19 @@ combined_scalar_offset:
|
||||
}
|
||||
| T_CONSTANT_ENCAPSED_STRING '[' dim_offset ']'
|
||||
{
|
||||
str := &ast.ScalarString{ast.Node{}, $1.Value}
|
||||
str := &ast.ScalarString{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition($1),
|
||||
},
|
||||
StringTkn: $1,
|
||||
Value: $1.Value,
|
||||
}
|
||||
$$ = &ast.ExprArrayDimFetch{ast.Node{}, str, $3}
|
||||
|
||||
// save position
|
||||
str.GetNode().Position = position.NewTokenPosition($1)
|
||||
$$.GetNode().Position = position.NewNodeTokenPosition(str, $4)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating(str, token.Start, $1.SkippedTokens)
|
||||
yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.SkippedTokens)
|
||||
yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.SkippedTokens)
|
||||
}
|
||||
@ -4517,83 +4521,83 @@ common_scalar:
|
||||
}
|
||||
| T_CONSTANT_ENCAPSED_STRING
|
||||
{
|
||||
$$ = &ast.ScalarString{ast.Node{}, $1.Value}
|
||||
|
||||
// save position
|
||||
$$.GetNode().Position = position.NewTokenPosition($1)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens)
|
||||
$$ = &ast.ScalarString{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition($1),
|
||||
},
|
||||
StringTkn: $1,
|
||||
Value: $1.Value,
|
||||
}
|
||||
}
|
||||
| T_LINE
|
||||
{
|
||||
$$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value}
|
||||
|
||||
// save position
|
||||
$$.GetNode().Position = position.NewTokenPosition($1)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens)
|
||||
$$ = &ast.ScalarMagicConstant{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition($1),
|
||||
},
|
||||
MagicConstTkn: $1,
|
||||
Value: $1.Value,
|
||||
}
|
||||
}
|
||||
| T_FILE
|
||||
{
|
||||
$$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value}
|
||||
|
||||
// save position
|
||||
$$.GetNode().Position = position.NewTokenPosition($1)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens)
|
||||
$$ = &ast.ScalarMagicConstant{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition($1),
|
||||
},
|
||||
MagicConstTkn: $1,
|
||||
Value: $1.Value,
|
||||
}
|
||||
}
|
||||
| T_DIR
|
||||
{
|
||||
$$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value}
|
||||
|
||||
// save position
|
||||
$$.GetNode().Position = position.NewTokenPosition($1)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens)
|
||||
$$ = &ast.ScalarMagicConstant{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition($1),
|
||||
},
|
||||
MagicConstTkn: $1,
|
||||
Value: $1.Value,
|
||||
}
|
||||
}
|
||||
| T_TRAIT_C
|
||||
{
|
||||
$$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value}
|
||||
|
||||
// save position
|
||||
$$.GetNode().Position = position.NewTokenPosition($1)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens)
|
||||
$$ = &ast.ScalarMagicConstant{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition($1),
|
||||
},
|
||||
MagicConstTkn: $1,
|
||||
Value: $1.Value,
|
||||
}
|
||||
}
|
||||
| T_METHOD_C
|
||||
{
|
||||
$$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value}
|
||||
|
||||
// save position
|
||||
$$.GetNode().Position = position.NewTokenPosition($1)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens)
|
||||
$$ = &ast.ScalarMagicConstant{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition($1),
|
||||
},
|
||||
MagicConstTkn: $1,
|
||||
Value: $1.Value,
|
||||
}
|
||||
}
|
||||
| T_FUNC_C
|
||||
{
|
||||
$$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value}
|
||||
|
||||
// save position
|
||||
$$.GetNode().Position = position.NewTokenPosition($1)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens)
|
||||
$$ = &ast.ScalarMagicConstant{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition($1),
|
||||
},
|
||||
MagicConstTkn: $1,
|
||||
Value: $1.Value,
|
||||
}
|
||||
}
|
||||
| T_NS_C
|
||||
{
|
||||
$$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value}
|
||||
|
||||
// save position
|
||||
$$.GetNode().Position = position.NewTokenPosition($1)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens)
|
||||
$$ = &ast.ScalarMagicConstant{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition($1),
|
||||
},
|
||||
MagicConstTkn: $1,
|
||||
Value: $1.Value,
|
||||
}
|
||||
}
|
||||
| T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC
|
||||
{
|
||||
@ -4734,13 +4738,13 @@ static_scalar_value:
|
||||
}
|
||||
| T_CLASS_C
|
||||
{
|
||||
$$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value}
|
||||
|
||||
// save position
|
||||
$$.GetNode().Position = position.NewTokenPosition($1)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens)
|
||||
$$ = &ast.ScalarMagicConstant{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition($1),
|
||||
},
|
||||
MagicConstTkn: $1,
|
||||
Value: $1.Value,
|
||||
}
|
||||
}
|
||||
| static_operation
|
||||
{
|
||||
@ -5213,13 +5217,13 @@ scalar:
|
||||
}
|
||||
| T_CLASS_C
|
||||
{
|
||||
$$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value}
|
||||
|
||||
// save position
|
||||
$$.GetNode().Position = position.NewTokenPosition($1)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens)
|
||||
$$ = &ast.ScalarMagicConstant{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition($1),
|
||||
},
|
||||
MagicConstTkn: $1,
|
||||
Value: $1.Value,
|
||||
}
|
||||
}
|
||||
;
|
||||
|
||||
@ -6151,13 +6155,13 @@ encaps_var:
|
||||
encaps_var_offset:
|
||||
T_STRING
|
||||
{
|
||||
$$ = &ast.ScalarString{ast.Node{}, $1.Value}
|
||||
|
||||
// save position
|
||||
$$.GetNode().Position = position.NewTokenPosition($1)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens)
|
||||
$$ = &ast.ScalarString{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition($1),
|
||||
},
|
||||
StringTkn: $1,
|
||||
Value: $1.Value,
|
||||
}
|
||||
}
|
||||
| T_NUM_STRING
|
||||
{
|
||||
@ -6171,7 +6175,13 @@ encaps_var_offset:
|
||||
Value: $1.Value,
|
||||
}
|
||||
} else {
|
||||
$$ = &ast.ScalarString{ast.Node{}, $1.Value}
|
||||
$$ = &ast.ScalarString{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition($1),
|
||||
},
|
||||
StringTkn: $1,
|
||||
Value: $1.Value,
|
||||
}
|
||||
}
|
||||
|
||||
// save position
|
||||
|
197
internal/php7/php7.go
generated
197
internal/php7/php7.go
generated
@ -347,7 +347,7 @@ const yyEofCode = 1
|
||||
const yyErrCode = 2
|
||||
const yyInitialStackSize = 16
|
||||
|
||||
// line internal/php7/php7.y:4988
|
||||
// line internal/php7/php7.y:4989
|
||||
|
||||
// line yacctab:1
|
||||
var yyExca = [...]int{
|
||||
@ -6541,13 +6541,13 @@ yydefault:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3933
|
||||
{
|
||||
yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value}
|
||||
|
||||
// save position
|
||||
yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens)
|
||||
yyVAL.node = &ast.ScalarString{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition(yyDollar[1].token),
|
||||
},
|
||||
StringTkn: yyDollar[1].token,
|
||||
Value: yyDollar[1].token.Value,
|
||||
}
|
||||
}
|
||||
case 402:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
@ -6577,97 +6577,97 @@ yydefault:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3966
|
||||
{
|
||||
yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value}
|
||||
|
||||
// save position
|
||||
yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens)
|
||||
yyVAL.node = &ast.ScalarMagicConstant{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition(yyDollar[1].token),
|
||||
},
|
||||
MagicConstTkn: yyDollar[1].token,
|
||||
Value: yyDollar[1].token.Value,
|
||||
}
|
||||
}
|
||||
case 405:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3976
|
||||
{
|
||||
yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value}
|
||||
|
||||
// save position
|
||||
yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens)
|
||||
yyVAL.node = &ast.ScalarMagicConstant{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition(yyDollar[1].token),
|
||||
},
|
||||
MagicConstTkn: yyDollar[1].token,
|
||||
Value: yyDollar[1].token.Value,
|
||||
}
|
||||
}
|
||||
case 406:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3986
|
||||
{
|
||||
yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value}
|
||||
|
||||
// save position
|
||||
yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens)
|
||||
yyVAL.node = &ast.ScalarMagicConstant{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition(yyDollar[1].token),
|
||||
},
|
||||
MagicConstTkn: yyDollar[1].token,
|
||||
Value: yyDollar[1].token.Value,
|
||||
}
|
||||
}
|
||||
case 407:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:3996
|
||||
{
|
||||
yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value}
|
||||
|
||||
// save position
|
||||
yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens)
|
||||
yyVAL.node = &ast.ScalarMagicConstant{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition(yyDollar[1].token),
|
||||
},
|
||||
MagicConstTkn: yyDollar[1].token,
|
||||
Value: yyDollar[1].token.Value,
|
||||
}
|
||||
}
|
||||
case 408:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4006
|
||||
{
|
||||
yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value}
|
||||
|
||||
// save position
|
||||
yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens)
|
||||
yyVAL.node = &ast.ScalarMagicConstant{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition(yyDollar[1].token),
|
||||
},
|
||||
MagicConstTkn: yyDollar[1].token,
|
||||
Value: yyDollar[1].token.Value,
|
||||
}
|
||||
}
|
||||
case 409:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4016
|
||||
{
|
||||
yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value}
|
||||
|
||||
// save position
|
||||
yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens)
|
||||
yyVAL.node = &ast.ScalarMagicConstant{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition(yyDollar[1].token),
|
||||
},
|
||||
MagicConstTkn: yyDollar[1].token,
|
||||
Value: yyDollar[1].token.Value,
|
||||
}
|
||||
}
|
||||
case 410:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4026
|
||||
{
|
||||
yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value}
|
||||
|
||||
// save position
|
||||
yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens)
|
||||
yyVAL.node = &ast.ScalarMagicConstant{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition(yyDollar[1].token),
|
||||
},
|
||||
MagicConstTkn: yyDollar[1].token,
|
||||
Value: yyDollar[1].token.Value,
|
||||
}
|
||||
}
|
||||
case 411:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4036
|
||||
{
|
||||
yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value}
|
||||
|
||||
// save position
|
||||
yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens)
|
||||
yyVAL.node = &ast.ScalarMagicConstant{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition(yyDollar[1].token),
|
||||
},
|
||||
MagicConstTkn: yyDollar[1].token,
|
||||
Value: yyDollar[1].token.Value,
|
||||
}
|
||||
}
|
||||
case 412:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
@ -7497,13 +7497,13 @@ yydefault:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4792
|
||||
{
|
||||
yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value}
|
||||
|
||||
// save position
|
||||
yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens)
|
||||
yyVAL.node = &ast.ScalarString{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition(yyDollar[1].token),
|
||||
},
|
||||
StringTkn: yyDollar[1].token,
|
||||
Value: yyDollar[1].token.Value,
|
||||
}
|
||||
}
|
||||
case 482:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
@ -7519,14 +7519,14 @@ yydefault:
|
||||
Value: yyDollar[1].token.Value,
|
||||
}
|
||||
} else {
|
||||
yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value}
|
||||
yyVAL.node = &ast.ScalarString{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition(yyDollar[1].token),
|
||||
},
|
||||
StringTkn: yyDollar[1].token,
|
||||
Value: yyDollar[1].token.Value,
|
||||
}
|
||||
}
|
||||
|
||||
// save position
|
||||
yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens)
|
||||
}
|
||||
case 483:
|
||||
yyDollar = yyS[yypt-2 : yypt+1]
|
||||
@ -7544,20 +7544,21 @@ yydefault:
|
||||
Value: yyDollar[2].token.Value,
|
||||
}
|
||||
yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, lnumber}
|
||||
} else {
|
||||
yyDollar[2].token.Value = append([]byte("-"), yyDollar[2].token.Value...)
|
||||
yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[2].token.Value}
|
||||
}
|
||||
|
||||
// save position
|
||||
yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens)
|
||||
} else {
|
||||
yyVAL.node = &ast.ScalarString{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token),
|
||||
},
|
||||
MinusTkn: yyDollar[1].token,
|
||||
StringTkn: yyDollar[2].token,
|
||||
Value: append([]byte("-"), yyDollar[2].token.Value...),
|
||||
}
|
||||
}
|
||||
}
|
||||
case 484:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4848
|
||||
// line internal/php7/php7.y:4849
|
||||
{
|
||||
identifier := &ast.Identifier{
|
||||
Node: ast.Node{
|
||||
@ -7576,7 +7577,7 @@ yydefault:
|
||||
}
|
||||
case 485:
|
||||
yyDollar = yyS[yypt-5 : yypt+1]
|
||||
// line internal/php7/php7.y:4868
|
||||
// line internal/php7/php7.y:4869
|
||||
{
|
||||
yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list}
|
||||
|
||||
@ -7594,7 +7595,7 @@ yydefault:
|
||||
}
|
||||
case 486:
|
||||
yyDollar = yyS[yypt-4 : yypt+1]
|
||||
// line internal/php7/php7.y:4884
|
||||
// line internal/php7/php7.y:4885
|
||||
{
|
||||
exprBrackets := &ast.ParserBrackets{
|
||||
Node: ast.Node{
|
||||
@ -7616,7 +7617,7 @@ yydefault:
|
||||
}
|
||||
case 487:
|
||||
yyDollar = yyS[yypt-2 : yypt+1]
|
||||
// line internal/php7/php7.y:4904
|
||||
// line internal/php7/php7.y:4905
|
||||
{
|
||||
yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node}
|
||||
|
||||
@ -7628,7 +7629,7 @@ yydefault:
|
||||
}
|
||||
case 488:
|
||||
yyDollar = yyS[yypt-2 : yypt+1]
|
||||
// line internal/php7/php7.y:4914
|
||||
// line internal/php7/php7.y:4915
|
||||
{
|
||||
yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node}
|
||||
|
||||
@ -7640,7 +7641,7 @@ yydefault:
|
||||
}
|
||||
case 489:
|
||||
yyDollar = yyS[yypt-4 : yypt+1]
|
||||
// line internal/php7/php7.y:4924
|
||||
// line internal/php7/php7.y:4925
|
||||
{
|
||||
exprBrackets := &ast.ParserBrackets{
|
||||
Node: ast.Node{
|
||||
@ -7662,7 +7663,7 @@ yydefault:
|
||||
}
|
||||
case 490:
|
||||
yyDollar = yyS[yypt-2 : yypt+1]
|
||||
// line internal/php7/php7.y:4944
|
||||
// line internal/php7/php7.y:4945
|
||||
{
|
||||
yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node}
|
||||
|
||||
@ -7674,7 +7675,7 @@ yydefault:
|
||||
}
|
||||
case 491:
|
||||
yyDollar = yyS[yypt-2 : yypt+1]
|
||||
// line internal/php7/php7.y:4954
|
||||
// line internal/php7/php7.y:4955
|
||||
{
|
||||
yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node}
|
||||
|
||||
@ -7686,13 +7687,13 @@ yydefault:
|
||||
}
|
||||
case 492:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4967
|
||||
// line internal/php7/php7.y:4968
|
||||
{
|
||||
yyVAL.list = []ast.Vertex{yyDollar[1].node}
|
||||
}
|
||||
case 493:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:4971
|
||||
// line internal/php7/php7.y:4972
|
||||
{
|
||||
yyVAL.list = append(yyDollar[1].list, yyDollar[3].node)
|
||||
|
||||
@ -7701,7 +7702,7 @@ yydefault:
|
||||
}
|
||||
case 494:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4981
|
||||
// line internal/php7/php7.y:4982
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
|
@ -3931,13 +3931,13 @@ dereferencable_scalar:
|
||||
}
|
||||
| T_CONSTANT_ENCAPSED_STRING
|
||||
{
|
||||
$$ = &ast.ScalarString{ast.Node{}, $1.Value}
|
||||
|
||||
// save position
|
||||
$$.GetNode().Position = position.NewTokenPosition($1)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens)
|
||||
$$ = &ast.ScalarString{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition($1),
|
||||
},
|
||||
StringTkn: $1,
|
||||
Value: $1.Value,
|
||||
}
|
||||
}
|
||||
;
|
||||
|
||||
@ -3964,83 +3964,83 @@ scalar:
|
||||
}
|
||||
| T_LINE
|
||||
{
|
||||
$$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value}
|
||||
|
||||
// save position
|
||||
$$.GetNode().Position = position.NewTokenPosition($1)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens)
|
||||
$$ = &ast.ScalarMagicConstant{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition($1),
|
||||
},
|
||||
MagicConstTkn: $1,
|
||||
Value: $1.Value,
|
||||
}
|
||||
}
|
||||
| T_FILE
|
||||
{
|
||||
$$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value}
|
||||
|
||||
// save position
|
||||
$$.GetNode().Position = position.NewTokenPosition($1)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens)
|
||||
$$ = &ast.ScalarMagicConstant{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition($1),
|
||||
},
|
||||
MagicConstTkn: $1,
|
||||
Value: $1.Value,
|
||||
}
|
||||
}
|
||||
| T_DIR
|
||||
{
|
||||
$$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value}
|
||||
|
||||
// save position
|
||||
$$.GetNode().Position = position.NewTokenPosition($1)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens)
|
||||
$$ = &ast.ScalarMagicConstant{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition($1),
|
||||
},
|
||||
MagicConstTkn: $1,
|
||||
Value: $1.Value,
|
||||
}
|
||||
}
|
||||
| T_TRAIT_C
|
||||
{
|
||||
$$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value}
|
||||
|
||||
// save position
|
||||
$$.GetNode().Position = position.NewTokenPosition($1)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens)
|
||||
$$ = &ast.ScalarMagicConstant{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition($1),
|
||||
},
|
||||
MagicConstTkn: $1,
|
||||
Value: $1.Value,
|
||||
}
|
||||
}
|
||||
| T_METHOD_C
|
||||
{
|
||||
$$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value}
|
||||
|
||||
// save position
|
||||
$$.GetNode().Position = position.NewTokenPosition($1)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens)
|
||||
$$ = &ast.ScalarMagicConstant{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition($1),
|
||||
},
|
||||
MagicConstTkn: $1,
|
||||
Value: $1.Value,
|
||||
}
|
||||
}
|
||||
| T_FUNC_C
|
||||
{
|
||||
$$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value}
|
||||
|
||||
// save position
|
||||
$$.GetNode().Position = position.NewTokenPosition($1)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens)
|
||||
$$ = &ast.ScalarMagicConstant{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition($1),
|
||||
},
|
||||
MagicConstTkn: $1,
|
||||
Value: $1.Value,
|
||||
}
|
||||
}
|
||||
| T_NS_C
|
||||
{
|
||||
$$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value}
|
||||
|
||||
// save position
|
||||
$$.GetNode().Position = position.NewTokenPosition($1)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens)
|
||||
$$ = &ast.ScalarMagicConstant{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition($1),
|
||||
},
|
||||
MagicConstTkn: $1,
|
||||
Value: $1.Value,
|
||||
}
|
||||
}
|
||||
| T_CLASS_C
|
||||
{
|
||||
$$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value}
|
||||
|
||||
// save position
|
||||
$$.GetNode().Position = position.NewTokenPosition($1)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens)
|
||||
$$ = &ast.ScalarMagicConstant{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition($1),
|
||||
},
|
||||
MagicConstTkn: $1,
|
||||
Value: $1.Value,
|
||||
}
|
||||
}
|
||||
| T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC
|
||||
{
|
||||
@ -4790,13 +4790,13 @@ encaps_var:
|
||||
encaps_var_offset:
|
||||
T_STRING
|
||||
{
|
||||
$$ = &ast.ScalarString{ast.Node{}, $1.Value}
|
||||
|
||||
// save position
|
||||
$$.GetNode().Position = position.NewTokenPosition($1)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens)
|
||||
$$ = &ast.ScalarString{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition($1),
|
||||
},
|
||||
StringTkn: $1,
|
||||
Value: $1.Value,
|
||||
}
|
||||
}
|
||||
| T_NUM_STRING
|
||||
{
|
||||
@ -4810,14 +4810,14 @@ encaps_var_offset:
|
||||
Value: $1.Value,
|
||||
}
|
||||
} else {
|
||||
$$ = &ast.ScalarString{ast.Node{}, $1.Value}
|
||||
$$ = &ast.ScalarString{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition($1),
|
||||
},
|
||||
StringTkn: $1,
|
||||
Value: $1.Value,
|
||||
}
|
||||
}
|
||||
|
||||
// save position
|
||||
$$.GetNode().Position = position.NewTokenPosition($1)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens)
|
||||
}
|
||||
| '-' T_NUM_STRING
|
||||
{
|
||||
@ -4833,16 +4833,17 @@ encaps_var_offset:
|
||||
Value: $2.Value,
|
||||
}
|
||||
$$ = &ast.ExprUnaryMinus{ast.Node{}, lnumber}
|
||||
} else {
|
||||
$2.Value = append([]byte("-"), $2.Value...)
|
||||
$$ = &ast.ScalarString{ast.Node{}, $2.Value}
|
||||
}
|
||||
|
||||
// save position
|
||||
$$.GetNode().Position = position.NewTokensPosition($1, $2)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens)
|
||||
} else {
|
||||
$$ = &ast.ScalarString{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokensPosition($1, $2),
|
||||
},
|
||||
MinusTkn: $1,
|
||||
StringTkn: $2,
|
||||
Value: append([]byte("-"), $2.Value...),
|
||||
}
|
||||
}
|
||||
}
|
||||
| T_VARIABLE
|
||||
{
|
||||
|
@ -172,6 +172,7 @@ func (n *ScalarLnumber) Accept(v NodeVisitor) {
|
||||
// ScalarMagicConstant node
|
||||
type ScalarMagicConstant struct {
|
||||
Node
|
||||
MagicConstTkn *token.Token
|
||||
Value []byte
|
||||
}
|
||||
|
||||
@ -182,6 +183,8 @@ func (n *ScalarMagicConstant) Accept(v NodeVisitor) {
|
||||
// ScalarString node
|
||||
type ScalarString struct {
|
||||
Node
|
||||
MinusTkn *token.Token
|
||||
StringTkn *token.Token
|
||||
Value []byte
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user