Rim Chaabane. Analyse dynamique de ... - Université Paris 8
Rim Chaabane. Analyse dynamique de ... - Université Paris 8
Rim Chaabane. Analyse dynamique de ... - Université Paris 8
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Analyse</strong> <strong>dynamique</strong> <strong>de</strong> programmes C<br />
69 val_t Val;<br />
70 }token_t;<br />
71<br />
72 /*****<br />
73 #<strong>de</strong>fine getTokenVal(x) ((x).Val)<br />
74 #<strong>de</strong>fine setTokenVal(x,y) ((x).Val = (y))<br />
75 #<strong>de</strong>fine getTokenType(x) ((x).Type)<br />
76 #<strong>de</strong>fine setTokenType(x,y) ((x).Type = (y))<br />
77 #<strong>de</strong>fine getTokenCo<strong>de</strong>(x) ((x).Co<strong>de</strong>)<br />
78 #<strong>de</strong>fine setTokenCo<strong>de</strong>(x,y) ((x).Co<strong>de</strong> = (y))<br />
79 #<strong>de</strong>fine getTokenSym(x) ((x).Sym)<br />
80 #<strong>de</strong>fine setTokenSym(x,y) ((x).Sym = (y))<br />
81 #<strong>de</strong>fine getTokenTypequal(x) ((x).Typequal)<br />
82 #<strong>de</strong>fine setTokenTypequal(x,y) ((x).Typequal = (y))<br />
83 #<strong>de</strong>fine getTokenSclass(x) ((x).Sclass)<br />
84 #<strong>de</strong>fine setTokenSclass(x,y) ((x).Sclass = (y))<br />
85 #<strong>de</strong>fine getTokenPflag(x) ((x).Pflag)<br />
86 #<strong>de</strong>fine setTokenPflag(x,y) ((x).Pflag = (y))<br />
87 #<strong>de</strong>fine getTokenTab(x) ((x).Tab)<br />
88 #<strong>de</strong>fine setTokenTab(x,y) ((x).Tab = (y))<br />
89 #<strong>de</strong>fine getTokenTok(x) ((x).Tok)<br />
90 #<strong>de</strong>fine setTokenTok(x,y) ((x).Tok = (y))<br />
91 ********/<br />
92<br />
93<br />
94<br />
95 /*CUT symEntry*/<br />
96 type<strong>de</strong>f struct symentry_t {<br />
97 int tag; /* maker */<br />
98 unsigned int entry; /* entry number */<br />
99 struct symentry_t *next; /* link to next symentry */<br />
100 char *id; /* pointer to i<strong>de</strong>ntifier string */<br />
101 unsigned char sclass; /* storage class co<strong>de</strong> */<br />
102 unsigned char typequal; /* type qualifier */<br />
103 unsigned char level; /* scope level */<br />
104 unsigned char nspace; /* name space i<strong>de</strong>ntifier */<br />
105 char ass; /* used to flag assignment */<br />
106 type_expr * type; /* object type */<br />
107 val_t val; /* symbol value information */<br />
108 char *pname; /* previous file name */<br />
109 char *fname; /* file name pointer */<br />
110<br />
111 #if 0<br />
112 int calls; /* number of local references ma<strong>de</strong> */<br />
113 int Nref;<br />
114 struct symentry_t **ref; /* references */<br />
115 #endif<br />
116<br />
117 }symentry_t;<br />
118 /*END CUT*/<br />
119<br />
120 type<strong>de</strong>f struct {<br />
121 stab_t stab;<br />
122<br />
123 co<strong>de</strong>_t CODE;<br />
124 eicstack_t ARgar; /* for garbage collection of AR units*/<br />
125 unsigned int ARsize,sp;<br />
126 AR_t *AR; __ /* static activation record */<br />
127 unsigned int LARsize,lsp;<br />
128 AR_t *LAR;<br />
129 extern_t *link;<br />
130<br />
131 }environ_t;<br />
132<br />
133 #<strong>de</strong>fine getenvco<strong>de</strong>(env) ((env)->CODE)<br />
134<br />
135 type<strong>de</strong>f struct {<br />
136 int n; /* number of enumerators */<br />
122