anchor.diff:  // Unary operations have the same precedence as multiplications
   
   vectorOperation
  -    : vector powOp vectorOperation // pow is right-associative
  +    : <assoc=right> vectorOperation powOp vectorOperation
       | unaryOp vectorOperation
       | vectorOperation multOp vectorOperation
       | vectorOperation addOp vectorOperation
  
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;
  
  