Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
 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);
     }
 }