anchor.diff:   * @author Juergen Pfundt   (Juergen.Pfundt)
    * @version $Id: Sparql.g 161 2011-05-23 22:14:39Z Juergen.Pfundt@web.de $
    */
  -tree grammar SparqlT;
  +tree grammar SparqlT; 
   
   options {
   tokenVocab=Sparql; // reuse token types
  
positive.code:     ;
  
  orderCondition
      : ^(ORDER_CONDITION ASC e=expression) -> orderCondition(attribute={$ASC.text}, expression={$e.st})
      | ^(ORDER_CONDITION DESC e=expression) -> orderCondition(attribute={$DESC.text}, expression={$e.st})
      | ^(ORDER_CONDITION c=constraint) -> orderCondition(constraint={$c.st})
      | ^(ORDER_CONDITION v=var) -> orderCondition(var={$v.st})
      ;
  
negative.code:     ;
      
  unaryExpression
      : ^(UNARY NEGATION p=primaryExpression) -> unaryExpression(operator={$NEGATION.text}, primaryExpression={$p.st})
      | ^(UNARY PLUS p=primaryExpression) -> unaryExpression(operator={$PLUS.text}, primaryExpression={$p.st})
      | ^(UNARY MINUS p=primaryExpression) -> unaryExpression(operator={$MINUS.text}, primaryExpression={$p.st})
      | ^(UNARY p=primaryExpression) -> unaryExpression(primaryExpression={$p.st})
      ;
  
  primaryExpression 
      : e=brackettedExpression -> primaryExpression(brackettedExpression={$e.st}) 
      | c=builtInCall -> primaryExpression(builtInCall={$c.st}) 
      | i=iriRefOrFunction -> primaryExpression(iriRefOrFunction={$i.st}) 
      | r=rdfLiteral -> primaryExpression(rdfLiteral={$r.st})
      | n=numericLiteral  -> primaryExpression(numericLiteral={$n.st})
      | b=booleanLiteral -> primaryExpression(booleanLiteral={$b.st}) 
      | v=var -> primaryExpression(var={$v.st}) 
      | a=aggregate -> primaryExpression(aggregate={$a.st})
      | u=unaryExpression -> primaryExpression(unaryExpression={$u.st})
      ;
  
  brackettedExpression
      : ^(BRACKETTED_EXPRESSION e=expression) -> brackettedExpression(expression={$e.st})
      ;
  
  builtInCall
  