php5 syntax
This commit is contained in:
parent
c80f0b8fa0
commit
c662e0c20e
3850
php5/php5.go
3850
php5/php5.go
File diff suppressed because it is too large
Load Diff
117
php5/php5.y
117
php5/php5.y
@ -200,7 +200,8 @@ import (
|
|||||||
%type <node> base_variable array_function_dereference function_call inner_statement statement unticked_statement
|
%type <node> base_variable array_function_dereference function_call inner_statement statement unticked_statement
|
||||||
%type <node> inner_statement statement global_var static_scalar scalar class_constant static_class_name_scalar class_name_scalar
|
%type <node> inner_statement statement global_var static_scalar scalar class_constant static_class_name_scalar class_name_scalar
|
||||||
%type <node> encaps_var encaps_var encaps_var_offset general_constant isset_variable internal_functions_in_yacc assignment_list_element
|
%type <node> encaps_var encaps_var encaps_var_offset general_constant isset_variable internal_functions_in_yacc assignment_list_element
|
||||||
%type <node> variable_name variable_without_objects dynamic_class_name_reference new_expr class_name_reference
|
%type <node> variable_name variable_without_objects dynamic_class_name_reference new_expr class_name_reference static_member
|
||||||
|
%type <node> function_call
|
||||||
|
|
||||||
%type <list> top_statement_list namespace_name use_declarations use_function_declarations use_const_declarations
|
%type <list> top_statement_list namespace_name use_declarations use_function_declarations use_const_declarations
|
||||||
%type <list> inner_statement_list global_var_list static_var_list encaps_list isset_variables non_empty_array_pair_list
|
%type <list> inner_statement_list global_var_list static_var_list encaps_list isset_variables non_empty_array_pair_list
|
||||||
@ -1189,22 +1190,14 @@ lexical_var_list:
|
|||||||
;
|
;
|
||||||
|
|
||||||
function_call:
|
function_call:
|
||||||
namespace_name { }
|
namespace_name function_call_parameter_list { }
|
||||||
function_call_parameter_list { }
|
| T_NAMESPACE T_NS_SEPARATOR namespace_name function_call_parameter_list { }
|
||||||
| T_NAMESPACE T_NS_SEPARATOR namespace_name { }
|
| T_NS_SEPARATOR namespace_name function_call_parameter_list { }
|
||||||
function_call_parameter_list { }
|
| class_name T_PAAMAYIM_NEKUDOTAYIM variable_name function_call_parameter_list { }
|
||||||
| T_NS_SEPARATOR namespace_name { }
|
| class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects function_call_parameter_list { }
|
||||||
function_call_parameter_list { }
|
| variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_name function_call_parameter_list { }
|
||||||
| class_name T_PAAMAYIM_NEKUDOTAYIM variable_name { }
|
| variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects function_call_parameter_list { }
|
||||||
function_call_parameter_list { }
|
| variable_without_objects function_call_parameter_list { }
|
||||||
| class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects { }
|
|
||||||
function_call_parameter_list { }
|
|
||||||
| variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_name { }
|
|
||||||
function_call_parameter_list { }
|
|
||||||
| variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects { }
|
|
||||||
function_call_parameter_list { }
|
|
||||||
| variable_without_objects { }
|
|
||||||
function_call_parameter_list { }
|
|
||||||
;
|
;
|
||||||
|
|
||||||
class_name:
|
class_name:
|
||||||
@ -1240,8 +1233,6 @@ fully_qualified_class_name:
|
|||||||
| T_NS_SEPARATOR namespace_name { }
|
| T_NS_SEPARATOR namespace_name { }
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class_name_reference:
|
class_name_reference:
|
||||||
class_name
|
class_name
|
||||||
{ $$ = $1 }
|
{ $$ = $1 }
|
||||||
@ -1249,7 +1240,6 @@ class_name_reference:
|
|||||||
{ $$ = $1 }
|
{ $$ = $1 }
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
dynamic_class_name_reference:
|
dynamic_class_name_reference:
|
||||||
base_variable T_OBJECT_OPERATOR object_property dynamic_class_name_variable_properties
|
base_variable T_OBJECT_OPERATOR object_property dynamic_class_name_variable_properties
|
||||||
{
|
{
|
||||||
@ -1587,37 +1577,8 @@ method_or_not:
|
|||||||
;
|
;
|
||||||
|
|
||||||
variable_without_objects:
|
variable_without_objects:
|
||||||
reference_variable { }
|
|
||||||
| simple_indirect_reference reference_variable { }
|
|
||||||
;
|
|
||||||
|
|
||||||
static_member:
|
|
||||||
class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects { }
|
|
||||||
| variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects { }
|
|
||||||
|
|
||||||
;
|
|
||||||
|
|
||||||
variable_class_name:
|
|
||||||
reference_variable
|
reference_variable
|
||||||
{
|
{ $$ = $1 }
|
||||||
$$ = $1
|
|
||||||
}
|
|
||||||
;
|
|
||||||
|
|
||||||
array_function_dereference:
|
|
||||||
array_function_dereference '[' dim_offset ']' { }
|
|
||||||
| function_call '[' dim_offset ']' { }
|
|
||||||
;
|
|
||||||
|
|
||||||
base_variable_with_function_calls:
|
|
||||||
base_variable { $$ = $1 }
|
|
||||||
| array_function_dereference { $$ = $1 }
|
|
||||||
| function_call { $$ = $1 }
|
|
||||||
;
|
|
||||||
|
|
||||||
|
|
||||||
base_variable:
|
|
||||||
reference_variable { $$ = $1 }
|
|
||||||
| simple_indirect_reference reference_variable
|
| simple_indirect_reference reference_variable
|
||||||
{
|
{
|
||||||
$1.last.SetVarName($2)
|
$1.last.SetVarName($2)
|
||||||
@ -1628,7 +1589,58 @@ base_variable:
|
|||||||
|
|
||||||
$$ = $1.all[0]
|
$$ = $1.all[0]
|
||||||
}
|
}
|
||||||
| static_member { }
|
;
|
||||||
|
|
||||||
|
static_member:
|
||||||
|
class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects
|
||||||
|
{
|
||||||
|
$$ = expr.NewStaticPropertyFetch($1, $3)
|
||||||
|
positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3))
|
||||||
|
comments.AddComments($$, comments[$1])
|
||||||
|
}
|
||||||
|
| variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects
|
||||||
|
{
|
||||||
|
$$ = expr.NewStaticPropertyFetch($1, $3)
|
||||||
|
positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3))
|
||||||
|
comments.AddComments($$, comments[$1])
|
||||||
|
}
|
||||||
|
|
||||||
|
;
|
||||||
|
|
||||||
|
variable_class_name:
|
||||||
|
reference_variable
|
||||||
|
{ $$ = $1 }
|
||||||
|
;
|
||||||
|
|
||||||
|
array_function_dereference:
|
||||||
|
array_function_dereference '[' dim_offset ']'
|
||||||
|
{ }
|
||||||
|
| function_call '[' dim_offset ']'
|
||||||
|
{ }
|
||||||
|
;
|
||||||
|
|
||||||
|
base_variable_with_function_calls:
|
||||||
|
base_variable { $$ = $1 }
|
||||||
|
| array_function_dereference { $$ = $1 }
|
||||||
|
| function_call { $$ = $1 }
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
base_variable:
|
||||||
|
reference_variable
|
||||||
|
{ $$ = $1 }
|
||||||
|
| simple_indirect_reference reference_variable
|
||||||
|
{
|
||||||
|
$1.last.SetVarName($2)
|
||||||
|
|
||||||
|
for _, n := range($1.all) {
|
||||||
|
positions[n] = positionBuilder.NewNodesPosition(n, $2)
|
||||||
|
}
|
||||||
|
|
||||||
|
$$ = $1.all[0]
|
||||||
|
}
|
||||||
|
| static_member
|
||||||
|
{ $$ = $1 }
|
||||||
;
|
;
|
||||||
|
|
||||||
reference_variable:
|
reference_variable:
|
||||||
@ -1644,7 +1656,8 @@ reference_variable:
|
|||||||
positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4))
|
positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4))
|
||||||
comments.AddComments($$, comments[$1])
|
comments.AddComments($$, comments[$1])
|
||||||
}
|
}
|
||||||
| compound_variable { $$ = $1 }
|
| compound_variable
|
||||||
|
{ $$ = $1 }
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user