Although my vote doesn't count much here :-) I'm for it... ... but it would be a problem for 4.x I guess because this horribly breaks BC when/if there's a new 4.x release and people start using it.
But it would be nice to have it in ZE2. my 2c - Markus On Tue, Nov 27, 2001 at 11:48:51AM +0100, Anders Johannsen wrote : > This patch allows for nested 'C-style' comments, which can be useful > especially while debugging. > > <?php > /* comments > /* now /* nest */ */ > > /*/*/*/* > */*/*/*/ > */ > ?> > > Since comments are handled purely lexical, there should be virtually no > performance hit. > > The following two examples show how errors are handled: > > 1) > <?php > /* > */ > */ > ?> > > 2) > <?php > /* > /* > */ > ?> > > Ad 1) This will yield a zend_error(E_COMPILE_ERROR,"Invalid nesting of > comments") on the > last line. Unpatched, a parse error is the most likely result. > > Ad 2) A zend_error(E_COMPILE_WARNING, "unterminated comment starting line > %d", CG(comment_start_line)) is raised. > > The attached patch is against latest CVS > > Best regards, > Anders Johannsen > -- > [EMAIL PROTECTED] > > Index: zend_globals.h > =================================================================== > RCS file: /repository/Zend/zend_globals.h,v > retrieving revision 1.80 > diff -u -r1.80 zend_globals.h > --- zend_globals.h 2001/10/23 01:19:16 1.80 > +++ zend_globals.h 2001/11/27 10:08:06 > @@ -82,6 +82,7 @@ > int comment_start_line; > char *heredoc; > int heredoc_len; > + unsigned int comment_nest_level; > > zend_op_array *active_op_array; > > Index: zend_language_scanner.l > =================================================================== > RCS file: /repository/Zend/zend_language_scanner.l,v > retrieving revision 1.40 > diff -u -r1.40 zend_language_scanner.l > --- zend_language_scanner.l 2001/09/22 00:06:27 1.40 > +++ zend_language_scanner.l 2001/11/27 10:08:07 > @@ -1,5 +1,4 @@ > %{ > - > /* > > +----------------------------------------------------------------------+ > | Zend > Engine | > @@ -125,6 +124,7 @@ > { > CG(heredoc) = NULL; > CG(heredoc_len)=0; > + CG(comment_nest_level)=0; > } > > > @@ -1057,24 +1057,39 @@ > } > } > > +<ST_IN_SCRIPTING>"*/" { > + zend_error(E_COMPILE_ERROR,"Invalid nesting of comments"); > +} > + > <ST_IN_SCRIPTING>"/*" { > CG(comment_start_line) = CG(zend_lineno); > BEGIN(ST_COMMENT); > + CG(comment_nest_level) = 1; > yymore(); > } > > - > -<ST_COMMENT>[^*]+ { > +<ST_COMMENT>[^/*]+ { > yymore(); > } > > +<ST_COMMENT>"/*" { > + CG(comment_nest_level)++; > + yymore(); > +} > + > <ST_COMMENT>"*/" { > - HANDLE_NEWLINES(yytext, yyleng); > - BEGIN(ST_IN_SCRIPTING); > - return T_COMMENT; > + CG(comment_nest_level)--; > + > + if (CG(comment_nest_level) == 0) { > + HANDLE_NEWLINES(yytext, yyleng); > + BEGIN(ST_IN_SCRIPTING); > + return T_COMMENT; > + } else { > + yymore(); > + } > } > > -<ST_COMMENT>"*" { > +<ST_COMMENT>"*"|"/" { > yymore(); > } > > > > > > -- > PHP Development Mailing List <http://www.php.net/> > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > To contact the list administrators, e-mail: [EMAIL PROTECTED] -- Please always Cc to me when replying to me on the lists. -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]