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"); } }
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(); }
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(); }
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(); } }
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(); }