PHPCODE INDENTER

Signaler
Messages postés
66
Date d'inscription
jeudi 4 août 2005
Statut
Membre
Dernière intervention
16 décembre 2009
-
BaFM
Messages postés
64
Date d'inscription
mercredi 24 juillet 2002
Statut
Membre
Dernière intervention
26 novembre 2009
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/45940-phpcode-indenter

BaFM
Messages postés
64
Date d'inscription
mercredi 24 juillet 2002
Statut
Membre
Dernière intervention
26 novembre 2009

Le Lexer (analyseur lexical) il ne produit pas de code, il produit un flux de jetons qui sont utilisés par un Parser (analyseur syntaxique) qui produit un arbre AST. C'est cet arbre que tu retransformera en chaîne pour le formatage.
amezghal
Messages postés
385
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
21 août 2015
2
salut, et merci =),
en fait j'avais pas fais attention au cas de heredoc..donc merci pour la remarque,(bug fix dans la prochaine maj :D)

@BaFm, si tu connais un lexer qui produit du code pour php je serais pronneur...(car je connais que ceux qui produisent du code pour C, C++, C#, java),

merci :)
Eregon
Messages postés
17
Date d'inscription
lundi 3 septembre 2007
Statut
Membre
Dernière intervention
26 octobre 2009

Moi je dit vive l'indent personnel^^
Car il y a toujours des exceptions, genre des conditions qu'on veux à peine mentionner et qu'on met sur une ligne, un texte que l'on met directement contre le bord(toujours le cas en heredoc), un saut à la ligne pour repérer des CR ou LF, une arborescence où l'on veut l'élément racine contre la marge, ...

Mais sinon ça doit surement être un bon exercice de parsing :p
Bon codage
P.S.:'deux paramètres la directoire et le nom du fichier' -> '2 paramètres : le dossier et le fichier' ;) (pourquoi séparer ces paramètres?)
BaFM
Messages postés
64
Date d'inscription
mercredi 24 juillet 2002
Statut
Membre
Dernière intervention
26 novembre 2009

Bonjour,

Votre code ne gère pas la syntaxe HereDoc supportée par php.

Une méthode plus propre est d'utiliser lexer et parser pour régénérer le code indenté en gérant complètement la grammaire du langage, ce qui évite de tomber dans des cas limites.