GCC Wikia
Advertisement

このページを編集する際は,編集に関する方針に従ってください.[]

概要[]

実装[]

141 struct cpp_context
142 {
143   /* Doubly-linked list.  */
144   cpp_context *next, *prev;
145 
146   union
147   {
148     /* For ISO macro expansion.  Contexts other than the base context
149        are contiguous tokens.  e.g. macro expansions, expanded
150        argument tokens.  */
151     struct
152     {
153       union utoken first;
154       union utoken last;
155     } iso;
156 
157     /* For traditional macro expansion.  */
158     struct
159     {
160       const unsigned char *cur;
161       const unsigned char *rlimit;
162     } trad;
163   } u;
164 
165   /* If non-NULL, a buffer used for storage related to this context.
166      When the context is popped, the buffer is released.  */
167   _cpp_buff *buff;
168 
169   /* For a macro context, the macro node, otherwise NULL.  */
170   cpp_hashnode *macro;
171 
172   /* True if utoken element is token, else ptoken.  */
173   bool direct_p;
174 };



リンク元

Advertisement