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 pluIl 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.
sjrd, ancien rédacteur/modérateur Delphi.
Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
Découvrez Mes tutoriels.
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
Partager