Sorry, why can't you do that in php?

On Tue, 27 Nov 2001, Adam Wright wrote:

> But in C, you can #if 0 whole blocks out regardless. I'm in favour of a
> change like this (if not this specific one) in 4.2.
> 
> adamw
> 
> ----- Original Message -----
> From: "Andi Gutmans" <[EMAIL PROTECTED]>
> To: "Anders Johannsen" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
> Sent: Tuesday, November 27, 2001 5:21 PM
> Subject: Re: [PHP-DEV] Patch: Nested comments
> 
> 
> > 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]
> >
> >
> 
> 
> 

-- 

John Donagher
Application Engineer, Intacct Corp.

Public key available off http://www.keyserver.net
Key fingerprint = 4024 DF50 56EE 19A3 258A  D628 22DE AD56 EEBE 8DDD


-- 
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