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

 C Discussion :

realisation analyseur lexical


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2013
    Messages : 24
    Par défaut realisation analyseur lexical
    bonjour
    je suis en train de faire un analyseur lexical avec le langage C . lorsque je compile il m'affiche "undefined reference to 'anal_lex' .
    pouvez vous m'aider . merci d'anvance
    projetcompilateur.rar

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 840
    Billets dans le blog
    1
    Par défaut
    Salut

    Je suis désolé de te le dire mais ton truc c'est une catastrophe. Voici en vrac tout ce qui ne va pas
    • tu lis ton fichier via un while feof(). Ce n'est pas la bonne méthode. feof ne sert pas à détecter la fin de fichier mais à indiquer, une fois que ta fonction de lecture ne lit plus rien, si le manque de lecture est dû à une fin de fichier ou autre chose (style une erreur). Accessoirement je ne vois nulle part de lecture du fichier
    • tu fais un free(tab_identif) alors que ce pointeur n'a pas été alloué (bon heureusement il est à NULL donc c'est pas grave. Inutile, mais pas grave.
    • ta fonction UnilexId renvoie la chaine "id". Or une chaine n'étant qu'un pointeur, tu renvoies juste l'adresse de la position de la chaine "id". Or les variables internes aux fonctions étant détruites en fin de fonction, tu renvoies donc l'adresse d'une chaine qui n'existe plus.
    • dans Anal_lex tu alloues 1024 octets via malloc que tu ranges dans chaine puis ta fonction se termine et on ne sait pas ce qu'est devenu cette variable "chaine". En tout cas le pointeur est perdu mais les 1024 octets restent méchamment alloués à l'intérieur.
    • tu mets du code dans un ".h". Ca ça ne se fait pas. Les ".h" étant destinés à être distribués, alors que le code pouvant être gardé confidentiel, ça donne une incompatibilité entre les 2 options. Les .h sont faits pour déclarer les éléments utiles (les macros, les signatures de fonctions). Le code, lui, étant transmis sous forme objet compilé ".o" voire regroupés en librairies ".a"


    Maintenant, concernant ton problème précis, il faudrait que tu dises comment tu compiles ce truc. Je pense que si tu compiles de cette façon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    gcc -c implementation.c
    gcc main.c implementation.o -o implementation
    Ca devrait compiler. Mais avant que cela fonctionne...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Le rar combien un fichier cbp, un projet CodeBlocks donc. Je n'ai pas réussi à linker le bazar mais je ne sais pas pourquoi. J'ai enlevé le fichier h et le fichier c (pas le main l'autre), je les ai remis et la des erreurs et des warnings de compilation à gogogo. Je n'ai pas d'explication sur pourquoi ça compilait sans linker au début.

Discussions similaires

  1. petit analyseur lexical
    Par imadin dans le forum Général Java
    Réponses: 9
    Dernier message: 19/02/2008, 17h49
  2. Analyseur lexical en Pascal
    Par acacia dans le forum Langage
    Réponses: 5
    Dernier message: 29/11/2007, 15h43
  3. probléme dans l'analyseur lexical
    Par the sun dans le forum C#
    Réponses: 9
    Dernier message: 29/05/2007, 11h00
  4. Faire un analyseur lexical
    Par sylsau dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 29/03/2007, 12h41
  5. Analyseur lexical a 3 automates
    Par mehdouch dans le forum C
    Réponses: 2
    Dernier message: 29/03/2006, 11h00

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