anchor.diff:      | 'TEXTUAL-CONVENTION'
       | 'NOTIFICATION-GROUP'
       | 'AGENT-CAPABILITIES'
  -    | INTEGER_LITERAL ((L_BRACE  R_BRACE))?
  +    | 'INTEGER' (('{'  '}'))?
       | 'BITS'
       ;
   
  
positive.code:     ;
  
  referencedType :
      IDENTIFIER (DOT IDENTIFIER)? ( '{' namedNumberList '}' )?
      ;
  
  elements :
  
negative.code: rootEnumeration : enumeration
      ;
  
  enumeration : enumerationItem ( ',' enumerationItem)*
  ;
  enumerationItem : IDENTIFIER | namedNumber | value
  ;
  namedNumber :
      (name=IDENTIFIER | name='TRUE' | name='FALSE' | name='true' | name='false' ) '(' signedNumber ')'
      ;
  
  integerType :
      'INTEGER'  ('{' namedNumberList '}')?
      ;
  
  namedNumberList :
      (namedNumber) (','? namedNumber)* ','?
      ;
  
  objectidentifiertype:
      'OBJECT' 'IDENTIFIER'
      ;
  
  octetStringType :
      'OCTET' 'STRING'
      ;
  
  bitStringType    : ('BIT' 'STRING') ('{' namedBitList '}')?
  ;
  namedBitList: (namedBit) (',' namedBit)*
  ;
  namedBit      : IDENTIFIER '(' NUMBER ')'
      ;
  
  booleanValue:
      'TRUE' | 'FALSE' | 'true' | 'false'
      ;
  
  fragment DIGIT
  