From 60ccb411baf52f71c5f7916d04431e6bc70b1ae3 Mon Sep 17 00:00:00 2001 From: foobar Date: Wed, 10 Apr 2002 21:23:01 +0000 Subject: [PATCH] MFZE1 --- Zend/zend_language_parser.y | 4 ++++ Zend/zend_language_scanner.l | 24 ++++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y index 8f8fbe44ff..17cd896db3 100644 --- a/Zend/zend_language_parser.y +++ b/Zend/zend_language_parser.y @@ -122,6 +122,8 @@ %token T_DOUBLE_ARROW %token T_LIST %token T_ARRAY +%token T_CLASS_C +%token T_FUNC_C %token T_LINE %token T_FILE %token T_COMMENT @@ -599,6 +601,8 @@ common_scalar: | T_CONSTANT_ENCAPSED_STRING { $$ = $1; } | T_LINE { $$ = $1; } | T_FILE { $$ = $1; } + | T_CLASS_C { $$ = $1; } + | T_FUNC_C { $$ = $1; } ; diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l index d3b2f03c4e..3919241e5f 100644 --- a/Zend/zend_language_scanner.l +++ b/Zend/zend_language_scanner.l @@ -922,6 +922,30 @@ NEWLINE ("\r"|"\n"|"\r\n") return T_DNUMBER; } +"__CLASS__" { + char *class_name = CG(active_class_entry)->name; + + if (!class_name) { + class_name = ""; + } + zendlval->value.str.len = CG(active_class_entry)->name_length; + zendlval->value.str.val = estrndup(class_name, zendlval->value.str.len); + zendlval->type = IS_STRING; + return T_CLASS_C; +} + +"__FUNCTION__" { + char *func_name = CG(active_op_array)->function_name; + + if (!func_name) { + func_name = ""; + } + zendlval->value.str.len = strlen(func_name); + zendlval->value.str.val = estrndup(func_name, zendlval->value.str.len); + zendlval->type = IS_STRING; + return T_FUNC_C; +} + "__LINE__" { zendlval->value.lval = CG(zend_lineno); zendlval->type = IS_LONG; -- 2.40.0