public void nextTaken() throws ParseException {
        while (isBlank()) {
            nextChar();
        }

        if (isOperand()) {
            operand = 0;
            while (isOperand()) {
                if (operand > Integer.MAX_VALUE / 10) {
                    throw new ParseException("Too mach value of operand: "
                            + Integer.toString(operand) + (character - '0') + "...", position);
                }
                operand = operand * 10 + (character - '0');
                nextChar();
            }
            curentToken = Token.OPERAND;
            return;
        }

        switch (character) {
            case '+':
                curentToken = Token.PLUS;
                break;
            case '-':
                curentToken = Token.MINUS;
                break;
            case '*':
                curentToken = Token.MULTIPLICATION;
                break;
            case -1:
                curentToken = Token.END;
                break;
            default:
                throw new ParseException("Illegal character \"" + (char) character + "\"", position);
        }
        nextChar();
    }