@@ -130,6 +130,26 @@ func TestGrammar(t *testing.T) {
130
130
{"(a==b)<c" , "eval" , "Expression(body=Compare(left=Compare(left=Name(id='a', ctx=Load()), ops=[Eq()], comparators=[Name(id='b', ctx=Load())]), ops=[Lt()], comparators=[Name(id='c', ctx=Load())]))" },
131
131
{"a==(b<c)" , "eval" , "Expression(body=Compare(left=Name(id='a', ctx=Load()), ops=[Eq()], comparators=[Compare(left=Name(id='b', ctx=Load()), ops=[Lt()], comparators=[Name(id='c', ctx=Load())])]))" },
132
132
{"(a==b)<(c>d)>e" , "eval" , "Expression(body=Compare(left=Compare(left=Name(id='a', ctx=Load()), ops=[Eq()], comparators=[Name(id='b', ctx=Load())]), ops=[Lt(), Gt()], comparators=[Compare(left=Name(id='c', ctx=Load()), ops=[Gt()], comparators=[Name(id='d', ctx=Load())]), Name(id='e', ctx=Load())]))" },
133
+ {"a()" , "eval" , "Expression(body=Call(func=Name(id='a', ctx=Load()), args=[], keywords=[], starargs=None, kwargs=None))" },
134
+ {"a.b" , "eval" , "Expression(body=Attribute(value=Name(id='a', ctx=Load()), attr='b', ctx=Load()))" },
135
+ {"a.b.c.d" , "eval" , "Expression(body=Attribute(value=Attribute(value=Attribute(value=Name(id='a', ctx=Load()), attr='b', ctx=Load()), attr='c', ctx=Load()), attr='d', ctx=Load()))" },
136
+ {"a.b().c.d()()" , "eval" , "Expression(body=Call(func=Call(func=Attribute(value=Attribute(value=Call(func=Attribute(value=Name(id='a', ctx=Load()), attr='b', ctx=Load()), args=[], keywords=[], starargs=None, kwargs=None), attr='c', ctx=Load()), attr='d', ctx=Load()), args=[], keywords=[], starargs=None, kwargs=None), args=[], keywords=[], starargs=None, kwargs=None))" },
137
+ {"x[a]" , "eval" , "Expression(body=Subscript(value=Name(id='x', ctx=Load()), slice=Index(value=Name(id='a', ctx=Load())), ctx=Load()))" },
138
+ {"x[a:b]" , "eval" , "Expression(body=Subscript(value=Name(id='x', ctx=Load()), slice=Slice(lower=Name(id='a', ctx=Load()), upper=Name(id='b', ctx=Load()), step=None), ctx=Load()))" },
139
+ {"x[a:b:c]" , "eval" , "Expression(body=Subscript(value=Name(id='x', ctx=Load()), slice=Slice(lower=Name(id='a', ctx=Load()), upper=Name(id='b', ctx=Load()), step=Name(id='c', ctx=Load())), ctx=Load()))" },
140
+ {"x[:b:c]" , "eval" , "Expression(body=Subscript(value=Name(id='x', ctx=Load()), slice=Slice(lower=None, upper=Name(id='b', ctx=Load()), step=Name(id='c', ctx=Load())), ctx=Load()))" },
141
+ {"x[a::c]" , "eval" , "Expression(body=Subscript(value=Name(id='x', ctx=Load()), slice=Slice(lower=Name(id='a', ctx=Load()), upper=None, step=Name(id='c', ctx=Load())), ctx=Load()))" },
142
+ {"x[a:b:]" , "eval" , "Expression(body=Subscript(value=Name(id='x', ctx=Load()), slice=Slice(lower=Name(id='a', ctx=Load()), upper=Name(id='b', ctx=Load()), step=None), ctx=Load()))" },
143
+ {"x[::c]" , "eval" , "Expression(body=Subscript(value=Name(id='x', ctx=Load()), slice=Slice(lower=None, upper=None, step=Name(id='c', ctx=Load())), ctx=Load()))" },
144
+ {"x[:b:]" , "eval" , "Expression(body=Subscript(value=Name(id='x', ctx=Load()), slice=Slice(lower=None, upper=Name(id='b', ctx=Load()), step=None), ctx=Load()))" },
145
+ {"x[::c]" , "eval" , "Expression(body=Subscript(value=Name(id='x', ctx=Load()), slice=Slice(lower=None, upper=None, step=Name(id='c', ctx=Load())), ctx=Load()))" },
146
+ {"x[::]" , "eval" , "Expression(body=Subscript(value=Name(id='x', ctx=Load()), slice=Slice(lower=None, upper=None, step=None), ctx=Load()))" },
147
+ {"x[a,p]" , "eval" , "Expression(body=Subscript(value=Name(id='x', ctx=Load()), slice=Index(value=Tuple(elts=[Name(id='a', ctx=Load()), Name(id='p', ctx=Load())], ctx=Load())), ctx=Load()))" },
148
+ {"x[a, b]" , "eval" , "Expression(body=Subscript(value=Name(id='x', ctx=Load()), slice=Index(value=Tuple(elts=[Name(id='a', ctx=Load()), Name(id='b', ctx=Load())], ctx=Load())), ctx=Load()))" },
149
+ {"x[a, b, c]" , "eval" , "Expression(body=Subscript(value=Name(id='x', ctx=Load()), slice=Index(value=Tuple(elts=[Name(id='a', ctx=Load()), Name(id='b', ctx=Load()), Name(id='c', ctx=Load())], ctx=Load())), ctx=Load()))" },
150
+ {"x[a, b:c, ::d]" , "eval" , "Expression(body=Subscript(value=Name(id='x', ctx=Load()), slice=ExtSlice(dims=[Index(value=Name(id='a', ctx=Load())), Slice(lower=Name(id='b', ctx=Load()), upper=Name(id='c', ctx=Load()), step=None), Slice(lower=None, upper=None, step=Name(id='d', ctx=Load()))]), ctx=Load()))" },
151
+ {"x[a, b:c, ::d]" , "eval" , "Expression(body=Subscript(value=Name(id='x', ctx=Load()), slice=ExtSlice(dims=[Index(value=Name(id='a', ctx=Load())), Slice(lower=Name(id='b', ctx=Load()), upper=Name(id='c', ctx=Load()), step=None), Slice(lower=None, upper=None, step=Name(id='d', ctx=Load()))]), ctx=Load()))" },
152
+ {"x[0, 1:2, ::5, ...]" , "eval" , "Expression(body=Subscript(value=Name(id='x', ctx=Load()), slice=ExtSlice(dims=[Index(value=Num(n=0)), Slice(lower=Num(n=1), upper=Num(n=2), step=None), Slice(lower=None, upper=None, step=Num(n=5)), Index(value=Ellipsis())]), ctx=Load()))" },
133
153
// END TESTS
134
154
} {
135
155
Ast , err := ParseString (test .in , test .mode )
0 commit comments