DEBUT DE PARSEUR HTML (AVEC TPARSER)

florenth - 24 oct. 2005 à 17:18
tartave Messages postés 15 Date d'inscription vendredi 5 octobre 2007 Statut Membre Dernière intervention 1 mars 2009 - 10 févr. 2008 à 13:55
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/34324-debut-de-parseur-html-avec-tparser

tartave Messages postés 15 Date d'inscription vendredi 5 octobre 2007 Statut Membre Dernière intervention 1 mars 2009
10 févr. 2008 à 13:55
super ton programme.c'est ce que je chercher en partie ^^ dommage que je sois débutant... j'ai du mal a comprendre certaine ligne de ton code..
" Je ne suis pas du tout content de l'intérêt que suscite cette publication. " => Serais-tu jaloux ??

Plus sérieusement, je vais oublier les trois premières lignes que tu as post car elles ne méritent pas d'être.

L'interet du code de elguevel, c'esrt justmement la technique qui permet d'analyser le code HTML pour en extraire les différentes parties: c'est ça le rôle d'un parser.

Après, si tu veux interpréter le code pour afficher la page, il te faut un analyseur lexical, qui retourne des lexèmes (en anglais cela se dit "token" , un parser par exemple mais es expressions régulières sont plus efficaces), puis un analyseur syntaxique et enfin un analyseur sémantique.

Je ne pense pas que l'ambition de elguevel est de rivaliser avec Firefox ou Opéra.
assemple Messages postés 65 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 16 décembre 2011
1 nov. 2005 à 09:59
Je ne suis pas du tout content de l'intérêt que suscite cette publication.
Je ne critique en rien le travail de Damien LEVEUGLE, que j'ai d'ailleurs trouvé très bien.
Mais, à peine diffusé (nous sommes mardi), il y a déjà 5 commentaires.
La semaine dernière j'ai publié une boite de message améliorée, intégrant un interpréteur HTML, lui-même utilisable indépendanment de la boîte de message, comme suit :
TextHTMLOut(CanvasCible : TCanvas ;
X,Y : Integer ;
ChaineHTML : String ;
Var Hauteur : String )
J'ai commencé un éditeur HTML WYSIWYG, que j'ai d'ailleurs du mal a terminer (les tags sont invisible donc hors sélection éventuelle... comment appliquer un changement de format ?)

Un éditeur HTML WYSIWYG, c'est quand même mieux qu'un éditeur avec coloration syntaxique.

J'ai pensé qu'il devrait être ensuite facile de créer un éditeur HTML/PHP WYSIWYG et SYNTAXIQUE.
Ce serait génbial non ?

Qui veux les sources de l'éditeur HTML ?

NOTA : dépuis que j'ai commencé l'éditeur, je me suis rendu compte que sur certaines balises je ne respectais pas la norme HTML. Ce n'ai pas trop grave tant que l'on conserve une parfaite compatibilité de l'Editeur vers les Explorateurs Standard, ce qui est à peu près le cas.

On pourrait développer ça en open source

SAUF s'il existe DEJA un éditeur HTML WYSIWYG (en Delphi, of course !)

Salut à tous (et à toutes ... si peu nombreuses)

Diégo DELPY
Pendant la frappe ... ce n'est pas si simple.
Ce qu'il faudrait, c'est faire débuter le parser un peu avant (mais de combien) le curseur et le faire arreter s'il se rend compte qu'il ne modifie plus rien.

J'essaye sur mon parser (c'est toujours plus simple si c'est le sien) et je t'avertis si je trouve.

@ ++ Flo
elguevel Messages postés 718 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 22 novembre 2016 3
24 oct. 2005 à 19:53
merci florenth de tes commentaires, mais c'est grace a ta source que j'ai compris le fonctionnement de TParser :-)

Sinon pour le Bug je sais ce que sais mais je ne sais pas comment le contourner : Il sagit en faite du caractère ' propre au delimiteur de chaine sous delphi (vu que le parseur est au départ celui de Delphi).

sinon tu as une idée à ma première question ... comment colorer syntaxyquement pendant la frappe ?

Merci encore, et @+

Damien
C'est encore moi: j'ai trouvé un bug !
Enregistre cette page au format HTML seul et execute ton parser.
J'ai une erreur ligne 127 je ne vois pas à quoi c'est dû.
Des commentaires, en veux tu en voila !
Première impression: le code est bien présenté et correctement indenté : +
La coloration s'effectue snas bug : +

Par contre, je trouve dommage que si on a dans une balise que le 480 et le 316 soit de la même couleur que width= et height= : -
Mais enfin, rien de sorcier à modifier.

Bilan final : +
Ce parser est efficace est simple à mettre en oeuvre.
Dommage qu'il y ait un bug au niveau du doctype qui n'est pas coloré de la même façon suivant les pages.

NB: dnas les procédures de la classe TParse, ce n'est pas la peine d'écrire Self.SourcePos, Self.NextToken, ... car Self. est implicite. tu abrège ta sourse et améliore sa lisibilité !
Rejoignez-nous