I will remember to attach the patch...
I will remember to attach the patch...
I will remember to attach the patch...
I will..
On Thu, 13 Mar 2003, Andrei Zmievski wrote:
> Pursuant to the introspection portion of TODO-PHP5, here is a small
> patch that:
-Andrei http://www.gravitonic.com/
"When a man sits with a pretty girl for an hour, it seems like a minute.
But let him sit on a hot stove for a minute, and it's longer than any hour.
That's relativity."
-- Einstein, on relativity
Index: zend_compile.c
===================================================================
RCS file: /repository/ZendEngine2/zend_compile.c,v
retrieving revision 1.395
diff -u -2 -b -w -B -r1.395 zend_compile.c
--- zend_compile.c 12 Mar 2003 09:38:19 -0000 1.395
+++ zend_compile.c 13 Mar 2003 20:43:34 -0000
@@ -977,4 +977,6 @@
op_array.ns = CG(active_namespace);
+ op_array.line_start = CG(zend_lineno);
+
if (is_method) {
char *short_class_name = CG(active_class_entry)->name;
@@ -1074,4 +1076,5 @@
zend_do_return(NULL, 0 TSRMLS_CC);
pass_two(CG(active_op_array) TSRMLS_CC);
+ CG(active_op_array)->line_end = CG(zend_lineno);
CG(active_op_array) = function_token->u.op_array;
@@ -3208,4 +3211,5 @@
switch (retval) {
case T_COMMENT:
+ case T_DOC_COMMENT:
case T_OPEN_TAG:
case T_WHITESPACE:
Index: zend_compile.h
===================================================================
RCS file: /repository/ZendEngine2/zend_compile.h,v
retrieving revision 1.224
diff -u -2 -b -w -B -r1.224 zend_compile.h
--- zend_compile.h 9 Mar 2003 22:17:15 -0000 1.224
+++ zend_compile.h 13 Mar 2003 20:43:34 -0000
@@ -147,4 +147,6 @@
char *filename;
+ int line_start;
+ int line_end;
void *reserved[ZEND_MAX_RESERVED_RESOURCES];
Index: zend_globals.h
===================================================================
RCS file: /repository/ZendEngine2/zend_globals.h,v
retrieving revision 1.120
diff -u -2 -b -w -B -r1.120 zend_globals.h
--- zend_globals.h 5 Mar 2003 11:14:43 -0000 1.120
+++ zend_globals.h 13 Mar 2003 20:43:34 -0000
@@ -86,4 +86,6 @@
char *heredoc;
int heredoc_len;
+ char *doc_comment;
+ int doc_comment_len;
zend_op_array *active_op_array;
Index: zend_highlight.c
===================================================================
RCS file: /repository/ZendEngine2/zend_highlight.c,v
retrieving revision 1.35
diff -u -2 -b -w -B -r1.35 zend_highlight.c
--- zend_highlight.c 6 Mar 2003 15:38:28 -0000 1.35
+++ zend_highlight.c 13 Mar 2003 20:43:34 -0000
@@ -98,4 +98,5 @@
break;
case T_COMMENT:
+ case T_DOC_COMMENT:
next_color = syntax_highlighter_ini->highlight_comment;
break;
Index: zend_language_parser.y
===================================================================
RCS file: /repository/ZendEngine2/zend_language_parser.y,v
retrieving revision 1.103
diff -u -2 -b -w -B -r1.103 zend_language_parser.y
--- zend_language_parser.y 9 Mar 2003 22:23:27 -0000 1.103
+++ zend_language_parser.y 13 Mar 2003 20:43:34 -0000
@@ -131,5 +131,5 @@
%token T_FILE
%token T_COMMENT
-%token T_ML_COMMENT
+%token T_DOC_COMMENT
%token T_OPEN_TAG
%token T_OPEN_TAG_WITH_ECHO
Index: zend_language_scanner.l
===================================================================
RCS file: /repository/ZendEngine2/zend_language_scanner.l,v
retrieving revision 1.80
diff -u -2 -b -w -B -r1.80 zend_language_scanner.l
--- zend_language_scanner.l 9 Mar 2003 21:12:12 -0000 1.80
+++ zend_language_scanner.l 13 Mar 2003 20:43:34 -0000
@@ -42,4 +42,5 @@
%x ST_LOOKING_FOR_VARNAME
%x ST_COMMENT
+%x ST_DOC_COMMENT
%x ST_ONE_LINE_COMMENT
%option stack
@@ -135,4 +136,8 @@
CG(heredoc_len)=0;
}
+ if (CG(doc_comment)) {
+ efree(CG(doc_comment));
+ CG(doc_comment_len) = 0;
+ }
}
END_EXTERN_C()
@@ -1170,4 +1175,10 @@
}
+<ST_IN_SCRIPTING>"/** "{NEWLINE} {
+ CG(comment_start_line) = CG(zend_lineno);
+ BEGIN(ST_DOC_COMMENT);
+ yymore();
+}
+
<ST_IN_SCRIPTING>"/*" {
CG(comment_start_line) = CG(zend_lineno);
@@ -1177,8 +1188,24 @@
-<ST_COMMENT>[^*]+ {
+<ST_COMMENT,ST_DOC_COMMENT>[^*]+ {
yymore();
}
+<ST_DOC_COMMENT>"*/" {
+ char *s = &yytext[yyleng-3];
+ CG(doc_comment_len) = yyleng-7;
+ while (*s == ' ' || *s == '\t' || *s == '\n' || *s == '\r') {
+ s--;
+ CG(doc_comment_len)--;
+ }
+ if (CG(doc_comment)) {
+ efree(CG(doc_comment));
+ }
+ CG(doc_comment) = estrndup(yytext+5, CG(doc_comment_len));
+ HANDLE_NEWLINES(yytext, yyleng);
+ BEGIN(ST_IN_SCRIPTING);
+ return T_DOC_COMMENT;
+}
+
<ST_COMMENT>"*/" {
HANDLE_NEWLINES(yytext, yyleng);
@@ -1187,5 +1214,5 @@
}
-<ST_COMMENT>"*" {
+<ST_COMMENT,ST_DOC_COMMENT>"*" {
yymore();
}
@@ -1553,5 +1580,5 @@
}
-<ST_COMMENT><<EOF>> {
+<ST_COMMENT,ST_DOC_COMMENT><<EOF>> {
zend_error(E_COMPILE_WARNING,"Unterminated comment starting line %d",
CG(comment_start_line));
return 0;
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php