# with = 1 # legal identifier
# with = 1
with = 1
# from __future__ import nested_scopes, with_statement
from __future__ import nested_scopes, with_statement
# with x.y(z)[t] as y: pass
with x.y(z)[t] as y: pass
# with = 1 # now illegal
with = 1
