@Override
    public void validaTipos()
    {
        //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
        this.asignacion.validaTipos();
        this.expresionLogica.validaTipos();
        this.incremento.validaTipos();
        this.bloque.validaTipos();
        
        if(asignacion.tipoDato != tipoDato && expresionLogica.tipoDato == TipoDato.ENTERO
           && incremento.tipoDato != tipoDato && bloque.tipoDato == TipoDato.VACIO){
            
            tipoDato = TipoDato.VACIO;
        }
        else{
            tipoDato = TipoDato.ERROR;
            
            if(asignacion.tipoDato != tipoDato)
            {
                this.setError("Error de tipo en la asignacion "+asignacion.simbolo);
            }
            if (expresionLogica.tipoDato == TipoDato.ENTERO)
            {
                this.setError("Error en la expresion logica "+expresionLogica.simbolo);
            }
            if(incremento.tipoDato != tipoDato)
            {
                this.setError("Error en el incremento "+incremento.simbolo);
            }
            if(bloque.tipoDato == TipoDato.VACIO)
            {
                this.setError("Error de bloque for "+bloque.simbolo); 
            }
        }
        
        if(siguiente != null)
        {
            this.siguiente.validaTipos();
        }
    }