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: 	
  triplesNode
      : OPEN_BRACE graphNode+ CLOSE_BRACE -> ^(COLLECTION graphNode+)
      | lsb=OPEN_SQUARE_BRACKET propertyListNotEmpty[new CommonTree(new CommonToken(VAR,"[]"))] CLOSE_SQUARE_BRACKET -> ^(VAR[$lsb,"[]"] propertyListNotEmpty)
      ;
  
  graphNode
  
negative.code:     ;
    
  propertyListNotEmptyPath[CommonTree subject]
      : (p=verbPath  objectList[subject, (CommonTree) $p.tree]| v=verbSimple objectList[$subject, (CommonTree) $v.tree]) (SEMICOLON (p=verbPath objectList[$subject, (CommonTree) $p.tree]  | v=verbSimple  objectList[$subject, (CommonTree) $v.tree] )?)* -> objectList+
      ;
      
  verbPath
  