public void GenerarSalidaCM(HashSet <string> InventarioCM, List <string> Archivos, string App, ProcesoDto pdt) { ProcesoAvanceDto pdtoA = new ProcesoAvanceDto(); Proceso proc = new Proceso(); double total = Archivos.Count(); double avance = 27 / total; for (int i = 0; i <= Archivos.Count() - 1; i++) { //Aquí van a ir los parametros para iniciar string Ruta = Archivos[i]; string Archivo = Path.GetFileName(Ruta); int NoLinea = 0; RevisaLinea datosLinea = new RevisaLinea(); //Empezar a leer el archivo using (StreamReader sr = new StreamReader(Ruta)) { while (sr.Peek() >= 0) { string lineaCodigo = sr.ReadLine().Trim(); //Contar No. Linea ++NoLinea; if (NoLinea == 1639) { NoLinea = NoLinea; } if (!String.IsNullOrEmpty(lineaCodigo)) { //Actualizar el nuevo VerificaComentarios lineaCodigo = VerCom.BuscarComentario(lineaCodigo); if (!String.IsNullOrEmpty(lineaCodigo)) { datosLinea.ObtenerSalida(lineaCodigo, Archivo, InventarioCM, Resultado, NoLinea, Ruta, Librerias); } } } } proc.SeteaAvance("En Proceso", "OK", "OK", Math.Round((72 + avance * i), 0).ToString(), "70", "", "Recuperando Datos", pdtoA, pdt); proc.ActualizaProcesoAvance(pdtoA, pdt); } proc.SeteaAvance("En Proceso", "OK", "OK", "OK", "70", "", "Recuperando Datos", pdtoA, pdt); proc.ActualizaProcesoAvance(pdtoA, pdt); GuardaProcesoCM(pdtoA, pdt, Resultado); //System.IO.File.WriteAllLines(@"C:\INFONAVIT\ClasesMetodos.txt", Resultado); }
//Obtener los datos de la Función actual private void ObtenerDatosFuncion(RevisaLinea DatosLinea, string LineaCodigo, string LineaOriginal, string Archivo) { try { DatosLinea.TipoPadre = "Clase"; DatosLinea.BibPadre = Archivo; DatosLinea.ObjPadre = Archivo; string Funcion = em.ExtraerNombreFuncion(LineaOriginal); DatosLinea.TipoHijo = "Funcion"; DatosLinea.BibHijo = Archivo; DatosLinea.ObjHijo = Funcion; } catch (Exception ex) { Console.WriteLine(ex); } }
//Obtener los datos del Evento actual private void ObtenerDatosEvento(RevisaLinea DatosLinea, string LineaCodigo, string LineaOriginal, string Archivo) { try { DatosLinea.TipoPadre = "Archivo"; DatosLinea.BibPadre = Archivo; DatosLinea.ObjPadre = Archivo; DatosLinea.TipoHijo = "Evento"; DatosLinea.BibHijo = Archivo; string Evento = em.ExtraerNombreEvento(LineaOriginal); DatosLinea.ObjHijo = Evento; } catch (Exception ex) { Console.WriteLine(ex); } }
public HashSet <string> GenerarInventarioCM(string Ruta, ProcesoDto pdto) { RevisaLinea DatosInventario = new RevisaLinea(); try { string Archivo = Path.GetFileName(Ruta); Archivo = Regex.Replace(Archivo, @"\.\w+", string.Empty).Trim(); using (StreamReader sr = new StreamReader(Ruta)) { while (sr.Peek() >= 0) { string lineaCodigo = sr.ReadLine().Trim(); if (!String.IsNullOrEmpty(lineaCodigo)) { //if (lineaCodigo.IndexOf("oWorkgroup") > -1) // lineaCodigo = lineaCodigo; lineaCodigo = VerCom.BuscarComentario(lineaCodigo); if (!String.IsNullOrEmpty(lineaCodigo)) { DatosInventario = DatosInventario.ObtenerInventario(lineaCodigo, Librerias); if (DatosInventario.EsValido) { InventarioCM.Add((string.IsNullOrEmpty(DatosInventario.NombreEspacio) ? Archivo : DatosInventario.NombreEspacio) + "|" + DatosInventario.Nombre + "|" + DatosInventario.Tipo); } } } } } }catch (Exception Err) { EscribeLogWS("ParseadorCM.GenerarInventarioCM " + Err.Message.ToString()); ProcesoAvanceDto pdtoA = new ProcesoAvanceDto(); Proceso proc = new Proceso(); proc.SeteaAvance("Error", "OK", "X", "--", "--", Err.Message.ToString(), "Error al realizar la descompresión del archivo", pdtoA, pdto); proc.ActualizaProcesoAvance(pdtoA, pdto); } return(InventarioCM); }
//Obtener los datos del Objeto actual private void ObtenerDatosObjeto(RevisaLinea DatosLinea, string LineaCodigo, string LineaOriginal, string Archivo) { try { DatosLinea.TipoPadre = "Metodo"; DatosLinea.BibPadre = Archivo; string Metodo = em.ExtraerNombreMetodo(LineaOriginal); DatosLinea.ObjPadre = Metodo; DatosLinea.TipoHijo = "Objeto"; DatosLinea.BibHijo = Metodo; string Objeto = em.ExtraerNombreObjeto(LineaOriginal); DatosLinea.ObjHijo = Objeto; } catch (Exception ex) { Console.WriteLine(ex); } }
//Obtener los datos de la Clase actual private void ObtenerDatosClase(RevisaLinea DatosLinea, string LineaOriginal, string Archivo, string Extension) { try { if (!string.IsNullOrEmpty(UltimoMetodo) && Nivel > 1) { DatosLinea.TipoPadre = "Metodo"; DatosLinea.BibPadre = Archivo; DatosLinea.ObjPadre = UltimoMetodo; } else { DatosLinea.TipoPadre = Extension; DatosLinea.BibPadre = Archivo; DatosLinea.ObjPadre = Archivo; } DatosLinea.TipoHijo = "Clase"; if (LineaOriginal.IndexOf("javascript") > -1) { DatosLinea.TipoHijo = "JavaScript"; } DatosLinea.BibHijo = Archivo; string Clase = em.ExtraerNombreClase(LineaOriginal); DatosLinea.ObjHijo = Clase; //Genera la lista de Clases para controlar Clases dentro de Metodos if (!string.IsNullOrEmpty(Clase)) { ListaClases.Add(Clase + "|" + Nivel); } } catch (Exception ex) { Console.WriteLine(ex); } }
//Obtener los datos del Método actual private void ObtenerDatosMetodo(RevisaLinea DatosLinea, string LineaCodigo, string LineaOriginal, string Archivo) { try { if (ListaClases.Count > 0) { string[] Clase = ListaClases.ElementAt(ListaClases.Count - 1).Split('|'); DatosLinea.TipoPadre = "Clase"; DatosLinea.BibPadre = Archivo; DatosLinea.ObjPadre = Clase[0]; string Metodo = em.ExtraerNombreMetodo(LineaOriginal); DatosLinea.TipoHijo = "Metodo"; if (LineaCodigo.IndexOf("eventargs") > -1) { DatosLinea.TipoHijo = "Evento"; } if (Metodo == Clase[0]) { DatosLinea.TipoHijo = "Constructor"; } DatosLinea.BibHijo = Clase[0]; DatosLinea.ObjHijo = Metodo; UltimoMetodo = Metodo; } } catch (Exception ex) { Console.WriteLine(ex); } }
//Obtener los datos de Interface private void ObtenerDatosInterface(RevisaLinea DatosLinea, string LineaOriginal, string Archivo, string Extension) { try { DatosLinea.TipoPadre = Extension; DatosLinea.BibPadre = Archivo; DatosLinea.ObjPadre = Archivo; DatosLinea.TipoHijo = "Interface"; DatosLinea.BibHijo = Archivo; NombreEspacio = em.ExtraerNombreInterface(LineaOriginal); string Interface = NombreEspacio; DatosLinea.ObjHijo = Interface; if (!string.IsNullOrEmpty(Interface)) { ListaClases.Add(Interface + "|" + Nivel); } } catch (Exception ex) { Console.WriteLine(ex); } }
//Obtener los datos del Espacio de Nombres actual private void ObtenerDatosEspacioLibreria(RevisaLinea DatosLinea, string LineaCodigo, string LineaOriginal, string Archivo, string Extension) { try { string Espacio = Regex.Replace(Regex.Replace(LineaOriginal, @"\w+\s", string.Empty), ";", string.Empty).Trim(); DatosLinea.TipoPadre = Extension; DatosLinea.BibPadre = Archivo; DatosLinea.ObjPadre = Archivo; DatosLinea.TipoHijo = "Libreria"; if (LineaCodigo.StartsWith("namespace") || LineaCodigo.StartsWith("package")) { DatosLinea.TipoHijo = "Espacio de Nombres"; } Espacio = Espacio.Replace("= ", string.Empty); DatosLinea.BibHijo = Archivo; DatosLinea.ObjHijo = Espacio; if (LineaCodigo.StartsWith("namespace")) { UltimoEspacio = Espacio; } if (LineaCodigo.StartsWith("package")) { UltimoEspacio = Espacio; } } catch (Exception ex) { Console.WriteLine(ex); } }
//Cuando se encuentra un metodo o una clase pero solo son invocados private int ObtenerDatosInvocados(RevisaLinea DatosLinea, string LineaOriginal, string Archivo, HashSet <string> InventarioCM, List <string> Resultado, int NoLinea, string Ruta, HashSet <string> Librerias, string Extension, int DependenciaID) { try { List <string> Subconjunto; if ((LineaOriginal.IndexOf(".class") == -1) && ((LineaOriginal.IndexOf("private") > -1) || (LineaOriginal.IndexOf("public") > -1) || (LineaOriginal.IndexOf("protected") > -1) || (LineaOriginal.IndexOf("final") > -1) || (LineaOriginal.IndexOf("static") > -1) || (LineaOriginal.IndexOf("= new") > -1))) { string Linea = LineaOriginal.Replace(" final", string.Empty); bool Variable = EsVariable(LineaOriginal, 0); Regex Regex = new Regex(@"(private \s\w+\s\w+)|(public \s\w+\s\w+)|(protected \s\w+\s\w+)|(private static\s\w+\s\w+)|(public static\s\w+\s\w+)|(protected static\s\w+\s\w+)|(\w+\s\w+|\w+\<\w+\>\s\w+|\w+\[\]\s\w+)\s*= new"); Match Match = Regex.Match(Linea); if ((Match.Success) && (!Variable)) { string Instancia; string Clase; if (LineaOriginal.IndexOf("= new") > -1) { Linea = Linea.Substring(0, Linea.IndexOf("= new")).Trim(); Instancia = Linea.Split(' ').Last(); Clase = Linea.Split(' ').ElementAt(Linea.Split(' ').Length - 2); Clase = Clase.Replace("[]", string.Empty); foreach (string Libreria in LibreriasArchivo) { string LibreriaAux = Libreria.Split('.').Length <= 1 ? Libreria : Libreria.Split('.').Last(); if (LibreriaAux.Length <= 1) { LibreriaAux = "No Valida"; } Regex = new Regex(@"" + LibreriaAux); Match = Regex.Match(LineaOriginal); if (Match.Success) { string Espacio = Libreria.Split('.').Length == 1 ? Libreria : Libreria.Substring(0, Libreria.Length - Libreria.Split('.').Last().Length - 1); if (!string.IsNullOrEmpty(Clase) && !string.IsNullOrEmpty(Instancia)) { Instancias.Add(Clase + "|" + Instancia + "|" + Espacio); } } } } else { Clase = Match.Value.Split(' ').ElementAt(Match.Value.Split(' ').Count() - 2); } if (string.IsNullOrEmpty(UltimoMetodo)) { string[] ClaseLista = ListaClases.ElementAt(ListaClases.Count - 1).Split('|'); DatosLinea.TipoPadre = "Clase"; DatosLinea.BibPadre = Archivo; DatosLinea.ObjPadre = ClaseLista[0]; } else { DatosLinea.TipoPadre = "Metodo"; DatosLinea.BibPadre = Archivo; DatosLinea.ObjPadre = UltimoMetodo; } DatosLinea.TipoHijo = "Clase"; DatosLinea.BibHijo = Clase; DatosLinea.ObjHijo = Clase; Variable = EsVariable(DatosLinea.ObjHijo, 1); if (!string.IsNullOrEmpty(DatosLinea.ObjHijo) && !Variable) { ++DependenciaID; Resultado.Add(DatosLinea.TipoPadre + "|" + DatosLinea.BibPadre + "|" + DatosLinea.ObjPadre + "|" + DatosLinea.TipoHijo + "|" + DatosLinea.BibHijo + "|" + DatosLinea.ObjHijo + "|" + Ruta + "|" + NoLinea + "|" + Extension + "|" + DependenciaID + "|" + UltimoPadre + "|" + LineaOriginal.Replace("|", string.Empty)); } } } else { Regex Regex = new Regex(@"\w+\.\w+"); Match Match = Regex.Match(LineaOriginal); if (Match.Success) { //Para C# string ObjetoClase = Match.Value.Split('.').First(); string ObjetoMetodo = Match.Value.Split('.').Last(); string ClaseOriginal = string.Empty; Subconjunto = (from ICM in InventarioCM where ICM.Split('|').First() == ObjetoClase select ICM).ToList(); //Para Java if (Subconjunto.Count == 0) { string Espacio = string.Empty; foreach (string Instancia in Instancias) { if (ObjetoClase == Instancia.Split('|').ElementAt(1).ToString()) { Espacio = Instancia.Split('|').Last(); ClaseOriginal = Instancia.Split('|').First(); } } if (!string.IsNullOrEmpty(Espacio)) { Subconjunto = (from ICM in InventarioCM where ICM.Split('|').First() == Espacio && ICM.Split('|').ElementAt(2) == "Metodo" select ICM).ToList(); } } bool Excepcion = EsExcepcion(LineaOriginal); foreach (string Item in Subconjunto) { Regex = new Regex(@"([^/\\\w<>{}-]|^)" + Item.Split('|').ElementAt(1) + @"([^/\\\w<>{}-]|$)"); Match = Regex.Match(LineaOriginal); if ((Match.Success) && (!Excepcion)) { if (ListaClases.Count > 0 && Item.Split('|').ElementAt(1) == ObjetoMetodo) { string[] Clases = ListaClases.ElementAt(ListaClases.Count - 1).Split('|'); DatosLinea.TipoPadre = "Clase"; DatosLinea.BibPadre = Archivo; DatosLinea.ObjPadre = Clases[0]; DatosLinea.TipoHijo = Item.Split('|').ElementAt(2); DatosLinea.BibHijo = string.IsNullOrEmpty(ClaseOriginal) ? Item.Split('|').ElementAt(0) : ClaseOriginal; DatosLinea.ObjHijo = Item.Split('|').ElementAt(1); bool Variable = EsVariable(DatosLinea.ObjHijo, 1); if (!string.IsNullOrEmpty(DatosLinea.ObjHijo) && !Variable) { ++DependenciaID; Resultado.Add(DatosLinea.TipoPadre + "|" + DatosLinea.BibPadre + "|" + DatosLinea.ObjPadre + "|" + DatosLinea.TipoHijo + "|" + DatosLinea.BibHijo + "|" + DatosLinea.ObjHijo + "|" + Ruta + "|" + NoLinea + "|" + Extension + "|" + DependenciaID + "|" + UltimoPadre + "|" + LineaOriginal.Replace("|", string.Empty)); } } } } } else { if (Librerias.Count > 0) { foreach (string Libreria in Librerias) { string LibreriaAux = Libreria.Split('.').Length <= 1 ? Libreria : Libreria.Split('.').Last(); if (LibreriaAux.Length <= 1) { LibreriaAux = "No Valida"; } Regex = new Regex(@"" + LibreriaAux); Match = Regex.Match(LineaOriginal); if (Match.Success) { string Espacio = Libreria.Split('.').Length == 1 ? Libreria : Libreria.Substring(0, Libreria.Length - Libreria.Split('.').Last().Length - 1); Regex = new Regex(@"" + Match.Value + @"\s*\w+"); Match = Regex.Match(LineaOriginal); if (Match.Success && Match.Value.Split(' ').Length > 1) { string Instancia = Match.Value.Split(' ').Last(); string ClaseInstancia = Match.Value.Split(' ').First(); if (!string.IsNullOrEmpty(ClaseInstancia) && !string.IsNullOrEmpty(Instancia)) { Instancias.Add(ClaseInstancia + "|" + Instancia + "|" + Espacio); } if (string.IsNullOrEmpty(UltimoMetodo)) { string[] ClaseLista = ListaClases.ElementAt(ListaClases.Count - 1).Split('|'); DatosLinea.TipoPadre = "Clase"; DatosLinea.BibPadre = Archivo; DatosLinea.ObjPadre = ClaseLista[0]; } else { DatosLinea.TipoPadre = "Metodo"; DatosLinea.BibPadre = Archivo; DatosLinea.ObjPadre = UltimoMetodo; } DatosLinea.TipoHijo = "Clase"; DatosLinea.BibHijo = ClaseInstancia; DatosLinea.ObjHijo = ClaseInstancia; bool Variable = EsVariable(DatosLinea.ObjHijo, 1); if (!string.IsNullOrEmpty(DatosLinea.ObjHijo) && !Variable) { ++DependenciaID; Resultado.Add(DatosLinea.TipoPadre + "|" + DatosLinea.BibPadre + "|" + DatosLinea.ObjPadre + "|" + DatosLinea.TipoHijo + "|" + DatosLinea.BibHijo + "|" + DatosLinea.ObjHijo + "|" + Ruta + "|" + NoLinea + "|" + Extension + "|" + DependenciaID + "|" + UltimoPadre + "|" + LineaOriginal.Replace("|", string.Empty)); break; } } } } } } } } catch (Exception ex) { Console.WriteLine(ex); } return(DependenciaID); }
//Genera el inventario de Clases y Metodos para buscar los metodos que solo se invocan en código public RevisaLinea ObtenerInventario(string LineaCodigo, HashSet <string> Librerias) { try { RevisaLinea DatosInventario = new RevisaLinea(); EsValido = false; LineaCodigo = LineaCodigo.Trim(); string Linea = LineaCodigo.ToLower(); if (Linea.StartsWith("using ") || Linea.StartsWith("import ") || Linea.StartsWith("imports ")) { string Libreria = Regex.Replace(Regex.Replace(LineaCodigo, @"\w+\s", string.Empty), ";", string.Empty).Trim(); bool Excepcion = EsExcepcion(Linea); if (!Excepcion) { Librerias.Add(Libreria); } } else if (Linea.IndexOf("namespace ") > -1 || Linea.IndexOf("package ") > -1) { NombreEspacio = em.ExtraerNombreEspacio(LineaCodigo); } else if (((Linea.IndexOf("class ") >= 0) && (Linea.IndexOf(".class") < 0)) || Linea.IndexOf("javascript") > -1) { Nombre = em.ExtraerNombreClase(LineaCodigo); Tipo = "Clase"; if (Nombre != "") { EsValido = true; } } else if (em.EsFuncion(Linea)) { Nombre = em.ExtraerNombreFuncion(LineaCodigo); Tipo = "Funcion"; if (Nombre != "") { EsValido = true; } } else if (em.EsMetodo(Linea)) { Nombre = em.ExtraerNombreMetodo(LineaCodigo); Tipo = Linea.IndexOf("eventargs") > -1 ? "Evento" : "Metodo"; if (Nombre != "") { EsValido = true; } } DatosInventario = this; return(DatosInventario); } catch (Exception ex) { throw new Exception("RevisaLinea.ObtenerInventario ", ex); } }
public RevisaLinea ObtenerSalida(string LineaCodigo, string Archivo, HashSet <string> InventarioCM, List <string> Resultado, int NoLinea, string Ruta, HashSet <string> Librerias) { try { RevisaLinea DatosLinea = new RevisaLinea(); string LineaOriginal = LineaCodigo; LineaCodigo = LineaCodigo.ToLower(); LineaCodigo = LineaCodigo.Replace("\t", " "); LineaOriginal = LineaOriginal.Replace("\t", " "); string Extension = Regex.Replace(Archivo, @"\w+\.", string.Empty).Trim(); Archivo = Regex.Replace(Archivo, @"\.\w+", string.Empty).Trim(); if (LineaCodigo.StartsWith("using ") || LineaCodigo.StartsWith("import ") || LineaCodigo.StartsWith("imports ") || LineaCodigo.StartsWith("namespace ") || LineaCodigo.StartsWith("package ")) { bool Excepcion = EsExcepcion(LineaCodigo.ToLower()); if (!Excepcion) { ObtenerDatosEspacioLibreria(DatosLinea, LineaCodigo, LineaOriginal, Archivo, Extension); if (DatosLinea.ObjHijo.Length > 0) { LibreriasArchivo.Add(DatosLinea.ObjHijo.ToString()); ++DependenciaID; Resultado.Add(DatosLinea.TipoPadre + "|" + DatosLinea.BibPadre + "|" + DatosLinea.ObjPadre + "|" + DatosLinea.TipoHijo + "|" + DatosLinea.BibHijo + "|" + DatosLinea.ObjHijo + "|" + Ruta + "|" + NoLinea + "|" + Extension + "|" + DependenciaID + "|" + UltimoPadre + "|" + LineaOriginal.Replace("|", string.Empty)); } } } else if (((LineaCodigo.IndexOf("class ") >= 0) && (LineaCodigo.IndexOf(".class") < 0)) || LineaCodigo.IndexOf("javascript") > -1) { bool Excepcion = EsExcepcion(LineaCodigo.ToLower()); if (!Excepcion) { ObtenerDatosClase(DatosLinea, LineaOriginal, Archivo, Extension); if (DatosLinea.ObjHijo.Length > 0) { ++DependenciaID; Resultado.Add(DatosLinea.TipoPadre + "|" + DatosLinea.BibPadre + "|" + DatosLinea.ObjPadre + "|" + DatosLinea.TipoHijo + "|" + DatosLinea.BibHijo + "|" + DatosLinea.ObjHijo + "|" + Ruta + "|" + NoLinea + "|" + Extension + "|" + DependenciaID + "|" + UltimoPadre + "|" + LineaOriginal.Replace("|", string.Empty)); } } } else if (LineaCodigo.IndexOf("interface ") > -1) { bool Excepcion = EsExcepcion(LineaCodigo.ToLower()); if (!Excepcion) { ObtenerDatosInterface(DatosLinea, LineaOriginal, Archivo, Extension); if (DatosLinea.ObjHijo.Length > 0) { ++DependenciaID; Resultado.Add(DatosLinea.TipoPadre + "|" + DatosLinea.BibPadre + "|" + DatosLinea.ObjPadre + "|" + DatosLinea.TipoHijo + "|" + DatosLinea.BibHijo + "|" + DatosLinea.ObjHijo + "|" + Ruta + "|" + NoLinea + "|" + Extension + "|" + DependenciaID + "|" + UltimoPadre + "|" + LineaOriginal.Replace("|", string.Empty)); } } } else if (em.EsFuncion(LineaCodigo)) { ObtenerDatosFuncion(DatosLinea, LineaCodigo, LineaOriginal, Archivo); bool Variable = EsVariable(DatosLinea.ObjHijo, 1); if (DatosLinea.ObjHijo.Length > 0 && !Variable) { ++DependenciaID; Resultado.Add(DatosLinea.TipoPadre + "|" + DatosLinea.BibPadre + "|" + DatosLinea.ObjPadre + "|" + DatosLinea.TipoHijo + "|" + DatosLinea.BibHijo + "|" + DatosLinea.ObjHijo + "|" + Ruta + "|" + NoLinea + "|" + Extension + "|" + DependenciaID + "|" + UltimoPadre + "|" + LineaOriginal.Replace("|", string.Empty)); } } else if (em.EsObjeto(LineaCodigo)) { ObtenerDatosObjeto(DatosLinea, LineaCodigo, LineaOriginal, Archivo); bool Variable = EsVariable(DatosLinea.ObjHijo, 1); if (DatosLinea.ObjHijo.Length > 0 && !Variable) { ++DependenciaID; Resultado.Add(DatosLinea.TipoPadre + "|" + DatosLinea.BibPadre + "|" + DatosLinea.ObjPadre + "|" + DatosLinea.TipoHijo + "|" + DatosLinea.BibHijo + "|" + DatosLinea.ObjHijo + "|" + Ruta + "|" + NoLinea + "|" + Extension + "|" + DependenciaID + "|" + UltimoPadre + "|" + LineaOriginal.Replace("|", string.Empty)); } } else if (em.EsEvento(LineaCodigo)) { bool Excepcion = EsExcepcion(LineaCodigo.ToLower()); if (!Excepcion) { ObtenerDatosEvento(DatosLinea, LineaCodigo, LineaOriginal, Archivo); bool Variable = EsVariable(DatosLinea.ObjHijo, 1); if (DatosLinea.ObjHijo.Length > 0 && !Variable) { ++DependenciaID; Resultado.Add(DatosLinea.TipoPadre + "|" + DatosLinea.BibPadre + "|" + DatosLinea.ObjPadre + "|" + DatosLinea.TipoHijo + "|" + DatosLinea.BibHijo + "|" + DatosLinea.ObjHijo + "|" + Ruta + "|" + NoLinea + "|" + Extension + "|" + DependenciaID + "|" + UltimoPadre + "|" + LineaOriginal.Replace("|", string.Empty)); } } } else if (em.EsMetodo(LineaCodigo)) { bool Excepcion = EsExcepcion(LineaCodigo.ToLower()); if (!Excepcion) { ObtenerDatosMetodo(DatosLinea, LineaCodigo, LineaOriginal, Archivo); bool Variable = EsVariable(DatosLinea.ObjHijo, 1); if (ListaClases.Count > 0 && DatosLinea.ObjHijo.Length > 0 && !Variable) { ++DependenciaID; Resultado.Add(DatosLinea.TipoPadre + "|" + DatosLinea.BibPadre + "|" + DatosLinea.ObjPadre + "|" + DatosLinea.TipoHijo + "|" + DatosLinea.BibHijo + "|" + DatosLinea.ObjHijo + "|" + Ruta + "|" + NoLinea + "|" + Extension + "|" + DependenciaID + "|" + UltimoPadre + "|" + LineaOriginal.Replace("|", string.Empty)); } } } else { bool Excepcion = EsExcepcion(LineaCodigo.ToLower()); if (!Excepcion && LineaCodigo.Length >= 3) { DependenciaID = ObtenerDatosInvocados(DatosLinea, LineaOriginal, Archivo, InventarioCM, Resultado, NoLinea, Ruta, Librerias, Extension, DependenciaID); } } AcumularNivelLlave(LineaCodigo); return(DatosLinea); } catch (Exception ex) { AcumularNivelLlave(LineaCodigo); Console.WriteLine(ex); return(null); } }