mirror of
https://github.com/php/php-src.git
synced 2024-09-22 02:17:32 +00:00
MF5: allow aggregating use statements
This commit is contained in:
parent
08c9c2af1f
commit
15b74d008a
9
Zend/tests/ns_065.inc
Executable file
9
Zend/tests/ns_065.inc
Executable file
@ -0,0 +1,9 @@
|
||||
<?php
|
||||
namespace X::Y;
|
||||
function foo() {
|
||||
echo __FUNCTION__."\n";
|
||||
}
|
||||
namespace X::Z;
|
||||
function foo() {
|
||||
echo __FUNCTION__."\n";
|
||||
}
|
13
Zend/tests/ns_065.phpt
Executable file
13
Zend/tests/ns_065.phpt
Executable file
@ -0,0 +1,13 @@
|
||||
--TEST--
|
||||
065: Multiple names in use statement
|
||||
--FILE--
|
||||
<?php
|
||||
use X::Y as test, X::Z as test2;
|
||||
|
||||
require "ns_065.inc";
|
||||
|
||||
test::foo();
|
||||
test2::foo();
|
||||
--EXPECT--
|
||||
X::Y::foo
|
||||
X::Z::foo
|
@ -174,13 +174,21 @@ top_statement:
|
||||
| class_declaration_statement { zend_do_early_binding(TSRMLS_C); }
|
||||
| T_HALT_COMPILER '(' ')' ';' { zend_do_halt_compiler_register(TSRMLS_C); YYACCEPT; }
|
||||
| T_NAMESPACE namespace_name ';' { zend_do_namespace(&$2 TSRMLS_CC); }
|
||||
| T_USE namespace_name ';' { zend_do_use(&$2, NULL, 0 TSRMLS_CC); }
|
||||
| T_USE namespace_name T_AS T_STRING ';' { zend_do_use(&$2, &$4, 0 TSRMLS_CC); }
|
||||
| T_USE T_PAAMAYIM_NEKUDOTAYIM T_STRING ';' { zend_do_use(&$3, NULL, 1 TSRMLS_CC); }
|
||||
| T_USE T_PAAMAYIM_NEKUDOTAYIM T_STRING T_AS T_STRING ';' { zend_do_use(&$3, &$5, 1 TSRMLS_CC); }
|
||||
| T_USE use_declarations ';'
|
||||
| constant_declaration ';'
|
||||
;
|
||||
|
||||
use_declarations:
|
||||
use_declarations ',' use_declaration
|
||||
| use_declaration
|
||||
|
||||
use_declaration:
|
||||
namespace_name { zend_do_use(&$1, NULL, 0 TSRMLS_CC); }
|
||||
| namespace_name T_AS T_STRING { zend_do_use(&$1, &$3, 0 TSRMLS_CC); }
|
||||
| T_PAAMAYIM_NEKUDOTAYIM T_STRING { zend_do_use(&$2, NULL, 1 TSRMLS_CC); }
|
||||
| T_PAAMAYIM_NEKUDOTAYIM T_STRING T_AS T_STRING { zend_do_use(&$2, &$4, 1 TSRMLS_CC); }
|
||||
|
||||
|
||||
constant_declaration:
|
||||
constant_declaration ',' T_STRING '=' static_scalar { zend_do_declare_constant(&$3, &$5 TSRMLS_CC); }
|
||||
| T_CONST T_STRING '=' static_scalar { zend_do_declare_constant(&$2, &$4 TSRMLS_CC); }
|
||||
|
Loading…
Reference in New Issue
Block a user