anchor.diff:  dotted_as_name
       : dotted_name (AS name)?
       ;
  -
  -compound_stmt
  -    : IF cond=test COLON suite elif_clause* else_clause?                           #if_stmt
  -    | WHILE test COLON suite else_clause?                                          #while_stmt
  -    | ASYNC? FOR exprlist IN testlist COLON suite else_clause?                     #for_stmt
  -    | TRY COLON suite (except_clause+ else_clause? finaly_clause? | finaly_clause) #try_stmt
  -    | ASYNC? WITH with_item (COMMA with_item)* COLON suite                         #with_stmt
  -    | decorator* (classdef | funcdef)                                              #class_or_func_def_stmt
  -    ;
  -
  -elif_clause
  -    : ELIF test COLON suite
  -    ;
  -
  -else_clause
  -    : ELSE COLON suite
  -    ;
  -
  -finaly_clause
  -    : FINALLY COLON suite
  -    ;
  -
  -with_item
  -    // NB compile.c makes sure that the default except clause is last
  -    : 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
  -    ;
  -
  -suite
  -    : simple_stmt
  -    | NEWLINE INDENT stmt+ DEDENT
  -    ;
  -
  +//----------------------------------------------------------------------------------------------------------------------
  +
  +// -------------------------- test, lambda and it's parameters ---------------------------------------------------------
  +/*
  + * Warning!
  + * According to https://docs.python.org/3/reference/expressions.html#lambda LAMBDA shouls be followed by
  + * `parameter_list` (in our case it is `typedargslist`)
  + * But that's not true! `typedargslist` may have parameters with type hinting, but that's not permitted in lambda
  + * definition
  + */
   // https://docs.python.org/3/reference/expressions.html#operator-precedence
   test
       : logical_test (IF logical_test ELSE test)?
       | LAMBDA varargslist? COLON test
       ;
   
  +varargslist
  +    : (vardef_parameters COMMA)? varargs (COMMA vardef_parameters)? (COMMA varkwargs)
  +    | vardef_parameters
  +    ;
  +
  +vardef_parameters
  +    : vardef_parameter (COMMA vardef_parameter)*
  +    ;
  +
  +vardef_parameter
  +    : name (ASSIGN test)?
  +    ;
  +
  +varargs
  +    : STAR name
  +    ;
  +
  +varkwargs
  +    : POWER name
  +    ;
  +//----------------------------------------------------------------------------------------------------------------------
  +
  +// -------------------------- tests and comparisons --------------------------------------------------------------------
   logical_test
       : comparison
       | NOT logical_test
  
positive.code:     | ASSERT test (COMMA test)?                                                       #assert_stmt
      | NONLOCAL name (COMMA name)*                                                     #nonlocal_stmt // Python 3
      ;
  
  testlist_star_expr
      : (test | star_expr) (COMMA (test | star_expr))* COMMA?
      ;
  
  assign_part
  
negative.code:     | expr op=OR_OP expr
      ;
  
  //----------------------------------------------------------------------------------------------------------------------
  
  // -------------------------- atom -------------------------------------------------------------------------------------
  atom
      : OPEN_PAREN (yield_expr | testlist_comp)? CLOSE_PAREN
      | OPEN_BRACKET testlist_comp? CLOSE_BRACKET
  