anchor.diff:  max_range       : INTEGER
   				| '*'
   				;
  -valueSet        : '(' value* ')' ;
  +valueSet		: '[' value* ']' ;
   value           : iriRange
   				| literal
   				;
  
positive.code: 				| KW_FRACTIONDIGITS
  				;
  datatype        : iri ;
  annotation      : ';' predicate (iri | literal) ;
  // BNF: cardinality ::= '*' | '+' | '?' | REPEAT_RANGE
  cardinality     :  '*'
  				| '+'
  				| '?'
  
negative.code: groupShape      : singleElementGroup
  				| multiElementGroup
  				;
  singleElementGroup : unaryShape (','|';')? ;
  multiElementGroup : unaryShape ((','|';') unaryShape)+ (','|';')? ;
  unaryShape      : tripleConstraint
  				| include
  				| encapsulatedShape
  