Esempio n. 1
0
        // flanzani 8/11/2012
        // IDC_APP_2
        // Agregar funciones por defecto en el framework
        // Creacion de la libreria de funciones Normal
        private static void AgregarLibreriaNormal(TablaSimbolos tablaSimbolos)
        {
            string           nombre;
            string           nombreFunc;
            string           codigo;
            List <FirmaProc> parametros;

            nombre     = "EsPar";
            nombreFunc = string.Format("FrameworkProgramArProgramAr0000001{0}", nombre);
            parametros = new List <FirmaProc>();
            parametros.Add(new FirmaProc("num", NodoTablaSimbolos.TipoDeDato.Numero, false, false));
            codigo = GeneracionCodigoHelpers.ArmarFuncionEsPar(nombreFunc);
            tablaSimbolos.AgregarFuncionDelFramework(nombre, parametros, NodoTablaSimbolos.TipoDeDato.Booleano, codigo, nombreFunc);

            nombre     = "EsImpar";
            nombreFunc = string.Format("FrameworkProgramArProgramAr0000001{0}", nombre);
            parametros = new List <FirmaProc>();
            parametros.Add(new FirmaProc("num", NodoTablaSimbolos.TipoDeDato.Numero, false, false));
            codigo = GeneracionCodigoHelpers.ArmarFuncionEsImpar(nombreFunc);
            tablaSimbolos.AgregarFuncionDelFramework(nombre, parametros, NodoTablaSimbolos.TipoDeDato.Booleano, codigo, nombreFunc);

            nombre     = "Redondear";
            nombreFunc = string.Format("FrameworkProgramArProgramAr0000001{0}", nombre);
            parametros = new List <FirmaProc>();
            parametros.Add(new FirmaProc("num", NodoTablaSimbolos.TipoDeDato.Numero, false, false));
            codigo = GeneracionCodigoHelpers.ArmarFuncionRedondearAEntero(nombreFunc);
            tablaSimbolos.AgregarFuncionDelFramework(nombre, parametros, NodoTablaSimbolos.TipoDeDato.Numero, codigo, nombreFunc);

            nombre     = "Truncar";
            nombreFunc = string.Format("FrameworkProgramArProgramAr0000001{0}", nombre);
            parametros = new List <FirmaProc>();
            parametros.Add(new FirmaProc("num", NodoTablaSimbolos.TipoDeDato.Numero, false, false));
            codigo = GeneracionCodigoHelpers.ArmarFuncionTruncar(nombreFunc);
            tablaSimbolos.AgregarFuncionDelFramework(nombre, parametros, NodoTablaSimbolos.TipoDeDato.Numero, codigo, nombreFunc);
        }
Esempio n. 2
0
        private void ReiniciarCompilador()
        {
            GlobalesCompilador.ReiniciarFilaYColumna();

            GeneracionCodigoHelpers.ReiniciarValoresVariablesAleatorias();

            analizadorSintactico.ReiniciarAnalizadorSintactico();
        }
Esempio n. 3
0
        public static string DefinirFuncionesBasicas()
        {
            StringBuilder strBldr = new StringBuilder();

            strBldr.AppendLine("function FrameworkProgramArProgramAr0000001EscribirBooleano( x : boolean) : string ;");
            strBldr.AppendLine("VAR ");
            strBldr.AppendLine("retorno : string; ");
            strBldr.AppendLine("begin ");
            strBldr.AppendLine("if ( x ) then");
            strBldr.AppendLine("begin ");
            strBldr.AppendLine("\tretorno := 'verdadero'; ");
            strBldr.AppendLine("end ");
            strBldr.AppendLine("else ");
            strBldr.AppendLine("begin ");
            strBldr.AppendLine("\tretorno := 'falso'; ");
            strBldr.AppendLine("end; ");
            strBldr.AppendLine("\tFrameworkProgramArProgramAr0000001EscribirBooleano := retorno; ");
            strBldr.AppendLine("end; ");
            strBldr.AppendLine();

            strBldr.AppendLine("function FrameworkProgramArProgramAr0000001EscribirReal( x : real) : string ;");
            strBldr.AppendLine("VAR ");
            strBldr.AppendLine("aux : string; ");
            strBldr.AppendLine("longitud : integer; ");
            strBldr.AppendLine("begin ");
            //strBldr.AppendLine("aux := FloatToStrF(x, ffFixed,45, 15);");
            strBldr.AppendLine("aux := FormatFloat('#.###################################',x);");

            strBldr.AppendLine("longitud :=    Length(aux);");
            strBldr.AppendLine("while ((longitud > 0) and (aux[longitud] = '0')) do");
            strBldr.AppendLine("begin ");
            strBldr.AppendLine("\tDelete(aux, longitud, 1);");
            strBldr.AppendLine("\tlongitud := longitud - 1;");
            strBldr.AppendLine("end; ");
            strBldr.AppendLine("longitud :=    Length(aux);");
            strBldr.AppendLine("if (aux[longitud] = ',' ) then");
            strBldr.AppendLine("begin ");
            strBldr.AppendLine("\tDelete(aux, longitud, 1);");
            strBldr.AppendLine("end");
            strBldr.AppendLine("else");
            strBldr.AppendLine("begin");
            strBldr.AppendLine("\tif (aux[longitud] = '.') then");
            strBldr.AppendLine("\tbegin");
            strBldr.AppendLine("\t\tDelete(aux, longitud, 1);");
            strBldr.AppendLine("\tend;");

            strBldr.AppendLine("end;");

            strBldr.AppendLine("FrameworkProgramArProgramAr0000001EscribirReal := aux; ");
            strBldr.AppendLine("end; ");
            strBldr.AppendLine();


            strBldr.AppendLine(GeneracionCodigoHelpers.DefinirConversionYChequeoIndiceArreglo());


            return(strBldr.ToString());
        }
Esempio n. 4
0
        // flanzani 8/11/2012
        // IDC_APP_2
        // Agregar funciones por defecto en el framework
        // Creacion de la libreria de funciones matematicas
        private static void AgregarLibreriaMatematica(TablaSimbolos tablaSimbolos)
        {
            string           nombre;
            string           nombreFunc;
            string           codigo;
            List <FirmaProc> parametros;

            nombre     = "Potencia";
            nombreFunc = string.Format("FrameworkProgramArProgramAr0000001{0}", nombre);
            parametros = new List <FirmaProc>();
            parametros.Add(new FirmaProc("num", NodoTablaSimbolos.TipoDeDato.Numero, false, false));
            parametros.Add(new FirmaProc("exp", NodoTablaSimbolos.TipoDeDato.Numero, false, false));
            codigo = GeneracionCodigoHelpers.ArmarFuncionPotencia(nombreFunc);
            tablaSimbolos.AgregarFuncionDelFramework(nombre, parametros, NodoTablaSimbolos.TipoDeDato.Numero, codigo, nombreFunc);

            nombre     = "Raiz";
            nombreFunc = string.Format("FrameworkProgramArProgramAr0000001{0}", nombre);
            parametros = new List <FirmaProc>();
            parametros.Add(new FirmaProc("num", NodoTablaSimbolos.TipoDeDato.Numero, false, false));
            parametros.Add(new FirmaProc("exp", NodoTablaSimbolos.TipoDeDato.Numero, false, false));
            codigo = GeneracionCodigoHelpers.ArmarFuncionRaiz(nombreFunc);
            tablaSimbolos.AgregarFuncionDelFramework(nombre, parametros, NodoTablaSimbolos.TipoDeDato.Numero, codigo, nombreFunc);

            // flanzani 15/11/2012
            // IDC_APP_6
            // Agregar funciones matematicas al framework
            // Agrego la funcion a la libreria matematica
            nombre     = "PI";
            nombreFunc = string.Format("FrameworkProgramArProgramAr0000001{0}", nombre);
            parametros = new List <FirmaProc>();
            codigo     = GeneracionCodigoHelpers.ArmarFuncionPI(nombreFunc);
            tablaSimbolos.AgregarFuncionDelFramework(nombre, parametros, NodoTablaSimbolos.TipoDeDato.Numero, codigo, nombreFunc);

            // flanzani 15/11/2012
            // IDC_APP_6
            // Agregar funciones matematicas al framework
            // Agrego la funcion a la libreria matematica
            nombre     = "ValAbs";
            nombreFunc = string.Format("FrameworkProgramArProgramAr0000001{0}", nombre);
            parametros = new List <FirmaProc>();
            parametros.Add(new FirmaProc("num", NodoTablaSimbolos.TipoDeDato.Numero, false, false));
            codigo = GeneracionCodigoHelpers.ArmarFuncionValorAbsoluto(nombreFunc);
            tablaSimbolos.AgregarFuncionDelFramework(nombre, parametros, NodoTablaSimbolos.TipoDeDato.Numero, codigo, nombreFunc);

            // flanzani 15/11/2012
            // IDC_APP_6
            // Agregar funciones matematicas al framework
            // Agrego la funcion a la libreria matematica
            nombre     = "Seno";
            nombreFunc = string.Format("FrameworkProgramArProgramAr0000001{0}", nombre);
            parametros = new List <FirmaProc>();
            parametros.Add(new FirmaProc("num", NodoTablaSimbolos.TipoDeDato.Numero, false, false));
            codigo = GeneracionCodigoHelpers.ArmarFuncionSeno(nombreFunc, false);
            tablaSimbolos.AgregarFuncionDelFramework(nombre, parametros, NodoTablaSimbolos.TipoDeDato.Numero, codigo, nombreFunc);

            // flanzani 15/11/2012
            // IDC_APP_6
            // Agregar funciones matematicas al framework
            // Agrego la funcion a la libreria matematica
            nombre     = "Coseno";
            nombreFunc = string.Format("FrameworkProgramArProgramAr0000001{0}", nombre);
            parametros = new List <FirmaProc>();
            parametros.Add(new FirmaProc("num", NodoTablaSimbolos.TipoDeDato.Numero, false, false));
            codigo = GeneracionCodigoHelpers.ArmarFuncionCoseno(nombreFunc, false);
            tablaSimbolos.AgregarFuncionDelFramework(nombre, parametros, NodoTablaSimbolos.TipoDeDato.Numero, codigo, nombreFunc);

            // flanzani 15/11/2012
            // IDC_APP_6
            // Agregar funciones matematicas al framework
            // Agrego la funcion a la libreria matematica
            nombre     = "Tangente";
            nombreFunc = string.Format("FrameworkProgramArProgramAr0000001{0}", nombre);
            parametros = new List <FirmaProc>();
            parametros.Add(new FirmaProc("num", NodoTablaSimbolos.TipoDeDato.Numero, false, false));
            codigo = GeneracionCodigoHelpers.ArmarFuncionTangente(nombreFunc, false);
            tablaSimbolos.AgregarFuncionDelFramework(nombre, parametros, NodoTablaSimbolos.TipoDeDato.Numero, codigo, nombreFunc);

            // flanzani 15/11/2012
            // IDC_APP_6
            // Agregar funciones matematicas al framework
            // Agrego la funcion a la libreria matematica
            nombre     = "rSeno";
            nombreFunc = string.Format("FrameworkProgramArProgramAr0000001{0}", nombre);
            parametros = new List <FirmaProc>();
            parametros.Add(new FirmaProc("num", NodoTablaSimbolos.TipoDeDato.Numero, false, false));
            codigo = GeneracionCodigoHelpers.ArmarFuncionSeno(nombreFunc, true);
            tablaSimbolos.AgregarFuncionDelFramework(nombre, parametros, NodoTablaSimbolos.TipoDeDato.Numero, codigo, nombreFunc);

            // flanzani 15/11/2012
            // IDC_APP_6
            // Agregar funciones matematicas al framework
            // Agrego la funcion a la libreria matematica
            nombre     = "rCoseno";
            nombreFunc = string.Format("FrameworkProgramArProgramAr0000001{0}", nombre);
            parametros = new List <FirmaProc>();
            parametros.Add(new FirmaProc("num", NodoTablaSimbolos.TipoDeDato.Numero, false, false));
            codigo = GeneracionCodigoHelpers.ArmarFuncionCoseno(nombreFunc, true);
            tablaSimbolos.AgregarFuncionDelFramework(nombre, parametros, NodoTablaSimbolos.TipoDeDato.Numero, codigo, nombreFunc);

            // flanzani 15/11/2012
            // IDC_APP_6
            // Agregar funciones matematicas al framework
            // Agrego la funcion a la libreria matematica
            nombre     = "rTangente";
            nombreFunc = string.Format("FrameworkProgramArProgramAr0000001{0}", nombre);
            parametros = new List <FirmaProc>();
            parametros.Add(new FirmaProc("num", NodoTablaSimbolos.TipoDeDato.Numero, false, false));
            codigo = GeneracionCodigoHelpers.ArmarFuncionTangente(nombreFunc, true);
            tablaSimbolos.AgregarFuncionDelFramework(nombre, parametros, NodoTablaSimbolos.TipoDeDato.Numero, codigo, nombreFunc);
        }