anchor.diff:  
   
   hadOriginalSourceExpression
  -	:	'hadOriginalSource' '('  ((id0=identifier | '-') ';')? id2=identifier ',' id1=identifier (',' (a=identifier | '-') ',' (g2=identifier  | '-') ',' (u1=identifier | '-') )?	optionalAttributeValuePairs ')'
  +	:	'hadOriginalSource' '('  id0=optionalIdentifier id2=identifier ',' id1=identifier (',' a=identifierOrMarker ',' g2=identifierOrMarker ',' u1=identifierOrMarker )?	optionalAttributeValuePairs ')'
         -> {$a.tree==null && $g2.tree==null && $u1.tree==null}?
             ^(ORIGINALSOURCE ^(ID $id0?) $id2 $id1 ^(ID) ^(ID) ^(ID) optionalAttributeValuePairs)
         -> {$a.tree!=null && $g2.tree==null && $u1.tree==null}?
  
positive.code: 
  
  revisionExpression
  	:	'wasRevisionOf' '('  ((id0=identifier | '-') ';')? id2=identifier ',' id1=identifier (',' (a=identifier | '-') ',' (g2=identifier  | '-') ',' (u1=identifier | '-') )?	optionalAttributeValuePairs ')'
        -> {$a.tree==null && $g2.tree==null && $u1.tree==null}?
            ^(WRO ^(ID $id0?) $id2 $id1 ^(ID) ^(ID) ^(ID) optionalAttributeValuePairs)
        -> {$a.tree!=null && $g2.tree==null && $u1.tree==null}?
  
negative.code: 
  
  tracedToExpression
  	:	'tracedTo' '('  id0=optionalIdentifier id2=identifier ',' id1=identifier optionalAttributeValuePairs ')'
        -> ^(TRACEDTO ^(ID $id0?) $id2 $id1 optionalAttributeValuePairs)
  	;
  
  