public void moveNext() throws IOException, TokenizerException{
        
        while (Character.isWhitespace(scanner.current())){ // skip whitespace.
            scanner.moveNext();
        }

        char c = scanner.current();

        if (c == Scanner.EOF){ // handle end of file.
            current = new Lexeme(Scanner.EOF, Token.EOF); 

        }else if (dictionary.containsKey(c)){ // handle dictionary items.
            current = new Lexeme(c, dictionary.get(c)); 
            scanner.moveNext();
        }else if (Character.isDigit(c)){ // handle integer literals.
            double number=0;
            
            while (Character.isDigit(c)){
                number*=10; // each pass, multiply the number with 10..
                number +=  Character.getNumericValue(c);
                scanner.moveNext();
                c = scanner.current();
            }
            current = new Lexeme(number, Token.INT_LIT); 

        }else if (Character.isLetter(c)){ // handle identifiers.
            String word = new String();
            while (Character.isLetter(c)){
                word+=c;
                scanner.moveNext();
                c = scanner.current();
            }
            current = new Lexeme (word, Token.IDENT);

        }else{
            System.out.println("Tokenizer error! Unknown token:" + c);
        }

        // still unsure about null ...

    }