> I made another patch that is based on your ideas.
>
> 1) It uses "right" syntax:
>
> LABEL: while(1) {
> break LABEL;
> }
>
> 2) It doesn't allow usage of same label for different loops
>
> L1: while(1) {...}
> L1: while(1) {...}
>
> 3) It doesn't use executor data structures
>
> 4) It allows reuse of same labels for jump/goto (as was  done in your
> first patch). It already declares "jump LABEL;" operator but emits
> error for now.
>
> I think this patch can be committed and then we can discuss
> jump/goto.
>
I agree.  This gives us a clear, unambiguous syntax, puts no additional load
(either memory or cpu) on the executor and sets the groundwork for jump/goto
*if* it's deemed worthy of PHP.

To just just offer out piccune little points (not trying to kvetch or
anything):
* Declarations of zend_label *label; and long distance = 1; in
zend_do_brk_cont() have a mix of spaces and tabs in their indentation rather
than exclusively tabs.
* zend_error(E_COMPILE_ERROR, "%s to to label '%R',   also in
zend_do_brk_cont() has a superfluous 'to'.

Thanks Dimitry!

Andi/Zeev-  Can one/both of you weigh in on this at this point?

-Sara

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to