Expose lex corriger et readapter fusionne
Introduction Lex permet de créer automatiquement le code source d ? un analyseur lexical à partir d ? un ?chier construit par l ? utilisateur Le code source en c obtenu peut être complété par celui d ? un analyseur syntaxique construit gr? ce à YACC L ? utilitaire Lex lit le ?chier lex et construit le ?chier lex yy c nom imposé par Lex qui contient le code source de l ? analyseur I- Présentation de Lex Lex est un langage de spéci ?cation d ? analyseurs lexicaux Un programme en lex dé ?nit un ensemble de schema qui sont applicables à un ux textuel Il prend en entrée la dé ?nition des unités lexicales expression régulière produit le code source C d ? un AFD minimal permettant de reconna? tre les mots du langage spéci ?é par l ? expression régulière L ? automate construit dé ?ni la fonction yylex void qui constitue l ? analyseur lexical Une modi ?cation du langage entraine une regénération du code de l ? analyseur I- Structure d ? un ?chier Lex Les ?chiers Lex ont pour extension l ? Leur structure est la suivante Partie Déclarations pour le compilateur C Partie Dé ?nitions régulières Partie Règles traduction Partie Fonctions C supplémentaires Explication de la structure du ?chier Lex ? La partie se compose de déclarations C qui seront simplement recopiées au debut du ?chier produit Cette partie et les symboles et qui l ? encadrent peuvent être omis ? La partie se compose des fonctions C qui seront simplement recopies à la ?n du ?chier produit ? Partie Les dé ?nitions régulières Les dé ?nitions régulières sont de la forne identi ?cateur expressionRégulière Exemple lettre a-zA-Z chi ?re - CLes identi ?cateur dé ?nis peuvent être utiliser dans les règles et dans les dé ?nitions suivantes Exemple lettre a-zA-Z chi ?re - alphanum lettre chi ?re ? Partie Les règles de traduction Les règles sont sous la forme expressionRégulière action o? expression régulière est ecrit au debut de ligne et action est un morceau de code c qui sera recopiée tel quel au bon endroit dans la fonction yylex La fonction yylex renvoie chaque fois qu ? une expression que vous avez spéci ?ée se trouve dans la chaine entrée et lorsque la ?n du ?chier est rencontrée Chaque appel à yylex analyse un jeton en supposant un retour lorsque yylex est appellée à nouveau elle reprend o? elle s ? est arrêtée Remarque La compilation du ?chier lex avec l'option -t lui fait écrire sa sortie sur stdout plutôt que sur lex yy c a ?n qu'il puisse être redirigé I- - Jargon de Lex CI- - Avantages et inconvénients de LEX Avantages ? Gain de temps à la conception de l ? analyseur lexical ? Souplesse et optimisation automatique des ux dans l ? analyseur ? Avantages du C La rapidité d ? exécution Inconvénients ? Code source volumineux ? Méta-langage di ?cile à maitriser et parfois peu cohérent
Documents similaires










-
38
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Aucune attribution requise- Détails
- Publié le Jan 20, 2021
- Catégorie Law / Droit
- Langue French
- Taille du fichier 51.6kB