anchor.diff:      ;
   
   argument
  -    : test comp_for?
  -    | test ASSIGN test
  -    | POWER test
  -    | STAR test
  -    ;
  -
  +    : test (comp_for | ASSIGN test)?
  +    | (POWER | STAR) test
  +    ;
   
   list_iter
  -    : list_for
  -    | list_if
  -    ;
  -
  -list_for
       : FOR exprlist IN testlist_safe list_iter?
  -    ;
  -
  -list_if
  -    : IF old_test list_iter?
  +    | IF old_test list_iter?
  +    ;
  +
  +// Backward compatibility cruft to support:
  +// [ x for x in lambda: True, lambda: False if x() ]
  +// even while also allowing:
  +// lambda x: 5 if x else 2
  +// (But not a mix of the two)
  +testlist_safe
  +    : old_test ((COMMA old_test)+ COMMA?)?
       ;
   
   comp_iter
       : comp_for
  -    | comp_if
  +    | IF old_test comp_iter?
       ;
   
   comp_for
       : FOR exprlist IN logical_test comp_iter?
  -    ;
  -
  -comp_if
  -    : IF old_test comp_iter?
  -    ;
  -
  -// not used in grammar, but may appear in "node" passed from Parser to Compiler
  -encoding_decl
  -    : name
  -    ;
  -
  -yield_expr
  -    : YIELD yield_arg?
       ;
   
   yield_arg
  
positive.code:     | STRING+
      ;
  
  name
      : NAME
      | TRUE
  
negative.code:     : test (AS expr)?
      ;
  
  // Python 2 : EXCEPT test COMMA name
  // Python 3 : EXCEPT test AS name
  except_clause
      : EXCEPT (test (COMMA name | AS name)?)? COLON suite
      ;
  