anchor.diff:  //non-empty
   element_separator_list :
        t_FILLER? t_COMMA t_FILLER? //just echo
  -  |  element_separator_filler //insert comma
  -  ;
  -
  -element_separator_filler :
  -     {isElementSeparator()}? { offsetTracker.recordOffsetChange(0, -1); offsetTracker.advanceInLine(1); } t_FILLER -> template(filler={$text}) ",<filler>" //insert comma
  +  |  {isElementSeparator()}? { offsetTracker.recordOffsetChange(0, -1); offsetTracker.advanceInLine(1); } t_FILLER -> template(filler={$text}) ",<filler>" //insert comma
     ;
   
   //non-empty
  
positive.code: private boolean inParens() { return !bracketStack.isEmpty() && bracketStack.peek() == LPAREN; }
  private boolean inCurly() { return !bracketStack.isEmpty() && bracketStack.peek() == LCURLY; }
  private boolean inSquare() { return !bracketStack.isEmpty() && bracketStack.peek() == LSQUARE; }
  private boolean notInBrackets() { return bracketStack.isEmpty(); }
  }
  
  @lexer::header {
  
negative.code:  * to be a column delimiter.
   */
  private boolean isElementSeparator() {
      if(!(inCurly() || inSquare())) {
          return false;
      }
      Token prevToken = input.LT(-1);
  