anchor.diff:  
   private boolean isElementSeparator() {
       Token prevToken = input.LT(-1);
  -    Token nextToken = input.LT(1);
  +    Token nextToken = input.LT(2); //2, not 1 because we haven't matched the FILLER yet
  +    switch(nextToken.getType()) {
  +    case PLUS:
  +    case MINUS:
  +        if(input.LA(3) != FILLER) {
  +            return true;
  +        }
  +    }
       return !(isBinaryOperator(prevToken) || isBinaryOperator(nextToken) || 
                isPrefixOperator(prevToken) || isPostfixOperator(nextToken) || 
                isLBracket(prevToken) || isRBracket(nextToken));
  
positive.code:   ;
  
  element_separator :
       {isPrevTokenElementSeparator()}? COMMA -> template() "" //delete comma
    |  COMMA                                                   //just echo
    |  {isElementSeparator()}?
          ( {isPrevTokenElementSeparator()}? FILLER            //just echo
          | FILLER -> template(filler={$text}) ",<filler>")    //insert comma
    ;
  
  input_params :
  
negative.code: 
  plus_expr :
       {inParens()}? binary_expr (FILLER? (PLUS | MINUS) FILLER? binary_expr)*
    |  binary_expr ((FILLER? (PLUS | MINUS) FILLER binary_expr) | ((PLUS | MINUS) binary_expr))* //don't allow filler, op, no filler
    ;
  
  binary_expr :
  