anchor.diff:  error
    : UNEXPECTED_CHAR 
      { 
  -     // Log this, throw an exception or handle this error
  -     // inside your visitor- or listener-class.
  +     throw new RuntimeException("UNEXPECTED_CHAR=" + $UNEXPECTED_CHAR.text); 
      }
    ;
   
  
positive.code:    )?
   ;
  
  expr
   : literal_value
   | BIND_PARAMETER
   | ( ( database_name '.' )? table_name '.' )? column_name
   | unary_operator expr
   | expr binary_operator expr
   | function_name '(' ( K_DISTINCT? expr ( ',' expr )* | '*' )? ')'
   | '(' expr ')'
   | K_CAST '(' expr K_AS type_name ')'
  
negative.code: 
  error_message
   : STRING_LITERAL
   ;
  
  module_argument // TODO check what exactly is permitted here
  