anchor.diff:      | BOUND OPEN_BRACE var CLOSE_BRACE -> ^(BOUND var)
       | IRI OPEN_BRACE expression CLOSE_BRACE -> ^(IRI expression)
       | URI OPEN_BRACE expression CLOSE_BRACE -> ^(URI expression)
  -    | BNODE (OPEN_BRACE expression CLOSE_BRACE| nil) -> ^(BNODE expression)
  +    | BNODE (OPEN_BRACE expression CLOSE_BRACE) -> ^(BNODE expression)
  +    | BNODE nil -> BNODE
       | RAND nil -> RAND
       | ABS OPEN_BRACE expression CLOSE_BRACE -> ^(ABS expression)
       | CEIL OPEN_BRACE expression CLOSE_BRACE -> ^(CEIL expression)
  
positive.code:     ;
  
  triplesSameSubject
      : varOrTerm propertyListNotEmpty -> ^(TRIPLES_SAME_SUBJECT ^(SUBJECT varOrTerm) propertyListNotEmpty)
      | triplesNode propertyListNotEmpty? -> ^(TRIPLES_SAME_SUBJECT triplesNode (^(SUBJECT BLANK_NODE) propertyListNotEmpty)?) 
      ;
  
  
negative.code:     ;
  
  subSelect
      : selectClause whereClause solutionModifier	-> ^(SUBSELECT whereClause* solutionModifier*)
      ;
      	
  selectClause
  