anchor.diff:  				;
   valueSet		: '[' valueSetValue* ']' ;
   valueSetValue   : iriRange
  -				| literal
  -				;
  -iriRange        : iri ('~' exclusion*)?
  -				| '.' exclusion+
  -				;
  -exclusion       : '-' iri '~'? ;
  +				| literalRange
  +				| languageRange
  +				| '.' (iriExclusion+ | literalExclusion+ | languageExclusion+)
  +				;
  +iriRange        : iri (STEM_MARK iriExclusion*)? ;
  +iriExclusion    : '-' iri STEM_MARK? ;
  +literalRange    : literal (STEM_MARK literalExclusion*)? ;
  +literalExclusion : '-' literal STEM_MARK? ;
  +languageRange   : LANGTAG (STEM_MARK languageExclusion*)? ;
  +languageExclusion : '-' LANGTAG STEM_MARK? ;
   literal         : rdfLiteral
   				| numericLiteral
   				| booleanLiteral
   				;
  -shapeOrRef      : ATPNAME_LN
  +shapeOrRef      : shapeDefinition
  +				| shapeRef
  +				;
  +inlineShapeOrRef : inlineShapeDefinition
  +				| shapeRef
  +				;
  +shapeRef 		: ATPNAME_LN
   				| ATPNAME_NS
   				| '@' shapeExprLabel
  -				| shapeDefinition
  -				;
  -inlineShapeOrRef : ATPNAME_LN
  -				| ATPNAME_NS
  -				| '@' shapeExprLabel
  -				| inlineShapeDefinition
   				;
   include			: '&' tripleExprLabel ;
   semanticActions	: codeDecl* ;
  
positive.code: 
  fragment UCHAR                 : '\\u' HEX HEX HEX HEX | '\\U' HEX HEX HEX HEX HEX HEX HEX HEX ;
  fragment ECHAR                 : '\\' [tbnrf\\\"\'] ;
  fragment WS                    : [\u0020\u0009\u000D\u000A] ; /* #x20=space #x9=character tabulation #xD=carriage return #xA=new line */
  
  fragment PN_CHARS_BASE 		   : [A-Z] | [a-z] | [\u00C0-\u00D6] | [\u00D8-\u00F6] | [\u00F8-\u02FF] | [\u0370-\u037D]
  					   		   | [\u037F-\u1FFF] | [\u200C-\u200D] | [\u2070-\u218F] | [\u2C00-\u2FEF] | [\u3001-\uD7FF]
  
negative.code: 				| repeatRange  # repeatCardinality
  				;
  // BNF: REPEAT_RANGE ::= '{' INTEGER (',' (INTEGER | '*')?)? '}'
  repeatRange     : '{' INTEGER '}'							  # exactRange
  				| '{' INTEGER ',' (INTEGER | UNBOUNDED)? '}'  # minMaxRange
  				;
  shapeExprLabel  : iri
  				| blankNode
  