anchor.diff:      ;
   
   prologue
  +    /* The tree rewriting rule, as used here, implicitely induces a sorting order */
       : (baseDecl | prefixDecl)* -> ^(PROLOGUE baseDecl* prefixDecl*)
       ;
   
  
positive.code:     ;
      
  modify
      : (WITH iriRef)? (deleteClause insertClause? | insertClause) usingClause* WHERE groupGraphPattern -> ^(MODIFY ^(WITH iriRef)? deleteClause* insertClause* usingClause* ^(WHERE groupGraphPattern))
      ;
    
  deleteClause
  
negative.code:     ;
  
  constructQuery
      : CONSTRUCT constructTemplate datasetClause* whereClause solutionModifier -> ^(CONSTRUCT constructTemplate datasetClause* whereClause* solutionModifier*)
      | CONSTRUCT datasetClause* WHERE groupGraphPattern solutionModifier -> ^(CONSTRUCT datasetClause* ^(WHERE_CLAUSE groupGraphPattern*) solutionModifier*)
      ;
  
  describeQuery
  