public static void casteoImplicitoNumero(Simbolo algo1, ZContenedor d2) { if (algo1.obtenerInstanciaTipo() == TiposPrimitivos.tipoNumero && d2 is ZDecimal n2) { algo1.definirValor(new ZNumero((int)n2.obtenerValor())); return; } if (algo1.obtenerInstanciaTipo() == TiposPrimitivos.tipoDicimal && d2 is ZNumero n3) { algo1.definirValor(new ZDecimal(n3.obtenerValor())); return; } throw new SemanticError($"No se puede asignar valor de tipo '{d2.Origen.Nombre}' en variable de tipo '{algo1.obtenerInstanciaTipo().Nombre}'"); }
public static void AsignarValorInicial(Simbolo sim) { if (sim.obtenerInstanciaTipo() == TiposPrimitivos.tipoBool) { sim.definirValor(new ZBool(false)); return; } if (sim.obtenerInstanciaTipo() == TiposPrimitivos.tipoNumero) { sim.definirValor(new ZNumero(0)); return; } if (sim.obtenerInstanciaTipo() == TiposPrimitivos.tipoDicimal) { sim.definirValor(new ZDecimal(0.0)); return; } sim.definirValor(TiposPrimitivos.instanicaNulo); }
public static bool isNumeric(Simbolo algo2) { return(algo2.obtenerInstanciaTipo() == TiposPrimitivos.tipoNumero || algo2.obtenerInstanciaTipo() == TiposPrimitivos.tipoDicimal); }