Théorie des langages - Détails d`analyse syntaxique avec

Th´eorie des langages
etails d’analyse syntaxique avec JavaCC et JJTree1
J´erˆome Voinot
http://lifc.univ-fcomte.fr/~voinot
Licence informatique 3`eme ann´ee
Octobre 2007
Laboratoire d’Informatique de l’Universit´e de Franche-Comt´e
1ealis´e `a partir de documents de A. Giorgetti
Principe de JavaCC
Pas de :
Eliminer les productions vides
Analyse descendante LL(k)
Eliminer les r´ecursivit´es gauches
Conflits ”lecture-r´eduction” (tenir compte des ”warnings”)
Pour plus de d´etails, voir le tutoriel LookAhead
https://javacc.dev.java.net/doc/lookahead.html
J. Voinot TL - D´etails d’analyse syntaxique avec JavaCC et JJTree 2/7
Productions JavaCC
4 sortes de r`egles en JavaCC
R`egles lexicales : d´efinit la partie r´eguli`ere du langage (unit´es lexicales)
R`egles syntaxiques : r`egles de grammaire en Extended Backus-Naur Form
(EBNF)
”TOKEN MANAGER DECLS” : d´eclarations qui seront incluses dans
l’analyseur lexicale g´en´er´e
R`egles en code Java : Code Java pour les parties hors-contextes de la
grammaire
J. Voinot TL - D´etails d’analyse syntaxique avec JavaCC et JJTree 3/7
Format des r`egles syntaxiques
Equivalente `a la norme EBNF
Pour en savoir plus : http://www.cl.cam.ac.uk/~mgk25/iso-ebnf.html
J. Voinot TL - D´etails d’analyse syntaxique avec JavaCC et JJTree 4/7
ole de JJTree
G´en`ere un fichier .jj pour JavaCC
Avec des annotations syntaxiques de cr´eations de noeuds
Fichier .jjt : syntaxe JavaCC + annotations JJTree (#)
G´en`ere des classes de noeuds
Node (interface)
|- SimpleNode (classe)
|- AST...
|- AST...
Classes AST... si options {MULTI=true ; }sinon tous les noeuds sont de
classe SimpleNode
J. Voinot TL - D´etails d’analyse syntaxique avec JavaCC et JJTree 5/7
1 / 7 100%

Théorie des langages - Détails d`analyse syntaxique avec

La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !