private String[] separarPorComas(  String exp ){
        if( exp.isEmpty() ) {
            error=true;
            strError.append("Expresión vacía.\n");
            return null;
        }
        exp=exp.trim();
        List<String> ans=new ArrayList<>();
        if( exp.charAt(0)=='(' && exp.charAt(exp.length()-1)==')' ) {
            exp=exp.substring(1, exp.length()-1);
        }
        int count=0, count2=0, last=0;
        for( int i=0; i<exp.length(); i++ ) {
            if( exp.charAt(i)=='{' ) {
                count--;
            } else if( exp.charAt(i)=='}' ) {
                count++;
            } else if( exp.charAt(i)=='(' ) {
                count2--;
            } else if( exp.charAt(i)==')' ) {
                count2++;
            }
            if( count>0 ) {
                error=true;
                strError.append("Parentesis { faltante en la expresión ").
                        append(exp).append(".\n");
                return null;
            }
            if( count2>0 ) {
                error=true;
                strError.append("Parentesis ( faltante en la expresión ").
                        append(exp).append(".\n");
                return null;
            }
            if( count==0 && count2==0 && exp.charAt(i)==',' ) {
                ans.add(exp.substring(last, i).trim());
                last=i+1;
            }
        }
        if( count<0 ) {
            error=true;
            strError.append("Parentesis } faltante en la expresión ").
            append(exp).append(".\n");
            return null;
        }
        if( count2<0 ) {
            error=true;
            strError.append("Parentesis ( faltante en la expresión ").
            append(exp).append(".\n");
            return null;
        }
        ans.add(exp.substring(last, exp.length()).trim());
        String ret[]=new String[ans.size()];
        for( int i=0; i<ret.length; i++ ) {
            ret[i]=ans.get(i);
        }
        return ret;
    }