anchor.diff:      keywords["e"]= TokenType.EFUNC;
       keywords["("]= TokenType.LBRACE;
       keywords[")"]= TokenType.RBRACE;
  -    tokenStream = new List<Token>();
  -  }
  -
  +    _tokenStream = new List<Token>();
  +  }
  +   
  +  List<Token> get tokenStream =>  _tokenStream;
  +  
     /**
  -   * creates a list of tokens from the given string
  -   */
  -    void createTokenStream(String inputString){
  -
  +   * creates a list of tokens from the given string.
  +   */ 
  +  
  +    List<Token> createTokenStream(String inputString){
  +    List<Token> tempTokenStream = new List<Token>();
  +      
       String clearedString = inputString.replaceAll(" ", "");
       List<String> stringlist = clearedString.splitChars();
       int siInt;
       for (var i=0; i< stringlist.length;i++){
         String si = stringlist[i];
  -      print("Run: $i , si: $si");
         /* check if the current Character is a keyword. If it is a keyword, check if the intBuffer is not empty and add
          * a Value Token for the intBuffer and the corresponding Token for the keyword.
        */
         if(keywords.containsKey(si)){
           // check and or do intBuffer and varBuffer
  -        if(intBuffer.length >0)doIntBuffer();
  -        if(varBuffer.length >0)doVarBuffer();
  -        tokenStream.add(new Token(si,keywords[si]));
  +        if(intBuffer.length >0)doIntBuffer(tempTokenStream);
  +        if(varBuffer.length >0)doVarBuffer(tempTokenStream);
  +        tempTokenStream.add(new Token(si,keywords[si]));
         }else{
  -      // check if the current string is a Number. If it's the case add the string to the intBuffer
  +      // check if the current string is a Number. If it's the case add the string to the intBuffer.
        try {
          siInt = int.parse(si);
  -       // the current string is a number and it is added to the intBuffer
  +       // the current string is a number and it is added to the intBuffer.
          intBuffer = intBuffer.concat(si);
  -       if(varBuffer.length >0)doVarBuffer();
  -       print("was in int case");
  +       if(varBuffer.length >0)doVarBuffer(tempTokenStream);
        } on FormatException {
  -       // the current string is not a number and not a simple keyword, so it has to be a variable or log or ln
  +       
  +      if(si=="."){
  +        intBuffer = intBuffer.concat(si);
  +        continue;
  +      }
  +       // the current string is not a number and not a simple keyword, so it has to be a variable or log or ln.
         if(intBuffer.length >0) {
           /* the intBuffer contains a string and the current string is a variable or part of a complex keyword, so the value is added to the tokenstream
  -         * and the current string is added to the var buffer
  +         * and the current string is added to the var buffer.
            */
  -        doIntBuffer();
  +        doIntBuffer(tempTokenStream);
           varBuffer = varBuffer.concat(si);
  -        //reset the intBuffer
  +        //reset the intBuffer.
           intBuffer ="";
           print("was in text and do int case");
         } else {
  -        // the intBuffer contains no string and the current string is a variable, so both Tokens are added to the tokenStream
  +        // the intBuffer contains no string and the current string is a variable, so both Tokens are added to the tokenStream.
           print("was in text case");
           varBuffer = varBuffer.concat(si);
            }
  
positive.code:       /* if the current token is an operator and it's priority is lower than the priority of the last
         * operator in the operator buffer, than put the operators from the operator buffer into the output
         * stream until you find an operator with a priority lower or equal as the current tokens.
         * Then add the current Token to the operator buffer
         */
        if(tempToken.type.priority < operatorBuffer.last.type.priority){
          while(operatorBuffer.length>0 && operatorBuffer.last.type.priority > tempToken.type.priority){
  
negative.code: 
      return outputStream;
    }
    
    /** 
     * This method invokes the createTokenStream methode to create an infix token stream and then invokes the shunting
     * yards method to transform this stream into an UPN token stream.
     * 
     * Returns  List<Token>.
     */
    createUPNStream(String inputString){
      List<Token> infixStream = createTokenStream(inputString);
      _tokenStream = shuntingYard(infixStream);
    }
  }
  
  class Token{
    //TODO
    var text;
    final TokenType type;
  
    Token(var this.text, TokenType this.type){
    }
  
    String toString(){
  