anchor.diff:      | ^(TRIPLES_NODE ^(SUBJECT BLANK_NODE) p=propertyListNotEmpty) -> triplesNode(subject={"[ ]"}, propertyListNotEmpty={$p.st})
       ;
   
  -graphNode
  +graphNode 
       : v=varOrTerm -> graphNode(varOrTerm={$v.st}) 
       | t=triplesNode -> graphNode(triplesNode={$t.st})
       ;
  
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:  * @author Juergen Pfundt   (Juergen.Pfundt)
   * @version $Id: Sparql.g 161 2011-05-23 22:14:39Z Juergen.Pfundt@web.de $
   */
  tree grammar SparqlT; 
  
  options {
  tokenVocab=Sparql; // reuse token types
  