Exercice : Analyseur lexical FLEX
Répondre à la discussion
Affichage des résultats 1 à 2 sur 2

Exercice : Analyseur lexical FLEX



  1. #1
    ksing

    Exercice : Analyseur lexical FLEX


    ------

    Salut à tous,
    Je suis élève en première année d'informatique industrielle et j'ai besoin d'aide sur l'exercice en attaché s'il vous plaît.
    Ce que je voudrais, c'est de :
    - transformer le programme pour qu'il accepte en entrée un fichier (.txt par exemple) et qu'il donne en sortie un fichier avec les différentes descriptions demandées;
    - et aussi je bloque sur la dernière questions (celle qui demande le type de l'erreur et la chaîne qui pose problem).

    Voici déjà ce que j'ai pu faire:



    Code:
    %{
    int lignes
    %}
    
    chaine \"[^\n"]+\"
    chiffre [0-9]
    lettre [a-zA-Z]
    entier [0-9]+
    MOTCLEF  "if"|"while"|"for"|"do"|"else"|"break"|"case"|"return"
    IDENT {lettre}({chiffre}|{lettre})*
    reel [0-9]+\.[0-9]*|\.[0-9]+
    type   "int"|"float"|"char"|"string"|"long"|"double"
    
    %%
    
    {chaine}          printf("CHAINE : [%s]\n",yytext);
    [ \t\n]+
    ("/*"([^*]|"*"[^/])*"*/")|("/"(\\\n)*"/"[^\n]*)           printf("COMMENTAIRE : [%s]\n" ,yytext);
    
    {reel}            printf("REEL \n",yytext);
    
    {MOTCLEF}         printf("MOTCLEF : [%s]\n",yytext);
    
    "<"|">"|"<="|">="|"=="|"!="       printf("OP_REL : [%s]\n",yytext);
    
    "&&"|"||"|"!"     printf("OP_LOG : [%s]\n",yytext);
    
    "."               printf("Point : [%s]\n",yytext);
    "="               printf("AFFECT : [%s]\n",yytext);
    "+"|"-"|"/"|"*"   printf("OP_ARITHM : [%s]\n", yytext);
    
    "{"|"}"|","|";"|"("|")"           printf("SEP : [%s]\n", yytext);
    
    {type}            printf("TYPE : [%s]\n" ,yytext);
    {IDENT}           printf("IDENTIFICATEUR : [%s]\n" ,yytext);
    {entier}          printf("ENTIER : [%s]\n",yytext);
    .                 printf("** erreur ligne %d ** : caractere inconnue [%s]\n", lignes, yytext);
    
    [\n] lignes++;
    
    %%
    main()
    {
    printf("Donner une expression:\n");
    yylex();
    }

    -----
    Images attachées Images attachées  
    Dernière modification par JPL ; 12/04/2015 à 00h11. Motif: Ajout de la balise Code (#) pour garder l'indentation

  2. #2
    ksing

    Re : Exercice : Analyseur lexical FLEX

    Merci à ceux qui voudront m'aider...

Discussions similaires

  1. Analyseur lexical : lexème et unité lexicale.
    Par chakib.lem.1 dans le forum Programmation et langages, Algorithmique
    Réponses: 2
    Dernier message: 21/03/2013, 22h37
  2. ANALYSEUR LEXICAL : Expression régulières.
    Par chakib.lem.1 dans le forum Programmation et langages, Algorithmique
    Réponses: 2
    Dernier message: 18/03/2013, 11h52
  3. Flex
    Par MANTA.. dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 30/04/2012, 10h38
  4. Flex & Myeclipse 10
    Par MANTA.. dans le forum Programmation et langages, Algorithmique
    Réponses: 4
    Dernier message: 14/04/2012, 19h03
  5. Référencement lexical systématique sur le Net
    Par invite2ca586bb dans le forum Internet - Réseau - Sécurité générale
    Réponses: 1
    Dernier message: 17/11/2006, 07h48