[Python-Dev] add new lambda syntax
Amaury Forgeot d'Arc
amauryfa at gmail.com
Fri Jun 28 19:01:47 CEST 2013
2013/6/28 Pynix Wang <pynix.wang at gmail.com>
> I want use coffeescript function syntax to write python lambda expression
> so I modified the Grammar file.
>
> ```
> atom: ('(' [yield_expr|testlist_comp|vararglist] ')' |
> '[' [testlist_comp] ']' |
> '{' [dictorsetmaker] '}' |
> NAME | NUMBER | STRING+ | '...' | 'None' | 'True' | 'False')
> trailer: '(' [arglist] ')' | '[' subscriptlist ']' | '.' NAME | '->' text
> ```
>
> but when I write
> ```
> (x,y=1)->x+y
> ```
> the parser doesn't go into vararglist.
>
This grammar is not LL(1) anymore (it's probably LALR now)
when seeing "x", it has the choice between testlist_comp and vararglist,
and the first one is picked.
Python's parser generator only supports LL(1) grammars.
--
Amaury Forgeot d'Arc
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20130628/a191a82a/attachment.html>
More information about the Python-Dev
mailing list