Alguien ve algun fallo grave en este codigo.
Eliminacion de Simbolos Inutiles de una Gramatica. PARTE 2
while (J.size() >= 0 ) {
for (set<char>::iterator kk = J.begin(); kk!= J.end(); kk++){
J.erase(*kk);
aux.insert(*kk);
for (set<Produccion, classcomp>::iterator ii = Prod.begin(); ii != Prod.end(); ii++){
Produccion p;
p = *ii;
string str = p.GetDerecha();
if (aux.find(p.GetIzquierda()) != aux.end()) {
for (int i = 0; i < p.GetDerecha().length(); i++) {
if (NoTerminales.find(p.GetNoterminalDerecha(i)) != NoTerminales.end()) {
if (VV.find(p.GetNoterminalDerecha(i)) != VV.end())
aux.clear();
else {
VV.insert(p.GetNoterminalDerecha(i));
J.insert(p.GetNoterminalDerecha(i));
aux.clear();
}
}
if ((p.GetNoterminalDerecha(i) < 'A'))
T.insert(p.GetNoterminalDerecha(i));
}
}
}
}
}
Parece que no entra nunca en el while. Un saludo