@@ -196,6 +196,18 @@ func TestGrammar(t *testing.T) {
196196 {"assert True" , "exec" , "Module(body=[Assert(test=NameConstant(value=True), msg=None)])" },
197197 {"assert True, 'Bang'" , "exec" , "Module(body=[Assert(test=NameConstant(value=True), msg=Str(s='Bang'))])" },
198198 {"assert a == b, 'Bang'" , "exec" , "Module(body=[Assert(test=Compare(left=Name(id='a', ctx=Load()), ops=[Eq()], comparators=[Name(id='b', ctx=Load())]), msg=Str(s='Bang'))])" },
199+ {"while True: pass" , "exec" , "Module(body=[While(test=NameConstant(value=True), body=[Pass()], orelse=[])])" },
200+ {"while True:\n pass\n " , "exec" , "Module(body=[While(test=NameConstant(value=True), body=[Pass()], orelse=[])])" },
201+ {"while True:\n pass\n else:\n return\n " , "exec" , "Module(body=[While(test=NameConstant(value=True), body=[Pass()], orelse=[Return(value=None)])])" },
202+ {"if True: pass" , "exec" , "Module(body=[If(test=NameConstant(value=True), body=[Pass()], orelse=[])])" },
203+ {"if True:\n pass\n " , "exec" , "Module(body=[If(test=NameConstant(value=True), body=[Pass()], orelse=[])])" },
204+ {"if True:\n pass\n continue\n else:\n break\n pass\n " , "exec" , "Module(body=[If(test=NameConstant(value=True), body=[Pass(), Continue()], orelse=[Break(), Pass()])])" },
205+ {"if a:\n continue\n elif b:\n break\n elif c:\n pass\n elif c:\n continue\n pass\n " , "exec" , "Module(body=[If(test=Name(id='a', ctx=Load()), body=[Continue()], orelse=[If(test=Name(id='b', ctx=Load()), body=[Break()], orelse=[If(test=Name(id='c', ctx=Load()), body=[Pass()], orelse=[If(test=Name(id='c', ctx=Load()), body=[Continue(), Pass()], orelse=[])])])])])" },
206+ {"if a:\n continue\n elif b:\n break\n else:\n continue\n pass\n " , "exec" , "Module(body=[If(test=Name(id='a', ctx=Load()), body=[Continue()], orelse=[If(test=Name(id='b', ctx=Load()), body=[Break()], orelse=[Continue(), Pass()])])])" },
207+ {"if a:\n continue\n elif b:\n break\n elif c:\n pass\n else:\n continue\n pass\n " , "exec" , "Module(body=[If(test=Name(id='a', ctx=Load()), body=[Continue()], orelse=[If(test=Name(id='b', ctx=Load()), body=[Break()], orelse=[If(test=Name(id='c', ctx=Load()), body=[Pass()], orelse=[Continue(), Pass()])])])])" },
208+ {"for a in b: pass" , "exec" , "Module(body=[For(target=Name(id='a', ctx=Store()), iter=Name(id='b', ctx=Load()), body=[Pass()], orelse=[])])" },
209+ {"for a, b in b: pass" , "exec" , "Module(body=[For(target=Tuple(elts=[Name(id='a', ctx=Store()), Name(id='b', ctx=Store())], ctx=Store()), iter=Name(id='b', ctx=Load()), body=[Pass()], orelse=[])])" },
210+ {"for a, b in b:\n pass\n else: break\n " , "exec" , "Module(body=[For(target=Tuple(elts=[Name(id='a', ctx=Store()), Name(id='b', ctx=Store())], ctx=Store()), iter=Name(id='b', ctx=Load()), body=[Pass()], orelse=[Break()])])" },
199211 // END TESTS
200212 } {
201213 Ast , err := ParseString (test .in , test .mode )
0 commit comments