Ejemplo n.º 1
0
        public override void ValidarEstaticamente()
        {
            expresion.validarEstaticamente();
            Type tipoExpresion = expresion.calcularTipo();

            if (tipoExpresion != typeof(Hilera))
            {
                throw new LanguageException("Sólo es posible ejecutar un Eval cuando la expresión es de tipo Hilera");
            }
        }
Ejemplo n.º 2
0
        public override void ValidarEstaticamente()
        {
            Type tipoExpresion = expression.calcularTipo();

            if (tipoExpresion.Equals(typeof(void)))
            {
                throw new LanguageException(string.Format("Al parecer intenta mostar un procedimiento o accion, pero que el comando show solo permite mostrar valores"));
            }
            expression.validarEstaticamente();
        }
Ejemplo n.º 3
0
        public override void ValidarEstaticamente()
        {
            expresion.validarEstaticamente();
            Type tipoExpresion = expresion.calcularTipo();

            if (!tipoExpresion.Equals(typeof(Lista)))
            {
                throw new LanguageException("Sólo es posible ejecutar un For cuando la expresión es de tipo Lista");
            }
            tablaDeSimbolos.AbrirBloque();
            cuerpo.ValidarEstaticamente();
            tablaDeSimbolos.CerrarBloque();
        }
Ejemplo n.º 4
0
        public override void ValidarEstaticamente()
        {
            expresion.validarEstaticamente();
            Type tipoExpresion = expresion.calcularTipo();

            if (tipoExpresion != typeof(Puppeteer.EventSourcing.Libraries.Boolean))
            {
                throw new LanguageException("Sólo es posible ejecutar un IF cuando la expresión es de tipo Boolean");
            }
            comandosDelIf.ValidarEstaticamente();
            if (comandosDelElse != null)
            {
                comandosDelElse.ValidarEstaticamente();
            }
        }
Ejemplo n.º 5
0
 public override void ValidarEstaticamente()
 {
     if (expresion is NuevaInstancia)
     {
         string nombreProcedimiento = ((NuevaInstancia)expresion).Clase();
         if (!tablaDeSimbolos.ExisteLaDeclaracion(nombreProcedimiento))
         {
             throw new LanguageException(string.Format("No se encontró declarado el procedimiento {0}, debe declararlo primero.", nombreProcedimiento));
         }
     }
     else
     {
         Type tipoExpresion = expresion.calcularTipo();
         expresion.validarEstaticamente();
         if (!tipoExpresion.Equals(typeof(EventSourcing.Libraries.Void)))
         {
             throw new LanguageException(string.Format("Sólo es posible ejecutar procedimientos pero se está intentando ejecutar erróneamente un valor de tipo {0}", tipoExpresion.FullName));
         }
     }
 }
 public override void ValidarEstaticamente()
 {
     lValue.validarEstaticamente();
     rValue.validarEstaticamente();
 }