anchor.diff:      ;
   
   regexExpression
  -    : REGEX OPEN_BRACE expression COMMA expression ( COMMA expression )? CLOSE_BRACE -> ^(REGEX expression+)
  +    : REGEX OPEN_BRACE expression COMMA expression ( COMMA expression )? CLOSE_BRACE -> ^(REGEX expression*)
       ;
       
   subStringExpression
  -    : SUBSTR OPEN_BRACE expression COMMA expression ( COMMA expression )? CLOSE_BRACE -> ^(SUBSTR expression+)
  +    : SUBSTR OPEN_BRACE expression COMMA expression ( COMMA expression )? CLOSE_BRACE -> ^(SUBSTR expression*)
       ;
       
   existsFunction
  
positive.code:     ;   
      
  load 	  
      : LOAD SILENT? iriRef ( INTO graphRef )? -> ^(LOAD SILENT? iriRef graphRef?)
      ;
      
  clear
      : CLEAR  SILENT? graphRefAll -> ^(CLEAR SILENT? graphRefAll)
      ;
      
  drop
      : DROP SILENT? graphRefAll -> ^(DROP SILENT? graphRefAll)
      ; 
  
  create
      : CREATE SILENT? graphRef -> ^(CREATE SILENT? graphRef)
      ;
      
  add
      : ADD SILENT? graphOrDefault TO graphOrDefault -> ^(ADD SILENT? graphOrDefault graphOrDefault)
      ;
      
  move
      : MOVE SILENT? graphOrDefault TO graphOrDefault -> ^(MOVE SILENT? graphOrDefault graphOrDefault)
      ;
      
  copy
      : COPY SILENT? graphOrDefault TO graphOrDefault -> ^(COPY SILENT? graphOrDefault graphOrDefault)
      ;
  
  insert
  
negative.code: 
  triplesSameSubjectPath
      : varOrTerm propertyListNotEmptyPath[(CommonTree) $varOrTerm.tree] -> ^(TRIPLE propertyListNotEmptyPath)
      | triplesNode propertyListNotEmpty[(CommonTree) $triplesNode.tree]? -> ^(TRIPLE triplesNode* propertyListNotEmpty*)
      ;
    
  propertyListNotEmptyPath[CommonTree subject]
  