comment programmer une Grammaire de précédence???
comment programmer une Grammaire de précédence???
C'est qoui une grammaire de précédence, et quel usage en as tu ?
dans le module de compilation
par exemple:
Z---------->#S#
s----------> A)
A---------> aA / AS / (a
Euh..je n'ai toujours pas compris...tu veux en faire quoi exactement ?
C'est vrai que rédiger tes messages de façon un peu plus claire serait un plu Il est difficile de te comprendre.
Bon, heureusement, aujourd'hui, j'ai pu emprunter la boule de cristal de mon voisin
Donc tu veux, en Delphi, programmer un analyseur syntaxique, à partir de la description de la grammaire du langage. Il est vrai que c'est le module de compilation le plus difficile.
J'ai rédigé un tutoriel sur ce sujet, avec exemples en Delphi :
http://sjrd.developpez.com/algorithm...s-syntaxiques/
Tu devrais y jeter un oeil. Tu devrais y trouver les réponses que tu cherches.
3.3 L’analyse descendante
Une procédure par variable.
Problème : récursivité directe à gauche ;
nécessité une transformation pour l’éliminer.
Grammaire de départ Grammaire modifiée
Procédures correspondantes : deux procédures supposées écrites :
• prevision retourne l’unité lexicale suivante sans l’enlever ;
• correspond(x) lit l’unité lexicale suivante, l’enlève et signale une
erreur si elle ne vaut pas x. Ici plus, nombre, etc. sont les
codes d’unités lexicales renvoyés par l’analyseur lexical.
E® E +T | T
T® T *F | F
F ® (E ) | nombre
A ® E$ (production augmentée)
E ® TG
G ® +TG | e
T® FU
U ® *FU | e
F ® (E ) | nombre
merci sjrd
mais le liens n'est pas disponible
A mon avis tu trouveras tout ce qu'il faut dans son projet :
http://sjrd.developpez.com/sepi/
Corrigé. Le tutoriel de Damien Guichard avait été déplacé sans que je le sache
http://damien-guichard.developpez.com/
Oui... Et non.
Non parce que, il y a en effet un générateur d'analyseur syntaxique dans Sepi, mais il est orienté... Sepi. Il travaille avec des noeuds de type TSepiParseTreeNode qui travaille en lien étroit avec TSepiUnitCompiler et TSepiCompiler.
Oui parce que, il n'est probablement pas très difficile de modifier ce générateur pour le rendre à nouveau indépendant de Sepi. Attention toutefois qu'il est GPL, donc viral
PS : au fait, si tu veux toujours voir des programmes exemples de Sepi, il y en a, maintenant Et la version SVN de FunLabyrinthe l'utilise désormais intensément
Juste une petite remarque :
Il existe des outils pour générer automatiquement l'analyseur lexical et syntaxique à partir de leur grammaire.
Personnellement, j'utilise COCO/R. Son langage pour définir la grammaire est vraiment très simple et facile à comprendre.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager