Exemple #1
0
        public override void Declarar(EscritorC escritor)
        {
            string declaracion = Definicion.ObtenerNombreDelTipoParaC() + " ";

            declaracion += "*" + Definicion.Nombre + ";";
            escritor.WriteLine(declaracion);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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();
        }
Exemple #4
0
        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);
            }
        }