cvs: Zend / zend_language_parser.y zend_language_scanner.l php4 NEWS
| From: | Jani Taskinen | Date: | Wed, 10 Apr 2002 21:22:11 +0000 |
| Subject: | cvs: Zend / zend_language_parser.y zend_language_scanner.l php4 NEWS | ||
| Groups: | php.zend-engine.cvs | ||
| Request: | Send a blank email to php-zend-engine-cvs+get-49@lists.php.net to get a copy of this message | ||
sniper Wed Apr 10 17:22:11 2002 EDT
Modified files:
/php4 NEWS
/Zend zend_language_parser.y zend_language_scanner.l
Log:
- Added __FUNCTION__ and __CLASS__ constants.
Index: php4/NEWS
diff -u php4/NEWS:1.935 php4/NEWS:1.936
--- php4/NEWS:1.935 Mon Apr 8 20:22:01 2002
+++ php4/NEWS Wed Apr 10 17:22:10 2002
@@ -1,9 +1,11 @@
PHP 4 NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? 2002, Version 4.3.0
+- Added __FUNCTION__ and __CLASS__ constants. (Jani, Zend Engine)
- Added pg_metadate(), pg_convert(), pg_insert(), pg_select(), pg_update()
and pg_delete(). (Yasuo)
-- Added 2nd parameter for pg_result_status() to specify return type. (Yasuo)
+- Added optional 2nd parameter for pg_result_status() to specify return type.
+ (Yasuo)
- Added "ignore_repeated_errors" and "ignore_repeated_source" php.ini options
which can be used to disable logging of repeated error messages. (Marcus)
- Made pg_last_notice() work correctly. (Yasuo)
Index: Zend/zend_language_parser.y
diff -u Zend/zend_language_parser.y:1.17 Zend/zend_language_parser.y:1.18
--- Zend/zend_language_parser.y:1.17 Sat Jan 19 05:28:26 2002
+++ Zend/zend_language_parser.y Wed Apr 10 17:22:10 2002
@@ -118,6 +118,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
@@ -523,6 +525,8 @@
| T_CONSTANT_ENCAPSED_STRING { $$ = $1; }
| T_LINE { $$ = $1; }
| T_FILE { $$ = $1; }
+ | T_CLASS_C { $$ = $1; }
+ | T_FUNC_C { $$ = $1; }
;
Index: Zend/zend_language_scanner.l
diff -u Zend/zend_language_scanner.l:1.43 Zend/zend_language_scanner.l:1.44
--- Zend/zend_language_scanner.l:1.43 Sun Jan 6 10:21:09 2002
+++ Zend/zend_language_scanner.l Wed Apr 10 17:22:10 2002
@@ -894,6 +894,30 @@
return T_DNUMBER;
}
+<ST_IN_SCRIPTING>"__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;
+}
+
+<ST_IN_SCRIPTING>"__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;
+}
+
<ST_IN_SCRIPTING>"__LINE__" {
zendlval->value.lval = CG(zend_lineno);
zendlval->type = IS_LONG;