Commit 619eea68 authored by Jeremy Hylton's avatar Jeremy Hylton

PEP 227 implementation

test_new: new.code() noew takes two more arguments
test_grammer: Add a bunch of test cases for lambda (not really PEP 227 related)
parent 4588c78f
......@@ -13,6 +13,8 @@ file_input
expr_input
eval_input
funcdef
lambdef
SyntaxError expected for "lambda x: x = 2"
simple_stmt
expr_stmt
print_stmt
......
......@@ -246,6 +246,20 @@ d22v(*(1, 2, 3, 4))
d22v(1, 2, *(3, 4, 5))
d22v(1, *(2, 3), **{'d': 4})
### lambdef: 'lambda' [varargslist] ':' test
print 'lambdef'
l1 = lambda : 0
verify(l1() == 0)
l2 = lambda : a[d] # XXX just testing the expression
l3 = lambda : [2 < x for x in [-1, 3, 0L]]
verify(l3() == [0, 1, 0])
l4 = lambda x = lambda y = lambda z=1 : z : y() : x()
verify(l4() == 1)
l5 = lambda x, y, z=2: x + y + z
verify(l5(1, 2) == 5)
verify(l5(1, 2, 3) == 6)
check_syntax("lambda x: x = 2")
### stmt: simple_stmt | compound_stmt
# Tested below
......
......@@ -58,6 +58,7 @@ if g['c'] != 3:
# bogus test of new.code()
print 'new.code()'
d = new.code(3, 3, 3, 3, codestr, (), (), (), "<string>", "<name>", 1, "")
d = new.code(3, 3, 3, 3, codestr, (), (), (), (), (),
"<string>", "<name>", 1, "")
if verbose:
print d
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment