anchor.diff:      ;
   
   prologue
  +    /* The tree rewriting rule, as used here, implicitely induces a sorting order */
       : (baseDecl | prefixDecl)* -> ^(PROLOGUE baseDecl* prefixDecl*)
       ;
   
   baseDecl
       : BASE IRI_REF -> ^(BASE IRI_REF)
  -    ;
  +    ; 
   
   prefixDecl
       : PREFIX PNAME_NS IRI_REF -> ^(PREFIX PNAME_NS IRI_REF)
  
positive.code:     ;
  
  constructQuery
      : CONSTRUCT constructTemplate datasetClause* whereClause solutionModifier -> ^(CONSTRUCT constructTemplate* datasetClause* whereClause* solutionModifier*)
      | CONSTRUCT datasetClause* WHERE groupGraphPattern solutionModifier -> ^(CONSTRUCT datasetClause* ^(WHERE groupGraphPattern*) solutionModifier*)
      ;
  
  describeQuery
  
negative.code: 
  triplesSameSubjectPath
      : varOrTerm propertyListNotEmptyPath -> ^(TRIPLES_SAME_SUBJECT ^(SUBJECT varOrTerm) propertyListNotEmptyPath)
      | triplesNode propertyListNotEmpty? -> ^(TRIPLES_SAME_SUBJECT  triplesNode propertyListNotEmpty?)
      ;
    
  propertyListNotEmptyPath
      : propertyListNotEmptyDetails (SEMICOLON propertyListNotEmptyDetails?)* -> propertyListNotEmptyDetails+
      ;
    
  propertyListNotEmptyDetails
      : verbSimpleOrPath objectList -> ^(PREDICATE  verbSimpleOrPath objectList)
      ;
    
  verbSimpleOrPath
  