Ver Mensaje Individual
  #2 (permalink)  
Antiguo 24/03/2010, 04:39
CalgaryCorpus
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: Iteradores List STL

Comentarios para simplificar el codigo:

1. La comparacion
Código C++:
Ver original
  1. (*itAnterior)->NodeType() != SENTENCIAW  || (*itAnterior)->NodeType() != SENTENCIAW )

parece comparar 2 veces lo mismo. Es asi?

2.
Si declaras el metodo inter() en la clase statement y un block lo derivas de statement, no sera necesario hacer los casts

Código C++:
Ver original
  1. (dynamic_cast<assign*>(*stm))->inter();

y podras hacer, directamente

Código C++:
Ver original
  1. (*stm)->inter()

sin necesidad de preguntar por el tipo antes.

3. La lista esta llena de punteros, has descartado que ellos no sean nulos?
Recomiendo hacer:
Código C++:
Ver original
  1. statement* pstatement = *stm;

y luego comparar pstatement contra 0 (null) y usarlo de ahi en adelante, solo si no es null, en vez de hacer
(*strm)-> .. desreferenciando sin chequear..

En ese caso, la sugerencia 2) quedaria
Código C++:
Ver original
  1. pstatement->inter();