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); }
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"); } }
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)); } } }
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"); } }