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 :

Problème dans l'utilisation de l'option --defines=[FILE] de Bison.


Sujet :

Générateurs de compilateur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 142
    Par défaut Problème dans l'utilisation de l'option --defines=[FILE] de Bison.
    Comme vous l'avez peut être déjà remarqué dans un fil récent, je me mets au couple Bison/Flex et le problème du jour est l'utilisation de l'option --defines=[FILE] de Bison.

    Si j'ai bien compris, cette option force Bison à générer un header et permet d'en spécifier le nom. Elle est identique a l'option -d qui elle ne permet pas de choisir le nom du header.
    J'ai essayé cette option et je tombe sur un os.


    Voici les déclarations Bison que j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    %define api.value.type union  /*Construit YYSTYPE a partir des types ci dessous */
    %token <double> NUM 
    %token <symrec*> VAR FNCT 
    %type <double> exp
    La compilation en un seul fichier (sans l'option --defines=[FILE]) fournit dans le fichier de sortie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    /* ..... */
    /* Token type.  */
    #ifndef YYTOKENTYPE
    # define YYTOKENTYPE
      enum yytokentype
      {
        NUM = 258,
        VAR = 259,
        FNCT = 260,
        NEG = 261
      };
    #endif
     
    /* Value type.  */
    #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
    typedef union YYSTYPE YYSTYPE;
    union YYSTYPE
    {
     
    #line 140 "gram.tab.c" /* yacc.c:355  */
      /* NUM  */
      double NUM;
      /* exp  */
      double exp;
      /* VAR  */
      symrec* VAR;
      /* FNCT  */
      symrec* FNCT;
    };
    /*.....*/
    Lorsque je compile le meme fichier de specifications avec l'option --defines=[FILE]
    j'obtiens dans le header :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    /* Value type.  */
    #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
    typedef union YYSTYPE YYSTYPE;
    union YYSTYPE
    {
     
    #line 62 "toto.h" /* yacc.c:1909  */
      /* NUM  */
      double NUM;
      /* exp  */
      double exp;
      /* VAR  */
      symrec* VAR;
      /* FNCT  */
      symrec* FNCT;
      /* NUM  */
      double NUM;
      /* exp  */
      double exp;
      /* VAR  */
      symrec* VAR;
      /* FNCT  */
      symrec* FNCT;
    };
    # define YYSTYPE_IS_TRIVIAL 1
    # define YYSTYPE_IS_DECLARED 1
    #endif
    Resultat des courses, chaque champs est defini deux fois dans l union YYSTYPE.... ce qui provoque des erreurs lors de la compilation du code c (évidemment).
    Même chose lorsque j'utilise l'option -d...

    Une idée ?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 142
    Par défaut
    Il semble que ce soit un bug connu qui a été réglé dans la version 3.0.3 de bison.
    Il me reste à voir comment le mettre a jour

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/04/2008, 00h01
  2. Problème dans l'utilisation d'un tableau
    Par NoiBe dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 16/05/2007, 16h19
  3. problème dans l'utilisation de g_access()
    Par bit_o dans le forum GTK+ avec C & C++
    Réponses: 18
    Dernier message: 02/03/2007, 14h57
  4. Problème dans l'utilisation du WebBrowser
    Par MCShiff dans le forum Windows Forms
    Réponses: 2
    Dernier message: 10/01/2007, 12h52
  5. probléme dans l'utilisation d'un tableau
    Par hamoudasafira dans le forum C++
    Réponses: 10
    Dernier message: 13/12/2006, 08h50

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