diff options
author | Stanislav Malyshev <stas@php.net> | 2008-06-08 09:51:42 +0000 |
---|---|---|
committer | Stanislav Malyshev <stas@php.net> | 2008-06-08 09:51:42 +0000 |
commit | 15b74d008ab37ddb2680114be3141f03cbff2d1a (patch) | |
tree | 3af44713361613a73548c0ccf5805885d6daf8c6 /Zend/zend_language_parser.y | |
parent | 08c9c2af1f6d1c59431dc7ec30e75d25b0df7bbc (diff) | |
download | php-git-15b74d008ab37ddb2680114be3141f03cbff2d1a.tar.gz |
MF5: allow aggregating use statements
Diffstat (limited to 'Zend/zend_language_parser.y')
-rw-r--r-- | Zend/zend_language_parser.y | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y index ed6aec35ba..c1cfdd4e97 100644 --- a/Zend/zend_language_parser.y +++ b/Zend/zend_language_parser.y @@ -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); } |