anchor.diff:      rule Type: VAR
   
       rule action_name: VAR
  -
  -    rule action_statements:
  -        ( let_statement
  -        | expression ';'
  -        )*
   
       rule c_function_name: VAR
   
  
positive.code:     rule attribute_statement:
           "\\([*]" attribute [ "=" expression ] "[*]\\)"
  
      rule parameter: Type_item_or_name VAR (',' Type_item_or_name VAR)* 
  
      rule Type_item_or_name:
          Type_item
          | VAR [ "#" "\\(" expression (',' expression )* "\\)" ]
  
negative.code:         ( ';'
              ( method_declarations
  # ";"
              #| subinterface_declarations
              )*
              "endinterface" [ ":" ifc_name ]
          | "#" "\\(" "type" Type_name "\\)" ';'
              ( method_declarations
  # ";"
              #| subinterface_declarations
              )*
              "endinterface" [ ":" ifc_name ]
          )
  
      rule variable_assignment:
          term<<[]>>
          ( '=' expression
          | '<=' expression
          )
          #VAR [ "\\[" expression [ ':' expression ] "\\]" ]
          #('=' | '<=') expression
  
      rule variable_declaration:
          Type_item_or_name VAR [ ( "=" | "<-" ) expression ] ';'
  
      rule variable_declaration_or_call:
          ( Type_item VAR [ ( "=" | "<-" ) expression ] ';'
          #| expression [ VAR [ ( "=" | "<-" ) expression {{ print "FOO" }} ] ] ';'
          | term<<[]>> ( VAR
                           ( "=" expression ';'
                           | "<-" expression ';'
                           | ';' 
                           ) 
                       | "=" expression ';'
                       | "<=" expression ';'
                       | ';'
                       )
          )
  
      rule variable_declaration_and_initializations:
          let_statement
          | variable_declaration
  
      rule module_declarations:
          "module" [ "\\[" "Module" "\\]" ] module_name [ "#"  "\\(" parameter "\\)" ]
          "\\(" [ Ifc_type ] [ ifc_name ] [ "[*]" ] "\\)" [provisos] ';'
          ( module_instantiations
          | rule_statements
          | interface_method_definitions
          | return_statement
          | function_statement
          | rule_statement
          | method_declarations
          | for_statement
          | variable_declaration_and_initializations
          )*
          "endmodule" [ ":" module_name]
  
  