anchor.diff:  	;
   	
   IDENTIFIER
  -	:	[a-zA-Z_$*] [a-zA-Z0-9*]*
  +	:	[a-zA-Z_$] [a-zA-Z0-9]*
   	;
   
   SEMICOLON			: ';';
  
positive.code: 	:	ANNOTATION
  	;
  
  taxonomy	// taxonomy cannot have wildcards
  	:	type
  	;
  
  classSelector
  	:	type
  	;
  	
  memberSelector
  	:	identifier
  	;
  	
  
negative.code: // MEMBER
  
  memberDeclaration
  	:	annotation* selectionTypeModifier accessMethodModifier aliasableMember ( COMMA aliasableMember )* SEMICOLON
  	;
  	
  selectionTypeModifier
  	:	INCLUDE
  	|	EXCLUDE
  	|	// default is INCLUDE
  	;	
  	
  accessMethodModifier
  	:	PROPERTY
  	|	FIELD
  	|	// default is from taxonomy
  	;
  	
  // Aliases cannot conflict with member names or other member aliases.
  aliasableMember
  	:	memberRef ( AS alias )?
  	;
  	
  // COMMON
  