Coloration syntaxique avec tparser !!

Soyez le premier à donner votre avis sur cette source.

Vue 12 658 fois - Téléchargée 1 587 fois

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

Ajouter un commentaire

Commentaires

cs_Delphiprog
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
24 -
Super travail que tu as réalisé là !

Enfin un code source intéressant. On commençait à s'ennuyer...
cs_Bestiol
Messages postés
871
Date d'inscription
dimanche 6 janvier 2002
Statut
Membre
Dernière intervention
3 novembre 2005
1 -
Merci Delphiprog, ce genre de commentaire fait bien plaisir !
cs_koko
Messages postés
654
Date d'inscription
lundi 14 janvier 2002
Statut
Membre
Dernière intervention
20 février 2005
-
bravo bravo !!!
mais pourquoi se limiter au .dfm ?
cs_Delphiprog
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
24 -
"mais pourquoi se limiter au .dfm ?"
Réponse : il fallait bien commencer par quelque chose !
Si tu entrevois d'autres applications concrètes, ne te gênes pas pour faire une proposition, elle sera accueillie avec plaisir.
cs_koko
Messages postés
654
Date d'inscription
lundi 14 janvier 2002
Statut
Membre
Dernière intervention
20 février 2005
-
pour du php, html, javascript... pour les languages web quoi...

mais par exemple j'avais essayé d'ouvrir un fichier .pas... mais il était pas content le prog !

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.