cs_christophedlr
Messages postés267Date d'inscriptionsamedi 3 janvier 2004StatutMembreDernière intervention23 août 2023
-
6 mai 2009 à 19:00
cs_christophedlr
Messages postés267Date d'inscriptionsamedi 3 janvier 2004StatutMembreDernière intervention23 août 2023
-
10 mai 2009 à 20:57
Bonsoir,
Je voudrais faire mon propre générateur de documentation PHP.
J'ai donc effectuer des tests pour voir si j'étais capable en prenant un code source PHP, de retrouver les commentaires types /** */ définissant donc la documentation (type Java).
Actuellement j'arrive dans mes test à prendre un commentaire et le parser mais seulement si il n'y à qu'une section, j'explique.
Un commentaire :
/**
* @version 1.0
*/
J'arrive à le parser sans problème, ici c'est l'exemple de la version (j'ai testé en premier l'exemple du tag author), mais si on ajoute un second tag dans le commentaire, ça fonctionne plus.
Je pense donc avoir un problème au niveau de mon regexp.
Avec mon regexp actuel, j'interdit les commentaires sur une seule ligne (donc mettre /** * @version 1.0 */ par exemple), il doit bien y avoir un espace en début de ligne mais j'arrive pas en plus de gérer plusieurs tags dans le même commentaire, j'arrive pas à indiquer qu'il faut obligatoirement un espace ET une astérisque.
Je pense donc que c'est le regexp qui est pas totalement bon.
La vérité :
J'ai galéré bien plus d'une heure à tenter de trouver une regex adéquate avec un succès relatif.
J'ai conservé ta recherche sur des strings bien déterminées (@version, @author) afin de pouvoir les identifier et ainsi de leur appliquer un traitement éventuel. Il est bien évidemment possible de ne pas tester leur existence ce qui rendra le code bien plus court.
J'ai fait les tests sous windows, ce qui explique les \r\n (à modifier au cas où).
@alexflex :
Tu auras compris que la phrase à ton sujet relève de la plaisanterie amicale
D'ailleurs je ne voulais pas poster mon code car je me disais que quelqu'un trouverait surement une meilleure solution que moi.
En découvrant aujourd'hui ta réponse j'étais parti pour poster "bien vu Alexflex, je n'avais pas trouver ... patati patata" ... mais je le poste tout de même car ton code ne gère pas, nottament, les commentaires sur une seule ligne.
Bref, j'espère qu'une des deux répondra à la demande, même si je reste certain qu'il est possible de faire bien mieux (un peu plus de spécifications Christophedlr ?)
cs_christophedlr
Messages postés267Date d'inscriptionsamedi 3 janvier 2004StatutMembreDernière intervention23 août 20235 8 mai 2009 à 15:08
Merci pour ta solution Korhntark, elle à l'air plus clair que celle d'alex (pour le regexp, je le comprend un peu mieux ;)).
Pour la gestion sur une seule ligne, en tous cas pour le moment je compte pas gérer cela car actuellement aucun générateur ne le gère (me semble pas que la JavaDoc le gère et je prend le générateur de doc Java de Sun comme exemple ;)).
Les \r\n sont inutiles, disons que un fichier encodé au format Unix aura juste le \n, donc à la limite ont se fiche du \r, c'est le \n je pense qui est important ;)
Bon sinon, merci pour vos solutions à tous les deux qui ont l'air de bien fonctionner.
Je vais étudier tous cela attentivement.
alexflex25
Messages postés106Date d'inscriptionvendredi 29 septembre 2006StatutMembreDernière intervention 6 mars 2012 10 mai 2009 à 20:51
"Après 4 minutes et 38 secondes j'ai pu t'apporter la solution, contrairement à Alexflex qui semble bien peu performant :"
Quand j'ai lu cette phrase je me suis dis 4min 38....
wouaaaaa.. INCREDIBLE!!!
Ne t'inquiète pas [auteur/KOHNTARK/302665.aspx kohntark]j'adore les gens qui ont plus de compétences que moi.
Sa m'aide à avancer!
C'est de bonne guerre... De plus ton humour me plais.
Vous n’avez pas trouvé la réponse que vous recherchez ?