private double parseLevel1() throws ParsingException {

        if (tipoTokenActual == TOKEN_TYPE.VARIABLE) {
            TOKEN_TYPE tokenTemp = tipoTokenActual;
            String tokenNow = token;/*new String(token);*/

            int temp_index = i;

            getToken();
            if (token.equals("=")) {
                if (isFunction(tokenNow)) {
                    throw new ParsingException("reserved word used as identifier '" + token + "'", i, ErrorType.IDENTIFICADOR_COMO_PALABRA_RESERVADA);
                } else if (userVar.isConstant(tokenNow)) {
                    throw new ParsingException("cannot assign a value to const variable '" + tokenNow + "'", i, ErrorType.ASIGNACION_DE_CONSTANTE);
                } else if (tokenNow.equals("e")) {
                    throw new ParsingException("cannot assign a value to const variable '" + tokenNow + "'", i, ErrorType.ASIGNACION_DE_CONSTANTE);
                } else if (tokenNow.equals("pi")) {
                    throw new ParsingException("cannot assign a value to const variable '" + tokenNow + "'", i, ErrorType.ASIGNACION_DE_CONSTANTE);
                } else if (tokenNow.equals("g")) {
                    throw new ParsingException("cannot assign a value to const variable '" + tokenNow + "'", i, ErrorType.ASIGNACION_DE_CONSTANTE);
                } else if (tokenNow.equals("random")) {
                    throw new ParsingException("cannot assign a value to const variable '" + tokenNow + "'", i, ErrorType.ASIGNACION_DE_CONSTANTE);
                }
                getToken();

                double r_temp = parseLevel2();
                if (userVar.addVar(tokenNow, r_temp) == false) {
                    throw new ParsingException("Defining variable failed", i, ErrorType.DEFINICION_DE_VARIABLE_FALLIDA);
                } else {
                    return r_temp;
                }
            } else {
                // No era una asignación, hay que recuperar el índex:
                i = temp_index;
                token = tokenNow;
                tipoTokenActual = tokenTemp;
            }
        }
        return parseLevel2();
    }