anchor.diff:      ;
   
   pathMod
  -    : (ASTERISK | QUESTION_MARK | PLUS | OPEN_CURLY_BRACE (integer (COMMA (CLOSE_CURLY_BRACE | integer CLOSE_CURLY_BRACE) | CLOSE_CURLY_BRACE) | COMMA integer CLOSE_CURLY_BRACE))
  +    : QUESTION_MARK | ASTERISK | PLUS 
       ;
   
   pathPrimary
  -    : iriRef | A | NEGATION pathNegatedPropertySet | OPEN_BRACE path CLOSE_BRACE
  +    : iri | A | NEGATION pathNegatedPropertySet | DISTINCT? OPEN_BRACE path CLOSE_BRACE
       ;
   
   pathNegatedPropertySet
  
positive.code: // $<Parser
  
  query
      : prologue (selectQuery | constructQuery | describeQuery | askQuery) bindingsClause EOF
      | update (SEMICOLON update?)* EOF
      ;
  
  prologue
  
negative.code:     ;
  
  graphTerm
      : iri | rdfLiteral | numericLiteral | booleanLiteral | blankNode | nil
      ;
      
  nil
  