anchor.diff:              method_body
           | ("Type" | Type_item_basic | VAR [ Type_named_sub ]) [ VAR ]  [ argument_list ]
               [ VAR ]
  -            [ ( ( "if" | "clocked_by" | "reset_by" | "enable" | "ready")
  +            ( ( "if" | "clocked_by" | "reset_by" | "enable" | "ready")
                   LPAREN [ ( assign_value | "enable" | "ready" ) ] RPAREN 
  -              )*
  -            ]
  +            )*
               [ EQUAL assign_value ]
               method_body
           #| [ output_port ] VAR
  
positive.code:         | expression [   ( declared_item ( COMMA declared_item )*
                           | ( EQUAL | LEQ | LARROW) assign_value
                           # following weird rules needed since "VAR VAR" is a valid expression!!
                           |               ( COMMA declared_item )*
                           )
                       ]
          ) SEMICOLON
  
negative.code:         "endaction" [ COLON VAR]
  
      rule Type_item_basic:
          ( "Bit#" | "Int#" | "Uint#" | "ComplexF#" | "Reg#" | "FIFO#" | "Maybe#" )
             LPAREN expression [ COMMA expression ] RPAREN
          | ("Vector#" | "Tuple2#" | "FixedPoint#")
             LPAREN expression (COMMA expression)* RPAREN
  