[refactoring] update ast structure of "BitwiseNot", "BooleanNot", "ClassConstFetch" and "Clone" nodes
This commit is contained in:
parent
4b8d431767
commit
b90400d993
1227
internal/php5/php5.go
generated
1227
internal/php5/php5.go
generated
File diff suppressed because it is too large
Load Diff
@ -3220,13 +3220,13 @@ expr_without_variable:
|
||||
}
|
||||
| T_CLONE expr
|
||||
{
|
||||
$$ = &ast.ExprClone{ast.Node{}, $2}
|
||||
|
||||
// save position
|
||||
$$.GetNode().Position = position.NewTokenNodePosition($1, $2)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens)
|
||||
$$ = &ast.ExprClone{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenNodePosition($1, $2),
|
||||
},
|
||||
CloneTkn: $1,
|
||||
Expr: $2,
|
||||
}
|
||||
}
|
||||
| variable T_PLUS_EQUAL expr
|
||||
{
|
||||
@ -3609,23 +3609,23 @@ expr_without_variable:
|
||||
}
|
||||
| '!' expr
|
||||
{
|
||||
$$ = &ast.ExprBooleanNot{ast.Node{}, $2}
|
||||
|
||||
// save position
|
||||
$$.GetNode().Position = position.NewTokenNodePosition($1, $2)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens)
|
||||
$$ = &ast.ExprBooleanNot{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenNodePosition($1, $2),
|
||||
},
|
||||
ExclamationTkn: $1,
|
||||
Expr: $2,
|
||||
}
|
||||
}
|
||||
| '~' expr
|
||||
{
|
||||
$$ = &ast.ExprBitwiseNot{ast.Node{}, $2}
|
||||
|
||||
// save position
|
||||
$$.GetNode().Position = position.NewTokenNodePosition($1, $2)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens)
|
||||
$$ = &ast.ExprBitwiseNot{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenNodePosition($1, $2),
|
||||
},
|
||||
TildaTkn: $1,
|
||||
Expr: $2,
|
||||
}
|
||||
}
|
||||
| expr T_IS_IDENTICAL expr
|
||||
{
|
||||
@ -4665,21 +4665,20 @@ common_scalar:
|
||||
static_class_constant:
|
||||
class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING
|
||||
{
|
||||
target := &ast.Identifier{
|
||||
$$ = &ast.ExprClassConstFetch{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition($3),
|
||||
Position: position.NewNodeTokenPosition($1, $3),
|
||||
},
|
||||
Class: $1,
|
||||
DoubleColonTkn: $2,
|
||||
ConstantName: &ast.Identifier{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition($3),
|
||||
},
|
||||
IdentifierTkn: $3,
|
||||
Value: $3.Value,
|
||||
},
|
||||
IdentifierTkn: $3,
|
||||
Value: $3.Value,
|
||||
}
|
||||
$$ = &ast.ExprClassConstFetch{ast.Node{}, $1, target}
|
||||
|
||||
// save position
|
||||
$$.GetNode().Position = position.NewNodeTokenPosition($1, $3)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).MoveFreeFloating($1, $$)
|
||||
yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens)
|
||||
}
|
||||
;
|
||||
|
||||
@ -4867,23 +4866,23 @@ static_operation:
|
||||
}
|
||||
| '!' static_scalar_value
|
||||
{
|
||||
$$ = &ast.ExprBooleanNot{ast.Node{}, $2}
|
||||
|
||||
// save position
|
||||
$$.GetNode().Position = position.NewTokenNodePosition($1, $2)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens)
|
||||
$$ = &ast.ExprBooleanNot{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenNodePosition($1, $2),
|
||||
},
|
||||
ExclamationTkn: $1,
|
||||
Expr: $2,
|
||||
}
|
||||
}
|
||||
| '~' static_scalar_value
|
||||
{
|
||||
$$ = &ast.ExprBitwiseNot{ast.Node{}, $2}
|
||||
|
||||
// save position
|
||||
$$.GetNode().Position = position.NewTokenNodePosition($1, $2)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens)
|
||||
$$ = &ast.ExprBitwiseNot{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenNodePosition($1, $2),
|
||||
},
|
||||
TildaTkn: $1,
|
||||
Expr: $2,
|
||||
}
|
||||
}
|
||||
| static_scalar_value '|' static_scalar_value
|
||||
{
|
||||
@ -6445,81 +6444,77 @@ isset_variable:
|
||||
class_constant:
|
||||
class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING
|
||||
{
|
||||
target := &ast.Identifier{
|
||||
$$ = &ast.ExprClassConstFetch{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition($3),
|
||||
Position: position.NewNodeTokenPosition($1, $3),
|
||||
},
|
||||
Class: $1,
|
||||
DoubleColonTkn: $2,
|
||||
ConstantName: &ast.Identifier{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition($3),
|
||||
},
|
||||
IdentifierTkn: $3,
|
||||
Value: $3.Value,
|
||||
},
|
||||
IdentifierTkn: $3,
|
||||
Value: $3.Value,
|
||||
}
|
||||
$$ = &ast.ExprClassConstFetch{ast.Node{}, $1, target}
|
||||
|
||||
// save position
|
||||
$$.GetNode().Position = position.NewNodeTokenPosition($1, $3)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).MoveFreeFloating($1, $$)
|
||||
yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens)
|
||||
}
|
||||
| variable_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING
|
||||
{
|
||||
target := &ast.Identifier{
|
||||
$$ = &ast.ExprClassConstFetch{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition($3),
|
||||
Position: position.NewNodeTokenPosition($1, $3),
|
||||
},
|
||||
Class: $1,
|
||||
DoubleColonTkn: $2,
|
||||
ConstantName: &ast.Identifier{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition($3),
|
||||
},
|
||||
IdentifierTkn: $3,
|
||||
Value: $3.Value,
|
||||
},
|
||||
IdentifierTkn: $3,
|
||||
Value: $3.Value,
|
||||
}
|
||||
$$ = &ast.ExprClassConstFetch{ast.Node{}, $1, target}
|
||||
|
||||
// save position
|
||||
$$.GetNode().Position = position.NewNodeTokenPosition($1, $3)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).MoveFreeFloating($1, $$)
|
||||
yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens)
|
||||
}
|
||||
;
|
||||
|
||||
static_class_name_scalar:
|
||||
class_name T_PAAMAYIM_NEKUDOTAYIM T_CLASS
|
||||
{
|
||||
target := &ast.Identifier{
|
||||
$$ = &ast.ExprClassConstFetch{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition($3),
|
||||
Position: position.NewNodeTokenPosition($1, $3),
|
||||
},
|
||||
Class: $1,
|
||||
DoubleColonTkn: $2,
|
||||
ConstantName: &ast.Identifier{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition($3),
|
||||
},
|
||||
IdentifierTkn: $3,
|
||||
Value: $3.Value,
|
||||
},
|
||||
IdentifierTkn: $3,
|
||||
Value: $3.Value,
|
||||
}
|
||||
$$ = &ast.ExprClassConstFetch{ast.Node{}, $1, target}
|
||||
|
||||
// save position
|
||||
$$.GetNode().Position = position.NewNodeTokenPosition($1, $3)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).MoveFreeFloating($1, $$)
|
||||
yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens)
|
||||
}
|
||||
;
|
||||
|
||||
class_name_scalar:
|
||||
class_name T_PAAMAYIM_NEKUDOTAYIM T_CLASS
|
||||
{
|
||||
target := &ast.Identifier{
|
||||
$$ = &ast.ExprClassConstFetch{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition($3),
|
||||
Position: position.NewNodeTokenPosition($1, $3),
|
||||
},
|
||||
Class: $1,
|
||||
DoubleColonTkn: $2,
|
||||
ConstantName: &ast.Identifier{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition($3),
|
||||
},
|
||||
IdentifierTkn: $3,
|
||||
Value: $3.Value,
|
||||
},
|
||||
IdentifierTkn: $3,
|
||||
Value: $3.Value,
|
||||
}
|
||||
$$ = &ast.ExprClassConstFetch{ast.Node{}, $1, target}
|
||||
|
||||
// save position
|
||||
$$.GetNode().Position = position.NewNodeTokenPosition($1, $3)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).MoveFreeFloating($1, $$)
|
||||
yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens)
|
||||
}
|
||||
;
|
||||
|
||||
|
240
internal/php7/php7.go
generated
240
internal/php7/php7.go
generated
@ -344,7 +344,7 @@ const yyEofCode = 1
|
||||
const yyErrCode = 2
|
||||
const yyInitialStackSize = 16
|
||||
|
||||
// line internal/php7/php7.y:5006
|
||||
// line internal/php7/php7.y:5004
|
||||
|
||||
// line yacctab:1
|
||||
var yyExca = [...]int{
|
||||
@ -5309,13 +5309,13 @@ yydefault:
|
||||
yyDollar = yyS[yypt-2 : yypt+1]
|
||||
// line internal/php7/php7.y:2868
|
||||
{
|
||||
yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node}
|
||||
|
||||
// save position
|
||||
yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens)
|
||||
yyVAL.node = &ast.ExprClone{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node),
|
||||
},
|
||||
CloneTkn: yyDollar[1].token,
|
||||
Expr: yyDollar[2].node,
|
||||
}
|
||||
}
|
||||
case 301:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
@ -5784,25 +5784,25 @@ yydefault:
|
||||
yyDollar = yyS[yypt-2 : yypt+1]
|
||||
// line internal/php7/php7.y:3269
|
||||
{
|
||||
yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node}
|
||||
|
||||
// save position
|
||||
yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens)
|
||||
yyVAL.node = &ast.ExprBooleanNot{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node),
|
||||
},
|
||||
ExclamationTkn: yyDollar[1].token,
|
||||
Expr: yyDollar[2].node,
|
||||
}
|
||||
}
|
||||
case 338:
|
||||
yyDollar = yyS[yypt-2 : yypt+1]
|
||||
// line internal/php7/php7.y:3279
|
||||
{
|
||||
yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node}
|
||||
|
||||
// save position
|
||||
yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens)
|
||||
yyVAL.node = &ast.ExprBitwiseNot{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node),
|
||||
},
|
||||
TildaTkn: yyDollar[1].token,
|
||||
Expr: yyDollar[2].node,
|
||||
}
|
||||
}
|
||||
case 339:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
@ -6745,81 +6745,79 @@ yydefault:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:4114
|
||||
{
|
||||
target := &ast.Identifier{
|
||||
yyVAL.node = &ast.ExprClassConstFetch{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition(yyDollar[3].token),
|
||||
Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token),
|
||||
},
|
||||
Class: yyDollar[1].node,
|
||||
DoubleColonTkn: yyDollar[2].token,
|
||||
ConstantName: &ast.Identifier{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition(yyDollar[3].token),
|
||||
},
|
||||
IdentifierTkn: yyDollar[3].token,
|
||||
Value: yyDollar[3].token.Value,
|
||||
},
|
||||
IdentifierTkn: yyDollar[3].token,
|
||||
Value: yyDollar[3].token.Value,
|
||||
}
|
||||
yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target}
|
||||
|
||||
// save position
|
||||
yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node)
|
||||
yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens)
|
||||
}
|
||||
case 420:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:4132
|
||||
// line internal/php7/php7.y:4131
|
||||
{
|
||||
target := &ast.Identifier{
|
||||
yyVAL.node = &ast.ExprClassConstFetch{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition(yyDollar[3].token),
|
||||
Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token),
|
||||
},
|
||||
Class: yyDollar[1].node,
|
||||
DoubleColonTkn: yyDollar[2].token,
|
||||
ConstantName: &ast.Identifier{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition(yyDollar[3].token),
|
||||
},
|
||||
IdentifierTkn: yyDollar[3].token,
|
||||
Value: yyDollar[3].token.Value,
|
||||
},
|
||||
IdentifierTkn: yyDollar[3].token,
|
||||
Value: yyDollar[3].token.Value,
|
||||
}
|
||||
yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target}
|
||||
|
||||
// save position
|
||||
yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node)
|
||||
yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens)
|
||||
}
|
||||
case 421:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4153
|
||||
// line internal/php7/php7.y:4151
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
case 422:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4157
|
||||
// line internal/php7/php7.y:4155
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
case 423:
|
||||
yyDollar = yyS[yypt-0 : yypt+1]
|
||||
// line internal/php7/php7.y:4164
|
||||
// line internal/php7/php7.y:4162
|
||||
{
|
||||
yyVAL.node = nil
|
||||
}
|
||||
case 424:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4168
|
||||
// line internal/php7/php7.y:4166
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
case 425:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4175
|
||||
// line internal/php7/php7.y:4173
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
case 426:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4182
|
||||
// line internal/php7/php7.y:4180
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
case 427:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:4186
|
||||
// line internal/php7/php7.y:4184
|
||||
{
|
||||
yyVAL.node = &ast.ParserBrackets{
|
||||
Node: ast.Node{
|
||||
@ -6836,19 +6834,19 @@ yydefault:
|
||||
}
|
||||
case 428:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4201
|
||||
// line internal/php7/php7.y:4199
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
case 429:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4208
|
||||
// line internal/php7/php7.y:4206
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
case 430:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:4212
|
||||
// line internal/php7/php7.y:4210
|
||||
{
|
||||
yyVAL.node = &ast.ParserBrackets{
|
||||
Node: ast.Node{
|
||||
@ -6865,19 +6863,19 @@ yydefault:
|
||||
}
|
||||
case 431:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4227
|
||||
// line internal/php7/php7.y:4225
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
case 432:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4234
|
||||
// line internal/php7/php7.y:4232
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
case 433:
|
||||
yyDollar = yyS[yypt-4 : yypt+1]
|
||||
// line internal/php7/php7.y:4238
|
||||
// line internal/php7/php7.y:4236
|
||||
{
|
||||
yyVAL.node = &ast.ExprArrayDimFetch{
|
||||
Node: ast.Node{
|
||||
@ -6891,7 +6889,7 @@ yydefault:
|
||||
}
|
||||
case 434:
|
||||
yyDollar = yyS[yypt-4 : yypt+1]
|
||||
// line internal/php7/php7.y:4250
|
||||
// line internal/php7/php7.y:4248
|
||||
{
|
||||
yyVAL.node = &ast.ExprArrayDimFetch{
|
||||
Node: ast.Node{
|
||||
@ -6905,7 +6903,7 @@ yydefault:
|
||||
}
|
||||
case 435:
|
||||
yyDollar = yyS[yypt-4 : yypt+1]
|
||||
// line internal/php7/php7.y:4262
|
||||
// line internal/php7/php7.y:4260
|
||||
{
|
||||
yyVAL.node = &ast.ExprArrayDimFetch{
|
||||
Node: ast.Node{
|
||||
@ -6919,7 +6917,7 @@ yydefault:
|
||||
}
|
||||
case 436:
|
||||
yyDollar = yyS[yypt-4 : yypt+1]
|
||||
// line internal/php7/php7.y:4274
|
||||
// line internal/php7/php7.y:4272
|
||||
{
|
||||
yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)}
|
||||
|
||||
@ -6932,25 +6930,25 @@ yydefault:
|
||||
}
|
||||
case 437:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4285
|
||||
// line internal/php7/php7.y:4283
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
case 438:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4292
|
||||
// line internal/php7/php7.y:4290
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
case 439:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4296
|
||||
// line internal/php7/php7.y:4294
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
case 440:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:4300
|
||||
// line internal/php7/php7.y:4298
|
||||
{
|
||||
yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node}
|
||||
|
||||
@ -6963,7 +6961,7 @@ yydefault:
|
||||
}
|
||||
case 441:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4314
|
||||
// line internal/php7/php7.y:4312
|
||||
{
|
||||
name := &ast.Identifier{
|
||||
Node: ast.Node{
|
||||
@ -6982,7 +6980,7 @@ yydefault:
|
||||
}
|
||||
case 442:
|
||||
yyDollar = yyS[yypt-4 : yypt+1]
|
||||
// line internal/php7/php7.y:4331
|
||||
// line internal/php7/php7.y:4329
|
||||
{
|
||||
yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node}
|
||||
|
||||
@ -6996,7 +6994,7 @@ yydefault:
|
||||
}
|
||||
case 443:
|
||||
yyDollar = yyS[yypt-2 : yypt+1]
|
||||
// line internal/php7/php7.y:4343
|
||||
// line internal/php7/php7.y:4341
|
||||
{
|
||||
yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node}
|
||||
|
||||
@ -7008,7 +7006,7 @@ yydefault:
|
||||
}
|
||||
case 444:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:4356
|
||||
// line internal/php7/php7.y:4354
|
||||
{
|
||||
yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node}
|
||||
|
||||
@ -7021,7 +7019,7 @@ yydefault:
|
||||
}
|
||||
case 445:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:4367
|
||||
// line internal/php7/php7.y:4365
|
||||
{
|
||||
yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node}
|
||||
|
||||
@ -7034,13 +7032,13 @@ yydefault:
|
||||
}
|
||||
case 446:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4381
|
||||
// line internal/php7/php7.y:4379
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
case 447:
|
||||
yyDollar = yyS[yypt-4 : yypt+1]
|
||||
// line internal/php7/php7.y:4385
|
||||
// line internal/php7/php7.y:4383
|
||||
{
|
||||
yyVAL.node = &ast.ExprArrayDimFetch{
|
||||
Node: ast.Node{
|
||||
@ -7054,7 +7052,7 @@ yydefault:
|
||||
}
|
||||
case 448:
|
||||
yyDollar = yyS[yypt-4 : yypt+1]
|
||||
// line internal/php7/php7.y:4397
|
||||
// line internal/php7/php7.y:4395
|
||||
{
|
||||
yyVAL.node = &ast.ExprArrayDimFetch{
|
||||
Node: ast.Node{
|
||||
@ -7068,7 +7066,7 @@ yydefault:
|
||||
}
|
||||
case 449:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:4409
|
||||
// line internal/php7/php7.y:4407
|
||||
{
|
||||
yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node}
|
||||
|
||||
@ -7081,7 +7079,7 @@ yydefault:
|
||||
}
|
||||
case 450:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:4420
|
||||
// line internal/php7/php7.y:4418
|
||||
{
|
||||
yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node}
|
||||
|
||||
@ -7094,7 +7092,7 @@ yydefault:
|
||||
}
|
||||
case 451:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:4431
|
||||
// line internal/php7/php7.y:4429
|
||||
{
|
||||
yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node}
|
||||
|
||||
@ -7107,7 +7105,7 @@ yydefault:
|
||||
}
|
||||
case 452:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4445
|
||||
// line internal/php7/php7.y:4443
|
||||
{
|
||||
yyVAL.node = &ast.Identifier{
|
||||
Node: ast.Node{
|
||||
@ -7119,7 +7117,7 @@ yydefault:
|
||||
}
|
||||
case 453:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:4455
|
||||
// line internal/php7/php7.y:4453
|
||||
{
|
||||
yyVAL.node = yyDollar[2].node
|
||||
|
||||
@ -7129,13 +7127,13 @@ yydefault:
|
||||
}
|
||||
case 454:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4463
|
||||
// line internal/php7/php7.y:4461
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
case 455:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4470
|
||||
// line internal/php7/php7.y:4468
|
||||
{
|
||||
yyVAL.node = &ast.Identifier{
|
||||
Node: ast.Node{
|
||||
@ -7147,7 +7145,7 @@ yydefault:
|
||||
}
|
||||
case 456:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:4480
|
||||
// line internal/php7/php7.y:4478
|
||||
{
|
||||
yyVAL.node = yyDollar[2].node
|
||||
|
||||
@ -7157,13 +7155,13 @@ yydefault:
|
||||
}
|
||||
case 457:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4488
|
||||
// line internal/php7/php7.y:4486
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
case 458:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4495
|
||||
// line internal/php7/php7.y:4493
|
||||
{
|
||||
pairList := yyDollar[1].node.(*ast.ParserSeparatedList)
|
||||
fistPair := pairList.Items[0].(*ast.ExprArrayItem)
|
||||
@ -7176,19 +7174,19 @@ yydefault:
|
||||
}
|
||||
case 459:
|
||||
yyDollar = yyS[yypt-0 : yypt+1]
|
||||
// line internal/php7/php7.y:4509
|
||||
// line internal/php7/php7.y:4507
|
||||
{
|
||||
yyVAL.node = &ast.ExprArrayItem{}
|
||||
}
|
||||
case 460:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4513
|
||||
// line internal/php7/php7.y:4511
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
case 461:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:4520
|
||||
// line internal/php7/php7.y:4518
|
||||
{
|
||||
yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token)
|
||||
yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node)
|
||||
@ -7197,7 +7195,7 @@ yydefault:
|
||||
}
|
||||
case 462:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4527
|
||||
// line internal/php7/php7.y:4525
|
||||
{
|
||||
yyVAL.node = &ast.ParserSeparatedList{
|
||||
Items: []ast.Vertex{yyDollar[1].node},
|
||||
@ -7205,7 +7203,7 @@ yydefault:
|
||||
}
|
||||
case 463:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:4536
|
||||
// line internal/php7/php7.y:4534
|
||||
{
|
||||
yyVAL.node = &ast.ExprArrayItem{
|
||||
Node: ast.Node{
|
||||
@ -7218,7 +7216,7 @@ yydefault:
|
||||
}
|
||||
case 464:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4547
|
||||
// line internal/php7/php7.y:4545
|
||||
{
|
||||
yyVAL.node = &ast.ExprArrayItem{
|
||||
Node: ast.Node{
|
||||
@ -7229,7 +7227,7 @@ yydefault:
|
||||
}
|
||||
case 465:
|
||||
yyDollar = yyS[yypt-4 : yypt+1]
|
||||
// line internal/php7/php7.y:4556
|
||||
// line internal/php7/php7.y:4554
|
||||
{
|
||||
yyVAL.node = &ast.ExprArrayItem{
|
||||
Node: ast.Node{
|
||||
@ -7247,7 +7245,7 @@ yydefault:
|
||||
}
|
||||
case 466:
|
||||
yyDollar = yyS[yypt-2 : yypt+1]
|
||||
// line internal/php7/php7.y:4572
|
||||
// line internal/php7/php7.y:4570
|
||||
{
|
||||
yyVAL.node = &ast.ExprArrayItem{
|
||||
Node: ast.Node{
|
||||
@ -7263,7 +7261,7 @@ yydefault:
|
||||
}
|
||||
case 467:
|
||||
yyDollar = yyS[yypt-2 : yypt+1]
|
||||
// line internal/php7/php7.y:4586
|
||||
// line internal/php7/php7.y:4584
|
||||
{
|
||||
yyVAL.node = &ast.ExprArrayItem{
|
||||
Node: ast.Node{
|
||||
@ -7275,7 +7273,7 @@ yydefault:
|
||||
}
|
||||
case 468:
|
||||
yyDollar = yyS[yypt-6 : yypt+1]
|
||||
// line internal/php7/php7.y:4596
|
||||
// line internal/php7/php7.y:4594
|
||||
{
|
||||
yyVAL.node = &ast.ExprArrayItem{
|
||||
Node: ast.Node{
|
||||
@ -7297,7 +7295,7 @@ yydefault:
|
||||
}
|
||||
case 469:
|
||||
yyDollar = yyS[yypt-4 : yypt+1]
|
||||
// line internal/php7/php7.y:4616
|
||||
// line internal/php7/php7.y:4614
|
||||
{
|
||||
yyVAL.node = &ast.ExprArrayItem{
|
||||
Node: ast.Node{
|
||||
@ -7317,13 +7315,13 @@ yydefault:
|
||||
}
|
||||
case 470:
|
||||
yyDollar = yyS[yypt-2 : yypt+1]
|
||||
// line internal/php7/php7.y:4637
|
||||
// line internal/php7/php7.y:4635
|
||||
{
|
||||
yyVAL.list = append(yyDollar[1].list, yyDollar[2].node)
|
||||
}
|
||||
case 471:
|
||||
yyDollar = yyS[yypt-2 : yypt+1]
|
||||
// line internal/php7/php7.y:4641
|
||||
// line internal/php7/php7.y:4639
|
||||
{
|
||||
yyVAL.list = append(
|
||||
yyDollar[1].list,
|
||||
@ -7338,13 +7336,13 @@ yydefault:
|
||||
}
|
||||
case 472:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4654
|
||||
// line internal/php7/php7.y:4652
|
||||
{
|
||||
yyVAL.list = []ast.Vertex{yyDollar[1].node}
|
||||
}
|
||||
case 473:
|
||||
yyDollar = yyS[yypt-2 : yypt+1]
|
||||
// line internal/php7/php7.y:4658
|
||||
// line internal/php7/php7.y:4656
|
||||
{
|
||||
yyVAL.list = []ast.Vertex{
|
||||
&ast.ScalarEncapsedStringPart{
|
||||
@ -7359,7 +7357,7 @@ yydefault:
|
||||
}
|
||||
case 474:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4674
|
||||
// line internal/php7/php7.y:4672
|
||||
{
|
||||
name := &ast.Identifier{
|
||||
Node: ast.Node{
|
||||
@ -7378,7 +7376,7 @@ yydefault:
|
||||
}
|
||||
case 475:
|
||||
yyDollar = yyS[yypt-4 : yypt+1]
|
||||
// line internal/php7/php7.y:4691
|
||||
// line internal/php7/php7.y:4689
|
||||
{
|
||||
yyVAL.node = &ast.ExprArrayDimFetch{
|
||||
Node: ast.Node{
|
||||
@ -7403,7 +7401,7 @@ yydefault:
|
||||
}
|
||||
case 476:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:4714
|
||||
// line internal/php7/php7.y:4712
|
||||
{
|
||||
identifier := &ast.Identifier{
|
||||
Node: ast.Node{
|
||||
@ -7431,7 +7429,7 @@ yydefault:
|
||||
}
|
||||
case 477:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:4740
|
||||
// line internal/php7/php7.y:4738
|
||||
{
|
||||
variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node}
|
||||
|
||||
@ -7446,7 +7444,7 @@ yydefault:
|
||||
}
|
||||
case 478:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:4753
|
||||
// line internal/php7/php7.y:4751
|
||||
{
|
||||
name := &ast.Identifier{
|
||||
Node: ast.Node{
|
||||
@ -7468,7 +7466,7 @@ yydefault:
|
||||
}
|
||||
case 479:
|
||||
yyDollar = yyS[yypt-6 : yypt+1]
|
||||
// line internal/php7/php7.y:4773
|
||||
// line internal/php7/php7.y:4771
|
||||
{
|
||||
yyVAL.node = &ast.ExprArrayDimFetch{
|
||||
Node: ast.Node{
|
||||
@ -7495,7 +7493,7 @@ yydefault:
|
||||
}
|
||||
case 480:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:4798
|
||||
// line internal/php7/php7.y:4796
|
||||
{
|
||||
yyVAL.node = yyDollar[2].node
|
||||
|
||||
@ -7505,7 +7503,7 @@ yydefault:
|
||||
}
|
||||
case 481:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4809
|
||||
// line internal/php7/php7.y:4807
|
||||
{
|
||||
yyVAL.node = &ast.ScalarString{
|
||||
Node: ast.Node{
|
||||
@ -7517,7 +7515,7 @@ yydefault:
|
||||
}
|
||||
case 482:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4819
|
||||
// line internal/php7/php7.y:4817
|
||||
{
|
||||
// TODO: add option to handle 64 bit integer
|
||||
if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil {
|
||||
@ -7540,7 +7538,7 @@ yydefault:
|
||||
}
|
||||
case 483:
|
||||
yyDollar = yyS[yypt-2 : yypt+1]
|
||||
// line internal/php7/php7.y:4840
|
||||
// line internal/php7/php7.y:4838
|
||||
{
|
||||
_, err := strconv.Atoi(string(yyDollar[2].token.Value))
|
||||
isInt := err == nil
|
||||
@ -7568,7 +7566,7 @@ yydefault:
|
||||
}
|
||||
case 484:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4866
|
||||
// line internal/php7/php7.y:4864
|
||||
{
|
||||
identifier := &ast.Identifier{
|
||||
Node: ast.Node{
|
||||
@ -7587,7 +7585,7 @@ yydefault:
|
||||
}
|
||||
case 485:
|
||||
yyDollar = yyS[yypt-5 : yypt+1]
|
||||
// line internal/php7/php7.y:4886
|
||||
// line internal/php7/php7.y:4884
|
||||
{
|
||||
yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list}
|
||||
|
||||
@ -7605,7 +7603,7 @@ yydefault:
|
||||
}
|
||||
case 486:
|
||||
yyDollar = yyS[yypt-4 : yypt+1]
|
||||
// line internal/php7/php7.y:4902
|
||||
// line internal/php7/php7.y:4900
|
||||
{
|
||||
exprBrackets := &ast.ParserBrackets{
|
||||
Node: ast.Node{
|
||||
@ -7627,7 +7625,7 @@ yydefault:
|
||||
}
|
||||
case 487:
|
||||
yyDollar = yyS[yypt-2 : yypt+1]
|
||||
// line internal/php7/php7.y:4922
|
||||
// line internal/php7/php7.y:4920
|
||||
{
|
||||
yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node}
|
||||
|
||||
@ -7639,7 +7637,7 @@ yydefault:
|
||||
}
|
||||
case 488:
|
||||
yyDollar = yyS[yypt-2 : yypt+1]
|
||||
// line internal/php7/php7.y:4932
|
||||
// line internal/php7/php7.y:4930
|
||||
{
|
||||
yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node}
|
||||
|
||||
@ -7651,7 +7649,7 @@ yydefault:
|
||||
}
|
||||
case 489:
|
||||
yyDollar = yyS[yypt-4 : yypt+1]
|
||||
// line internal/php7/php7.y:4942
|
||||
// line internal/php7/php7.y:4940
|
||||
{
|
||||
exprBrackets := &ast.ParserBrackets{
|
||||
Node: ast.Node{
|
||||
@ -7673,7 +7671,7 @@ yydefault:
|
||||
}
|
||||
case 490:
|
||||
yyDollar = yyS[yypt-2 : yypt+1]
|
||||
// line internal/php7/php7.y:4962
|
||||
// line internal/php7/php7.y:4960
|
||||
{
|
||||
yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node}
|
||||
|
||||
@ -7685,7 +7683,7 @@ yydefault:
|
||||
}
|
||||
case 491:
|
||||
yyDollar = yyS[yypt-2 : yypt+1]
|
||||
// line internal/php7/php7.y:4972
|
||||
// line internal/php7/php7.y:4970
|
||||
{
|
||||
yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node}
|
||||
|
||||
@ -7697,13 +7695,13 @@ yydefault:
|
||||
}
|
||||
case 492:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4985
|
||||
// line internal/php7/php7.y:4983
|
||||
{
|
||||
yyVAL.list = []ast.Vertex{yyDollar[1].node}
|
||||
}
|
||||
case 493:
|
||||
yyDollar = yyS[yypt-3 : yypt+1]
|
||||
// line internal/php7/php7.y:4989
|
||||
// line internal/php7/php7.y:4987
|
||||
{
|
||||
yyVAL.list = append(yyDollar[1].list, yyDollar[3].node)
|
||||
|
||||
@ -7712,7 +7710,7 @@ yydefault:
|
||||
}
|
||||
case 494:
|
||||
yyDollar = yyS[yypt-1 : yypt+1]
|
||||
// line internal/php7/php7.y:4999
|
||||
// line internal/php7/php7.y:4997
|
||||
{
|
||||
yyVAL.node = yyDollar[1].node
|
||||
}
|
||||
|
@ -2866,13 +2866,13 @@ expr_without_variable:
|
||||
}
|
||||
| T_CLONE expr
|
||||
{
|
||||
$$ = &ast.ExprClone{ast.Node{}, $2}
|
||||
|
||||
// save position
|
||||
$$.GetNode().Position = position.NewTokenNodePosition($1, $2)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens)
|
||||
$$ = &ast.ExprClone{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenNodePosition($1, $2),
|
||||
},
|
||||
CloneTkn: $1,
|
||||
Expr: $2,
|
||||
}
|
||||
}
|
||||
| variable T_PLUS_EQUAL expr
|
||||
{
|
||||
@ -3267,23 +3267,23 @@ expr_without_variable:
|
||||
}
|
||||
| '!' expr
|
||||
{
|
||||
$$ = &ast.ExprBooleanNot{ast.Node{}, $2}
|
||||
|
||||
// save position
|
||||
$$.GetNode().Position = position.NewTokenNodePosition($1, $2)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens)
|
||||
$$ = &ast.ExprBooleanNot{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenNodePosition($1, $2),
|
||||
},
|
||||
ExclamationTkn: $1,
|
||||
Expr: $2,
|
||||
}
|
||||
}
|
||||
| '~' expr
|
||||
{
|
||||
$$ = &ast.ExprBitwiseNot{ast.Node{}, $2}
|
||||
|
||||
// save position
|
||||
$$.GetNode().Position = position.NewTokenNodePosition($1, $2)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens)
|
||||
$$ = &ast.ExprBitwiseNot{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenNodePosition($1, $2),
|
||||
},
|
||||
TildaTkn: $1,
|
||||
Expr: $2,
|
||||
}
|
||||
}
|
||||
| expr T_IS_IDENTICAL expr
|
||||
{
|
||||
@ -4112,39 +4112,37 @@ constant:
|
||||
}
|
||||
| class_name T_PAAMAYIM_NEKUDOTAYIM identifier
|
||||
{
|
||||
target := &ast.Identifier{
|
||||
$$ = &ast.ExprClassConstFetch{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition($3),
|
||||
Position: position.NewNodeTokenPosition($1, $3),
|
||||
},
|
||||
Class: $1,
|
||||
DoubleColonTkn: $2,
|
||||
ConstantName: &ast.Identifier{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition($3),
|
||||
},
|
||||
IdentifierTkn: $3,
|
||||
Value: $3.Value,
|
||||
},
|
||||
IdentifierTkn: $3,
|
||||
Value: $3.Value,
|
||||
}
|
||||
$$ = &ast.ExprClassConstFetch{ast.Node{}, $1, target}
|
||||
|
||||
// save position
|
||||
$$.GetNode().Position = position.NewNodeTokenPosition($1, $3)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).MoveFreeFloating($1, $$)
|
||||
yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens)
|
||||
}
|
||||
| variable_class_name T_PAAMAYIM_NEKUDOTAYIM identifier
|
||||
{
|
||||
target := &ast.Identifier{
|
||||
$$ = &ast.ExprClassConstFetch{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition($3),
|
||||
Position: position.NewNodeTokenPosition($1, $3),
|
||||
},
|
||||
Class: $1,
|
||||
DoubleColonTkn: $2,
|
||||
ConstantName: &ast.Identifier{
|
||||
Node: ast.Node{
|
||||
Position: position.NewTokenPosition($3),
|
||||
},
|
||||
IdentifierTkn: $3,
|
||||
Value: $3.Value,
|
||||
},
|
||||
IdentifierTkn: $3,
|
||||
Value: $3.Value,
|
||||
}
|
||||
$$ = &ast.ExprClassConstFetch{ast.Node{}, $1, target}
|
||||
|
||||
// save position
|
||||
$$.GetNode().Position = position.NewNodeTokenPosition($1, $3)
|
||||
|
||||
// save comments
|
||||
yylex.(*Parser).MoveFreeFloating($1, $$)
|
||||
yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens)
|
||||
}
|
||||
;
|
||||
|
||||
|
@ -1000,7 +1000,8 @@ func (n *ExprArrowFunction) Accept(v NodeVisitor) {
|
||||
// ExprBitwiseNot node
|
||||
type ExprBitwiseNot struct {
|
||||
Node
|
||||
Expr Vertex
|
||||
TildaTkn *token.Token
|
||||
Expr Vertex
|
||||
}
|
||||
|
||||
func (n *ExprBitwiseNot) Accept(v NodeVisitor) {
|
||||
@ -1010,7 +1011,8 @@ func (n *ExprBitwiseNot) Accept(v NodeVisitor) {
|
||||
// ExprBooleanNot node
|
||||
type ExprBooleanNot struct {
|
||||
Node
|
||||
Expr Vertex
|
||||
ExclamationTkn *token.Token
|
||||
Expr Vertex
|
||||
}
|
||||
|
||||
func (n *ExprBooleanNot) Accept(v NodeVisitor) {
|
||||
@ -1020,8 +1022,9 @@ func (n *ExprBooleanNot) Accept(v NodeVisitor) {
|
||||
// ExprClassConstFetch node
|
||||
type ExprClassConstFetch struct {
|
||||
Node
|
||||
Class Vertex
|
||||
ConstantName Vertex
|
||||
Class Vertex
|
||||
DoubleColonTkn *token.Token
|
||||
ConstantName Vertex
|
||||
}
|
||||
|
||||
func (n *ExprClassConstFetch) Accept(v NodeVisitor) {
|
||||
@ -1031,7 +1034,8 @@ func (n *ExprClassConstFetch) Accept(v NodeVisitor) {
|
||||
// ExprClone node
|
||||
type ExprClone struct {
|
||||
Node
|
||||
Expr Vertex
|
||||
CloneTkn *token.Token
|
||||
Expr Vertex
|
||||
}
|
||||
|
||||
func (n *ExprClone) Accept(v NodeVisitor) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user