Пример #1
0
        private bool check_etiquetas()
        {
            int size_array = arreglo_etiquetas.Count;

            for (int i = 0; i < size_array; i++)
            {
                Validador_Etiquetas ve = (Validador_Etiquetas)arreglo_etiquetas[i];
                ///Console.WriteLine(ve.Get_Etiqueta_Entrada() + "!=" + ve.Get_Etiqueta_Salida());
                if (ve.Get_Etiqueta_Entrada() != ve.Get_Etiqueta_Salida())
                {
                    return(false);
                }
            }
            return(true);
        }
Пример #2
0
 private static void mostrararreglo()
 {
     if (arreglo_etiquetas.Count != 0)
     {
         int size_array = arreglo_etiquetas.Count;
         for (int i = 0; i < size_array; i++)
         {
             Validador_Etiquetas ve = (Validador_Etiquetas)arreglo_etiquetas[i];
             Console.WriteLine("Etiqueta Entrada: " + ve.Get_Etiqueta_Entrada() + " Linea Etiqueta Entrada: " + ve.Get_Linea_Entrada() + " Etiqueta Salida: " + ve.Get_Etiqueta_Salida() + " Linea Etiqueta Salida: " + ve.Get_Linea_Salida());
         }
     }
     else
     {
         Console.WriteLine("Arreglo vacio");
     }
 }
Пример #3
0
 public static void EtiquetasAdd(string v1, int v2, int linea)
 {
     if (arreglo_etiquetas.Count != 0)
     {
         if (v2 == 1)
         {
             arreglo_etiquetas.Add(new Validador_Etiquetas(v1, linea, null, 0));
         }
         else if (v2 == 0)
         {
             int state      = 0;
             int size_array = arreglo_etiquetas.Count;
             for (int i = 0; i < size_array; i++)
             {
                 if (v2 == 0)
                 {
                     Validador_Etiquetas ve = (Validador_Etiquetas)arreglo_etiquetas[i];
                     if (ve.Get_Etiqueta_Entrada() == v1 && ve.Get_Etiqueta_Salida() == null)
                     {
                         ve.Set_Etiqueta_Salida(v1);
                         ve.Set_Linea_Salida(linea);
                         state = 1;
                         break;
                     }
                 }
             }
             if (state == 0)
             {
                 arreglo_etiquetas.Add(new Validador_Etiquetas(null, 0, v1, linea));
             }
         }
     }
     else
     {
         if (v2 == 1)
         {
             arreglo_etiquetas.Add(new Validador_Etiquetas(v1, linea, null, 0));
         }
         else if (v2 == 0)
         {
             arreglo_etiquetas.Add(new Validador_Etiquetas(null, 0, v1, linea));
         }
     }
 }
Пример #4
0
        private void validador_comandos()
        {
            ///Linea

            Cola = new ArrayList();
            String tipo   = "";
            String accion = "";
            String nombre = "";
            String texto  = "";
            String ruta   = "";

            if (arreglo_etiquetas.Count != 0)
            {
                int size_array             = arreglo_etiquetas.Count;
                AbstractAutomata automata3 = new Linea(F_Linea, Tabla_Linea);
                for (int i = 1; i < size_array; i++)
                {
                    Validador_Etiquetas ve = (Validador_Etiquetas)arreglo_etiquetas[i];
                    for (int j = ve.Get_Linea_Entrada(); j < ve.Get_Linea_Salida(); j++)
                    {
                        bool valida1 = automata3.RecognizeToken(prueba[j].ToString(), j, true);
                        if (valida1)
                        {
                            ///Console.WriteLine("Cadena Valida");
                            //Console.WriteLine("Comando encontrado: " + automata3.Retornar_Palabra_Concatenada());
                            String    value      = automata3.Retornar_Palabra_Concatenada();
                            Char[]    delimiter  = { Convert.ToChar(34), '&' };
                            String[]  substrings = value.Split(delimiter);
                            ArrayList array_sub1 = new ArrayList();
                            foreach (var substring in substrings)
                            {
                                if (substring != "")
                                {
                                    ///Console.WriteLine(substring);
                                    array_sub1.Add(substring);
                                }
                            }
                            //Console.WriteLine(array_sub1[0].ToString()+"=="+array_sub1[2].ToString());
                            if (array_sub1[0].ToString() == array_sub1[2].ToString())
                            {
                                switch (array_sub1[0].ToString())
                                {
                                case "tipo":
                                    tipo = array_sub1[1].ToString();
                                    break;

                                case "accion":
                                    accion = array_sub1[1].ToString();
                                    break;

                                case "nombre":
                                    nombre = array_sub1[1].ToString();
                                    break;

                                case "texto":
                                    texto = array_sub1[1].ToString();
                                    if (texto == null)
                                    {
                                        texto = "";
                                    }
                                    break;

                                case "ruta":
                                    ruta = array_sub1[1].ToString();
                                    break;
                                }
                                ArrayList aux = automata3.RetornarToken();
                                aux.Add(automata3.Retornar_Palabra_Concatenada());
                                TokensAdd(aux);
                            }
                            else
                            {
                                Console.WriteLine("aalgo anda mal");
                            }
                        }
                        else
                        {
                            ///Console.WriteLine(automata3.Retornar_Palabra_Concatenada());
                            String    value      = automata3.Retornar_Palabra_Concatenada();
                            Char[]    delimiter  = { Convert.ToChar(34), '&' };
                            String[]  substrings = value.Split(delimiter);
                            ArrayList array_sub1 = new ArrayList();
                            foreach (var substring in substrings)
                            {
                                if (substring != "")
                                {
                                    ///Console.WriteLine(substring);
                                    array_sub1.Add(substring);
                                }
                            }
                            try
                            {
                                ///Console.WriteLine(array_sub1.Count);
                                if (array_sub1.Count >= 1 && array_sub1.Count < 3)
                                {
                                    if (array_sub1[0].ToString() == "comando" || array_sub1[array_sub1.Count - 1].ToString() == "lfscript")
                                    {
                                    }
                                    else
                                    {
                                        //Console.WriteLine("Error");
                                        ArrayList e = new ArrayList();
                                        e.Add(new Errores("", "", array_sub1[array_sub1.Count - 1].ToString(), "Cadena no valida"));
                                        concatenar_array(e);
                                    }
                                }
                            }
                            catch {
                            }
                        }
                    }
                    Cola.Add(new Comandos_Cola(tipo, accion, nombre, texto, ruta));
                }
                concatenar_array(automata3.RetornarError());
                arreglo_errores_linea.Add(automata3.RetornarError());
            }
            else
            {
                Console.WriteLine("Arreglo vacio");
            }
        }