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]

Reply via email to