fix parsing php5 parameters
This commit is contained in:
parent
f0411890e6
commit
bf90803ef3
@ -343,6 +343,6 @@ func TestPhp5ParameterNode(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
actual, _, _ := php7.Parse(bytes.NewBufferString(src), "test.php")
|
||||
actual, _, _ := php5.Parse(bytes.NewBufferString(src), "test.php")
|
||||
assertEqual(t, expected, actual)
|
||||
}
|
||||
|
324
php5/php5.go
324
php5/php5.go
File diff suppressed because it is too large
Load Diff
26
php5/php5.y
26
php5/php5.y
@ -2751,21 +2751,33 @@ static_scalar_value:
|
||||
{ $$ = $1 }
|
||||
| namespace_name
|
||||
{
|
||||
$$ = name.NewName($1)
|
||||
positions.AddPosition($$, positionBuilder.NewNodeListPosition($1))
|
||||
comments.AddComments($$, ListGetFirstNodeComments($1))
|
||||
name := name.NewName($1)
|
||||
positions.AddPosition(name, positionBuilder.NewNodeListPosition($1))
|
||||
comments.AddComments(name, ListGetFirstNodeComments($1))
|
||||
|
||||
$$ = expr.NewConstFetch(name)
|
||||
positions.AddPosition($$, positionBuilder.NewNodePosition(name))
|
||||
comments.AddComments($$, comments[name])
|
||||
}
|
||||
| T_NAMESPACE T_NS_SEPARATOR namespace_name
|
||||
{
|
||||
$$ = name.NewRelative($3)
|
||||
name := name.NewRelative($3)
|
||||
positions.AddPosition(name, positionBuilder.NewTokenNodeListPosition($1, $3))
|
||||
comments.AddComments(name, $1.Comments())
|
||||
|
||||
$$ = expr.NewConstFetch(name)
|
||||
positions.AddPosition($$, positionBuilder.NewTokenNodeListPosition($1, $3))
|
||||
comments.AddComments($$, $1.Comments())
|
||||
comments.AddComments($$, comments[name])
|
||||
}
|
||||
| T_NS_SEPARATOR namespace_name
|
||||
{
|
||||
$$ = name.NewFullyQualified($2)
|
||||
name := name.NewFullyQualified($2)
|
||||
positions.AddPosition(name, positionBuilder.NewTokenNodeListPosition($1, $2))
|
||||
comments.AddComments(name, $1.Comments())
|
||||
|
||||
$$ = expr.NewConstFetch(name)
|
||||
positions.AddPosition($$, positionBuilder.NewTokenNodeListPosition($1, $2))
|
||||
comments.AddComments($$, $1.Comments())
|
||||
comments.AddComments($$, comments[name])
|
||||
}
|
||||
| T_ARRAY '(' static_array_pair_list ')'
|
||||
{
|
||||
|
@ -31,7 +31,7 @@ func assertEqual(t *testing.T, expected interface{}, actual interface{}) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestPhp7(t *testing.T) {
|
||||
func TestPhp5(t *testing.T) {
|
||||
src := `<?
|
||||
foo($a, ...$b);
|
||||
$foo($a, ...$b);
|
||||
@ -317,7 +317,7 @@ CAD;
|
||||
Variadic: false,
|
||||
VariableType: &name.Name{Parts: []node.Node{&name.NamePart{Value: "bar"}}},
|
||||
Variable: &expr.Variable{VarName: &node.Identifier{Value: "$bar"}},
|
||||
DefaultValue: &name.Name{Parts: []node.Node{&name.NamePart{Value: "null"}}},
|
||||
DefaultValue: &expr.ConstFetch{Constant: &name.Name{Parts: []node.Node{&name.NamePart{Value: "null"}}}},
|
||||
},
|
||||
&node.Parameter{
|
||||
ByRef: true,
|
||||
|
Loading…
Reference in New Issue
Block a user