anchor.diff:  	| 'DURATION' | 'INSTRUCTIONS' | 'RELATIVE-OID' | 'WITH'
   	| 'EMBEDDED' | 'INTEGER' | 'RELATIVE-OID-IRI' ;
   
  -xmlasn1typename
  +XMLASN1TYPENAME
   	: 'BIT_STRING' | 'BOOLEAN' | 'CHOICE' | 'DATE'
   	| 'DATE_TIME' | 'DURATION' | 'SEQUENCE' | 'ENUMERATED'
   	| 'INTEGER' | 'OID_IRI' | 'NULL' | 'OCTET_STRING'
  
positive.code: 
  // Lexer
  // -----
  WhiteSpace : [\t\n\0x11\0x12\r ] ;
  NewLine: [\n\0x11\0x12\r] ;
  Letter: [a-zA-Z] ;
  UpperCase: [A-Z] ;
  LowerCase: [a-z] ;
  AlphaNumeric: [a-zA-Z0-9] ;
  Number: [0-9] ;
  NonZero: [1-9] ;
  Bit: [01] ;
  Hex: [0-9A-F] ;
  XMLHex: [0-9A-Fa-f] ;
  CString: ~[\"] ;
  XMLCharacters: [\x09\x10\x13\x0020-\xD7FF\xE000-\xFFFD\x010000-\x10FFFF] ;
  XMLCharCodes: '&#' Number* ';' ;
  XMLCharHexCodes: '&#x' XMLHex* ';' ;
  XMLCharAmpCodes: '&amp;' | '&lt;' | '&gt;' ;
  XMLCharXMLCodes
  	: '<nul/>' | '<soh/>' | '<stx/>' | '<etx/>' | '<eot/>' | '<enq/>' | '<ack/>' | '<bel/>' | '<bs/>'
  	| '<vt/>' | '<ff/>' | '<so/>' | '<si/>' | '<dle/>' | '<dc1/>' | '<dc2/>' | '<dc3/>' | '<dc4/>' | '<nak/>'
  	| '<syn/>' | '<etb/>' | '<can/>' | '<em/>' | '<sub/>' | '<esc/>' | '<is4/>' | '<is3/>' | '<is2/>' | '<is1/>' ;
  
  SimpleStringCodes: [\x32-\x7E] ;
  
  TString: [0-9+-:.,/CDHMRPSTWYZ] ;
  
  UnicodeNonInteger
  	: [-._~0-9A-Za-z]
  	| [\x000000A0-\x0000DFFE]
  	| [\x0000F900-\x0000FDCF]
  
negative.code: moduleDefinition: moduleIdentifier
  	  'DEFINITIONS'
  	  encodingReferenceDefault
  	  TAGDEFAULT
  	  EXTENSIONDEFAULT
  	  '::='
  	  'BEGIN'
  	  moduleBody
  	  encodingControlSections
  	  'END';
  
  moduleIdentifier: MODULEREFERENCE definitiveIdentification;
  
  definitiveIdentification: definitiveOID | definitiveOIDandIRI | ;
  
  