Comunidad Gambas-es

Versión completa: Analizando clases - Experimento
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
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
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
(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.
Agregue un esquema en el primer mensaje para esclarecer la información a gestionar.