diff options
author | Stanislav Malyshev <stas@php.net> | 2003-04-01 09:22:41 +0000 |
---|---|---|
committer | Stanislav Malyshev <stas@php.net> | 2003-04-01 09:22:41 +0000 |
commit | 59af205988e439563a8503d168d0abeac7704198 (patch) | |
tree | 90923498e4813c8155d8d600f7204097a25b26ef | |
parent | f9fae74ab60005edee5df0fbe8efae4352afe941 (diff) | |
download | php-git-59af205988e439563a8503d168d0abeac7704198.tar.gz |
Add __NAMESPACE__ auto-constant.
-rw-r--r-- | Zend/zend_language_parser.y | 2 | ||||
-rw-r--r-- | Zend/zend_language_scanner.l | 13 |
2 files changed, 15 insertions, 0 deletions
diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y index 35689198b6..361b7ba246 100644 --- a/Zend/zend_language_parser.y +++ b/Zend/zend_language_parser.y @@ -129,6 +129,7 @@ %token T_FUNC_C %token T_LINE %token T_FILE +%token T_NAMESPACE_C %token T_COMMENT %token T_DOC_COMMENT %token T_OPEN_TAG @@ -708,6 +709,7 @@ common_scalar: | T_FILE { $$ = $1; } | T_CLASS_C { $$ = $1; } | T_FUNC_C { $$ = $1; } + | T_NAMESPACE_C { $$ = $1; } ; diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l index 800261580f..30a6c752f8 100644 --- a/Zend/zend_language_scanner.l +++ b/Zend/zend_language_scanner.l @@ -1012,6 +1012,19 @@ NAMESPACE_NAME ({LABEL}":")+{LABEL} return T_FILE; } +<ST_IN_SCRIPTING>"__NAMESPACE__" { + char *ns_name; + if(CG(active_namespace) == &CG(global_namespace)) { + ns_name = ""; + } else { + ns_name = CG(active_namespace)->name; + } + + zendlval->value.str.len = strlen(ns_name); + zendlval->value.str.val = estrndup(ns_name, zendlval->value.str.len); + zendlval->type = IS_STRING; + return T_NAMESPACE_C; +} <INITIAL>(([^<]|"<"[^?%s<]){1,400})|"<s"|"<" { zendlval->value.str.val = (char *) estrndup(yytext, yyleng); |