anchor.diff:  	
   triplesNode
       : OPEN_BRACE graphNode+ CLOSE_BRACE -> ^(COLLECTION graphNode+)
  -    | lsb=OPEN_SQUARE_BRACKET propertyListNotEmpty[new CommonTree(new CommonToken(VAR,"[]"))] CLOSE_SQUARE_BRACKET -> ^(TRIPLE propertyListNotEmpty)
  +    | OPEN_SQUARE_BRACKET propertyListNotEmpty[new CommonTree(new CommonToken(BLANK_NODE,"[]"))] CLOSE_SQUARE_BRACKET -> ^(PROPERTY_LIST propertyListNotEmpty)
       ;
   
   graphNode
  
positive.code:     ;
  
  varOrTerm
      : var | graphTerm
      ;
  
  varOrIRIref
  
negative.code:     ;
  
  triplesSameSubject
      : varOrTerm propertyListNotEmpty[(CommonTree)$varOrTerm.tree] -> ^(TRIPLE propertyListNotEmpty)
      | triplesNode propertyListNotEmpty[new CommonTree(new CommonToken(BLANK_NODE,"[]"))]? -> ^(TRIPLE triplesNode (/*^(SUBJECT BLANK_NODE)*/ propertyListNotEmpty)?) 
      ;
  
  propertyListNotEmpty[CommonTree subject]
      : verb objectList (SEMICOLON (verb objectList)?)* -> (^(SUBJECT {new CommonTree(subject)}) ^(PREDICATE verb)  objectList)+
      ;
  
  objectList
      : graphNode ( COMMA graphNode )* -> ^(OBJECT graphNode)+
      ;
  
  verb
  