# If-else clauses

if True:
  pass
elif False:
  pass

if foo in bar:
 for f in foo:
  # loop
  f()
else if True:
  a = b

else:
  if False:

    #assign
    b=a
  else:

   (a,b)=(b,a)

if foo:
  bar

if foo: # this is assigned to foo
  pass
else: # this is assigned to "else"
  if bar: # this is assigned to bar
    pass
  else: # this is assigned to "else" too
    pass

if foo:
  pass
else:
  # comment
  if bar:
    pass

if foo:
  pass
else:
  # comment

  if bar:
    pass
