public override void Declarar(EscritorC escritor) { string declaracion = Definicion.ObtenerNombreDelTipoParaC() + " "; declaracion += "*" + Definicion.Nombre + ";"; escritor.WriteLine(declaracion); }
public void LeerDefinicion() { DefinicionFuncion.VerificarDefinicion( archivoDefinicion ); Definicion = DefinicionFuncion.Leer( archivoDefinicion ); Definicion.VerificarUnSoloTipo(); Definicion.VerificarValorOReferencia(); //Si es matriz, lista o vector, el tipoDeAcceso lo establece a "R" }
public override void Instanciar(EscritorC escritor) { string instanciacion = string.Empty; switch (Definicion.Tipo) { case Tipo.UInt8: case Tipo.UInt16: case Tipo.UInt32: case Tipo.UInt64: case Tipo.Int8: case Tipo.Int16: case Tipo.Int32: case Tipo.Int64: if (Definicion.TipoDeAcceso == ValorOReferencia.R) { instanciacion = "*"; } instanciacion += Definicion.Nombre + " = " + Valor + ";"; break; case Tipo.Float32: case Tipo.Float64: if (Definicion.TipoDeAcceso == ValorOReferencia.R) { instanciacion = "*"; } instanciacion += Definicion.Nombre + " = 0;\n"; if (Definicion.TipoDeAcceso == ValorOReferencia.R) { instanciacion += "*"; } instanciacion += Definicion.Nombre + " += " + Valor + ";"; break; case Tipo.CadenaPascal: case Tipo.CadenaC: instanciacion = Definicion.ObtenerNombreDelTipoParaC() + " " + Definicion.Nombre + "[] = \"" + Valor + "\";"; break; case Tipo.Booleano: if (Definicion.TipoDeAcceso == ValorOReferencia.R) { instanciacion = "*"; } instanciacion += Definicion.Nombre + " = " + (UltimoElementoUno()? "true;" : "false;"); break; case Tipo.Char: if (Definicion.TipoDeAcceso == ValorOReferencia.R) { instanciacion = "*"; } instanciacion += Definicion.Nombre + " = '" + Valor + "';"; break; } escritor.WriteLine(instanciacion); }
public ActionResult Crear(Definicion definicion) { if (ModelState.IsValid) { repositorio.AgregarPalabraDefinicion(definicion); return(RedirectToAction("Index")); } return(View(definicion)); }
public void Desdifucificacion(double length = 2) { Definicion metodoDesdifusificacion = MetodosDesdifusificacion.Metodos[MetodoD]; double resultado; foreach (var item in Variables.Where(x => x.Tipo == TipoVariable.Salida)) { resultado = metodoDesdifusificacion(item, length); SalidaDef[item.Nombre] = resultado; } }
public override void PedirMemoria(EscritorC escritor) { string pedido; string varFila = Definicion.Nombre + "Fila"; pedido = Definicion.Nombre + " = " + "malloc2( sizeof(" + Definicion.ObtenerNombreDelTipoParaC() + "*)*" + cantFilas + ", true );"; escritor.WriteLine(pedido); escritor.WriteLine("int " + varFila + ";"); escritor.For(varFila + " = 0", varFila + " < " + cantFilas, varFila + "++"); escritor.WriteLine(Definicion.Nombre + "[" + varFila + "] = malloc2( sizeof(" + Definicion.ObtenerNombreDelTipoParaC() + ")*" + cantColumnas + ", true);"); escritor.FinFor(); }
public override void Declarar(EscritorC escritor) { string declaracion = string.Empty; declaracion = Definicion.ObtenerNombreDelTipoParaC() + " "; if (Definicion.Tipo != Tipo.CadenaC && Definicion.Tipo != Tipo.CadenaPascal) { if (Definicion.TipoDeAcceso == ValorOReferencia.R) { declaracion += "*"; } declaracion += Definicion.Nombre + ";"; escritor.WriteLine(declaracion); } }
private void ConstruirDefinicionTabla(String[] sColumnsPrimary) { defTabla = new Definicion(); FilaDefinicion fd = null; for (int i = 0; i < dtTabla.Rows.Count; i++) { fd = new FilaDefinicion(); fd.NombreCampo = dtTabla.Rows[i]["COLUMN_NAME"].ToString(); fd.TipoBD = dtTabla.Rows[i]["DATA_TYPE"].ToString().Substring(0, 1).ToUpper() + dtTabla.Rows[i]["DATA_TYPE"].ToString().Substring(1, dtTabla.Rows[i]["DATA_TYPE"].ToString().Length - 1).ToLower(); if ((fd.TipoBD.ToLower() == "numeric" || fd.TipoBD.ToLower() == "decimal") || ((dtTabla.Rows[i]["CHARACTER_MAXIMUM_LENGTH"] != DBNull.Value && Convert.ToDouble(dtTabla.Rows[i]["CHARACTER_MAXIMUM_LENGTH"]) > 0) && (fd.TipoBD.ToLower() != "bit" && fd.TipoBD.ToLower() != "int" && fd.TipoBD.ToLower() != "datetime"))) { fd.Tamano = Convert.ToInt32(dtTabla.Rows[i]["CHARACTER_MAXIMUM_LENGTH"] != DBNull.Value && dtTabla.Rows[i]["CHARACTER_MAXIMUM_LENGTH"].ToString() != "0" ? dtTabla.Rows[i]["CHARACTER_MAXIMUM_LENGTH"] : (dtTabla.Rows[i]["NUMERIC_PRECISION"] != DBNull.Value ? dtTabla.Rows[i]["NUMERIC_PRECISION"] : -1)); fd.Escala = Convert.ToInt32(dtTabla.Rows[i]["NUMERIC_SCALE"] != DBNull.Value && dtTabla.Rows[i]["NUMERIC_SCALE"].ToString() != "0" ? dtTabla.Rows[i]["NUMERIC_SCALE"] : -1); } else { fd.Tamano = -1; fd.Escala = -1; } fd.ClavePrimaria = Convert.ToBoolean(dtTabla.Rows[i]["IS_PRIMARY_KEY"]); fd.ClaveForanea = Convert.ToBoolean(dtTabla.Rows[i]["IS_FOREIGN_KEY"]); fd.IsNotNull = !Convert.ToBoolean(dtTabla.Rows[i]["IS_NULLABLE"]); setOpcionesSegunTipoDato(ref fd); defTabla.Filas.Add(fd); } //Si la tabla no tiene primary key definida se establece por defecto la primer columna como primary key if (!defTabla.Filas.Exists(pk => pk.ClavePrimaria == true)) { defTabla.Filas.ToArray()[0].ClavePrimaria = true; } ReferenciaDefinicion rd = null; for (int i = 0; i < dtReferencias.Rows.Count; i++) { rd = new ReferenciaDefinicion(); rd.TablaPadre = dtReferencias.Rows[i]["parentTable"].ToString(); rd.ColumnaPadre = dtReferencias.Rows[i]["parentColumn"].ToString(); rd.TablaReferenciada = dtReferencias.Rows[i]["referencedTable"].ToString(); rd.ColumnaReferenciada = dtReferencias.Rows[i]["referencedColumn"].ToString(); defTabla.Referencias.Add(rd); } }
private void EscribirReferenciaExternaDeLaFuncion( EscritorC escritor ) { escritor.WriteLine( "extern " + Definicion.GenerarPrototipo() + ";" ); escritor.WriteLine("extern long long timer();"); }
public ProduccionTipoDatoArchivo() : base(@".\produccionesTipoDeDato.txt") { Definicion definicionActual = null; int count = 0; foreach (String linea in Lineas) { count++; if (count == Lineas.Length) { if (linea.Substring(0, 2) == "->") { if (definicionActual != null) { definicionActual.AddProduccion(new Produccion(linea.Substring(3, (linea.Length - 3)))); } } if (definicionActual != null) { Definiciones.Add(definicionActual.GetAsObject()); // MessageBox.Show(definicionActual.ToString()); definicionActual = null; } } else { if (linea.Length > 3) { //Se trata de una definicion de una instruccion if (linea.Substring(0, 3) == "-->") { if (definicionActual == null) { definicionActual = new Definicion(linea.Substring(4, (linea.Length - 4))); } else { Definiciones.Add(definicionActual.GetAsObject()); // MessageBox.Show(definicionActual.ToString()); definicionActual = null; definicionActual = new Definicion(linea.Substring(4, (linea.Length - 4))); } } //Se trata de una produccion de la definicion else if (linea.Substring(0, 2) == "->") { if (definicionActual != null) { definicionActual.AddProduccion(new Produccion(linea.Substring(3, (linea.Length - 3)))); } } } } } Conexion con = Conexion.getInstancia(); con.EjecutarQuery("DELETE FROM produccionesTipoDeDato;"); foreach (Definicion d in Definiciones) { con.EjecutarQuery(d.getQuery("produccionesTipoDeDato")); } }