@@ -49,13 +49,14 @@ reserved_non_modifiers_identifier:
49
49
reserved_non_modifiers { $$ = Node\Identifier[$1 ]; }
50
50
;
51
51
52
- namespace_name_parts :
53
- T_STRING { init( $1 ) ; }
54
- | namespace_name_parts T_NS_SEPARATOR T_STRING { push( $1 , $3 ) ; }
52
+ namespace_name :
53
+ T_STRING { $$ = Name[ $1 ] ; }
54
+ | T_NAME_QUALIFIED { $$ = Name[ $1 ] ; }
55
55
;
56
56
57
- namespace_name :
58
- namespace_name_parts { $$ = Name[$1 ]; }
57
+ legacy_namespace_name :
58
+ namespace_name { $$ = $1 ; }
59
+ | T_NAME_FULLY_QUALIFIED { $$ = Name[substr($1 , 1 )]; }
59
60
;
60
61
61
62
plain_variable :
@@ -105,16 +106,11 @@ use_type:
105
106
| T_CONST { $$ = Stmt\Use_::TYPE_CONSTANT; }
106
107
;
107
108
108
- /* Using namespace_name_parts here to avoid s/r conflict on T_NS_SEPARATOR */
109
109
group_use_declaration :
110
- T_USE use_type namespace_name_parts T_NS_SEPARATOR ' {' unprefixed_use_declarations ' }'
111
- { $$ = Stmt\GroupUse[new Name($3 , stackAttributes(#3 )), $6 , $2 ]; }
112
- | T_USE use_type T_NS_SEPARATOR namespace_name_parts T_NS_SEPARATOR ' {' unprefixed_use_declarations ' }'
113
- { $$ = Stmt\GroupUse[new Name($4 , stackAttributes(#4 )), $7 , $2 ]; }
114
- | T_USE namespace_name_parts T_NS_SEPARATOR ' {' inline_use_declarations ' }'
115
- { $$ = Stmt\GroupUse[new Name($2 , stackAttributes(#2 )), $5 , Stmt\Use_::TYPE_UNKNOWN]; }
116
- | T_USE T_NS_SEPARATOR namespace_name_parts T_NS_SEPARATOR ' {' inline_use_declarations ' }'
117
- { $$ = Stmt\GroupUse[new Name($3 , stackAttributes(#3 )), $6 , Stmt\Use_::TYPE_UNKNOWN]; }
110
+ T_USE use_type legacy_namespace_name T_NS_SEPARATOR ' {' unprefixed_use_declarations ' }'
111
+ { $$ = Stmt\GroupUse[$3 , $6 , $2 ]; }
112
+ | T_USE legacy_namespace_name T_NS_SEPARATOR ' {' inline_use_declarations ' }'
113
+ { $$ = Stmt\GroupUse[$2 , $5 , Stmt\Use_::TYPE_UNKNOWN]; }
118
114
;
119
115
120
116
unprefixed_use_declarations :
@@ -154,8 +150,10 @@ unprefixed_use_declaration:
154
150
;
155
151
156
152
use_declaration :
157
- unprefixed_use_declaration { $$ = $1 ; }
158
- | T_NS_SEPARATOR unprefixed_use_declaration { $$ = $2 ; }
153
+ legacy_namespace_name
154
+ { $$ = Stmt\UseUse[$1 , null, Stmt\Use_::TYPE_UNKNOWN]; $this- >checkUseUse ($$, #1 ); }
155
+ | legacy_namespace_name T_AS identifier
156
+ { $$ = Stmt\UseUse[$1 , $3 , Stmt\Use_::TYPE_UNKNOWN]; $this- >checkUseUse ($$, #3 ); }
159
157
;
160
158
161
159
inline_use_declaration :
@@ -826,9 +824,10 @@ class_name:
826
824
;
827
825
828
826
name :
829
- namespace_name_parts { $$ = Name[$1 ]; }
830
- | T_NS_SEPARATOR namespace_name_parts { $$ = Name\FullyQualified[$2 ]; }
831
- | T_NAMESPACE T_NS_SEPARATOR namespace_name_parts { $$ = Name\Relative[$3 ]; }
827
+ T_STRING { $$ = Name[$1 ]; }
828
+ | T_NAME_QUALIFIED { $$ = Name[$1 ]; }
829
+ | T_NAME_FULLY_QUALIFIED { $$ = Name\FullyQualified[substr($1 , 1 )]; }
830
+ | T_NAME_RELATIVE { $$ = Name\Relative[substr($1 , 10 )]; }
832
831
;
833
832
834
833
class_name_reference :
0 commit comments