Création de table des symboles

cs_n0ur Messages postés 1 Date d'inscription vendredi 29 décembre 2000 Statut Membre Dernière intervention 7 janvier 2009 - 12 déc. 2008 à 14:08
MILAHA13 Messages postés 10 Date d'inscription mercredi 7 avril 2010 Statut Membre Dernière intervention 22 septembre 2010 - 22 sept. 2010 à 14:59
svp et svp c 'est urgent
jé besoin d'aide , (en module de compilation : l'analyse lexicale et syntaxique )
comment on fait la création de table de symbole ? ( programme en c sous Linux en utilisant l'outil lex / yacc)
merci d'avance

3 réponses

MILAHA13 Messages postés 10 Date d'inscription mercredi 7 avril 2010 Statut Membre Dernière intervention 22 septembre 2010 1
22 sept. 2010 à 14:59
bonjour,
dans le fichier de description flex : fichier.l


%{
#include <stdlib.h>
#include "fichier.tab.h"
#include "fichier.h"

liste table_symboles = NULL;

/* la fonction pointeur_entite
qui étant donnée une entité reconnue, la recherche dans la table des symboles, elle retourne son adresse si elle existe, sinon elle l'insert et retourne son adresse */

liste pointeur_entite
(char *entite) {

liste p;

/* recherche dans la table des symboles */
p = table_symboles;
while (p) {
if ( strcmp( p->entite, entite ) == 0 )
return p;
p = p->svt;
}


/* creation d'un noeud */
p = (liste) malloc(sizeof(noeud));
strncpy(p->entite, entite, 32);
p->entite[31] = '\0'; /* si strlen(entite) > 31 */
p->type = TYPE_INDEFINI;

/* insertion du noeud en tête de liste (LIFO) */
p->svt = table_symboles;
table_symboles = p;

return p;
}

%}
1
cs_exar Messages postés 286 Date d'inscription vendredi 5 décembre 2003 Statut Membre Dernière intervention 22 avril 2012 1
29 déc. 2008 à 13:29
google it !
0
cs_naimat Messages postés 2 Date d'inscription samedi 4 avril 2009 Statut Membre Dernière intervention 2 juin 2011
17 déc. 2009 à 09:48
svp et svp c 'est urgent
jé besoin d'aide , (en module de compilation : l'analyse lexicale et syntaxique )
comment on fait la création de table de symbole ? ( programme en c en utilisant l'outil lex / yacc)
merci d'avance
0
Rejoignez-nous