Question

Je dois analyser PHP & amp; Structure de documents JavaScript pour obtenir des informations sur les fonctions de document & amp; leurs paramètres, classes & amp; leurs méthodes, variables, etc. Je me demande s’il existe une solution pour ce faire (pas d’expressions régulières) ... J'ai entendu parler de quelque chose appelé "lexing". Cependant, je suis incapable de trouver des exemples, même ceux qui pourraient me dire si c’est ce que je recherche ou non ...

merci d'avance

Était-ce utile?

La solution

Par "Lexing" vous faites référence à Lexical Analysis, et il existe des outils anciens qui fonctionnent encore principalement nommés Lex et Yacc. Lex construit le tokenizer, et Yacc signifie "encore un autre compilateur de compilateur" et est l'analyseur réel.

Le concept de lex / Yacc, c’est que vous construisez une grammaire pour le langage, puis que vous l'exécutez via l'outil paslex pour générer le code source (normalement en C) que vous pouvez utiliser pour analyser un fichier et prendre des mesures spécifiques. mots-clés et jetons. Martin Waldenburg a écrit une version pascal de lex / yacc appelée PasLex qui existe depuis une décennie maintenant et qui a été convertie en Delphi (bien que cela puisse ne pas fonctionner avec les dernières versions sans un travail mineur). Si je me souviens bien, il utilise les mêmes fichiers d'entrée de grammaire .L que lex, de sorte que toute la documentation trouvée pour lex / yacc peut également être appliquée à paslex, à l'exception du code pascal que vous obtenez en sortie.

Je ne suis pas sûr de la disponibilité de la documentation actuelle. Avant Internet (gasp), nous utilisions des livres et la plupart d'entre eux étaient largement documentés sur du papier qui a depuis longtemps viré au jaune ... Cependant, selon la rumeur, vous pourriez peut-être ... obtenir un exemplaire usagé d'Amazon. Je me suis fait les dents en utilisant un livre également connu sous le nom de le livre du dragon " qui semble avoir été republié aussi récemment que 2006.

EDIT:

Je me suis trompé avec l'outil, il s'agissait de TPLY . PasLex était une implémentation grammaticale de Delphi ... TPLY était l’outil Lex / Yacc qui générait le code source Pascal à partir d’un fichier .L.

Autres conseils

Je ne sais pas si cela est faisable, mais pour PHP, seriez-vous en mesure d'invoquer l'interface de ligne de commande PHP de Delphi pour obtenir les informations?

Dans ce cas, vous pouvez appeler token_get_all () , puis cracher le résultat dans un document que vous pouvez analyser. Delphi (peut-être xml, json, etc.). Ceci est lexing. Le problème, c’est que la moitié seulement du problème est résolue - vous devez toujours comprendre chaque jeton dans son contexte pour obtenir les résultats souhaités.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top