anchor.diff:  booleanEquallity
       : booleanEquallity ( ( EQ | NE | LE | GE ) booleanEquallity )
       | datasetExpression
  +    | constant
       // typed constant?
       ;
   
  
positive.code: 
  IDENTIFIER : REG_IDENTIFIER | ESCAPED_IDENTIFIER ;
  //regular identifiers start with a (lowercase or uppercase) English alphabet letter, followed by zero or more letters, decimal digits, or underscores
  fragment REG_IDENTIFIER: LETTER(LETTER|'_'|DIGIT)* ; //TODO: Case insensitive??
  //VTL 1.1 allows us to escape the limitations imposed on regular identifiers by enclosing them in single quotes (apostrophes).
  fragment ESCAPED_IDENTIFIER:  QUOTE (~'\'' | '\'\'')+ QUOTE;
  fragment QUOTE : '\'';
  
negative.code: //          component as string role = MEASURE,
  //          component as string role = ATTRIBUTE
  // ]
  renameParam : from=componentRef 'as' to=identifier ( 'role' '=' role )? ;
  
  role : ( 'IDENTIFIER' | 'MEASURE' | 'ATTRIBUTE' ) ;
  
  