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:
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:
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