Pregunta

Necesito analizar PHP & amp; Estructura de documentos JavaScript para obtener la información sobre las funciones del documento & amp; sus parámetros, clases y amp; sus métodos, variables, etc. Me pregunto si hay alguna solución para hacer eso (no hay expresiones regulares) ... He oído hablar de algo llamado "lexing". Sin embargo, no pude encontrar ningún ejemplo, incluso los que me podrían decir si esto es algo que estoy buscando o no ...

gracias de antemano

¿Fue útil?

Solución

Por "Lexing" te refieres al análisis léxico, y hay algunas herramientas antiguas que en su mayoría todavía funcionan llamadas Lex y Yacc. Lex construye el tokenizador, y Yacc significa "otro compilador compilador". y es el analizador real.

El concepto de lex / Yacc, es construir una gramática para el lenguaje y luego ejecutar la gramática a través de la herramienta paslex para generar el código fuente (normalmente en C) que puede usar para analizar un archivo y tomar medidas específicas palabras clave y tokens. Martin Waldenburg escribió una versión pascal de lex / yacc llamada PasLex que ha estado dando vueltas durante más de una década y se ha convertido a Delphi (aunque podría no funcionar con las últimas versiones sin algún trabajo menor). Si no recuerdo mal, utiliza los mismos archivos de entrada de gramática .L que lex, por lo que cualquier documentación que encuentre para lex / yacc también se puede aplicar a paslex, con la excepción de que obtiene el código pascal como salida.

No estoy seguro acerca de la disponibilidad de documentación actual. Antes de internet (jadeo), usábamos libros y la mayoría de esto estaba muy documentado en un papel que se había vuelto amarillo por mucho tiempo ... sin embargo, se rumorea que podrías ... solo podrías recoger una copia usada de Amazon. Me corté los dientes con esto usando un libro que también se conoce como " el libro del dragón " que parece haber sido publicado nuevamente en 2006.


EDIT:

La herramienta me confundió, era TPLY . PasLex fue una implementación gramatical de Delphi ... TPLY fue la herramienta Lex / Yacc que generó la fuente pascal de un archivo .L.

Otros consejos

No estoy seguro de si esto es factible, pero para PHP ¿podría invocar la CLI de PHP desde Delphi para obtener la información?

Si es así, puede llamar a token_get_all () y luego escupir el resultado en algo que pueda analizar Delphi (tal vez xml, json, etc.). Esto es irritante. El problema con esto es que solo se resuelve la mitad del problema: aún debe comprender cada token en contexto para obtener los resultados que desea.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top