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