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 :

arbre abstrait yacc


Sujet :

C

  1. #1
    Membre régulier
    Inscrit en
    Mai 2004
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2004
    Messages : 103
    Points : 79
    Points
    79
    Par défaut arbre abstrait yacc
    bonjour

    Nous somme entrain de developper un mini compilateur c et on a un probleme ds la construction de l arbre abstrait .

    voila un bout de notre grammaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    contpg : defVar contpg 
      | defFct contpg {	  
    		    Valeur v;
    		    struct Noeud * n;                   
    		    n=CreerNoeud(_CONTPROG,v,NULL);
    		    n->fg=$1; 
    		    n->fd=$2;	
    		    $$=n;
    		    printf("fdg %d\n",$1->TypeNoeud);//18*/
               }
      | /*empty*/
      ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    defFct : type IDF 		   
    		  {                    
     
     		     Valeur v;		     
    		     struct TDS *ptTDS;
                         ptTDS=rechercherAdVarTDS(NotreTable,$1,NumBloc);
    		     $$=CreerNoeud(_DEFFCT,v,&(ptTDS->elt));		    
    		     printf("fdg %d\n",$$->TypeNoeud);//18*/
    		   }  
                       PARO listeDefParam PARF Bloc 
      ;

    le printf ds la deuxième règle affiche bien le bon type et le printf ds la premiere regles affiche nimporte quoi !!!!!!
    Normalement les deux printf doivent afficher la meme chose !!! on ne comprend pas !!!

    merci de nous aider

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 17
    Points : 20
    Points
    20
    Par défaut
    Salut

    A premiere vu cela semble correcte, cependant ca serai cool que tu passe l'ensemble de la grammaire ainsi que l'output de bison (par mail par pitié pas ici), ainsi que tu nous dise si tu as encore des shifts/reduces ou reduces/reduces.

    Si j'ai bien compris tu te plaint que $1 ai un probleme, regarde du coté de l'adresse de $$ au moment de la réduction de defFct puis a tout moment dans la réduction de contpg. Je vois déja que ta regles nul das countpg ne met rien dans $$ et c'est assez etrange.

    Si ca se trouve un problème interviens dans ta grammaire ( c'est meme quasiment sur ).

    Lorsqu'on ne sais plus comment faire avec bison, on sors une feuille de papier, on met le mode verbose, et on regarde les "enterings states, shifting that, reducing rules xxx".

    Regarde si la séquence est respecté sur un code discriminant pour ton probleme.

    pm moi si tu veux de l'aide.

    Hum en passant, tu pourrai me dire dans quel cadre tu fais ce compilateur , avec qui, pourquoi, quel plateform.

    Si je peut te conseiller un humble mais formidable bouquin, regarde:

    "Modern Compiler implementation in " et ensuite tu met le language que tu veux ( C, Java, ML (le meilleur bouquin )).

    D'ailleur si cela ne te derange pas aussi tu peut me dire comment vous aller faire votre translation ?

    IR ou pas ?

    edit: je trouve ta fonction qui réduit la regle defFct bizarre, si ca se trouve tu libere la mémoire du 3eme argument, je ne sais pas, regarde aussi de ce coté.

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

Discussions similaires

  1. Construction d'un arbre syntaxique abstrait
    Par Lithrein dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 14/09/2010, 23h18
  2. Réponses: 7
    Dernier message: 09/10/2008, 13h42
  3. yacc et arbre syntaxique
    Par JullienR dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 23/06/2008, 12h20
  4. Réponses: 1
    Dernier message: 03/01/2007, 15h07
  5. Réponses: 1
    Dernier message: 02/01/2007, 11h22

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