anchor.diff:          "case" LPAREN expression RPAREN
           ( MATCHES
             ( "tagged"
  -             ( ( "Just" | "Load" | "Store" | "Add" | "Sub"
  -               | "Mul" | "Div" | "Cond" | "Jump" | "SetPrefetch"
  -               | "ForwardSrc" | "ForwardDest" | "Op"
  -               | "ArithmeticInstruction"
  -               | "Branch" | "CWData_Bit" | "DAdd" | "DEC_FUU"
  -               | "DFBLuma" | "Imm0"
  -               | "Left" | "LoadPage" | "LoadReq" | "LoadServiced"
  -               | "NewUnit" | "Pass" | "RowSize" | "SetReg"
  -               | "StoreReq" | "TV_V" | "Valid"
  -               ) ( dot_field | LBRACE dot_field (COMMA dot_field)* RBRACE )
  -             | "Invalid"
  -             | "Nil"
  -             | "Nothing"
  -             | "Stop"
  -             ) COLON function_body_statement
  +             #(
  +             VAR 
  +#( "Just" | "Load" | "Store" | "Add" | "Sub"
  +               #| "Mul" | "Div" | "Cond" | "Jump" | "SetPrefetch"
  +               #| "ForwardSrc" | "ForwardDest" | "Op"
  +               #| "ArithmeticInstruction"
  +               #| "Branch" | "CWData_Bit" | "DAdd" | "DEC_FUU"
  +               #| "DFBLuma" | "Imm0"
  +               #| "Left" | "LoadPage" | "LoadReq" | "LoadServiced"
  +               #| "NewUnit" | "Pass" | "RowSize" | "SetReg"
  +               #| "StoreReq" | "TV_V" | "Valid"
  +               #)
  +                 [ dot_field | LBRACE dot_field (COMMA dot_field)* RBRACE ]
  +             #| "Invalid"
  +             #| "Nil"
  +             #| "Nothing"
  +             #| "Stop"
  +             #)
  +              COLON function_body_statement
             | "default" COLON function_body_statement
             )*
           | ((VAR | NUM) (COMMA (VAR | NUM))* COLON 
  
positive.code:         #    [ "reset_by" VAR] SEMICOLON
          )
  
      rule subinterface_declaration:
          "interface" Type_item_or_name [ VAR ] [ EQUAL expression ] SEMICOLON
  
      rule interface_arg:
          [ ["numeric"] "type" ] Type_name
  
      rule interface_declaration:
          "interface" VAR [VAR]
          ( SEMICOLON
              ( method_declaration
              | attribute_statement
              | subinterface_declaration
              )*
              "endinterface" [ COLON VAR ]
          | HASH LPAREN interface_arg ( COMMA interface_arg)* RPAREN SEMICOLON
              ( method_declaration
              | attribute_statement
              | subinterface_declaration
              )*
              "endinterface" [ COLON VAR ]
          | EQUAL expression SEMICOLON
          )
  
  
negative.code:          "\\([*]" attribute "[*]\\)"
  
      rule Type_named_sub:
          HASH LPAREN expression (COMMA expression )* RPAREN
  
      rule Type_item_or_name:
          Type_item
          | VAR [ Type_named_sub ]
  
      rule importBVI_statement:
      "parameter" VAR  EQUAL expression SEMICOLON
  