anchor.diff:  
   function: FUNCTION LEFT_PAREN parameter (COMMA parameter)* RIGHT_PAREN;
   
  -parameter: literal | vector;
  -parameterList
  -    : LEFT_PAREN parameter (COMMA parameter)* RIGHT_PAREN
  -    | LEFT_PAREN RIGHT_PAREN
  -    ;
  +parameter:     literal | vector;
  +parameterList: LEFT_PAREN (parameter (COMMA parameter)*)? RIGHT_PAREN;
   
   // Aggregations
   
  
positive.code: 
  // Label names
  
  labelName: keyword | METRIC_NAME | LABEL_NAME;
  labelNameList
      : LEFT_PAREN labelName (COMMA labelName)* RIGHT_PAREN
      | LEFT_PAREN RIGHT_PAREN
      ;
  
  keyword
      : AND
  
negative.code: // Selectors
  
  instantSelector
      : METRIC_NAME (LEFT_BRACE labelMatcherList? RIGHT_BRACE)?
      | LEFT_BRACE labelMatcherList RIGHT_BRACE
      ;
  
  labelMatcher:         labelName labelMatcherOperator STRING;
  labelMatcherOperator: EQ | NE | RE | NRE;
  labelMatcherList:     labelMatcher (COMMA labelMatcher)*;
  
  matrixSelector: instantSelector TIME_RANGE;
  
  