anchor.diff:      ;
   
   triplesSameSubject
  -    : varOrTerm propertyListNotEmpty[(CommonTree) $varOrTerm.tree] 
  +    : varOrTerm! propertyListNotEmpty[(CommonTree) $varOrTerm.tree]
       | triplesNode propertyListNotEmpty[(CommonTree) $triplesNode.tree]?
       ;
   
  
positive.code:     ;
  
  bindingsClause
      : (BINDINGS (v+=var)* OPEN_CURLY_BRACE ( b+=bindingValueList )* CLOSE_CURLY_BRACE)? -> ^(BINDINGS $v* $b*)?
      ;
      
  bindingValueList
      : OPEN_BRACE (b+=bindingValue)* CLOSE_BRACE	-> ^(BINDINGVALUE $b*)
      ;
      	
  bindingValue
  
negative.code: // $<Parser
  
  query
      : prologue ( selectQuery | constructQuery | describeQuery | askQuery ) bindingsClause EOF -> ^(QUERY prologue selectQuery* constructQuery* describeQuery* askQuery*) bindingsClause*
      | update ( SEMICOLON update)* EOF -> ^(UPDATE update+)
      ;
  
  