Info

Disponible uniquement sur Etudier
  • Pages : 5 (1024 mots )
  • Téléchargement(s) : 0
  • Publié le : 21 novembre 2010
Lire le document complet
Aperçu du document
Projet Compilation FLEX et YACC à envoyer à : ludovic.mignot@univ-rouen.fr
au plus tard pour le 6 janvier Nombre d’étudiants maximal par groupe : 2 N’oubliez pas d’indiquer les deux noms du groupe

1

Mise en Page Automatique (FLEX) :

Vous devrez réaliser un programme de mise en page automatique. À partir d’un fichier source utilisant des marqueurs (des motifs particuliers), l’éxécution devotre programme doit produire un document texte mis en page selon plusieurs contraintes. Un exemple de fichier source (document à mettre en page) vous est fourni section 4. L’éxécution sur cet exemple du programme demandé doit produire un fichier texte similaire à celui fourni section 5. Les numéros de ligne sont inscrits à titre indicatif et ne figurent pas dans les fichiers. Vous devrez décomposerles documents en sections et sous sections (lignes 3, 7, 34 et 41 sur l’exemple source), possédant ou non un titre. Vous devrez définir des environnements de définitions, lemmes, etc... (lignes 9, 21 et 42 sur l’exemple source). Chacun de ces environnements seront numérotés (lignes 3, 8, 10, 17, 26, 30 et 32 de l’exemple produit). Vous pouvez utiliser une double numérotation pour les sous sections(numéro de section suivi du numéro de sous section). Pensez aux outils habituels de mise en page automatique pour les fonctionnalités à ajouter. Par exemple, une combinaison de sauts de lignes et de caractères invisibles (tabulations, espace...) devra être remplacée par un unique saut de ligne (lignes 37 à 40 de l’exemple source, ligne 29 de l’exemple produit). Tout comme toute combinaison deblancs en début de ligne (ligne 36 du fichier source, ligne 28 du fichier produit). Les commentaires devront être effacés lors de la production de la sortie. Si vous utilisez des caractères spécifiques pour le commentaire, pensez à définir des caractères d’échappement pour pouvoir les utiliser en dehors des commentaires (lignes 28 et 30 du fichier source,lignes 22 et 23 du fichier produit). Les environnementsde définition, lemmes, etc ne doivent pas s’imbriquer : les cas de ce genre seront gérés comme vous le souhaitez (soit par un effacement, soit par une erreur, ou tout autre choix...). Vous serez évalués sur la fonctionnalité de votre analyseur, ainsi que sur l’intelligence de la programmation (utilisation de fonctions définies, précision et concision des expressions rationnelles utilisées, ...).Bonus : libre à vous de gérer entrées et sorties multiples, et d’ajouter des fonctionnalités (gestion d’un titre, mise en page avancée, etc...).

2

Calculatrice Scientifique (FLEX et YACC) :

Vous étendrez la calculatrice commencée en TP. Vous ajouterez diverses fonctions de calculs (sinus, cosinus,...) que vous trouverez définies dans math.h. La grammaire utilisée ainsi que l’analyseur lexicaldevront être modifiés en conséquence. Vous serez évalués sur la fonctionnalité de votre calculatrice (nombres de fonctions utilisables, ...), ainsi que sur l’intelligence de la programmation (utilisation de fonctions définies, grammaires et expressions rationnelles utilisées,...). Bonus : gestion de variables pour stocker des valeurs, gestion des nombres complexes, gestion des nombres binaires,héxadécimaux, etc...

3

Contenu de l’Archive à Envoyer

Vous enverrez une archive contenant vos fichiers sources (.l et .y ainsi que tout autre fichier utile) ainsi qu’un exemple pour l’exercice 1 contenant toutes les fonctionnalités implémentées (un fichier source et un fichier produit), permettant de décrire la syntaxe utilisée et les options implémentées.

1

4
( 1) ( 2) ( 3) ( 4) ( 5) ( 6)( 7) ( 8) ( 9) (10) (11) (12) (13) (14) (15) (16) (17) (18) (19) (20) (21) (22) (23) (24) (25) (26) (27) (28) (29) (30) (31) (32) (33) (34) (35) (36) (37) (38) (39) (40) (41) (42) (43) (44) (45)

Exemple source
Voila un exemple de fichier source a analyser. \sec{Avec un titre} Les sections sont numerotees. On peut egalement definir des environnements particuliers. Les sous sections font...
tracking img