19.06.2014 Views

Rim Chaabane. Analyse dynamique de ... - Université Paris 8

Rim Chaabane. Analyse dynamique de ... - Université Paris 8

Rim Chaabane. Analyse dynamique de ... - Université Paris 8

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!