anchor.diff:      ;
   
   propertyListNotEmpty[CommonTree subject]
  -    : v=verb objectList[subject, (CommonTree) $v.tree] (SEMICOLON (v=verb objectList[$subject, (CommonTree) $v.tree])?)* -> objectList+
  +    : v=verb objectList[subject, (CommonTree) $v.tree] (SEMICOLON (v=verb objectList[subject, (CommonTree) $v.tree])?)* -> objectList+
       ;
   
   objectList[CommonTree subject, CommonTree predicate]
  -    : graphNode ( COMMA graphNode )* -> (^(SUBJECT {subject}) ^(PREDICATE {$predicate}) ^(OBJECT graphNode))+
  +    : graphNode ( COMMA graphNode )* -> (^(SUBJECT {subject}) ^(PREDICATE {predicate}) ^(OBJECT graphNode))+
       ;
   
   verb
  
positive.code:     ;
  
  unaryExpression
      : op=NEGATION primaryExpression -> ^(UNARY_NOT[$op] /*NEGATION*/ primaryExpression)
      | op=PLUS primaryExpression -> ^(UNARY_PLUS[$op] /*PLUS*/ primaryExpression)
      | op=MINUS primaryExpression -> ^(UNARY_MINUS[$op] /*MINUS*/ primaryExpression)
      | primaryExpression -> ^(UNARY primaryExpression)
      ;
  
  
negative.code:     ;
      
  groupGraphPatternSub
      : triplesBlock? ( groupGraphPatternSubCache )* -> triplesBlock? groupGraphPatternSubCache*
      ;
  
  groupGraphPatternSubCache
  