public Nodo quebrarExpressaoRegular(String er, int altura, Nodo n) {
        int parenteses = 0, inicio = 0, fim;
        boolean a = false;
        for (int i = 0; i < er.length(); i++) {
            char c = er.charAt(i);
            if ("(".charAt(0) == c) {
                parenteses++;
                a = true;
                if (parenteses == 1) {
                    inicio = i;
                }
            } else if (")".charAt(0) == c) {
                parenteses--;
                if (parenteses == 0) {
                    fim = i;
                    n.setAltura(altura);
                    String carac = er.substring(inicio + 1, fim);
                    if (carac.length() > 1) {
                        Nodo nodo = quebrarExpressaoRegular(carac, altura + 1, new Nodo());
                        if (nodo.getCarac().equalsIgnoreCase("") == false) {
                            n.addNodo(nodo);
                        }
                    }
                    n.setCarac(n.getCarac() + "§");
                }
            } else if (parenteses == 0) {
                n.setCarac(n.getCarac() + c);
            }
        }
        return n;
    }