@@ -196,6 +196,18 @@ func TestGrammar(t *testing.T) {
196
196
{"assert True" , "exec" , "Module(body=[Assert(test=NameConstant(value=True), msg=None)])" },
197
197
{"assert True, 'Bang'" , "exec" , "Module(body=[Assert(test=NameConstant(value=True), msg=Str(s='Bang'))])" },
198
198
{"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()])])" },
199
211
// END TESTS
200
212
} {
201
213
Ast , err := ParseString (test .in , test .mode )
0 commit comments