anchor.diff:               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 {
  
positive.code: prefix_arg :
       pow_arg
    |  t_NOT t_FILLER? prefix_arg
    |  t_PLUS t_FILLER? prefix_arg
    |  t_MINUS t_FILLER? prefix_arg
    ;
  
  pow_arg :
  
negative.code:   ;
  
  element :
       expr
    ;
  
  //non-empty
  