tasymboles Crochets et Accolades sur le symbole |. e
Afin de reconna
tre les terminaux dans l'arbre syntaxique, Syntex impose les deux r
gles suivantes:
La liste des symboles de ponctuation, ie de tous les terminaux qui ne sont pas alphanum
riques, doit
tre donn
e en d
but du fichier .Grm, en pla
ant les symboles entre guillemets.
Les terminaux qui ne sont pas des symboles de ponctuation doivent d
buter par une majuscule. Ce qui interdit
galement l'usage des majuscules pour la d
signation des noeuds non-terminaux.
L'ordre dans lequel les r
gles de syntaxes sont pr
es dans le fichier est indiff
rent; Dans le fichier TEST.GRM elles sont pr
es par ordre de d
rivation; elles peuvent tout aussi bien
tre pr
es dans le d
sordre.
A noter qu'une production peut s'
tendre sur plusieurs lignes. Syntex accepte les commentaires dans les fichiers .Grm,
condition de les placer entre '@'. +
Voir les fichiers GRM fournis en exemple.
Remarque tout
fait personnelle: quel plaisir de voir que l'on peut
crire automatiquement une partie importante de ce qui a
crit
la main!
(Note personnelle (encore!): J'y suis particuli
rement sensible pour m'
tre 'coltin
la main l'
criture de l'interpr
teur de WIZZ, un petit programme de trac
de fonctions math
matiques - en tenant compte du domaine de d
finition - et de calcul scientifique. C'
tait un tr
s bon exercice p
dagogique pour moi, mais comme toujours dans ce genre d'exercices, les vertues disparaissent rapidement d
s qu'on l'a fait une fois. FdNote)
Retour
Sommaire
------------------------------------
Interface Utilisateur - release 2.0
------------------------------------
Elle s'est consid
rablement am
e - voir la Version History - gr
l'utilisation de Turbo Vision. L'utilisation est maintenant "intuitive" - comme on dit, histoire de rire un bon coup -, et l'aide est accessible en ligne par la touche F1. N
Editer Debuggage Windows
Fichier Generer Option
Retour
Sommaire
Retour
Sommaire
File|New
---------
Ouvre une nouvelle fen
tre d'
dition.
File|Open
----------
Affiche la boite de s
lection de fichier positionn
e par d
faut sur les fichiers d'extension GRM.
File|Save
----------
Sauve le contenu de l'
diteur courant dans un fichier, en passant
ventuellement par la boite de s
lection de fichier si le fichier n'est pas encore nomm
File|Save As
-------------
Sauve le contenu de l'
diteur courant dans un fichier, en passant par la boite de s
lection de fichier.
File|Save All
--------------
Sauve le contenu de tous les
diteurs ouverts et ayant
modifi
Retour
Sommaire
Retour
Sommaire
Generate|Generate
------------------
re le corps de l'analyseur syntaxique correspondant
la grammaire contenue dans la fen
tre d'
dition courante. f
Le nom de l'analyseur reprend celui du fichier .GRM dont il descend, et lui ajoute l'extension .PAS. &
Generate|Options
-----------------
Permet de sp
cifier si le code Pascal produit doit
tre format
comme un Programme ou comme une Unit
Par d
fault, c'est un Programme qui est g
Generate|Make
--------------
Permet de compiler le code Pascal produit par Generate afin de v
rifier qu'il 'tourne' - afin
ventuellement de modifier la grammaire.
Retour
Sommaire
Debug|Syntax Tree
------------------
Affiche l'arbre syntaxique de la derni
re grammaire analys
Les branches peuvent
tre d
velopp
es ou r
duites afin de faciliter l'analyse de la structure de l'arbre. $
Debug|Key Words
----------------
Affiche la liste des mots-clef - les terminaux - de la derni
re grammaire analys
Debug|Ponctuation
------------------
Affiche le liste des caract
res de ponctuation d
finis dans la derni
re grammaire analys
Retour
Sommaire
Options|Video
--------------
Passe de l'affichage sur 25 lignes
l'affichage 43 lignes (EGA) ou 50 lignes (VGA). .
Options|Save Desktop
---------------------
Sauvegarde la configuration du bureau - fen
tre ouvertes et param
tres s
lectionn
s - sur disque. M
** Cette option n'est pas impl
e sur cette version non enregistr
e. ** .
Options|Load Desktop
---------------------
Restaure la configuration du bureau - fen
tre ouvertes et param
tres s
lectionn
s - pr
alablement sauv
e sur le disque. M
** Cette option n'est pas impl
e sur cette version non enregistr
e. **
Retour
Sommaire
Retour
Sommaire
-----------------------------------
Comment
crire une grammaire LL(1)
-----------------------------------
a. Survol
structure
compilateur
b. L'analyse
syntaxique
descente
cursive
symbole
vision
c. Grammaire
LL(1)
d. Premier
e. Corrections
f. Consid
rations
diverses
Retour
Sommaire
a/ Survol de la structure d'un compilateur
-------------------------------------------
Un compilateur est un programme qui,
partir d'un texte source
crit dans un langage donn
, produit une traduction. Il doit donc lire le texte source, v
rifier qu'il est correct, et le traduire. Ces fonctions sont r
parties entre diff
rents modules.
La lecture du source est effectu
e par l'analyseur lexical, dont le r
le est de d
couper le source en unit
lexicales correspondant au langage utilis
- en mots -. }
Vient ensuite l'analyseur syntaxique, qui a pour r
le de v
rifier que les suites d'unit
s lexicales produites par l'analyseur lexical - les phrases -sont "grammaticalement" correctes, par rapport
la grammaire du langage utilis
. C'est g
ralement l'analyseur syntaxique qui, au fur et
mesure de ses besoins, demande
l'analyseur lexical de lui fournir des unit
s lexicales.
Puis l'analyseur s
mantique entre en jeux pour v
rifier ces phrases grammaticalement correctes ont un "sens". Il lui revient en g
ral de traiter les aspects contextuels du langage qui ne peuvent
tre trait
s par la grammaire qui, comme son nom l'indique, est non contextuelle. Parmi ces aspects contextuels, citons le contr
le de type, l'existence et la visibilit
des identificateurs, etc.
Enfin, le dernier module produit la traduction. Cette phase peut
tre trait
e de fa
ons bien diff
rentes, avec production d'un code interm
diaire, ou non, etc. Cette derni
re phase, fortement d
pendante de la machine d
stination, est appell
e la partie finale d'un compilateur, par opposition aux phases d'analyse (lexicale, syntaxique, et s
mantique) qui sont regroup
es sous le terme de partie frontale.
Syntex est donc une machine
fabriquer des analyseurs syntaxiques, ie des v
rificateurs de correction grammaticale,
partir d'une description de la grammaire souhait
Il existe bien
videmment plusieurs approches pour pratiquer une analyse syntaxique, de m
me qu'il existe plusieurs types de grammaires. De plus, certains types de grammaires n
cessitent l'utilisation de certaines approches, et r
ciproquement.
Dans le cas de Syntex, l'analyse syntaxique se fait par descente r
cursive sur des grammaires de la classe LL(1). Voyons donc tout cela en d