Coloration syntaxique avec tparser !!

Description

La classe TParser est une classe non documentée de Delphi. Elle permet de découper une chaîne de caractères en "tokens". On peut ensuite parcourir la chaîne token par token, récupérer la position dans la chaîne du token en cours...

Cette source permet grâce à cette classe de colorer le texte d'un fichier DFM comme le fait Delphi grâce à un code très simple qui se résume en gros à une boucle While...

---------
Mise à jour :
Deux nouvelles classes pour colorer le code pascal des fichiers .pas.
Une classe similaire à celle créée par Delphiprog (TDfmParser), TPasParser, qui descend d'une version remaniée de TParser.
Des modifications ont effectivement été nécessaires pour que la classe devienne compatible avec le parsing des fichiers .pas
Comme j'ai modifié un copier/coller de la classe TParser, j'en ai profité pour commenter tout le code ! Avis à ceux qui cherche à comprendre plus en détail le fonctionnement du Parser !

Le ZIP ne contient maintenant plus que la version de Delphiprog du programme de coloration, mais largement commentée... Si toutefois vous avez des questions, laissez un commentaire ou envoyez-moi un mail !

BONUS !! ;o)
Inclus également dans le ZIP, un fichier d'aide .hlp sur la classe TParser, créée par Delphiprog. Grâce à lui, cette classe sort donc maintenant du registre "Non documentée" !!

------
Nouvelle mise à jour :
Le passage d'une ProgressBar en paramètre (que je n'avais pas signalé avant...) est maintenant facultatif, pour rendre l'interface et le code du prog indépendants (suite à un nouveau bon conseil de delphiprog !! ;o) )
J'ai remanié la classe TDfmParser. Le code gérant la colorisation utilise maintenant l'approche du Case Parser.Token Of et passe ainsi d'un code de 60 lignes à un code de 32 !!
La dite classe utilise également la version "corrigée" du TParser, TModifParser, pour faciliter l'interprétation du code
Par la même occasion, l'utilisation du Case permet de corriger le bug signalé avec la propriété DesignSize, qui est donc à présent entièrement colorée !

Source / Exemple :


Tout est dans le ZIP !

Conclusion :


Normalement tout fonctionne comme il faut... à part un cas de propriété qui n'est pas coloré entièrement. voir l'unité .pas !
[Une nouvelle version devrait rapidement venir corriger ce problème]
(*C'est maintenant fait !*)

Sinon, tout commentaire est accepté ! ;-)

-------

Merci à Nono40 et à Delphiprog pour leur aide, toujours précieuse ! (et a special thanks pour le fichier d'aide !)

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.