public override void ValidaTipo(List <ElementoTS> tablaSimbolos, Queue <string> errores) { TipoDato = BuscarTablaSimbolos(tablaSimbolos, id.Token.Lexema, Ambito); char tipo1 = TipoDato; if (TipoDato == 'e') { errores.Enqueue("La variable " + id.Token.Lexema + " no ha sido declarada"); } if (expresion != null) { expresion.Ambito = Ambito; expresion.TipoDato = tipo1; expresion.ValidaTipo(tablaSimbolos, errores); } char tipo2 = expresion.TipoDato; if (tipo1 != tipo2) { errores.Enqueue("El tipo de dato de " + id.Token.Lexema + " en la funcion " + Ambito + " es diferente de la expresion."); } if (Sig != null) { Sig.Ambito = Ambito; Sig.ValidaTipo(tablaSimbolos, errores); } }
public override void ValidaTipo(List <ElementoTS> tablaSimbolos, Queue <string> errores) { if (expresion.Token != null) { expresion.Ambito = Ambito; expresion.ValidaTipo(tablaSimbolos, errores); TipoDato = expresion.TipoDato; } char tipodatofuncion = BuscarTablaSimbolos(tablaSimbolos, Ambito); if (TipoDato != tipodatofuncion) { errores.Enqueue("El tipo de dato que regresa " + expresion.derecha.Token.Lexema + " no es el mismo que el de la funcion " + Ambito); } }
public override void ValidaTipo(List <ElementoTS> tablaSimbolos, Queue <string> errores) { if (expresion != null) { expresion.Ambito = Ambito; expresion.ValidaTipo(tablaSimbolos, errores); } if (Bloque != null) { Bloque.Ambito = Ambito; Bloque.ValidaTipo(tablaSimbolos, errores); } if (Sig != null) { Sig.Ambito = Ambito; Sig.ValidaTipo(tablaSimbolos, errores); } }