anchor.diff:         * buffer is of type LBRACE, the current Token is an unary minus, so the
          * token type has to be changed.
          */
  -      if(tempToken.type == TokenType.MINUS && operatorBuffer.last.type == TokenType.LBRACE) {
  -        Token newToken = new Token(tempToken.text, TokenType.UNMINUS);
  -        operatorBuffer.add(newToken);
  -        continue;
  -      }
  +//      if(tempToken.type == TokenType.MINUS && operatorBuffer.last.type == TokenType.LBRACE) {
  +//        //TODO This is buggy. Handly unary minus as right-associated operator of higher prcedence.
  +//        //TODO Or check if _isInfixOperator(last).
  +//        Token newToken = new Token(tempToken.text, TokenType.UNMINUS);
  +//        operatorBuffer.add(newToken);
  +//        continue;
  +//      }
         
         /* 
          * If the current token is an operator and it's priority is lower than the priority of the last
  
positive.code:   // Simple Operators
    static final TokenType PLUS = const TokenType._internal("PLUS",1);
    static final TokenType MINUS = const TokenType._internal("MINUS",1);
    static final TokenType UNMINUS = const TokenType._internal("UNMINUS",1);
    static final TokenType TIMES = const TokenType._internal("TIMES",2);
    static final TokenType DIV = const TokenType._internal("DIV",2);
  
    // Complex Operators
    static final TokenType POW = const TokenType._internal("POW",3);
    static final TokenType SQRT = const TokenType._internal("SQRT",3);
    static final TokenType LOG = const TokenType._internal("LOG",3);
    static final TokenType LN = const TokenType._internal("LN",3);
  
negative.code:  * (Reverse Polish Notation) for further processing by a [Parser].
   */
  class Lexer {
    final Map keywords = new Map<String, TokenType>();
    String intBuffer = "";
    String varBuffer = "";
  
  