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 :

[GCC,FLEX,BISON] Mini Compilateur problème


Sujet :

Générateurs de compilateur

  1. #1
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 106
    Points : 85
    Points
    85
    Par défaut [GCC,FLEX,BISON] Mini Compilateur problème
    Salut a tous je suis entrain de réalisé un compilateur simple avec l'analyseur lexicale et syntaxique et reçu cette erreur lors de la Compilation du fichier exécutable avec la commende :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    [me@localhost ~]$ gcc bt.tab.c lex.yy.c -lfl -ly -o com.exe
    am.l: In function ‘yylex’:
    am.l:12: erreur: expected identifier before ‘;’ token
    veuillez svp m’éclairer sur la nature et la cause de cette erreur.

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 372
    Points : 23 628
    Points
    23 628
    Par défaut
    Ça signifie « Identifiant attendu avant " ; " ». Tu as très certainement fait une faute de frappe dans ton programme C ou dans un des blocs associés à tes tokens.

    À mon avis, tu as dû mettre un bloc vide quelque part, c'est Lex qui ajoute le « ; » et le tout résulte en une expression incohérente.

    J'ajoute que retrouver l'erreur et la localiser dans ton programme fait partie du travail, sinon tu seras incapable de t'en sortir la prochaine fois.

  3. #3
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 106
    Points : 85
    Points
    85
    Par défaut
    merci j'ai retrouvé l'erreur, elle été dans le ficher .l j'avais déclarer END. et j'aivais le END dans les token dans le ficher .y(bison).

    mais la je suis tomber sur une autre erreur que j'ai déjà vue chez un ami qui cherche toujours a la résoudre ou au moin la comprendre.

    voila l'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    [nadjibnet@localhost ~]$ gcc bt.tab.c lex.yy.c -lfl -ly -o comp.exe
    /usr/bin/ld: cannot find -ly
    collect2: ld a retourné 1 code d'état d'exécution
    au passage SVP que fait le "-lfl" et "-ly" j'ai chercher dans gcc --help (y a pas !!!).


    et merci infiniment

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 372
    Points : 23 628
    Points
    23 628
    Par défaut
    Citation Envoyé par nadjibnet Voir le message
    voila l'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    [nadjibnet@localhost ~]$ gcc bt.tab.c lex.yy.c -lfl -ly -o comp.exe
    /usr/bin/ld: cannot find -ly
    collect2: ld a retourné 1 code d'état d'exécution
    au passage SVP que fait le "-lfl" et "-ly" j'ai chercher dans gcc --help (y a pas !!!).
    C'est parce qu'en fait, c'est une option du linker mais c'est effectivement le premier paramètre à connaître : « -l » (L minuscule) lie à ton programme la bibliothèque aux fonctions de laquelle ton programme se réfère, en considérant implicitement que celles-ci sont préfixées par « lib ». Donc « -lfl » établit les liens vers la bibliothèque « libfl », qui contient en fait les fonctions de flex, qui est le Lex de GNU.

    Dans le même esprit « -ly » crée les liens vers liby, qui est la bibliothèque de Yacc. Le GNU Yacc s'appelle « bison », mais la bibliothèque porte quand même le même nom.

    Il y a de fortes chances pour que Bison ne soit pas installée car sur ma Fedora, la bibliothèque (statique) se trouve dans un package de développement.

    Si tu travailles sur une Linux Redhat ou une Fedora, essaie « yum install bison-devel » en root.

  5. #5
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 106
    Points : 85
    Points
    85
    Par défaut
    Merci infiniment...Tu ma sauvé.
    J'ai installer BackTrack4 just avant de lire ta réponce j'ai compilé ça marche.
    Sur Mandriva (il est basé sur Fedora) toujours rien, quand j'applique la commende que tu ma donnée je reçoit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bash: yum : commande introuvable
    Bon ça je ne c'est pas si ça peut vous être utile
    le bison est installé Preuve)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    [nadjibnet@localhost ~]$ bison --version
    bison (GNU Bison) 2.4.2
    Écrit par Robert Corbett et Richard Stallman.
     
    Copyright © 2010 Free Software Foundation, Inc.
    Ce logiciel est libre; voir les sources pour les conditions de
    reproduction. AUCUNE garantie n'est donnée; tant pour des raisons
    COMMERCIALES que pour RÉPONDRE À UN BESOIN PARTICULIER.

    et merciiiiiiiiiiiiiiiiiiiii encore

  6. #6
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 106
    Points : 85
    Points
    85
    Par défaut
    c bon, probléme résolu a 100%, j'ai installé le Package suivant :

    http://download.opensuse.org/reposit...blin2.i386.rpm

    Merci Obsidian

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Flex/Bison] Compilateur PHP
    Par volfuco dans le forum Générateurs de compilateur
    Réponses: 0
    Dernier message: 10/05/2010, 09h04
  2. [Flex/Bison] Réaliser un compilateur
    Par informaticienne_ing dans le forum Générateurs de compilateur
    Réponses: 0
    Dernier message: 30/04/2009, 22h45
  3. [Flex/Bison] problème avec la récursivité
    Par la_praline dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 09/09/2008, 13h41
  4. [Flex / Bison] Problème de compilation sous Visual C++
    Par levalp dans le forum Générateurs de compilateur
    Réponses: 1
    Dernier message: 25/07/2006, 15h26
  5. [Flex & Bison] Problème avec yyFlexLexer
    Par kiroukou dans le forum Autres éditeurs
    Réponses: 15
    Dernier message: 26/05/2005, 13h05

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