このページを編集する際は,編集に関する方針に従ってください.[]
概要[]
実装[]
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 };