PHP != C
--Jani
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]
>>
>>
>
>
>
--
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]