this is not entirely true: token : "[WS]+?[WS]+" == conditional if seperater 1 token : "[WS]+:[WS]+" == conditional if seperater 2 token : ":[WS]+" == case/ if ($a == 5): / else: / endif; token : ":" == namespace stuff...
eg. adding whitespace around the " : " and declaring that a token, rather than creating a token for the whitespace it, should work?? Regards Alan On Sat, 2005-11-26 at 13:56 +0100, Marcus Boerger wrote: > Hello Sebastian, > > Saturday, November 26, 2005, 1:46:31 PM, you wrote: > > > On 11/26/05, Marcus Boerger <[EMAIL PROTECTED]> wrote: > >> The only thing that matters is whether i can write a correct > >> lexer/parser for this without breaking stuff. > > > Im no parser expert at all, so just to be sure that I understand the > > problem correctly: I guess you can't distinguish at the parser/lexer > > level between cases where it's ambiguos without white spaces and where > > it isn't? > > A lexer splits on tokens while white space is optional. If present it > allows separation of tokens. Forcing this would make whitespace a token > which would be very bad. The parser then works on the tokens and doesn't > see any whitespace. > > > Alternatively, could you provide a configuration switch to turn the > > use of namespace constants in the ternary on or off? (So that people > > who don't use namespace constants but use the ternary without spaces > > wouldn't need to change all their code?) > > That is no option at all becuase it would make it impossible to write > portable php code. > > marcus > -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php