Flex bison?

flex bison?

SVP j'ai un tp en compilation de construire des analyseurs avec flex et bison mon probléme je ne sais pas comment traduit les régles de la grammaire :
E>E+T|T
T>T*F|F
F>(E)|degit
SVP ME DONNEZ les commandes en flex necessaires merci
Configuration: Windows XP
Internet Explorer 6.0

8 réponses

  1. Fais un fichier fichier.y et tapes ce qui suit:

    %{
    #include <stdio.h>
    %}
    %token degit
    %%
    E : E + T
    |T
    ;
    T : T * F
    |F
    ;
    F : (E)
    |DEGIT
    ;
    %%
    #include "lex.yy.c"

    Et puis un deuxième fichier fichier2.l

    %{
    #include<stdio.h>
    int cpt=1;
    %}
    %%
    "digit," return(DEGIT);
    [0-9]+ {yylval=atoi(yytext);
    return(NB);
    }
    [()$+*/-] return(yytext[0]);
    [ \t] ;
    \n cpt++;
    . printf("Erreur Lexical à la ligne %d \n",cpt);
    %%

    Pour compiler il faut taper les commandes suivantes:
    #bison fichier.y --> b.tab.c
    #flex fichier.l --> lex.yy.c
    #gcc fichier.tab.c -o exe -ly -lfl
    1
    1. Ohhh desolé mdrrrrrrrr j'ai pas vu l'année 2007 !!!
      jspr que depuis vous ete devenu un expert !
      mdrr desole j'ai pas vu mdrrr je suis tomber dessus par hasard !!!
      0
      1. merci , j'ai eu moi l'information en 2008 :)

        de toute facon merci pour tout le monde :)
        0
        1. Bonjour !!
          Moi je l'ai eu en 2009 !! :) super site thank you very much !!!
          0
          1. tu marque sa ou ? dans le code source ?
            0