I don't think this should be changed and we should stick to the way it is
in C. (It is also not BC and even if I thought it's a good idea, which I
don't, I don't think it's worth it).
Andi
At 11:48 AM 11/27/2001 +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]
--
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]