anchor.diff:    static const TokenType MINUS = const TokenType._internal("MINUS",1,operator:true);
     static const TokenType TIMES = const TokenType._internal("TIMES",2,operator:true);
     static const TokenType DIV = const TokenType._internal("DIV",2,operator:true);
  -  static const TokenType POW = const TokenType._internal("POW",3,operator:true);
  +  static const TokenType POW = const TokenType._internal("POW",3,leftAssociative:false,operator:true);
     static const TokenType UNMINUS = const TokenType._internal("UNMINUS",5,leftAssociative:false,operator:true);
   
     // Functions
  
positive.code:         }
          continue;
        }
       
        /*
         * Special case for unary minus: If the current token type is MINUS and the last
         * token is of type LBRACE, the current token is considered an unary minus.
         * 
         * This allows unary minus in parenthesis to be parsed correctly.
         * 
         * TODO: This is buggy, find a better solution for unary minus.
         */
        /*
        if( curToken.type.operator && curToken.type == TokenType.MINUS &&
            !operatorBuffer.isEmpty && operatorBuffer.last.type == TokenType.LBRACE) {
          operatorBuffer.add(new Token(curToken.text, TokenType.UNMINUS));
        }
        */
        
        /* 
         * If the current token is an operator and it's priority is lower than the priority of the last
  
negative.code:  *     plusType = TokenType.PLUS;
   * 
   * The type defines the [priority] (precedence) of the token.
   *     (+,-) < (*,/) < (^) < (-u) < functions
   *     
   * It also defines the [associativity] of the token. True stands for
   * left-associative, false for right-associative.
  