anchor.diff:   * to be a column delimiter.
    */
   private boolean isElementSeparator() {
  -    if(!(inCurly() || inSquare())) {
  -        return false;
  -    }
       Token prevToken = input.LT(-1);
       Token nextToken = input.LT(2); //2, not 1 because we haven't matched the FILLER yet
       switch(nextToken.getType()) {
  
positive.code:              isPrefixOperator(prevToken) || isPostfixOperator(nextToken) ||
               isLParen(prevToken) || isRParen(nextToken));
  }
  
  private final java.util.Stack<Integer> bracketStack = new java.util.Stack<Integer>();
  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; }
  }
  
  @lexer::header {
  
negative.code:   ;
  
  element_list :
       element (element_separator_list element2)*
    ;
  
  element :
       expr_in_array
    ;
  
  element2 :
       expr_in_array2
    ;
  
  //non-empty
  