mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Fix parsing of assign() template function
This fixes a regression from commit bde8cd5e65984786471851309bd9c95be1f354a5, which allowed expression lists as function arguments. However, assign() still expects simple expression as its first argument. I don't think allowing expression list there makes much sense, so let's restrict this.
This commit is contained in:
parent
1796df09b4
commit
22b32638e8
@ -540,8 +540,8 @@ class _Parser:
|
|||||||
lambda ln, args: IfNode(ln, args[0], (args[1],), (args[2],))),
|
lambda ln, args: IfNode(ln, args[0], (args[1],), (args[2],))),
|
||||||
'first_non_empty': (lambda args: len(args) == 1,
|
'first_non_empty': (lambda args: len(args) == 1,
|
||||||
lambda ln, args: FirstNonEmptyNode(ln, args)),
|
lambda ln, args: FirstNonEmptyNode(ln, args)),
|
||||||
'assign': (lambda args: len(args) == 2 and args[0].node_type == Node.NODE_RVALUE,
|
'assign': (lambda args: len(args) == 2 and len(args[0]) == 1 and args[0][0].node_type == Node.NODE_RVALUE,
|
||||||
lambda ln, args: AssignNode(ln, args[0].name, args[1])),
|
lambda ln, args: AssignNode(ln, args[0][0].name, args[1])),
|
||||||
'contains': (lambda args: len(args) == 4,
|
'contains': (lambda args: len(args) == 4,
|
||||||
lambda ln, args: ContainsNode(ln, args)),
|
lambda ln, args: ContainsNode(ln, args)),
|
||||||
'character': (lambda args: len(args) == 1,
|
'character': (lambda args: len(args) == 1,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user