Stefan Behnel wrote:
> Robert Bradshaw, 30.01.2010 01:31:
>   
>> There's no way to interpret the expression
>>
>>      new A(1,10)
>>
>> as valid Python, so there's no ambiguity.
>>     
>
> Ok, it's not /really/ a keyword then, in the sense that it cannot appear
> outside of its grammar context. It would still be allowed everywhere,
> except that the case that it is followed by a name would be special cased.
>
> But doesn't that overly complicate the parser? I mean, 'new' can
> potentially appear in most places of an expression, and it can always mean
> both things...
>   
There's a limit to how simple the parser can be anyway, we can't use the 
simple parsing strategy of Python since we're supporting some C syntax. 
The tokenizer supports putting tokens back, so one can simply try for 
"new X" first, and if there's no match then one can put the token back 
into the tokenizer and call p_expr. Not much more complicated than 
anything else that goes on in the parser...


Dag Sverre
_______________________________________________
Cython-dev mailing list
[email protected]
http://codespeak.net/mailman/listinfo/cython-dev

Reply via email to