anchor.diff:     * stream and then invokes the shunting yard method to transform this stream
      * into a RPN (reverse polish notation) token stream.
      */
  -  void createRPNStream(String inputString) {
  -    List<Token> infixStream = createTokenStream(inputString);
  -    _tokenStream = shuntingYard(infixStream);
  +  List<Token> tokenizeToRPN(String inputString) {
  +    List<Token> infixStream = tokenize(inputString);
  +    return shuntingYard(infixStream);
     }
   }
   
  
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:     keywords["e"] = TokenType.EFUNC;
      keywords["("] = TokenType.LBRACE;
      keywords[")"] = TokenType.RBRACE;
      keywords["{"] = TokenType.LBRACE;
      keywords["}"] = TokenType.RBRACE;
    }
  
    /**
     * Tokenizes a given input string.
     * Returns a list of [Token] in infix notation.
     */
    List<Token> tokenize(String inputString) {
      List<Token> tempTokenStream = new List<Token>();
  
      String clearedString = inputString.replaceAll(" ", "");
  