L'anlyse lexical avec lex

[debutante]

Bonjour,
je cherche la documentation sur lex, et si c'est possible des exemples pour la réalisation d'un anlyseur lexical en utilisant lex.

aider moi sil vous plai.
Configuration: Windows XP
Internet Explorer 6.0

18 réponses

  1. bonjour,
    je cherche un exemple d'un analyseur lexical pour le langage c Shell. et merci beaucoup.
    0
    1. programe en java d'analyse lexical
      0
      1. bonjour Nico#

        merci beaucoup pour les cours que vous m'avez envoyé, sa ma vraiment aidé.et si vous avez toujours autres choses qui peut m'aidé vous pouvez me les envoyer, surtout pour le yacc car j'ai toujours des problemes.

        merci.
        0
        1. mon adresse est : didja_28@hotmail.com
          0
          1. Alors donne moi une adresse a laquelle je peut te l'envoyer
            0
            1. merci beaucoup Nico#, et pour le cours sa m'interesse bien sur.

              merci.
              0
              1. Si sa t'interesse je peut t'envoyer un mini cour sur lex et yacc
                0
                1. >bison -d calc.y
                  >mv calc.tab.h calc.h
                  >mv calc.tab.c calc.y.c
                  >flex calc.lex
                  >mv lex.yy.c calc.lex.c
                  >gcc -c calc.lex.c -o calc.lex.o
                  >gcc -c calc.y.c -o calc.y.o
                  >gcc -o calc calc.lex.o calc.y.o -ll -lm [eventuellement -lfl]

                  Avec tout fichier Lex qui s'appelle calc.lex et ton fichier yacc calc.y

                  Désoler c'est avec Bison et Flex mais sinon c'est pareil
                  0
                  1. merci beaucoup Nicau#, c'est trés gentil de ta part. j'attent avec impatince votre reponse.

                    merci.
                    0
                    1. Aucun probleme manou mais ce soir je n'ai malheureusement pas le temps de le faire cependant je n'y manquerait pas demain soir.
                      0
                      1. je vous remercie encore une fois pour votre reponse.
                        justement moi je travaille avec "le Parser Generator version 1.12" , ce dernier contient un fichier .l (pour lex) et un fichier.y ( pour yacc) .aprés l'exécutions de ces deux fichiers, le Parser génère le code source de l'anlyseur lexical en c++ (et aussi le code source de l'anlyseur syntaxique).
                        j'espère que vous avez bien compri avec quoi je travaille, j'aimerai bien que vous m'expliqué plus votre dernière reponse.

                        merci.
                        0
                        1. Non il faut creer votre fichier Lex et votre fichier Yacc pour ensuite le passer en ligne de commande comme le compilateur G++ avec C++
                          0
                          1. bonjour

                            Merci beaucoup pour votre reponce Nico#,je vais essayé d'appliquer votre conseil.
                            je voulais vous demander si vous avez une idée comment faire pour indiquer au programme lex le fichier a analyser,d'une autre façon est ce que je doit indiquer le chemin ou se trouve le fichier a analyser ou comment?

                            merci.
                            0
                            1. Il faut que tu commence par definir tes regles

                              exemple pour le lanage pascal C'est du C

                              c = getchar();
                              switch (c) {
                              case ':' : c=getchar();
                              if (c== '=')
                              {
                              unite_lex = AFFECTATION;
                              c= getchar();
                              }
                              else
                              unite_lex = DEUX_POINTS;
                              break;
                              case '<' : unite_lex := OPREL;
                              c= getchar();
                              if (c=='=')
                              {
                              attribut = INFEG;
                              c = getchar();
                              }
                              else
                              attribut := INF
                              break;
                              case .....
                              0
                              1. bonjour

                                merci beaucoup Nico#, je doit realiser un analyseur lexical en utilisant lex pour une specification d'une interface homme machine ( une interface graphique ) et cette specification est ecrite dans un fichier texte que je doit analyser et afficher les erreurs.
                                si vous pouvez m'envoyé quelques idées pour mon probleme, je vous remercie d'avance.
                                0
                                1. Salut, Et ton probleme pour la realisation de l'analyseur est ou exactement.
                                  0
                                  1. merci beaucoup pour votre reponse, mais j'ai toujours besoin d'un aide pour la realisation d'un anlyseur lexical avec lex.

                                    a part ce problème, je doit aussi realiser un analyseur syntaxique avec le yacc. Si vous avez quelques choses pour m'aidée, aider moi s'il vous plai.

                                    je vous remercie encore une fois. aider moi....
                                    0
                                    1. Contributeur
                                      Bonjour,

                                      C'est domage il fut une époque ou j'en avais réalisé un mais j'ai perdu ces données :'(
                                      Toujours est il que tu peux regarde ces quelques exemples pour comprendre comment ca marche :
                                      http://veille-srv.inist.fr/dilib/v04Veille/Documentation/Tutorial/4/2/tp.fre.html

                                      Voici un autre lien sur lex :
                                      http://www.google.fr/url?sa=t&ct=res&cd=6&url=http%3A%2F%2Fforum.topflood.com%2Ftutorial-yacc-t3166.html&ei=EWyDR6nyEY6W-AKz6pjnDw&usg=AFQjCNFoYRlwVpFeG6lUpkC0AbMlaDrCrw&sig2=rYajUzvQhGo9gtfDTWgL5Q
                                      0