Comunidad Gambas-es
Analizando clases - Experimento - Versión para impresión

+- Comunidad Gambas-es (https://gambas-es.org)
+-- Foro: Gambas (https://gambas-es.org/forum-3.html)
+--- Foro: Aplicaciones/Fragmentos de Código (https://gambas-es.org/forum-8.html)
+--- Tema: Analizando clases - Experimento (/thread-1300.html)



Analizando clases - Experimento - tincho - 24-03-2023

Hola,

Dado un proyecto gambas del disco local. y dada una clase de este proyecto, por ejemplo MyForm.class:
¿Hay algún algoritmo que analice el contenido?
Deseo obtener:
  • Lista de todas las variables globales, nombre, tipo, valor inicial (si esta declarado)
  • Lista de todos los métodos,  nombre, tipo, acceso, variables de entrada y variables de retorno .
  • Lista de todas las variables públicas de otras clases o módulos a los que MyForm.class accede.
  • Lista de todas los métodos públicos de otras clases o módulos a los que MyForm.class accede.
La idea detrás de todo esto es poder copiar un formulario de un proyecto y todo lo que este necesite para funcionar y nada mas.
Es decir si existe la clase auxiliar Claculator.class y en dicha clase hay dos métodos, Square() y Plus() pero MyForm.class usa solo Plus() una que sea copiado solo Plus() en el archivo y si, además, Plus() usa un método de otra/ clase/s entonces tambien hay que copiarlos.

Por ejemplo Gamabs IDE puede ordenar las clases en el treeview de acuerdo a su ubicación en el sistema de archivos o de acuerdo a su herencia. Para hacer este tipo de cosas debe haber algún algoritmo que analiza cada archivo de código.

Dejo un proyecto para hacer el experimento, donde este tiene varias clases, módulos y formularios.

Experimento: Hacer un algoritmo lo mas simple posible que genere una copia del proyecto pero solo incluir el formulario FMain.for,/FMain.class y todo lo que este relacionado recursivamente.

Esquema:
[Imagen: MCTxJJT.jpg]
Buen fin de semana Big Grin


RE: Analizando clases - Experimento - Shordi - 25-03-2023

Quizá esto te ayude. Con FMain exploras las clases de gambas, con Form1 exploras las del proyecto. No debe ser difícil adaptarlo a lo que pides.

Saludos


RE: Analizando clases - Experimento - tincho - 27-03-2023

(25-03-2023, 10:36)Shordi escribió: Quizá esto te ayude. Con FMain exploras las clases de gambas, con Form1 exploras las del proyecto. No debe ser difícil adaptarlo a lo que pides.

Eche un vistazo a tu programa pero no es lo que busco, ya que deseo analizar los archivos de código fuente de proyectos completamente separados.
Pero de todas maneras gracias por el aporte.


RE: Analizando clases - Experimento - tincho - 03-04-2023

Agregue un esquema en el primer mensaje para esclarecer la información a gestionar.