test_parser
Expressions:
expr: foo(1)
expr: [1, 2, 3]
expr: [x**3 for x in range(20)]
expr: [x**3 for x in range(20) if x % 3]
expr: foo(*args)
expr: foo(*args, **kw)
expr: foo(**kw)
expr: foo(key=value)
expr: foo(key=value, *args)
expr: foo(key=value, *args, **kw)
expr: foo(key=value, **kw)
expr: foo(a, b, c, *args)
expr: foo(a, b, c, *args, **kw)
expr: foo(a, b, c, **kw)
expr: foo + bar
expr: lambda: 0
expr: lambda x: 0
expr: lambda *y: 0
expr: lambda *y, **z: 0
expr: lambda **z: 0
expr: lambda x, y: 0
expr: lambda foo=bar: 0
expr: lambda foo=bar, spaz=nifty+spit: 0
expr: lambda foo=bar, **z: 0
expr: lambda foo=bar, blaz=blat+2, **z: 0
expr: lambda foo=bar, blaz=blat+2, *y, **z: 0
expr: lambda x, *y, **z: 0

Statements:
suite: print
suite: print 1
suite: print 1,
suite: print >>fp
suite: print >>fp, 1
suite: print >>fp, 1,
suite: a
suite: a = b
suite: a = b = c = d = e
suite: a += b
suite: a -= b
suite: a *= b
suite: a /= b
suite: a %= b
suite: a &= b
suite: a |= b
suite: a ^= b
suite: a <<= b
suite: a >>= b
suite: a **= b
suite: def f(): pass
suite: def f(*args): pass
suite: def f(*args, **kw): pass
suite: def f(**kw): pass
suite: def f(foo=bar): pass
suite: def f(foo=bar, *args): pass
suite: def f(foo=bar, *args, **kw): pass
suite: def f(foo=bar, **kw): pass
suite: def f(a, b): pass
suite: def f(a, b, *args): pass
suite: def f(a, b, *args, **kw): pass
suite: def f(a, b, **kw): pass
suite: def f(a, b, foo=bar): pass
suite: def f(a, b, foo=bar, *args): pass
suite: def f(a, b, foo=bar, *args, **kw): pass
suite: def f(a, b, foo=bar, **kw): pass
suite: from sys.path import *
suite: from sys.path import dirname
suite: from sys.path import dirname as my_dirname
suite: from sys.path import dirname, basename
suite: from sys.path import dirname as my_dirname, basename
suite: from sys.path import dirname, basename as my_basename
suite: import sys
suite: import sys as system
suite: import sys, math
suite: import sys as system, math
suite: import sys, math as my_math

Invalid parse trees:

<junk>
caught expected exception for invalid tree

print >>fp,
caught expected exception for invalid tree

a,,c
caught expected exception for invalid tree

a $= b
caught expected exception for invalid tree
