anchor.diff:      ;
   
   triplesSameSubject
  -    : varOrTerm! propertyListNotEmpty[(CommonTree) $varOrTerm.tree]
  -    | triplesNode propertyListNotEmpty[(CommonTree) $triplesNode.tree]?
  +    : varOrTerm propertyListNotEmpty[(CommonTree) $varOrTerm.tree] -> propertyListNotEmpty
  +    | triplesNode propertyListNotEmpty[(CommonTree) $triplesNode.tree]? -> triplesNode propertyListNotEmpty?
       ;
   
   propertyListNotEmpty[CommonTree subject]
  
positive.code: 
  triplesSameSubjectPath
      : varOrTerm propertyListNotEmptyPath[(CommonTree) $varOrTerm.tree] -> ^(TRIPLE propertyListNotEmptyPath)
      | triplesNode propertyListNotEmpty[(CommonTree) $triplesNode.tree]? -> ^(TRIPLE triplesNode* propertyListNotEmpty*)
      ;
    
  propertyListNotEmptyPath[CommonTree subject]
  
negative.code:     ;
  
  expressionList
      : OPEN_BRACE expression ( COMMA expression )* CLOSE_BRACE -> ^(EXPRESSIONLIST expression+)
      | nil -> ^(EXPRESSIONLIST nil)
      ;	
  
  constructTemplate
  