/// <summary> /// Interpreta un programa o un archivo /// </summary> private ProgramModel ParseProgram(string strFileName) { SolutionVisualStudioModel objSolution = new SolutionVisualStudioModel(strFileName); ProgramModel objProgram = new ProgramModel(strFileName); // Carga la solución objSolution.Load(); // Interpreta los proyectos foreach (ProjectVisualStudioModel objProject in objSolution.Projects) { foreach (FileVisualStudioModel objFile in objProject.Files) { if (!System.IO.File.Exists(objFile.FullFileName)) { objProgram.Errors.Add("No se encuentra el archivo " + objFile.FullFileName); } else { CompilationUnitModel objUnit = ParseFile(objFile.FullFileName); if (objUnit != null) { objProgram.CompilationUnits.Add(objUnit); } } } } // Devuelve el programa interpretado return(objProgram); }
/// <summary> /// Interpreta una solución /// </summary> public ProgramModel ParseSolution(string strFileName) { SolutionVisualStudioModel objSolution = new SolutionVisualStudioModel(strFileName); ProgramModel objProgram = new ProgramModel(); Parser.FileParser objParser = new Parser.FileParser(); // Carga la solución objSolution.Load(); // Interpreta los proyectos foreach (ProjectVisualStudioModel objProject in objSolution.Projects) { foreach (FileVisualStudioModel objFile in objProject.Files) { objProgram.CompilationUnits.Add(objParser.ParseFile(objFile.FullFileName)); } } // Devuelve el programa interpretado return(objProgram); }
/// <summary> /// Interpreta una solución /// </summary> private SolutionModel ParseSolution(string fileName) { SolutionVisualStudioModel solutionVisual = new SolutionVisualStudioModel(fileName); SolutionModel solution = new SolutionModel(fileName); // Carga la solución solutionVisual.Load(); // Interpreta los proyectos foreach (ProjectVisualStudioModel project in solutionVisual.Projects) { if (project.Files.Count > 0) // ... los proyectos sin archivos se corresponden a las carpetas de solución { ProgramModel program = new ProgramModel(project.FullFileNameSource); // Interpreta los archivos del proyecto foreach (FileVisualStudioModel file in project.Files) { if (!System.IO.File.Exists(file.FullFileName)) { program.Errors.Add($"No se encuentra el archivo {file.FullFileName}"); } else if (!file.FullFileName.EndsWith(".vb", StringComparison.CurrentCultureIgnoreCase) || file.FullFileName.EndsWith(".cs", StringComparison.CurrentCultureIgnoreCase)) { CompilationUnitModel unit = ParseFile(file.FullFileName); if (unit != null) { program.CompilationUnits.Add(unit); } } } // Añade el proyecto a la solución solution.Programs.Add(program); } } // Devuelve el programa interpretado return(solution); }
/// <summary> /// Interpreta un programa o un archivo /// </summary> private ProgramModel ParseProgram(string strFileName) { SolutionVisualStudioModel objSolution = new SolutionVisualStudioModel(strFileName); ProgramModel objProgram = new ProgramModel(strFileName); Parser.CSharpParser objParser = new Parser.CSharpParser(); // Carga la solución objSolution.Load(); // Interpreta los proyectos foreach (ProjectVisualStudioModel objProject in objSolution.Projects) { foreach (FileVisualStudioModel objFile in objProject.Files) { if (objFile.FileName.EndsWith(".cs", StringComparison.CurrentCultureIgnoreCase)) { objProgram.CompilationUnits.Add(objParser.ParseFile(objFile.FullFileName)); } } } // Devuelve el programa interpretado return(objProgram); }