IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Générateurs de compilateur Discussion :

générateur d'analyse lexical avec FLEX


Sujet :

Générateurs de compilateur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 4
    Par défaut générateur d'analyse lexical avec FLEX
    Je vous fournis mon Code ;c’est une génération d’un analyseur utilisable avec le C.
    le code est généré avec l'outil FLEX
    j’espère que vous m’aidez au niveau de trois point :

    * la lecture des données d’un fichier(un fichier source en langage C),ainsi de corrigé quelque faute

    ** prière de me donner une idée concernant les option (%option :où on déplace cette instruction)

    *** une idée concernant yyrestart(si je peut l’utiliser pour intégrer mon fichier de test)
    voici le code proposé
    %{

    Int noligne=0 ;

    %}

    Chaine \ "[^\n]\ "
    Espace [^\t\040]
    Alpha [a-zA-Z]
    Chiffre [0-9]
    Mot clé [FOR ,IF ,ELSE,WHILE,BREAK,SWITCH,CASE,DO]
    Id [int,float,double,bool,char,string,CONST]
    nom ({alpha}|{chiffre}|\$)({alpha}|{chiffre}|[_.\-/$])*
    num1 [-+]?{chiffre}+\.?([eE][-+]?{chiffre}+)?
    num2 [-+]?{chiffre}*\.{chiffre}+([eE][-+]?{chiffre}+)?
    nombre {chiffre}+

    %%

    {espace} /* ne rien faire avec les espaces*/

    //recherche des commentaires

    "/*" {

    int c;

    while((c = yyinput()) != 0)
    {
    if(c == '\n')
    ++mon_no_ligne;
    else if(c == '*')
    {

    if((c = yyinput()) == '/')

    break;

    else
    unput(c);

    }

    }

    Printf(le contenu du commentaire est "%c ",yytext) ;

    }

    //recherche des nombres

    {nombre} printf("nombre %c",yytext) ;

    //calcule du nombre de lignes

    \n noligne++;

    {nom} printf("nom est %c ",yytext) ;

    {chaine} printf("les chaine introduite %c ",yytext) ;

    %%

    //la fonction main

    main()
    {
    yylex() ;

    yyin=fopen(" test.txt", ‘r’) ;

    /* test.txt est un fichier texte qui contient un code en langage C dont il est la source pour analyser */

    }
    merci d'avance

  2. #2
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 4
    Par défaut c'est urgent
    j'ai besoin d'une réponse SVP

Discussions similaires

  1. Réponses: 0
    Dernier message: 22/12/2014, 13h28
  2. la génération d'un analyseur lexical avec l'outil FLEX
    Par capoBN dans le forum Générateurs de compilateur
    Réponses: 0
    Dernier message: 02/04/2011, 11h43
  3. Réponses: 2
    Dernier message: 11/04/2007, 18h25
  4. [Outil]Générateur OpenSource d'image avec zones cliquables
    Par sunvialley dans le forum Webdesign & Ergonomie
    Réponses: 3
    Dernier message: 27/12/2006, 08h39
  5. Requête analyse croisée avec MySQL
    Par drakenzara dans le forum Requêtes
    Réponses: 4
    Dernier message: 12/09/2006, 10h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo