ROSE 0.11.145.367
generated.h
1#ifndef Rose_Traits_generated_h
2#define Rose_Traits_generated_h
3namespace Rose {
4namespace Traits {
5namespace generated {
6// Class: AccessModifier
7template <> struct describe_field_t<SgAccessModifier,SgAccessModifier::access_modifier_enum,&SgAccessModifier::p_modifier> {
10 static constexpr size_t position{0};
11 static constexpr char const * const name{"modifier"};
12 static constexpr char const * const typestr{"SgAccessModifier::access_modifier_enum"};
13 static constexpr bool traverse{false};
14 static constexpr auto mbr_ptr{&SgAccessModifier::p_modifier};
15 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16 using bind = Desc<SgAccessModifier, SgAccessModifier::access_modifier_enum SgAccessModifier::*, &SgAccessModifier::p_modifier>;
17};
18template <> struct describe_node_t<SgAccessModifier> {
19 using node = SgAccessModifier;
20 using base = SgModifier;
21 static constexpr char const * const name{"AccessModifier"};
22 static constexpr unsigned long variant{1};
23 static constexpr bool concrete{true};
26};
27template <> struct node_from_variant_t<1> { using type = SgAccessModifier; };
28
29// Class: ActualArgumentExpression
30template <> struct describe_field_t<SgActualArgumentExpression,SgName,&SgActualArgumentExpression::p_argument_name> {
32 using field_type = SgName;
33 static constexpr size_t position{0};
34 static constexpr char const * const name{"argument_name"};
35 static constexpr char const * const typestr{"SgName"};
36 static constexpr bool traverse{false};
37 static constexpr auto mbr_ptr{&SgActualArgumentExpression::p_argument_name};
38 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
39 using bind = Desc<SgActualArgumentExpression, SgName SgActualArgumentExpression::*, &SgActualArgumentExpression::p_argument_name>;
40};
41template <> struct describe_field_t<SgActualArgumentExpression,SgExpression*,&SgActualArgumentExpression::p_expression> {
43 using field_type = SgExpression*;
44 static constexpr size_t position{1};
45 static constexpr char const * const name{"expression"};
46 static constexpr char const * const typestr{"SgExpression*"};
47 static constexpr bool traverse{true};
48 static constexpr auto mbr_ptr{&SgActualArgumentExpression::p_expression};
49 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
50 using bind = Desc<SgActualArgumentExpression, SgExpression* SgActualArgumentExpression::*, &SgActualArgumentExpression::p_expression>;
51};
54 using base = SgExpression;
55 static constexpr char const * const name{"ActualArgumentExpression"};
56 static constexpr unsigned long variant{2};
57 static constexpr bool concrete{true};
60};
61template <> struct node_from_variant_t<2> { using type = SgActualArgumentExpression; };
62
63// Class: AbsOp
64template <> struct describe_node_t<SgAbsOp> {
65 using node = SgAbsOp;
66 using base = SgUnaryOp;
67 static constexpr char const * const name{"AbsOp"};
68 static constexpr unsigned long variant{3};
69 static constexpr bool concrete{true};
71 using fields_t = mp::List<>;
72};
73template <> struct node_from_variant_t<3> { using type = SgAbsOp; };
74
75// Class: AdaAccessType
76template <> struct describe_field_t<SgAdaAccessType,SgType*,&SgAdaAccessType::p_base_type> {
77 using parent = SgAdaAccessType;
78 using field_type = SgType*;
79 static constexpr size_t position{0};
80 static constexpr char const * const name{"base_type"};
81 static constexpr char const * const typestr{"SgType*"};
82 static constexpr bool traverse{true};
83 static constexpr auto mbr_ptr{&SgAdaAccessType::p_base_type};
84 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
85 using bind = Desc<SgAdaAccessType, SgType* SgAdaAccessType::*, &SgAdaAccessType::p_base_type>;
86};
87template <> struct describe_field_t<SgAdaAccessType,bool,&SgAdaAccessType::p_is_general_access> {
88 using parent = SgAdaAccessType;
89 using field_type = bool;
90 static constexpr size_t position{1};
91 static constexpr char const * const name{"is_general_access"};
92 static constexpr char const * const typestr{"bool"};
93 static constexpr bool traverse{false};
94 static constexpr auto mbr_ptr{&SgAdaAccessType::p_is_general_access};
95 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
96 using bind = Desc<SgAdaAccessType, bool SgAdaAccessType::*, &SgAdaAccessType::p_is_general_access>;
97};
98template <> struct describe_field_t<SgAdaAccessType,bool,&SgAdaAccessType::p_is_anonymous> {
99 using parent = SgAdaAccessType;
100 using field_type = bool;
101 static constexpr size_t position{2};
102 static constexpr char const * const name{"is_anonymous"};
103 static constexpr char const * const typestr{"bool"};
104 static constexpr bool traverse{false};
105 static constexpr auto mbr_ptr{&SgAdaAccessType::p_is_anonymous};
106 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
107 using bind = Desc<SgAdaAccessType, bool SgAdaAccessType::*, &SgAdaAccessType::p_is_anonymous>;
108};
109template <> struct describe_node_t<SgAdaAccessType> {
110 using node = SgAdaAccessType;
111 using base = SgType;
112 static constexpr char const * const name{"AdaAccessType"};
113 static constexpr unsigned long variant{4};
114 static constexpr bool concrete{true};
115 using subclasses_t = mp::List<>;
117};
118template <> struct node_from_variant_t<4> { using type = SgAdaAccessType; };
119
120// Class: AdaAcceptStmt
121template <> struct describe_field_t<SgAdaAcceptStmt,SgFunctionParameterScope*,&SgAdaAcceptStmt::p_parameterScope> {
122 using parent = SgAdaAcceptStmt;
124 static constexpr size_t position{0};
125 static constexpr char const * const name{"parameterScope"};
126 static constexpr char const * const typestr{"SgFunctionParameterScope*"};
127 static constexpr bool traverse{false};
128 static constexpr auto mbr_ptr{&SgAdaAcceptStmt::p_parameterScope};
129 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
130 using bind = Desc<SgAdaAcceptStmt, SgFunctionParameterScope* SgAdaAcceptStmt::*, &SgAdaAcceptStmt::p_parameterScope>;
131};
132template <> struct describe_field_t<SgAdaAcceptStmt,SgFunctionParameterList*,&SgAdaAcceptStmt::p_parameterList> {
133 using parent = SgAdaAcceptStmt;
135 static constexpr size_t position{1};
136 static constexpr char const * const name{"parameterList"};
137 static constexpr char const * const typestr{"SgFunctionParameterList*"};
138 static constexpr bool traverse{true};
139 static constexpr auto mbr_ptr{&SgAdaAcceptStmt::p_parameterList};
140 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
141 using bind = Desc<SgAdaAcceptStmt, SgFunctionParameterList* SgAdaAcceptStmt::*, &SgAdaAcceptStmt::p_parameterList>;
142};
143template <> struct describe_field_t<SgAdaAcceptStmt,SgExpression*,&SgAdaAcceptStmt::p_entry> {
144 using parent = SgAdaAcceptStmt;
145 using field_type = SgExpression*;
146 static constexpr size_t position{2};
147 static constexpr char const * const name{"entry"};
148 static constexpr char const * const typestr{"SgExpression*"};
149 static constexpr bool traverse{true};
150 static constexpr auto mbr_ptr{&SgAdaAcceptStmt::p_entry};
151 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
152 using bind = Desc<SgAdaAcceptStmt, SgExpression* SgAdaAcceptStmt::*, &SgAdaAcceptStmt::p_entry>;
153};
154template <> struct describe_field_t<SgAdaAcceptStmt,SgExpression*,&SgAdaAcceptStmt::p_index> {
155 using parent = SgAdaAcceptStmt;
156 using field_type = SgExpression*;
157 static constexpr size_t position{3};
158 static constexpr char const * const name{"index"};
159 static constexpr char const * const typestr{"SgExpression*"};
160 static constexpr bool traverse{true};
161 static constexpr auto mbr_ptr{&SgAdaAcceptStmt::p_index};
162 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
163 using bind = Desc<SgAdaAcceptStmt, SgExpression* SgAdaAcceptStmt::*, &SgAdaAcceptStmt::p_index>;
164};
165template <> struct describe_field_t<SgAdaAcceptStmt,SgStatement*,&SgAdaAcceptStmt::p_body> {
166 using parent = SgAdaAcceptStmt;
167 using field_type = SgStatement*;
168 static constexpr size_t position{4};
169 static constexpr char const * const name{"body"};
170 static constexpr char const * const typestr{"SgStatement*"};
171 static constexpr bool traverse{true};
172 static constexpr auto mbr_ptr{&SgAdaAcceptStmt::p_body};
173 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
174 using bind = Desc<SgAdaAcceptStmt, SgStatement* SgAdaAcceptStmt::*, &SgAdaAcceptStmt::p_body>;
175};
185template <> struct node_from_variant_t<5> { using type = SgAdaAcceptStmt; };
186
187// Class: AdaDelayStmt
188template <> struct describe_field_t<SgAdaDelayStmt,SgExpression*,&SgAdaDelayStmt::p_time> {
189 using parent = SgAdaDelayStmt;
190 using field_type = SgExpression*;
191 static constexpr size_t position{0};
192 static constexpr char const * const name{"time"};
193 static constexpr char const * const typestr{"SgExpression*"};
194 static constexpr bool traverse{true};
195 static constexpr auto mbr_ptr{&SgAdaDelayStmt::p_time};
196 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
197 using bind = Desc<SgAdaDelayStmt, SgExpression* SgAdaDelayStmt::*, &SgAdaDelayStmt::p_time>;
198};
199template <> struct describe_field_t<SgAdaDelayStmt,bool,&SgAdaDelayStmt::p_isRelative> {
200 using parent = SgAdaDelayStmt;
201 using field_type = bool;
202 static constexpr size_t position{1};
203 static constexpr char const * const name{"isRelative"};
204 static constexpr char const * const typestr{"bool"};
205 static constexpr bool traverse{false};
206 static constexpr auto mbr_ptr{&SgAdaDelayStmt::p_isRelative};
207 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
208 using bind = Desc<SgAdaDelayStmt, bool SgAdaDelayStmt::*, &SgAdaDelayStmt::p_isRelative>;
209};
210template <> struct describe_node_t<SgAdaDelayStmt> {
211 using node = SgAdaDelayStmt;
212 using base = SgStatement;
213 static constexpr char const * const name{"AdaDelayStmt"};
214 static constexpr unsigned long variant{6};
215 static constexpr bool concrete{true};
216 using subclasses_t = mp::List<>;
218};
219template <> struct node_from_variant_t<6> { using type = SgAdaDelayStmt; };
220
221// Class: AdaEntryDecl
222template <> struct describe_field_t<SgAdaEntryDecl,SgInitializedName*,&SgAdaEntryDecl::p_entryIndex> {
223 using parent = SgAdaEntryDecl;
225 static constexpr size_t position{0};
226 static constexpr char const * const name{"entryIndex"};
227 static constexpr char const * const typestr{"SgInitializedName*"};
228 static constexpr bool traverse{true};
229 static constexpr auto mbr_ptr{&SgAdaEntryDecl::p_entryIndex};
230 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
231 using bind = Desc<SgAdaEntryDecl, SgInitializedName* SgAdaEntryDecl::*, &SgAdaEntryDecl::p_entryIndex>;
232};
233template <> struct describe_field_t<SgAdaEntryDecl,SgExpression*,&SgAdaEntryDecl::p_entryBarrier> {
234 using parent = SgAdaEntryDecl;
235 using field_type = SgExpression*;
236 static constexpr size_t position{1};
237 static constexpr char const * const name{"entryBarrier"};
238 static constexpr char const * const typestr{"SgExpression*"};
239 static constexpr bool traverse{true};
240 static constexpr auto mbr_ptr{&SgAdaEntryDecl::p_entryBarrier};
241 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
242 using bind = Desc<SgAdaEntryDecl, SgExpression* SgAdaEntryDecl::*, &SgAdaEntryDecl::p_entryBarrier>;
243};
244template <> struct describe_node_t<SgAdaEntryDecl> {
245 using node = SgAdaEntryDecl;
247 static constexpr char const * const name{"AdaEntryDecl"};
248 static constexpr unsigned long variant{7};
249 static constexpr bool concrete{true};
250 using subclasses_t = mp::List<>;
252};
253template <> struct node_from_variant_t<7> { using type = SgAdaEntryDecl; };
254
255// Class: AdaExitStmt
256template <> struct describe_field_t<SgAdaExitStmt,SgStatement*,&SgAdaExitStmt::p_loop> {
257 using parent = SgAdaExitStmt;
258 using field_type = SgStatement*;
259 static constexpr size_t position{0};
260 static constexpr char const * const name{"loop"};
261 static constexpr char const * const typestr{"SgStatement*"};
262 static constexpr bool traverse{false};
263 static constexpr auto mbr_ptr{&SgAdaExitStmt::p_loop};
264 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
265 using bind = Desc<SgAdaExitStmt, SgStatement* SgAdaExitStmt::*, &SgAdaExitStmt::p_loop>;
266};
267template <> struct describe_field_t<SgAdaExitStmt,SgExpression*,&SgAdaExitStmt::p_condition> {
268 using parent = SgAdaExitStmt;
269 using field_type = SgExpression*;
270 static constexpr size_t position{1};
271 static constexpr char const * const name{"condition"};
272 static constexpr char const * const typestr{"SgExpression*"};
273 static constexpr bool traverse{true};
274 static constexpr auto mbr_ptr{&SgAdaExitStmt::p_condition};
275 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
276 using bind = Desc<SgAdaExitStmt, SgExpression* SgAdaExitStmt::*, &SgAdaExitStmt::p_condition>;
277};
278template <> struct describe_field_t<SgAdaExitStmt,bool,&SgAdaExitStmt::p_explicitLoopName> {
279 using parent = SgAdaExitStmt;
280 using field_type = bool;
281 static constexpr size_t position{2};
282 static constexpr char const * const name{"explicitLoopName"};
283 static constexpr char const * const typestr{"bool"};
284 static constexpr bool traverse{false};
285 static constexpr auto mbr_ptr{&SgAdaExitStmt::p_explicitLoopName};
286 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
287 using bind = Desc<SgAdaExitStmt, bool SgAdaExitStmt::*, &SgAdaExitStmt::p_explicitLoopName>;
288};
289template <> struct describe_node_t<SgAdaExitStmt> {
290 using node = SgAdaExitStmt;
291 using base = SgStatement;
292 static constexpr char const * const name{"AdaExitStmt"};
293 static constexpr unsigned long variant{8};
294 static constexpr bool concrete{true};
295 using subclasses_t = mp::List<>;
297};
298template <> struct node_from_variant_t<8> { using type = SgAdaExitStmt; };
299
300// Class: AdaDiscreteType
302 using node = SgAdaDiscreteType;
303 using base = SgType;
304 static constexpr char const * const name{"AdaDiscreteType"};
305 static constexpr unsigned long variant{9};
306 static constexpr bool concrete{true};
307 using subclasses_t = mp::List<>;
308 using fields_t = mp::List<>;
309};
310template <> struct node_from_variant_t<9> { using type = SgAdaDiscreteType; };
311
312// Class: AdaFloatVal
313template <> struct describe_field_t<SgAdaFloatVal,std::string,&SgAdaFloatVal::p_valueString> {
314 using parent = SgAdaFloatVal;
315 using field_type = std::string;
316 static constexpr size_t position{0};
317 static constexpr char const * const name{"valueString"};
318 static constexpr char const * const typestr{"std::string"};
319 static constexpr bool traverse{false};
320 static constexpr auto mbr_ptr{&SgAdaFloatVal::p_valueString};
321 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
322 using bind = Desc<SgAdaFloatVal, std::string SgAdaFloatVal::*, &SgAdaFloatVal::p_valueString>;
323};
324template <> struct describe_node_t<SgAdaFloatVal> {
325 using node = SgAdaFloatVal;
326 using base = SgValueExp;
327 static constexpr char const * const name{"AdaFloatVal"};
328 static constexpr unsigned long variant{10};
329 static constexpr bool concrete{true};
330 using subclasses_t = mp::List<>;
332};
333template <> struct node_from_variant_t<10> { using type = SgAdaFloatVal; };
334
335// Class: AdaLoopStmt
336template <> struct describe_field_t<SgAdaLoopStmt,SgBasicBlock*,&SgAdaLoopStmt::p_body> {
337 using parent = SgAdaLoopStmt;
338 using field_type = SgBasicBlock*;
339 static constexpr size_t position{0};
340 static constexpr char const * const name{"body"};
341 static constexpr char const * const typestr{"SgBasicBlock*"};
342 static constexpr bool traverse{true};
343 static constexpr auto mbr_ptr{&SgAdaLoopStmt::p_body};
344 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
345 using bind = Desc<SgAdaLoopStmt, SgBasicBlock* SgAdaLoopStmt::*, &SgAdaLoopStmt::p_body>;
346};
347template <> struct describe_field_t<SgAdaLoopStmt,std::string,&SgAdaLoopStmt::p_string_label> {
348 using parent = SgAdaLoopStmt;
349 using field_type = std::string;
350 static constexpr size_t position{1};
351 static constexpr char const * const name{"string_label"};
352 static constexpr char const * const typestr{"std::string"};
353 static constexpr bool traverse{false};
354 static constexpr auto mbr_ptr{&SgAdaLoopStmt::p_string_label};
355 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
356 using bind = Desc<SgAdaLoopStmt, std::string SgAdaLoopStmt::*, &SgAdaLoopStmt::p_string_label>;
357};
358template <> struct describe_node_t<SgAdaLoopStmt> {
359 using node = SgAdaLoopStmt;
360 using base = SgStatement;
361 static constexpr char const * const name{"AdaLoopStmt"};
362 static constexpr unsigned long variant{11};
363 static constexpr bool concrete{true};
364 using subclasses_t = mp::List<>;
366};
367template <> struct node_from_variant_t<11> { using type = SgAdaLoopStmt; };
368
369// Class: AdaPackageBody
370template <> struct describe_field_t<SgAdaPackageBody,SgStatementPtrList,&SgAdaPackageBody::p_statements> {
371 using parent = SgAdaPackageBody;
372 using field_type = SgStatementPtrList;
373 static constexpr size_t position{0};
374 static constexpr char const * const name{"statements"};
375 static constexpr char const * const typestr{"SgStatementPtrList"};
376 static constexpr bool traverse{true};
377 static constexpr auto mbr_ptr{&SgAdaPackageBody::p_statements};
378 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
379 using bind = Desc<SgAdaPackageBody, SgStatementPtrList SgAdaPackageBody::*, &SgAdaPackageBody::p_statements>;
380};
382 using node = SgAdaPackageBody;
383 using base = SgScopeStatement;
384 static constexpr char const * const name{"AdaPackageBody"};
385 static constexpr unsigned long variant{12};
386 static constexpr bool concrete{true};
387 using subclasses_t = mp::List<>;
389};
390template <> struct node_from_variant_t<12> { using type = SgAdaPackageBody; };
391
392// Class: AdaPackageBodyDecl
393template <> struct describe_field_t<SgAdaPackageBodyDecl,SgName,&SgAdaPackageBodyDecl::p_name> {
395 using field_type = SgName;
396 static constexpr size_t position{0};
397 static constexpr char const * const name{"name"};
398 static constexpr char const * const typestr{"SgName"};
399 static constexpr bool traverse{false};
400 static constexpr auto mbr_ptr{&SgAdaPackageBodyDecl::p_name};
401 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
402 using bind = Desc<SgAdaPackageBodyDecl, SgName SgAdaPackageBodyDecl::*, &SgAdaPackageBodyDecl::p_name>;
403};
404template <> struct describe_field_t<SgAdaPackageBodyDecl,SgAdaPackageBody*,&SgAdaPackageBodyDecl::p_definition> {
407 static constexpr size_t position{1};
408 static constexpr char const * const name{"definition"};
409 static constexpr char const * const typestr{"SgAdaPackageBody*"};
410 static constexpr bool traverse{true};
411 static constexpr auto mbr_ptr{&SgAdaPackageBodyDecl::p_definition};
412 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
413 using bind = Desc<SgAdaPackageBodyDecl, SgAdaPackageBody* SgAdaPackageBodyDecl::*, &SgAdaPackageBodyDecl::p_definition>;
414};
415template <> struct describe_field_t<SgAdaPackageBodyDecl,SgScopeStatement*,&SgAdaPackageBodyDecl::p_scope> {
418 static constexpr size_t position{2};
419 static constexpr char const * const name{"scope"};
420 static constexpr char const * const typestr{"SgScopeStatement*"};
421 static constexpr bool traverse{false};
422 static constexpr auto mbr_ptr{&SgAdaPackageBodyDecl::p_scope};
423 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
424 using bind = Desc<SgAdaPackageBodyDecl, SgScopeStatement* SgAdaPackageBodyDecl::*, &SgAdaPackageBodyDecl::p_scope>;
425};
426template <> struct describe_field_t<SgAdaPackageBodyDecl,SgAdaPackageSpecDecl*,&SgAdaPackageBodyDecl::p_spec> {
429 static constexpr size_t position{3};
430 static constexpr char const * const name{"spec"};
431 static constexpr char const * const typestr{"SgAdaPackageSpecDecl*"};
432 static constexpr bool traverse{false};
433 static constexpr auto mbr_ptr{&SgAdaPackageBodyDecl::p_spec};
434 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
435 using bind = Desc<SgAdaPackageBodyDecl, SgAdaPackageSpecDecl* SgAdaPackageBodyDecl::*, &SgAdaPackageBodyDecl::p_spec>;
436};
446template <> struct node_from_variant_t<13> { using type = SgAdaPackageBodyDecl; };
447
448// Class: AdaPackageSpec
449template <> struct describe_field_t<SgAdaPackageSpec,bool,&SgAdaPackageSpec::p_hasPrivate> {
450 using parent = SgAdaPackageSpec;
451 using field_type = bool;
452 static constexpr size_t position{0};
453 static constexpr char const * const name{"hasPrivate"};
454 static constexpr char const * const typestr{"bool"};
455 static constexpr bool traverse{false};
456 static constexpr auto mbr_ptr{&SgAdaPackageSpec::p_hasPrivate};
457 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
458 using bind = Desc<SgAdaPackageSpec, bool SgAdaPackageSpec::*, &SgAdaPackageSpec::p_hasPrivate>;
459};
460template <> struct describe_field_t<SgAdaPackageSpec,SgDeclarationStatementPtrList,&SgAdaPackageSpec::p_declarations> {
461 using parent = SgAdaPackageSpec;
462 using field_type = SgDeclarationStatementPtrList;
463 static constexpr size_t position{1};
464 static constexpr char const * const name{"declarations"};
465 static constexpr char const * const typestr{"SgDeclarationStatementPtrList"};
466 static constexpr bool traverse{true};
467 static constexpr auto mbr_ptr{&SgAdaPackageSpec::p_declarations};
468 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
469 using bind = Desc<SgAdaPackageSpec, SgDeclarationStatementPtrList SgAdaPackageSpec::*, &SgAdaPackageSpec::p_declarations>;
470};
472 using node = SgAdaPackageSpec;
473 using base = SgScopeStatement;
474 static constexpr char const * const name{"AdaPackageSpec"};
475 static constexpr unsigned long variant{14};
476 static constexpr bool concrete{true};
477 using subclasses_t = mp::List<>;
479};
480template <> struct node_from_variant_t<14> { using type = SgAdaPackageSpec; };
481
482// Class: AdaPackageSpecDecl
483template <> struct describe_field_t<SgAdaPackageSpecDecl,SgName,&SgAdaPackageSpecDecl::p_name> {
485 using field_type = SgName;
486 static constexpr size_t position{0};
487 static constexpr char const * const name{"name"};
488 static constexpr char const * const typestr{"SgName"};
489 static constexpr bool traverse{false};
490 static constexpr auto mbr_ptr{&SgAdaPackageSpecDecl::p_name};
491 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
492 using bind = Desc<SgAdaPackageSpecDecl, SgName SgAdaPackageSpecDecl::*, &SgAdaPackageSpecDecl::p_name>;
493};
494template <> struct describe_field_t<SgAdaPackageSpecDecl,SgAdaPackageSpec*,&SgAdaPackageSpecDecl::p_definition> {
497 static constexpr size_t position{1};
498 static constexpr char const * const name{"definition"};
499 static constexpr char const * const typestr{"SgAdaPackageSpec*"};
500 static constexpr bool traverse{true};
501 static constexpr auto mbr_ptr{&SgAdaPackageSpecDecl::p_definition};
502 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
503 using bind = Desc<SgAdaPackageSpecDecl, SgAdaPackageSpec* SgAdaPackageSpecDecl::*, &SgAdaPackageSpecDecl::p_definition>;
504};
505template <> struct describe_field_t<SgAdaPackageSpecDecl,SgScopeStatement*,&SgAdaPackageSpecDecl::p_scope> {
508 static constexpr size_t position{2};
509 static constexpr char const * const name{"scope"};
510 static constexpr char const * const typestr{"SgScopeStatement*"};
511 static constexpr bool traverse{false};
512 static constexpr auto mbr_ptr{&SgAdaPackageSpecDecl::p_scope};
513 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
514 using bind = Desc<SgAdaPackageSpecDecl, SgScopeStatement* SgAdaPackageSpecDecl::*, &SgAdaPackageSpecDecl::p_scope>;
515};
516template <> struct describe_field_t<SgAdaPackageSpecDecl,SgAdaPackageBodyDecl*,&SgAdaPackageSpecDecl::p_body> {
519 static constexpr size_t position{3};
520 static constexpr char const * const name{"body"};
521 static constexpr char const * const typestr{"SgAdaPackageBodyDecl*"};
522 static constexpr bool traverse{false};
523 static constexpr auto mbr_ptr{&SgAdaPackageSpecDecl::p_body};
524 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
525 using bind = Desc<SgAdaPackageSpecDecl, SgAdaPackageBodyDecl* SgAdaPackageSpecDecl::*, &SgAdaPackageSpecDecl::p_body>;
526};
536template <> struct node_from_variant_t<15> { using type = SgAdaPackageSpecDecl; };
537
538// Class: AdaPackageSymbol
539template <> struct describe_field_t<SgAdaPackageSymbol,SgDeclarationStatement*,&SgAdaPackageSymbol::p_declaration> {
542 static constexpr size_t position{0};
543 static constexpr char const * const name{"declaration"};
544 static constexpr char const * const typestr{"SgDeclarationStatement*"};
545 static constexpr bool traverse{true};
546 static constexpr auto mbr_ptr{&SgAdaPackageSymbol::p_declaration};
547 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
548 using bind = Desc<SgAdaPackageSymbol, SgDeclarationStatement* SgAdaPackageSymbol::*, &SgAdaPackageSymbol::p_declaration>;
549};
551 using node = SgAdaPackageSymbol;
552 using base = SgSymbol;
553 static constexpr char const * const name{"AdaPackageSymbol"};
554 static constexpr unsigned long variant{16};
555 static constexpr bool concrete{true};
556 using subclasses_t = mp::List<>;
558};
559template <> struct node_from_variant_t<16> { using type = SgAdaPackageSymbol; };
560
561// Class: AdaRangeConstraint
562template <> struct describe_field_t<SgAdaRangeConstraint,SgExpression*,&SgAdaRangeConstraint::p_range> {
564 using field_type = SgExpression*;
565 static constexpr size_t position{0};
566 static constexpr char const * const name{"range"};
567 static constexpr char const * const typestr{"SgExpression*"};
568 static constexpr bool traverse{true};
569 static constexpr auto mbr_ptr{&SgAdaRangeConstraint::p_range};
570 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
571 using bind = Desc<SgAdaRangeConstraint, SgExpression* SgAdaRangeConstraint::*, &SgAdaRangeConstraint::p_range>;
572};
576 static constexpr char const * const name{"AdaRangeConstraint"};
577 static constexpr unsigned long variant{17};
578 static constexpr bool concrete{true};
579 using subclasses_t = mp::List<>;
581};
582template <> struct node_from_variant_t<17> { using type = SgAdaRangeConstraint; };
583
584// Class: AdaRenamingDecl
585template <> struct describe_field_t<SgAdaRenamingDecl,SgName,&SgAdaRenamingDecl::p_name> {
587 using field_type = SgName;
588 static constexpr size_t position{0};
589 static constexpr char const * const name{"name"};
590 static constexpr char const * const typestr{"SgName"};
591 static constexpr bool traverse{false};
592 static constexpr auto mbr_ptr{&SgAdaRenamingDecl::p_name};
593 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
594 using bind = Desc<SgAdaRenamingDecl, SgName SgAdaRenamingDecl::*, &SgAdaRenamingDecl::p_name>;
595};
596template <> struct describe_field_t<SgAdaRenamingDecl,SgExpression*,&SgAdaRenamingDecl::p_renamed> {
598 using field_type = SgExpression*;
599 static constexpr size_t position{1};
600 static constexpr char const * const name{"renamed"};
601 static constexpr char const * const typestr{"SgExpression*"};
602 static constexpr bool traverse{true};
603 static constexpr auto mbr_ptr{&SgAdaRenamingDecl::p_renamed};
604 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
605 using bind = Desc<SgAdaRenamingDecl, SgExpression* SgAdaRenamingDecl::*, &SgAdaRenamingDecl::p_renamed>;
606};
607template <> struct describe_field_t<SgAdaRenamingDecl,SgType*,&SgAdaRenamingDecl::p_type> {
609 using field_type = SgType*;
610 static constexpr size_t position{2};
611 static constexpr char const * const name{"type"};
612 static constexpr char const * const typestr{"SgType*"};
613 static constexpr bool traverse{false};
614 static constexpr auto mbr_ptr{&SgAdaRenamingDecl::p_type};
615 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
616 using bind = Desc<SgAdaRenamingDecl, SgType* SgAdaRenamingDecl::*, &SgAdaRenamingDecl::p_type>;
617};
619 using node = SgAdaRenamingDecl;
621 static constexpr char const * const name{"AdaRenamingDecl"};
622 static constexpr unsigned long variant{18};
623 static constexpr bool concrete{true};
624 using subclasses_t = mp::List<>;
626};
627template <> struct node_from_variant_t<18> { using type = SgAdaRenamingDecl; };
628
629// Class: AdaSubtype
630template <> struct describe_field_t<SgAdaSubtype,SgType*,&SgAdaSubtype::p_base_type> {
631 using parent = SgAdaSubtype;
632 using field_type = SgType*;
633 static constexpr size_t position{0};
634 static constexpr char const * const name{"base_type"};
635 static constexpr char const * const typestr{"SgType*"};
636 static constexpr bool traverse{true};
637 static constexpr auto mbr_ptr{&SgAdaSubtype::p_base_type};
638 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
639 using bind = Desc<SgAdaSubtype, SgType* SgAdaSubtype::*, &SgAdaSubtype::p_base_type>;
640};
641template <> struct describe_field_t<SgAdaSubtype,SgAdaTypeConstraint*,&SgAdaSubtype::p_constraint> {
642 using parent = SgAdaSubtype;
644 static constexpr size_t position{1};
645 static constexpr char const * const name{"constraint"};
646 static constexpr char const * const typestr{"SgAdaTypeConstraint*"};
647 static constexpr bool traverse{true};
648 static constexpr auto mbr_ptr{&SgAdaSubtype::p_constraint};
649 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
650 using bind = Desc<SgAdaSubtype, SgAdaTypeConstraint* SgAdaSubtype::*, &SgAdaSubtype::p_constraint>;
651};
652template <> struct describe_field_t<SgAdaSubtype,bool,&SgAdaSubtype::p_fromRootType> {
653 using parent = SgAdaSubtype;
654 using field_type = bool;
655 static constexpr size_t position{2};
656 static constexpr char const * const name{"fromRootType"};
657 static constexpr char const * const typestr{"bool"};
658 static constexpr bool traverse{false};
659 static constexpr auto mbr_ptr{&SgAdaSubtype::p_fromRootType};
660 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
661 using bind = Desc<SgAdaSubtype, bool SgAdaSubtype::*, &SgAdaSubtype::p_fromRootType>;
662};
663template <> struct describe_node_t<SgAdaSubtype> {
664 using node = SgAdaSubtype;
665 using base = SgType;
666 static constexpr char const * const name{"AdaSubtype"};
667 static constexpr unsigned long variant{19};
668 static constexpr bool concrete{true};
669 using subclasses_t = mp::List<>;
671};
672template <> struct node_from_variant_t<19> { using type = SgAdaSubtype; };
673
674// Class: AdaTaskBody
675template <> struct describe_field_t<SgAdaTaskBody,SgAdaTaskSpec*,&SgAdaTaskBody::p_spec> {
676 using parent = SgAdaTaskBody;
677 using field_type = SgAdaTaskSpec*;
678 static constexpr size_t position{0};
679 static constexpr char const * const name{"spec"};
680 static constexpr char const * const typestr{"SgAdaTaskSpec*"};
681 static constexpr bool traverse{false};
682 static constexpr auto mbr_ptr{&SgAdaTaskBody::p_spec};
683 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
684 using bind = Desc<SgAdaTaskBody, SgAdaTaskSpec* SgAdaTaskBody::*, &SgAdaTaskBody::p_spec>;
685};
686template <> struct describe_field_t<SgAdaTaskBody,SgStatementPtrList,&SgAdaTaskBody::p_statements> {
687 using parent = SgAdaTaskBody;
688 using field_type = SgStatementPtrList;
689 static constexpr size_t position{1};
690 static constexpr char const * const name{"statements"};
691 static constexpr char const * const typestr{"SgStatementPtrList"};
692 static constexpr bool traverse{true};
693 static constexpr auto mbr_ptr{&SgAdaTaskBody::p_statements};
694 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
695 using bind = Desc<SgAdaTaskBody, SgStatementPtrList SgAdaTaskBody::*, &SgAdaTaskBody::p_statements>;
696};
697template <> struct describe_node_t<SgAdaTaskBody> {
698 using node = SgAdaTaskBody;
699 using base = SgScopeStatement;
700 static constexpr char const * const name{"AdaTaskBody"};
701 static constexpr unsigned long variant{20};
702 static constexpr bool concrete{true};
703 using subclasses_t = mp::List<>;
705};
706template <> struct node_from_variant_t<20> { using type = SgAdaTaskBody; };
707
708// Class: AdaTaskBodyDecl
709template <> struct describe_field_t<SgAdaTaskBodyDecl,SgName,&SgAdaTaskBodyDecl::p_name> {
711 using field_type = SgName;
712 static constexpr size_t position{0};
713 static constexpr char const * const name{"name"};
714 static constexpr char const * const typestr{"SgName"};
715 static constexpr bool traverse{false};
716 static constexpr auto mbr_ptr{&SgAdaTaskBodyDecl::p_name};
717 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
718 using bind = Desc<SgAdaTaskBodyDecl, SgName SgAdaTaskBodyDecl::*, &SgAdaTaskBodyDecl::p_name>;
719};
720template <> struct describe_field_t<SgAdaTaskBodyDecl,SgDeclarationStatement*,&SgAdaTaskBodyDecl::p_specificationDeclaration> {
723 static constexpr size_t position{1};
724 static constexpr char const * const name{"specificationDeclaration"};
725 static constexpr char const * const typestr{"SgDeclarationStatement*"};
726 static constexpr bool traverse{false};
727 static constexpr auto mbr_ptr{&SgAdaTaskBodyDecl::p_specificationDeclaration};
728 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
729 using bind = Desc<SgAdaTaskBodyDecl, SgDeclarationStatement* SgAdaTaskBodyDecl::*, &SgAdaTaskBodyDecl::p_specificationDeclaration>;
730};
731template <> struct describe_field_t<SgAdaTaskBodyDecl,SgAdaTaskBody*,&SgAdaTaskBodyDecl::p_definition> {
733 using field_type = SgAdaTaskBody*;
734 static constexpr size_t position{2};
735 static constexpr char const * const name{"definition"};
736 static constexpr char const * const typestr{"SgAdaTaskBody*"};
737 static constexpr bool traverse{true};
738 static constexpr auto mbr_ptr{&SgAdaTaskBodyDecl::p_definition};
739 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
740 using bind = Desc<SgAdaTaskBodyDecl, SgAdaTaskBody* SgAdaTaskBodyDecl::*, &SgAdaTaskBodyDecl::p_definition>;
741};
751template <> struct node_from_variant_t<21> { using type = SgAdaTaskBodyDecl; };
752
753// Class: AdaTaskSpec
754template <> struct describe_field_t<SgAdaTaskSpec,SgAdaTaskBody*,&SgAdaTaskSpec::p_body> {
755 using parent = SgAdaTaskSpec;
756 using field_type = SgAdaTaskBody*;
757 static constexpr size_t position{0};
758 static constexpr char const * const name{"body"};
759 static constexpr char const * const typestr{"SgAdaTaskBody*"};
760 static constexpr bool traverse{false};
761 static constexpr auto mbr_ptr{&SgAdaTaskSpec::p_body};
762 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
763 using bind = Desc<SgAdaTaskSpec, SgAdaTaskBody* SgAdaTaskSpec::*, &SgAdaTaskSpec::p_body>;
764};
765template <> struct describe_field_t<SgAdaTaskSpec,SgDeclarationStatementPtrList,&SgAdaTaskSpec::p_declarations> {
766 using parent = SgAdaTaskSpec;
767 using field_type = SgDeclarationStatementPtrList;
768 static constexpr size_t position{1};
769 static constexpr char const * const name{"declarations"};
770 static constexpr char const * const typestr{"SgDeclarationStatementPtrList"};
771 static constexpr bool traverse{true};
772 static constexpr auto mbr_ptr{&SgAdaTaskSpec::p_declarations};
773 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
774 using bind = Desc<SgAdaTaskSpec, SgDeclarationStatementPtrList SgAdaTaskSpec::*, &SgAdaTaskSpec::p_declarations>;
775};
776template <> struct describe_field_t<SgAdaTaskSpec,bool,&SgAdaTaskSpec::p_hasPrivate> {
777 using parent = SgAdaTaskSpec;
778 using field_type = bool;
779 static constexpr size_t position{2};
780 static constexpr char const * const name{"hasPrivate"};
781 static constexpr char const * const typestr{"bool"};
782 static constexpr bool traverse{false};
783 static constexpr auto mbr_ptr{&SgAdaTaskSpec::p_hasPrivate};
784 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
785 using bind = Desc<SgAdaTaskSpec, bool SgAdaTaskSpec::*, &SgAdaTaskSpec::p_hasPrivate>;
786};
787template <> struct describe_node_t<SgAdaTaskSpec> {
788 using node = SgAdaTaskSpec;
789 using base = SgScopeStatement;
790 static constexpr char const * const name{"AdaTaskSpec"};
791 static constexpr unsigned long variant{22};
792 static constexpr bool concrete{true};
793 using subclasses_t = mp::List<>;
795};
796template <> struct node_from_variant_t<22> { using type = SgAdaTaskSpec; };
797
798// Class: AdaTaskSpecDecl
799template <> struct describe_field_t<SgAdaTaskSpecDecl,SgName,&SgAdaTaskSpecDecl::p_name> {
801 using field_type = SgName;
802 static constexpr size_t position{0};
803 static constexpr char const * const name{"name"};
804 static constexpr char const * const typestr{"SgName"};
805 static constexpr bool traverse{false};
806 static constexpr auto mbr_ptr{&SgAdaTaskSpecDecl::p_name};
807 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
808 using bind = Desc<SgAdaTaskSpecDecl, SgName SgAdaTaskSpecDecl::*, &SgAdaTaskSpecDecl::p_name>;
809};
810template <> struct describe_field_t<SgAdaTaskSpecDecl,SgAdaTaskSpec*,&SgAdaTaskSpecDecl::p_definition> {
812 using field_type = SgAdaTaskSpec*;
813 static constexpr size_t position{1};
814 static constexpr char const * const name{"definition"};
815 static constexpr char const * const typestr{"SgAdaTaskSpec*"};
816 static constexpr bool traverse{true};
817 static constexpr auto mbr_ptr{&SgAdaTaskSpecDecl::p_definition};
818 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
819 using bind = Desc<SgAdaTaskSpecDecl, SgAdaTaskSpec* SgAdaTaskSpecDecl::*, &SgAdaTaskSpecDecl::p_definition>;
820};
821template <> struct describe_field_t<SgAdaTaskSpecDecl,SgAdaTaskType*,&SgAdaTaskSpecDecl::p_type> {
823 using field_type = SgAdaTaskType*;
824 static constexpr size_t position{2};
825 static constexpr char const * const name{"type"};
826 static constexpr char const * const typestr{"SgAdaTaskType*"};
827 static constexpr bool traverse{false};
828 static constexpr auto mbr_ptr{&SgAdaTaskSpecDecl::p_type};
829 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
830 using bind = Desc<SgAdaTaskSpecDecl, SgAdaTaskType* SgAdaTaskSpecDecl::*, &SgAdaTaskSpecDecl::p_type>;
831};
833 using node = SgAdaTaskSpecDecl;
835 static constexpr char const * const name{"AdaTaskSpecDecl"};
836 static constexpr unsigned long variant{23};
837 static constexpr bool concrete{true};
838 using subclasses_t = mp::List<>;
840};
841template <> struct node_from_variant_t<23> { using type = SgAdaTaskSpecDecl; };
842
843// Class: AdaTaskSymbol
844template <> struct describe_field_t<SgAdaTaskSymbol,SgDeclarationStatement*,&SgAdaTaskSymbol::p_declaration> {
845 using parent = SgAdaTaskSymbol;
847 static constexpr size_t position{0};
848 static constexpr char const * const name{"declaration"};
849 static constexpr char const * const typestr{"SgDeclarationStatement*"};
850 static constexpr bool traverse{true};
851 static constexpr auto mbr_ptr{&SgAdaTaskSymbol::p_declaration};
852 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
853 using bind = Desc<SgAdaTaskSymbol, SgDeclarationStatement* SgAdaTaskSymbol::*, &SgAdaTaskSymbol::p_declaration>;
854};
855template <> struct describe_node_t<SgAdaTaskSymbol> {
856 using node = SgAdaTaskSymbol;
857 using base = SgSymbol;
858 static constexpr char const * const name{"AdaTaskSymbol"};
859 static constexpr unsigned long variant{24};
860 static constexpr bool concrete{true};
861 using subclasses_t = mp::List<>;
863};
864template <> struct node_from_variant_t<24> { using type = SgAdaTaskSymbol; };
865
866// Class: AdaTaskRefExp
867template <> struct describe_field_t<SgAdaTaskRefExp,SgAdaTaskSymbol*,&SgAdaTaskRefExp::p_symbol> {
868 using parent = SgAdaTaskRefExp;
870 static constexpr size_t position{0};
871 static constexpr char const * const name{"symbol"};
872 static constexpr char const * const typestr{"SgAdaTaskSymbol*"};
873 static constexpr bool traverse{false};
874 static constexpr auto mbr_ptr{&SgAdaTaskRefExp::p_symbol};
875 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
876 using bind = Desc<SgAdaTaskRefExp, SgAdaTaskSymbol* SgAdaTaskRefExp::*, &SgAdaTaskRefExp::p_symbol>;
877};
878template <> struct describe_node_t<SgAdaTaskRefExp> {
879 using node = SgAdaTaskRefExp;
880 using base = SgExpression;
881 static constexpr char const * const name{"AdaTaskRefExp"};
882 static constexpr unsigned long variant{25};
883 static constexpr bool concrete{true};
884 using subclasses_t = mp::List<>;
886};
887template <> struct node_from_variant_t<25> { using type = SgAdaTaskRefExp; };
888
889// Class: AdaTaskType
890template <> struct describe_node_t<SgAdaTaskType> {
891 using node = SgAdaTaskType;
892 using base = SgNamedType;
893 static constexpr char const * const name{"AdaTaskType"};
894 static constexpr unsigned long variant{26};
895 static constexpr bool concrete{true};
896 using subclasses_t = mp::List<>;
897 using fields_t = mp::List<>;
898};
899template <> struct node_from_variant_t<26> { using type = SgAdaTaskType; };
900
901// Class: AdaTaskTypeDecl
902template <> struct describe_field_t<SgAdaTaskTypeDecl,SgName,&SgAdaTaskTypeDecl::p_name> {
904 using field_type = SgName;
905 static constexpr size_t position{0};
906 static constexpr char const * const name{"name"};
907 static constexpr char const * const typestr{"SgName"};
908 static constexpr bool traverse{false};
909 static constexpr auto mbr_ptr{&SgAdaTaskTypeDecl::p_name};
910 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
911 using bind = Desc<SgAdaTaskTypeDecl, SgName SgAdaTaskTypeDecl::*, &SgAdaTaskTypeDecl::p_name>;
912};
913template <> struct describe_field_t<SgAdaTaskTypeDecl,SgAdaTaskSpec*,&SgAdaTaskTypeDecl::p_definition> {
915 using field_type = SgAdaTaskSpec*;
916 static constexpr size_t position{1};
917 static constexpr char const * const name{"definition"};
918 static constexpr char const * const typestr{"SgAdaTaskSpec*"};
919 static constexpr bool traverse{true};
920 static constexpr auto mbr_ptr{&SgAdaTaskTypeDecl::p_definition};
921 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
922 using bind = Desc<SgAdaTaskTypeDecl, SgAdaTaskSpec* SgAdaTaskTypeDecl::*, &SgAdaTaskTypeDecl::p_definition>;
923};
924template <> struct describe_field_t<SgAdaTaskTypeDecl,SgAdaTaskType*,&SgAdaTaskTypeDecl::p_type> {
926 using field_type = SgAdaTaskType*;
927 static constexpr size_t position{2};
928 static constexpr char const * const name{"type"};
929 static constexpr char const * const typestr{"SgAdaTaskType*"};
930 static constexpr bool traverse{false};
931 static constexpr auto mbr_ptr{&SgAdaTaskTypeDecl::p_type};
932 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
933 using bind = Desc<SgAdaTaskTypeDecl, SgAdaTaskType* SgAdaTaskTypeDecl::*, &SgAdaTaskTypeDecl::p_type>;
934};
935template <> struct describe_field_t<SgAdaTaskTypeDecl,SgScopeStatement*,&SgAdaTaskTypeDecl::p_scope> {
938 static constexpr size_t position{3};
939 static constexpr char const * const name{"scope"};
940 static constexpr char const * const typestr{"SgScopeStatement*"};
941 static constexpr bool traverse{false};
942 static constexpr auto mbr_ptr{&SgAdaTaskTypeDecl::p_scope};
943 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
944 using bind = Desc<SgAdaTaskTypeDecl, SgScopeStatement* SgAdaTaskTypeDecl::*, &SgAdaTaskTypeDecl::p_scope>;
945};
955template <> struct node_from_variant_t<27> { using type = SgAdaTaskTypeDecl; };
956
957// Class: AdaTypeConstraint
961 static constexpr char const * const name{"AdaTypeConstraint"};
962 static constexpr unsigned long variant{28};
963 static constexpr bool concrete{false};
965 using fields_t = mp::List<>;
966};
967template <> struct node_from_variant_t<28> { using type = SgAdaTypeConstraint; };
968
969// Class: AddOp
970template <> struct describe_node_t<SgAddOp> {
971 using node = SgAddOp;
972 using base = SgBinaryOp;
973 static constexpr char const * const name{"AddOp"};
974 static constexpr unsigned long variant{29};
975 static constexpr bool concrete{true};
976 using subclasses_t = mp::List<>;
977 using fields_t = mp::List<>;
978};
979template <> struct node_from_variant_t<29> { using type = SgAddOp; };
980
981// Class: AddressOfOp
982template <> struct describe_field_t<SgAddressOfOp,SgExpression*,&SgAddressOfOp::p_originalExpressionTree> {
983 using parent = SgAddressOfOp;
984 using field_type = SgExpression*;
985 static constexpr size_t position{0};
986 static constexpr char const * const name{"originalExpressionTree"};
987 static constexpr char const * const typestr{"SgExpression*"};
988 static constexpr bool traverse{false};
989 static constexpr auto mbr_ptr{&SgAddressOfOp::p_originalExpressionTree};
990 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
991 using bind = Desc<SgAddressOfOp, SgExpression* SgAddressOfOp::*, &SgAddressOfOp::p_originalExpressionTree>;
992};
993template <> struct describe_node_t<SgAddressOfOp> {
994 using node = SgAddressOfOp;
995 using base = SgUnaryOp;
996 static constexpr char const * const name{"AddressOfOp"};
997 static constexpr unsigned long variant{30};
998 static constexpr bool concrete{true};
999 using subclasses_t = mp::List<>;
1001};
1002template <> struct node_from_variant_t<30> { using type = SgAddressOfOp; };
1003
1004// Class: AggregateInitializer
1007 using field_type = SgExprListExp*;
1008 static constexpr size_t position{0};
1009 static constexpr char const * const name{"initializers"};
1010 static constexpr char const * const typestr{"SgExprListExp*"};
1011 static constexpr bool traverse{true};
1012 static constexpr auto mbr_ptr{&SgAggregateInitializer::p_initializers};
1013 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1014 using bind = Desc<SgAggregateInitializer, SgExprListExp* SgAggregateInitializer::*, &SgAggregateInitializer::p_initializers>;
1015};
1016template <> struct describe_field_t<SgAggregateInitializer,SgType*,&SgAggregateInitializer::p_expression_type> {
1018 using field_type = SgType*;
1019 static constexpr size_t position{1};
1020 static constexpr char const * const name{"expression_type"};
1021 static constexpr char const * const typestr{"SgType*"};
1022 static constexpr bool traverse{false};
1023 static constexpr auto mbr_ptr{&SgAggregateInitializer::p_expression_type};
1024 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1025 using bind = Desc<SgAggregateInitializer, SgType* SgAggregateInitializer::*, &SgAggregateInitializer::p_expression_type>;
1026};
1027template <> struct describe_field_t<SgAggregateInitializer,bool,&SgAggregateInitializer::p_need_explicit_braces> {
1029 using field_type = bool;
1030 static constexpr size_t position{2};
1031 static constexpr char const * const name{"need_explicit_braces"};
1032 static constexpr char const * const typestr{"bool"};
1033 static constexpr bool traverse{false};
1034 static constexpr auto mbr_ptr{&SgAggregateInitializer::p_need_explicit_braces};
1035 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1036 using bind = Desc<SgAggregateInitializer, bool SgAggregateInitializer::*, &SgAggregateInitializer::p_need_explicit_braces>;
1037};
1038template <> struct describe_field_t<SgAggregateInitializer,bool,&SgAggregateInitializer::p_uses_compound_literal> {
1040 using field_type = bool;
1041 static constexpr size_t position{3};
1042 static constexpr char const * const name{"uses_compound_literal"};
1043 static constexpr char const * const typestr{"bool"};
1044 static constexpr bool traverse{false};
1045 static constexpr auto mbr_ptr{&SgAggregateInitializer::p_uses_compound_literal};
1046 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1047 using bind = Desc<SgAggregateInitializer, bool SgAggregateInitializer::*, &SgAggregateInitializer::p_uses_compound_literal>;
1048};
1049template <> struct describe_field_t<SgAggregateInitializer,bool,&SgAggregateInitializer::p_requiresGlobalNameQualificationOnType> {
1051 using field_type = bool;
1052 static constexpr size_t position{4};
1053 static constexpr char const * const name{"requiresGlobalNameQualificationOnType"};
1054 static constexpr char const * const typestr{"bool"};
1055 static constexpr bool traverse{false};
1056 static constexpr auto mbr_ptr{&SgAggregateInitializer::p_requiresGlobalNameQualificationOnType};
1057 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1058 using bind = Desc<SgAggregateInitializer, bool SgAggregateInitializer::*, &SgAggregateInitializer::p_requiresGlobalNameQualificationOnType>;
1059};
1060template <> struct describe_field_t<SgAggregateInitializer,int,&SgAggregateInitializer::p_name_qualification_length_for_type> {
1062 using field_type = int;
1063 static constexpr size_t position{5};
1064 static constexpr char const * const name{"name_qualification_length_for_type"};
1065 static constexpr char const * const typestr{"int"};
1066 static constexpr bool traverse{false};
1067 static constexpr auto mbr_ptr{&SgAggregateInitializer::p_name_qualification_length_for_type};
1068 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1069 using bind = Desc<SgAggregateInitializer, int SgAggregateInitializer::*, &SgAggregateInitializer::p_name_qualification_length_for_type>;
1070};
1071template <> struct describe_field_t<SgAggregateInitializer,bool,&SgAggregateInitializer::p_type_elaboration_required_for_type> {
1073 using field_type = bool;
1074 static constexpr size_t position{6};
1075 static constexpr char const * const name{"type_elaboration_required_for_type"};
1076 static constexpr char const * const typestr{"bool"};
1077 static constexpr bool traverse{false};
1078 static constexpr auto mbr_ptr{&SgAggregateInitializer::p_type_elaboration_required_for_type};
1079 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1080 using bind = Desc<SgAggregateInitializer, bool SgAggregateInitializer::*, &SgAggregateInitializer::p_type_elaboration_required_for_type>;
1081};
1082template <> struct describe_field_t<SgAggregateInitializer,bool,&SgAggregateInitializer::p_global_qualification_required_for_type> {
1084 using field_type = bool;
1085 static constexpr size_t position{7};
1086 static constexpr char const * const name{"global_qualification_required_for_type"};
1087 static constexpr char const * const typestr{"bool"};
1088 static constexpr bool traverse{false};
1089 static constexpr auto mbr_ptr{&SgAggregateInitializer::p_global_qualification_required_for_type};
1090 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1091 using bind = Desc<SgAggregateInitializer, bool SgAggregateInitializer::*, &SgAggregateInitializer::p_global_qualification_required_for_type>;
1092};
1093template <> struct describe_field_t<SgAggregateInitializer,SgExpression*,&SgAggregateInitializer::p_originalExpressionTree> {
1095 using field_type = SgExpression*;
1096 static constexpr size_t position{8};
1097 static constexpr char const * const name{"originalExpressionTree"};
1098 static constexpr char const * const typestr{"SgExpression*"};
1099 static constexpr bool traverse{false};
1100 static constexpr auto mbr_ptr{&SgAggregateInitializer::p_originalExpressionTree};
1101 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1102 using bind = Desc<SgAggregateInitializer, SgExpression* SgAggregateInitializer::*, &SgAggregateInitializer::p_originalExpressionTree>;
1103};
1113template <> struct node_from_variant_t<31> { using type = SgAggregateInitializer; };
1114
1115// Class: AliasSymbol
1116template <> struct describe_field_t<SgAliasSymbol,SgSymbol*,&SgAliasSymbol::p_alias> {
1117 using parent = SgAliasSymbol;
1118 using field_type = SgSymbol*;
1119 static constexpr size_t position{0};
1120 static constexpr char const * const name{"alias"};
1121 static constexpr char const * const typestr{"SgSymbol*"};
1122 static constexpr bool traverse{true};
1123 static constexpr auto mbr_ptr{&SgAliasSymbol::p_alias};
1124 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1125 using bind = Desc<SgAliasSymbol, SgSymbol* SgAliasSymbol::*, &SgAliasSymbol::p_alias>;
1126};
1127template <> struct describe_field_t<SgAliasSymbol,bool,&SgAliasSymbol::p_isRenamed> {
1128 using parent = SgAliasSymbol;
1129 using field_type = bool;
1130 static constexpr size_t position{1};
1131 static constexpr char const * const name{"isRenamed"};
1132 static constexpr char const * const typestr{"bool"};
1133 static constexpr bool traverse{false};
1134 static constexpr auto mbr_ptr{&SgAliasSymbol::p_isRenamed};
1135 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1136 using bind = Desc<SgAliasSymbol, bool SgAliasSymbol::*, &SgAliasSymbol::p_isRenamed>;
1137};
1138template <> struct describe_field_t<SgAliasSymbol,SgName,&SgAliasSymbol::p_new_name> {
1139 using parent = SgAliasSymbol;
1140 using field_type = SgName;
1141 static constexpr size_t position{2};
1142 static constexpr char const * const name{"new_name"};
1143 static constexpr char const * const typestr{"SgName"};
1144 static constexpr bool traverse{false};
1145 static constexpr auto mbr_ptr{&SgAliasSymbol::p_new_name};
1146 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1147 using bind = Desc<SgAliasSymbol, SgName SgAliasSymbol::*, &SgAliasSymbol::p_new_name>;
1148};
1149template <> struct describe_field_t<SgAliasSymbol,SgNodePtrList,&SgAliasSymbol::p_causal_nodes> {
1150 using parent = SgAliasSymbol;
1151 using field_type = SgNodePtrList;
1152 static constexpr size_t position{3};
1153 static constexpr char const * const name{"causal_nodes"};
1154 static constexpr char const * const typestr{"SgNodePtrList"};
1155 static constexpr bool traverse{false};
1156 static constexpr auto mbr_ptr{&SgAliasSymbol::p_causal_nodes};
1157 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1158 using bind = Desc<SgAliasSymbol, SgNodePtrList SgAliasSymbol::*, &SgAliasSymbol::p_causal_nodes>;
1159};
1160template <> struct describe_node_t<SgAliasSymbol> {
1161 using node = SgAliasSymbol;
1162 using base = SgSymbol;
1163 static constexpr char const * const name{"AliasSymbol"};
1164 static constexpr unsigned long variant{32};
1165 static constexpr bool concrete{true};
1166 using subclasses_t = mp::List<>;
1168};
1169template <> struct node_from_variant_t<32> { using type = SgAliasSymbol; };
1170
1171// Class: AllocateStatement
1172template <> struct describe_field_t<SgAllocateStatement,SgExprListExp*,&SgAllocateStatement::p_expr_list> {
1174 using field_type = SgExprListExp*;
1175 static constexpr size_t position{0};
1176 static constexpr char const * const name{"expr_list"};
1177 static constexpr char const * const typestr{"SgExprListExp*"};
1178 static constexpr bool traverse{true};
1179 static constexpr auto mbr_ptr{&SgAllocateStatement::p_expr_list};
1180 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1181 using bind = Desc<SgAllocateStatement, SgExprListExp* SgAllocateStatement::*, &SgAllocateStatement::p_expr_list>;
1182};
1183template <> struct describe_field_t<SgAllocateStatement,SgExpression*,&SgAllocateStatement::p_stat_expression> {
1185 using field_type = SgExpression*;
1186 static constexpr size_t position{1};
1187 static constexpr char const * const name{"stat_expression"};
1188 static constexpr char const * const typestr{"SgExpression*"};
1189 static constexpr bool traverse{true};
1190 static constexpr auto mbr_ptr{&SgAllocateStatement::p_stat_expression};
1191 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1192 using bind = Desc<SgAllocateStatement, SgExpression* SgAllocateStatement::*, &SgAllocateStatement::p_stat_expression>;
1193};
1194template <> struct describe_field_t<SgAllocateStatement,SgExpression*,&SgAllocateStatement::p_errmsg_expression> {
1196 using field_type = SgExpression*;
1197 static constexpr size_t position{2};
1198 static constexpr char const * const name{"errmsg_expression"};
1199 static constexpr char const * const typestr{"SgExpression*"};
1200 static constexpr bool traverse{true};
1201 static constexpr auto mbr_ptr{&SgAllocateStatement::p_errmsg_expression};
1202 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1203 using bind = Desc<SgAllocateStatement, SgExpression* SgAllocateStatement::*, &SgAllocateStatement::p_errmsg_expression>;
1204};
1205template <> struct describe_field_t<SgAllocateStatement,SgExpression*,&SgAllocateStatement::p_source_expression> {
1207 using field_type = SgExpression*;
1208 static constexpr size_t position{3};
1209 static constexpr char const * const name{"source_expression"};
1210 static constexpr char const * const typestr{"SgExpression*"};
1211 static constexpr bool traverse{true};
1212 static constexpr auto mbr_ptr{&SgAllocateStatement::p_source_expression};
1213 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1214 using bind = Desc<SgAllocateStatement, SgExpression* SgAllocateStatement::*, &SgAllocateStatement::p_source_expression>;
1215};
1225template <> struct node_from_variant_t<33> { using type = SgAllocateStatement; };
1226
1227// Class: AndAssignOp
1228template <> struct describe_node_t<SgAndAssignOp> {
1229 using node = SgAndAssignOp;
1230 using base = SgCompoundAssignOp;
1231 static constexpr char const * const name{"AndAssignOp"};
1232 static constexpr unsigned long variant{34};
1233 static constexpr bool concrete{true};
1234 using subclasses_t = mp::List<>;
1235 using fields_t = mp::List<>;
1236};
1237template <> struct node_from_variant_t<34> { using type = SgAndAssignOp; };
1238
1239// Class: AndOp
1240template <> struct describe_node_t<SgAndOp> {
1241 using node = SgAndOp;
1242 using base = SgBinaryOp;
1243 static constexpr char const * const name{"AndOp"};
1244 static constexpr unsigned long variant{35};
1245 static constexpr bool concrete{true};
1246 using subclasses_t = mp::List<>;
1247 using fields_t = mp::List<>;
1248};
1249template <> struct node_from_variant_t<35> { using type = SgAndOp; };
1250
1251// Class: ArithmeticIfStatement
1252template <> struct describe_field_t<SgArithmeticIfStatement,SgExpression*,&SgArithmeticIfStatement::p_conditional> {
1254 using field_type = SgExpression*;
1255 static constexpr size_t position{0};
1256 static constexpr char const * const name{"conditional"};
1257 static constexpr char const * const typestr{"SgExpression*"};
1258 static constexpr bool traverse{true};
1259 static constexpr auto mbr_ptr{&SgArithmeticIfStatement::p_conditional};
1260 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1261 using bind = Desc<SgArithmeticIfStatement, SgExpression* SgArithmeticIfStatement::*, &SgArithmeticIfStatement::p_conditional>;
1262};
1263template <> struct describe_field_t<SgArithmeticIfStatement,SgLabelRefExp*,&SgArithmeticIfStatement::p_less_label> {
1265 using field_type = SgLabelRefExp*;
1266 static constexpr size_t position{1};
1267 static constexpr char const * const name{"less_label"};
1268 static constexpr char const * const typestr{"SgLabelRefExp*"};
1269 static constexpr bool traverse{false};
1270 static constexpr auto mbr_ptr{&SgArithmeticIfStatement::p_less_label};
1271 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1272 using bind = Desc<SgArithmeticIfStatement, SgLabelRefExp* SgArithmeticIfStatement::*, &SgArithmeticIfStatement::p_less_label>;
1273};
1274template <> struct describe_field_t<SgArithmeticIfStatement,SgLabelRefExp*,&SgArithmeticIfStatement::p_equal_label> {
1276 using field_type = SgLabelRefExp*;
1277 static constexpr size_t position{2};
1278 static constexpr char const * const name{"equal_label"};
1279 static constexpr char const * const typestr{"SgLabelRefExp*"};
1280 static constexpr bool traverse{false};
1281 static constexpr auto mbr_ptr{&SgArithmeticIfStatement::p_equal_label};
1282 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1283 using bind = Desc<SgArithmeticIfStatement, SgLabelRefExp* SgArithmeticIfStatement::*, &SgArithmeticIfStatement::p_equal_label>;
1284};
1285template <> struct describe_field_t<SgArithmeticIfStatement,SgLabelRefExp*,&SgArithmeticIfStatement::p_greater_label> {
1287 using field_type = SgLabelRefExp*;
1288 static constexpr size_t position{3};
1289 static constexpr char const * const name{"greater_label"};
1290 static constexpr char const * const typestr{"SgLabelRefExp*"};
1291 static constexpr bool traverse{false};
1292 static constexpr auto mbr_ptr{&SgArithmeticIfStatement::p_greater_label};
1293 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1294 using bind = Desc<SgArithmeticIfStatement, SgLabelRefExp* SgArithmeticIfStatement::*, &SgArithmeticIfStatement::p_greater_label>;
1295};
1305template <> struct node_from_variant_t<36> { using type = SgArithmeticIfStatement; };
1306
1307// Class: ArrayType
1308template <> struct describe_field_t<SgArrayType,SgType*,&SgArrayType::p_base_type> {
1309 using parent = SgArrayType;
1310 using field_type = SgType*;
1311 static constexpr size_t position{0};
1312 static constexpr char const * const name{"base_type"};
1313 static constexpr char const * const typestr{"SgType*"};
1314 static constexpr bool traverse{false};
1315 static constexpr auto mbr_ptr{&SgArrayType::p_base_type};
1316 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1317 using bind = Desc<SgArrayType, SgType* SgArrayType::*, &SgArrayType::p_base_type>;
1318};
1319template <> struct describe_field_t<SgArrayType,SgExpression*,&SgArrayType::p_index> {
1320 using parent = SgArrayType;
1321 using field_type = SgExpression*;
1322 static constexpr size_t position{1};
1323 static constexpr char const * const name{"index"};
1324 static constexpr char const * const typestr{"SgExpression*"};
1325 static constexpr bool traverse{true};
1326 static constexpr auto mbr_ptr{&SgArrayType::p_index};
1327 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1328 using bind = Desc<SgArrayType, SgExpression* SgArrayType::*, &SgArrayType::p_index>;
1329};
1330template <> struct describe_field_t<SgArrayType,SgExprListExp*,&SgArrayType::p_dim_info> {
1331 using parent = SgArrayType;
1332 using field_type = SgExprListExp*;
1333 static constexpr size_t position{2};
1334 static constexpr char const * const name{"dim_info"};
1335 static constexpr char const * const typestr{"SgExprListExp*"};
1336 static constexpr bool traverse{true};
1337 static constexpr auto mbr_ptr{&SgArrayType::p_dim_info};
1338 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1339 using bind = Desc<SgArrayType, SgExprListExp* SgArrayType::*, &SgArrayType::p_dim_info>;
1340};
1341template <> struct describe_field_t<SgArrayType,int,&SgArrayType::p_rank> {
1342 using parent = SgArrayType;
1343 using field_type = int;
1344 static constexpr size_t position{3};
1345 static constexpr char const * const name{"rank"};
1346 static constexpr char const * const typestr{"int"};
1347 static constexpr bool traverse{false};
1348 static constexpr auto mbr_ptr{&SgArrayType::p_rank};
1349 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1350 using bind = Desc<SgArrayType, int SgArrayType::*, &SgArrayType::p_rank>;
1351};
1352template <> struct describe_field_t<SgArrayType,int,&SgArrayType::p_number_of_elements> {
1353 using parent = SgArrayType;
1354 using field_type = int;
1355 static constexpr size_t position{4};
1356 static constexpr char const * const name{"number_of_elements"};
1357 static constexpr char const * const typestr{"int"};
1358 static constexpr bool traverse{false};
1359 static constexpr auto mbr_ptr{&SgArrayType::p_number_of_elements};
1360 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1361 using bind = Desc<SgArrayType, int SgArrayType::*, &SgArrayType::p_number_of_elements>;
1362};
1363template <> struct describe_field_t<SgArrayType,bool,&SgArrayType::p_is_variable_length_array> {
1364 using parent = SgArrayType;
1365 using field_type = bool;
1366 static constexpr size_t position{5};
1367 static constexpr char const * const name{"is_variable_length_array"};
1368 static constexpr char const * const typestr{"bool"};
1369 static constexpr bool traverse{false};
1370 static constexpr auto mbr_ptr{&SgArrayType::p_is_variable_length_array};
1371 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1372 using bind = Desc<SgArrayType, bool SgArrayType::*, &SgArrayType::p_is_variable_length_array>;
1373};
1383template <> struct node_from_variant_t<37> { using type = SgArrayType; };
1384
1385// Class: ArrowExp
1386template <> struct describe_node_t<SgArrowExp> {
1387 using node = SgArrowExp;
1388 using base = SgBinaryOp;
1389 static constexpr char const * const name{"ArrowExp"};
1390 static constexpr unsigned long variant{38};
1391 static constexpr bool concrete{true};
1392 using subclasses_t = mp::List<>;
1393 using fields_t = mp::List<>;
1394};
1395template <> struct node_from_variant_t<38> { using type = SgArrowExp; };
1396
1397// Class: ArrowStarOp
1398template <> struct describe_node_t<SgArrowStarOp> {
1399 using node = SgArrowStarOp;
1400 using base = SgBinaryOp;
1401 static constexpr char const * const name{"ArrowStarOp"};
1402 static constexpr unsigned long variant{39};
1403 static constexpr bool concrete{true};
1404 using subclasses_t = mp::List<>;
1405 using fields_t = mp::List<>;
1406};
1407template <> struct node_from_variant_t<39> { using type = SgArrowStarOp; };
1408
1409// Class: AsmBasicString
1410template <> struct describe_field_t<SgAsmBasicString,std::string,&SgAsmBasicString::p_string> {
1411 using parent = SgAsmBasicString;
1412 using field_type = std::string;
1413 static constexpr size_t position{0};
1414 static constexpr char const * const name{"string"};
1415 static constexpr char const * const typestr{"std::string"};
1416 static constexpr bool traverse{false};
1417 static constexpr auto mbr_ptr{&SgAsmBasicString::p_string};
1418 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1419 using bind = Desc<SgAsmBasicString, std::string SgAsmBasicString::*, &SgAsmBasicString::p_string>;
1420};
1422 using node = SgAsmBasicString;
1423 using base = SgAsmGenericString;
1424 static constexpr char const * const name{"AsmBasicString"};
1425 static constexpr unsigned long variant{46};
1426 static constexpr bool concrete{true};
1427 using subclasses_t = mp::List<>;
1429};
1430template <> struct node_from_variant_t<46> { using type = SgAsmBasicString; };
1431
1432// Class: AsmBinaryAdd
1433template <> struct describe_node_t<SgAsmBinaryAdd> {
1434 using node = SgAsmBinaryAdd;
1436 static constexpr char const * const name{"AsmBinaryAdd"};
1437 static constexpr unsigned long variant{47};
1438 static constexpr bool concrete{true};
1439 using subclasses_t = mp::List<>;
1440 using fields_t = mp::List<>;
1441};
1442template <> struct node_from_variant_t<47> { using type = SgAsmBinaryAdd; };
1443
1444// Class: AsmBinaryAsr
1445template <> struct describe_node_t<SgAsmBinaryAsr> {
1446 using node = SgAsmBinaryAsr;
1448 static constexpr char const * const name{"AsmBinaryAsr"};
1449 static constexpr unsigned long variant{50};
1450 static constexpr bool concrete{true};
1451 using subclasses_t = mp::List<>;
1452 using fields_t = mp::List<>;
1453};
1454template <> struct node_from_variant_t<50> { using type = SgAsmBinaryAsr; };
1455
1456// Class: AsmBinaryDivide
1458 using node = SgAsmBinaryDivide;
1460 static constexpr char const * const name{"AsmBinaryDivide"};
1461 static constexpr unsigned long variant{51};
1462 static constexpr bool concrete{true};
1463 using subclasses_t = mp::List<>;
1464 using fields_t = mp::List<>;
1465};
1466template <> struct node_from_variant_t<51> { using type = SgAsmBinaryDivide; };
1467
1468// Class: AsmBinaryExpression
1469template <> struct describe_field_t<SgAsmBinaryExpression,SgAsmExpression*,&SgAsmBinaryExpression::p_lhs> {
1471 using field_type = SgAsmExpression*;
1472 static constexpr size_t position{0};
1473 static constexpr char const * const name{"lhs"};
1474 static constexpr char const * const typestr{"SgAsmExpression*"};
1475 static constexpr bool traverse{true};
1476 static constexpr auto mbr_ptr{&SgAsmBinaryExpression::p_lhs};
1477 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1478 using bind = Desc<SgAsmBinaryExpression, SgAsmExpression* SgAsmBinaryExpression::*, &SgAsmBinaryExpression::p_lhs>;
1479};
1480template <> struct describe_field_t<SgAsmBinaryExpression,SgAsmExpression*,&SgAsmBinaryExpression::p_rhs> {
1482 using field_type = SgAsmExpression*;
1483 static constexpr size_t position{1};
1484 static constexpr char const * const name{"rhs"};
1485 static constexpr char const * const typestr{"SgAsmExpression*"};
1486 static constexpr bool traverse{true};
1487 static constexpr auto mbr_ptr{&SgAsmBinaryExpression::p_rhs};
1488 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1489 using bind = Desc<SgAsmBinaryExpression, SgAsmExpression* SgAsmBinaryExpression::*, &SgAsmBinaryExpression::p_rhs>;
1490};
1500template <> struct node_from_variant_t<52> { using type = SgAsmBinaryExpression; };
1501
1502// Class: AsmBinaryLsl
1503template <> struct describe_node_t<SgAsmBinaryLsl> {
1504 using node = SgAsmBinaryLsl;
1506 static constexpr char const * const name{"AsmBinaryLsl"};
1507 static constexpr unsigned long variant{53};
1508 static constexpr bool concrete{true};
1509 using subclasses_t = mp::List<>;
1510 using fields_t = mp::List<>;
1511};
1512template <> struct node_from_variant_t<53> { using type = SgAsmBinaryLsl; };
1513
1514// Class: AsmBinaryLsr
1515template <> struct describe_node_t<SgAsmBinaryLsr> {
1516 using node = SgAsmBinaryLsr;
1518 static constexpr char const * const name{"AsmBinaryLsr"};
1519 static constexpr unsigned long variant{54};
1520 static constexpr bool concrete{true};
1521 using subclasses_t = mp::List<>;
1522 using fields_t = mp::List<>;
1523};
1524template <> struct node_from_variant_t<54> { using type = SgAsmBinaryLsr; };
1525
1526// Class: AsmBinaryMod
1527template <> struct describe_node_t<SgAsmBinaryMod> {
1528 using node = SgAsmBinaryMod;
1530 static constexpr char const * const name{"AsmBinaryMod"};
1531 static constexpr unsigned long variant{55};
1532 static constexpr bool concrete{true};
1533 using subclasses_t = mp::List<>;
1534 using fields_t = mp::List<>;
1535};
1536template <> struct node_from_variant_t<55> { using type = SgAsmBinaryMod; };
1537
1538// Class: AsmBinaryMsl
1539template <> struct describe_node_t<SgAsmBinaryMsl> {
1540 using node = SgAsmBinaryMsl;
1542 static constexpr char const * const name{"AsmBinaryMsl"};
1543 static constexpr unsigned long variant{56};
1544 static constexpr bool concrete{true};
1545 using subclasses_t = mp::List<>;
1546 using fields_t = mp::List<>;
1547};
1548template <> struct node_from_variant_t<56> { using type = SgAsmBinaryMsl; };
1549
1550// Class: AsmBinaryMultiply
1552 using node = SgAsmBinaryMultiply;
1554 static constexpr char const * const name{"AsmBinaryMultiply"};
1555 static constexpr unsigned long variant{57};
1556 static constexpr bool concrete{true};
1557 using subclasses_t = mp::List<>;
1558 using fields_t = mp::List<>;
1559};
1560template <> struct node_from_variant_t<57> { using type = SgAsmBinaryMultiply; };
1561
1562// Class: AsmBinaryRor
1563template <> struct describe_node_t<SgAsmBinaryRor> {
1564 using node = SgAsmBinaryRor;
1566 static constexpr char const * const name{"AsmBinaryRor"};
1567 static constexpr unsigned long variant{58};
1568 static constexpr bool concrete{true};
1569 using subclasses_t = mp::List<>;
1570 using fields_t = mp::List<>;
1571};
1572template <> struct node_from_variant_t<58> { using type = SgAsmBinaryRor; };
1573
1574// Class: AsmBinarySubtract
1576 using node = SgAsmBinarySubtract;
1578 static constexpr char const * const name{"AsmBinarySubtract"};
1579 static constexpr unsigned long variant{59};
1580 static constexpr bool concrete{true};
1581 using subclasses_t = mp::List<>;
1582 using fields_t = mp::List<>;
1583};
1584template <> struct node_from_variant_t<59> { using type = SgAsmBinarySubtract; };
1585
1586// Class: AsmBlock
1587template <> struct describe_field_t<SgAsmBlock,Rose::BinaryAnalysis::Address,&SgAsmBlock::p_id> {
1588 using parent = SgAsmBlock;
1589 using field_type = Rose::BinaryAnalysis::Address;
1590 static constexpr size_t position{0};
1591 static constexpr char const * const name{"id"};
1592 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
1593 static constexpr bool traverse{false};
1594 static constexpr auto mbr_ptr{&SgAsmBlock::p_id};
1595 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1596 using bind = Desc<SgAsmBlock, Rose::BinaryAnalysis::Address SgAsmBlock::*, &SgAsmBlock::p_id>;
1597};
1598template <> struct describe_field_t<SgAsmBlock,unsigned,&SgAsmBlock::p_reason> {
1599 using parent = SgAsmBlock;
1600 using field_type = unsigned;
1601 static constexpr size_t position{1};
1602 static constexpr char const * const name{"reason"};
1603 static constexpr char const * const typestr{"unsigned"};
1604 static constexpr bool traverse{false};
1605 static constexpr auto mbr_ptr{&SgAsmBlock::p_reason};
1606 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1607 using bind = Desc<SgAsmBlock, unsigned SgAsmBlock::*, &SgAsmBlock::p_reason>;
1608};
1609template <> struct describe_field_t<SgAsmBlock,SgAsmStatementPtrList,&SgAsmBlock::p_statementList> {
1610 using parent = SgAsmBlock;
1611 using field_type = SgAsmStatementPtrList;
1612 static constexpr size_t position{2};
1613 static constexpr char const * const name{"statementList"};
1614 static constexpr char const * const typestr{"SgAsmStatementPtrList"};
1615 static constexpr bool traverse{true};
1616 static constexpr auto mbr_ptr{&SgAsmBlock::p_statementList};
1617 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1618 using bind = Desc<SgAsmBlock, SgAsmStatementPtrList SgAsmBlock::*, &SgAsmBlock::p_statementList>;
1619};
1620template <> struct describe_field_t<SgAsmBlock,SgAsmIntegerValuePtrList,&SgAsmBlock::p_successors> {
1621 using parent = SgAsmBlock;
1622 using field_type = SgAsmIntegerValuePtrList;
1623 static constexpr size_t position{3};
1624 static constexpr char const * const name{"successors"};
1625 static constexpr char const * const typestr{"SgAsmIntegerValuePtrList"};
1626 static constexpr bool traverse{false};
1627 static constexpr auto mbr_ptr{&SgAsmBlock::p_successors};
1628 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1629 using bind = Desc<SgAsmBlock, SgAsmIntegerValuePtrList SgAsmBlock::*, &SgAsmBlock::p_successors>;
1630};
1631template <> struct describe_field_t<SgAsmBlock,bool,&SgAsmBlock::p_successorsComplete> {
1632 using parent = SgAsmBlock;
1633 using field_type = bool;
1634 static constexpr size_t position{4};
1635 static constexpr char const * const name{"successorsComplete"};
1636 static constexpr char const * const typestr{"bool"};
1637 static constexpr bool traverse{false};
1638 static constexpr auto mbr_ptr{&SgAsmBlock::p_successorsComplete};
1639 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1640 using bind = Desc<SgAsmBlock, bool SgAsmBlock::*, &SgAsmBlock::p_successorsComplete>;
1641};
1642template <> struct describe_field_t<SgAsmBlock,SgAsmBlock*,&SgAsmBlock::p_immediateDominator> {
1643 using parent = SgAsmBlock;
1644 using field_type = SgAsmBlock*;
1645 static constexpr size_t position{5};
1646 static constexpr char const * const name{"immediateDominator"};
1647 static constexpr char const * const typestr{"SgAsmBlock*"};
1648 static constexpr bool traverse{false};
1649 static constexpr auto mbr_ptr{&SgAsmBlock::p_immediateDominator};
1650 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1651 using bind = Desc<SgAsmBlock, SgAsmBlock* SgAsmBlock::*, &SgAsmBlock::p_immediateDominator>;
1652};
1653template <> struct describe_field_t<SgAsmBlock,size_t,&SgAsmBlock::p_cachedVertex> {
1654 using parent = SgAsmBlock;
1655 using field_type = size_t;
1656 static constexpr size_t position{6};
1657 static constexpr char const * const name{"cachedVertex"};
1658 static constexpr char const * const typestr{"size_t"};
1659 static constexpr bool traverse{false};
1660 static constexpr auto mbr_ptr{&SgAsmBlock::p_cachedVertex};
1661 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1662 using bind = Desc<SgAsmBlock, size_t SgAsmBlock::*, &SgAsmBlock::p_cachedVertex>;
1663};
1664template <> struct describe_field_t<SgAsmBlock,double,&SgAsmBlock::p_codeLikelihood> {
1665 using parent = SgAsmBlock;
1666 using field_type = double;
1667 static constexpr size_t position{7};
1668 static constexpr char const * const name{"codeLikelihood"};
1669 static constexpr char const * const typestr{"double"};
1670 static constexpr bool traverse{false};
1671 static constexpr auto mbr_ptr{&SgAsmBlock::p_codeLikelihood};
1672 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1673 using bind = Desc<SgAsmBlock, double SgAsmBlock::*, &SgAsmBlock::p_codeLikelihood>;
1674};
1675template <> struct describe_field_t<SgAsmBlock,int64_t,&SgAsmBlock::p_stackDeltaOut> {
1676 using parent = SgAsmBlock;
1677 using field_type = int64_t;
1678 static constexpr size_t position{8};
1679 static constexpr char const * const name{"stackDeltaOut"};
1680 static constexpr char const * const typestr{"int64_t"};
1681 static constexpr bool traverse{false};
1682 static constexpr auto mbr_ptr{&SgAsmBlock::p_stackDeltaOut};
1683 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1684 using bind = Desc<SgAsmBlock, int64_t SgAsmBlock::*, &SgAsmBlock::p_stackDeltaOut>;
1685};
1695template <> struct node_from_variant_t<62> { using type = SgAsmBlock; };
1696
1697// Class: AsmCoffStrtab
1699 using node = SgAsmCoffStrtab;
1700 using base = SgAsmGenericStrtab;
1701 static constexpr char const * const name{"AsmCoffStrtab"};
1702 static constexpr unsigned long variant{63};
1703 static constexpr bool concrete{true};
1704 using subclasses_t = mp::List<>;
1705 using fields_t = mp::List<>;
1706};
1707template <> struct node_from_variant_t<63> { using type = SgAsmCoffStrtab; };
1708
1709// Class: AsmCoffSymbol
1710template <> struct describe_field_t<SgAsmCoffSymbol,std::string,&SgAsmCoffSymbol::p_st_name> {
1711 using parent = SgAsmCoffSymbol;
1712 using field_type = std::string;
1713 static constexpr size_t position{0};
1714 static constexpr char const * const name{"st_name"};
1715 static constexpr char const * const typestr{"std::string"};
1716 static constexpr bool traverse{false};
1717 static constexpr auto mbr_ptr{&SgAsmCoffSymbol::p_st_name};
1718 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1719 using bind = Desc<SgAsmCoffSymbol, std::string SgAsmCoffSymbol::*, &SgAsmCoffSymbol::p_st_name>;
1720};
1721template <> struct describe_field_t<SgAsmCoffSymbol,Rose::BinaryAnalysis::Address,&SgAsmCoffSymbol::p_st_name_offset> {
1722 using parent = SgAsmCoffSymbol;
1723 using field_type = Rose::BinaryAnalysis::Address;
1724 static constexpr size_t position{1};
1725 static constexpr char const * const name{"st_name_offset"};
1726 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
1727 static constexpr bool traverse{false};
1728 static constexpr auto mbr_ptr{&SgAsmCoffSymbol::p_st_name_offset};
1729 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1730 using bind = Desc<SgAsmCoffSymbol, Rose::BinaryAnalysis::Address SgAsmCoffSymbol::*, &SgAsmCoffSymbol::p_st_name_offset>;
1731};
1732template <> struct describe_field_t<SgAsmCoffSymbol,int,&SgAsmCoffSymbol::p_st_section_num> {
1733 using parent = SgAsmCoffSymbol;
1734 using field_type = int;
1735 static constexpr size_t position{2};
1736 static constexpr char const * const name{"st_section_num"};
1737 static constexpr char const * const typestr{"int"};
1738 static constexpr bool traverse{false};
1739 static constexpr auto mbr_ptr{&SgAsmCoffSymbol::p_st_section_num};
1740 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1741 using bind = Desc<SgAsmCoffSymbol, int SgAsmCoffSymbol::*, &SgAsmCoffSymbol::p_st_section_num>;
1742};
1743template <> struct describe_field_t<SgAsmCoffSymbol,unsigned,&SgAsmCoffSymbol::p_st_type> {
1744 using parent = SgAsmCoffSymbol;
1745 using field_type = unsigned;
1746 static constexpr size_t position{3};
1747 static constexpr char const * const name{"st_type"};
1748 static constexpr char const * const typestr{"unsigned"};
1749 static constexpr bool traverse{false};
1750 static constexpr auto mbr_ptr{&SgAsmCoffSymbol::p_st_type};
1751 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1752 using bind = Desc<SgAsmCoffSymbol, unsigned SgAsmCoffSymbol::*, &SgAsmCoffSymbol::p_st_type>;
1753};
1754template <> struct describe_field_t<SgAsmCoffSymbol,unsigned,&SgAsmCoffSymbol::p_st_storage_class> {
1755 using parent = SgAsmCoffSymbol;
1756 using field_type = unsigned;
1757 static constexpr size_t position{4};
1758 static constexpr char const * const name{"st_storage_class"};
1759 static constexpr char const * const typestr{"unsigned"};
1760 static constexpr bool traverse{false};
1761 static constexpr auto mbr_ptr{&SgAsmCoffSymbol::p_st_storage_class};
1762 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1763 using bind = Desc<SgAsmCoffSymbol, unsigned SgAsmCoffSymbol::*, &SgAsmCoffSymbol::p_st_storage_class>;
1764};
1765template <> struct describe_field_t<SgAsmCoffSymbol,unsigned,&SgAsmCoffSymbol::p_st_num_aux_entries> {
1766 using parent = SgAsmCoffSymbol;
1767 using field_type = unsigned;
1768 static constexpr size_t position{5};
1769 static constexpr char const * const name{"st_num_aux_entries"};
1770 static constexpr char const * const typestr{"unsigned"};
1771 static constexpr bool traverse{false};
1772 static constexpr auto mbr_ptr{&SgAsmCoffSymbol::p_st_num_aux_entries};
1773 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1774 using bind = Desc<SgAsmCoffSymbol, unsigned SgAsmCoffSymbol::*, &SgAsmCoffSymbol::p_st_num_aux_entries>;
1775};
1776template <> struct describe_field_t<SgAsmCoffSymbol,SgUnsignedCharList,&SgAsmCoffSymbol::p_auxiliaryData> {
1777 using parent = SgAsmCoffSymbol;
1778 using field_type = SgUnsignedCharList;
1779 static constexpr size_t position{6};
1780 static constexpr char const * const name{"auxiliaryData"};
1781 static constexpr char const * const typestr{"SgUnsignedCharList"};
1782 static constexpr bool traverse{false};
1783 static constexpr auto mbr_ptr{&SgAsmCoffSymbol::p_auxiliaryData};
1784 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1785 using bind = Desc<SgAsmCoffSymbol, SgUnsignedCharList SgAsmCoffSymbol::*, &SgAsmCoffSymbol::p_auxiliaryData>;
1786};
1796template <> struct node_from_variant_t<64> { using type = SgAsmCoffSymbol; };
1797
1798// Class: AsmCoffSymbolList
1799template <> struct describe_field_t<SgAsmCoffSymbolList,SgAsmCoffSymbolPtrList,&SgAsmCoffSymbolList::p_symbols> {
1801 using field_type = SgAsmCoffSymbolPtrList;
1802 static constexpr size_t position{0};
1803 static constexpr char const * const name{"symbols"};
1804 static constexpr char const * const typestr{"SgAsmCoffSymbolPtrList"};
1805 static constexpr bool traverse{true};
1806 static constexpr auto mbr_ptr{&SgAsmCoffSymbolList::p_symbols};
1807 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1808 using bind = Desc<SgAsmCoffSymbolList, SgAsmCoffSymbolPtrList SgAsmCoffSymbolList::*, &SgAsmCoffSymbolList::p_symbols>;
1809};
1811 using node = SgAsmCoffSymbolList;
1813 static constexpr char const * const name{"AsmCoffSymbolList"};
1814 static constexpr unsigned long variant{65};
1815 static constexpr bool concrete{true};
1816 using subclasses_t = mp::List<>;
1818};
1819template <> struct node_from_variant_t<65> { using type = SgAsmCoffSymbolList; };
1820
1821// Class: AsmCoffSymbolTable
1822template <> struct describe_field_t<SgAsmCoffSymbolTable,SgAsmGenericSection*,&SgAsmCoffSymbolTable::p_strtab> {
1825 static constexpr size_t position{0};
1826 static constexpr char const * const name{"strtab"};
1827 static constexpr char const * const typestr{"SgAsmGenericSection*"};
1828 static constexpr bool traverse{false};
1829 static constexpr auto mbr_ptr{&SgAsmCoffSymbolTable::p_strtab};
1830 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1831 using bind = Desc<SgAsmCoffSymbolTable, SgAsmGenericSection* SgAsmCoffSymbolTable::*, &SgAsmCoffSymbolTable::p_strtab>;
1832};
1833template <> struct describe_field_t<SgAsmCoffSymbolTable,SgAsmCoffSymbolList*,&SgAsmCoffSymbolTable::p_symbols> {
1836 static constexpr size_t position{1};
1837 static constexpr char const * const name{"symbols"};
1838 static constexpr char const * const typestr{"SgAsmCoffSymbolList*"};
1839 static constexpr bool traverse{true};
1840 static constexpr auto mbr_ptr{&SgAsmCoffSymbolTable::p_symbols};
1841 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1842 using bind = Desc<SgAsmCoffSymbolTable, SgAsmCoffSymbolList* SgAsmCoffSymbolTable::*, &SgAsmCoffSymbolTable::p_symbols>;
1843};
1845 using node = SgAsmCoffSymbolTable;
1846 using base = SgAsmGenericSection;
1847 static constexpr char const * const name{"AsmCoffSymbolTable"};
1848 static constexpr unsigned long variant{66};
1849 static constexpr bool concrete{true};
1850 using subclasses_t = mp::List<>;
1852};
1853template <> struct node_from_variant_t<66> { using type = SgAsmCoffSymbolTable; };
1854
1855// Class: AsmCommonSubExpression
1856template <> struct describe_field_t<SgAsmCommonSubExpression,SgAsmExpression*,&SgAsmCommonSubExpression::p_subexpression> {
1858 using field_type = SgAsmExpression*;
1859 static constexpr size_t position{0};
1860 static constexpr char const * const name{"subexpression"};
1861 static constexpr char const * const typestr{"SgAsmExpression*"};
1862 static constexpr bool traverse{true};
1863 static constexpr auto mbr_ptr{&SgAsmCommonSubExpression::p_subexpression};
1864 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1865 using bind = Desc<SgAsmCommonSubExpression, SgAsmExpression* SgAsmCommonSubExpression::*, &SgAsmCommonSubExpression::p_subexpression>;
1866};
1869 using base = SgAsmExpression;
1870 static constexpr char const * const name{"AsmCommonSubExpression"};
1871 static constexpr unsigned long variant{67};
1872 static constexpr bool concrete{true};
1873 using subclasses_t = mp::List<>;
1875};
1876template <> struct node_from_variant_t<67> { using type = SgAsmCommonSubExpression; };
1877
1878// Class: AsmControlFlagsExpression
1879template <> struct describe_field_t<SgAsmControlFlagsExpression,unsigned long,&SgAsmControlFlagsExpression::p_bitFlags> {
1881 using field_type = unsigned long;
1882 static constexpr size_t position{0};
1883 static constexpr char const * const name{"bitFlags"};
1884 static constexpr char const * const typestr{"unsigned long"};
1885 static constexpr bool traverse{false};
1886 static constexpr auto mbr_ptr{&SgAsmControlFlagsExpression::p_bitFlags};
1887 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1888 using bind = Desc<SgAsmControlFlagsExpression, unsigned long SgAsmControlFlagsExpression::*, &SgAsmControlFlagsExpression::p_bitFlags>;
1889};
1892 using base = SgAsmExpression;
1893 static constexpr char const * const name{"AsmControlFlagsExpression"};
1894 static constexpr unsigned long variant{68};
1895 static constexpr bool concrete{true};
1896 using subclasses_t = mp::List<>;
1898};
1899template <> struct node_from_variant_t<68> { using type = SgAsmControlFlagsExpression; };
1900
1901// Class: AsmConstantExpression
1902template <> struct describe_field_t<SgAsmConstantExpression,Sawyer::Container::BitVector,&SgAsmConstantExpression::p_bitVector> {
1905 static constexpr size_t position{0};
1906 static constexpr char const * const name{"bitVector"};
1907 static constexpr char const * const typestr{"Sawyer::Container::BitVector"};
1908 static constexpr bool traverse{false};
1909 static constexpr auto mbr_ptr{&SgAsmConstantExpression::p_bitVector};
1910 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1911 using bind = Desc<SgAsmConstantExpression, Sawyer::Container::BitVector SgAsmConstantExpression::*, &SgAsmConstantExpression::p_bitVector>;
1912};
1915 using base = SgAsmValueExpression;
1916 static constexpr char const * const name{"AsmConstantExpression"};
1917 static constexpr unsigned long variant{69};
1918 static constexpr bool concrete{false};
1921};
1922template <> struct node_from_variant_t<69> { using type = SgAsmConstantExpression; };
1923
1924// Class: AsmDOSExtendedHeader
1925template <> struct describe_field_t<SgAsmDOSExtendedHeader,unsigned,&SgAsmDOSExtendedHeader::p_e_res1> {
1927 using field_type = unsigned;
1928 static constexpr size_t position{0};
1929 static constexpr char const * const name{"e_res1"};
1930 static constexpr char const * const typestr{"unsigned"};
1931 static constexpr bool traverse{false};
1932 static constexpr auto mbr_ptr{&SgAsmDOSExtendedHeader::p_e_res1};
1933 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1934 using bind = Desc<SgAsmDOSExtendedHeader, unsigned SgAsmDOSExtendedHeader::*, &SgAsmDOSExtendedHeader::p_e_res1>;
1935};
1936template <> struct describe_field_t<SgAsmDOSExtendedHeader,unsigned,&SgAsmDOSExtendedHeader::p_e_oemid> {
1938 using field_type = unsigned;
1939 static constexpr size_t position{1};
1940 static constexpr char const * const name{"e_oemid"};
1941 static constexpr char const * const typestr{"unsigned"};
1942 static constexpr bool traverse{false};
1943 static constexpr auto mbr_ptr{&SgAsmDOSExtendedHeader::p_e_oemid};
1944 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1945 using bind = Desc<SgAsmDOSExtendedHeader, unsigned SgAsmDOSExtendedHeader::*, &SgAsmDOSExtendedHeader::p_e_oemid>;
1946};
1947template <> struct describe_field_t<SgAsmDOSExtendedHeader,unsigned,&SgAsmDOSExtendedHeader::p_e_oeminfo> {
1949 using field_type = unsigned;
1950 static constexpr size_t position{2};
1951 static constexpr char const * const name{"e_oeminfo"};
1952 static constexpr char const * const typestr{"unsigned"};
1953 static constexpr bool traverse{false};
1954 static constexpr auto mbr_ptr{&SgAsmDOSExtendedHeader::p_e_oeminfo};
1955 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1956 using bind = Desc<SgAsmDOSExtendedHeader, unsigned SgAsmDOSExtendedHeader::*, &SgAsmDOSExtendedHeader::p_e_oeminfo>;
1957};
1958template <> struct describe_field_t<SgAsmDOSExtendedHeader,unsigned,&SgAsmDOSExtendedHeader::p_e_res2> {
1960 using field_type = unsigned;
1961 static constexpr size_t position{3};
1962 static constexpr char const * const name{"e_res2"};
1963 static constexpr char const * const typestr{"unsigned"};
1964 static constexpr bool traverse{false};
1965 static constexpr auto mbr_ptr{&SgAsmDOSExtendedHeader::p_e_res2};
1966 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1967 using bind = Desc<SgAsmDOSExtendedHeader, unsigned SgAsmDOSExtendedHeader::*, &SgAsmDOSExtendedHeader::p_e_res2>;
1968};
1969template <> struct describe_field_t<SgAsmDOSExtendedHeader,unsigned,&SgAsmDOSExtendedHeader::p_e_res3> {
1971 using field_type = unsigned;
1972 static constexpr size_t position{4};
1973 static constexpr char const * const name{"e_res3"};
1974 static constexpr char const * const typestr{"unsigned"};
1975 static constexpr bool traverse{false};
1976 static constexpr auto mbr_ptr{&SgAsmDOSExtendedHeader::p_e_res3};
1977 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1978 using bind = Desc<SgAsmDOSExtendedHeader, unsigned SgAsmDOSExtendedHeader::*, &SgAsmDOSExtendedHeader::p_e_res3>;
1979};
1980template <> struct describe_field_t<SgAsmDOSExtendedHeader,unsigned,&SgAsmDOSExtendedHeader::p_e_res4> {
1982 using field_type = unsigned;
1983 static constexpr size_t position{5};
1984 static constexpr char const * const name{"e_res4"};
1985 static constexpr char const * const typestr{"unsigned"};
1986 static constexpr bool traverse{false};
1987 static constexpr auto mbr_ptr{&SgAsmDOSExtendedHeader::p_e_res4};
1988 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
1989 using bind = Desc<SgAsmDOSExtendedHeader, unsigned SgAsmDOSExtendedHeader::*, &SgAsmDOSExtendedHeader::p_e_res4>;
1990};
1991template <> struct describe_field_t<SgAsmDOSExtendedHeader,unsigned,&SgAsmDOSExtendedHeader::p_e_res5> {
1993 using field_type = unsigned;
1994 static constexpr size_t position{6};
1995 static constexpr char const * const name{"e_res5"};
1996 static constexpr char const * const typestr{"unsigned"};
1997 static constexpr bool traverse{false};
1998 static constexpr auto mbr_ptr{&SgAsmDOSExtendedHeader::p_e_res5};
1999 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2000 using bind = Desc<SgAsmDOSExtendedHeader, unsigned SgAsmDOSExtendedHeader::*, &SgAsmDOSExtendedHeader::p_e_res5>;
2001};
2002template <> struct describe_field_t<SgAsmDOSExtendedHeader,unsigned,&SgAsmDOSExtendedHeader::p_e_res6> {
2004 using field_type = unsigned;
2005 static constexpr size_t position{7};
2006 static constexpr char const * const name{"e_res6"};
2007 static constexpr char const * const typestr{"unsigned"};
2008 static constexpr bool traverse{false};
2009 static constexpr auto mbr_ptr{&SgAsmDOSExtendedHeader::p_e_res6};
2010 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2011 using bind = Desc<SgAsmDOSExtendedHeader, unsigned SgAsmDOSExtendedHeader::*, &SgAsmDOSExtendedHeader::p_e_res6>;
2012};
2013template <> struct describe_field_t<SgAsmDOSExtendedHeader,Rose::BinaryAnalysis::Address,&SgAsmDOSExtendedHeader::p_e_lfanew> {
2015 using field_type = Rose::BinaryAnalysis::Address;
2016 static constexpr size_t position{8};
2017 static constexpr char const * const name{"e_lfanew"};
2018 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
2019 static constexpr bool traverse{false};
2020 static constexpr auto mbr_ptr{&SgAsmDOSExtendedHeader::p_e_lfanew};
2021 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2022 using bind = Desc<SgAsmDOSExtendedHeader, Rose::BinaryAnalysis::Address SgAsmDOSExtendedHeader::*, &SgAsmDOSExtendedHeader::p_e_lfanew>;
2023};
2033template <> struct node_from_variant_t<70> { using type = SgAsmDOSExtendedHeader; };
2034
2035// Class: AsmDOSFileHeader
2036template <> struct describe_field_t<SgAsmDOSFileHeader,uint16_t,&SgAsmDOSFileHeader::p_e_last_page_size> {
2037 using parent = SgAsmDOSFileHeader;
2038 using field_type = uint16_t;
2039 static constexpr size_t position{0};
2040 static constexpr char const * const name{"e_last_page_size"};
2041 static constexpr char const * const typestr{"uint16_t"};
2042 static constexpr bool traverse{false};
2043 static constexpr auto mbr_ptr{&SgAsmDOSFileHeader::p_e_last_page_size};
2044 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2045 using bind = Desc<SgAsmDOSFileHeader, uint16_t SgAsmDOSFileHeader::*, &SgAsmDOSFileHeader::p_e_last_page_size>;
2046};
2047template <> struct describe_field_t<SgAsmDOSFileHeader,uint16_t,&SgAsmDOSFileHeader::p_e_total_pages> {
2048 using parent = SgAsmDOSFileHeader;
2049 using field_type = uint16_t;
2050 static constexpr size_t position{1};
2051 static constexpr char const * const name{"e_total_pages"};
2052 static constexpr char const * const typestr{"uint16_t"};
2053 static constexpr bool traverse{false};
2054 static constexpr auto mbr_ptr{&SgAsmDOSFileHeader::p_e_total_pages};
2055 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2056 using bind = Desc<SgAsmDOSFileHeader, uint16_t SgAsmDOSFileHeader::*, &SgAsmDOSFileHeader::p_e_total_pages>;
2057};
2058template <> struct describe_field_t<SgAsmDOSFileHeader,uint16_t,&SgAsmDOSFileHeader::p_e_nrelocs> {
2059 using parent = SgAsmDOSFileHeader;
2060 using field_type = uint16_t;
2061 static constexpr size_t position{2};
2062 static constexpr char const * const name{"e_nrelocs"};
2063 static constexpr char const * const typestr{"uint16_t"};
2064 static constexpr bool traverse{false};
2065 static constexpr auto mbr_ptr{&SgAsmDOSFileHeader::p_e_nrelocs};
2066 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2067 using bind = Desc<SgAsmDOSFileHeader, uint16_t SgAsmDOSFileHeader::*, &SgAsmDOSFileHeader::p_e_nrelocs>;
2068};
2069template <> struct describe_field_t<SgAsmDOSFileHeader,uint16_t,&SgAsmDOSFileHeader::p_e_header_paragraphs> {
2070 using parent = SgAsmDOSFileHeader;
2071 using field_type = uint16_t;
2072 static constexpr size_t position{3};
2073 static constexpr char const * const name{"e_header_paragraphs"};
2074 static constexpr char const * const typestr{"uint16_t"};
2075 static constexpr bool traverse{false};
2076 static constexpr auto mbr_ptr{&SgAsmDOSFileHeader::p_e_header_paragraphs};
2077 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2078 using bind = Desc<SgAsmDOSFileHeader, uint16_t SgAsmDOSFileHeader::*, &SgAsmDOSFileHeader::p_e_header_paragraphs>;
2079};
2080template <> struct describe_field_t<SgAsmDOSFileHeader,uint16_t,&SgAsmDOSFileHeader::p_e_minalloc> {
2081 using parent = SgAsmDOSFileHeader;
2082 using field_type = uint16_t;
2083 static constexpr size_t position{4};
2084 static constexpr char const * const name{"e_minalloc"};
2085 static constexpr char const * const typestr{"uint16_t"};
2086 static constexpr bool traverse{false};
2087 static constexpr auto mbr_ptr{&SgAsmDOSFileHeader::p_e_minalloc};
2088 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2089 using bind = Desc<SgAsmDOSFileHeader, uint16_t SgAsmDOSFileHeader::*, &SgAsmDOSFileHeader::p_e_minalloc>;
2090};
2091template <> struct describe_field_t<SgAsmDOSFileHeader,uint16_t,&SgAsmDOSFileHeader::p_e_maxalloc> {
2092 using parent = SgAsmDOSFileHeader;
2093 using field_type = uint16_t;
2094 static constexpr size_t position{5};
2095 static constexpr char const * const name{"e_maxalloc"};
2096 static constexpr char const * const typestr{"uint16_t"};
2097 static constexpr bool traverse{false};
2098 static constexpr auto mbr_ptr{&SgAsmDOSFileHeader::p_e_maxalloc};
2099 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2100 using bind = Desc<SgAsmDOSFileHeader, uint16_t SgAsmDOSFileHeader::*, &SgAsmDOSFileHeader::p_e_maxalloc>;
2101};
2102template <> struct describe_field_t<SgAsmDOSFileHeader,uint16_t,&SgAsmDOSFileHeader::p_e_ss> {
2103 using parent = SgAsmDOSFileHeader;
2104 using field_type = uint16_t;
2105 static constexpr size_t position{6};
2106 static constexpr char const * const name{"e_ss"};
2107 static constexpr char const * const typestr{"uint16_t"};
2108 static constexpr bool traverse{false};
2109 static constexpr auto mbr_ptr{&SgAsmDOSFileHeader::p_e_ss};
2110 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2111 using bind = Desc<SgAsmDOSFileHeader, uint16_t SgAsmDOSFileHeader::*, &SgAsmDOSFileHeader::p_e_ss>;
2112};
2113template <> struct describe_field_t<SgAsmDOSFileHeader,uint16_t,&SgAsmDOSFileHeader::p_e_sp> {
2114 using parent = SgAsmDOSFileHeader;
2115 using field_type = uint16_t;
2116 static constexpr size_t position{7};
2117 static constexpr char const * const name{"e_sp"};
2118 static constexpr char const * const typestr{"uint16_t"};
2119 static constexpr bool traverse{false};
2120 static constexpr auto mbr_ptr{&SgAsmDOSFileHeader::p_e_sp};
2121 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2122 using bind = Desc<SgAsmDOSFileHeader, uint16_t SgAsmDOSFileHeader::*, &SgAsmDOSFileHeader::p_e_sp>;
2123};
2124template <> struct describe_field_t<SgAsmDOSFileHeader,uint16_t,&SgAsmDOSFileHeader::p_e_cksum> {
2125 using parent = SgAsmDOSFileHeader;
2126 using field_type = uint16_t;
2127 static constexpr size_t position{8};
2128 static constexpr char const * const name{"e_cksum"};
2129 static constexpr char const * const typestr{"uint16_t"};
2130 static constexpr bool traverse{false};
2131 static constexpr auto mbr_ptr{&SgAsmDOSFileHeader::p_e_cksum};
2132 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2133 using bind = Desc<SgAsmDOSFileHeader, uint16_t SgAsmDOSFileHeader::*, &SgAsmDOSFileHeader::p_e_cksum>;
2134};
2135template <> struct describe_field_t<SgAsmDOSFileHeader,uint16_t,&SgAsmDOSFileHeader::p_e_ip> {
2136 using parent = SgAsmDOSFileHeader;
2137 using field_type = uint16_t;
2138 static constexpr size_t position{9};
2139 static constexpr char const * const name{"e_ip"};
2140 static constexpr char const * const typestr{"uint16_t"};
2141 static constexpr bool traverse{false};
2142 static constexpr auto mbr_ptr{&SgAsmDOSFileHeader::p_e_ip};
2143 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2144 using bind = Desc<SgAsmDOSFileHeader, uint16_t SgAsmDOSFileHeader::*, &SgAsmDOSFileHeader::p_e_ip>;
2145};
2146template <> struct describe_field_t<SgAsmDOSFileHeader,uint16_t,&SgAsmDOSFileHeader::p_e_cs> {
2147 using parent = SgAsmDOSFileHeader;
2148 using field_type = uint16_t;
2149 static constexpr size_t position{10};
2150 static constexpr char const * const name{"e_cs"};
2151 static constexpr char const * const typestr{"uint16_t"};
2152 static constexpr bool traverse{false};
2153 static constexpr auto mbr_ptr{&SgAsmDOSFileHeader::p_e_cs};
2154 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2155 using bind = Desc<SgAsmDOSFileHeader, uint16_t SgAsmDOSFileHeader::*, &SgAsmDOSFileHeader::p_e_cs>;
2156};
2157template <> struct describe_field_t<SgAsmDOSFileHeader,uint16_t,&SgAsmDOSFileHeader::p_e_overlay> {
2158 using parent = SgAsmDOSFileHeader;
2159 using field_type = uint16_t;
2160 static constexpr size_t position{11};
2161 static constexpr char const * const name{"e_overlay"};
2162 static constexpr char const * const typestr{"uint16_t"};
2163 static constexpr bool traverse{false};
2164 static constexpr auto mbr_ptr{&SgAsmDOSFileHeader::p_e_overlay};
2165 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2166 using bind = Desc<SgAsmDOSFileHeader, uint16_t SgAsmDOSFileHeader::*, &SgAsmDOSFileHeader::p_e_overlay>;
2167};
2168template <> struct describe_field_t<SgAsmDOSFileHeader,Rose::BinaryAnalysis::Address,&SgAsmDOSFileHeader::p_e_relocs_offset> {
2169 using parent = SgAsmDOSFileHeader;
2170 using field_type = Rose::BinaryAnalysis::Address;
2171 static constexpr size_t position{12};
2172 static constexpr char const * const name{"e_relocs_offset"};
2173 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
2174 static constexpr bool traverse{false};
2175 static constexpr auto mbr_ptr{&SgAsmDOSFileHeader::p_e_relocs_offset};
2176 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2177 using bind = Desc<SgAsmDOSFileHeader, Rose::BinaryAnalysis::Address SgAsmDOSFileHeader::*, &SgAsmDOSFileHeader::p_e_relocs_offset>;
2178};
2179template <> struct describe_field_t<SgAsmDOSFileHeader,unsigned,&SgAsmDOSFileHeader::p_e_res1> {
2180 using parent = SgAsmDOSFileHeader;
2181 using field_type = unsigned;
2182 static constexpr size_t position{13};
2183 static constexpr char const * const name{"e_res1"};
2184 static constexpr char const * const typestr{"unsigned"};
2185 static constexpr bool traverse{false};
2186 static constexpr auto mbr_ptr{&SgAsmDOSFileHeader::p_e_res1};
2187 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2188 using bind = Desc<SgAsmDOSFileHeader, unsigned SgAsmDOSFileHeader::*, &SgAsmDOSFileHeader::p_e_res1>;
2189};
2190template <> struct describe_field_t<SgAsmDOSFileHeader,SgAsmGenericSection*,&SgAsmDOSFileHeader::p_relocs> {
2191 using parent = SgAsmDOSFileHeader;
2193 static constexpr size_t position{14};
2194 static constexpr char const * const name{"relocs"};
2195 static constexpr char const * const typestr{"SgAsmGenericSection*"};
2196 static constexpr bool traverse{false};
2197 static constexpr auto mbr_ptr{&SgAsmDOSFileHeader::p_relocs};
2198 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2199 using bind = Desc<SgAsmDOSFileHeader, SgAsmGenericSection* SgAsmDOSFileHeader::*, &SgAsmDOSFileHeader::p_relocs>;
2200};
2201template <> struct describe_field_t<SgAsmDOSFileHeader,SgAsmGenericSection*,&SgAsmDOSFileHeader::p_rm_section> {
2202 using parent = SgAsmDOSFileHeader;
2204 static constexpr size_t position{15};
2205 static constexpr char const * const name{"rm_section"};
2206 static constexpr char const * const typestr{"SgAsmGenericSection*"};
2207 static constexpr bool traverse{false};
2208 static constexpr auto mbr_ptr{&SgAsmDOSFileHeader::p_rm_section};
2209 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2210 using bind = Desc<SgAsmDOSFileHeader, SgAsmGenericSection* SgAsmDOSFileHeader::*, &SgAsmDOSFileHeader::p_rm_section>;
2211};
2213 using node = SgAsmDOSFileHeader;
2214 using base = SgAsmGenericHeader;
2215 static constexpr char const * const name{"AsmDOSFileHeader"};
2216 static constexpr unsigned long variant{71};
2217 static constexpr bool concrete{true};
2218 using subclasses_t = mp::List<>;
2220};
2221template <> struct node_from_variant_t<71> { using type = SgAsmDOSFileHeader; };
2222
2223// Class: AsmSynthesizedDataStructureDeclaration
2227 static constexpr char const * const name{"AsmSynthesizedDataStructureDeclaration"};
2228 static constexpr unsigned long variant{72};
2229 static constexpr bool concrete{true};
2230 using subclasses_t = mp::List<>;
2231 using fields_t = mp::List<>;
2232};
2233template <> struct node_from_variant_t<72> { using type = SgAsmSynthesizedDataStructureDeclaration; };
2234
2235// Class: AsmSynthesizedDeclaration
2238 using base = SgAsmStatement;
2239 static constexpr char const * const name{"AsmSynthesizedDeclaration"};
2240 static constexpr unsigned long variant{73};
2241 static constexpr bool concrete{false};
2243 using fields_t = mp::List<>;
2244};
2245template <> struct node_from_variant_t<73> { using type = SgAsmSynthesizedDeclaration; };
2246
2247// Class: AsmDirectRegisterExpression
2251 static constexpr char const * const name{"AsmDirectRegisterExpression"};
2252 static constexpr unsigned long variant{74};
2253 static constexpr bool concrete{true};
2254 using subclasses_t = mp::List<>;
2255 using fields_t = mp::List<>;
2256};
2257template <> struct node_from_variant_t<74> { using type = SgAsmDirectRegisterExpression; };
2258
2259// Class: AsmDwarfAccessDeclaration
2262 using base = SgAsmDwarfConstruct;
2263 static constexpr char const * const name{"AsmDwarfAccessDeclaration"};
2264 static constexpr unsigned long variant{75};
2265 static constexpr bool concrete{true};
2266 using subclasses_t = mp::List<>;
2267 using fields_t = mp::List<>;
2268};
2269template <> struct node_from_variant_t<75> { using type = SgAsmDwarfAccessDeclaration; };
2270
2271// Class: AsmDwarfArrayType
2272template <> struct describe_field_t<SgAsmDwarfArrayType,SgAsmDwarfConstructList*,&SgAsmDwarfArrayType::p_body> {
2275 static constexpr size_t position{0};
2276 static constexpr char const * const name{"body"};
2277 static constexpr char const * const typestr{"SgAsmDwarfConstructList*"};
2278 static constexpr bool traverse{true};
2279 static constexpr auto mbr_ptr{&SgAsmDwarfArrayType::p_body};
2280 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2281 using bind = Desc<SgAsmDwarfArrayType, SgAsmDwarfConstructList* SgAsmDwarfArrayType::*, &SgAsmDwarfArrayType::p_body>;
2282};
2284 using node = SgAsmDwarfArrayType;
2285 using base = SgAsmDwarfConstruct;
2286 static constexpr char const * const name{"AsmDwarfArrayType"};
2287 static constexpr unsigned long variant{76};
2288 static constexpr bool concrete{true};
2289 using subclasses_t = mp::List<>;
2291};
2292template <> struct node_from_variant_t<76> { using type = SgAsmDwarfArrayType; };
2293
2294// Class: AsmDwarfBaseType
2296 using node = SgAsmDwarfBaseType;
2297 using base = SgAsmDwarfConstruct;
2298 static constexpr char const * const name{"AsmDwarfBaseType"};
2299 static constexpr unsigned long variant{77};
2300 static constexpr bool concrete{true};
2301 using subclasses_t = mp::List<>;
2302 using fields_t = mp::List<>;
2303};
2304template <> struct node_from_variant_t<77> { using type = SgAsmDwarfBaseType; };
2305
2306// Class: AsmDwarfCatchBlock
2308 using node = SgAsmDwarfCatchBlock;
2309 using base = SgAsmDwarfConstruct;
2310 static constexpr char const * const name{"AsmDwarfCatchBlock"};
2311 static constexpr unsigned long variant{78};
2312 static constexpr bool concrete{true};
2313 using subclasses_t = mp::List<>;
2314 using fields_t = mp::List<>;
2315};
2316template <> struct node_from_variant_t<78> { using type = SgAsmDwarfCatchBlock; };
2317
2318// Class: AsmDwarfClassTemplate
2321 using base = SgAsmDwarfConstruct;
2322 static constexpr char const * const name{"AsmDwarfClassTemplate"};
2323 static constexpr unsigned long variant{79};
2324 static constexpr bool concrete{true};
2325 using subclasses_t = mp::List<>;
2326 using fields_t = mp::List<>;
2327};
2328template <> struct node_from_variant_t<79> { using type = SgAsmDwarfClassTemplate; };
2329
2330// Class: AsmDwarfClassType
2331template <> struct describe_field_t<SgAsmDwarfClassType,SgAsmDwarfConstructList*,&SgAsmDwarfClassType::p_body> {
2334 static constexpr size_t position{0};
2335 static constexpr char const * const name{"body"};
2336 static constexpr char const * const typestr{"SgAsmDwarfConstructList*"};
2337 static constexpr bool traverse{true};
2338 static constexpr auto mbr_ptr{&SgAsmDwarfClassType::p_body};
2339 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2340 using bind = Desc<SgAsmDwarfClassType, SgAsmDwarfConstructList* SgAsmDwarfClassType::*, &SgAsmDwarfClassType::p_body>;
2341};
2343 using node = SgAsmDwarfClassType;
2344 using base = SgAsmDwarfConstruct;
2345 static constexpr char const * const name{"AsmDwarfClassType"};
2346 static constexpr unsigned long variant{80};
2347 static constexpr bool concrete{true};
2348 using subclasses_t = mp::List<>;
2350};
2351template <> struct node_from_variant_t<80> { using type = SgAsmDwarfClassType; };
2352
2353// Class: AsmDwarfCommonBlock
2354template <> struct describe_field_t<SgAsmDwarfCommonBlock,SgAsmDwarfConstructList*,&SgAsmDwarfCommonBlock::p_body> {
2357 static constexpr size_t position{0};
2358 static constexpr char const * const name{"body"};
2359 static constexpr char const * const typestr{"SgAsmDwarfConstructList*"};
2360 static constexpr bool traverse{true};
2361 static constexpr auto mbr_ptr{&SgAsmDwarfCommonBlock::p_body};
2362 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2363 using bind = Desc<SgAsmDwarfCommonBlock, SgAsmDwarfConstructList* SgAsmDwarfCommonBlock::*, &SgAsmDwarfCommonBlock::p_body>;
2364};
2367 using base = SgAsmDwarfConstruct;
2368 static constexpr char const * const name{"AsmDwarfCommonBlock"};
2369 static constexpr unsigned long variant{81};
2370 static constexpr bool concrete{true};
2371 using subclasses_t = mp::List<>;
2373};
2374template <> struct node_from_variant_t<81> { using type = SgAsmDwarfCommonBlock; };
2375
2376// Class: AsmDwarfCommonInclusion
2379 using base = SgAsmDwarfConstruct;
2380 static constexpr char const * const name{"AsmDwarfCommonInclusion"};
2381 static constexpr unsigned long variant{82};
2382 static constexpr bool concrete{true};
2383 using subclasses_t = mp::List<>;
2384 using fields_t = mp::List<>;
2385};
2386template <> struct node_from_variant_t<82> { using type = SgAsmDwarfCommonInclusion; };
2387
2388// Class: AsmDwarfCompilationUnit
2389template <> struct describe_field_t<SgAsmDwarfCompilationUnit,std::string,&SgAsmDwarfCompilationUnit::p_producer> {
2391 using field_type = std::string;
2392 static constexpr size_t position{0};
2393 static constexpr char const * const name{"producer"};
2394 static constexpr char const * const typestr{"std::string"};
2395 static constexpr bool traverse{false};
2396 static constexpr auto mbr_ptr{&SgAsmDwarfCompilationUnit::p_producer};
2397 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2398 using bind = Desc<SgAsmDwarfCompilationUnit, std::string SgAsmDwarfCompilationUnit::*, &SgAsmDwarfCompilationUnit::p_producer>;
2399};
2400template <> struct describe_field_t<SgAsmDwarfCompilationUnit,std::string,&SgAsmDwarfCompilationUnit::p_language> {
2402 using field_type = std::string;
2403 static constexpr size_t position{1};
2404 static constexpr char const * const name{"language"};
2405 static constexpr char const * const typestr{"std::string"};
2406 static constexpr bool traverse{false};
2407 static constexpr auto mbr_ptr{&SgAsmDwarfCompilationUnit::p_language};
2408 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2409 using bind = Desc<SgAsmDwarfCompilationUnit, std::string SgAsmDwarfCompilationUnit::*, &SgAsmDwarfCompilationUnit::p_language>;
2410};
2411template <> struct describe_field_t<SgAsmDwarfCompilationUnit,uint64_t,&SgAsmDwarfCompilationUnit::p_low_pc> {
2413 using field_type = uint64_t;
2414 static constexpr size_t position{2};
2415 static constexpr char const * const name{"low_pc"};
2416 static constexpr char const * const typestr{"uint64_t"};
2417 static constexpr bool traverse{false};
2418 static constexpr auto mbr_ptr{&SgAsmDwarfCompilationUnit::p_low_pc};
2419 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2420 using bind = Desc<SgAsmDwarfCompilationUnit, uint64_t SgAsmDwarfCompilationUnit::*, &SgAsmDwarfCompilationUnit::p_low_pc>;
2421};
2422template <> struct describe_field_t<SgAsmDwarfCompilationUnit,uint64_t,&SgAsmDwarfCompilationUnit::p_hi_pc> {
2424 using field_type = uint64_t;
2425 static constexpr size_t position{3};
2426 static constexpr char const * const name{"hi_pc"};
2427 static constexpr char const * const typestr{"uint64_t"};
2428 static constexpr bool traverse{false};
2429 static constexpr auto mbr_ptr{&SgAsmDwarfCompilationUnit::p_hi_pc};
2430 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2431 using bind = Desc<SgAsmDwarfCompilationUnit, uint64_t SgAsmDwarfCompilationUnit::*, &SgAsmDwarfCompilationUnit::p_hi_pc>;
2432};
2433template <> struct describe_field_t<SgAsmDwarfCompilationUnit,int,&SgAsmDwarfCompilationUnit::p_version_stamp> {
2435 using field_type = int;
2436 static constexpr size_t position{4};
2437 static constexpr char const * const name{"version_stamp"};
2438 static constexpr char const * const typestr{"int"};
2439 static constexpr bool traverse{false};
2440 static constexpr auto mbr_ptr{&SgAsmDwarfCompilationUnit::p_version_stamp};
2441 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2442 using bind = Desc<SgAsmDwarfCompilationUnit, int SgAsmDwarfCompilationUnit::*, &SgAsmDwarfCompilationUnit::p_version_stamp>;
2443};
2444template <> struct describe_field_t<SgAsmDwarfCompilationUnit,uint64_t,&SgAsmDwarfCompilationUnit::p_abbrev_offset> {
2446 using field_type = uint64_t;
2447 static constexpr size_t position{5};
2448 static constexpr char const * const name{"abbrev_offset"};
2449 static constexpr char const * const typestr{"uint64_t"};
2450 static constexpr bool traverse{false};
2451 static constexpr auto mbr_ptr{&SgAsmDwarfCompilationUnit::p_abbrev_offset};
2452 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2453 using bind = Desc<SgAsmDwarfCompilationUnit, uint64_t SgAsmDwarfCompilationUnit::*, &SgAsmDwarfCompilationUnit::p_abbrev_offset>;
2454};
2455template <> struct describe_field_t<SgAsmDwarfCompilationUnit,uint64_t,&SgAsmDwarfCompilationUnit::p_address_size> {
2457 using field_type = uint64_t;
2458 static constexpr size_t position{6};
2459 static constexpr char const * const name{"address_size"};
2460 static constexpr char const * const typestr{"uint64_t"};
2461 static constexpr bool traverse{false};
2462 static constexpr auto mbr_ptr{&SgAsmDwarfCompilationUnit::p_address_size};
2463 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2464 using bind = Desc<SgAsmDwarfCompilationUnit, uint64_t SgAsmDwarfCompilationUnit::*, &SgAsmDwarfCompilationUnit::p_address_size>;
2465};
2466template <> struct describe_field_t<SgAsmDwarfCompilationUnit,uint64_t,&SgAsmDwarfCompilationUnit::p_offset_length> {
2468 using field_type = uint64_t;
2469 static constexpr size_t position{7};
2470 static constexpr char const * const name{"offset_length"};
2471 static constexpr char const * const typestr{"uint64_t"};
2472 static constexpr bool traverse{false};
2473 static constexpr auto mbr_ptr{&SgAsmDwarfCompilationUnit::p_offset_length};
2474 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2475 using bind = Desc<SgAsmDwarfCompilationUnit, uint64_t SgAsmDwarfCompilationUnit::*, &SgAsmDwarfCompilationUnit::p_offset_length>;
2476};
2477template <> struct describe_field_t<SgAsmDwarfCompilationUnit,SgAsmDwarfLineList*,&SgAsmDwarfCompilationUnit::p_line_info> {
2480 static constexpr size_t position{8};
2481 static constexpr char const * const name{"line_info"};
2482 static constexpr char const * const typestr{"SgAsmDwarfLineList*"};
2483 static constexpr bool traverse{true};
2484 static constexpr auto mbr_ptr{&SgAsmDwarfCompilationUnit::p_line_info};
2485 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2486 using bind = Desc<SgAsmDwarfCompilationUnit, SgAsmDwarfLineList* SgAsmDwarfCompilationUnit::*, &SgAsmDwarfCompilationUnit::p_line_info>;
2487};
2488template <> struct describe_field_t<SgAsmDwarfCompilationUnit,SgAsmDwarfConstructList*,&SgAsmDwarfCompilationUnit::p_language_constructs> {
2491 static constexpr size_t position{9};
2492 static constexpr char const * const name{"language_constructs"};
2493 static constexpr char const * const typestr{"SgAsmDwarfConstructList*"};
2494 static constexpr bool traverse{true};
2495 static constexpr auto mbr_ptr{&SgAsmDwarfCompilationUnit::p_language_constructs};
2496 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2497 using bind = Desc<SgAsmDwarfCompilationUnit, SgAsmDwarfConstructList* SgAsmDwarfCompilationUnit::*, &SgAsmDwarfCompilationUnit::p_language_constructs>;
2498};
2499template <> struct describe_field_t<SgAsmDwarfCompilationUnit,SgAsmDwarfMacroList*,&SgAsmDwarfCompilationUnit::p_macro_info> {
2502 static constexpr size_t position{10};
2503 static constexpr char const * const name{"macro_info"};
2504 static constexpr char const * const typestr{"SgAsmDwarfMacroList*"};
2505 static constexpr bool traverse{true};
2506 static constexpr auto mbr_ptr{&SgAsmDwarfCompilationUnit::p_macro_info};
2507 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2508 using bind = Desc<SgAsmDwarfCompilationUnit, SgAsmDwarfMacroList* SgAsmDwarfCompilationUnit::*, &SgAsmDwarfCompilationUnit::p_macro_info>;
2509};
2519template <> struct node_from_variant_t<83> { using type = SgAsmDwarfCompilationUnit; };
2520
2521// Class: AsmDwarfCompilationUnitList
2522template <> struct describe_field_t<SgAsmDwarfCompilationUnitList,SgAsmDwarfCompilationUnitPtrList,&SgAsmDwarfCompilationUnitList::p_cu_list> {
2524 using field_type = SgAsmDwarfCompilationUnitPtrList;
2525 static constexpr size_t position{0};
2526 static constexpr char const * const name{"cu_list"};
2527 static constexpr char const * const typestr{"SgAsmDwarfCompilationUnitPtrList"};
2528 static constexpr bool traverse{true};
2529 static constexpr auto mbr_ptr{&SgAsmDwarfCompilationUnitList::p_cu_list};
2530 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2531 using bind = Desc<SgAsmDwarfCompilationUnitList, SgAsmDwarfCompilationUnitPtrList SgAsmDwarfCompilationUnitList::*, &SgAsmDwarfCompilationUnitList::p_cu_list>;
2532};
2536 static constexpr char const * const name{"AsmDwarfCompilationUnitList"};
2537 static constexpr unsigned long variant{84};
2538 static constexpr bool concrete{true};
2539 using subclasses_t = mp::List<>;
2541};
2542template <> struct node_from_variant_t<84> { using type = SgAsmDwarfCompilationUnitList; };
2543
2544// Class: AsmDwarfCondition
2546 using node = SgAsmDwarfCondition;
2547 using base = SgAsmDwarfConstruct;
2548 static constexpr char const * const name{"AsmDwarfCondition"};
2549 static constexpr unsigned long variant{85};
2550 static constexpr bool concrete{true};
2551 using subclasses_t = mp::List<>;
2552 using fields_t = mp::List<>;
2553};
2554template <> struct node_from_variant_t<85> { using type = SgAsmDwarfCondition; };
2555
2556// Class: AsmDwarfConstType
2558 using node = SgAsmDwarfConstType;
2559 using base = SgAsmDwarfConstruct;
2560 static constexpr char const * const name{"AsmDwarfConstType"};
2561 static constexpr unsigned long variant{86};
2562 static constexpr bool concrete{true};
2563 using subclasses_t = mp::List<>;
2564 using fields_t = mp::List<>;
2565};
2566template <> struct node_from_variant_t<86> { using type = SgAsmDwarfConstType; };
2567
2568// Class: AsmDwarfConstant
2570 using node = SgAsmDwarfConstant;
2571 using base = SgAsmDwarfConstruct;
2572 static constexpr char const * const name{"AsmDwarfConstant"};
2573 static constexpr unsigned long variant{87};
2574 static constexpr bool concrete{true};
2575 using subclasses_t = mp::List<>;
2576 using fields_t = mp::List<>;
2577};
2578template <> struct node_from_variant_t<87> { using type = SgAsmDwarfConstant; };
2579
2580// Class: AsmDwarfConstruct
2581template <> struct describe_field_t<SgAsmDwarfConstruct,int,&SgAsmDwarfConstruct::p_nesting_level> {
2583 using field_type = int;
2584 static constexpr size_t position{0};
2585 static constexpr char const * const name{"nesting_level"};
2586 static constexpr char const * const typestr{"int"};
2587 static constexpr bool traverse{false};
2588 static constexpr auto mbr_ptr{&SgAsmDwarfConstruct::p_nesting_level};
2589 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2590 using bind = Desc<SgAsmDwarfConstruct, int SgAsmDwarfConstruct::*, &SgAsmDwarfConstruct::p_nesting_level>;
2591};
2592template <> struct describe_field_t<SgAsmDwarfConstruct,uint64_t,&SgAsmDwarfConstruct::p_offset> {
2594 using field_type = uint64_t;
2595 static constexpr size_t position{1};
2596 static constexpr char const * const name{"offset"};
2597 static constexpr char const * const typestr{"uint64_t"};
2598 static constexpr bool traverse{false};
2599 static constexpr auto mbr_ptr{&SgAsmDwarfConstruct::p_offset};
2600 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2601 using bind = Desc<SgAsmDwarfConstruct, uint64_t SgAsmDwarfConstruct::*, &SgAsmDwarfConstruct::p_offset>;
2602};
2603template <> struct describe_field_t<SgAsmDwarfConstruct,uint64_t,&SgAsmDwarfConstruct::p_overall_offset> {
2605 using field_type = uint64_t;
2606 static constexpr size_t position{2};
2607 static constexpr char const * const name{"overall_offset"};
2608 static constexpr char const * const typestr{"uint64_t"};
2609 static constexpr bool traverse{false};
2610 static constexpr auto mbr_ptr{&SgAsmDwarfConstruct::p_overall_offset};
2611 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2612 using bind = Desc<SgAsmDwarfConstruct, uint64_t SgAsmDwarfConstruct::*, &SgAsmDwarfConstruct::p_overall_offset>;
2613};
2614template <> struct describe_field_t<SgAsmDwarfConstruct,std::string,&SgAsmDwarfConstruct::p_name> {
2616 using field_type = std::string;
2617 static constexpr size_t position{3};
2618 static constexpr char const * const name{"name"};
2619 static constexpr char const * const typestr{"std::string"};
2620 static constexpr bool traverse{false};
2621 static constexpr auto mbr_ptr{&SgAsmDwarfConstruct::p_name};
2622 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2623 using bind = Desc<SgAsmDwarfConstruct, std::string SgAsmDwarfConstruct::*, &SgAsmDwarfConstruct::p_name>;
2624};
2625template <> struct describe_field_t<SgAsmDwarfConstruct,SgAsmDwarfLine*,&SgAsmDwarfConstruct::p_source_position> {
2627 using field_type = SgAsmDwarfLine*;
2628 static constexpr size_t position{4};
2629 static constexpr char const * const name{"source_position"};
2630 static constexpr char const * const typestr{"SgAsmDwarfLine*"};
2631 static constexpr bool traverse{false};
2632 static constexpr auto mbr_ptr{&SgAsmDwarfConstruct::p_source_position};
2633 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2634 using bind = Desc<SgAsmDwarfConstruct, SgAsmDwarfLine* SgAsmDwarfConstruct::*, &SgAsmDwarfConstruct::p_source_position>;
2635};
2637 using node = SgAsmDwarfConstruct;
2639 static constexpr char const * const name{"AsmDwarfConstruct"};
2640 static constexpr unsigned long variant{88};
2641 static constexpr bool concrete{false};
2642 using subclasses_t = mp::List<SgAsmDwarfAccessDeclaration, SgAsmDwarfArrayType, SgAsmDwarfBaseType, SgAsmDwarfCatchBlock, SgAsmDwarfClassTemplate, SgAsmDwarfClassType, SgAsmDwarfCommonBlock, SgAsmDwarfCommonInclusion, SgAsmDwarfCompilationUnit, SgAsmDwarfCondition, SgAsmDwarfConstant, SgAsmDwarfConstType, SgAsmDwarfDwarfProcedure, SgAsmDwarfEntryPoint, SgAsmDwarfEnumerationType, SgAsmDwarfEnumerator, SgAsmDwarfFileType, SgAsmDwarfFormalParameter, SgAsmDwarfFormatLabel, SgAsmDwarfFriend, SgAsmDwarfFunctionTemplate, SgAsmDwarfImportedDeclaration, SgAsmDwarfImportedModule, SgAsmDwarfImportedUnit, SgAsmDwarfInheritance, SgAsmDwarfInlinedSubroutine, SgAsmDwarfInterfaceType, SgAsmDwarfLabel, SgAsmDwarfLexicalBlock, SgAsmDwarfMember, SgAsmDwarfModule, SgAsmDwarfMutableType, SgAsmDwarfNamelist, SgAsmDwarfNamelistItem, SgAsmDwarfNamespace, SgAsmDwarfPackedType, SgAsmDwarfPartialUnit, SgAsmDwarfPointerType, SgAsmDwarfPtrToMemberType, SgAsmDwarfReferenceType, SgAsmDwarfRestrictType, SgAsmDwarfSetType, SgAsmDwarfSharedType, SgAsmDwarfStringType, SgAsmDwarfStructureType, SgAsmDwarfSubprogram, SgAsmDwarfSubrangeType, SgAsmDwarfSubroutineType, SgAsmDwarfTemplateTypeParameter, SgAsmDwarfTemplateValueParameter, SgAsmDwarfThrownType, SgAsmDwarfTryBlock, SgAsmDwarfTypedef, SgAsmDwarfUnionType, SgAsmDwarfUnknownConstruct, SgAsmDwarfUnspecifiedParameters, SgAsmDwarfUnspecifiedType, SgAsmDwarfUpcRelaxedType, SgAsmDwarfUpcSharedType, SgAsmDwarfUpcStrictType, SgAsmDwarfVariable, SgAsmDwarfVariant, SgAsmDwarfVariantPart, SgAsmDwarfVolatileType, SgAsmDwarfWithStmt>;
2644};
2645template <> struct node_from_variant_t<88> { using type = SgAsmDwarfConstruct; };
2646
2647// Class: AsmDwarfConstructList
2648template <> struct describe_field_t<SgAsmDwarfConstructList,SgAsmDwarfConstructPtrList,&SgAsmDwarfConstructList::p_list> {
2650 using field_type = SgAsmDwarfConstructPtrList;
2651 static constexpr size_t position{0};
2652 static constexpr char const * const name{"list"};
2653 static constexpr char const * const typestr{"SgAsmDwarfConstructPtrList"};
2654 static constexpr bool traverse{true};
2655 static constexpr auto mbr_ptr{&SgAsmDwarfConstructList::p_list};
2656 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2657 using bind = Desc<SgAsmDwarfConstructList, SgAsmDwarfConstructPtrList SgAsmDwarfConstructList::*, &SgAsmDwarfConstructList::p_list>;
2658};
2662 static constexpr char const * const name{"AsmDwarfConstructList"};
2663 static constexpr unsigned long variant{89};
2664 static constexpr bool concrete{true};
2665 using subclasses_t = mp::List<>;
2667};
2668template <> struct node_from_variant_t<89> { using type = SgAsmDwarfConstructList; };
2669
2670// Class: AsmDwarfDwarfProcedure
2673 using base = SgAsmDwarfConstruct;
2674 static constexpr char const * const name{"AsmDwarfDwarfProcedure"};
2675 static constexpr unsigned long variant{90};
2676 static constexpr bool concrete{true};
2677 using subclasses_t = mp::List<>;
2678 using fields_t = mp::List<>;
2679};
2680template <> struct node_from_variant_t<90> { using type = SgAsmDwarfDwarfProcedure; };
2681
2682// Class: AsmDwarfEntryPoint
2684 using node = SgAsmDwarfEntryPoint;
2685 using base = SgAsmDwarfConstruct;
2686 static constexpr char const * const name{"AsmDwarfEntryPoint"};
2687 static constexpr unsigned long variant{91};
2688 static constexpr bool concrete{true};
2689 using subclasses_t = mp::List<>;
2690 using fields_t = mp::List<>;
2691};
2692template <> struct node_from_variant_t<91> { using type = SgAsmDwarfEntryPoint; };
2693
2694// Class: AsmDwarfEnumerationType
2695template <> struct describe_field_t<SgAsmDwarfEnumerationType,SgAsmDwarfConstructList*,&SgAsmDwarfEnumerationType::p_body> {
2698 static constexpr size_t position{0};
2699 static constexpr char const * const name{"body"};
2700 static constexpr char const * const typestr{"SgAsmDwarfConstructList*"};
2701 static constexpr bool traverse{true};
2702 static constexpr auto mbr_ptr{&SgAsmDwarfEnumerationType::p_body};
2703 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2704 using bind = Desc<SgAsmDwarfEnumerationType, SgAsmDwarfConstructList* SgAsmDwarfEnumerationType::*, &SgAsmDwarfEnumerationType::p_body>;
2705};
2708 using base = SgAsmDwarfConstruct;
2709 static constexpr char const * const name{"AsmDwarfEnumerationType"};
2710 static constexpr unsigned long variant{92};
2711 static constexpr bool concrete{true};
2712 using subclasses_t = mp::List<>;
2714};
2715template <> struct node_from_variant_t<92> { using type = SgAsmDwarfEnumerationType; };
2716
2717// Class: AsmDwarfEnumerator
2719 using node = SgAsmDwarfEnumerator;
2720 using base = SgAsmDwarfConstruct;
2721 static constexpr char const * const name{"AsmDwarfEnumerator"};
2722 static constexpr unsigned long variant{93};
2723 static constexpr bool concrete{true};
2724 using subclasses_t = mp::List<>;
2725 using fields_t = mp::List<>;
2726};
2727template <> struct node_from_variant_t<93> { using type = SgAsmDwarfEnumerator; };
2728
2729// Class: AsmDwarfFileType
2731 using node = SgAsmDwarfFileType;
2732 using base = SgAsmDwarfConstruct;
2733 static constexpr char const * const name{"AsmDwarfFileType"};
2734 static constexpr unsigned long variant{94};
2735 static constexpr bool concrete{true};
2736 using subclasses_t = mp::List<>;
2737 using fields_t = mp::List<>;
2738};
2739template <> struct node_from_variant_t<94> { using type = SgAsmDwarfFileType; };
2740
2741// Class: AsmDwarfFormalParameter
2744 using base = SgAsmDwarfConstruct;
2745 static constexpr char const * const name{"AsmDwarfFormalParameter"};
2746 static constexpr unsigned long variant{95};
2747 static constexpr bool concrete{true};
2748 using subclasses_t = mp::List<>;
2749 using fields_t = mp::List<>;
2750};
2751template <> struct node_from_variant_t<95> { using type = SgAsmDwarfFormalParameter; };
2752
2753// Class: AsmDwarfFormatLabel
2756 using base = SgAsmDwarfConstruct;
2757 static constexpr char const * const name{"AsmDwarfFormatLabel"};
2758 static constexpr unsigned long variant{96};
2759 static constexpr bool concrete{true};
2760 using subclasses_t = mp::List<>;
2761 using fields_t = mp::List<>;
2762};
2763template <> struct node_from_variant_t<96> { using type = SgAsmDwarfFormatLabel; };
2764
2765// Class: AsmDwarfFriend
2767 using node = SgAsmDwarfFriend;
2768 using base = SgAsmDwarfConstruct;
2769 static constexpr char const * const name{"AsmDwarfFriend"};
2770 static constexpr unsigned long variant{97};
2771 static constexpr bool concrete{true};
2772 using subclasses_t = mp::List<>;
2773 using fields_t = mp::List<>;
2774};
2775template <> struct node_from_variant_t<97> { using type = SgAsmDwarfFriend; };
2776
2777// Class: AsmDwarfFunctionTemplate
2780 using base = SgAsmDwarfConstruct;
2781 static constexpr char const * const name{"AsmDwarfFunctionTemplate"};
2782 static constexpr unsigned long variant{98};
2783 static constexpr bool concrete{true};
2784 using subclasses_t = mp::List<>;
2785 using fields_t = mp::List<>;
2786};
2787template <> struct node_from_variant_t<98> { using type = SgAsmDwarfFunctionTemplate; };
2788
2789// Class: AsmDwarfImportedDeclaration
2792 using base = SgAsmDwarfConstruct;
2793 static constexpr char const * const name{"AsmDwarfImportedDeclaration"};
2794 static constexpr unsigned long variant{99};
2795 static constexpr bool concrete{true};
2796 using subclasses_t = mp::List<>;
2797 using fields_t = mp::List<>;
2798};
2799template <> struct node_from_variant_t<99> { using type = SgAsmDwarfImportedDeclaration; };
2800
2801// Class: AsmDwarfImportedModule
2804 using base = SgAsmDwarfConstruct;
2805 static constexpr char const * const name{"AsmDwarfImportedModule"};
2806 static constexpr unsigned long variant{100};
2807 static constexpr bool concrete{true};
2808 using subclasses_t = mp::List<>;
2809 using fields_t = mp::List<>;
2810};
2811template <> struct node_from_variant_t<100> { using type = SgAsmDwarfImportedModule; };
2812
2813// Class: AsmDwarfImportedUnit
2816 using base = SgAsmDwarfConstruct;
2817 static constexpr char const * const name{"AsmDwarfImportedUnit"};
2818 static constexpr unsigned long variant{101};
2819 static constexpr bool concrete{true};
2820 using subclasses_t = mp::List<>;
2821 using fields_t = mp::List<>;
2822};
2823template <> struct node_from_variant_t<101> { using type = SgAsmDwarfImportedUnit; };
2824
2825// Class: AsmDwarfInformation
2829 static constexpr char const * const name{"AsmDwarfInformation"};
2830 static constexpr unsigned long variant{102};
2831 static constexpr bool concrete{false};
2833 using fields_t = mp::List<>;
2834};
2835template <> struct node_from_variant_t<102> { using type = SgAsmDwarfInformation; };
2836
2837// Class: AsmDwarfInheritance
2840 using base = SgAsmDwarfConstruct;
2841 static constexpr char const * const name{"AsmDwarfInheritance"};
2842 static constexpr unsigned long variant{103};
2843 static constexpr bool concrete{true};
2844 using subclasses_t = mp::List<>;
2845 using fields_t = mp::List<>;
2846};
2847template <> struct node_from_variant_t<103> { using type = SgAsmDwarfInheritance; };
2848
2849// Class: AsmDwarfInlinedSubroutine
2850template <> struct describe_field_t<SgAsmDwarfInlinedSubroutine,SgAsmDwarfConstructList*,&SgAsmDwarfInlinedSubroutine::p_body> {
2853 static constexpr size_t position{0};
2854 static constexpr char const * const name{"body"};
2855 static constexpr char const * const typestr{"SgAsmDwarfConstructList*"};
2856 static constexpr bool traverse{true};
2857 static constexpr auto mbr_ptr{&SgAsmDwarfInlinedSubroutine::p_body};
2858 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2859 using bind = Desc<SgAsmDwarfInlinedSubroutine, SgAsmDwarfConstructList* SgAsmDwarfInlinedSubroutine::*, &SgAsmDwarfInlinedSubroutine::p_body>;
2860};
2863 using base = SgAsmDwarfConstruct;
2864 static constexpr char const * const name{"AsmDwarfInlinedSubroutine"};
2865 static constexpr unsigned long variant{104};
2866 static constexpr bool concrete{true};
2867 using subclasses_t = mp::List<>;
2869};
2870template <> struct node_from_variant_t<104> { using type = SgAsmDwarfInlinedSubroutine; };
2871
2872// Class: AsmDwarfInterfaceType
2875 using base = SgAsmDwarfConstruct;
2876 static constexpr char const * const name{"AsmDwarfInterfaceType"};
2877 static constexpr unsigned long variant{105};
2878 static constexpr bool concrete{true};
2879 using subclasses_t = mp::List<>;
2880 using fields_t = mp::List<>;
2881};
2882template <> struct node_from_variant_t<105> { using type = SgAsmDwarfInterfaceType; };
2883
2884// Class: AsmDwarfLabel
2886 using node = SgAsmDwarfLabel;
2887 using base = SgAsmDwarfConstruct;
2888 static constexpr char const * const name{"AsmDwarfLabel"};
2889 static constexpr unsigned long variant{106};
2890 static constexpr bool concrete{true};
2891 using subclasses_t = mp::List<>;
2892 using fields_t = mp::List<>;
2893};
2894template <> struct node_from_variant_t<106> { using type = SgAsmDwarfLabel; };
2895
2896// Class: AsmDwarfLexicalBlock
2897template <> struct describe_field_t<SgAsmDwarfLexicalBlock,SgAsmDwarfConstructList*,&SgAsmDwarfLexicalBlock::p_body> {
2900 static constexpr size_t position{0};
2901 static constexpr char const * const name{"body"};
2902 static constexpr char const * const typestr{"SgAsmDwarfConstructList*"};
2903 static constexpr bool traverse{true};
2904 static constexpr auto mbr_ptr{&SgAsmDwarfLexicalBlock::p_body};
2905 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2906 using bind = Desc<SgAsmDwarfLexicalBlock, SgAsmDwarfConstructList* SgAsmDwarfLexicalBlock::*, &SgAsmDwarfLexicalBlock::p_body>;
2907};
2910 using base = SgAsmDwarfConstruct;
2911 static constexpr char const * const name{"AsmDwarfLexicalBlock"};
2912 static constexpr unsigned long variant{107};
2913 static constexpr bool concrete{true};
2914 using subclasses_t = mp::List<>;
2916};
2917template <> struct node_from_variant_t<107> { using type = SgAsmDwarfLexicalBlock; };
2918
2919// Class: AsmDwarfLine
2920template <> struct describe_field_t<SgAsmDwarfLine,uint64_t,&SgAsmDwarfLine::p_address> {
2921 using parent = SgAsmDwarfLine;
2922 using field_type = uint64_t;
2923 static constexpr size_t position{0};
2924 static constexpr char const * const name{"address"};
2925 static constexpr char const * const typestr{"uint64_t"};
2926 static constexpr bool traverse{false};
2927 static constexpr auto mbr_ptr{&SgAsmDwarfLine::p_address};
2928 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2929 using bind = Desc<SgAsmDwarfLine, uint64_t SgAsmDwarfLine::*, &SgAsmDwarfLine::p_address>;
2930};
2931template <> struct describe_field_t<SgAsmDwarfLine,int,&SgAsmDwarfLine::p_file_id> {
2932 using parent = SgAsmDwarfLine;
2933 using field_type = int;
2934 static constexpr size_t position{1};
2935 static constexpr char const * const name{"file_id"};
2936 static constexpr char const * const typestr{"int"};
2937 static constexpr bool traverse{false};
2938 static constexpr auto mbr_ptr{&SgAsmDwarfLine::p_file_id};
2939 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2940 using bind = Desc<SgAsmDwarfLine, int SgAsmDwarfLine::*, &SgAsmDwarfLine::p_file_id>;
2941};
2942template <> struct describe_field_t<SgAsmDwarfLine,int,&SgAsmDwarfLine::p_line> {
2943 using parent = SgAsmDwarfLine;
2944 using field_type = int;
2945 static constexpr size_t position{2};
2946 static constexpr char const * const name{"line"};
2947 static constexpr char const * const typestr{"int"};
2948 static constexpr bool traverse{false};
2949 static constexpr auto mbr_ptr{&SgAsmDwarfLine::p_line};
2950 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2951 using bind = Desc<SgAsmDwarfLine, int SgAsmDwarfLine::*, &SgAsmDwarfLine::p_line>;
2952};
2953template <> struct describe_field_t<SgAsmDwarfLine,int,&SgAsmDwarfLine::p_column> {
2954 using parent = SgAsmDwarfLine;
2955 using field_type = int;
2956 static constexpr size_t position{3};
2957 static constexpr char const * const name{"column"};
2958 static constexpr char const * const typestr{"int"};
2959 static constexpr bool traverse{false};
2960 static constexpr auto mbr_ptr{&SgAsmDwarfLine::p_column};
2961 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2962 using bind = Desc<SgAsmDwarfLine, int SgAsmDwarfLine::*, &SgAsmDwarfLine::p_column>;
2963};
2964template <> struct describe_node_t<SgAsmDwarfLine> {
2965 using node = SgAsmDwarfLine;
2967 static constexpr char const * const name{"AsmDwarfLine"};
2968 static constexpr unsigned long variant{108};
2969 static constexpr bool concrete{true};
2970 using subclasses_t = mp::List<>;
2972};
2973template <> struct node_from_variant_t<108> { using type = SgAsmDwarfLine; };
2974
2975// Class: AsmDwarfLineList
2976template <> struct describe_field_t<SgAsmDwarfLineList,SgAsmDwarfLinePtrList,&SgAsmDwarfLineList::p_line_list> {
2977 using parent = SgAsmDwarfLineList;
2978 using field_type = SgAsmDwarfLinePtrList;
2979 static constexpr size_t position{0};
2980 static constexpr char const * const name{"line_list"};
2981 static constexpr char const * const typestr{"SgAsmDwarfLinePtrList"};
2982 static constexpr bool traverse{true};
2983 static constexpr auto mbr_ptr{&SgAsmDwarfLineList::p_line_list};
2984 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
2985 using bind = Desc<SgAsmDwarfLineList, SgAsmDwarfLinePtrList SgAsmDwarfLineList::*, &SgAsmDwarfLineList::p_line_list>;
2986};
2988 using node = SgAsmDwarfLineList;
2990 static constexpr char const * const name{"AsmDwarfLineList"};
2991 static constexpr unsigned long variant{109};
2992 static constexpr bool concrete{true};
2993 using subclasses_t = mp::List<>;
2995};
2996template <> struct node_from_variant_t<109> { using type = SgAsmDwarfLineList; };
2997
2998// Class: AsmDwarfMacro
2999template <> struct describe_field_t<SgAsmDwarfMacro,std::string,&SgAsmDwarfMacro::p_macro_string> {
3000 using parent = SgAsmDwarfMacro;
3001 using field_type = std::string;
3002 static constexpr size_t position{0};
3003 static constexpr char const * const name{"macro_string"};
3004 static constexpr char const * const typestr{"std::string"};
3005 static constexpr bool traverse{false};
3006 static constexpr auto mbr_ptr{&SgAsmDwarfMacro::p_macro_string};
3007 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3008 using bind = Desc<SgAsmDwarfMacro, std::string SgAsmDwarfMacro::*, &SgAsmDwarfMacro::p_macro_string>;
3009};
3011 using node = SgAsmDwarfMacro;
3013 static constexpr char const * const name{"AsmDwarfMacro"};
3014 static constexpr unsigned long variant{110};
3015 static constexpr bool concrete{true};
3016 using subclasses_t = mp::List<>;
3018};
3019template <> struct node_from_variant_t<110> { using type = SgAsmDwarfMacro; };
3020
3021// Class: AsmDwarfMacroList
3022template <> struct describe_field_t<SgAsmDwarfMacroList,SgAsmDwarfMacroPtrList,&SgAsmDwarfMacroList::p_macro_list> {
3024 using field_type = SgAsmDwarfMacroPtrList;
3025 static constexpr size_t position{0};
3026 static constexpr char const * const name{"macro_list"};
3027 static constexpr char const * const typestr{"SgAsmDwarfMacroPtrList"};
3028 static constexpr bool traverse{true};
3029 static constexpr auto mbr_ptr{&SgAsmDwarfMacroList::p_macro_list};
3030 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3031 using bind = Desc<SgAsmDwarfMacroList, SgAsmDwarfMacroPtrList SgAsmDwarfMacroList::*, &SgAsmDwarfMacroList::p_macro_list>;
3032};
3034 using node = SgAsmDwarfMacroList;
3036 static constexpr char const * const name{"AsmDwarfMacroList"};
3037 static constexpr unsigned long variant{111};
3038 static constexpr bool concrete{true};
3039 using subclasses_t = mp::List<>;
3041};
3042template <> struct node_from_variant_t<111> { using type = SgAsmDwarfMacroList; };
3043
3044// Class: AsmDwarfMember
3046 using node = SgAsmDwarfMember;
3047 using base = SgAsmDwarfConstruct;
3048 static constexpr char const * const name{"AsmDwarfMember"};
3049 static constexpr unsigned long variant{112};
3050 static constexpr bool concrete{true};
3051 using subclasses_t = mp::List<>;
3052 using fields_t = mp::List<>;
3053};
3054template <> struct node_from_variant_t<112> { using type = SgAsmDwarfMember; };
3055
3056// Class: AsmDwarfModule
3058 using node = SgAsmDwarfModule;
3059 using base = SgAsmDwarfConstruct;
3060 static constexpr char const * const name{"AsmDwarfModule"};
3061 static constexpr unsigned long variant{113};
3062 static constexpr bool concrete{true};
3063 using subclasses_t = mp::List<>;
3064 using fields_t = mp::List<>;
3065};
3066template <> struct node_from_variant_t<113> { using type = SgAsmDwarfModule; };
3067
3068// Class: AsmDwarfMutableType
3071 using base = SgAsmDwarfConstruct;
3072 static constexpr char const * const name{"AsmDwarfMutableType"};
3073 static constexpr unsigned long variant{114};
3074 static constexpr bool concrete{true};
3075 using subclasses_t = mp::List<>;
3076 using fields_t = mp::List<>;
3077};
3078template <> struct node_from_variant_t<114> { using type = SgAsmDwarfMutableType; };
3079
3080// Class: AsmDwarfNamelist
3082 using node = SgAsmDwarfNamelist;
3083 using base = SgAsmDwarfConstruct;
3084 static constexpr char const * const name{"AsmDwarfNamelist"};
3085 static constexpr unsigned long variant{115};
3086 static constexpr bool concrete{true};
3087 using subclasses_t = mp::List<>;
3088 using fields_t = mp::List<>;
3089};
3090template <> struct node_from_variant_t<115> { using type = SgAsmDwarfNamelist; };
3091
3092// Class: AsmDwarfNamelistItem
3095 using base = SgAsmDwarfConstruct;
3096 static constexpr char const * const name{"AsmDwarfNamelistItem"};
3097 static constexpr unsigned long variant{116};
3098 static constexpr bool concrete{true};
3099 using subclasses_t = mp::List<>;
3100 using fields_t = mp::List<>;
3101};
3102template <> struct node_from_variant_t<116> { using type = SgAsmDwarfNamelistItem; };
3103
3104// Class: AsmDwarfNamespace
3105template <> struct describe_field_t<SgAsmDwarfNamespace,SgAsmDwarfConstructList*,&SgAsmDwarfNamespace::p_body> {
3108 static constexpr size_t position{0};
3109 static constexpr char const * const name{"body"};
3110 static constexpr char const * const typestr{"SgAsmDwarfConstructList*"};
3111 static constexpr bool traverse{true};
3112 static constexpr auto mbr_ptr{&SgAsmDwarfNamespace::p_body};
3113 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3114 using bind = Desc<SgAsmDwarfNamespace, SgAsmDwarfConstructList* SgAsmDwarfNamespace::*, &SgAsmDwarfNamespace::p_body>;
3115};
3117 using node = SgAsmDwarfNamespace;
3118 using base = SgAsmDwarfConstruct;
3119 static constexpr char const * const name{"AsmDwarfNamespace"};
3120 static constexpr unsigned long variant{117};
3121 static constexpr bool concrete{true};
3122 using subclasses_t = mp::List<>;
3124};
3125template <> struct node_from_variant_t<117> { using type = SgAsmDwarfNamespace; };
3126
3127// Class: AsmDwarfPackedType
3129 using node = SgAsmDwarfPackedType;
3130 using base = SgAsmDwarfConstruct;
3131 static constexpr char const * const name{"AsmDwarfPackedType"};
3132 static constexpr unsigned long variant{118};
3133 static constexpr bool concrete{true};
3134 using subclasses_t = mp::List<>;
3135 using fields_t = mp::List<>;
3136};
3137template <> struct node_from_variant_t<118> { using type = SgAsmDwarfPackedType; };
3138
3139// Class: AsmDwarfPartialUnit
3142 using base = SgAsmDwarfConstruct;
3143 static constexpr char const * const name{"AsmDwarfPartialUnit"};
3144 static constexpr unsigned long variant{119};
3145 static constexpr bool concrete{true};
3146 using subclasses_t = mp::List<>;
3147 using fields_t = mp::List<>;
3148};
3149template <> struct node_from_variant_t<119> { using type = SgAsmDwarfPartialUnit; };
3150
3151// Class: AsmDwarfPointerType
3154 using base = SgAsmDwarfConstruct;
3155 static constexpr char const * const name{"AsmDwarfPointerType"};
3156 static constexpr unsigned long variant{120};
3157 static constexpr bool concrete{true};
3158 using subclasses_t = mp::List<>;
3159 using fields_t = mp::List<>;
3160};
3161template <> struct node_from_variant_t<120> { using type = SgAsmDwarfPointerType; };
3162
3163// Class: AsmDwarfPtrToMemberType
3166 using base = SgAsmDwarfConstruct;
3167 static constexpr char const * const name{"AsmDwarfPtrToMemberType"};
3168 static constexpr unsigned long variant{121};
3169 static constexpr bool concrete{true};
3170 using subclasses_t = mp::List<>;
3171 using fields_t = mp::List<>;
3172};
3173template <> struct node_from_variant_t<121> { using type = SgAsmDwarfPtrToMemberType; };
3174
3175// Class: AsmDwarfReferenceType
3178 using base = SgAsmDwarfConstruct;
3179 static constexpr char const * const name{"AsmDwarfReferenceType"};
3180 static constexpr unsigned long variant{122};
3181 static constexpr bool concrete{true};
3182 using subclasses_t = mp::List<>;
3183 using fields_t = mp::List<>;
3184};
3185template <> struct node_from_variant_t<122> { using type = SgAsmDwarfReferenceType; };
3186
3187// Class: AsmDwarfRestrictType
3190 using base = SgAsmDwarfConstruct;
3191 static constexpr char const * const name{"AsmDwarfRestrictType"};
3192 static constexpr unsigned long variant{123};
3193 static constexpr bool concrete{true};
3194 using subclasses_t = mp::List<>;
3195 using fields_t = mp::List<>;
3196};
3197template <> struct node_from_variant_t<123> { using type = SgAsmDwarfRestrictType; };
3198
3199// Class: AsmDwarfSetType
3201 using node = SgAsmDwarfSetType;
3202 using base = SgAsmDwarfConstruct;
3203 static constexpr char const * const name{"AsmDwarfSetType"};
3204 static constexpr unsigned long variant{124};
3205 static constexpr bool concrete{true};
3206 using subclasses_t = mp::List<>;
3207 using fields_t = mp::List<>;
3208};
3209template <> struct node_from_variant_t<124> { using type = SgAsmDwarfSetType; };
3210
3211// Class: AsmDwarfSharedType
3213 using node = SgAsmDwarfSharedType;
3214 using base = SgAsmDwarfConstruct;
3215 static constexpr char const * const name{"AsmDwarfSharedType"};
3216 static constexpr unsigned long variant{125};
3217 static constexpr bool concrete{true};
3218 using subclasses_t = mp::List<>;
3219 using fields_t = mp::List<>;
3220};
3221template <> struct node_from_variant_t<125> { using type = SgAsmDwarfSharedType; };
3222
3223// Class: AsmDwarfStringType
3225 using node = SgAsmDwarfStringType;
3226 using base = SgAsmDwarfConstruct;
3227 static constexpr char const * const name{"AsmDwarfStringType"};
3228 static constexpr unsigned long variant{126};
3229 static constexpr bool concrete{true};
3230 using subclasses_t = mp::List<>;
3231 using fields_t = mp::List<>;
3232};
3233template <> struct node_from_variant_t<126> { using type = SgAsmDwarfStringType; };
3234
3235// Class: AsmDwarfStructureType
3236template <> struct describe_field_t<SgAsmDwarfStructureType,SgAsmDwarfConstructList*,&SgAsmDwarfStructureType::p_body> {
3239 static constexpr size_t position{0};
3240 static constexpr char const * const name{"body"};
3241 static constexpr char const * const typestr{"SgAsmDwarfConstructList*"};
3242 static constexpr bool traverse{true};
3243 static constexpr auto mbr_ptr{&SgAsmDwarfStructureType::p_body};
3244 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3245 using bind = Desc<SgAsmDwarfStructureType, SgAsmDwarfConstructList* SgAsmDwarfStructureType::*, &SgAsmDwarfStructureType::p_body>;
3246};
3249 using base = SgAsmDwarfConstruct;
3250 static constexpr char const * const name{"AsmDwarfStructureType"};
3251 static constexpr unsigned long variant{127};
3252 static constexpr bool concrete{true};
3253 using subclasses_t = mp::List<>;
3255};
3256template <> struct node_from_variant_t<127> { using type = SgAsmDwarfStructureType; };
3257
3258// Class: AsmDwarfSubprogram
3259template <> struct describe_field_t<SgAsmDwarfSubprogram,SgAsmDwarfConstructList*,&SgAsmDwarfSubprogram::p_body> {
3262 static constexpr size_t position{0};
3263 static constexpr char const * const name{"body"};
3264 static constexpr char const * const typestr{"SgAsmDwarfConstructList*"};
3265 static constexpr bool traverse{true};
3266 static constexpr auto mbr_ptr{&SgAsmDwarfSubprogram::p_body};
3267 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3268 using bind = Desc<SgAsmDwarfSubprogram, SgAsmDwarfConstructList* SgAsmDwarfSubprogram::*, &SgAsmDwarfSubprogram::p_body>;
3269};
3271 using node = SgAsmDwarfSubprogram;
3272 using base = SgAsmDwarfConstruct;
3273 static constexpr char const * const name{"AsmDwarfSubprogram"};
3274 static constexpr unsigned long variant{128};
3275 static constexpr bool concrete{true};
3276 using subclasses_t = mp::List<>;
3278};
3279template <> struct node_from_variant_t<128> { using type = SgAsmDwarfSubprogram; };
3280
3281// Class: AsmDwarfSubrangeType
3284 using base = SgAsmDwarfConstruct;
3285 static constexpr char const * const name{"AsmDwarfSubrangeType"};
3286 static constexpr unsigned long variant{129};
3287 static constexpr bool concrete{true};
3288 using subclasses_t = mp::List<>;
3289 using fields_t = mp::List<>;
3290};
3291template <> struct node_from_variant_t<129> { using type = SgAsmDwarfSubrangeType; };
3292
3293// Class: AsmDwarfSubroutineType
3294template <> struct describe_field_t<SgAsmDwarfSubroutineType,SgAsmDwarfConstructList*,&SgAsmDwarfSubroutineType::p_body> {
3297 static constexpr size_t position{0};
3298 static constexpr char const * const name{"body"};
3299 static constexpr char const * const typestr{"SgAsmDwarfConstructList*"};
3300 static constexpr bool traverse{true};
3301 static constexpr auto mbr_ptr{&SgAsmDwarfSubroutineType::p_body};
3302 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3303 using bind = Desc<SgAsmDwarfSubroutineType, SgAsmDwarfConstructList* SgAsmDwarfSubroutineType::*, &SgAsmDwarfSubroutineType::p_body>;
3304};
3307 using base = SgAsmDwarfConstruct;
3308 static constexpr char const * const name{"AsmDwarfSubroutineType"};
3309 static constexpr unsigned long variant{130};
3310 static constexpr bool concrete{true};
3311 using subclasses_t = mp::List<>;
3313};
3314template <> struct node_from_variant_t<130> { using type = SgAsmDwarfSubroutineType; };
3315
3316// Class: AsmDwarfTemplateTypeParameter
3319 using base = SgAsmDwarfConstruct;
3320 static constexpr char const * const name{"AsmDwarfTemplateTypeParameter"};
3321 static constexpr unsigned long variant{131};
3322 static constexpr bool concrete{true};
3323 using subclasses_t = mp::List<>;
3324 using fields_t = mp::List<>;
3325};
3326template <> struct node_from_variant_t<131> { using type = SgAsmDwarfTemplateTypeParameter; };
3327
3328// Class: AsmDwarfTemplateValueParameter
3331 using base = SgAsmDwarfConstruct;
3332 static constexpr char const * const name{"AsmDwarfTemplateValueParameter"};
3333 static constexpr unsigned long variant{132};
3334 static constexpr bool concrete{true};
3335 using subclasses_t = mp::List<>;
3336 using fields_t = mp::List<>;
3337};
3338template <> struct node_from_variant_t<132> { using type = SgAsmDwarfTemplateValueParameter; };
3339
3340// Class: AsmDwarfThrownType
3342 using node = SgAsmDwarfThrownType;
3343 using base = SgAsmDwarfConstruct;
3344 static constexpr char const * const name{"AsmDwarfThrownType"};
3345 static constexpr unsigned long variant{133};
3346 static constexpr bool concrete{true};
3347 using subclasses_t = mp::List<>;
3348 using fields_t = mp::List<>;
3349};
3350template <> struct node_from_variant_t<133> { using type = SgAsmDwarfThrownType; };
3351
3352// Class: AsmDwarfTryBlock
3354 using node = SgAsmDwarfTryBlock;
3355 using base = SgAsmDwarfConstruct;
3356 static constexpr char const * const name{"AsmDwarfTryBlock"};
3357 static constexpr unsigned long variant{134};
3358 static constexpr bool concrete{true};
3359 using subclasses_t = mp::List<>;
3360 using fields_t = mp::List<>;
3361};
3362template <> struct node_from_variant_t<134> { using type = SgAsmDwarfTryBlock; };
3363
3364// Class: AsmDwarfTypedef
3366 using node = SgAsmDwarfTypedef;
3367 using base = SgAsmDwarfConstruct;
3368 static constexpr char const * const name{"AsmDwarfTypedef"};
3369 static constexpr unsigned long variant{135};
3370 static constexpr bool concrete{true};
3371 using subclasses_t = mp::List<>;
3372 using fields_t = mp::List<>;
3373};
3374template <> struct node_from_variant_t<135> { using type = SgAsmDwarfTypedef; };
3375
3376// Class: AsmDwarfUnionType
3377template <> struct describe_field_t<SgAsmDwarfUnionType,SgAsmDwarfConstructList*,&SgAsmDwarfUnionType::p_body> {
3380 static constexpr size_t position{0};
3381 static constexpr char const * const name{"body"};
3382 static constexpr char const * const typestr{"SgAsmDwarfConstructList*"};
3383 static constexpr bool traverse{true};
3384 static constexpr auto mbr_ptr{&SgAsmDwarfUnionType::p_body};
3385 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3386 using bind = Desc<SgAsmDwarfUnionType, SgAsmDwarfConstructList* SgAsmDwarfUnionType::*, &SgAsmDwarfUnionType::p_body>;
3387};
3389 using node = SgAsmDwarfUnionType;
3390 using base = SgAsmDwarfConstruct;
3391 static constexpr char const * const name{"AsmDwarfUnionType"};
3392 static constexpr unsigned long variant{136};
3393 static constexpr bool concrete{true};
3394 using subclasses_t = mp::List<>;
3396};
3397template <> struct node_from_variant_t<136> { using type = SgAsmDwarfUnionType; };
3398
3399// Class: AsmDwarfUnknownConstruct
3402 using base = SgAsmDwarfConstruct;
3403 static constexpr char const * const name{"AsmDwarfUnknownConstruct"};
3404 static constexpr unsigned long variant{137};
3405 static constexpr bool concrete{true};
3406 using subclasses_t = mp::List<>;
3407 using fields_t = mp::List<>;
3408};
3409template <> struct node_from_variant_t<137> { using type = SgAsmDwarfUnknownConstruct; };
3410
3411// Class: AsmDwarfUnspecifiedParameters
3414 using base = SgAsmDwarfConstruct;
3415 static constexpr char const * const name{"AsmDwarfUnspecifiedParameters"};
3416 static constexpr unsigned long variant{138};
3417 static constexpr bool concrete{true};
3418 using subclasses_t = mp::List<>;
3419 using fields_t = mp::List<>;
3420};
3421template <> struct node_from_variant_t<138> { using type = SgAsmDwarfUnspecifiedParameters; };
3422
3423// Class: AsmDwarfUnspecifiedType
3426 using base = SgAsmDwarfConstruct;
3427 static constexpr char const * const name{"AsmDwarfUnspecifiedType"};
3428 static constexpr unsigned long variant{139};
3429 static constexpr bool concrete{true};
3430 using subclasses_t = mp::List<>;
3431 using fields_t = mp::List<>;
3432};
3433template <> struct node_from_variant_t<139> { using type = SgAsmDwarfUnspecifiedType; };
3434
3435// Class: AsmDwarfUpcRelaxedType
3438 using base = SgAsmDwarfConstruct;
3439 static constexpr char const * const name{"AsmDwarfUpcRelaxedType"};
3440 static constexpr unsigned long variant{140};
3441 static constexpr bool concrete{true};
3442 using subclasses_t = mp::List<>;
3443 using fields_t = mp::List<>;
3444};
3445template <> struct node_from_variant_t<140> { using type = SgAsmDwarfUpcRelaxedType; };
3446
3447// Class: AsmDwarfUpcSharedType
3450 using base = SgAsmDwarfConstruct;
3451 static constexpr char const * const name{"AsmDwarfUpcSharedType"};
3452 static constexpr unsigned long variant{141};
3453 static constexpr bool concrete{true};
3454 using subclasses_t = mp::List<>;
3455 using fields_t = mp::List<>;
3456};
3457template <> struct node_from_variant_t<141> { using type = SgAsmDwarfUpcSharedType; };
3458
3459// Class: AsmDwarfUpcStrictType
3462 using base = SgAsmDwarfConstruct;
3463 static constexpr char const * const name{"AsmDwarfUpcStrictType"};
3464 static constexpr unsigned long variant{142};
3465 static constexpr bool concrete{true};
3466 using subclasses_t = mp::List<>;
3467 using fields_t = mp::List<>;
3468};
3469template <> struct node_from_variant_t<142> { using type = SgAsmDwarfUpcStrictType; };
3470
3471// Class: AsmDwarfVariable
3473 using node = SgAsmDwarfVariable;
3474 using base = SgAsmDwarfConstruct;
3475 static constexpr char const * const name{"AsmDwarfVariable"};
3476 static constexpr unsigned long variant{143};
3477 static constexpr bool concrete{true};
3478 using subclasses_t = mp::List<>;
3479 using fields_t = mp::List<>;
3480};
3481template <> struct node_from_variant_t<143> { using type = SgAsmDwarfVariable; };
3482
3483// Class: AsmDwarfVariant
3485 using node = SgAsmDwarfVariant;
3486 using base = SgAsmDwarfConstruct;
3487 static constexpr char const * const name{"AsmDwarfVariant"};
3488 static constexpr unsigned long variant{144};
3489 static constexpr bool concrete{true};
3490 using subclasses_t = mp::List<>;
3491 using fields_t = mp::List<>;
3492};
3493template <> struct node_from_variant_t<144> { using type = SgAsmDwarfVariant; };
3494
3495// Class: AsmDwarfVariantPart
3498 using base = SgAsmDwarfConstruct;
3499 static constexpr char const * const name{"AsmDwarfVariantPart"};
3500 static constexpr unsigned long variant{145};
3501 static constexpr bool concrete{true};
3502 using subclasses_t = mp::List<>;
3503 using fields_t = mp::List<>;
3504};
3505template <> struct node_from_variant_t<145> { using type = SgAsmDwarfVariantPart; };
3506
3507// Class: AsmDwarfVolatileType
3510 using base = SgAsmDwarfConstruct;
3511 static constexpr char const * const name{"AsmDwarfVolatileType"};
3512 static constexpr unsigned long variant{146};
3513 static constexpr bool concrete{true};
3514 using subclasses_t = mp::List<>;
3515 using fields_t = mp::List<>;
3516};
3517template <> struct node_from_variant_t<146> { using type = SgAsmDwarfVolatileType; };
3518
3519// Class: AsmDwarfWithStmt
3521 using node = SgAsmDwarfWithStmt;
3522 using base = SgAsmDwarfConstruct;
3523 static constexpr char const * const name{"AsmDwarfWithStmt"};
3524 static constexpr unsigned long variant{147};
3525 static constexpr bool concrete{true};
3526 using subclasses_t = mp::List<>;
3527 using fields_t = mp::List<>;
3528};
3529template <> struct node_from_variant_t<147> { using type = SgAsmDwarfWithStmt; };
3530
3531// Class: AsmElfDynamicEntry
3532template <> struct describe_field_t<SgAsmElfDynamicEntry,SgAsmElfDynamicEntry::EntryType,&SgAsmElfDynamicEntry::p_d_tag> {
3534 using field_type = SgAsmElfDynamicEntry::EntryType;
3535 static constexpr size_t position{0};
3536 static constexpr char const * const name{"d_tag"};
3537 static constexpr char const * const typestr{"SgAsmElfDynamicEntry::EntryType"};
3538 static constexpr bool traverse{false};
3539 static constexpr auto mbr_ptr{&SgAsmElfDynamicEntry::p_d_tag};
3540 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3541 using bind = Desc<SgAsmElfDynamicEntry, SgAsmElfDynamicEntry::EntryType SgAsmElfDynamicEntry::*, &SgAsmElfDynamicEntry::p_d_tag>;
3542};
3543template <> struct describe_field_t<SgAsmElfDynamicEntry,Rose::BinaryAnalysis::RelativeVirtualAddress,&SgAsmElfDynamicEntry::p_d_val> {
3546 static constexpr size_t position{1};
3547 static constexpr char const * const name{"d_val"};
3548 static constexpr char const * const typestr{"Rose::BinaryAnalysis::RelativeVirtualAddress"};
3549 static constexpr bool traverse{false};
3550 static constexpr auto mbr_ptr{&SgAsmElfDynamicEntry::p_d_val};
3551 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3552 using bind = Desc<SgAsmElfDynamicEntry, Rose::BinaryAnalysis::RelativeVirtualAddress SgAsmElfDynamicEntry::*, &SgAsmElfDynamicEntry::p_d_val>;
3553};
3554template <> struct describe_field_t<SgAsmElfDynamicEntry,SgAsmGenericString*,&SgAsmElfDynamicEntry::p_name> {
3557 static constexpr size_t position{2};
3558 static constexpr char const * const name{"name"};
3559 static constexpr char const * const typestr{"SgAsmGenericString*"};
3560 static constexpr bool traverse{true};
3561 static constexpr auto mbr_ptr{&SgAsmElfDynamicEntry::p_name};
3562 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3563 using bind = Desc<SgAsmElfDynamicEntry, SgAsmGenericString* SgAsmElfDynamicEntry::*, &SgAsmElfDynamicEntry::p_name>;
3564};
3565template <> struct describe_field_t<SgAsmElfDynamicEntry,SgUnsignedCharList,&SgAsmElfDynamicEntry::p_extra> {
3567 using field_type = SgUnsignedCharList;
3568 static constexpr size_t position{3};
3569 static constexpr char const * const name{"extra"};
3570 static constexpr char const * const typestr{"SgUnsignedCharList"};
3571 static constexpr bool traverse{false};
3572 static constexpr auto mbr_ptr{&SgAsmElfDynamicEntry::p_extra};
3573 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3574 using bind = Desc<SgAsmElfDynamicEntry, SgUnsignedCharList SgAsmElfDynamicEntry::*, &SgAsmElfDynamicEntry::p_extra>;
3575};
3585template <> struct node_from_variant_t<148> { using type = SgAsmElfDynamicEntry; };
3586
3587// Class: AsmElfDynamicEntryList
3588template <> struct describe_field_t<SgAsmElfDynamicEntryList,SgAsmElfDynamicEntryPtrList,&SgAsmElfDynamicEntryList::p_entries> {
3590 using field_type = SgAsmElfDynamicEntryPtrList;
3591 static constexpr size_t position{0};
3592 static constexpr char const * const name{"entries"};
3593 static constexpr char const * const typestr{"SgAsmElfDynamicEntryPtrList"};
3594 static constexpr bool traverse{false};
3595 static constexpr auto mbr_ptr{&SgAsmElfDynamicEntryList::p_entries};
3596 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3597 using bind = Desc<SgAsmElfDynamicEntryList, SgAsmElfDynamicEntryPtrList SgAsmElfDynamicEntryList::*, &SgAsmElfDynamicEntryList::p_entries>;
3598};
3602 static constexpr char const * const name{"AsmElfDynamicEntryList"};
3603 static constexpr unsigned long variant{149};
3604 static constexpr bool concrete{true};
3605 using subclasses_t = mp::List<>;
3607};
3608template <> struct node_from_variant_t<149> { using type = SgAsmElfDynamicEntryList; };
3609
3610// Class: AsmElfDynamicSection
3611template <> struct describe_field_t<SgAsmElfDynamicSection,SgAsmElfDynamicEntryList*,&SgAsmElfDynamicSection::p_entries> {
3614 static constexpr size_t position{0};
3615 static constexpr char const * const name{"entries"};
3616 static constexpr char const * const typestr{"SgAsmElfDynamicEntryList*"};
3617 static constexpr bool traverse{true};
3618 static constexpr auto mbr_ptr{&SgAsmElfDynamicSection::p_entries};
3619 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3620 using bind = Desc<SgAsmElfDynamicSection, SgAsmElfDynamicEntryList* SgAsmElfDynamicSection::*, &SgAsmElfDynamicSection::p_entries>;
3621};
3624 using base = SgAsmElfSection;
3625 static constexpr char const * const name{"AsmElfDynamicSection"};
3626 static constexpr unsigned long variant{150};
3627 static constexpr bool concrete{true};
3628 using subclasses_t = mp::List<>;
3630};
3631template <> struct node_from_variant_t<150> { using type = SgAsmElfDynamicSection; };
3632
3633// Class: AsmElfEHFrameEntryCI
3634template <> struct describe_field_t<SgAsmElfEHFrameEntryCI,int,&SgAsmElfEHFrameEntryCI::p_version> {
3636 using field_type = int;
3637 static constexpr size_t position{0};
3638 static constexpr char const * const name{"version"};
3639 static constexpr char const * const typestr{"int"};
3640 static constexpr bool traverse{false};
3641 static constexpr auto mbr_ptr{&SgAsmElfEHFrameEntryCI::p_version};
3642 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3643 using bind = Desc<SgAsmElfEHFrameEntryCI, int SgAsmElfEHFrameEntryCI::*, &SgAsmElfEHFrameEntryCI::p_version>;
3644};
3645template <> struct describe_field_t<SgAsmElfEHFrameEntryCI,std::string,&SgAsmElfEHFrameEntryCI::p_augmentation_string> {
3647 using field_type = std::string;
3648 static constexpr size_t position{1};
3649 static constexpr char const * const name{"augmentation_string"};
3650 static constexpr char const * const typestr{"std::string"};
3651 static constexpr bool traverse{false};
3652 static constexpr auto mbr_ptr{&SgAsmElfEHFrameEntryCI::p_augmentation_string};
3653 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3654 using bind = Desc<SgAsmElfEHFrameEntryCI, std::string SgAsmElfEHFrameEntryCI::*, &SgAsmElfEHFrameEntryCI::p_augmentation_string>;
3655};
3656template <> struct describe_field_t<SgAsmElfEHFrameEntryCI,uint64_t,&SgAsmElfEHFrameEntryCI::p_eh_data> {
3658 using field_type = uint64_t;
3659 static constexpr size_t position{2};
3660 static constexpr char const * const name{"eh_data"};
3661 static constexpr char const * const typestr{"uint64_t"};
3662 static constexpr bool traverse{false};
3663 static constexpr auto mbr_ptr{&SgAsmElfEHFrameEntryCI::p_eh_data};
3664 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3665 using bind = Desc<SgAsmElfEHFrameEntryCI, uint64_t SgAsmElfEHFrameEntryCI::*, &SgAsmElfEHFrameEntryCI::p_eh_data>;
3666};
3667template <> struct describe_field_t<SgAsmElfEHFrameEntryCI,uint64_t,&SgAsmElfEHFrameEntryCI::p_code_alignment_factor> {
3669 using field_type = uint64_t;
3670 static constexpr size_t position{3};
3671 static constexpr char const * const name{"code_alignment_factor"};
3672 static constexpr char const * const typestr{"uint64_t"};
3673 static constexpr bool traverse{false};
3674 static constexpr auto mbr_ptr{&SgAsmElfEHFrameEntryCI::p_code_alignment_factor};
3675 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3676 using bind = Desc<SgAsmElfEHFrameEntryCI, uint64_t SgAsmElfEHFrameEntryCI::*, &SgAsmElfEHFrameEntryCI::p_code_alignment_factor>;
3677};
3678template <> struct describe_field_t<SgAsmElfEHFrameEntryCI,int64_t,&SgAsmElfEHFrameEntryCI::p_data_alignment_factor> {
3680 using field_type = int64_t;
3681 static constexpr size_t position{4};
3682 static constexpr char const * const name{"data_alignment_factor"};
3683 static constexpr char const * const typestr{"int64_t"};
3684 static constexpr bool traverse{false};
3685 static constexpr auto mbr_ptr{&SgAsmElfEHFrameEntryCI::p_data_alignment_factor};
3686 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3687 using bind = Desc<SgAsmElfEHFrameEntryCI, int64_t SgAsmElfEHFrameEntryCI::*, &SgAsmElfEHFrameEntryCI::p_data_alignment_factor>;
3688};
3689template <> struct describe_field_t<SgAsmElfEHFrameEntryCI,uint64_t,&SgAsmElfEHFrameEntryCI::p_augmentation_data_length> {
3691 using field_type = uint64_t;
3692 static constexpr size_t position{5};
3693 static constexpr char const * const name{"augmentation_data_length"};
3694 static constexpr char const * const typestr{"uint64_t"};
3695 static constexpr bool traverse{false};
3696 static constexpr auto mbr_ptr{&SgAsmElfEHFrameEntryCI::p_augmentation_data_length};
3697 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3698 using bind = Desc<SgAsmElfEHFrameEntryCI, uint64_t SgAsmElfEHFrameEntryCI::*, &SgAsmElfEHFrameEntryCI::p_augmentation_data_length>;
3699};
3700template <> struct describe_field_t<SgAsmElfEHFrameEntryCI,int,&SgAsmElfEHFrameEntryCI::p_lsda_encoding> {
3702 using field_type = int;
3703 static constexpr size_t position{6};
3704 static constexpr char const * const name{"lsda_encoding"};
3705 static constexpr char const * const typestr{"int"};
3706 static constexpr bool traverse{false};
3707 static constexpr auto mbr_ptr{&SgAsmElfEHFrameEntryCI::p_lsda_encoding};
3708 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3709 using bind = Desc<SgAsmElfEHFrameEntryCI, int SgAsmElfEHFrameEntryCI::*, &SgAsmElfEHFrameEntryCI::p_lsda_encoding>;
3710};
3711template <> struct describe_field_t<SgAsmElfEHFrameEntryCI,int,&SgAsmElfEHFrameEntryCI::p_prh_encoding> {
3713 using field_type = int;
3714 static constexpr size_t position{7};
3715 static constexpr char const * const name{"prh_encoding"};
3716 static constexpr char const * const typestr{"int"};
3717 static constexpr bool traverse{false};
3718 static constexpr auto mbr_ptr{&SgAsmElfEHFrameEntryCI::p_prh_encoding};
3719 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3720 using bind = Desc<SgAsmElfEHFrameEntryCI, int SgAsmElfEHFrameEntryCI::*, &SgAsmElfEHFrameEntryCI::p_prh_encoding>;
3721};
3722template <> struct describe_field_t<SgAsmElfEHFrameEntryCI,unsigned,&SgAsmElfEHFrameEntryCI::p_prh_arg> {
3724 using field_type = unsigned;
3725 static constexpr size_t position{8};
3726 static constexpr char const * const name{"prh_arg"};
3727 static constexpr char const * const typestr{"unsigned"};
3728 static constexpr bool traverse{false};
3729 static constexpr auto mbr_ptr{&SgAsmElfEHFrameEntryCI::p_prh_arg};
3730 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3731 using bind = Desc<SgAsmElfEHFrameEntryCI, unsigned SgAsmElfEHFrameEntryCI::*, &SgAsmElfEHFrameEntryCI::p_prh_arg>;
3732};
3733template <> struct describe_field_t<SgAsmElfEHFrameEntryCI,Rose::BinaryAnalysis::Address,&SgAsmElfEHFrameEntryCI::p_prh_addr> {
3735 using field_type = Rose::BinaryAnalysis::Address;
3736 static constexpr size_t position{9};
3737 static constexpr char const * const name{"prh_addr"};
3738 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
3739 static constexpr bool traverse{false};
3740 static constexpr auto mbr_ptr{&SgAsmElfEHFrameEntryCI::p_prh_addr};
3741 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3742 using bind = Desc<SgAsmElfEHFrameEntryCI, Rose::BinaryAnalysis::Address SgAsmElfEHFrameEntryCI::*, &SgAsmElfEHFrameEntryCI::p_prh_addr>;
3743};
3744template <> struct describe_field_t<SgAsmElfEHFrameEntryCI,int,&SgAsmElfEHFrameEntryCI::p_addr_encoding> {
3746 using field_type = int;
3747 static constexpr size_t position{10};
3748 static constexpr char const * const name{"addr_encoding"};
3749 static constexpr char const * const typestr{"int"};
3750 static constexpr bool traverse{false};
3751 static constexpr auto mbr_ptr{&SgAsmElfEHFrameEntryCI::p_addr_encoding};
3752 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3753 using bind = Desc<SgAsmElfEHFrameEntryCI, int SgAsmElfEHFrameEntryCI::*, &SgAsmElfEHFrameEntryCI::p_addr_encoding>;
3754};
3755template <> struct describe_field_t<SgAsmElfEHFrameEntryCI,bool,&SgAsmElfEHFrameEntryCI::p_sig_frame> {
3757 using field_type = bool;
3758 static constexpr size_t position{11};
3759 static constexpr char const * const name{"sig_frame"};
3760 static constexpr char const * const typestr{"bool"};
3761 static constexpr bool traverse{false};
3762 static constexpr auto mbr_ptr{&SgAsmElfEHFrameEntryCI::p_sig_frame};
3763 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3764 using bind = Desc<SgAsmElfEHFrameEntryCI, bool SgAsmElfEHFrameEntryCI::*, &SgAsmElfEHFrameEntryCI::p_sig_frame>;
3765};
3766template <> struct describe_field_t<SgAsmElfEHFrameEntryCI,SgUnsignedCharList,&SgAsmElfEHFrameEntryCI::p_instructions> {
3768 using field_type = SgUnsignedCharList;
3769 static constexpr size_t position{12};
3770 static constexpr char const * const name{"instructions"};
3771 static constexpr char const * const typestr{"SgUnsignedCharList"};
3772 static constexpr bool traverse{false};
3773 static constexpr auto mbr_ptr{&SgAsmElfEHFrameEntryCI::p_instructions};
3774 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3775 using bind = Desc<SgAsmElfEHFrameEntryCI, SgUnsignedCharList SgAsmElfEHFrameEntryCI::*, &SgAsmElfEHFrameEntryCI::p_instructions>;
3776};
3777template <> struct describe_field_t<SgAsmElfEHFrameEntryCI,SgAsmElfEHFrameEntryFDList*,&SgAsmElfEHFrameEntryCI::p_fd_entries> {
3780 static constexpr size_t position{13};
3781 static constexpr char const * const name{"fd_entries"};
3782 static constexpr char const * const typestr{"SgAsmElfEHFrameEntryFDList*"};
3783 static constexpr bool traverse{true};
3784 static constexpr auto mbr_ptr{&SgAsmElfEHFrameEntryCI::p_fd_entries};
3785 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3786 using bind = Desc<SgAsmElfEHFrameEntryCI, SgAsmElfEHFrameEntryFDList* SgAsmElfEHFrameEntryCI::*, &SgAsmElfEHFrameEntryCI::p_fd_entries>;
3787};
3791 static constexpr char const * const name{"AsmElfEHFrameEntryCI"};
3792 static constexpr unsigned long variant{151};
3793 static constexpr bool concrete{true};
3794 using subclasses_t = mp::List<>;
3796};
3797template <> struct node_from_variant_t<151> { using type = SgAsmElfEHFrameEntryCI; };
3798
3799// Class: AsmElfEHFrameEntryCIList
3800template <> struct describe_field_t<SgAsmElfEHFrameEntryCIList,SgAsmElfEHFrameEntryCIPtrList,&SgAsmElfEHFrameEntryCIList::p_entries> {
3802 using field_type = SgAsmElfEHFrameEntryCIPtrList;
3803 static constexpr size_t position{0};
3804 static constexpr char const * const name{"entries"};
3805 static constexpr char const * const typestr{"SgAsmElfEHFrameEntryCIPtrList"};
3806 static constexpr bool traverse{false};
3807 static constexpr auto mbr_ptr{&SgAsmElfEHFrameEntryCIList::p_entries};
3808 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3809 using bind = Desc<SgAsmElfEHFrameEntryCIList, SgAsmElfEHFrameEntryCIPtrList SgAsmElfEHFrameEntryCIList::*, &SgAsmElfEHFrameEntryCIList::p_entries>;
3810};
3814 static constexpr char const * const name{"AsmElfEHFrameEntryCIList"};
3815 static constexpr unsigned long variant{152};
3816 static constexpr bool concrete{true};
3817 using subclasses_t = mp::List<>;
3819};
3820template <> struct node_from_variant_t<152> { using type = SgAsmElfEHFrameEntryCIList; };
3821
3822// Class: AsmElfEHFrameEntryFD
3823template <> struct describe_field_t<SgAsmElfEHFrameEntryFD,Rose::BinaryAnalysis::RelativeVirtualAddress,&SgAsmElfEHFrameEntryFD::p_begin_rva> {
3826 static constexpr size_t position{0};
3827 static constexpr char const * const name{"begin_rva"};
3828 static constexpr char const * const typestr{"Rose::BinaryAnalysis::RelativeVirtualAddress"};
3829 static constexpr bool traverse{false};
3830 static constexpr auto mbr_ptr{&SgAsmElfEHFrameEntryFD::p_begin_rva};
3831 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3832 using bind = Desc<SgAsmElfEHFrameEntryFD, Rose::BinaryAnalysis::RelativeVirtualAddress SgAsmElfEHFrameEntryFD::*, &SgAsmElfEHFrameEntryFD::p_begin_rva>;
3833};
3834template <> struct describe_field_t<SgAsmElfEHFrameEntryFD,Rose::BinaryAnalysis::Address,&SgAsmElfEHFrameEntryFD::p_size> {
3836 using field_type = Rose::BinaryAnalysis::Address;
3837 static constexpr size_t position{1};
3838 static constexpr char const * const name{"size"};
3839 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
3840 static constexpr bool traverse{false};
3841 static constexpr auto mbr_ptr{&SgAsmElfEHFrameEntryFD::p_size};
3842 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3843 using bind = Desc<SgAsmElfEHFrameEntryFD, Rose::BinaryAnalysis::Address SgAsmElfEHFrameEntryFD::*, &SgAsmElfEHFrameEntryFD::p_size>;
3844};
3845template <> struct describe_field_t<SgAsmElfEHFrameEntryFD,SgUnsignedCharList,&SgAsmElfEHFrameEntryFD::p_augmentation_data> {
3847 using field_type = SgUnsignedCharList;
3848 static constexpr size_t position{2};
3849 static constexpr char const * const name{"augmentation_data"};
3850 static constexpr char const * const typestr{"SgUnsignedCharList"};
3851 static constexpr bool traverse{false};
3852 static constexpr auto mbr_ptr{&SgAsmElfEHFrameEntryFD::p_augmentation_data};
3853 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3854 using bind = Desc<SgAsmElfEHFrameEntryFD, SgUnsignedCharList SgAsmElfEHFrameEntryFD::*, &SgAsmElfEHFrameEntryFD::p_augmentation_data>;
3855};
3856template <> struct describe_field_t<SgAsmElfEHFrameEntryFD,SgUnsignedCharList,&SgAsmElfEHFrameEntryFD::p_instructions> {
3858 using field_type = SgUnsignedCharList;
3859 static constexpr size_t position{3};
3860 static constexpr char const * const name{"instructions"};
3861 static constexpr char const * const typestr{"SgUnsignedCharList"};
3862 static constexpr bool traverse{false};
3863 static constexpr auto mbr_ptr{&SgAsmElfEHFrameEntryFD::p_instructions};
3864 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3865 using bind = Desc<SgAsmElfEHFrameEntryFD, SgUnsignedCharList SgAsmElfEHFrameEntryFD::*, &SgAsmElfEHFrameEntryFD::p_instructions>;
3866};
3876template <> struct node_from_variant_t<153> { using type = SgAsmElfEHFrameEntryFD; };
3877
3878// Class: AsmElfEHFrameEntryFDList
3879template <> struct describe_field_t<SgAsmElfEHFrameEntryFDList,SgAsmElfEHFrameEntryFDPtrList,&SgAsmElfEHFrameEntryFDList::p_entries> {
3881 using field_type = SgAsmElfEHFrameEntryFDPtrList;
3882 static constexpr size_t position{0};
3883 static constexpr char const * const name{"entries"};
3884 static constexpr char const * const typestr{"SgAsmElfEHFrameEntryFDPtrList"};
3885 static constexpr bool traverse{false};
3886 static constexpr auto mbr_ptr{&SgAsmElfEHFrameEntryFDList::p_entries};
3887 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3888 using bind = Desc<SgAsmElfEHFrameEntryFDList, SgAsmElfEHFrameEntryFDPtrList SgAsmElfEHFrameEntryFDList::*, &SgAsmElfEHFrameEntryFDList::p_entries>;
3889};
3893 static constexpr char const * const name{"AsmElfEHFrameEntryFDList"};
3894 static constexpr unsigned long variant{154};
3895 static constexpr bool concrete{true};
3896 using subclasses_t = mp::List<>;
3898};
3899template <> struct node_from_variant_t<154> { using type = SgAsmElfEHFrameEntryFDList; };
3900
3901// Class: AsmElfEHFrameSection
3902template <> struct describe_field_t<SgAsmElfEHFrameSection,SgAsmElfEHFrameEntryCIList*,&SgAsmElfEHFrameSection::p_ci_entries> {
3905 static constexpr size_t position{0};
3906 static constexpr char const * const name{"ci_entries"};
3907 static constexpr char const * const typestr{"SgAsmElfEHFrameEntryCIList*"};
3908 static constexpr bool traverse{true};
3909 static constexpr auto mbr_ptr{&SgAsmElfEHFrameSection::p_ci_entries};
3910 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3911 using bind = Desc<SgAsmElfEHFrameSection, SgAsmElfEHFrameEntryCIList* SgAsmElfEHFrameSection::*, &SgAsmElfEHFrameSection::p_ci_entries>;
3912};
3915 using base = SgAsmElfSection;
3916 static constexpr char const * const name{"AsmElfEHFrameSection"};
3917 static constexpr unsigned long variant{155};
3918 static constexpr bool concrete{true};
3919 using subclasses_t = mp::List<>;
3921};
3922template <> struct node_from_variant_t<155> { using type = SgAsmElfEHFrameSection; };
3923
3924// Class: AsmElfFileHeader
3925template <> struct describe_field_t<SgAsmElfFileHeader,unsigned char,&SgAsmElfFileHeader::p_e_ident_file_class> {
3926 using parent = SgAsmElfFileHeader;
3927 using field_type = unsigned char;
3928 static constexpr size_t position{0};
3929 static constexpr char const * const name{"e_ident_file_class"};
3930 static constexpr char const * const typestr{"unsigned char"};
3931 static constexpr bool traverse{false};
3932 static constexpr auto mbr_ptr{&SgAsmElfFileHeader::p_e_ident_file_class};
3933 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3934 using bind = Desc<SgAsmElfFileHeader, unsigned char SgAsmElfFileHeader::*, &SgAsmElfFileHeader::p_e_ident_file_class>;
3935};
3936template <> struct describe_field_t<SgAsmElfFileHeader,unsigned char,&SgAsmElfFileHeader::p_e_ident_data_encoding> {
3937 using parent = SgAsmElfFileHeader;
3938 using field_type = unsigned char;
3939 static constexpr size_t position{1};
3940 static constexpr char const * const name{"e_ident_data_encoding"};
3941 static constexpr char const * const typestr{"unsigned char"};
3942 static constexpr bool traverse{false};
3943 static constexpr auto mbr_ptr{&SgAsmElfFileHeader::p_e_ident_data_encoding};
3944 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3945 using bind = Desc<SgAsmElfFileHeader, unsigned char SgAsmElfFileHeader::*, &SgAsmElfFileHeader::p_e_ident_data_encoding>;
3946};
3947template <> struct describe_field_t<SgAsmElfFileHeader,unsigned char,&SgAsmElfFileHeader::p_e_ident_file_version> {
3948 using parent = SgAsmElfFileHeader;
3949 using field_type = unsigned char;
3950 static constexpr size_t position{2};
3951 static constexpr char const * const name{"e_ident_file_version"};
3952 static constexpr char const * const typestr{"unsigned char"};
3953 static constexpr bool traverse{false};
3954 static constexpr auto mbr_ptr{&SgAsmElfFileHeader::p_e_ident_file_version};
3955 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3956 using bind = Desc<SgAsmElfFileHeader, unsigned char SgAsmElfFileHeader::*, &SgAsmElfFileHeader::p_e_ident_file_version>;
3957};
3958template <> struct describe_field_t<SgAsmElfFileHeader,SgUnsignedCharList,&SgAsmElfFileHeader::p_e_ident_padding> {
3959 using parent = SgAsmElfFileHeader;
3960 using field_type = SgUnsignedCharList;
3961 static constexpr size_t position{3};
3962 static constexpr char const * const name{"e_ident_padding"};
3963 static constexpr char const * const typestr{"SgUnsignedCharList"};
3964 static constexpr bool traverse{false};
3965 static constexpr auto mbr_ptr{&SgAsmElfFileHeader::p_e_ident_padding};
3966 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3967 using bind = Desc<SgAsmElfFileHeader, SgUnsignedCharList SgAsmElfFileHeader::*, &SgAsmElfFileHeader::p_e_ident_padding>;
3968};
3969template <> struct describe_field_t<SgAsmElfFileHeader,unsigned long,&SgAsmElfFileHeader::p_e_type> {
3970 using parent = SgAsmElfFileHeader;
3971 using field_type = unsigned long;
3972 static constexpr size_t position{4};
3973 static constexpr char const * const name{"e_type"};
3974 static constexpr char const * const typestr{"unsigned long"};
3975 static constexpr bool traverse{false};
3976 static constexpr auto mbr_ptr{&SgAsmElfFileHeader::p_e_type};
3977 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3978 using bind = Desc<SgAsmElfFileHeader, unsigned long SgAsmElfFileHeader::*, &SgAsmElfFileHeader::p_e_type>;
3979};
3980template <> struct describe_field_t<SgAsmElfFileHeader,unsigned long,&SgAsmElfFileHeader::p_e_machine> {
3981 using parent = SgAsmElfFileHeader;
3982 using field_type = unsigned long;
3983 static constexpr size_t position{5};
3984 static constexpr char const * const name{"e_machine"};
3985 static constexpr char const * const typestr{"unsigned long"};
3986 static constexpr bool traverse{false};
3987 static constexpr auto mbr_ptr{&SgAsmElfFileHeader::p_e_machine};
3988 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
3989 using bind = Desc<SgAsmElfFileHeader, unsigned long SgAsmElfFileHeader::*, &SgAsmElfFileHeader::p_e_machine>;
3990};
3991template <> struct describe_field_t<SgAsmElfFileHeader,unsigned long,&SgAsmElfFileHeader::p_e_flags> {
3992 using parent = SgAsmElfFileHeader;
3993 using field_type = unsigned long;
3994 static constexpr size_t position{6};
3995 static constexpr char const * const name{"e_flags"};
3996 static constexpr char const * const typestr{"unsigned long"};
3997 static constexpr bool traverse{false};
3998 static constexpr auto mbr_ptr{&SgAsmElfFileHeader::p_e_flags};
3999 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4000 using bind = Desc<SgAsmElfFileHeader, unsigned long SgAsmElfFileHeader::*, &SgAsmElfFileHeader::p_e_flags>;
4001};
4002template <> struct describe_field_t<SgAsmElfFileHeader,unsigned long,&SgAsmElfFileHeader::p_e_ehsize> {
4003 using parent = SgAsmElfFileHeader;
4004 using field_type = unsigned long;
4005 static constexpr size_t position{7};
4006 static constexpr char const * const name{"e_ehsize"};
4007 static constexpr char const * const typestr{"unsigned long"};
4008 static constexpr bool traverse{false};
4009 static constexpr auto mbr_ptr{&SgAsmElfFileHeader::p_e_ehsize};
4010 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4011 using bind = Desc<SgAsmElfFileHeader, unsigned long SgAsmElfFileHeader::*, &SgAsmElfFileHeader::p_e_ehsize>;
4012};
4013template <> struct describe_field_t<SgAsmElfFileHeader,unsigned long,&SgAsmElfFileHeader::p_phextrasz> {
4014 using parent = SgAsmElfFileHeader;
4015 using field_type = unsigned long;
4016 static constexpr size_t position{8};
4017 static constexpr char const * const name{"phextrasz"};
4018 static constexpr char const * const typestr{"unsigned long"};
4019 static constexpr bool traverse{false};
4020 static constexpr auto mbr_ptr{&SgAsmElfFileHeader::p_phextrasz};
4021 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4022 using bind = Desc<SgAsmElfFileHeader, unsigned long SgAsmElfFileHeader::*, &SgAsmElfFileHeader::p_phextrasz>;
4023};
4024template <> struct describe_field_t<SgAsmElfFileHeader,unsigned long,&SgAsmElfFileHeader::p_e_phnum> {
4025 using parent = SgAsmElfFileHeader;
4026 using field_type = unsigned long;
4027 static constexpr size_t position{9};
4028 static constexpr char const * const name{"e_phnum"};
4029 static constexpr char const * const typestr{"unsigned long"};
4030 static constexpr bool traverse{false};
4031 static constexpr auto mbr_ptr{&SgAsmElfFileHeader::p_e_phnum};
4032 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4033 using bind = Desc<SgAsmElfFileHeader, unsigned long SgAsmElfFileHeader::*, &SgAsmElfFileHeader::p_e_phnum>;
4034};
4035template <> struct describe_field_t<SgAsmElfFileHeader,unsigned long,&SgAsmElfFileHeader::p_shextrasz> {
4036 using parent = SgAsmElfFileHeader;
4037 using field_type = unsigned long;
4038 static constexpr size_t position{10};
4039 static constexpr char const * const name{"shextrasz"};
4040 static constexpr char const * const typestr{"unsigned long"};
4041 static constexpr bool traverse{false};
4042 static constexpr auto mbr_ptr{&SgAsmElfFileHeader::p_shextrasz};
4043 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4044 using bind = Desc<SgAsmElfFileHeader, unsigned long SgAsmElfFileHeader::*, &SgAsmElfFileHeader::p_shextrasz>;
4045};
4046template <> struct describe_field_t<SgAsmElfFileHeader,unsigned long,&SgAsmElfFileHeader::p_e_shnum> {
4047 using parent = SgAsmElfFileHeader;
4048 using field_type = unsigned long;
4049 static constexpr size_t position{11};
4050 static constexpr char const * const name{"e_shnum"};
4051 static constexpr char const * const typestr{"unsigned long"};
4052 static constexpr bool traverse{false};
4053 static constexpr auto mbr_ptr{&SgAsmElfFileHeader::p_e_shnum};
4054 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4055 using bind = Desc<SgAsmElfFileHeader, unsigned long SgAsmElfFileHeader::*, &SgAsmElfFileHeader::p_e_shnum>;
4056};
4057template <> struct describe_field_t<SgAsmElfFileHeader,unsigned long,&SgAsmElfFileHeader::p_e_shstrndx> {
4058 using parent = SgAsmElfFileHeader;
4059 using field_type = unsigned long;
4060 static constexpr size_t position{12};
4061 static constexpr char const * const name{"e_shstrndx"};
4062 static constexpr char const * const typestr{"unsigned long"};
4063 static constexpr bool traverse{false};
4064 static constexpr auto mbr_ptr{&SgAsmElfFileHeader::p_e_shstrndx};
4065 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4066 using bind = Desc<SgAsmElfFileHeader, unsigned long SgAsmElfFileHeader::*, &SgAsmElfFileHeader::p_e_shstrndx>;
4067};
4068template <> struct describe_field_t<SgAsmElfFileHeader,SgAsmElfSectionTable*,&SgAsmElfFileHeader::p_sectionTable> {
4069 using parent = SgAsmElfFileHeader;
4071 static constexpr size_t position{13};
4072 static constexpr char const * const name{"sectionTable"};
4073 static constexpr char const * const typestr{"SgAsmElfSectionTable*"};
4074 static constexpr bool traverse{false};
4075 static constexpr auto mbr_ptr{&SgAsmElfFileHeader::p_sectionTable};
4076 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4077 using bind = Desc<SgAsmElfFileHeader, SgAsmElfSectionTable* SgAsmElfFileHeader::*, &SgAsmElfFileHeader::p_sectionTable>;
4078};
4079template <> struct describe_field_t<SgAsmElfFileHeader,SgAsmElfSegmentTable*,&SgAsmElfFileHeader::p_segmentTable> {
4080 using parent = SgAsmElfFileHeader;
4082 static constexpr size_t position{14};
4083 static constexpr char const * const name{"segmentTable"};
4084 static constexpr char const * const typestr{"SgAsmElfSegmentTable*"};
4085 static constexpr bool traverse{false};
4086 static constexpr auto mbr_ptr{&SgAsmElfFileHeader::p_segmentTable};
4087 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4088 using bind = Desc<SgAsmElfFileHeader, SgAsmElfSegmentTable* SgAsmElfFileHeader::*, &SgAsmElfFileHeader::p_segmentTable>;
4089};
4091 using node = SgAsmElfFileHeader;
4092 using base = SgAsmGenericHeader;
4093 static constexpr char const * const name{"AsmElfFileHeader"};
4094 static constexpr unsigned long variant{156};
4095 static constexpr bool concrete{true};
4096 using subclasses_t = mp::List<>;
4098};
4099template <> struct node_from_variant_t<156> { using type = SgAsmElfFileHeader; };
4100
4101// Class: AsmElfNoteEntry
4102template <> struct describe_field_t<SgAsmElfNoteEntry,unsigned,&SgAsmElfNoteEntry::p_type> {
4103 using parent = SgAsmElfNoteEntry;
4104 using field_type = unsigned;
4105 static constexpr size_t position{0};
4106 static constexpr char const * const name{"type"};
4107 static constexpr char const * const typestr{"unsigned"};
4108 static constexpr bool traverse{false};
4109 static constexpr auto mbr_ptr{&SgAsmElfNoteEntry::p_type};
4110 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4111 using bind = Desc<SgAsmElfNoteEntry, unsigned SgAsmElfNoteEntry::*, &SgAsmElfNoteEntry::p_type>;
4112};
4113template <> struct describe_field_t<SgAsmElfNoteEntry,SgAsmGenericString*,&SgAsmElfNoteEntry::p_name> {
4114 using parent = SgAsmElfNoteEntry;
4116 static constexpr size_t position{1};
4117 static constexpr char const * const name{"name"};
4118 static constexpr char const * const typestr{"SgAsmGenericString*"};
4119 static constexpr bool traverse{true};
4120 static constexpr auto mbr_ptr{&SgAsmElfNoteEntry::p_name};
4121 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4122 using bind = Desc<SgAsmElfNoteEntry, SgAsmGenericString* SgAsmElfNoteEntry::*, &SgAsmElfNoteEntry::p_name>;
4123};
4124template <> struct describe_field_t<SgAsmElfNoteEntry,SgUnsignedCharList,&SgAsmElfNoteEntry::p_payload> {
4125 using parent = SgAsmElfNoteEntry;
4126 using field_type = SgUnsignedCharList;
4127 static constexpr size_t position{2};
4128 static constexpr char const * const name{"payload"};
4129 static constexpr char const * const typestr{"SgUnsignedCharList"};
4130 static constexpr bool traverse{false};
4131 static constexpr auto mbr_ptr{&SgAsmElfNoteEntry::p_payload};
4132 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4133 using bind = Desc<SgAsmElfNoteEntry, SgUnsignedCharList SgAsmElfNoteEntry::*, &SgAsmElfNoteEntry::p_payload>;
4134};
4136 using node = SgAsmElfNoteEntry;
4138 static constexpr char const * const name{"AsmElfNoteEntry"};
4139 static constexpr unsigned long variant{157};
4140 static constexpr bool concrete{true};
4141 using subclasses_t = mp::List<>;
4143};
4144template <> struct node_from_variant_t<157> { using type = SgAsmElfNoteEntry; };
4145
4146// Class: AsmElfNoteEntryList
4147template <> struct describe_field_t<SgAsmElfNoteEntryList,SgAsmElfNoteEntryPtrList,&SgAsmElfNoteEntryList::p_entries> {
4149 using field_type = SgAsmElfNoteEntryPtrList;
4150 static constexpr size_t position{0};
4151 static constexpr char const * const name{"entries"};
4152 static constexpr char const * const typestr{"SgAsmElfNoteEntryPtrList"};
4153 static constexpr bool traverse{false};
4154 static constexpr auto mbr_ptr{&SgAsmElfNoteEntryList::p_entries};
4155 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4156 using bind = Desc<SgAsmElfNoteEntryList, SgAsmElfNoteEntryPtrList SgAsmElfNoteEntryList::*, &SgAsmElfNoteEntryList::p_entries>;
4157};
4161 static constexpr char const * const name{"AsmElfNoteEntryList"};
4162 static constexpr unsigned long variant{158};
4163 static constexpr bool concrete{true};
4164 using subclasses_t = mp::List<>;
4166};
4167template <> struct node_from_variant_t<158> { using type = SgAsmElfNoteEntryList; };
4168
4169// Class: AsmElfNoteSection
4170template <> struct describe_field_t<SgAsmElfNoteSection,SgAsmElfNoteEntryList*,&SgAsmElfNoteSection::p_entries> {
4173 static constexpr size_t position{0};
4174 static constexpr char const * const name{"entries"};
4175 static constexpr char const * const typestr{"SgAsmElfNoteEntryList*"};
4176 static constexpr bool traverse{true};
4177 static constexpr auto mbr_ptr{&SgAsmElfNoteSection::p_entries};
4178 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4179 using bind = Desc<SgAsmElfNoteSection, SgAsmElfNoteEntryList* SgAsmElfNoteSection::*, &SgAsmElfNoteSection::p_entries>;
4180};
4182 using node = SgAsmElfNoteSection;
4183 using base = SgAsmElfSection;
4184 static constexpr char const * const name{"AsmElfNoteSection"};
4185 static constexpr unsigned long variant{159};
4186 static constexpr bool concrete{true};
4187 using subclasses_t = mp::List<>;
4189};
4190template <> struct node_from_variant_t<159> { using type = SgAsmElfNoteSection; };
4191
4192// Class: AsmElfRelocEntry
4193template <> struct describe_field_t<SgAsmElfRelocEntry,Rose::BinaryAnalysis::Address,&SgAsmElfRelocEntry::p_r_offset> {
4194 using parent = SgAsmElfRelocEntry;
4195 using field_type = Rose::BinaryAnalysis::Address;
4196 static constexpr size_t position{0};
4197 static constexpr char const * const name{"r_offset"};
4198 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
4199 static constexpr bool traverse{false};
4200 static constexpr auto mbr_ptr{&SgAsmElfRelocEntry::p_r_offset};
4201 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4202 using bind = Desc<SgAsmElfRelocEntry, Rose::BinaryAnalysis::Address SgAsmElfRelocEntry::*, &SgAsmElfRelocEntry::p_r_offset>;
4203};
4204template <> struct describe_field_t<SgAsmElfRelocEntry,Rose::BinaryAnalysis::Address,&SgAsmElfRelocEntry::p_r_addend> {
4205 using parent = SgAsmElfRelocEntry;
4206 using field_type = Rose::BinaryAnalysis::Address;
4207 static constexpr size_t position{1};
4208 static constexpr char const * const name{"r_addend"};
4209 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
4210 static constexpr bool traverse{false};
4211 static constexpr auto mbr_ptr{&SgAsmElfRelocEntry::p_r_addend};
4212 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4213 using bind = Desc<SgAsmElfRelocEntry, Rose::BinaryAnalysis::Address SgAsmElfRelocEntry::*, &SgAsmElfRelocEntry::p_r_addend>;
4214};
4215template <> struct describe_field_t<SgAsmElfRelocEntry,unsigned long,&SgAsmElfRelocEntry::p_sym> {
4216 using parent = SgAsmElfRelocEntry;
4217 using field_type = unsigned long;
4218 static constexpr size_t position{2};
4219 static constexpr char const * const name{"sym"};
4220 static constexpr char const * const typestr{"unsigned long"};
4221 static constexpr bool traverse{false};
4222 static constexpr auto mbr_ptr{&SgAsmElfRelocEntry::p_sym};
4223 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4224 using bind = Desc<SgAsmElfRelocEntry, unsigned long SgAsmElfRelocEntry::*, &SgAsmElfRelocEntry::p_sym>;
4225};
4226template <> struct describe_field_t<SgAsmElfRelocEntry,SgAsmElfRelocEntry::RelocType,&SgAsmElfRelocEntry::p_type> {
4227 using parent = SgAsmElfRelocEntry;
4229 static constexpr size_t position{3};
4230 static constexpr char const * const name{"type"};
4231 static constexpr char const * const typestr{"SgAsmElfRelocEntry::RelocType"};
4232 static constexpr bool traverse{false};
4233 static constexpr auto mbr_ptr{&SgAsmElfRelocEntry::p_type};
4234 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4235 using bind = Desc<SgAsmElfRelocEntry, SgAsmElfRelocEntry::RelocType SgAsmElfRelocEntry::*, &SgAsmElfRelocEntry::p_type>;
4236};
4237template <> struct describe_field_t<SgAsmElfRelocEntry,SgUnsignedCharList,&SgAsmElfRelocEntry::p_extra> {
4238 using parent = SgAsmElfRelocEntry;
4239 using field_type = SgUnsignedCharList;
4240 static constexpr size_t position{4};
4241 static constexpr char const * const name{"extra"};
4242 static constexpr char const * const typestr{"SgUnsignedCharList"};
4243 static constexpr bool traverse{false};
4244 static constexpr auto mbr_ptr{&SgAsmElfRelocEntry::p_extra};
4245 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4246 using bind = Desc<SgAsmElfRelocEntry, SgUnsignedCharList SgAsmElfRelocEntry::*, &SgAsmElfRelocEntry::p_extra>;
4247};
4257template <> struct node_from_variant_t<160> { using type = SgAsmElfRelocEntry; };
4258
4259// Class: AsmElfRelocEntryList
4260template <> struct describe_field_t<SgAsmElfRelocEntryList,SgAsmElfRelocEntryPtrList,&SgAsmElfRelocEntryList::p_entries> {
4262 using field_type = SgAsmElfRelocEntryPtrList;
4263 static constexpr size_t position{0};
4264 static constexpr char const * const name{"entries"};
4265 static constexpr char const * const typestr{"SgAsmElfRelocEntryPtrList"};
4266 static constexpr bool traverse{true};
4267 static constexpr auto mbr_ptr{&SgAsmElfRelocEntryList::p_entries};
4268 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4269 using bind = Desc<SgAsmElfRelocEntryList, SgAsmElfRelocEntryPtrList SgAsmElfRelocEntryList::*, &SgAsmElfRelocEntryList::p_entries>;
4270};
4274 static constexpr char const * const name{"AsmElfRelocEntryList"};
4275 static constexpr unsigned long variant{161};
4276 static constexpr bool concrete{true};
4277 using subclasses_t = mp::List<>;
4279};
4280template <> struct node_from_variant_t<161> { using type = SgAsmElfRelocEntryList; };
4281
4282// Class: AsmElfRelocSection
4283template <> struct describe_field_t<SgAsmElfRelocSection,bool,&SgAsmElfRelocSection::p_usesAddend> {
4285 using field_type = bool;
4286 static constexpr size_t position{0};
4287 static constexpr char const * const name{"usesAddend"};
4288 static constexpr char const * const typestr{"bool"};
4289 static constexpr bool traverse{false};
4290 static constexpr auto mbr_ptr{&SgAsmElfRelocSection::p_usesAddend};
4291 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4292 using bind = Desc<SgAsmElfRelocSection, bool SgAsmElfRelocSection::*, &SgAsmElfRelocSection::p_usesAddend>;
4293};
4294template <> struct describe_field_t<SgAsmElfRelocSection,SgAsmElfSection*,&SgAsmElfRelocSection::p_targetSection> {
4296 using field_type = SgAsmElfSection*;
4297 static constexpr size_t position{1};
4298 static constexpr char const * const name{"targetSection"};
4299 static constexpr char const * const typestr{"SgAsmElfSection*"};
4300 static constexpr bool traverse{false};
4301 static constexpr auto mbr_ptr{&SgAsmElfRelocSection::p_targetSection};
4302 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4303 using bind = Desc<SgAsmElfRelocSection, SgAsmElfSection* SgAsmElfRelocSection::*, &SgAsmElfRelocSection::p_targetSection>;
4304};
4305template <> struct describe_field_t<SgAsmElfRelocSection,SgAsmElfRelocEntryList*,&SgAsmElfRelocSection::p_entries> {
4308 static constexpr size_t position{2};
4309 static constexpr char const * const name{"entries"};
4310 static constexpr char const * const typestr{"SgAsmElfRelocEntryList*"};
4311 static constexpr bool traverse{true};
4312 static constexpr auto mbr_ptr{&SgAsmElfRelocSection::p_entries};
4313 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4314 using bind = Desc<SgAsmElfRelocSection, SgAsmElfRelocEntryList* SgAsmElfRelocSection::*, &SgAsmElfRelocSection::p_entries>;
4315};
4317 using node = SgAsmElfRelocSection;
4318 using base = SgAsmElfSection;
4319 static constexpr char const * const name{"AsmElfRelocSection"};
4320 static constexpr unsigned long variant{162};
4321 static constexpr bool concrete{true};
4322 using subclasses_t = mp::List<>;
4324};
4325template <> struct node_from_variant_t<162> { using type = SgAsmElfRelocSection; };
4326
4327// Class: AsmElfSection
4328template <> struct describe_field_t<SgAsmElfSection,SgAsmElfSection*,&SgAsmElfSection::p_linkedSection> {
4329 using parent = SgAsmElfSection;
4330 using field_type = SgAsmElfSection*;
4331 static constexpr size_t position{0};
4332 static constexpr char const * const name{"linkedSection"};
4333 static constexpr char const * const typestr{"SgAsmElfSection*"};
4334 static constexpr bool traverse{false};
4335 static constexpr auto mbr_ptr{&SgAsmElfSection::p_linkedSection};
4336 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4337 using bind = Desc<SgAsmElfSection, SgAsmElfSection* SgAsmElfSection::*, &SgAsmElfSection::p_linkedSection>;
4338};
4339template <> struct describe_field_t<SgAsmElfSection,SgAsmElfSectionTableEntry*,&SgAsmElfSection::p_sectionEntry> {
4340 using parent = SgAsmElfSection;
4342 static constexpr size_t position{1};
4343 static constexpr char const * const name{"sectionEntry"};
4344 static constexpr char const * const typestr{"SgAsmElfSectionTableEntry*"};
4345 static constexpr bool traverse{true};
4346 static constexpr auto mbr_ptr{&SgAsmElfSection::p_sectionEntry};
4347 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4348 using bind = Desc<SgAsmElfSection, SgAsmElfSectionTableEntry* SgAsmElfSection::*, &SgAsmElfSection::p_sectionEntry>;
4349};
4350template <> struct describe_field_t<SgAsmElfSection,SgAsmElfSegmentTableEntry*,&SgAsmElfSection::p_segmentEntry> {
4351 using parent = SgAsmElfSection;
4353 static constexpr size_t position{2};
4354 static constexpr char const * const name{"segmentEntry"};
4355 static constexpr char const * const typestr{"SgAsmElfSegmentTableEntry*"};
4356 static constexpr bool traverse{true};
4357 static constexpr auto mbr_ptr{&SgAsmElfSection::p_segmentEntry};
4358 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4359 using bind = Desc<SgAsmElfSection, SgAsmElfSegmentTableEntry* SgAsmElfSection::*, &SgAsmElfSection::p_segmentEntry>;
4360};
4370template <> struct node_from_variant_t<163> { using type = SgAsmElfSection; };
4371
4372// Class: AsmElfSectionTable
4374 using node = SgAsmElfSectionTable;
4375 using base = SgAsmGenericSection;
4376 static constexpr char const * const name{"AsmElfSectionTable"};
4377 static constexpr unsigned long variant{164};
4378 static constexpr bool concrete{true};
4379 using subclasses_t = mp::List<>;
4380 using fields_t = mp::List<>;
4381};
4382template <> struct node_from_variant_t<164> { using type = SgAsmElfSectionTable; };
4383
4384// Class: AsmElfSectionTableEntry
4385template <> struct describe_field_t<SgAsmElfSectionTableEntry,unsigned,&SgAsmElfSectionTableEntry::p_sh_name> {
4387 using field_type = unsigned;
4388 static constexpr size_t position{0};
4389 static constexpr char const * const name{"sh_name"};
4390 static constexpr char const * const typestr{"unsigned"};
4391 static constexpr bool traverse{false};
4392 static constexpr auto mbr_ptr{&SgAsmElfSectionTableEntry::p_sh_name};
4393 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4394 using bind = Desc<SgAsmElfSectionTableEntry, unsigned SgAsmElfSectionTableEntry::*, &SgAsmElfSectionTableEntry::p_sh_name>;
4395};
4396template <> struct describe_field_t<SgAsmElfSectionTableEntry,SgAsmElfSectionTableEntry::SectionType,&SgAsmElfSectionTableEntry::p_sh_type> {
4399 static constexpr size_t position{1};
4400 static constexpr char const * const name{"sh_type"};
4401 static constexpr char const * const typestr{"SgAsmElfSectionTableEntry::SectionType"};
4402 static constexpr bool traverse{false};
4403 static constexpr auto mbr_ptr{&SgAsmElfSectionTableEntry::p_sh_type};
4404 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4405 using bind = Desc<SgAsmElfSectionTableEntry, SgAsmElfSectionTableEntry::SectionType SgAsmElfSectionTableEntry::*, &SgAsmElfSectionTableEntry::p_sh_type>;
4406};
4407template <> struct describe_field_t<SgAsmElfSectionTableEntry,unsigned long,&SgAsmElfSectionTableEntry::p_sh_link> {
4409 using field_type = unsigned long;
4410 static constexpr size_t position{2};
4411 static constexpr char const * const name{"sh_link"};
4412 static constexpr char const * const typestr{"unsigned long"};
4413 static constexpr bool traverse{false};
4414 static constexpr auto mbr_ptr{&SgAsmElfSectionTableEntry::p_sh_link};
4415 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4416 using bind = Desc<SgAsmElfSectionTableEntry, unsigned long SgAsmElfSectionTableEntry::*, &SgAsmElfSectionTableEntry::p_sh_link>;
4417};
4418template <> struct describe_field_t<SgAsmElfSectionTableEntry,unsigned long,&SgAsmElfSectionTableEntry::p_sh_info> {
4420 using field_type = unsigned long;
4421 static constexpr size_t position{3};
4422 static constexpr char const * const name{"sh_info"};
4423 static constexpr char const * const typestr{"unsigned long"};
4424 static constexpr bool traverse{false};
4425 static constexpr auto mbr_ptr{&SgAsmElfSectionTableEntry::p_sh_info};
4426 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4427 using bind = Desc<SgAsmElfSectionTableEntry, unsigned long SgAsmElfSectionTableEntry::*, &SgAsmElfSectionTableEntry::p_sh_info>;
4428};
4429template <> struct describe_field_t<SgAsmElfSectionTableEntry,uint64_t,&SgAsmElfSectionTableEntry::p_sh_flags> {
4431 using field_type = uint64_t;
4432 static constexpr size_t position{4};
4433 static constexpr char const * const name{"sh_flags"};
4434 static constexpr char const * const typestr{"uint64_t"};
4435 static constexpr bool traverse{false};
4436 static constexpr auto mbr_ptr{&SgAsmElfSectionTableEntry::p_sh_flags};
4437 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4438 using bind = Desc<SgAsmElfSectionTableEntry, uint64_t SgAsmElfSectionTableEntry::*, &SgAsmElfSectionTableEntry::p_sh_flags>;
4439};
4440template <> struct describe_field_t<SgAsmElfSectionTableEntry,Rose::BinaryAnalysis::Address,&SgAsmElfSectionTableEntry::p_sh_addr> {
4442 using field_type = Rose::BinaryAnalysis::Address;
4443 static constexpr size_t position{5};
4444 static constexpr char const * const name{"sh_addr"};
4445 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
4446 static constexpr bool traverse{false};
4447 static constexpr auto mbr_ptr{&SgAsmElfSectionTableEntry::p_sh_addr};
4448 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4449 using bind = Desc<SgAsmElfSectionTableEntry, Rose::BinaryAnalysis::Address SgAsmElfSectionTableEntry::*, &SgAsmElfSectionTableEntry::p_sh_addr>;
4450};
4451template <> struct describe_field_t<SgAsmElfSectionTableEntry,Rose::BinaryAnalysis::Address,&SgAsmElfSectionTableEntry::p_sh_offset> {
4453 using field_type = Rose::BinaryAnalysis::Address;
4454 static constexpr size_t position{6};
4455 static constexpr char const * const name{"sh_offset"};
4456 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
4457 static constexpr bool traverse{false};
4458 static constexpr auto mbr_ptr{&SgAsmElfSectionTableEntry::p_sh_offset};
4459 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4460 using bind = Desc<SgAsmElfSectionTableEntry, Rose::BinaryAnalysis::Address SgAsmElfSectionTableEntry::*, &SgAsmElfSectionTableEntry::p_sh_offset>;
4461};
4462template <> struct describe_field_t<SgAsmElfSectionTableEntry,Rose::BinaryAnalysis::Address,&SgAsmElfSectionTableEntry::p_sh_size> {
4464 using field_type = Rose::BinaryAnalysis::Address;
4465 static constexpr size_t position{7};
4466 static constexpr char const * const name{"sh_size"};
4467 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
4468 static constexpr bool traverse{false};
4469 static constexpr auto mbr_ptr{&SgAsmElfSectionTableEntry::p_sh_size};
4470 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4471 using bind = Desc<SgAsmElfSectionTableEntry, Rose::BinaryAnalysis::Address SgAsmElfSectionTableEntry::*, &SgAsmElfSectionTableEntry::p_sh_size>;
4472};
4473template <> struct describe_field_t<SgAsmElfSectionTableEntry,Rose::BinaryAnalysis::Address,&SgAsmElfSectionTableEntry::p_sh_addralign> {
4475 using field_type = Rose::BinaryAnalysis::Address;
4476 static constexpr size_t position{8};
4477 static constexpr char const * const name{"sh_addralign"};
4478 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
4479 static constexpr bool traverse{false};
4480 static constexpr auto mbr_ptr{&SgAsmElfSectionTableEntry::p_sh_addralign};
4481 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4482 using bind = Desc<SgAsmElfSectionTableEntry, Rose::BinaryAnalysis::Address SgAsmElfSectionTableEntry::*, &SgAsmElfSectionTableEntry::p_sh_addralign>;
4483};
4484template <> struct describe_field_t<SgAsmElfSectionTableEntry,Rose::BinaryAnalysis::Address,&SgAsmElfSectionTableEntry::p_sh_entsize> {
4486 using field_type = Rose::BinaryAnalysis::Address;
4487 static constexpr size_t position{9};
4488 static constexpr char const * const name{"sh_entsize"};
4489 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
4490 static constexpr bool traverse{false};
4491 static constexpr auto mbr_ptr{&SgAsmElfSectionTableEntry::p_sh_entsize};
4492 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4493 using bind = Desc<SgAsmElfSectionTableEntry, Rose::BinaryAnalysis::Address SgAsmElfSectionTableEntry::*, &SgAsmElfSectionTableEntry::p_sh_entsize>;
4494};
4495template <> struct describe_field_t<SgAsmElfSectionTableEntry,SgUnsignedCharList,&SgAsmElfSectionTableEntry::p_extra> {
4497 using field_type = SgUnsignedCharList;
4498 static constexpr size_t position{10};
4499 static constexpr char const * const name{"extra"};
4500 static constexpr char const * const typestr{"SgUnsignedCharList"};
4501 static constexpr bool traverse{false};
4502 static constexpr auto mbr_ptr{&SgAsmElfSectionTableEntry::p_extra};
4503 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4504 using bind = Desc<SgAsmElfSectionTableEntry, SgUnsignedCharList SgAsmElfSectionTableEntry::*, &SgAsmElfSectionTableEntry::p_extra>;
4505};
4509 static constexpr char const * const name{"AsmElfSectionTableEntry"};
4510 static constexpr unsigned long variant{165};
4511 static constexpr bool concrete{true};
4512 using subclasses_t = mp::List<>;
4514};
4515template <> struct node_from_variant_t<165> { using type = SgAsmElfSectionTableEntry; };
4516
4517// Class: AsmElfSegmentTable
4519 using node = SgAsmElfSegmentTable;
4520 using base = SgAsmGenericSection;
4521 static constexpr char const * const name{"AsmElfSegmentTable"};
4522 static constexpr unsigned long variant{166};
4523 static constexpr bool concrete{true};
4524 using subclasses_t = mp::List<>;
4525 using fields_t = mp::List<>;
4526};
4527template <> struct node_from_variant_t<166> { using type = SgAsmElfSegmentTable; };
4528
4529// Class: AsmElfSegmentTableEntry
4530template <> struct describe_field_t<SgAsmElfSegmentTableEntry,size_t,&SgAsmElfSegmentTableEntry::p_index> {
4532 using field_type = size_t;
4533 static constexpr size_t position{0};
4534 static constexpr char const * const name{"index"};
4535 static constexpr char const * const typestr{"size_t"};
4536 static constexpr bool traverse{false};
4537 static constexpr auto mbr_ptr{&SgAsmElfSegmentTableEntry::p_index};
4538 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4539 using bind = Desc<SgAsmElfSegmentTableEntry, size_t SgAsmElfSegmentTableEntry::*, &SgAsmElfSegmentTableEntry::p_index>;
4540};
4541template <> struct describe_field_t<SgAsmElfSegmentTableEntry,SgAsmElfSegmentTableEntry::SegmentType,&SgAsmElfSegmentTableEntry::p_type> {
4544 static constexpr size_t position{1};
4545 static constexpr char const * const name{"type"};
4546 static constexpr char const * const typestr{"SgAsmElfSegmentTableEntry::SegmentType"};
4547 static constexpr bool traverse{false};
4548 static constexpr auto mbr_ptr{&SgAsmElfSegmentTableEntry::p_type};
4549 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4550 using bind = Desc<SgAsmElfSegmentTableEntry, SgAsmElfSegmentTableEntry::SegmentType SgAsmElfSegmentTableEntry::*, &SgAsmElfSegmentTableEntry::p_type>;
4551};
4552template <> struct describe_field_t<SgAsmElfSegmentTableEntry,SgAsmElfSegmentTableEntry::SegmentFlags,&SgAsmElfSegmentTableEntry::p_flags> {
4555 static constexpr size_t position{2};
4556 static constexpr char const * const name{"flags"};
4557 static constexpr char const * const typestr{"SgAsmElfSegmentTableEntry::SegmentFlags"};
4558 static constexpr bool traverse{false};
4559 static constexpr auto mbr_ptr{&SgAsmElfSegmentTableEntry::p_flags};
4560 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4561 using bind = Desc<SgAsmElfSegmentTableEntry, SgAsmElfSegmentTableEntry::SegmentFlags SgAsmElfSegmentTableEntry::*, &SgAsmElfSegmentTableEntry::p_flags>;
4562};
4563template <> struct describe_field_t<SgAsmElfSegmentTableEntry,Rose::BinaryAnalysis::Address,&SgAsmElfSegmentTableEntry::p_offset> {
4565 using field_type = Rose::BinaryAnalysis::Address;
4566 static constexpr size_t position{3};
4567 static constexpr char const * const name{"offset"};
4568 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
4569 static constexpr bool traverse{false};
4570 static constexpr auto mbr_ptr{&SgAsmElfSegmentTableEntry::p_offset};
4571 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4572 using bind = Desc<SgAsmElfSegmentTableEntry, Rose::BinaryAnalysis::Address SgAsmElfSegmentTableEntry::*, &SgAsmElfSegmentTableEntry::p_offset>;
4573};
4574template <> struct describe_field_t<SgAsmElfSegmentTableEntry,Rose::BinaryAnalysis::Address,&SgAsmElfSegmentTableEntry::p_vaddr> {
4576 using field_type = Rose::BinaryAnalysis::Address;
4577 static constexpr size_t position{4};
4578 static constexpr char const * const name{"vaddr"};
4579 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
4580 static constexpr bool traverse{false};
4581 static constexpr auto mbr_ptr{&SgAsmElfSegmentTableEntry::p_vaddr};
4582 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4583 using bind = Desc<SgAsmElfSegmentTableEntry, Rose::BinaryAnalysis::Address SgAsmElfSegmentTableEntry::*, &SgAsmElfSegmentTableEntry::p_vaddr>;
4584};
4585template <> struct describe_field_t<SgAsmElfSegmentTableEntry,Rose::BinaryAnalysis::Address,&SgAsmElfSegmentTableEntry::p_paddr> {
4587 using field_type = Rose::BinaryAnalysis::Address;
4588 static constexpr size_t position{5};
4589 static constexpr char const * const name{"paddr"};
4590 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
4591 static constexpr bool traverse{false};
4592 static constexpr auto mbr_ptr{&SgAsmElfSegmentTableEntry::p_paddr};
4593 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4594 using bind = Desc<SgAsmElfSegmentTableEntry, Rose::BinaryAnalysis::Address SgAsmElfSegmentTableEntry::*, &SgAsmElfSegmentTableEntry::p_paddr>;
4595};
4596template <> struct describe_field_t<SgAsmElfSegmentTableEntry,Rose::BinaryAnalysis::Address,&SgAsmElfSegmentTableEntry::p_filesz> {
4598 using field_type = Rose::BinaryAnalysis::Address;
4599 static constexpr size_t position{6};
4600 static constexpr char const * const name{"filesz"};
4601 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
4602 static constexpr bool traverse{false};
4603 static constexpr auto mbr_ptr{&SgAsmElfSegmentTableEntry::p_filesz};
4604 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4605 using bind = Desc<SgAsmElfSegmentTableEntry, Rose::BinaryAnalysis::Address SgAsmElfSegmentTableEntry::*, &SgAsmElfSegmentTableEntry::p_filesz>;
4606};
4607template <> struct describe_field_t<SgAsmElfSegmentTableEntry,Rose::BinaryAnalysis::Address,&SgAsmElfSegmentTableEntry::p_memsz> {
4609 using field_type = Rose::BinaryAnalysis::Address;
4610 static constexpr size_t position{7};
4611 static constexpr char const * const name{"memsz"};
4612 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
4613 static constexpr bool traverse{false};
4614 static constexpr auto mbr_ptr{&SgAsmElfSegmentTableEntry::p_memsz};
4615 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4616 using bind = Desc<SgAsmElfSegmentTableEntry, Rose::BinaryAnalysis::Address SgAsmElfSegmentTableEntry::*, &SgAsmElfSegmentTableEntry::p_memsz>;
4617};
4618template <> struct describe_field_t<SgAsmElfSegmentTableEntry,Rose::BinaryAnalysis::Address,&SgAsmElfSegmentTableEntry::p_align> {
4620 using field_type = Rose::BinaryAnalysis::Address;
4621 static constexpr size_t position{8};
4622 static constexpr char const * const name{"align"};
4623 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
4624 static constexpr bool traverse{false};
4625 static constexpr auto mbr_ptr{&SgAsmElfSegmentTableEntry::p_align};
4626 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4627 using bind = Desc<SgAsmElfSegmentTableEntry, Rose::BinaryAnalysis::Address SgAsmElfSegmentTableEntry::*, &SgAsmElfSegmentTableEntry::p_align>;
4628};
4629template <> struct describe_field_t<SgAsmElfSegmentTableEntry,SgUnsignedCharList,&SgAsmElfSegmentTableEntry::p_extra> {
4631 using field_type = SgUnsignedCharList;
4632 static constexpr size_t position{9};
4633 static constexpr char const * const name{"extra"};
4634 static constexpr char const * const typestr{"SgUnsignedCharList"};
4635 static constexpr bool traverse{false};
4636 static constexpr auto mbr_ptr{&SgAsmElfSegmentTableEntry::p_extra};
4637 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4638 using bind = Desc<SgAsmElfSegmentTableEntry, SgUnsignedCharList SgAsmElfSegmentTableEntry::*, &SgAsmElfSegmentTableEntry::p_extra>;
4639};
4649template <> struct node_from_variant_t<167> { using type = SgAsmElfSegmentTableEntry; };
4650
4651// Class: AsmElfSegmentTableEntryList
4652template <> struct describe_field_t<SgAsmElfSegmentTableEntryList,SgAsmElfSegmentTableEntryPtrList,&SgAsmElfSegmentTableEntryList::p_entries> {
4654 using field_type = SgAsmElfSegmentTableEntryPtrList;
4655 static constexpr size_t position{0};
4656 static constexpr char const * const name{"entries"};
4657 static constexpr char const * const typestr{"SgAsmElfSegmentTableEntryPtrList"};
4658 static constexpr bool traverse{true};
4659 static constexpr auto mbr_ptr{&SgAsmElfSegmentTableEntryList::p_entries};
4660 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4661 using bind = Desc<SgAsmElfSegmentTableEntryList, SgAsmElfSegmentTableEntryPtrList SgAsmElfSegmentTableEntryList::*, &SgAsmElfSegmentTableEntryList::p_entries>;
4662};
4666 static constexpr char const * const name{"AsmElfSegmentTableEntryList"};
4667 static constexpr unsigned long variant{168};
4668 static constexpr bool concrete{true};
4669 using subclasses_t = mp::List<>;
4671};
4672template <> struct node_from_variant_t<168> { using type = SgAsmElfSegmentTableEntryList; };
4673
4674// Class: AsmElfStringSection
4675template <> struct describe_field_t<SgAsmElfStringSection,SgAsmElfStrtab*,&SgAsmElfStringSection::p_strtab> {
4677 using field_type = SgAsmElfStrtab*;
4678 static constexpr size_t position{0};
4679 static constexpr char const * const name{"strtab"};
4680 static constexpr char const * const typestr{"SgAsmElfStrtab*"};
4681 static constexpr bool traverse{false};
4682 static constexpr auto mbr_ptr{&SgAsmElfStringSection::p_strtab};
4683 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4684 using bind = Desc<SgAsmElfStringSection, SgAsmElfStrtab* SgAsmElfStringSection::*, &SgAsmElfStringSection::p_strtab>;
4685};
4688 using base = SgAsmElfSection;
4689 static constexpr char const * const name{"AsmElfStringSection"};
4690 static constexpr unsigned long variant{169};
4691 static constexpr bool concrete{true};
4692 using subclasses_t = mp::List<>;
4694};
4695template <> struct node_from_variant_t<169> { using type = SgAsmElfStringSection; };
4696
4697// Class: AsmElfStrtab
4698template <> struct describe_node_t<SgAsmElfStrtab> {
4699 using node = SgAsmElfStrtab;
4700 using base = SgAsmGenericStrtab;
4701 static constexpr char const * const name{"AsmElfStrtab"};
4702 static constexpr unsigned long variant{170};
4703 static constexpr bool concrete{true};
4704 using subclasses_t = mp::List<>;
4705 using fields_t = mp::List<>;
4706};
4707template <> struct node_from_variant_t<170> { using type = SgAsmElfStrtab; };
4708
4709// Class: AsmElfSymbol
4710template <> struct describe_field_t<SgAsmElfSymbol,unsigned char,&SgAsmElfSymbol::p_st_info> {
4711 using parent = SgAsmElfSymbol;
4712 using field_type = unsigned char;
4713 static constexpr size_t position{0};
4714 static constexpr char const * const name{"st_info"};
4715 static constexpr char const * const typestr{"unsigned char"};
4716 static constexpr bool traverse{false};
4717 static constexpr auto mbr_ptr{&SgAsmElfSymbol::p_st_info};
4718 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4719 using bind = Desc<SgAsmElfSymbol, unsigned char SgAsmElfSymbol::*, &SgAsmElfSymbol::p_st_info>;
4720};
4721template <> struct describe_field_t<SgAsmElfSymbol,unsigned char,&SgAsmElfSymbol::p_st_res1> {
4722 using parent = SgAsmElfSymbol;
4723 using field_type = unsigned char;
4724 static constexpr size_t position{1};
4725 static constexpr char const * const name{"st_res1"};
4726 static constexpr char const * const typestr{"unsigned char"};
4727 static constexpr bool traverse{false};
4728 static constexpr auto mbr_ptr{&SgAsmElfSymbol::p_st_res1};
4729 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4730 using bind = Desc<SgAsmElfSymbol, unsigned char SgAsmElfSymbol::*, &SgAsmElfSymbol::p_st_res1>;
4731};
4732template <> struct describe_field_t<SgAsmElfSymbol,unsigned,&SgAsmElfSymbol::p_st_shndx> {
4733 using parent = SgAsmElfSymbol;
4734 using field_type = unsigned;
4735 static constexpr size_t position{2};
4736 static constexpr char const * const name{"st_shndx"};
4737 static constexpr char const * const typestr{"unsigned"};
4738 static constexpr bool traverse{false};
4739 static constexpr auto mbr_ptr{&SgAsmElfSymbol::p_st_shndx};
4740 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4741 using bind = Desc<SgAsmElfSymbol, unsigned SgAsmElfSymbol::*, &SgAsmElfSymbol::p_st_shndx>;
4742};
4743template <> struct describe_field_t<SgAsmElfSymbol,Rose::BinaryAnalysis::Address,&SgAsmElfSymbol::p_st_size> {
4744 using parent = SgAsmElfSymbol;
4745 using field_type = Rose::BinaryAnalysis::Address;
4746 static constexpr size_t position{3};
4747 static constexpr char const * const name{"st_size"};
4748 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
4749 static constexpr bool traverse{false};
4750 static constexpr auto mbr_ptr{&SgAsmElfSymbol::p_st_size};
4751 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4752 using bind = Desc<SgAsmElfSymbol, Rose::BinaryAnalysis::Address SgAsmElfSymbol::*, &SgAsmElfSymbol::p_st_size>;
4753};
4754template <> struct describe_field_t<SgAsmElfSymbol,SgUnsignedCharList,&SgAsmElfSymbol::p_extra> {
4755 using parent = SgAsmElfSymbol;
4756 using field_type = SgUnsignedCharList;
4757 static constexpr size_t position{4};
4758 static constexpr char const * const name{"extra"};
4759 static constexpr char const * const typestr{"SgUnsignedCharList"};
4760 static constexpr bool traverse{false};
4761 static constexpr auto mbr_ptr{&SgAsmElfSymbol::p_extra};
4762 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4763 using bind = Desc<SgAsmElfSymbol, SgUnsignedCharList SgAsmElfSymbol::*, &SgAsmElfSymbol::p_extra>;
4764};
4774template <> struct node_from_variant_t<171> { using type = SgAsmElfSymbol; };
4775
4776// Class: AsmElfSymbolList
4777template <> struct describe_field_t<SgAsmElfSymbolList,SgAsmElfSymbolPtrList,&SgAsmElfSymbolList::p_symbols> {
4778 using parent = SgAsmElfSymbolList;
4779 using field_type = SgAsmElfSymbolPtrList;
4780 static constexpr size_t position{0};
4781 static constexpr char const * const name{"symbols"};
4782 static constexpr char const * const typestr{"SgAsmElfSymbolPtrList"};
4783 static constexpr bool traverse{true};
4784 static constexpr auto mbr_ptr{&SgAsmElfSymbolList::p_symbols};
4785 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4786 using bind = Desc<SgAsmElfSymbolList, SgAsmElfSymbolPtrList SgAsmElfSymbolList::*, &SgAsmElfSymbolList::p_symbols>;
4787};
4789 using node = SgAsmElfSymbolList;
4791 static constexpr char const * const name{"AsmElfSymbolList"};
4792 static constexpr unsigned long variant{172};
4793 static constexpr bool concrete{true};
4794 using subclasses_t = mp::List<>;
4796};
4797template <> struct node_from_variant_t<172> { using type = SgAsmElfSymbolList; };
4798
4799// Class: AsmElfSymbolSection
4800template <> struct describe_field_t<SgAsmElfSymbolSection,bool,&SgAsmElfSymbolSection::p_isDynamic> {
4802 using field_type = bool;
4803 static constexpr size_t position{0};
4804 static constexpr char const * const name{"isDynamic"};
4805 static constexpr char const * const typestr{"bool"};
4806 static constexpr bool traverse{false};
4807 static constexpr auto mbr_ptr{&SgAsmElfSymbolSection::p_isDynamic};
4808 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4809 using bind = Desc<SgAsmElfSymbolSection, bool SgAsmElfSymbolSection::*, &SgAsmElfSymbolSection::p_isDynamic>;
4810};
4811template <> struct describe_field_t<SgAsmElfSymbolSection,SgAsmElfSymbolList*,&SgAsmElfSymbolSection::p_symbols> {
4814 static constexpr size_t position{1};
4815 static constexpr char const * const name{"symbols"};
4816 static constexpr char const * const typestr{"SgAsmElfSymbolList*"};
4817 static constexpr bool traverse{true};
4818 static constexpr auto mbr_ptr{&SgAsmElfSymbolSection::p_symbols};
4819 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4820 using bind = Desc<SgAsmElfSymbolSection, SgAsmElfSymbolList* SgAsmElfSymbolSection::*, &SgAsmElfSymbolSection::p_symbols>;
4821};
4824 using base = SgAsmElfSection;
4825 static constexpr char const * const name{"AsmElfSymbolSection"};
4826 static constexpr unsigned long variant{173};
4827 static constexpr bool concrete{true};
4828 using subclasses_t = mp::List<>;
4830};
4831template <> struct node_from_variant_t<173> { using type = SgAsmElfSymbolSection; };
4832
4833// Class: AsmElfSymverDefinedAux
4834template <> struct describe_field_t<SgAsmElfSymverDefinedAux,SgAsmGenericString*,&SgAsmElfSymverDefinedAux::p_name> {
4837 static constexpr size_t position{0};
4838 static constexpr char const * const name{"name"};
4839 static constexpr char const * const typestr{"SgAsmGenericString*"};
4840 static constexpr bool traverse{true};
4841 static constexpr auto mbr_ptr{&SgAsmElfSymverDefinedAux::p_name};
4842 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4843 using bind = Desc<SgAsmElfSymverDefinedAux, SgAsmGenericString* SgAsmElfSymverDefinedAux::*, &SgAsmElfSymverDefinedAux::p_name>;
4844};
4848 static constexpr char const * const name{"AsmElfSymverDefinedAux"};
4849 static constexpr unsigned long variant{174};
4850 static constexpr bool concrete{true};
4851 using subclasses_t = mp::List<>;
4853};
4854template <> struct node_from_variant_t<174> { using type = SgAsmElfSymverDefinedAux; };
4855
4856// Class: AsmElfSymverDefinedAuxList
4857template <> struct describe_field_t<SgAsmElfSymverDefinedAuxList,SgAsmElfSymverDefinedAuxPtrList,&SgAsmElfSymverDefinedAuxList::p_entries> {
4859 using field_type = SgAsmElfSymverDefinedAuxPtrList;
4860 static constexpr size_t position{0};
4861 static constexpr char const * const name{"entries"};
4862 static constexpr char const * const typestr{"SgAsmElfSymverDefinedAuxPtrList"};
4863 static constexpr bool traverse{true};
4864 static constexpr auto mbr_ptr{&SgAsmElfSymverDefinedAuxList::p_entries};
4865 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4866 using bind = Desc<SgAsmElfSymverDefinedAuxList, SgAsmElfSymverDefinedAuxPtrList SgAsmElfSymverDefinedAuxList::*, &SgAsmElfSymverDefinedAuxList::p_entries>;
4867};
4871 static constexpr char const * const name{"AsmElfSymverDefinedAuxList"};
4872 static constexpr unsigned long variant{175};
4873 static constexpr bool concrete{true};
4874 using subclasses_t = mp::List<>;
4876};
4877template <> struct node_from_variant_t<175> { using type = SgAsmElfSymverDefinedAuxList; };
4878
4879// Class: AsmElfSymverDefinedEntry
4880template <> struct describe_field_t<SgAsmElfSymverDefinedEntry,size_t,&SgAsmElfSymverDefinedEntry::p_version> {
4882 using field_type = size_t;
4883 static constexpr size_t position{0};
4884 static constexpr char const * const name{"version"};
4885 static constexpr char const * const typestr{"size_t"};
4886 static constexpr bool traverse{false};
4887 static constexpr auto mbr_ptr{&SgAsmElfSymverDefinedEntry::p_version};
4888 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4889 using bind = Desc<SgAsmElfSymverDefinedEntry, size_t SgAsmElfSymverDefinedEntry::*, &SgAsmElfSymverDefinedEntry::p_version>;
4890};
4891template <> struct describe_field_t<SgAsmElfSymverDefinedEntry,int,&SgAsmElfSymverDefinedEntry::p_flags> {
4893 using field_type = int;
4894 static constexpr size_t position{1};
4895 static constexpr char const * const name{"flags"};
4896 static constexpr char const * const typestr{"int"};
4897 static constexpr bool traverse{false};
4898 static constexpr auto mbr_ptr{&SgAsmElfSymverDefinedEntry::p_flags};
4899 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4900 using bind = Desc<SgAsmElfSymverDefinedEntry, int SgAsmElfSymverDefinedEntry::*, &SgAsmElfSymverDefinedEntry::p_flags>;
4901};
4902template <> struct describe_field_t<SgAsmElfSymverDefinedEntry,size_t,&SgAsmElfSymverDefinedEntry::p_index> {
4904 using field_type = size_t;
4905 static constexpr size_t position{2};
4906 static constexpr char const * const name{"index"};
4907 static constexpr char const * const typestr{"size_t"};
4908 static constexpr bool traverse{false};
4909 static constexpr auto mbr_ptr{&SgAsmElfSymverDefinedEntry::p_index};
4910 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4911 using bind = Desc<SgAsmElfSymverDefinedEntry, size_t SgAsmElfSymverDefinedEntry::*, &SgAsmElfSymverDefinedEntry::p_index>;
4912};
4913template <> struct describe_field_t<SgAsmElfSymverDefinedEntry,uint32_t,&SgAsmElfSymverDefinedEntry::p_hash> {
4915 using field_type = uint32_t;
4916 static constexpr size_t position{3};
4917 static constexpr char const * const name{"hash"};
4918 static constexpr char const * const typestr{"uint32_t"};
4919 static constexpr bool traverse{false};
4920 static constexpr auto mbr_ptr{&SgAsmElfSymverDefinedEntry::p_hash};
4921 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4922 using bind = Desc<SgAsmElfSymverDefinedEntry, uint32_t SgAsmElfSymverDefinedEntry::*, &SgAsmElfSymverDefinedEntry::p_hash>;
4923};
4924template <> struct describe_field_t<SgAsmElfSymverDefinedEntry,SgAsmElfSymverDefinedAuxList*,&SgAsmElfSymverDefinedEntry::p_entries> {
4927 static constexpr size_t position{4};
4928 static constexpr char const * const name{"entries"};
4929 static constexpr char const * const typestr{"SgAsmElfSymverDefinedAuxList*"};
4930 static constexpr bool traverse{true};
4931 static constexpr auto mbr_ptr{&SgAsmElfSymverDefinedEntry::p_entries};
4932 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4933 using bind = Desc<SgAsmElfSymverDefinedEntry, SgAsmElfSymverDefinedAuxList* SgAsmElfSymverDefinedEntry::*, &SgAsmElfSymverDefinedEntry::p_entries>;
4934};
4944template <> struct node_from_variant_t<176> { using type = SgAsmElfSymverDefinedEntry; };
4945
4946// Class: AsmElfSymverDefinedEntryList
4947template <> struct describe_field_t<SgAsmElfSymverDefinedEntryList,SgAsmElfSymverDefinedEntryPtrList,&SgAsmElfSymverDefinedEntryList::p_entries> {
4949 using field_type = SgAsmElfSymverDefinedEntryPtrList;
4950 static constexpr size_t position{0};
4951 static constexpr char const * const name{"entries"};
4952 static constexpr char const * const typestr{"SgAsmElfSymverDefinedEntryPtrList"};
4953 static constexpr bool traverse{true};
4954 static constexpr auto mbr_ptr{&SgAsmElfSymverDefinedEntryList::p_entries};
4955 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4956 using bind = Desc<SgAsmElfSymverDefinedEntryList, SgAsmElfSymverDefinedEntryPtrList SgAsmElfSymverDefinedEntryList::*, &SgAsmElfSymverDefinedEntryList::p_entries>;
4957};
4961 static constexpr char const * const name{"AsmElfSymverDefinedEntryList"};
4962 static constexpr unsigned long variant{177};
4963 static constexpr bool concrete{true};
4964 using subclasses_t = mp::List<>;
4966};
4967template <> struct node_from_variant_t<177> { using type = SgAsmElfSymverDefinedEntryList; };
4968
4969// Class: AsmElfSymverDefinedSection
4970template <> struct describe_field_t<SgAsmElfSymverDefinedSection,SgAsmElfSymverDefinedEntryList*,&SgAsmElfSymverDefinedSection::p_entries> {
4973 static constexpr size_t position{0};
4974 static constexpr char const * const name{"entries"};
4975 static constexpr char const * const typestr{"SgAsmElfSymverDefinedEntryList*"};
4976 static constexpr bool traverse{true};
4977 static constexpr auto mbr_ptr{&SgAsmElfSymverDefinedSection::p_entries};
4978 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
4979 using bind = Desc<SgAsmElfSymverDefinedSection, SgAsmElfSymverDefinedEntryList* SgAsmElfSymverDefinedSection::*, &SgAsmElfSymverDefinedSection::p_entries>;
4980};
4983 using base = SgAsmElfSection;
4984 static constexpr char const * const name{"AsmElfSymverDefinedSection"};
4985 static constexpr unsigned long variant{178};
4986 static constexpr bool concrete{true};
4987 using subclasses_t = mp::List<>;
4989};
4990template <> struct node_from_variant_t<178> { using type = SgAsmElfSymverDefinedSection; };
4991
4992// Class: AsmElfSymverEntry
4993template <> struct describe_field_t<SgAsmElfSymverEntry,size_t,&SgAsmElfSymverEntry::p_value> {
4995 using field_type = size_t;
4996 static constexpr size_t position{0};
4997 static constexpr char const * const name{"value"};
4998 static constexpr char const * const typestr{"size_t"};
4999 static constexpr bool traverse{false};
5000 static constexpr auto mbr_ptr{&SgAsmElfSymverEntry::p_value};
5001 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5002 using bind = Desc<SgAsmElfSymverEntry, size_t SgAsmElfSymverEntry::*, &SgAsmElfSymverEntry::p_value>;
5003};
5005 using node = SgAsmElfSymverEntry;
5007 static constexpr char const * const name{"AsmElfSymverEntry"};
5008 static constexpr unsigned long variant{179};
5009 static constexpr bool concrete{true};
5010 using subclasses_t = mp::List<>;
5012};
5013template <> struct node_from_variant_t<179> { using type = SgAsmElfSymverEntry; };
5014
5015// Class: AsmElfSymverEntryList
5016template <> struct describe_field_t<SgAsmElfSymverEntryList,SgAsmElfSymverEntryPtrList,&SgAsmElfSymverEntryList::p_entries> {
5018 using field_type = SgAsmElfSymverEntryPtrList;
5019 static constexpr size_t position{0};
5020 static constexpr char const * const name{"entries"};
5021 static constexpr char const * const typestr{"SgAsmElfSymverEntryPtrList"};
5022 static constexpr bool traverse{true};
5023 static constexpr auto mbr_ptr{&SgAsmElfSymverEntryList::p_entries};
5024 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5025 using bind = Desc<SgAsmElfSymverEntryList, SgAsmElfSymverEntryPtrList SgAsmElfSymverEntryList::*, &SgAsmElfSymverEntryList::p_entries>;
5026};
5030 static constexpr char const * const name{"AsmElfSymverEntryList"};
5031 static constexpr unsigned long variant{180};
5032 static constexpr bool concrete{true};
5033 using subclasses_t = mp::List<>;
5035};
5036template <> struct node_from_variant_t<180> { using type = SgAsmElfSymverEntryList; };
5037
5038// Class: AsmElfSymverNeededAux
5039template <> struct describe_field_t<SgAsmElfSymverNeededAux,uint32_t,&SgAsmElfSymverNeededAux::p_hash> {
5041 using field_type = uint32_t;
5042 static constexpr size_t position{0};
5043 static constexpr char const * const name{"hash"};
5044 static constexpr char const * const typestr{"uint32_t"};
5045 static constexpr bool traverse{false};
5046 static constexpr auto mbr_ptr{&SgAsmElfSymverNeededAux::p_hash};
5047 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5048 using bind = Desc<SgAsmElfSymverNeededAux, uint32_t SgAsmElfSymverNeededAux::*, &SgAsmElfSymverNeededAux::p_hash>;
5049};
5050template <> struct describe_field_t<SgAsmElfSymverNeededAux,int,&SgAsmElfSymverNeededAux::p_flags> {
5052 using field_type = int;
5053 static constexpr size_t position{1};
5054 static constexpr char const * const name{"flags"};
5055 static constexpr char const * const typestr{"int"};
5056 static constexpr bool traverse{false};
5057 static constexpr auto mbr_ptr{&SgAsmElfSymverNeededAux::p_flags};
5058 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5059 using bind = Desc<SgAsmElfSymverNeededAux, int SgAsmElfSymverNeededAux::*, &SgAsmElfSymverNeededAux::p_flags>;
5060};
5061template <> struct describe_field_t<SgAsmElfSymverNeededAux,size_t,&SgAsmElfSymverNeededAux::p_other> {
5063 using field_type = size_t;
5064 static constexpr size_t position{2};
5065 static constexpr char const * const name{"other"};
5066 static constexpr char const * const typestr{"size_t"};
5067 static constexpr bool traverse{false};
5068 static constexpr auto mbr_ptr{&SgAsmElfSymverNeededAux::p_other};
5069 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5070 using bind = Desc<SgAsmElfSymverNeededAux, size_t SgAsmElfSymverNeededAux::*, &SgAsmElfSymverNeededAux::p_other>;
5071};
5072template <> struct describe_field_t<SgAsmElfSymverNeededAux,SgAsmGenericString*,&SgAsmElfSymverNeededAux::p_name> {
5075 static constexpr size_t position{3};
5076 static constexpr char const * const name{"name"};
5077 static constexpr char const * const typestr{"SgAsmGenericString*"};
5078 static constexpr bool traverse{true};
5079 static constexpr auto mbr_ptr{&SgAsmElfSymverNeededAux::p_name};
5080 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5081 using bind = Desc<SgAsmElfSymverNeededAux, SgAsmGenericString* SgAsmElfSymverNeededAux::*, &SgAsmElfSymverNeededAux::p_name>;
5082};
5092template <> struct node_from_variant_t<181> { using type = SgAsmElfSymverNeededAux; };
5093
5094// Class: AsmElfSymverNeededAuxList
5095template <> struct describe_field_t<SgAsmElfSymverNeededAuxList,SgAsmElfSymverNeededAuxPtrList,&SgAsmElfSymverNeededAuxList::p_entries> {
5097 using field_type = SgAsmElfSymverNeededAuxPtrList;
5098 static constexpr size_t position{0};
5099 static constexpr char const * const name{"entries"};
5100 static constexpr char const * const typestr{"SgAsmElfSymverNeededAuxPtrList"};
5101 static constexpr bool traverse{true};
5102 static constexpr auto mbr_ptr{&SgAsmElfSymverNeededAuxList::p_entries};
5103 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5104 using bind = Desc<SgAsmElfSymverNeededAuxList, SgAsmElfSymverNeededAuxPtrList SgAsmElfSymverNeededAuxList::*, &SgAsmElfSymverNeededAuxList::p_entries>;
5105};
5109 static constexpr char const * const name{"AsmElfSymverNeededAuxList"};
5110 static constexpr unsigned long variant{182};
5111 static constexpr bool concrete{true};
5112 using subclasses_t = mp::List<>;
5114};
5115template <> struct node_from_variant_t<182> { using type = SgAsmElfSymverNeededAuxList; };
5116
5117// Class: AsmElfSymverNeededEntry
5118template <> struct describe_field_t<SgAsmElfSymverNeededEntry,size_t,&SgAsmElfSymverNeededEntry::p_version> {
5120 using field_type = size_t;
5121 static constexpr size_t position{0};
5122 static constexpr char const * const name{"version"};
5123 static constexpr char const * const typestr{"size_t"};
5124 static constexpr bool traverse{false};
5125 static constexpr auto mbr_ptr{&SgAsmElfSymverNeededEntry::p_version};
5126 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5127 using bind = Desc<SgAsmElfSymverNeededEntry, size_t SgAsmElfSymverNeededEntry::*, &SgAsmElfSymverNeededEntry::p_version>;
5128};
5129template <> struct describe_field_t<SgAsmElfSymverNeededEntry,SgAsmGenericString*,&SgAsmElfSymverNeededEntry::p_fileName> {
5132 static constexpr size_t position{1};
5133 static constexpr char const * const name{"fileName"};
5134 static constexpr char const * const typestr{"SgAsmGenericString*"};
5135 static constexpr bool traverse{true};
5136 static constexpr auto mbr_ptr{&SgAsmElfSymverNeededEntry::p_fileName};
5137 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5138 using bind = Desc<SgAsmElfSymverNeededEntry, SgAsmGenericString* SgAsmElfSymverNeededEntry::*, &SgAsmElfSymverNeededEntry::p_fileName>;
5139};
5140template <> struct describe_field_t<SgAsmElfSymverNeededEntry,SgAsmElfSymverNeededAuxList*,&SgAsmElfSymverNeededEntry::p_entries> {
5143 static constexpr size_t position{2};
5144 static constexpr char const * const name{"entries"};
5145 static constexpr char const * const typestr{"SgAsmElfSymverNeededAuxList*"};
5146 static constexpr bool traverse{true};
5147 static constexpr auto mbr_ptr{&SgAsmElfSymverNeededEntry::p_entries};
5148 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5149 using bind = Desc<SgAsmElfSymverNeededEntry, SgAsmElfSymverNeededAuxList* SgAsmElfSymverNeededEntry::*, &SgAsmElfSymverNeededEntry::p_entries>;
5150};
5160template <> struct node_from_variant_t<183> { using type = SgAsmElfSymverNeededEntry; };
5161
5162// Class: AsmElfSymverNeededEntryList
5163template <> struct describe_field_t<SgAsmElfSymverNeededEntryList,SgAsmElfSymverNeededEntryPtrList,&SgAsmElfSymverNeededEntryList::p_entries> {
5165 using field_type = SgAsmElfSymverNeededEntryPtrList;
5166 static constexpr size_t position{0};
5167 static constexpr char const * const name{"entries"};
5168 static constexpr char const * const typestr{"SgAsmElfSymverNeededEntryPtrList"};
5169 static constexpr bool traverse{true};
5170 static constexpr auto mbr_ptr{&SgAsmElfSymverNeededEntryList::p_entries};
5171 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5172 using bind = Desc<SgAsmElfSymverNeededEntryList, SgAsmElfSymverNeededEntryPtrList SgAsmElfSymverNeededEntryList::*, &SgAsmElfSymverNeededEntryList::p_entries>;
5173};
5177 static constexpr char const * const name{"AsmElfSymverNeededEntryList"};
5178 static constexpr unsigned long variant{184};
5179 static constexpr bool concrete{true};
5180 using subclasses_t = mp::List<>;
5182};
5183template <> struct node_from_variant_t<184> { using type = SgAsmElfSymverNeededEntryList; };
5184
5185// Class: AsmElfSymverNeededSection
5186template <> struct describe_field_t<SgAsmElfSymverNeededSection,SgAsmElfSymverNeededEntryList*,&SgAsmElfSymverNeededSection::p_entries> {
5189 static constexpr size_t position{0};
5190 static constexpr char const * const name{"entries"};
5191 static constexpr char const * const typestr{"SgAsmElfSymverNeededEntryList*"};
5192 static constexpr bool traverse{true};
5193 static constexpr auto mbr_ptr{&SgAsmElfSymverNeededSection::p_entries};
5194 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5195 using bind = Desc<SgAsmElfSymverNeededSection, SgAsmElfSymverNeededEntryList* SgAsmElfSymverNeededSection::*, &SgAsmElfSymverNeededSection::p_entries>;
5196};
5199 using base = SgAsmElfSection;
5200 static constexpr char const * const name{"AsmElfSymverNeededSection"};
5201 static constexpr unsigned long variant{185};
5202 static constexpr bool concrete{true};
5203 using subclasses_t = mp::List<>;
5205};
5206template <> struct node_from_variant_t<185> { using type = SgAsmElfSymverNeededSection; };
5207
5208// Class: AsmElfSymverSection
5209template <> struct describe_field_t<SgAsmElfSymverSection,SgAsmElfSymverEntryList*,&SgAsmElfSymverSection::p_entries> {
5212 static constexpr size_t position{0};
5213 static constexpr char const * const name{"entries"};
5214 static constexpr char const * const typestr{"SgAsmElfSymverEntryList*"};
5215 static constexpr bool traverse{true};
5216 static constexpr auto mbr_ptr{&SgAsmElfSymverSection::p_entries};
5217 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5218 using bind = Desc<SgAsmElfSymverSection, SgAsmElfSymverEntryList* SgAsmElfSymverSection::*, &SgAsmElfSymverSection::p_entries>;
5219};
5222 using base = SgAsmElfSection;
5223 static constexpr char const * const name{"AsmElfSymverSection"};
5224 static constexpr unsigned long variant{186};
5225 static constexpr bool concrete{true};
5226 using subclasses_t = mp::List<>;
5228};
5229template <> struct node_from_variant_t<186> { using type = SgAsmElfSymverSection; };
5230
5231// Class: AsmExecutableFileFormat
5234 using base = SgAsmNode;
5235 static constexpr char const * const name{"AsmExecutableFileFormat"};
5236 static constexpr unsigned long variant{187};
5237 static constexpr bool concrete{false};
5239 using fields_t = mp::List<>;
5240};
5241template <> struct node_from_variant_t<187> { using type = SgAsmExecutableFileFormat; };
5242
5243// Class: AsmExprListExp
5244template <> struct describe_field_t<SgAsmExprListExp,SgAsmExpressionPtrList,&SgAsmExprListExp::p_expressions> {
5245 using parent = SgAsmExprListExp;
5246 using field_type = SgAsmExpressionPtrList;
5247 static constexpr size_t position{0};
5248 static constexpr char const * const name{"expressions"};
5249 static constexpr char const * const typestr{"SgAsmExpressionPtrList"};
5250 static constexpr bool traverse{true};
5251 static constexpr auto mbr_ptr{&SgAsmExprListExp::p_expressions};
5252 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5253 using bind = Desc<SgAsmExprListExp, SgAsmExpressionPtrList SgAsmExprListExp::*, &SgAsmExprListExp::p_expressions>;
5254};
5256 using node = SgAsmExprListExp;
5257 using base = SgAsmExpression;
5258 static constexpr char const * const name{"AsmExprListExp"};
5259 static constexpr unsigned long variant{188};
5260 static constexpr bool concrete{true};
5261 using subclasses_t = mp::List<>;
5263};
5264template <> struct node_from_variant_t<188> { using type = SgAsmExprListExp; };
5265
5266// Class: AsmExpression
5267template <> struct describe_field_t<SgAsmExpression,SgAsmType*,&SgAsmExpression::p_type> {
5268 using parent = SgAsmExpression;
5269 using field_type = SgAsmType*;
5270 static constexpr size_t position{0};
5271 static constexpr char const * const name{"type"};
5272 static constexpr char const * const typestr{"SgAsmType*"};
5273 static constexpr bool traverse{false};
5274 static constexpr auto mbr_ptr{&SgAsmExpression::p_type};
5275 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5276 using bind = Desc<SgAsmExpression, SgAsmType* SgAsmExpression::*, &SgAsmExpression::p_type>;
5277};
5278template <> struct describe_field_t<SgAsmExpression,std::string,&SgAsmExpression::p_comment> {
5279 using parent = SgAsmExpression;
5280 using field_type = std::string;
5281 static constexpr size_t position{1};
5282 static constexpr char const * const name{"comment"};
5283 static constexpr char const * const typestr{"std::string"};
5284 static constexpr bool traverse{false};
5285 static constexpr auto mbr_ptr{&SgAsmExpression::p_comment};
5286 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5287 using bind = Desc<SgAsmExpression, std::string SgAsmExpression::*, &SgAsmExpression::p_comment>;
5288};
5298template <> struct node_from_variant_t<189> { using type = SgAsmExpression; };
5299
5300// Class: AsmSynthesizedFieldDeclaration
5301template <> struct describe_field_t<SgAsmSynthesizedFieldDeclaration,std::string,&SgAsmSynthesizedFieldDeclaration::p_name> {
5303 using field_type = std::string;
5304 static constexpr size_t position{0};
5305 static constexpr char const * const name{"name"};
5306 static constexpr char const * const typestr{"std::string"};
5307 static constexpr bool traverse{false};
5308 static constexpr auto mbr_ptr{&SgAsmSynthesizedFieldDeclaration::p_name};
5309 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5310 using bind = Desc<SgAsmSynthesizedFieldDeclaration, std::string SgAsmSynthesizedFieldDeclaration::*, &SgAsmSynthesizedFieldDeclaration::p_name>;
5311};
5312template <> struct describe_field_t<SgAsmSynthesizedFieldDeclaration,uint64_t,&SgAsmSynthesizedFieldDeclaration::p_offset> {
5314 using field_type = uint64_t;
5315 static constexpr size_t position{1};
5316 static constexpr char const * const name{"offset"};
5317 static constexpr char const * const typestr{"uint64_t"};
5318 static constexpr bool traverse{false};
5319 static constexpr auto mbr_ptr{&SgAsmSynthesizedFieldDeclaration::p_offset};
5320 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5321 using bind = Desc<SgAsmSynthesizedFieldDeclaration, uint64_t SgAsmSynthesizedFieldDeclaration::*, &SgAsmSynthesizedFieldDeclaration::p_offset>;
5322};
5326 static constexpr char const * const name{"AsmSynthesizedFieldDeclaration"};
5327 static constexpr unsigned long variant{190};
5328 static constexpr bool concrete{true};
5329 using subclasses_t = mp::List<>;
5331};
5332template <> struct node_from_variant_t<190> { using type = SgAsmSynthesizedFieldDeclaration; };
5333
5334// Class: AsmFloatType
5335template <> struct describe_field_t<SgAsmFloatType,size_t,&SgAsmFloatType::p_significandOffset> {
5336 using parent = SgAsmFloatType;
5337 using field_type = size_t;
5338 static constexpr size_t position{0};
5339 static constexpr char const * const name{"significandOffset"};
5340 static constexpr char const * const typestr{"size_t"};
5341 static constexpr bool traverse{false};
5342 static constexpr auto mbr_ptr{&SgAsmFloatType::p_significandOffset};
5343 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5344 using bind = Desc<SgAsmFloatType, size_t SgAsmFloatType::*, &SgAsmFloatType::p_significandOffset>;
5345};
5346template <> struct describe_field_t<SgAsmFloatType,size_t,&SgAsmFloatType::p_significandNBits> {
5347 using parent = SgAsmFloatType;
5348 using field_type = size_t;
5349 static constexpr size_t position{1};
5350 static constexpr char const * const name{"significandNBits"};
5351 static constexpr char const * const typestr{"size_t"};
5352 static constexpr bool traverse{false};
5353 static constexpr auto mbr_ptr{&SgAsmFloatType::p_significandNBits};
5354 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5355 using bind = Desc<SgAsmFloatType, size_t SgAsmFloatType::*, &SgAsmFloatType::p_significandNBits>;
5356};
5357template <> struct describe_field_t<SgAsmFloatType,size_t,&SgAsmFloatType::p_signBitOffset> {
5358 using parent = SgAsmFloatType;
5359 using field_type = size_t;
5360 static constexpr size_t position{2};
5361 static constexpr char const * const name{"signBitOffset"};
5362 static constexpr char const * const typestr{"size_t"};
5363 static constexpr bool traverse{false};
5364 static constexpr auto mbr_ptr{&SgAsmFloatType::p_signBitOffset};
5365 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5366 using bind = Desc<SgAsmFloatType, size_t SgAsmFloatType::*, &SgAsmFloatType::p_signBitOffset>;
5367};
5368template <> struct describe_field_t<SgAsmFloatType,size_t,&SgAsmFloatType::p_exponentOffset> {
5369 using parent = SgAsmFloatType;
5370 using field_type = size_t;
5371 static constexpr size_t position{3};
5372 static constexpr char const * const name{"exponentOffset"};
5373 static constexpr char const * const typestr{"size_t"};
5374 static constexpr bool traverse{false};
5375 static constexpr auto mbr_ptr{&SgAsmFloatType::p_exponentOffset};
5376 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5377 using bind = Desc<SgAsmFloatType, size_t SgAsmFloatType::*, &SgAsmFloatType::p_exponentOffset>;
5378};
5379template <> struct describe_field_t<SgAsmFloatType,size_t,&SgAsmFloatType::p_exponentNBits> {
5380 using parent = SgAsmFloatType;
5381 using field_type = size_t;
5382 static constexpr size_t position{4};
5383 static constexpr char const * const name{"exponentNBits"};
5384 static constexpr char const * const typestr{"size_t"};
5385 static constexpr bool traverse{false};
5386 static constexpr auto mbr_ptr{&SgAsmFloatType::p_exponentNBits};
5387 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5388 using bind = Desc<SgAsmFloatType, size_t SgAsmFloatType::*, &SgAsmFloatType::p_exponentNBits>;
5389};
5390template <> struct describe_field_t<SgAsmFloatType,uint64_t,&SgAsmFloatType::p_exponentBias> {
5391 using parent = SgAsmFloatType;
5392 using field_type = uint64_t;
5393 static constexpr size_t position{5};
5394 static constexpr char const * const name{"exponentBias"};
5395 static constexpr char const * const typestr{"uint64_t"};
5396 static constexpr bool traverse{false};
5397 static constexpr auto mbr_ptr{&SgAsmFloatType::p_exponentBias};
5398 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5399 using bind = Desc<SgAsmFloatType, uint64_t SgAsmFloatType::*, &SgAsmFloatType::p_exponentBias>;
5400};
5401template <> struct describe_field_t<SgAsmFloatType,unsigned,&SgAsmFloatType::p_flags> {
5402 using parent = SgAsmFloatType;
5403 using field_type = unsigned;
5404 static constexpr size_t position{6};
5405 static constexpr char const * const name{"flags"};
5406 static constexpr char const * const typestr{"unsigned"};
5407 static constexpr bool traverse{false};
5408 static constexpr auto mbr_ptr{&SgAsmFloatType::p_flags};
5409 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5410 using bind = Desc<SgAsmFloatType, unsigned SgAsmFloatType::*, &SgAsmFloatType::p_flags>;
5411};
5421template <> struct node_from_variant_t<191> { using type = SgAsmFloatType; };
5422
5423// Class: AsmFloatValueExpression
5427 static constexpr char const * const name{"AsmFloatValueExpression"};
5428 static constexpr unsigned long variant{192};
5429 static constexpr bool concrete{true};
5430 using subclasses_t = mp::List<>;
5431 using fields_t = mp::List<>;
5432};
5433template <> struct node_from_variant_t<192> { using type = SgAsmFloatValueExpression; };
5434
5435// Class: AsmFunction
5436template <> struct describe_field_t<SgAsmFunction,std::string,&SgAsmFunction::p_name> {
5437 using parent = SgAsmFunction;
5438 using field_type = std::string;
5439 static constexpr size_t position{0};
5440 static constexpr char const * const name{"name"};
5441 static constexpr char const * const typestr{"std::string"};
5442 static constexpr bool traverse{false};
5443 static constexpr auto mbr_ptr{&SgAsmFunction::p_name};
5444 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5445 using bind = Desc<SgAsmFunction, std::string SgAsmFunction::*, &SgAsmFunction::p_name>;
5446};
5447template <> struct describe_field_t<SgAsmFunction,unsigned,&SgAsmFunction::p_reason> {
5448 using parent = SgAsmFunction;
5449 using field_type = unsigned;
5450 static constexpr size_t position{1};
5451 static constexpr char const * const name{"reason"};
5452 static constexpr char const * const typestr{"unsigned"};
5453 static constexpr bool traverse{false};
5454 static constexpr auto mbr_ptr{&SgAsmFunction::p_reason};
5455 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5456 using bind = Desc<SgAsmFunction, unsigned SgAsmFunction::*, &SgAsmFunction::p_reason>;
5457};
5458template <> struct describe_field_t<SgAsmFunction,std::string,&SgAsmFunction::p_reasonComment> {
5459 using parent = SgAsmFunction;
5460 using field_type = std::string;
5461 static constexpr size_t position{2};
5462 static constexpr char const * const name{"reasonComment"};
5463 static constexpr char const * const typestr{"std::string"};
5464 static constexpr bool traverse{false};
5465 static constexpr auto mbr_ptr{&SgAsmFunction::p_reasonComment};
5466 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5467 using bind = Desc<SgAsmFunction, std::string SgAsmFunction::*, &SgAsmFunction::p_reasonComment>;
5468};
5469template <> struct describe_field_t<SgAsmFunction,SgAsmFunction::function_kind_enum,&SgAsmFunction::p_functionKind> {
5470 using parent = SgAsmFunction;
5472 static constexpr size_t position{3};
5473 static constexpr char const * const name{"functionKind"};
5474 static constexpr char const * const typestr{"SgAsmFunction::function_kind_enum"};
5475 static constexpr bool traverse{false};
5476 static constexpr auto mbr_ptr{&SgAsmFunction::p_functionKind};
5477 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5478 using bind = Desc<SgAsmFunction, SgAsmFunction::function_kind_enum SgAsmFunction::*, &SgAsmFunction::p_functionKind>;
5479};
5480template <> struct describe_field_t<SgAsmFunction,SgAsmFunction::MayReturn,&SgAsmFunction::p_mayReturn> {
5481 using parent = SgAsmFunction;
5483 static constexpr size_t position{4};
5484 static constexpr char const * const name{"mayReturn"};
5485 static constexpr char const * const typestr{"SgAsmFunction::MayReturn"};
5486 static constexpr bool traverse{false};
5487 static constexpr auto mbr_ptr{&SgAsmFunction::p_mayReturn};
5488 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5489 using bind = Desc<SgAsmFunction, SgAsmFunction::MayReturn SgAsmFunction::*, &SgAsmFunction::p_mayReturn>;
5490};
5491template <> struct describe_field_t<SgAsmFunction,std::string,&SgAsmFunction::p_nameMd5> {
5492 using parent = SgAsmFunction;
5493 using field_type = std::string;
5494 static constexpr size_t position{5};
5495 static constexpr char const * const name{"nameMd5"};
5496 static constexpr char const * const typestr{"std::string"};
5497 static constexpr bool traverse{false};
5498 static constexpr auto mbr_ptr{&SgAsmFunction::p_nameMd5};
5499 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5500 using bind = Desc<SgAsmFunction, std::string SgAsmFunction::*, &SgAsmFunction::p_nameMd5>;
5501};
5502template <> struct describe_field_t<SgAsmFunction,SgAsmStatementPtrList,&SgAsmFunction::p_statementList> {
5503 using parent = SgAsmFunction;
5504 using field_type = SgAsmStatementPtrList;
5505 static constexpr size_t position{6};
5506 static constexpr char const * const name{"statementList"};
5507 static constexpr char const * const typestr{"SgAsmStatementPtrList"};
5508 static constexpr bool traverse{true};
5509 static constexpr auto mbr_ptr{&SgAsmFunction::p_statementList};
5510 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5511 using bind = Desc<SgAsmFunction, SgAsmStatementPtrList SgAsmFunction::*, &SgAsmFunction::p_statementList>;
5512};
5513template <> struct describe_field_t<SgAsmFunction,SgAsmStatementPtrList,&SgAsmFunction::p_dest> {
5514 using parent = SgAsmFunction;
5515 using field_type = SgAsmStatementPtrList;
5516 static constexpr size_t position{7};
5517 static constexpr char const * const name{"dest"};
5518 static constexpr char const * const typestr{"SgAsmStatementPtrList"};
5519 static constexpr bool traverse{false};
5520 static constexpr auto mbr_ptr{&SgAsmFunction::p_dest};
5521 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5522 using bind = Desc<SgAsmFunction, SgAsmStatementPtrList SgAsmFunction::*, &SgAsmFunction::p_dest>;
5523};
5524template <> struct describe_field_t<SgAsmFunction,Rose::BinaryAnalysis::Address,&SgAsmFunction::p_entryVa> {
5525 using parent = SgAsmFunction;
5526 using field_type = Rose::BinaryAnalysis::Address;
5527 static constexpr size_t position{8};
5528 static constexpr char const * const name{"entryVa"};
5529 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
5530 static constexpr bool traverse{false};
5531 static constexpr auto mbr_ptr{&SgAsmFunction::p_entryVa};
5532 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5533 using bind = Desc<SgAsmFunction, Rose::BinaryAnalysis::Address SgAsmFunction::*, &SgAsmFunction::p_entryVa>;
5534};
5535template <> struct describe_field_t<SgAsmFunction,SgSymbolTable*,&SgAsmFunction::p_symbolTable> {
5536 using parent = SgAsmFunction;
5537 using field_type = SgSymbolTable*;
5538 static constexpr size_t position{9};
5539 static constexpr char const * const name{"symbolTable"};
5540 static constexpr char const * const typestr{"SgSymbolTable*"};
5541 static constexpr bool traverse{false};
5542 static constexpr auto mbr_ptr{&SgAsmFunction::p_symbolTable};
5543 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5544 using bind = Desc<SgAsmFunction, SgSymbolTable* SgAsmFunction::*, &SgAsmFunction::p_symbolTable>;
5545};
5546template <> struct describe_field_t<SgAsmFunction,size_t,&SgAsmFunction::p_cachedVertex> {
5547 using parent = SgAsmFunction;
5548 using field_type = size_t;
5549 static constexpr size_t position{10};
5550 static constexpr char const * const name{"cachedVertex"};
5551 static constexpr char const * const typestr{"size_t"};
5552 static constexpr bool traverse{false};
5553 static constexpr auto mbr_ptr{&SgAsmFunction::p_cachedVertex};
5554 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5555 using bind = Desc<SgAsmFunction, size_t SgAsmFunction::*, &SgAsmFunction::p_cachedVertex>;
5556};
5557template <> struct describe_field_t<SgAsmFunction,int64_t,&SgAsmFunction::p_stackDelta> {
5558 using parent = SgAsmFunction;
5559 using field_type = int64_t;
5560 static constexpr size_t position{11};
5561 static constexpr char const * const name{"stackDelta"};
5562 static constexpr char const * const typestr{"int64_t"};
5563 static constexpr bool traverse{false};
5564 static constexpr auto mbr_ptr{&SgAsmFunction::p_stackDelta};
5565 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5566 using bind = Desc<SgAsmFunction, int64_t SgAsmFunction::*, &SgAsmFunction::p_stackDelta>;
5567};
5568template <> struct describe_field_t<SgAsmFunction,std::string,&SgAsmFunction::p_callingConvention> {
5569 using parent = SgAsmFunction;
5570 using field_type = std::string;
5571 static constexpr size_t position{12};
5572 static constexpr char const * const name{"callingConvention"};
5573 static constexpr char const * const typestr{"std::string"};
5574 static constexpr bool traverse{false};
5575 static constexpr auto mbr_ptr{&SgAsmFunction::p_callingConvention};
5576 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5577 using bind = Desc<SgAsmFunction, std::string SgAsmFunction::*, &SgAsmFunction::p_callingConvention>;
5578};
5588template <> struct node_from_variant_t<193> { using type = SgAsmFunction; };
5589
5590// Class: AsmGenericDLL
5591template <> struct describe_field_t<SgAsmGenericDLL,SgAsmGenericString*,&SgAsmGenericDLL::p_name> {
5592 using parent = SgAsmGenericDLL;
5594 static constexpr size_t position{0};
5595 static constexpr char const * const name{"name"};
5596 static constexpr char const * const typestr{"SgAsmGenericString*"};
5597 static constexpr bool traverse{true};
5598 static constexpr auto mbr_ptr{&SgAsmGenericDLL::p_name};
5599 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5600 using bind = Desc<SgAsmGenericDLL, SgAsmGenericString* SgAsmGenericDLL::*, &SgAsmGenericDLL::p_name>;
5601};
5602template <> struct describe_field_t<SgAsmGenericDLL,SgStringList,&SgAsmGenericDLL::p_symbols> {
5603 using parent = SgAsmGenericDLL;
5604 using field_type = SgStringList;
5605 static constexpr size_t position{1};
5606 static constexpr char const * const name{"symbols"};
5607 static constexpr char const * const typestr{"SgStringList"};
5608 static constexpr bool traverse{false};
5609 static constexpr auto mbr_ptr{&SgAsmGenericDLL::p_symbols};
5610 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5611 using bind = Desc<SgAsmGenericDLL, SgStringList SgAsmGenericDLL::*, &SgAsmGenericDLL::p_symbols>;
5612};
5614 using node = SgAsmGenericDLL;
5616 static constexpr char const * const name{"AsmGenericDLL"};
5617 static constexpr unsigned long variant{194};
5618 static constexpr bool concrete{true};
5619 using subclasses_t = mp::List<>;
5621};
5622template <> struct node_from_variant_t<194> { using type = SgAsmGenericDLL; };
5623
5624// Class: AsmGenericDLLList
5625template <> struct describe_field_t<SgAsmGenericDLLList,SgAsmGenericDLLPtrList,&SgAsmGenericDLLList::p_dlls> {
5627 using field_type = SgAsmGenericDLLPtrList;
5628 static constexpr size_t position{0};
5629 static constexpr char const * const name{"dlls"};
5630 static constexpr char const * const typestr{"SgAsmGenericDLLPtrList"};
5631 static constexpr bool traverse{false};
5632 static constexpr auto mbr_ptr{&SgAsmGenericDLLList::p_dlls};
5633 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5634 using bind = Desc<SgAsmGenericDLLList, SgAsmGenericDLLPtrList SgAsmGenericDLLList::*, &SgAsmGenericDLLList::p_dlls>;
5635};
5637 using node = SgAsmGenericDLLList;
5639 static constexpr char const * const name{"AsmGenericDLLList"};
5640 static constexpr unsigned long variant{195};
5641 static constexpr bool concrete{true};
5642 using subclasses_t = mp::List<>;
5644};
5645template <> struct node_from_variant_t<195> { using type = SgAsmGenericDLLList; };
5646
5647// Class: AsmGenericFile
5648template <> struct describe_field_t<SgAsmGenericFile,SgAsmDwarfCompilationUnitList*,&SgAsmGenericFile::p_dwarfInfo> {
5649 using parent = SgAsmGenericFile;
5651 static constexpr size_t position{0};
5652 static constexpr char const * const name{"dwarfInfo"};
5653 static constexpr char const * const typestr{"SgAsmDwarfCompilationUnitList*"};
5654 static constexpr bool traverse{true};
5655 static constexpr auto mbr_ptr{&SgAsmGenericFile::p_dwarfInfo};
5656 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5657 using bind = Desc<SgAsmGenericFile, SgAsmDwarfCompilationUnitList* SgAsmGenericFile::*, &SgAsmGenericFile::p_dwarfInfo>;
5658};
5659template <> struct describe_field_t<SgAsmGenericFile,std::string,&SgAsmGenericFile::p_name> {
5660 using parent = SgAsmGenericFile;
5661 using field_type = std::string;
5662 static constexpr size_t position{1};
5663 static constexpr char const * const name{"name"};
5664 static constexpr char const * const typestr{"std::string"};
5665 static constexpr bool traverse{false};
5666 static constexpr auto mbr_ptr{&SgAsmGenericFile::p_name};
5667 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5668 using bind = Desc<SgAsmGenericFile, std::string SgAsmGenericFile::*, &SgAsmGenericFile::p_name>;
5669};
5670template <> struct describe_field_t<SgAsmGenericFile,int,&SgAsmGenericFile::p_fd> {
5671 using parent = SgAsmGenericFile;
5672 using field_type = int;
5673 static constexpr size_t position{2};
5674 static constexpr char const * const name{"fd"};
5675 static constexpr char const * const typestr{"int"};
5676 static constexpr bool traverse{false};
5677 static constexpr auto mbr_ptr{&SgAsmGenericFile::p_fd};
5678 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5679 using bind = Desc<SgAsmGenericFile, int SgAsmGenericFile::*, &SgAsmGenericFile::p_fd>;
5680};
5681template <> struct describe_field_t<SgAsmGenericFile,struct stat,&SgAsmGenericFile::p_sb> {
5682 using parent = SgAsmGenericFile;
5683 using field_type = struct stat;
5684 static constexpr size_t position{3};
5685 static constexpr char const * const name{"sb"};
5686 static constexpr char const * const typestr{"struct stat"};
5687 static constexpr bool traverse{false};
5688 static constexpr auto mbr_ptr{&SgAsmGenericFile::p_sb};
5689 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5690 using bind = Desc<SgAsmGenericFile, struct stat SgAsmGenericFile::*, &SgAsmGenericFile::p_sb>;
5691};
5692template <> struct describe_field_t<SgAsmGenericFile,SgFileContentList,&SgAsmGenericFile::p_data> {
5693 using parent = SgAsmGenericFile;
5695 static constexpr size_t position{4};
5696 static constexpr char const * const name{"data"};
5697 static constexpr char const * const typestr{"SgFileContentList"};
5698 static constexpr bool traverse{false};
5699 static constexpr auto mbr_ptr{&SgAsmGenericFile::p_data};
5700 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5701 using bind = Desc<SgAsmGenericFile, SgFileContentList SgAsmGenericFile::*, &SgAsmGenericFile::p_data>;
5702};
5703template <> struct describe_field_t<SgAsmGenericFile,SgAsmGenericHeaderList*,&SgAsmGenericFile::p_headers> {
5704 using parent = SgAsmGenericFile;
5706 static constexpr size_t position{5};
5707 static constexpr char const * const name{"headers"};
5708 static constexpr char const * const typestr{"SgAsmGenericHeaderList*"};
5709 static constexpr bool traverse{true};
5710 static constexpr auto mbr_ptr{&SgAsmGenericFile::p_headers};
5711 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5712 using bind = Desc<SgAsmGenericFile, SgAsmGenericHeaderList* SgAsmGenericFile::*, &SgAsmGenericFile::p_headers>;
5713};
5714template <> struct describe_field_t<SgAsmGenericFile,SgAsmGenericSectionList*,&SgAsmGenericFile::p_holes> {
5715 using parent = SgAsmGenericFile;
5717 static constexpr size_t position{6};
5718 static constexpr char const * const name{"holes"};
5719 static constexpr char const * const typestr{"SgAsmGenericSectionList*"};
5720 static constexpr bool traverse{true};
5721 static constexpr auto mbr_ptr{&SgAsmGenericFile::p_holes};
5722 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5723 using bind = Desc<SgAsmGenericFile, SgAsmGenericSectionList* SgAsmGenericFile::*, &SgAsmGenericFile::p_holes>;
5724};
5725template <> struct describe_field_t<SgAsmGenericFile,bool,&SgAsmGenericFile::p_truncateZeros> {
5726 using parent = SgAsmGenericFile;
5727 using field_type = bool;
5728 static constexpr size_t position{7};
5729 static constexpr char const * const name{"truncateZeros"};
5730 static constexpr char const * const typestr{"bool"};
5731 static constexpr bool traverse{false};
5732 static constexpr auto mbr_ptr{&SgAsmGenericFile::p_truncateZeros};
5733 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5734 using bind = Desc<SgAsmGenericFile, bool SgAsmGenericFile::*, &SgAsmGenericFile::p_truncateZeros>;
5735};
5736template <> struct describe_field_t<SgAsmGenericFile,bool,&SgAsmGenericFile::p_trackingReferences> {
5737 using parent = SgAsmGenericFile;
5738 using field_type = bool;
5739 static constexpr size_t position{8};
5740 static constexpr char const * const name{"trackingReferences"};
5741 static constexpr char const * const typestr{"bool"};
5742 static constexpr bool traverse{false};
5743 static constexpr auto mbr_ptr{&SgAsmGenericFile::p_trackingReferences};
5744 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5745 using bind = Desc<SgAsmGenericFile, bool SgAsmGenericFile::*, &SgAsmGenericFile::p_trackingReferences>;
5746};
5747template <> struct describe_field_t<SgAsmGenericFile,Rose::BinaryAnalysis::AddressIntervalSet,&SgAsmGenericFile::p_referencedExtents> {
5748 using parent = SgAsmGenericFile;
5750 static constexpr size_t position{9};
5751 static constexpr char const * const name{"referencedExtents"};
5752 static constexpr char const * const typestr{"Rose::BinaryAnalysis::AddressIntervalSet"};
5753 static constexpr bool traverse{false};
5754 static constexpr auto mbr_ptr{&SgAsmGenericFile::p_referencedExtents};
5755 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5756 using bind = Desc<SgAsmGenericFile, Rose::BinaryAnalysis::AddressIntervalSet SgAsmGenericFile::*, &SgAsmGenericFile::p_referencedExtents>;
5757};
5758template <> struct describe_field_t<SgAsmGenericFile,bool,&SgAsmGenericFile::p_neuter> {
5759 using parent = SgAsmGenericFile;
5760 using field_type = bool;
5761 static constexpr size_t position{10};
5762 static constexpr char const * const name{"neuter"};
5763 static constexpr char const * const typestr{"bool"};
5764 static constexpr bool traverse{false};
5765 static constexpr auto mbr_ptr{&SgAsmGenericFile::p_neuter};
5766 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5767 using bind = Desc<SgAsmGenericFile, bool SgAsmGenericFile::*, &SgAsmGenericFile::p_neuter>;
5768};
5778template <> struct node_from_variant_t<196> { using type = SgAsmGenericFile; };
5779
5780// Class: AsmGenericFileList
5781template <> struct describe_field_t<SgAsmGenericFileList,SgAsmGenericFilePtrList,&SgAsmGenericFileList::p_files> {
5783 using field_type = SgAsmGenericFilePtrList;
5784 static constexpr size_t position{0};
5785 static constexpr char const * const name{"files"};
5786 static constexpr char const * const typestr{"SgAsmGenericFilePtrList"};
5787 static constexpr bool traverse{true};
5788 static constexpr auto mbr_ptr{&SgAsmGenericFileList::p_files};
5789 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5790 using bind = Desc<SgAsmGenericFileList, SgAsmGenericFilePtrList SgAsmGenericFileList::*, &SgAsmGenericFileList::p_files>;
5791};
5793 using node = SgAsmGenericFileList;
5794 using base = SgAsmNode;
5795 static constexpr char const * const name{"AsmGenericFileList"};
5796 static constexpr unsigned long variant{197};
5797 static constexpr bool concrete{true};
5798 using subclasses_t = mp::List<>;
5800};
5801template <> struct node_from_variant_t<197> { using type = SgAsmGenericFileList; };
5802
5803// Class: AsmGenericFormat
5804template <> struct describe_field_t<SgAsmGenericFormat,SgAsmGenericFormat::ExecFamily,&SgAsmGenericFormat::p_family> {
5805 using parent = SgAsmGenericFormat;
5807 static constexpr size_t position{0};
5808 static constexpr char const * const name{"family"};
5809 static constexpr char const * const typestr{"SgAsmGenericFormat::ExecFamily"};
5810 static constexpr bool traverse{false};
5811 static constexpr auto mbr_ptr{&SgAsmGenericFormat::p_family};
5812 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5813 using bind = Desc<SgAsmGenericFormat, SgAsmGenericFormat::ExecFamily SgAsmGenericFormat::*, &SgAsmGenericFormat::p_family>;
5814};
5815template <> struct describe_field_t<SgAsmGenericFormat,SgAsmGenericFormat::ExecPurpose,&SgAsmGenericFormat::p_purpose> {
5816 using parent = SgAsmGenericFormat;
5818 static constexpr size_t position{1};
5819 static constexpr char const * const name{"purpose"};
5820 static constexpr char const * const typestr{"SgAsmGenericFormat::ExecPurpose"};
5821 static constexpr bool traverse{false};
5822 static constexpr auto mbr_ptr{&SgAsmGenericFormat::p_purpose};
5823 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5824 using bind = Desc<SgAsmGenericFormat, SgAsmGenericFormat::ExecPurpose SgAsmGenericFormat::*, &SgAsmGenericFormat::p_purpose>;
5825};
5827 using parent = SgAsmGenericFormat;
5829 static constexpr size_t position{2};
5830 static constexpr char const * const name{"sex"};
5831 static constexpr char const * const typestr{"Rose::BinaryAnalysis::ByteOrder::Endianness"};
5832 static constexpr bool traverse{false};
5833 static constexpr auto mbr_ptr{&SgAsmGenericFormat::p_sex};
5834 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5835 using bind = Desc<SgAsmGenericFormat, Rose::BinaryAnalysis::ByteOrder::Endianness SgAsmGenericFormat::*, &SgAsmGenericFormat::p_sex>;
5836};
5837template <> struct describe_field_t<SgAsmGenericFormat,unsigned,&SgAsmGenericFormat::p_version> {
5838 using parent = SgAsmGenericFormat;
5839 using field_type = unsigned;
5840 static constexpr size_t position{3};
5841 static constexpr char const * const name{"version"};
5842 static constexpr char const * const typestr{"unsigned"};
5843 static constexpr bool traverse{false};
5844 static constexpr auto mbr_ptr{&SgAsmGenericFormat::p_version};
5845 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5846 using bind = Desc<SgAsmGenericFormat, unsigned SgAsmGenericFormat::*, &SgAsmGenericFormat::p_version>;
5847};
5848template <> struct describe_field_t<SgAsmGenericFormat,bool,&SgAsmGenericFormat::p_isCurrentVersion> {
5849 using parent = SgAsmGenericFormat;
5850 using field_type = bool;
5851 static constexpr size_t position{4};
5852 static constexpr char const * const name{"isCurrentVersion"};
5853 static constexpr char const * const typestr{"bool"};
5854 static constexpr bool traverse{false};
5855 static constexpr auto mbr_ptr{&SgAsmGenericFormat::p_isCurrentVersion};
5856 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5857 using bind = Desc<SgAsmGenericFormat, bool SgAsmGenericFormat::*, &SgAsmGenericFormat::p_isCurrentVersion>;
5858};
5859template <> struct describe_field_t<SgAsmGenericFormat,SgAsmGenericFormat::ExecABI,&SgAsmGenericFormat::p_abi> {
5860 using parent = SgAsmGenericFormat;
5862 static constexpr size_t position{5};
5863 static constexpr char const * const name{"abi"};
5864 static constexpr char const * const typestr{"SgAsmGenericFormat::ExecABI"};
5865 static constexpr bool traverse{false};
5866 static constexpr auto mbr_ptr{&SgAsmGenericFormat::p_abi};
5867 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5868 using bind = Desc<SgAsmGenericFormat, SgAsmGenericFormat::ExecABI SgAsmGenericFormat::*, &SgAsmGenericFormat::p_abi>;
5869};
5870template <> struct describe_field_t<SgAsmGenericFormat,unsigned,&SgAsmGenericFormat::p_abiVersion> {
5871 using parent = SgAsmGenericFormat;
5872 using field_type = unsigned;
5873 static constexpr size_t position{6};
5874 static constexpr char const * const name{"abiVersion"};
5875 static constexpr char const * const typestr{"unsigned"};
5876 static constexpr bool traverse{false};
5877 static constexpr auto mbr_ptr{&SgAsmGenericFormat::p_abiVersion};
5878 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5879 using bind = Desc<SgAsmGenericFormat, unsigned SgAsmGenericFormat::*, &SgAsmGenericFormat::p_abiVersion>;
5880};
5881template <> struct describe_field_t<SgAsmGenericFormat,size_t,&SgAsmGenericFormat::p_wordSize> {
5882 using parent = SgAsmGenericFormat;
5883 using field_type = size_t;
5884 static constexpr size_t position{7};
5885 static constexpr char const * const name{"wordSize"};
5886 static constexpr char const * const typestr{"size_t"};
5887 static constexpr bool traverse{false};
5888 static constexpr auto mbr_ptr{&SgAsmGenericFormat::p_wordSize};
5889 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5890 using bind = Desc<SgAsmGenericFormat, size_t SgAsmGenericFormat::*, &SgAsmGenericFormat::p_wordSize>;
5891};
5901template <> struct node_from_variant_t<198> { using type = SgAsmGenericFormat; };
5902
5903// Class: AsmGenericHeader
5904template <> struct describe_field_t<SgAsmGenericHeader,SgAsmGenericFormat*,&SgAsmGenericHeader::p_executableFormat> {
5905 using parent = SgAsmGenericHeader;
5907 static constexpr size_t position{0};
5908 static constexpr char const * const name{"executableFormat"};
5909 static constexpr char const * const typestr{"SgAsmGenericFormat*"};
5910 static constexpr bool traverse{true};
5911 static constexpr auto mbr_ptr{&SgAsmGenericHeader::p_executableFormat};
5912 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5913 using bind = Desc<SgAsmGenericHeader, SgAsmGenericFormat* SgAsmGenericHeader::*, &SgAsmGenericHeader::p_executableFormat>;
5914};
5915template <> struct describe_field_t<SgAsmGenericHeader,SgCharList,&SgAsmGenericHeader::p_magic> {
5916 using parent = SgAsmGenericHeader;
5917 using field_type = SgCharList;
5918 static constexpr size_t position{1};
5919 static constexpr char const * const name{"magic"};
5920 static constexpr char const * const typestr{"SgCharList"};
5921 static constexpr bool traverse{false};
5922 static constexpr auto mbr_ptr{&SgAsmGenericHeader::p_magic};
5923 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5924 using bind = Desc<SgAsmGenericHeader, SgCharList SgAsmGenericHeader::*, &SgAsmGenericHeader::p_magic>;
5925};
5926template <> struct describe_field_t<SgAsmGenericHeader,SgAsmGenericFormat::InsSetArchitecture,&SgAsmGenericHeader::p_isa> {
5927 using parent = SgAsmGenericHeader;
5929 static constexpr size_t position{2};
5930 static constexpr char const * const name{"isa"};
5931 static constexpr char const * const typestr{"SgAsmGenericFormat::InsSetArchitecture"};
5932 static constexpr bool traverse{false};
5933 static constexpr auto mbr_ptr{&SgAsmGenericHeader::p_isa};
5934 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5935 using bind = Desc<SgAsmGenericHeader, SgAsmGenericFormat::InsSetArchitecture SgAsmGenericHeader::*, &SgAsmGenericHeader::p_isa>;
5936};
5937template <> struct describe_field_t<SgAsmGenericHeader,Rose::BinaryAnalysis::Address,&SgAsmGenericHeader::p_baseVa> {
5938 using parent = SgAsmGenericHeader;
5939 using field_type = Rose::BinaryAnalysis::Address;
5940 static constexpr size_t position{3};
5941 static constexpr char const * const name{"baseVa"};
5942 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
5943 static constexpr bool traverse{false};
5944 static constexpr auto mbr_ptr{&SgAsmGenericHeader::p_baseVa};
5945 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5946 using bind = Desc<SgAsmGenericHeader, Rose::BinaryAnalysis::Address SgAsmGenericHeader::*, &SgAsmGenericHeader::p_baseVa>;
5947};
5948template <> struct describe_field_t<SgAsmGenericHeader,SgRVAList,&SgAsmGenericHeader::p_entryRvas> {
5949 using parent = SgAsmGenericHeader;
5950 using field_type = SgRVAList;
5951 static constexpr size_t position{4};
5952 static constexpr char const * const name{"entryRvas"};
5953 static constexpr char const * const typestr{"SgRVAList"};
5954 static constexpr bool traverse{false};
5955 static constexpr auto mbr_ptr{&SgAsmGenericHeader::p_entryRvas};
5956 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5957 using bind = Desc<SgAsmGenericHeader, SgRVAList SgAsmGenericHeader::*, &SgAsmGenericHeader::p_entryRvas>;
5958};
5959template <> struct describe_field_t<SgAsmGenericHeader,SgAsmGenericDLLList*,&SgAsmGenericHeader::p_dlls> {
5960 using parent = SgAsmGenericHeader;
5962 static constexpr size_t position{5};
5963 static constexpr char const * const name{"dlls"};
5964 static constexpr char const * const typestr{"SgAsmGenericDLLList*"};
5965 static constexpr bool traverse{true};
5966 static constexpr auto mbr_ptr{&SgAsmGenericHeader::p_dlls};
5967 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5968 using bind = Desc<SgAsmGenericHeader, SgAsmGenericDLLList* SgAsmGenericHeader::*, &SgAsmGenericHeader::p_dlls>;
5969};
5970template <> struct describe_field_t<SgAsmGenericHeader,SgAsmGenericSectionList*,&SgAsmGenericHeader::p_sections> {
5971 using parent = SgAsmGenericHeader;
5973 static constexpr size_t position{6};
5974 static constexpr char const * const name{"sections"};
5975 static constexpr char const * const typestr{"SgAsmGenericSectionList*"};
5976 static constexpr bool traverse{true};
5977 static constexpr auto mbr_ptr{&SgAsmGenericHeader::p_sections};
5978 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
5979 using bind = Desc<SgAsmGenericHeader, SgAsmGenericSectionList* SgAsmGenericHeader::*, &SgAsmGenericHeader::p_sections>;
5980};
5990template <> struct node_from_variant_t<199> { using type = SgAsmGenericHeader; };
5991
5992// Class: AsmGenericHeaderList
5993template <> struct describe_field_t<SgAsmGenericHeaderList,SgAsmGenericHeaderPtrList,&SgAsmGenericHeaderList::p_headers> {
5995 using field_type = SgAsmGenericHeaderPtrList;
5996 static constexpr size_t position{0};
5997 static constexpr char const * const name{"headers"};
5998 static constexpr char const * const typestr{"SgAsmGenericHeaderPtrList"};
5999 static constexpr bool traverse{true};
6000 static constexpr auto mbr_ptr{&SgAsmGenericHeaderList::p_headers};
6001 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6002 using bind = Desc<SgAsmGenericHeaderList, SgAsmGenericHeaderPtrList SgAsmGenericHeaderList::*, &SgAsmGenericHeaderList::p_headers>;
6003};
6007 static constexpr char const * const name{"AsmGenericHeaderList"};
6008 static constexpr unsigned long variant{200};
6009 static constexpr bool concrete{true};
6010 using subclasses_t = mp::List<>;
6012};
6013template <> struct node_from_variant_t<200> { using type = SgAsmGenericHeaderList; };
6014
6015// Class: AsmGenericSection
6016template <> struct describe_field_t<SgAsmGenericSection,SgAsmGenericFile*,&SgAsmGenericSection::p_file> {
6019 static constexpr size_t position{0};
6020 static constexpr char const * const name{"file"};
6021 static constexpr char const * const typestr{"SgAsmGenericFile*"};
6022 static constexpr bool traverse{false};
6023 static constexpr auto mbr_ptr{&SgAsmGenericSection::p_file};
6024 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6025 using bind = Desc<SgAsmGenericSection, SgAsmGenericFile* SgAsmGenericSection::*, &SgAsmGenericSection::p_file>;
6026};
6027template <> struct describe_field_t<SgAsmGenericSection,SgAsmGenericHeader*,&SgAsmGenericSection::p_header> {
6030 static constexpr size_t position{1};
6031 static constexpr char const * const name{"header"};
6032 static constexpr char const * const typestr{"SgAsmGenericHeader*"};
6033 static constexpr bool traverse{false};
6034 static constexpr auto mbr_ptr{&SgAsmGenericSection::p_header};
6035 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6036 using bind = Desc<SgAsmGenericSection, SgAsmGenericHeader* SgAsmGenericSection::*, &SgAsmGenericSection::p_header>;
6037};
6038template <> struct describe_field_t<SgAsmGenericSection,Rose::BinaryAnalysis::Address,&SgAsmGenericSection::p_size> {
6040 using field_type = Rose::BinaryAnalysis::Address;
6041 static constexpr size_t position{2};
6042 static constexpr char const * const name{"size"};
6043 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
6044 static constexpr bool traverse{false};
6045 static constexpr auto mbr_ptr{&SgAsmGenericSection::p_size};
6046 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6047 using bind = Desc<SgAsmGenericSection, Rose::BinaryAnalysis::Address SgAsmGenericSection::*, &SgAsmGenericSection::p_size>;
6048};
6049template <> struct describe_field_t<SgAsmGenericSection,Rose::BinaryAnalysis::Address,&SgAsmGenericSection::p_offset> {
6051 using field_type = Rose::BinaryAnalysis::Address;
6052 static constexpr size_t position{3};
6053 static constexpr char const * const name{"offset"};
6054 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
6055 static constexpr bool traverse{false};
6056 static constexpr auto mbr_ptr{&SgAsmGenericSection::p_offset};
6057 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6058 using bind = Desc<SgAsmGenericSection, Rose::BinaryAnalysis::Address SgAsmGenericSection::*, &SgAsmGenericSection::p_offset>;
6059};
6060template <> struct describe_field_t<SgAsmGenericSection,Rose::BinaryAnalysis::Address,&SgAsmGenericSection::p_fileAlignment> {
6062 using field_type = Rose::BinaryAnalysis::Address;
6063 static constexpr size_t position{4};
6064 static constexpr char const * const name{"fileAlignment"};
6065 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
6066 static constexpr bool traverse{false};
6067 static constexpr auto mbr_ptr{&SgAsmGenericSection::p_fileAlignment};
6068 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6069 using bind = Desc<SgAsmGenericSection, Rose::BinaryAnalysis::Address SgAsmGenericSection::*, &SgAsmGenericSection::p_fileAlignment>;
6070};
6071template <> struct describe_field_t<SgAsmGenericSection,SgFileContentList,&SgAsmGenericSection::p_data> {
6074 static constexpr size_t position{5};
6075 static constexpr char const * const name{"data"};
6076 static constexpr char const * const typestr{"SgFileContentList"};
6077 static constexpr bool traverse{false};
6078 static constexpr auto mbr_ptr{&SgAsmGenericSection::p_data};
6079 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6080 using bind = Desc<SgAsmGenericSection, SgFileContentList SgAsmGenericSection::*, &SgAsmGenericSection::p_data>;
6081};
6082template <> struct describe_field_t<SgAsmGenericSection,SgAsmGenericSection::SectionPurpose,&SgAsmGenericSection::p_purpose> {
6085 static constexpr size_t position{6};
6086 static constexpr char const * const name{"purpose"};
6087 static constexpr char const * const typestr{"SgAsmGenericSection::SectionPurpose"};
6088 static constexpr bool traverse{false};
6089 static constexpr auto mbr_ptr{&SgAsmGenericSection::p_purpose};
6090 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6091 using bind = Desc<SgAsmGenericSection, SgAsmGenericSection::SectionPurpose SgAsmGenericSection::*, &SgAsmGenericSection::p_purpose>;
6092};
6093template <> struct describe_field_t<SgAsmGenericSection,bool,&SgAsmGenericSection::p_synthesized> {
6095 using field_type = bool;
6096 static constexpr size_t position{7};
6097 static constexpr char const * const name{"synthesized"};
6098 static constexpr char const * const typestr{"bool"};
6099 static constexpr bool traverse{false};
6100 static constexpr auto mbr_ptr{&SgAsmGenericSection::p_synthesized};
6101 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6102 using bind = Desc<SgAsmGenericSection, bool SgAsmGenericSection::*, &SgAsmGenericSection::p_synthesized>;
6103};
6104template <> struct describe_field_t<SgAsmGenericSection,int,&SgAsmGenericSection::p_id> {
6106 using field_type = int;
6107 static constexpr size_t position{8};
6108 static constexpr char const * const name{"id"};
6109 static constexpr char const * const typestr{"int"};
6110 static constexpr bool traverse{false};
6111 static constexpr auto mbr_ptr{&SgAsmGenericSection::p_id};
6112 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6113 using bind = Desc<SgAsmGenericSection, int SgAsmGenericSection::*, &SgAsmGenericSection::p_id>;
6114};
6115template <> struct describe_field_t<SgAsmGenericSection,SgAsmGenericString*,&SgAsmGenericSection::p_name> {
6118 static constexpr size_t position{9};
6119 static constexpr char const * const name{"name"};
6120 static constexpr char const * const typestr{"SgAsmGenericString*"};
6121 static constexpr bool traverse{false};
6122 static constexpr auto mbr_ptr{&SgAsmGenericSection::p_name};
6123 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6124 using bind = Desc<SgAsmGenericSection, SgAsmGenericString* SgAsmGenericSection::*, &SgAsmGenericSection::p_name>;
6125};
6126template <> struct describe_field_t<SgAsmGenericSection,std::string,&SgAsmGenericSection::p_shortName> {
6128 using field_type = std::string;
6129 static constexpr size_t position{10};
6130 static constexpr char const * const name{"shortName"};
6131 static constexpr char const * const typestr{"std::string"};
6132 static constexpr bool traverse{false};
6133 static constexpr auto mbr_ptr{&SgAsmGenericSection::p_shortName};
6134 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6135 using bind = Desc<SgAsmGenericSection, std::string SgAsmGenericSection::*, &SgAsmGenericSection::p_shortName>;
6136};
6137template <> struct describe_field_t<SgAsmGenericSection,Rose::BinaryAnalysis::Address,&SgAsmGenericSection::p_mappedPreferredRva> {
6139 using field_type = Rose::BinaryAnalysis::Address;
6140 static constexpr size_t position{11};
6141 static constexpr char const * const name{"mappedPreferredRva"};
6142 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
6143 static constexpr bool traverse{false};
6144 static constexpr auto mbr_ptr{&SgAsmGenericSection::p_mappedPreferredRva};
6145 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6146 using bind = Desc<SgAsmGenericSection, Rose::BinaryAnalysis::Address SgAsmGenericSection::*, &SgAsmGenericSection::p_mappedPreferredRva>;
6147};
6148template <> struct describe_field_t<SgAsmGenericSection,Rose::BinaryAnalysis::Address,&SgAsmGenericSection::p_mappedSize> {
6150 using field_type = Rose::BinaryAnalysis::Address;
6151 static constexpr size_t position{12};
6152 static constexpr char const * const name{"mappedSize"};
6153 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
6154 static constexpr bool traverse{false};
6155 static constexpr auto mbr_ptr{&SgAsmGenericSection::p_mappedSize};
6156 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6157 using bind = Desc<SgAsmGenericSection, Rose::BinaryAnalysis::Address SgAsmGenericSection::*, &SgAsmGenericSection::p_mappedSize>;
6158};
6159template <> struct describe_field_t<SgAsmGenericSection,Rose::BinaryAnalysis::Address,&SgAsmGenericSection::p_mappedAlignment> {
6161 using field_type = Rose::BinaryAnalysis::Address;
6162 static constexpr size_t position{13};
6163 static constexpr char const * const name{"mappedAlignment"};
6164 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
6165 static constexpr bool traverse{false};
6166 static constexpr auto mbr_ptr{&SgAsmGenericSection::p_mappedAlignment};
6167 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6168 using bind = Desc<SgAsmGenericSection, Rose::BinaryAnalysis::Address SgAsmGenericSection::*, &SgAsmGenericSection::p_mappedAlignment>;
6169};
6170template <> struct describe_field_t<SgAsmGenericSection,bool,&SgAsmGenericSection::p_mappedReadPermission> {
6172 using field_type = bool;
6173 static constexpr size_t position{14};
6174 static constexpr char const * const name{"mappedReadPermission"};
6175 static constexpr char const * const typestr{"bool"};
6176 static constexpr bool traverse{false};
6177 static constexpr auto mbr_ptr{&SgAsmGenericSection::p_mappedReadPermission};
6178 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6179 using bind = Desc<SgAsmGenericSection, bool SgAsmGenericSection::*, &SgAsmGenericSection::p_mappedReadPermission>;
6180};
6181template <> struct describe_field_t<SgAsmGenericSection,bool,&SgAsmGenericSection::p_mappedWritePermission> {
6183 using field_type = bool;
6184 static constexpr size_t position{15};
6185 static constexpr char const * const name{"mappedWritePermission"};
6186 static constexpr char const * const typestr{"bool"};
6187 static constexpr bool traverse{false};
6188 static constexpr auto mbr_ptr{&SgAsmGenericSection::p_mappedWritePermission};
6189 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6190 using bind = Desc<SgAsmGenericSection, bool SgAsmGenericSection::*, &SgAsmGenericSection::p_mappedWritePermission>;
6191};
6192template <> struct describe_field_t<SgAsmGenericSection,bool,&SgAsmGenericSection::p_mappedExecutePermission> {
6194 using field_type = bool;
6195 static constexpr size_t position{16};
6196 static constexpr char const * const name{"mappedExecutePermission"};
6197 static constexpr char const * const typestr{"bool"};
6198 static constexpr bool traverse{false};
6199 static constexpr auto mbr_ptr{&SgAsmGenericSection::p_mappedExecutePermission};
6200 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6201 using bind = Desc<SgAsmGenericSection, bool SgAsmGenericSection::*, &SgAsmGenericSection::p_mappedExecutePermission>;
6202};
6203template <> struct describe_field_t<SgAsmGenericSection,bool,&SgAsmGenericSection::p_containsCode> {
6205 using field_type = bool;
6206 static constexpr size_t position{17};
6207 static constexpr char const * const name{"containsCode"};
6208 static constexpr char const * const typestr{"bool"};
6209 static constexpr bool traverse{false};
6210 static constexpr auto mbr_ptr{&SgAsmGenericSection::p_containsCode};
6211 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6212 using bind = Desc<SgAsmGenericSection, bool SgAsmGenericSection::*, &SgAsmGenericSection::p_containsCode>;
6213};
6214template <> struct describe_field_t<SgAsmGenericSection,Rose::BinaryAnalysis::Address,&SgAsmGenericSection::p_mappedActualVa> {
6216 using field_type = Rose::BinaryAnalysis::Address;
6217 static constexpr size_t position{18};
6218 static constexpr char const * const name{"mappedActualVa"};
6219 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
6220 static constexpr bool traverse{false};
6221 static constexpr auto mbr_ptr{&SgAsmGenericSection::p_mappedActualVa};
6222 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6223 using bind = Desc<SgAsmGenericSection, Rose::BinaryAnalysis::Address SgAsmGenericSection::*, &SgAsmGenericSection::p_mappedActualVa>;
6224};
6226 using node = SgAsmGenericSection;
6228 static constexpr char const * const name{"AsmGenericSection"};
6229 static constexpr unsigned long variant{201};
6230 static constexpr bool concrete{true};
6232 using fields_t = mp::List<describe_field_t<SgAsmGenericSection,SgAsmGenericFile*,&SgAsmGenericSection::p_file>, describe_field_t<SgAsmGenericSection,SgAsmGenericHeader*,&SgAsmGenericSection::p_header>, describe_field_t<SgAsmGenericSection,Rose::BinaryAnalysis::Address,&SgAsmGenericSection::p_size>, describe_field_t<SgAsmGenericSection,Rose::BinaryAnalysis::Address,&SgAsmGenericSection::p_offset>, describe_field_t<SgAsmGenericSection,Rose::BinaryAnalysis::Address,&SgAsmGenericSection::p_fileAlignment>, describe_field_t<SgAsmGenericSection,SgFileContentList,&SgAsmGenericSection::p_data>, describe_field_t<SgAsmGenericSection,SgAsmGenericSection::SectionPurpose,&SgAsmGenericSection::p_purpose>, describe_field_t<SgAsmGenericSection,bool,&SgAsmGenericSection::p_synthesized>, describe_field_t<SgAsmGenericSection,int,&SgAsmGenericSection::p_id>, describe_field_t<SgAsmGenericSection,SgAsmGenericString*,&SgAsmGenericSection::p_name>, describe_field_t<SgAsmGenericSection,std::string,&SgAsmGenericSection::p_shortName>, describe_field_t<SgAsmGenericSection,Rose::BinaryAnalysis::Address,&SgAsmGenericSection::p_mappedPreferredRva>, describe_field_t<SgAsmGenericSection,Rose::BinaryAnalysis::Address,&SgAsmGenericSection::p_mappedSize>, describe_field_t<SgAsmGenericSection,Rose::BinaryAnalysis::Address,&SgAsmGenericSection::p_mappedAlignment>, describe_field_t<SgAsmGenericSection,bool,&SgAsmGenericSection::p_mappedReadPermission>, describe_field_t<SgAsmGenericSection,bool,&SgAsmGenericSection::p_mappedWritePermission>, describe_field_t<SgAsmGenericSection,bool,&SgAsmGenericSection::p_mappedExecutePermission>, describe_field_t<SgAsmGenericSection,bool,&SgAsmGenericSection::p_containsCode>, describe_field_t<SgAsmGenericSection,Rose::BinaryAnalysis::Address,&SgAsmGenericSection::p_mappedActualVa>>;
6233};
6234template <> struct node_from_variant_t<201> { using type = SgAsmGenericSection; };
6235
6236// Class: AsmGenericSectionList
6237template <> struct describe_field_t<SgAsmGenericSectionList,SgAsmGenericSectionPtrList,&SgAsmGenericSectionList::p_sections> {
6239 using field_type = SgAsmGenericSectionPtrList;
6240 static constexpr size_t position{0};
6241 static constexpr char const * const name{"sections"};
6242 static constexpr char const * const typestr{"SgAsmGenericSectionPtrList"};
6243 static constexpr bool traverse{true};
6244 static constexpr auto mbr_ptr{&SgAsmGenericSectionList::p_sections};
6245 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6246 using bind = Desc<SgAsmGenericSectionList, SgAsmGenericSectionPtrList SgAsmGenericSectionList::*, &SgAsmGenericSectionList::p_sections>;
6247};
6251 static constexpr char const * const name{"AsmGenericSectionList"};
6252 static constexpr unsigned long variant{202};
6253 static constexpr bool concrete{true};
6254 using subclasses_t = mp::List<>;
6256};
6257template <> struct node_from_variant_t<202> { using type = SgAsmGenericSectionList; };
6258
6259// Class: AsmGenericString
6261 using node = SgAsmGenericString;
6263 static constexpr char const * const name{"AsmGenericString"};
6264 static constexpr unsigned long variant{203};
6265 static constexpr bool concrete{false};
6267 using fields_t = mp::List<>;
6268};
6269template <> struct node_from_variant_t<203> { using type = SgAsmGenericString; };
6270
6271// Class: AsmGenericStrtab
6272template <> struct describe_field_t<SgAsmGenericStrtab,SgAsmGenericSection*,&SgAsmGenericStrtab::p_container> {
6273 using parent = SgAsmGenericStrtab;
6275 static constexpr size_t position{0};
6276 static constexpr char const * const name{"container"};
6277 static constexpr char const * const typestr{"SgAsmGenericSection*"};
6278 static constexpr bool traverse{false};
6279 static constexpr auto mbr_ptr{&SgAsmGenericStrtab::p_container};
6280 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6281 using bind = Desc<SgAsmGenericStrtab, SgAsmGenericSection* SgAsmGenericStrtab::*, &SgAsmGenericStrtab::p_container>;
6282};
6283template <> struct describe_field_t<SgAsmGenericStrtab,SgAsmGenericStrtab::referenced_t,&SgAsmGenericStrtab::p_storageList> {
6284 using parent = SgAsmGenericStrtab;
6285 using field_type = SgAsmGenericStrtab::referenced_t;
6286 static constexpr size_t position{1};
6287 static constexpr char const * const name{"storageList"};
6288 static constexpr char const * const typestr{"SgAsmGenericStrtab::referenced_t"};
6289 static constexpr bool traverse{false};
6290 static constexpr auto mbr_ptr{&SgAsmGenericStrtab::p_storageList};
6291 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6292 using bind = Desc<SgAsmGenericStrtab, SgAsmGenericStrtab::referenced_t SgAsmGenericStrtab::*, &SgAsmGenericStrtab::p_storageList>;
6293};
6294template <> struct describe_field_t<SgAsmGenericStrtab,Rose::BinaryAnalysis::AddressIntervalSet,&SgAsmGenericStrtab::p_freeList> {
6295 using parent = SgAsmGenericStrtab;
6297 static constexpr size_t position{2};
6298 static constexpr char const * const name{"freeList"};
6299 static constexpr char const * const typestr{"Rose::BinaryAnalysis::AddressIntervalSet"};
6300 static constexpr bool traverse{false};
6301 static constexpr auto mbr_ptr{&SgAsmGenericStrtab::p_freeList};
6302 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6303 using bind = Desc<SgAsmGenericStrtab, Rose::BinaryAnalysis::AddressIntervalSet SgAsmGenericStrtab::*, &SgAsmGenericStrtab::p_freeList>;
6304};
6305template <> struct describe_field_t<SgAsmGenericStrtab,SgAsmStringStorage*,&SgAsmGenericStrtab::p_dontFree> {
6306 using parent = SgAsmGenericStrtab;
6308 static constexpr size_t position{3};
6309 static constexpr char const * const name{"dontFree"};
6310 static constexpr char const * const typestr{"SgAsmStringStorage*"};
6311 static constexpr bool traverse{false};
6312 static constexpr auto mbr_ptr{&SgAsmGenericStrtab::p_dontFree};
6313 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6314 using bind = Desc<SgAsmGenericStrtab, SgAsmStringStorage* SgAsmGenericStrtab::*, &SgAsmGenericStrtab::p_dontFree>;
6315};
6316template <> struct describe_field_t<SgAsmGenericStrtab,size_t,&SgAsmGenericStrtab::p_numberFreed> {
6317 using parent = SgAsmGenericStrtab;
6318 using field_type = size_t;
6319 static constexpr size_t position{4};
6320 static constexpr char const * const name{"numberFreed"};
6321 static constexpr char const * const typestr{"size_t"};
6322 static constexpr bool traverse{false};
6323 static constexpr auto mbr_ptr{&SgAsmGenericStrtab::p_numberFreed};
6324 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6325 using bind = Desc<SgAsmGenericStrtab, size_t SgAsmGenericStrtab::*, &SgAsmGenericStrtab::p_numberFreed>;
6326};
6336template <> struct node_from_variant_t<204> { using type = SgAsmGenericStrtab; };
6337
6338// Class: AsmGenericSymbol
6339template <> struct describe_field_t<SgAsmGenericSymbol,SgAsmGenericSymbol::SymbolDefState,&SgAsmGenericSymbol::p_definitionState> {
6340 using parent = SgAsmGenericSymbol;
6342 static constexpr size_t position{0};
6343 static constexpr char const * const name{"definitionState"};
6344 static constexpr char const * const typestr{"SgAsmGenericSymbol::SymbolDefState"};
6345 static constexpr bool traverse{false};
6346 static constexpr auto mbr_ptr{&SgAsmGenericSymbol::p_definitionState};
6347 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6348 using bind = Desc<SgAsmGenericSymbol, SgAsmGenericSymbol::SymbolDefState SgAsmGenericSymbol::*, &SgAsmGenericSymbol::p_definitionState>;
6349};
6350template <> struct describe_field_t<SgAsmGenericSymbol,SgAsmGenericSymbol::SymbolBinding,&SgAsmGenericSymbol::p_binding> {
6351 using parent = SgAsmGenericSymbol;
6353 static constexpr size_t position{1};
6354 static constexpr char const * const name{"binding"};
6355 static constexpr char const * const typestr{"SgAsmGenericSymbol::SymbolBinding"};
6356 static constexpr bool traverse{false};
6357 static constexpr auto mbr_ptr{&SgAsmGenericSymbol::p_binding};
6358 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6359 using bind = Desc<SgAsmGenericSymbol, SgAsmGenericSymbol::SymbolBinding SgAsmGenericSymbol::*, &SgAsmGenericSymbol::p_binding>;
6360};
6361template <> struct describe_field_t<SgAsmGenericSymbol,SgAsmGenericSymbol::SymbolType,&SgAsmGenericSymbol::p_type> {
6362 using parent = SgAsmGenericSymbol;
6364 static constexpr size_t position{2};
6365 static constexpr char const * const name{"type"};
6366 static constexpr char const * const typestr{"SgAsmGenericSymbol::SymbolType"};
6367 static constexpr bool traverse{false};
6368 static constexpr auto mbr_ptr{&SgAsmGenericSymbol::p_type};
6369 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6370 using bind = Desc<SgAsmGenericSymbol, SgAsmGenericSymbol::SymbolType SgAsmGenericSymbol::*, &SgAsmGenericSymbol::p_type>;
6371};
6372template <> struct describe_field_t<SgAsmGenericSymbol,Rose::BinaryAnalysis::Address,&SgAsmGenericSymbol::p_value> {
6373 using parent = SgAsmGenericSymbol;
6374 using field_type = Rose::BinaryAnalysis::Address;
6375 static constexpr size_t position{3};
6376 static constexpr char const * const name{"value"};
6377 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
6378 static constexpr bool traverse{false};
6379 static constexpr auto mbr_ptr{&SgAsmGenericSymbol::p_value};
6380 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6381 using bind = Desc<SgAsmGenericSymbol, Rose::BinaryAnalysis::Address SgAsmGenericSymbol::*, &SgAsmGenericSymbol::p_value>;
6382};
6383template <> struct describe_field_t<SgAsmGenericSymbol,Rose::BinaryAnalysis::Address,&SgAsmGenericSymbol::p_size> {
6384 using parent = SgAsmGenericSymbol;
6385 using field_type = Rose::BinaryAnalysis::Address;
6386 static constexpr size_t position{4};
6387 static constexpr char const * const name{"size"};
6388 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
6389 static constexpr bool traverse{false};
6390 static constexpr auto mbr_ptr{&SgAsmGenericSymbol::p_size};
6391 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6392 using bind = Desc<SgAsmGenericSymbol, Rose::BinaryAnalysis::Address SgAsmGenericSymbol::*, &SgAsmGenericSymbol::p_size>;
6393};
6394template <> struct describe_field_t<SgAsmGenericSymbol,SgAsmGenericSection*,&SgAsmGenericSymbol::p_bound> {
6395 using parent = SgAsmGenericSymbol;
6397 static constexpr size_t position{5};
6398 static constexpr char const * const name{"bound"};
6399 static constexpr char const * const typestr{"SgAsmGenericSection*"};
6400 static constexpr bool traverse{false};
6401 static constexpr auto mbr_ptr{&SgAsmGenericSymbol::p_bound};
6402 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6403 using bind = Desc<SgAsmGenericSymbol, SgAsmGenericSection* SgAsmGenericSymbol::*, &SgAsmGenericSymbol::p_bound>;
6404};
6405template <> struct describe_field_t<SgAsmGenericSymbol,SgAsmGenericString*,&SgAsmGenericSymbol::p_name> {
6406 using parent = SgAsmGenericSymbol;
6408 static constexpr size_t position{6};
6409 static constexpr char const * const name{"name"};
6410 static constexpr char const * const typestr{"SgAsmGenericString*"};
6411 static constexpr bool traverse{true};
6412 static constexpr auto mbr_ptr{&SgAsmGenericSymbol::p_name};
6413 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6414 using bind = Desc<SgAsmGenericSymbol, SgAsmGenericString* SgAsmGenericSymbol::*, &SgAsmGenericSymbol::p_name>;
6415};
6425template <> struct node_from_variant_t<205> { using type = SgAsmGenericSymbol; };
6426
6427// Class: AsmGenericSymbolList
6428template <> struct describe_field_t<SgAsmGenericSymbolList,SgAsmGenericSymbolPtrList,&SgAsmGenericSymbolList::p_symbols> {
6430 using field_type = SgAsmGenericSymbolPtrList;
6431 static constexpr size_t position{0};
6432 static constexpr char const * const name{"symbols"};
6433 static constexpr char const * const typestr{"SgAsmGenericSymbolPtrList"};
6434 static constexpr bool traverse{false};
6435 static constexpr auto mbr_ptr{&SgAsmGenericSymbolList::p_symbols};
6436 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6437 using bind = Desc<SgAsmGenericSymbolList, SgAsmGenericSymbolPtrList SgAsmGenericSymbolList::*, &SgAsmGenericSymbolList::p_symbols>;
6438};
6442 static constexpr char const * const name{"AsmGenericSymbolList"};
6443 static constexpr unsigned long variant{206};
6444 static constexpr bool concrete{true};
6445 using subclasses_t = mp::List<>;
6447};
6448template <> struct node_from_variant_t<206> { using type = SgAsmGenericSymbolList; };
6449
6450// Class: AsmIndirectRegisterExpression
6451template <> struct describe_field_t<SgAsmIndirectRegisterExpression,Rose::BinaryAnalysis::RegisterDescriptor,&SgAsmIndirectRegisterExpression::p_stride> {
6454 static constexpr size_t position{0};
6455 static constexpr char const * const name{"stride"};
6456 static constexpr char const * const typestr{"Rose::BinaryAnalysis::RegisterDescriptor"};
6457 static constexpr bool traverse{false};
6458 static constexpr auto mbr_ptr{&SgAsmIndirectRegisterExpression::p_stride};
6459 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6460 using bind = Desc<SgAsmIndirectRegisterExpression, Rose::BinaryAnalysis::RegisterDescriptor SgAsmIndirectRegisterExpression::*, &SgAsmIndirectRegisterExpression::p_stride>;
6461};
6462template <> struct describe_field_t<SgAsmIndirectRegisterExpression,Rose::BinaryAnalysis::RegisterDescriptor,&SgAsmIndirectRegisterExpression::p_offset> {
6465 static constexpr size_t position{1};
6466 static constexpr char const * const name{"offset"};
6467 static constexpr char const * const typestr{"Rose::BinaryAnalysis::RegisterDescriptor"};
6468 static constexpr bool traverse{false};
6469 static constexpr auto mbr_ptr{&SgAsmIndirectRegisterExpression::p_offset};
6470 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6471 using bind = Desc<SgAsmIndirectRegisterExpression, Rose::BinaryAnalysis::RegisterDescriptor SgAsmIndirectRegisterExpression::*, &SgAsmIndirectRegisterExpression::p_offset>;
6472};
6473template <> struct describe_field_t<SgAsmIndirectRegisterExpression,size_t,&SgAsmIndirectRegisterExpression::p_index> {
6475 using field_type = size_t;
6476 static constexpr size_t position{2};
6477 static constexpr char const * const name{"index"};
6478 static constexpr char const * const typestr{"size_t"};
6479 static constexpr bool traverse{false};
6480 static constexpr auto mbr_ptr{&SgAsmIndirectRegisterExpression::p_index};
6481 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6482 using bind = Desc<SgAsmIndirectRegisterExpression, size_t SgAsmIndirectRegisterExpression::*, &SgAsmIndirectRegisterExpression::p_index>;
6483};
6484template <> struct describe_field_t<SgAsmIndirectRegisterExpression,size_t,&SgAsmIndirectRegisterExpression::p_modulus> {
6486 using field_type = size_t;
6487 static constexpr size_t position{3};
6488 static constexpr char const * const name{"modulus"};
6489 static constexpr char const * const typestr{"size_t"};
6490 static constexpr bool traverse{false};
6491 static constexpr auto mbr_ptr{&SgAsmIndirectRegisterExpression::p_modulus};
6492 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6493 using bind = Desc<SgAsmIndirectRegisterExpression, size_t SgAsmIndirectRegisterExpression::*, &SgAsmIndirectRegisterExpression::p_modulus>;
6494};
6504template <> struct node_from_variant_t<207> { using type = SgAsmIndirectRegisterExpression; };
6505
6506// Class: AsmInstruction
6507template <> struct describe_field_t<SgAsmInstruction,uint8_t,&SgAsmInstruction::p_architectureId> {
6508 using parent = SgAsmInstruction;
6509 using field_type = uint8_t;
6510 static constexpr size_t position{0};
6511 static constexpr char const * const name{"architectureId"};
6512 static constexpr char const * const typestr{"uint8_t"};
6513 static constexpr bool traverse{false};
6514 static constexpr auto mbr_ptr{&SgAsmInstruction::p_architectureId};
6515 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6516 using bind = Desc<SgAsmInstruction, uint8_t SgAsmInstruction::*, &SgAsmInstruction::p_architectureId>;
6517};
6518template <> struct describe_field_t<SgAsmInstruction,SgUnsignedCharList,&SgAsmInstruction::p_rawBytes> {
6519 using parent = SgAsmInstruction;
6520 using field_type = SgUnsignedCharList;
6521 static constexpr size_t position{1};
6522 static constexpr char const * const name{"rawBytes"};
6523 static constexpr char const * const typestr{"SgUnsignedCharList"};
6524 static constexpr bool traverse{false};
6525 static constexpr auto mbr_ptr{&SgAsmInstruction::p_rawBytes};
6526 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6527 using bind = Desc<SgAsmInstruction, SgUnsignedCharList SgAsmInstruction::*, &SgAsmInstruction::p_rawBytes>;
6528};
6529template <> struct describe_field_t<SgAsmInstruction,SgAsmOperandList*,&SgAsmInstruction::p_operandList> {
6530 using parent = SgAsmInstruction;
6532 static constexpr size_t position{2};
6533 static constexpr char const * const name{"operandList"};
6534 static constexpr char const * const typestr{"SgAsmOperandList*"};
6535 static constexpr bool traverse{true};
6536 static constexpr auto mbr_ptr{&SgAsmInstruction::p_operandList};
6537 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6538 using bind = Desc<SgAsmInstruction, SgAsmOperandList* SgAsmInstruction::*, &SgAsmInstruction::p_operandList>;
6539};
6540template <> struct describe_field_t<SgAsmInstruction,SgAsmInstruction*,&SgAsmInstruction::p_delaySlot> {
6541 using parent = SgAsmInstruction;
6543 static constexpr size_t position{3};
6544 static constexpr char const * const name{"delaySlot"};
6545 static constexpr char const * const typestr{"SgAsmInstruction*"};
6546 static constexpr bool traverse{false};
6547 static constexpr auto mbr_ptr{&SgAsmInstruction::p_delaySlot};
6548 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6549 using bind = Desc<SgAsmInstruction, SgAsmInstruction* SgAsmInstruction::*, &SgAsmInstruction::p_delaySlot>;
6550};
6551template <> struct describe_field_t<SgAsmInstruction,SgAsmExprListExp*,&SgAsmInstruction::p_semantics> {
6552 using parent = SgAsmInstruction;
6554 static constexpr size_t position{4};
6555 static constexpr char const * const name{"semantics"};
6556 static constexpr char const * const typestr{"SgAsmExprListExp*"};
6557 static constexpr bool traverse{true};
6558 static constexpr auto mbr_ptr{&SgAsmInstruction::p_semantics};
6559 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6560 using bind = Desc<SgAsmInstruction, SgAsmExprListExp* SgAsmInstruction::*, &SgAsmInstruction::p_semantics>;
6561};
6571template <> struct node_from_variant_t<208> { using type = SgAsmInstruction; };
6572
6573// Class: AsmIntegerValueExpression
6574template <> struct describe_field_t<SgAsmIntegerValueExpression,SgNode*,&SgAsmIntegerValueExpression::p_baseNode> {
6576 using field_type = SgNode*;
6577 static constexpr size_t position{0};
6578 static constexpr char const * const name{"baseNode"};
6579 static constexpr char const * const typestr{"SgNode*"};
6580 static constexpr bool traverse{false};
6581 static constexpr auto mbr_ptr{&SgAsmIntegerValueExpression::p_baseNode};
6582 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6583 using bind = Desc<SgAsmIntegerValueExpression, SgNode* SgAsmIntegerValueExpression::*, &SgAsmIntegerValueExpression::p_baseNode>;
6584};
6588 static constexpr char const * const name{"AsmIntegerValueExpression"};
6589 static constexpr unsigned long variant{209};
6590 static constexpr bool concrete{true};
6591 using subclasses_t = mp::List<>;
6593};
6594template <> struct node_from_variant_t<209> { using type = SgAsmIntegerValueExpression; };
6595
6596// Class: AsmIntegerType
6597template <> struct describe_field_t<SgAsmIntegerType,bool,&SgAsmIntegerType::p_isSigned> {
6598 using parent = SgAsmIntegerType;
6599 using field_type = bool;
6600 static constexpr size_t position{0};
6601 static constexpr char const * const name{"isSigned"};
6602 static constexpr char const * const typestr{"bool"};
6603 static constexpr bool traverse{false};
6604 static constexpr auto mbr_ptr{&SgAsmIntegerType::p_isSigned};
6605 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6606 using bind = Desc<SgAsmIntegerType, bool SgAsmIntegerType::*, &SgAsmIntegerType::p_isSigned>;
6607};
6609 using node = SgAsmIntegerType;
6610 using base = SgAsmScalarType;
6611 static constexpr char const * const name{"AsmIntegerType"};
6612 static constexpr unsigned long variant{210};
6613 static constexpr bool concrete{true};
6614 using subclasses_t = mp::List<>;
6616};
6617template <> struct node_from_variant_t<210> { using type = SgAsmIntegerType; };
6618
6619// Class: AsmInterpretation
6620template <> struct describe_field_t<SgAsmInterpretation,SgAsmGenericHeaderList*,&SgAsmInterpretation::p_headers> {
6623 static constexpr size_t position{0};
6624 static constexpr char const * const name{"headers"};
6625 static constexpr char const * const typestr{"SgAsmGenericHeaderList*"};
6626 static constexpr bool traverse{false};
6627 static constexpr auto mbr_ptr{&SgAsmInterpretation::p_headers};
6628 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6629 using bind = Desc<SgAsmInterpretation, SgAsmGenericHeaderList* SgAsmInterpretation::*, &SgAsmInterpretation::p_headers>;
6630};
6631template <> struct describe_field_t<SgAsmInterpretation,SgAsmBlock*,&SgAsmInterpretation::p_globalBlock> {
6633 using field_type = SgAsmBlock*;
6634 static constexpr size_t position{1};
6635 static constexpr char const * const name{"globalBlock"};
6636 static constexpr char const * const typestr{"SgAsmBlock*"};
6637 static constexpr bool traverse{true};
6638 static constexpr auto mbr_ptr{&SgAsmInterpretation::p_globalBlock};
6639 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6640 using bind = Desc<SgAsmInterpretation, SgAsmBlock* SgAsmInterpretation::*, &SgAsmInterpretation::p_globalBlock>;
6641};
6642template <> struct describe_field_t<SgAsmInterpretation,bool,&SgAsmInterpretation::p_coverageComputed> {
6644 using field_type = bool;
6645 static constexpr size_t position{2};
6646 static constexpr char const * const name{"coverageComputed"};
6647 static constexpr char const * const typestr{"bool"};
6648 static constexpr bool traverse{false};
6649 static constexpr auto mbr_ptr{&SgAsmInterpretation::p_coverageComputed};
6650 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6651 using bind = Desc<SgAsmInterpretation, bool SgAsmInterpretation::*, &SgAsmInterpretation::p_coverageComputed>;
6652};
6653template <> struct describe_field_t<SgAsmInterpretation,double,&SgAsmInterpretation::p_percentageCoverage> {
6655 using field_type = double;
6656 static constexpr size_t position{3};
6657 static constexpr char const * const name{"percentageCoverage"};
6658 static constexpr char const * const typestr{"double"};
6659 static constexpr bool traverse{false};
6660 static constexpr auto mbr_ptr{&SgAsmInterpretation::p_percentageCoverage};
6661 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6662 using bind = Desc<SgAsmInterpretation, double SgAsmInterpretation::*, &SgAsmInterpretation::p_percentageCoverage>;
6663};
6673template <> struct node_from_variant_t<211> { using type = SgAsmInterpretation; };
6674
6675// Class: AsmInterpretationList
6676template <> struct describe_field_t<SgAsmInterpretationList,SgAsmInterpretationPtrList,&SgAsmInterpretationList::p_interpretations> {
6678 using field_type = SgAsmInterpretationPtrList;
6679 static constexpr size_t position{0};
6680 static constexpr char const * const name{"interpretations"};
6681 static constexpr char const * const typestr{"SgAsmInterpretationPtrList"};
6682 static constexpr bool traverse{true};
6683 static constexpr auto mbr_ptr{&SgAsmInterpretationList::p_interpretations};
6684 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6685 using bind = Desc<SgAsmInterpretationList, SgAsmInterpretationPtrList SgAsmInterpretationList::*, &SgAsmInterpretationList::p_interpretations>;
6686};
6689 using base = SgAsmNode;
6690 static constexpr char const * const name{"AsmInterpretationList"};
6691 static constexpr unsigned long variant{212};
6692 static constexpr bool concrete{true};
6693 using subclasses_t = mp::List<>;
6695};
6696template <> struct node_from_variant_t<212> { using type = SgAsmInterpretationList; };
6697
6698// Class: AsmJvmAttribute
6699template <> struct describe_field_t<SgAsmJvmAttribute,uint16_t,&SgAsmJvmAttribute::p_attribute_name_index> {
6700 using parent = SgAsmJvmAttribute;
6701 using field_type = uint16_t;
6702 static constexpr size_t position{0};
6703 static constexpr char const * const name{"attribute_name_index"};
6704 static constexpr char const * const typestr{"uint16_t"};
6705 static constexpr bool traverse{false};
6706 static constexpr auto mbr_ptr{&SgAsmJvmAttribute::p_attribute_name_index};
6707 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6708 using bind = Desc<SgAsmJvmAttribute, uint16_t SgAsmJvmAttribute::*, &SgAsmJvmAttribute::p_attribute_name_index>;
6709};
6710template <> struct describe_field_t<SgAsmJvmAttribute,uint32_t,&SgAsmJvmAttribute::p_attribute_length> {
6711 using parent = SgAsmJvmAttribute;
6712 using field_type = uint32_t;
6713 static constexpr size_t position{1};
6714 static constexpr char const * const name{"attribute_length"};
6715 static constexpr char const * const typestr{"uint32_t"};
6716 static constexpr bool traverse{false};
6717 static constexpr auto mbr_ptr{&SgAsmJvmAttribute::p_attribute_length};
6718 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6719 using bind = Desc<SgAsmJvmAttribute, uint32_t SgAsmJvmAttribute::*, &SgAsmJvmAttribute::p_attribute_length>;
6720};
6730template <> struct node_from_variant_t<213> { using type = SgAsmJvmAttribute; };
6731
6732// Class: AsmJvmCodeAttribute
6733template <> struct describe_field_t<SgAsmJvmCodeAttribute,uint16_t,&SgAsmJvmCodeAttribute::p_max_stack> {
6735 using field_type = uint16_t;
6736 static constexpr size_t position{0};
6737 static constexpr char const * const name{"max_stack"};
6738 static constexpr char const * const typestr{"uint16_t"};
6739 static constexpr bool traverse{false};
6740 static constexpr auto mbr_ptr{&SgAsmJvmCodeAttribute::p_max_stack};
6741 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6742 using bind = Desc<SgAsmJvmCodeAttribute, uint16_t SgAsmJvmCodeAttribute::*, &SgAsmJvmCodeAttribute::p_max_stack>;
6743};
6744template <> struct describe_field_t<SgAsmJvmCodeAttribute,uint16_t,&SgAsmJvmCodeAttribute::p_max_locals> {
6746 using field_type = uint16_t;
6747 static constexpr size_t position{1};
6748 static constexpr char const * const name{"max_locals"};
6749 static constexpr char const * const typestr{"uint16_t"};
6750 static constexpr bool traverse{false};
6751 static constexpr auto mbr_ptr{&SgAsmJvmCodeAttribute::p_max_locals};
6752 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6753 using bind = Desc<SgAsmJvmCodeAttribute, uint16_t SgAsmJvmCodeAttribute::*, &SgAsmJvmCodeAttribute::p_max_locals>;
6754};
6755template <> struct describe_field_t<SgAsmJvmCodeAttribute,uint32_t,&SgAsmJvmCodeAttribute::p_code_length> {
6757 using field_type = uint32_t;
6758 static constexpr size_t position{2};
6759 static constexpr char const * const name{"code_length"};
6760 static constexpr char const * const typestr{"uint32_t"};
6761 static constexpr bool traverse{false};
6762 static constexpr auto mbr_ptr{&SgAsmJvmCodeAttribute::p_code_length};
6763 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6764 using bind = Desc<SgAsmJvmCodeAttribute, uint32_t SgAsmJvmCodeAttribute::*, &SgAsmJvmCodeAttribute::p_code_length>;
6765};
6766template <> struct describe_field_t<SgAsmJvmCodeAttribute,const char*,&SgAsmJvmCodeAttribute::p_code> {
6768 using field_type = const char*;
6769 static constexpr size_t position{3};
6770 static constexpr char const * const name{"code"};
6771 static constexpr char const * const typestr{"const char*"};
6772 static constexpr bool traverse{false};
6773 static constexpr auto mbr_ptr{&SgAsmJvmCodeAttribute::p_code};
6774 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6775 using bind = Desc<SgAsmJvmCodeAttribute, const char* SgAsmJvmCodeAttribute::*, &SgAsmJvmCodeAttribute::p_code>;
6776};
6777template <> struct describe_field_t<SgAsmJvmCodeAttribute,SgAsmJvmExceptionTable*,&SgAsmJvmCodeAttribute::p_exception_table> {
6780 static constexpr size_t position{4};
6781 static constexpr char const * const name{"exception_table"};
6782 static constexpr char const * const typestr{"SgAsmJvmExceptionTable*"};
6783 static constexpr bool traverse{false};
6784 static constexpr auto mbr_ptr{&SgAsmJvmCodeAttribute::p_exception_table};
6785 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6786 using bind = Desc<SgAsmJvmCodeAttribute, SgAsmJvmExceptionTable* SgAsmJvmCodeAttribute::*, &SgAsmJvmCodeAttribute::p_exception_table>;
6787};
6788template <> struct describe_field_t<SgAsmJvmCodeAttribute,SgAsmJvmAttributeTable*,&SgAsmJvmCodeAttribute::p_attribute_table> {
6791 static constexpr size_t position{5};
6792 static constexpr char const * const name{"attribute_table"};
6793 static constexpr char const * const typestr{"SgAsmJvmAttributeTable*"};
6794 static constexpr bool traverse{false};
6795 static constexpr auto mbr_ptr{&SgAsmJvmCodeAttribute::p_attribute_table};
6796 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6797 using bind = Desc<SgAsmJvmCodeAttribute, SgAsmJvmAttributeTable* SgAsmJvmCodeAttribute::*, &SgAsmJvmCodeAttribute::p_attribute_table>;
6798};
6799template <> struct describe_field_t<SgAsmJvmCodeAttribute,Rose::BinaryAnalysis::Address,&SgAsmJvmCodeAttribute::p_code_offset> {
6801 using field_type = Rose::BinaryAnalysis::Address;
6802 static constexpr size_t position{6};
6803 static constexpr char const * const name{"code_offset"};
6804 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
6805 static constexpr bool traverse{false};
6806 static constexpr auto mbr_ptr{&SgAsmJvmCodeAttribute::p_code_offset};
6807 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6808 using bind = Desc<SgAsmJvmCodeAttribute, Rose::BinaryAnalysis::Address SgAsmJvmCodeAttribute::*, &SgAsmJvmCodeAttribute::p_code_offset>;
6809};
6819template <> struct node_from_variant_t<214> { using type = SgAsmJvmCodeAttribute; };
6820
6821// Class: AsmJvmMethod
6822template <> struct describe_field_t<SgAsmJvmMethod,uint16_t,&SgAsmJvmMethod::p_access_flags> {
6823 using parent = SgAsmJvmMethod;
6824 using field_type = uint16_t;
6825 static constexpr size_t position{0};
6826 static constexpr char const * const name{"access_flags"};
6827 static constexpr char const * const typestr{"uint16_t"};
6828 static constexpr bool traverse{false};
6829 static constexpr auto mbr_ptr{&SgAsmJvmMethod::p_access_flags};
6830 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6831 using bind = Desc<SgAsmJvmMethod, uint16_t SgAsmJvmMethod::*, &SgAsmJvmMethod::p_access_flags>;
6832};
6833template <> struct describe_field_t<SgAsmJvmMethod,uint16_t,&SgAsmJvmMethod::p_name_index> {
6834 using parent = SgAsmJvmMethod;
6835 using field_type = uint16_t;
6836 static constexpr size_t position{1};
6837 static constexpr char const * const name{"name_index"};
6838 static constexpr char const * const typestr{"uint16_t"};
6839 static constexpr bool traverse{false};
6840 static constexpr auto mbr_ptr{&SgAsmJvmMethod::p_name_index};
6841 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6842 using bind = Desc<SgAsmJvmMethod, uint16_t SgAsmJvmMethod::*, &SgAsmJvmMethod::p_name_index>;
6843};
6844template <> struct describe_field_t<SgAsmJvmMethod,uint16_t,&SgAsmJvmMethod::p_descriptor_index> {
6845 using parent = SgAsmJvmMethod;
6846 using field_type = uint16_t;
6847 static constexpr size_t position{2};
6848 static constexpr char const * const name{"descriptor_index"};
6849 static constexpr char const * const typestr{"uint16_t"};
6850 static constexpr bool traverse{false};
6851 static constexpr auto mbr_ptr{&SgAsmJvmMethod::p_descriptor_index};
6852 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6853 using bind = Desc<SgAsmJvmMethod, uint16_t SgAsmJvmMethod::*, &SgAsmJvmMethod::p_descriptor_index>;
6854};
6855template <> struct describe_field_t<SgAsmJvmMethod,SgAsmJvmAttributeTable*,&SgAsmJvmMethod::p_attribute_table> {
6856 using parent = SgAsmJvmMethod;
6858 static constexpr size_t position{3};
6859 static constexpr char const * const name{"attribute_table"};
6860 static constexpr char const * const typestr{"SgAsmJvmAttributeTable*"};
6861 static constexpr bool traverse{true};
6862 static constexpr auto mbr_ptr{&SgAsmJvmMethod::p_attribute_table};
6863 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6864 using bind = Desc<SgAsmJvmMethod, SgAsmJvmAttributeTable* SgAsmJvmMethod::*, &SgAsmJvmMethod::p_attribute_table>;
6865};
6866template <> struct describe_field_t<SgAsmJvmMethod,SgAsmInstructionList*,&SgAsmJvmMethod::p_instruction_list> {
6867 using parent = SgAsmJvmMethod;
6869 static constexpr size_t position{4};
6870 static constexpr char const * const name{"instruction_list"};
6871 static constexpr char const * const typestr{"SgAsmInstructionList*"};
6872 static constexpr bool traverse{false};
6873 static constexpr auto mbr_ptr{&SgAsmJvmMethod::p_instruction_list};
6874 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6875 using bind = Desc<SgAsmJvmMethod, SgAsmInstructionList* SgAsmJvmMethod::*, &SgAsmJvmMethod::p_instruction_list>;
6876};
6886template <> struct node_from_variant_t<215> { using type = SgAsmJvmMethod; };
6887
6888// Class: AsmJvmConstantPool
6889template <> struct describe_field_t<SgAsmJvmConstantPool,SgAsmJvmConstantPoolEntryPtrList,&SgAsmJvmConstantPool::p_entries> {
6891 using field_type = SgAsmJvmConstantPoolEntryPtrList;
6892 static constexpr size_t position{0};
6893 static constexpr char const * const name{"entries"};
6894 static constexpr char const * const typestr{"SgAsmJvmConstantPoolEntryPtrList"};
6895 static constexpr bool traverse{false};
6896 static constexpr auto mbr_ptr{&SgAsmJvmConstantPool::p_entries};
6897 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6898 using bind = Desc<SgAsmJvmConstantPool, SgAsmJvmConstantPoolEntryPtrList SgAsmJvmConstantPool::*, &SgAsmJvmConstantPool::p_entries>;
6899};
6901 using node = SgAsmJvmConstantPool;
6902 using base = SgAsmGenericSection;
6903 static constexpr char const * const name{"AsmJvmConstantPool"};
6904 static constexpr unsigned long variant{216};
6905 static constexpr bool concrete{true};
6906 using subclasses_t = mp::List<>;
6908};
6909template <> struct node_from_variant_t<216> { using type = SgAsmJvmConstantPool; };
6910
6911// Class: AsmJvmConstantPoolEntry
6912template <> struct describe_field_t<SgAsmJvmConstantPoolEntry,SgAsmJvmConstantPoolEntry::Kind,&SgAsmJvmConstantPoolEntry::p_tag> {
6915 static constexpr size_t position{0};
6916 static constexpr char const * const name{"tag"};
6917 static constexpr char const * const typestr{"SgAsmJvmConstantPoolEntry::Kind"};
6918 static constexpr bool traverse{false};
6919 static constexpr auto mbr_ptr{&SgAsmJvmConstantPoolEntry::p_tag};
6920 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6921 using bind = Desc<SgAsmJvmConstantPoolEntry, SgAsmJvmConstantPoolEntry::Kind SgAsmJvmConstantPoolEntry::*, &SgAsmJvmConstantPoolEntry::p_tag>;
6922};
6923template <> struct describe_field_t<SgAsmJvmConstantPoolEntry,uint32_t,&SgAsmJvmConstantPoolEntry::p_bytes> {
6925 using field_type = uint32_t;
6926 static constexpr size_t position{1};
6927 static constexpr char const * const name{"bytes"};
6928 static constexpr char const * const typestr{"uint32_t"};
6929 static constexpr bool traverse{false};
6930 static constexpr auto mbr_ptr{&SgAsmJvmConstantPoolEntry::p_bytes};
6931 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6932 using bind = Desc<SgAsmJvmConstantPoolEntry, uint32_t SgAsmJvmConstantPoolEntry::*, &SgAsmJvmConstantPoolEntry::p_bytes>;
6933};
6934template <> struct describe_field_t<SgAsmJvmConstantPoolEntry,uint32_t,&SgAsmJvmConstantPoolEntry::p_hi_bytes> {
6936 using field_type = uint32_t;
6937 static constexpr size_t position{2};
6938 static constexpr char const * const name{"hi_bytes"};
6939 static constexpr char const * const typestr{"uint32_t"};
6940 static constexpr bool traverse{false};
6941 static constexpr auto mbr_ptr{&SgAsmJvmConstantPoolEntry::p_hi_bytes};
6942 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6943 using bind = Desc<SgAsmJvmConstantPoolEntry, uint32_t SgAsmJvmConstantPoolEntry::*, &SgAsmJvmConstantPoolEntry::p_hi_bytes>;
6944};
6945template <> struct describe_field_t<SgAsmJvmConstantPoolEntry,uint32_t,&SgAsmJvmConstantPoolEntry::p_low_bytes> {
6947 using field_type = uint32_t;
6948 static constexpr size_t position{3};
6949 static constexpr char const * const name{"low_bytes"};
6950 static constexpr char const * const typestr{"uint32_t"};
6951 static constexpr bool traverse{false};
6952 static constexpr auto mbr_ptr{&SgAsmJvmConstantPoolEntry::p_low_bytes};
6953 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6954 using bind = Desc<SgAsmJvmConstantPoolEntry, uint32_t SgAsmJvmConstantPoolEntry::*, &SgAsmJvmConstantPoolEntry::p_low_bytes>;
6955};
6956template <> struct describe_field_t<SgAsmJvmConstantPoolEntry,uint16_t,&SgAsmJvmConstantPoolEntry::p_bootstrap_method_attr_index> {
6958 using field_type = uint16_t;
6959 static constexpr size_t position{4};
6960 static constexpr char const * const name{"bootstrap_method_attr_index"};
6961 static constexpr char const * const typestr{"uint16_t"};
6962 static constexpr bool traverse{false};
6963 static constexpr auto mbr_ptr{&SgAsmJvmConstantPoolEntry::p_bootstrap_method_attr_index};
6964 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6965 using bind = Desc<SgAsmJvmConstantPoolEntry, uint16_t SgAsmJvmConstantPoolEntry::*, &SgAsmJvmConstantPoolEntry::p_bootstrap_method_attr_index>;
6966};
6967template <> struct describe_field_t<SgAsmJvmConstantPoolEntry,uint16_t,&SgAsmJvmConstantPoolEntry::p_class_index> {
6969 using field_type = uint16_t;
6970 static constexpr size_t position{5};
6971 static constexpr char const * const name{"class_index"};
6972 static constexpr char const * const typestr{"uint16_t"};
6973 static constexpr bool traverse{false};
6974 static constexpr auto mbr_ptr{&SgAsmJvmConstantPoolEntry::p_class_index};
6975 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6976 using bind = Desc<SgAsmJvmConstantPoolEntry, uint16_t SgAsmJvmConstantPoolEntry::*, &SgAsmJvmConstantPoolEntry::p_class_index>;
6977};
6978template <> struct describe_field_t<SgAsmJvmConstantPoolEntry,uint16_t,&SgAsmJvmConstantPoolEntry::p_descriptor_index> {
6980 using field_type = uint16_t;
6981 static constexpr size_t position{6};
6982 static constexpr char const * const name{"descriptor_index"};
6983 static constexpr char const * const typestr{"uint16_t"};
6984 static constexpr bool traverse{false};
6985 static constexpr auto mbr_ptr{&SgAsmJvmConstantPoolEntry::p_descriptor_index};
6986 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6987 using bind = Desc<SgAsmJvmConstantPoolEntry, uint16_t SgAsmJvmConstantPoolEntry::*, &SgAsmJvmConstantPoolEntry::p_descriptor_index>;
6988};
6989template <> struct describe_field_t<SgAsmJvmConstantPoolEntry,uint16_t,&SgAsmJvmConstantPoolEntry::p_name_index> {
6991 using field_type = uint16_t;
6992 static constexpr size_t position{7};
6993 static constexpr char const * const name{"name_index"};
6994 static constexpr char const * const typestr{"uint16_t"};
6995 static constexpr bool traverse{false};
6996 static constexpr auto mbr_ptr{&SgAsmJvmConstantPoolEntry::p_name_index};
6997 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
6998 using bind = Desc<SgAsmJvmConstantPoolEntry, uint16_t SgAsmJvmConstantPoolEntry::*, &SgAsmJvmConstantPoolEntry::p_name_index>;
6999};
7000template <> struct describe_field_t<SgAsmJvmConstantPoolEntry,uint16_t,&SgAsmJvmConstantPoolEntry::p_name_and_type_index> {
7002 using field_type = uint16_t;
7003 static constexpr size_t position{8};
7004 static constexpr char const * const name{"name_and_type_index"};
7005 static constexpr char const * const typestr{"uint16_t"};
7006 static constexpr bool traverse{false};
7007 static constexpr auto mbr_ptr{&SgAsmJvmConstantPoolEntry::p_name_and_type_index};
7008 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7009 using bind = Desc<SgAsmJvmConstantPoolEntry, uint16_t SgAsmJvmConstantPoolEntry::*, &SgAsmJvmConstantPoolEntry::p_name_and_type_index>;
7010};
7011template <> struct describe_field_t<SgAsmJvmConstantPoolEntry,uint16_t,&SgAsmJvmConstantPoolEntry::p_reference_index> {
7013 using field_type = uint16_t;
7014 static constexpr size_t position{9};
7015 static constexpr char const * const name{"reference_index"};
7016 static constexpr char const * const typestr{"uint16_t"};
7017 static constexpr bool traverse{false};
7018 static constexpr auto mbr_ptr{&SgAsmJvmConstantPoolEntry::p_reference_index};
7019 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7020 using bind = Desc<SgAsmJvmConstantPoolEntry, uint16_t SgAsmJvmConstantPoolEntry::*, &SgAsmJvmConstantPoolEntry::p_reference_index>;
7021};
7022template <> struct describe_field_t<SgAsmJvmConstantPoolEntry,uint8_t,&SgAsmJvmConstantPoolEntry::p_reference_kind> {
7024 using field_type = uint8_t;
7025 static constexpr size_t position{10};
7026 static constexpr char const * const name{"reference_kind"};
7027 static constexpr char const * const typestr{"uint8_t"};
7028 static constexpr bool traverse{false};
7029 static constexpr auto mbr_ptr{&SgAsmJvmConstantPoolEntry::p_reference_kind};
7030 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7031 using bind = Desc<SgAsmJvmConstantPoolEntry, uint8_t SgAsmJvmConstantPoolEntry::*, &SgAsmJvmConstantPoolEntry::p_reference_kind>;
7032};
7033template <> struct describe_field_t<SgAsmJvmConstantPoolEntry,uint16_t,&SgAsmJvmConstantPoolEntry::p_string_index> {
7035 using field_type = uint16_t;
7036 static constexpr size_t position{11};
7037 static constexpr char const * const name{"string_index"};
7038 static constexpr char const * const typestr{"uint16_t"};
7039 static constexpr bool traverse{false};
7040 static constexpr auto mbr_ptr{&SgAsmJvmConstantPoolEntry::p_string_index};
7041 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7042 using bind = Desc<SgAsmJvmConstantPoolEntry, uint16_t SgAsmJvmConstantPoolEntry::*, &SgAsmJvmConstantPoolEntry::p_string_index>;
7043};
7044template <> struct describe_field_t<SgAsmJvmConstantPoolEntry,uint16_t,&SgAsmJvmConstantPoolEntry::p_length> {
7046 using field_type = uint16_t;
7047 static constexpr size_t position{12};
7048 static constexpr char const * const name{"length"};
7049 static constexpr char const * const typestr{"uint16_t"};
7050 static constexpr bool traverse{false};
7051 static constexpr auto mbr_ptr{&SgAsmJvmConstantPoolEntry::p_length};
7052 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7053 using bind = Desc<SgAsmJvmConstantPoolEntry, uint16_t SgAsmJvmConstantPoolEntry::*, &SgAsmJvmConstantPoolEntry::p_length>;
7054};
7055template <> struct describe_field_t<SgAsmJvmConstantPoolEntry,char*,&SgAsmJvmConstantPoolEntry::p_utf8_bytes> {
7057 using field_type = char*;
7058 static constexpr size_t position{13};
7059 static constexpr char const * const name{"utf8_bytes"};
7060 static constexpr char const * const typestr{"char*"};
7061 static constexpr bool traverse{false};
7062 static constexpr auto mbr_ptr{&SgAsmJvmConstantPoolEntry::p_utf8_bytes};
7063 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7064 using bind = Desc<SgAsmJvmConstantPoolEntry, char* SgAsmJvmConstantPoolEntry::*, &SgAsmJvmConstantPoolEntry::p_utf8_bytes>;
7065};
7068 using base = SgAsmJvmNode;
7069 static constexpr char const * const name{"AsmJvmConstantPoolEntry"};
7070 static constexpr unsigned long variant{217};
7071 static constexpr bool concrete{true};
7072 using subclasses_t = mp::List<>;
7074};
7075template <> struct node_from_variant_t<217> { using type = SgAsmJvmConstantPoolEntry; };
7076
7077// Class: AsmJvmInstruction
7078template <> struct describe_field_t<SgAsmJvmInstruction,Rose::BinaryAnalysis::JvmInstructionKind,&SgAsmJvmInstruction::p_kind> {
7080 using field_type = Rose::BinaryAnalysis::JvmInstructionKind;
7081 static constexpr size_t position{0};
7082 static constexpr char const * const name{"kind"};
7083 static constexpr char const * const typestr{"Rose::BinaryAnalysis::JvmInstructionKind"};
7084 static constexpr bool traverse{false};
7085 static constexpr auto mbr_ptr{&SgAsmJvmInstruction::p_kind};
7086 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7087 using bind = Desc<SgAsmJvmInstruction, Rose::BinaryAnalysis::JvmInstructionKind SgAsmJvmInstruction::*, &SgAsmJvmInstruction::p_kind>;
7088};
7090 using node = SgAsmJvmInstruction;
7091 using base = SgAsmInstruction;
7092 static constexpr char const * const name{"AsmJvmInstruction"};
7093 static constexpr unsigned long variant{218};
7094 static constexpr bool concrete{true};
7095 using subclasses_t = mp::List<>;
7097};
7098template <> struct node_from_variant_t<218> { using type = SgAsmJvmInstruction; };
7099
7100// Class: AsmJvmFileHeader
7101template <> struct describe_field_t<SgAsmJvmFileHeader,uint16_t,&SgAsmJvmFileHeader::p_minor_version> {
7102 using parent = SgAsmJvmFileHeader;
7103 using field_type = uint16_t;
7104 static constexpr size_t position{0};
7105 static constexpr char const * const name{"minor_version"};
7106 static constexpr char const * const typestr{"uint16_t"};
7107 static constexpr bool traverse{false};
7108 static constexpr auto mbr_ptr{&SgAsmJvmFileHeader::p_minor_version};
7109 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7110 using bind = Desc<SgAsmJvmFileHeader, uint16_t SgAsmJvmFileHeader::*, &SgAsmJvmFileHeader::p_minor_version>;
7111};
7112template <> struct describe_field_t<SgAsmJvmFileHeader,uint16_t,&SgAsmJvmFileHeader::p_major_version> {
7113 using parent = SgAsmJvmFileHeader;
7114 using field_type = uint16_t;
7115 static constexpr size_t position{1};
7116 static constexpr char const * const name{"major_version"};
7117 static constexpr char const * const typestr{"uint16_t"};
7118 static constexpr bool traverse{false};
7119 static constexpr auto mbr_ptr{&SgAsmJvmFileHeader::p_major_version};
7120 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7121 using bind = Desc<SgAsmJvmFileHeader, uint16_t SgAsmJvmFileHeader::*, &SgAsmJvmFileHeader::p_major_version>;
7122};
7123template <> struct describe_field_t<SgAsmJvmFileHeader,uint16_t,&SgAsmJvmFileHeader::p_access_flags> {
7124 using parent = SgAsmJvmFileHeader;
7125 using field_type = uint16_t;
7126 static constexpr size_t position{2};
7127 static constexpr char const * const name{"access_flags"};
7128 static constexpr char const * const typestr{"uint16_t"};
7129 static constexpr bool traverse{false};
7130 static constexpr auto mbr_ptr{&SgAsmJvmFileHeader::p_access_flags};
7131 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7132 using bind = Desc<SgAsmJvmFileHeader, uint16_t SgAsmJvmFileHeader::*, &SgAsmJvmFileHeader::p_access_flags>;
7133};
7134template <> struct describe_field_t<SgAsmJvmFileHeader,uint16_t,&SgAsmJvmFileHeader::p_this_class> {
7135 using parent = SgAsmJvmFileHeader;
7136 using field_type = uint16_t;
7137 static constexpr size_t position{3};
7138 static constexpr char const * const name{"this_class"};
7139 static constexpr char const * const typestr{"uint16_t"};
7140 static constexpr bool traverse{false};
7141 static constexpr auto mbr_ptr{&SgAsmJvmFileHeader::p_this_class};
7142 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7143 using bind = Desc<SgAsmJvmFileHeader, uint16_t SgAsmJvmFileHeader::*, &SgAsmJvmFileHeader::p_this_class>;
7144};
7145template <> struct describe_field_t<SgAsmJvmFileHeader,uint16_t,&SgAsmJvmFileHeader::p_super_class> {
7146 using parent = SgAsmJvmFileHeader;
7147 using field_type = uint16_t;
7148 static constexpr size_t position{4};
7149 static constexpr char const * const name{"super_class"};
7150 static constexpr char const * const typestr{"uint16_t"};
7151 static constexpr bool traverse{false};
7152 static constexpr auto mbr_ptr{&SgAsmJvmFileHeader::p_super_class};
7153 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7154 using bind = Desc<SgAsmJvmFileHeader, uint16_t SgAsmJvmFileHeader::*, &SgAsmJvmFileHeader::p_super_class>;
7155};
7156template <> struct describe_field_t<SgAsmJvmFileHeader,SgAsmJvmConstantPool*,&SgAsmJvmFileHeader::p_constant_pool> {
7157 using parent = SgAsmJvmFileHeader;
7159 static constexpr size_t position{5};
7160 static constexpr char const * const name{"constant_pool"};
7161 static constexpr char const * const typestr{"SgAsmJvmConstantPool*"};
7162 static constexpr bool traverse{false};
7163 static constexpr auto mbr_ptr{&SgAsmJvmFileHeader::p_constant_pool};
7164 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7165 using bind = Desc<SgAsmJvmFileHeader, SgAsmJvmConstantPool* SgAsmJvmFileHeader::*, &SgAsmJvmFileHeader::p_constant_pool>;
7166};
7167template <> struct describe_field_t<SgAsmJvmFileHeader,std::list<uint16_t>,&SgAsmJvmFileHeader::p_interfaces> {
7168 using parent = SgAsmJvmFileHeader;
7169 using field_type = std::list<uint16_t>;
7170 static constexpr size_t position{6};
7171 static constexpr char const * const name{"interfaces"};
7172 static constexpr char const * const typestr{"std::list<uint16_t>"};
7173 static constexpr bool traverse{false};
7174 static constexpr auto mbr_ptr{&SgAsmJvmFileHeader::p_interfaces};
7175 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7176 using bind = Desc<SgAsmJvmFileHeader, std::list<uint16_t> SgAsmJvmFileHeader::*, &SgAsmJvmFileHeader::p_interfaces>;
7177};
7178template <> struct describe_field_t<SgAsmJvmFileHeader,SgAsmJvmFieldTable*,&SgAsmJvmFileHeader::p_field_table> {
7179 using parent = SgAsmJvmFileHeader;
7181 static constexpr size_t position{7};
7182 static constexpr char const * const name{"field_table"};
7183 static constexpr char const * const typestr{"SgAsmJvmFieldTable*"};
7184 static constexpr bool traverse{false};
7185 static constexpr auto mbr_ptr{&SgAsmJvmFileHeader::p_field_table};
7186 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7187 using bind = Desc<SgAsmJvmFileHeader, SgAsmJvmFieldTable* SgAsmJvmFileHeader::*, &SgAsmJvmFileHeader::p_field_table>;
7188};
7189template <> struct describe_field_t<SgAsmJvmFileHeader,SgAsmJvmMethodTable*,&SgAsmJvmFileHeader::p_method_table> {
7190 using parent = SgAsmJvmFileHeader;
7192 static constexpr size_t position{8};
7193 static constexpr char const * const name{"method_table"};
7194 static constexpr char const * const typestr{"SgAsmJvmMethodTable*"};
7195 static constexpr bool traverse{false};
7196 static constexpr auto mbr_ptr{&SgAsmJvmFileHeader::p_method_table};
7197 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7198 using bind = Desc<SgAsmJvmFileHeader, SgAsmJvmMethodTable* SgAsmJvmFileHeader::*, &SgAsmJvmFileHeader::p_method_table>;
7199};
7200template <> struct describe_field_t<SgAsmJvmFileHeader,SgAsmJvmAttributeTable*,&SgAsmJvmFileHeader::p_attribute_table> {
7201 using parent = SgAsmJvmFileHeader;
7203 static constexpr size_t position{9};
7204 static constexpr char const * const name{"attribute_table"};
7205 static constexpr char const * const typestr{"SgAsmJvmAttributeTable*"};
7206 static constexpr bool traverse{false};
7207 static constexpr auto mbr_ptr{&SgAsmJvmFileHeader::p_attribute_table};
7208 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7209 using bind = Desc<SgAsmJvmFileHeader, SgAsmJvmAttributeTable* SgAsmJvmFileHeader::*, &SgAsmJvmFileHeader::p_attribute_table>;
7210};
7220template <> struct node_from_variant_t<219> { using type = SgAsmJvmFileHeader; };
7221
7222// Class: AsmJvmNode
7232template <> struct node_from_variant_t<220> { using type = SgAsmJvmNode; };
7233
7234// Class: AsmLEEntryPoint
7235template <> struct describe_field_t<SgAsmLEEntryPoint,SgAsmLEEntryPointPtrList,&SgAsmLEEntryPoint::p_entries> {
7236 using parent = SgAsmLEEntryPoint;
7237 using field_type = SgAsmLEEntryPointPtrList;
7238 static constexpr size_t position{0};
7239 static constexpr char const * const name{"entries"};
7240 static constexpr char const * const typestr{"SgAsmLEEntryPointPtrList"};
7241 static constexpr bool traverse{true};
7242 static constexpr auto mbr_ptr{&SgAsmLEEntryPoint::p_entries};
7243 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7244 using bind = Desc<SgAsmLEEntryPoint, SgAsmLEEntryPointPtrList SgAsmLEEntryPoint::*, &SgAsmLEEntryPoint::p_entries>;
7245};
7246template <> struct describe_field_t<SgAsmLEEntryPoint,unsigned,&SgAsmLEEntryPoint::p_flags> {
7247 using parent = SgAsmLEEntryPoint;
7248 using field_type = unsigned;
7249 static constexpr size_t position{1};
7250 static constexpr char const * const name{"flags"};
7251 static constexpr char const * const typestr{"unsigned"};
7252 static constexpr bool traverse{false};
7253 static constexpr auto mbr_ptr{&SgAsmLEEntryPoint::p_flags};
7254 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7255 using bind = Desc<SgAsmLEEntryPoint, unsigned SgAsmLEEntryPoint::*, &SgAsmLEEntryPoint::p_flags>;
7256};
7257template <> struct describe_field_t<SgAsmLEEntryPoint,unsigned,&SgAsmLEEntryPoint::p_objnum> {
7258 using parent = SgAsmLEEntryPoint;
7259 using field_type = unsigned;
7260 static constexpr size_t position{2};
7261 static constexpr char const * const name{"objnum"};
7262 static constexpr char const * const typestr{"unsigned"};
7263 static constexpr bool traverse{false};
7264 static constexpr auto mbr_ptr{&SgAsmLEEntryPoint::p_objnum};
7265 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7266 using bind = Desc<SgAsmLEEntryPoint, unsigned SgAsmLEEntryPoint::*, &SgAsmLEEntryPoint::p_objnum>;
7267};
7268template <> struct describe_field_t<SgAsmLEEntryPoint,unsigned,&SgAsmLEEntryPoint::p_entry_type> {
7269 using parent = SgAsmLEEntryPoint;
7270 using field_type = unsigned;
7271 static constexpr size_t position{3};
7272 static constexpr char const * const name{"entry_type"};
7273 static constexpr char const * const typestr{"unsigned"};
7274 static constexpr bool traverse{false};
7275 static constexpr auto mbr_ptr{&SgAsmLEEntryPoint::p_entry_type};
7276 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7277 using bind = Desc<SgAsmLEEntryPoint, unsigned SgAsmLEEntryPoint::*, &SgAsmLEEntryPoint::p_entry_type>;
7278};
7279template <> struct describe_field_t<SgAsmLEEntryPoint,unsigned,&SgAsmLEEntryPoint::p_res1> {
7280 using parent = SgAsmLEEntryPoint;
7281 using field_type = unsigned;
7282 static constexpr size_t position{4};
7283 static constexpr char const * const name{"res1"};
7284 static constexpr char const * const typestr{"unsigned"};
7285 static constexpr bool traverse{false};
7286 static constexpr auto mbr_ptr{&SgAsmLEEntryPoint::p_res1};
7287 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7288 using bind = Desc<SgAsmLEEntryPoint, unsigned SgAsmLEEntryPoint::*, &SgAsmLEEntryPoint::p_res1>;
7289};
7290template <> struct describe_field_t<SgAsmLEEntryPoint,Rose::BinaryAnalysis::Address,&SgAsmLEEntryPoint::p_entry_offset> {
7291 using parent = SgAsmLEEntryPoint;
7292 using field_type = Rose::BinaryAnalysis::Address;
7293 static constexpr size_t position{5};
7294 static constexpr char const * const name{"entry_offset"};
7295 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
7296 static constexpr bool traverse{false};
7297 static constexpr auto mbr_ptr{&SgAsmLEEntryPoint::p_entry_offset};
7298 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7299 using bind = Desc<SgAsmLEEntryPoint, Rose::BinaryAnalysis::Address SgAsmLEEntryPoint::*, &SgAsmLEEntryPoint::p_entry_offset>;
7300};
7310template <> struct node_from_variant_t<221> { using type = SgAsmLEEntryPoint; };
7311
7312// Class: AsmLEEntryTable
7313template <> struct describe_field_t<SgAsmLEEntryTable,SgSizeTList,&SgAsmLEEntryTable::p_bundle_sizes> {
7314 using parent = SgAsmLEEntryTable;
7315 using field_type = SgSizeTList;
7316 static constexpr size_t position{0};
7317 static constexpr char const * const name{"bundle_sizes"};
7318 static constexpr char const * const typestr{"SgSizeTList"};
7319 static constexpr bool traverse{false};
7320 static constexpr auto mbr_ptr{&SgAsmLEEntryTable::p_bundle_sizes};
7321 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7322 using bind = Desc<SgAsmLEEntryTable, SgSizeTList SgAsmLEEntryTable::*, &SgAsmLEEntryTable::p_bundle_sizes>;
7323};
7324template <> struct describe_field_t<SgAsmLEEntryTable,SgAsmLEEntryPointPtrList,&SgAsmLEEntryTable::p_entries> {
7325 using parent = SgAsmLEEntryTable;
7326 using field_type = SgAsmLEEntryPointPtrList;
7327 static constexpr size_t position{1};
7328 static constexpr char const * const name{"entries"};
7329 static constexpr char const * const typestr{"SgAsmLEEntryPointPtrList"};
7330 static constexpr bool traverse{true};
7331 static constexpr auto mbr_ptr{&SgAsmLEEntryTable::p_entries};
7332 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7333 using bind = Desc<SgAsmLEEntryTable, SgAsmLEEntryPointPtrList SgAsmLEEntryTable::*, &SgAsmLEEntryTable::p_entries>;
7334};
7336 using node = SgAsmLEEntryTable;
7337 using base = SgAsmGenericSection;
7338 static constexpr char const * const name{"AsmLEEntryTable"};
7339 static constexpr unsigned long variant{222};
7340 static constexpr bool concrete{true};
7341 using subclasses_t = mp::List<>;
7343};
7344template <> struct node_from_variant_t<222> { using type = SgAsmLEEntryTable; };
7345
7346// Class: AsmLEFileHeader
7347template <> struct describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_byte_order> {
7348 using parent = SgAsmLEFileHeader;
7349 using field_type = unsigned;
7350 static constexpr size_t position{0};
7351 static constexpr char const * const name{"e_byte_order"};
7352 static constexpr char const * const typestr{"unsigned"};
7353 static constexpr bool traverse{false};
7354 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_byte_order};
7355 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7356 using bind = Desc<SgAsmLEFileHeader, unsigned SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_byte_order>;
7357};
7358template <> struct describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_word_order> {
7359 using parent = SgAsmLEFileHeader;
7360 using field_type = unsigned;
7361 static constexpr size_t position{1};
7362 static constexpr char const * const name{"e_word_order"};
7363 static constexpr char const * const typestr{"unsigned"};
7364 static constexpr bool traverse{false};
7365 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_word_order};
7366 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7367 using bind = Desc<SgAsmLEFileHeader, unsigned SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_word_order>;
7368};
7369template <> struct describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_format_level> {
7370 using parent = SgAsmLEFileHeader;
7371 using field_type = unsigned;
7372 static constexpr size_t position{2};
7373 static constexpr char const * const name{"e_format_level"};
7374 static constexpr char const * const typestr{"unsigned"};
7375 static constexpr bool traverse{false};
7376 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_format_level};
7377 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7378 using bind = Desc<SgAsmLEFileHeader, unsigned SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_format_level>;
7379};
7380template <> struct describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_cpu_type> {
7381 using parent = SgAsmLEFileHeader;
7382 using field_type = unsigned;
7383 static constexpr size_t position{3};
7384 static constexpr char const * const name{"e_cpu_type"};
7385 static constexpr char const * const typestr{"unsigned"};
7386 static constexpr bool traverse{false};
7387 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_cpu_type};
7388 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7389 using bind = Desc<SgAsmLEFileHeader, unsigned SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_cpu_type>;
7390};
7391template <> struct describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_os_type> {
7392 using parent = SgAsmLEFileHeader;
7393 using field_type = unsigned;
7394 static constexpr size_t position{4};
7395 static constexpr char const * const name{"e_os_type"};
7396 static constexpr char const * const typestr{"unsigned"};
7397 static constexpr bool traverse{false};
7398 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_os_type};
7399 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7400 using bind = Desc<SgAsmLEFileHeader, unsigned SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_os_type>;
7401};
7402template <> struct describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_module_version> {
7403 using parent = SgAsmLEFileHeader;
7404 using field_type = unsigned;
7405 static constexpr size_t position{5};
7406 static constexpr char const * const name{"e_module_version"};
7407 static constexpr char const * const typestr{"unsigned"};
7408 static constexpr bool traverse{false};
7409 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_module_version};
7410 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7411 using bind = Desc<SgAsmLEFileHeader, unsigned SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_module_version>;
7412};
7413template <> struct describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_flags> {
7414 using parent = SgAsmLEFileHeader;
7415 using field_type = unsigned;
7416 static constexpr size_t position{6};
7417 static constexpr char const * const name{"e_flags"};
7418 static constexpr char const * const typestr{"unsigned"};
7419 static constexpr bool traverse{false};
7420 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_flags};
7421 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7422 using bind = Desc<SgAsmLEFileHeader, unsigned SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_flags>;
7423};
7424template <> struct describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_eip_section> {
7425 using parent = SgAsmLEFileHeader;
7426 using field_type = unsigned;
7427 static constexpr size_t position{7};
7428 static constexpr char const * const name{"e_eip_section"};
7429 static constexpr char const * const typestr{"unsigned"};
7430 static constexpr bool traverse{false};
7431 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_eip_section};
7432 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7433 using bind = Desc<SgAsmLEFileHeader, unsigned SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_eip_section>;
7434};
7435template <> struct describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_esp_section> {
7436 using parent = SgAsmLEFileHeader;
7437 using field_type = unsigned;
7438 static constexpr size_t position{8};
7439 static constexpr char const * const name{"e_esp_section"};
7440 static constexpr char const * const typestr{"unsigned"};
7441 static constexpr bool traverse{false};
7442 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_esp_section};
7443 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7444 using bind = Desc<SgAsmLEFileHeader, unsigned SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_esp_section>;
7445};
7446template <> struct describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_last_page_size> {
7447 using parent = SgAsmLEFileHeader;
7448 using field_type = unsigned;
7449 static constexpr size_t position{9};
7450 static constexpr char const * const name{"e_last_page_size"};
7451 static constexpr char const * const typestr{"unsigned"};
7452 static constexpr bool traverse{false};
7453 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_last_page_size};
7454 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7455 using bind = Desc<SgAsmLEFileHeader, unsigned SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_last_page_size>;
7456};
7457template <> struct describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_page_offset_shift> {
7458 using parent = SgAsmLEFileHeader;
7459 using field_type = unsigned;
7460 static constexpr size_t position{10};
7461 static constexpr char const * const name{"e_page_offset_shift"};
7462 static constexpr char const * const typestr{"unsigned"};
7463 static constexpr bool traverse{false};
7464 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_page_offset_shift};
7465 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7466 using bind = Desc<SgAsmLEFileHeader, unsigned SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_page_offset_shift>;
7467};
7468template <> struct describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_fixup_sect_cksum> {
7469 using parent = SgAsmLEFileHeader;
7470 using field_type = unsigned;
7471 static constexpr size_t position{11};
7472 static constexpr char const * const name{"e_fixup_sect_cksum"};
7473 static constexpr char const * const typestr{"unsigned"};
7474 static constexpr bool traverse{false};
7475 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_fixup_sect_cksum};
7476 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7477 using bind = Desc<SgAsmLEFileHeader, unsigned SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_fixup_sect_cksum>;
7478};
7479template <> struct describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_loader_sect_cksum> {
7480 using parent = SgAsmLEFileHeader;
7481 using field_type = unsigned;
7482 static constexpr size_t position{12};
7483 static constexpr char const * const name{"e_loader_sect_cksum"};
7484 static constexpr char const * const typestr{"unsigned"};
7485 static constexpr bool traverse{false};
7486 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_loader_sect_cksum};
7487 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7488 using bind = Desc<SgAsmLEFileHeader, unsigned SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_loader_sect_cksum>;
7489};
7490template <> struct describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_secttab_nentries> {
7491 using parent = SgAsmLEFileHeader;
7492 using field_type = unsigned;
7493 static constexpr size_t position{13};
7494 static constexpr char const * const name{"e_secttab_nentries"};
7495 static constexpr char const * const typestr{"unsigned"};
7496 static constexpr bool traverse{false};
7497 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_secttab_nentries};
7498 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7499 using bind = Desc<SgAsmLEFileHeader, unsigned SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_secttab_nentries>;
7500};
7501template <> struct describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_rsrctab_nentries> {
7502 using parent = SgAsmLEFileHeader;
7503 using field_type = unsigned;
7504 static constexpr size_t position{14};
7505 static constexpr char const * const name{"e_rsrctab_nentries"};
7506 static constexpr char const * const typestr{"unsigned"};
7507 static constexpr bool traverse{false};
7508 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_rsrctab_nentries};
7509 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7510 using bind = Desc<SgAsmLEFileHeader, unsigned SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_rsrctab_nentries>;
7511};
7512template <> struct describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_fmtdirtab_nentries> {
7513 using parent = SgAsmLEFileHeader;
7514 using field_type = unsigned;
7515 static constexpr size_t position{15};
7516 static constexpr char const * const name{"e_fmtdirtab_nentries"};
7517 static constexpr char const * const typestr{"unsigned"};
7518 static constexpr bool traverse{false};
7519 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_fmtdirtab_nentries};
7520 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7521 using bind = Desc<SgAsmLEFileHeader, unsigned SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_fmtdirtab_nentries>;
7522};
7523template <> struct describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_import_modtab_nentries> {
7524 using parent = SgAsmLEFileHeader;
7525 using field_type = unsigned;
7526 static constexpr size_t position{16};
7527 static constexpr char const * const name{"e_import_modtab_nentries"};
7528 static constexpr char const * const typestr{"unsigned"};
7529 static constexpr bool traverse{false};
7530 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_import_modtab_nentries};
7531 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7532 using bind = Desc<SgAsmLEFileHeader, unsigned SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_import_modtab_nentries>;
7533};
7534template <> struct describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_preload_npages> {
7535 using parent = SgAsmLEFileHeader;
7536 using field_type = unsigned;
7537 static constexpr size_t position{17};
7538 static constexpr char const * const name{"e_preload_npages"};
7539 static constexpr char const * const typestr{"unsigned"};
7540 static constexpr bool traverse{false};
7541 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_preload_npages};
7542 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7543 using bind = Desc<SgAsmLEFileHeader, unsigned SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_preload_npages>;
7544};
7545template <> struct describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_nonresnametab_size> {
7546 using parent = SgAsmLEFileHeader;
7547 using field_type = unsigned;
7548 static constexpr size_t position{18};
7549 static constexpr char const * const name{"e_nonresnametab_size"};
7550 static constexpr char const * const typestr{"unsigned"};
7551 static constexpr bool traverse{false};
7552 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_nonresnametab_size};
7553 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7554 using bind = Desc<SgAsmLEFileHeader, unsigned SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_nonresnametab_size>;
7555};
7556template <> struct describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_nonresnametab_cksum> {
7557 using parent = SgAsmLEFileHeader;
7558 using field_type = unsigned;
7559 static constexpr size_t position{19};
7560 static constexpr char const * const name{"e_nonresnametab_cksum"};
7561 static constexpr char const * const typestr{"unsigned"};
7562 static constexpr bool traverse{false};
7563 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_nonresnametab_cksum};
7564 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7565 using bind = Desc<SgAsmLEFileHeader, unsigned SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_nonresnametab_cksum>;
7566};
7567template <> struct describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_auto_ds_section> {
7568 using parent = SgAsmLEFileHeader;
7569 using field_type = unsigned;
7570 static constexpr size_t position{20};
7571 static constexpr char const * const name{"e_auto_ds_section"};
7572 static constexpr char const * const typestr{"unsigned"};
7573 static constexpr bool traverse{false};
7574 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_auto_ds_section};
7575 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7576 using bind = Desc<SgAsmLEFileHeader, unsigned SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_auto_ds_section>;
7577};
7578template <> struct describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_debug_info_size> {
7579 using parent = SgAsmLEFileHeader;
7580 using field_type = unsigned;
7581 static constexpr size_t position{21};
7582 static constexpr char const * const name{"e_debug_info_size"};
7583 static constexpr char const * const typestr{"unsigned"};
7584 static constexpr bool traverse{false};
7585 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_debug_info_size};
7586 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7587 using bind = Desc<SgAsmLEFileHeader, unsigned SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_debug_info_size>;
7588};
7589template <> struct describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_num_instance_preload> {
7590 using parent = SgAsmLEFileHeader;
7591 using field_type = unsigned;
7592 static constexpr size_t position{22};
7593 static constexpr char const * const name{"e_num_instance_preload"};
7594 static constexpr char const * const typestr{"unsigned"};
7595 static constexpr bool traverse{false};
7596 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_num_instance_preload};
7597 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7598 using bind = Desc<SgAsmLEFileHeader, unsigned SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_num_instance_preload>;
7599};
7600template <> struct describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_num_instance_demand> {
7601 using parent = SgAsmLEFileHeader;
7602 using field_type = unsigned;
7603 static constexpr size_t position{23};
7604 static constexpr char const * const name{"e_num_instance_demand"};
7605 static constexpr char const * const typestr{"unsigned"};
7606 static constexpr bool traverse{false};
7607 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_num_instance_demand};
7608 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7609 using bind = Desc<SgAsmLEFileHeader, unsigned SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_num_instance_demand>;
7610};
7611template <> struct describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_heap_size> {
7612 using parent = SgAsmLEFileHeader;
7613 using field_type = unsigned;
7614 static constexpr size_t position{24};
7615 static constexpr char const * const name{"e_heap_size"};
7616 static constexpr char const * const typestr{"unsigned"};
7617 static constexpr bool traverse{false};
7618 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_heap_size};
7619 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7620 using bind = Desc<SgAsmLEFileHeader, unsigned SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_heap_size>;
7621};
7622template <> struct describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_npages> {
7623 using parent = SgAsmLEFileHeader;
7624 using field_type = Rose::BinaryAnalysis::Address;
7625 static constexpr size_t position{25};
7626 static constexpr char const * const name{"e_npages"};
7627 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
7628 static constexpr bool traverse{false};
7629 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_npages};
7630 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7631 using bind = Desc<SgAsmLEFileHeader, Rose::BinaryAnalysis::Address SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_npages>;
7632};
7633template <> struct describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_eip> {
7634 using parent = SgAsmLEFileHeader;
7635 using field_type = Rose::BinaryAnalysis::Address;
7636 static constexpr size_t position{26};
7637 static constexpr char const * const name{"e_eip"};
7638 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
7639 static constexpr bool traverse{false};
7640 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_eip};
7641 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7642 using bind = Desc<SgAsmLEFileHeader, Rose::BinaryAnalysis::Address SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_eip>;
7643};
7644template <> struct describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_esp> {
7645 using parent = SgAsmLEFileHeader;
7646 using field_type = Rose::BinaryAnalysis::Address;
7647 static constexpr size_t position{27};
7648 static constexpr char const * const name{"e_esp"};
7649 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
7650 static constexpr bool traverse{false};
7651 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_esp};
7652 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7653 using bind = Desc<SgAsmLEFileHeader, Rose::BinaryAnalysis::Address SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_esp>;
7654};
7655template <> struct describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_page_size> {
7656 using parent = SgAsmLEFileHeader;
7657 using field_type = Rose::BinaryAnalysis::Address;
7658 static constexpr size_t position{28};
7659 static constexpr char const * const name{"e_page_size"};
7660 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
7661 static constexpr bool traverse{false};
7662 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_page_size};
7663 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7664 using bind = Desc<SgAsmLEFileHeader, Rose::BinaryAnalysis::Address SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_page_size>;
7665};
7666template <> struct describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_fixup_sect_size> {
7667 using parent = SgAsmLEFileHeader;
7668 using field_type = Rose::BinaryAnalysis::Address;
7669 static constexpr size_t position{29};
7670 static constexpr char const * const name{"e_fixup_sect_size"};
7671 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
7672 static constexpr bool traverse{false};
7673 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_fixup_sect_size};
7674 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7675 using bind = Desc<SgAsmLEFileHeader, Rose::BinaryAnalysis::Address SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_fixup_sect_size>;
7676};
7677template <> struct describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_loader_sect_size> {
7678 using parent = SgAsmLEFileHeader;
7679 using field_type = Rose::BinaryAnalysis::Address;
7680 static constexpr size_t position{30};
7681 static constexpr char const * const name{"e_loader_sect_size"};
7682 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
7683 static constexpr bool traverse{false};
7684 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_loader_sect_size};
7685 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7686 using bind = Desc<SgAsmLEFileHeader, Rose::BinaryAnalysis::Address SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_loader_sect_size>;
7687};
7688template <> struct describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_secttab_rfo> {
7689 using parent = SgAsmLEFileHeader;
7690 using field_type = Rose::BinaryAnalysis::Address;
7691 static constexpr size_t position{31};
7692 static constexpr char const * const name{"e_secttab_rfo"};
7693 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
7694 static constexpr bool traverse{false};
7695 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_secttab_rfo};
7696 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7697 using bind = Desc<SgAsmLEFileHeader, Rose::BinaryAnalysis::Address SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_secttab_rfo>;
7698};
7699template <> struct describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_pagetab_rfo> {
7700 using parent = SgAsmLEFileHeader;
7701 using field_type = Rose::BinaryAnalysis::Address;
7702 static constexpr size_t position{32};
7703 static constexpr char const * const name{"e_pagetab_rfo"};
7704 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
7705 static constexpr bool traverse{false};
7706 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_pagetab_rfo};
7707 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7708 using bind = Desc<SgAsmLEFileHeader, Rose::BinaryAnalysis::Address SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_pagetab_rfo>;
7709};
7710template <> struct describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_iterpages_offset> {
7711 using parent = SgAsmLEFileHeader;
7712 using field_type = Rose::BinaryAnalysis::Address;
7713 static constexpr size_t position{33};
7714 static constexpr char const * const name{"e_iterpages_offset"};
7715 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
7716 static constexpr bool traverse{false};
7717 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_iterpages_offset};
7718 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7719 using bind = Desc<SgAsmLEFileHeader, Rose::BinaryAnalysis::Address SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_iterpages_offset>;
7720};
7721template <> struct describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_rsrctab_rfo> {
7722 using parent = SgAsmLEFileHeader;
7723 using field_type = Rose::BinaryAnalysis::Address;
7724 static constexpr size_t position{34};
7725 static constexpr char const * const name{"e_rsrctab_rfo"};
7726 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
7727 static constexpr bool traverse{false};
7728 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_rsrctab_rfo};
7729 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7730 using bind = Desc<SgAsmLEFileHeader, Rose::BinaryAnalysis::Address SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_rsrctab_rfo>;
7731};
7732template <> struct describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_resnametab_rfo> {
7733 using parent = SgAsmLEFileHeader;
7734 using field_type = Rose::BinaryAnalysis::Address;
7735 static constexpr size_t position{35};
7736 static constexpr char const * const name{"e_resnametab_rfo"};
7737 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
7738 static constexpr bool traverse{false};
7739 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_resnametab_rfo};
7740 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7741 using bind = Desc<SgAsmLEFileHeader, Rose::BinaryAnalysis::Address SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_resnametab_rfo>;
7742};
7743template <> struct describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_entrytab_rfo> {
7744 using parent = SgAsmLEFileHeader;
7745 using field_type = Rose::BinaryAnalysis::Address;
7746 static constexpr size_t position{36};
7747 static constexpr char const * const name{"e_entrytab_rfo"};
7748 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
7749 static constexpr bool traverse{false};
7750 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_entrytab_rfo};
7751 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7752 using bind = Desc<SgAsmLEFileHeader, Rose::BinaryAnalysis::Address SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_entrytab_rfo>;
7753};
7754template <> struct describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_fmtdirtab_rfo> {
7755 using parent = SgAsmLEFileHeader;
7756 using field_type = Rose::BinaryAnalysis::Address;
7757 static constexpr size_t position{37};
7758 static constexpr char const * const name{"e_fmtdirtab_rfo"};
7759 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
7760 static constexpr bool traverse{false};
7761 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_fmtdirtab_rfo};
7762 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7763 using bind = Desc<SgAsmLEFileHeader, Rose::BinaryAnalysis::Address SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_fmtdirtab_rfo>;
7764};
7765template <> struct describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_fixup_pagetab_rfo> {
7766 using parent = SgAsmLEFileHeader;
7767 using field_type = Rose::BinaryAnalysis::Address;
7768 static constexpr size_t position{38};
7769 static constexpr char const * const name{"e_fixup_pagetab_rfo"};
7770 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
7771 static constexpr bool traverse{false};
7772 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_fixup_pagetab_rfo};
7773 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7774 using bind = Desc<SgAsmLEFileHeader, Rose::BinaryAnalysis::Address SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_fixup_pagetab_rfo>;
7775};
7776template <> struct describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_fixup_rectab_rfo> {
7777 using parent = SgAsmLEFileHeader;
7778 using field_type = Rose::BinaryAnalysis::Address;
7779 static constexpr size_t position{39};
7780 static constexpr char const * const name{"e_fixup_rectab_rfo"};
7781 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
7782 static constexpr bool traverse{false};
7783 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_fixup_rectab_rfo};
7784 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7785 using bind = Desc<SgAsmLEFileHeader, Rose::BinaryAnalysis::Address SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_fixup_rectab_rfo>;
7786};
7787template <> struct describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_import_modtab_rfo> {
7788 using parent = SgAsmLEFileHeader;
7789 using field_type = Rose::BinaryAnalysis::Address;
7790 static constexpr size_t position{40};
7791 static constexpr char const * const name{"e_import_modtab_rfo"};
7792 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
7793 static constexpr bool traverse{false};
7794 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_import_modtab_rfo};
7795 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7796 using bind = Desc<SgAsmLEFileHeader, Rose::BinaryAnalysis::Address SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_import_modtab_rfo>;
7797};
7798template <> struct describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_import_proctab_rfo> {
7799 using parent = SgAsmLEFileHeader;
7800 using field_type = Rose::BinaryAnalysis::Address;
7801 static constexpr size_t position{41};
7802 static constexpr char const * const name{"e_import_proctab_rfo"};
7803 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
7804 static constexpr bool traverse{false};
7805 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_import_proctab_rfo};
7806 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7807 using bind = Desc<SgAsmLEFileHeader, Rose::BinaryAnalysis::Address SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_import_proctab_rfo>;
7808};
7809template <> struct describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_ppcksumtab_rfo> {
7810 using parent = SgAsmLEFileHeader;
7811 using field_type = Rose::BinaryAnalysis::Address;
7812 static constexpr size_t position{42};
7813 static constexpr char const * const name{"e_ppcksumtab_rfo"};
7814 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
7815 static constexpr bool traverse{false};
7816 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_ppcksumtab_rfo};
7817 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7818 using bind = Desc<SgAsmLEFileHeader, Rose::BinaryAnalysis::Address SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_ppcksumtab_rfo>;
7819};
7820template <> struct describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_data_pages_offset> {
7821 using parent = SgAsmLEFileHeader;
7822 using field_type = Rose::BinaryAnalysis::Address;
7823 static constexpr size_t position{43};
7824 static constexpr char const * const name{"e_data_pages_offset"};
7825 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
7826 static constexpr bool traverse{false};
7827 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_data_pages_offset};
7828 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7829 using bind = Desc<SgAsmLEFileHeader, Rose::BinaryAnalysis::Address SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_data_pages_offset>;
7830};
7831template <> struct describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_nonresnametab_offset> {
7832 using parent = SgAsmLEFileHeader;
7833 using field_type = Rose::BinaryAnalysis::Address;
7834 static constexpr size_t position{44};
7835 static constexpr char const * const name{"e_nonresnametab_offset"};
7836 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
7837 static constexpr bool traverse{false};
7838 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_nonresnametab_offset};
7839 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7840 using bind = Desc<SgAsmLEFileHeader, Rose::BinaryAnalysis::Address SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_nonresnametab_offset>;
7841};
7842template <> struct describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_debug_info_rfo> {
7843 using parent = SgAsmLEFileHeader;
7844 using field_type = Rose::BinaryAnalysis::Address;
7845 static constexpr size_t position{45};
7846 static constexpr char const * const name{"e_debug_info_rfo"};
7847 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
7848 static constexpr bool traverse{false};
7849 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_e_debug_info_rfo};
7850 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7851 using bind = Desc<SgAsmLEFileHeader, Rose::BinaryAnalysis::Address SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_e_debug_info_rfo>;
7852};
7853template <> struct describe_field_t<SgAsmLEFileHeader,SgAsmDOSExtendedHeader*,&SgAsmLEFileHeader::p_dos2Header> {
7854 using parent = SgAsmLEFileHeader;
7856 static constexpr size_t position{46};
7857 static constexpr char const * const name{"dos2Header"};
7858 static constexpr char const * const typestr{"SgAsmDOSExtendedHeader*"};
7859 static constexpr bool traverse{true};
7860 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_dos2Header};
7861 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7862 using bind = Desc<SgAsmLEFileHeader, SgAsmDOSExtendedHeader* SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_dos2Header>;
7863};
7864template <> struct describe_field_t<SgAsmLEFileHeader,SgAsmLESectionTable*,&SgAsmLEFileHeader::p_sectionTable> {
7865 using parent = SgAsmLEFileHeader;
7867 static constexpr size_t position{47};
7868 static constexpr char const * const name{"sectionTable"};
7869 static constexpr char const * const typestr{"SgAsmLESectionTable*"};
7870 static constexpr bool traverse{false};
7871 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_sectionTable};
7872 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7873 using bind = Desc<SgAsmLEFileHeader, SgAsmLESectionTable* SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_sectionTable>;
7874};
7875template <> struct describe_field_t<SgAsmLEFileHeader,SgAsmLEPageTable*,&SgAsmLEFileHeader::p_pageTable> {
7876 using parent = SgAsmLEFileHeader;
7878 static constexpr size_t position{48};
7879 static constexpr char const * const name{"pageTable"};
7880 static constexpr char const * const typestr{"SgAsmLEPageTable*"};
7881 static constexpr bool traverse{true};
7882 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_pageTable};
7883 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7884 using bind = Desc<SgAsmLEFileHeader, SgAsmLEPageTable* SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_pageTable>;
7885};
7886template <> struct describe_field_t<SgAsmLEFileHeader,SgAsmLENameTable*,&SgAsmLEFileHeader::p_residentNameTable> {
7887 using parent = SgAsmLEFileHeader;
7889 static constexpr size_t position{49};
7890 static constexpr char const * const name{"residentNameTable"};
7891 static constexpr char const * const typestr{"SgAsmLENameTable*"};
7892 static constexpr bool traverse{true};
7893 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_residentNameTable};
7894 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7895 using bind = Desc<SgAsmLEFileHeader, SgAsmLENameTable* SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_residentNameTable>;
7896};
7897template <> struct describe_field_t<SgAsmLEFileHeader,SgAsmLENameTable*,&SgAsmLEFileHeader::p_nonresidentNameTable> {
7898 using parent = SgAsmLEFileHeader;
7900 static constexpr size_t position{50};
7901 static constexpr char const * const name{"nonresidentNameTable"};
7902 static constexpr char const * const typestr{"SgAsmLENameTable*"};
7903 static constexpr bool traverse{true};
7904 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_nonresidentNameTable};
7905 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7906 using bind = Desc<SgAsmLEFileHeader, SgAsmLENameTable* SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_nonresidentNameTable>;
7907};
7908template <> struct describe_field_t<SgAsmLEFileHeader,SgAsmLEEntryTable*,&SgAsmLEFileHeader::p_entryTable> {
7909 using parent = SgAsmLEFileHeader;
7911 static constexpr size_t position{51};
7912 static constexpr char const * const name{"entryTable"};
7913 static constexpr char const * const typestr{"SgAsmLEEntryTable*"};
7914 static constexpr bool traverse{true};
7915 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_entryTable};
7916 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7917 using bind = Desc<SgAsmLEFileHeader, SgAsmLEEntryTable* SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_entryTable>;
7918};
7919template <> struct describe_field_t<SgAsmLEFileHeader,SgAsmLERelocTable*,&SgAsmLEFileHeader::p_relocationTable> {
7920 using parent = SgAsmLEFileHeader;
7922 static constexpr size_t position{52};
7923 static constexpr char const * const name{"relocationTable"};
7924 static constexpr char const * const typestr{"SgAsmLERelocTable*"};
7925 static constexpr bool traverse{true};
7926 static constexpr auto mbr_ptr{&SgAsmLEFileHeader::p_relocationTable};
7927 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7928 using bind = Desc<SgAsmLEFileHeader, SgAsmLERelocTable* SgAsmLEFileHeader::*, &SgAsmLEFileHeader::p_relocationTable>;
7929};
7931 using node = SgAsmLEFileHeader;
7932 using base = SgAsmGenericHeader;
7933 static constexpr char const * const name{"AsmLEFileHeader"};
7934 static constexpr unsigned long variant{223};
7935 static constexpr bool concrete{true};
7936 using subclasses_t = mp::List<>;
7937 using fields_t = mp::List<describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_byte_order>, describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_word_order>, describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_format_level>, describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_cpu_type>, describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_os_type>, describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_module_version>, describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_flags>, describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_eip_section>, describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_esp_section>, describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_last_page_size>, describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_page_offset_shift>, describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_fixup_sect_cksum>, describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_loader_sect_cksum>, describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_secttab_nentries>, describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_rsrctab_nentries>, describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_fmtdirtab_nentries>, describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_import_modtab_nentries>, describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_preload_npages>, describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_nonresnametab_size>, describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_nonresnametab_cksum>, describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_auto_ds_section>, describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_debug_info_size>, describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_num_instance_preload>, describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_num_instance_demand>, describe_field_t<SgAsmLEFileHeader,unsigned,&SgAsmLEFileHeader::p_e_heap_size>, describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_npages>, describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_eip>, describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_esp>, describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_page_size>, describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_fixup_sect_size>, describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_loader_sect_size>, describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_secttab_rfo>, describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_pagetab_rfo>, describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_iterpages_offset>, describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_rsrctab_rfo>, describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_resnametab_rfo>, describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_entrytab_rfo>, describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_fmtdirtab_rfo>, describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_fixup_pagetab_rfo>, describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_fixup_rectab_rfo>, describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_import_modtab_rfo>, describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_import_proctab_rfo>, describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_ppcksumtab_rfo>, describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_data_pages_offset>, describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_nonresnametab_offset>, describe_field_t<SgAsmLEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmLEFileHeader::p_e_debug_info_rfo>, describe_field_t<SgAsmLEFileHeader,SgAsmDOSExtendedHeader*,&SgAsmLEFileHeader::p_dos2Header>, describe_field_t<SgAsmLEFileHeader,SgAsmLESectionTable*,&SgAsmLEFileHeader::p_sectionTable>, describe_field_t<SgAsmLEFileHeader,SgAsmLEPageTable*,&SgAsmLEFileHeader::p_pageTable>, describe_field_t<SgAsmLEFileHeader,SgAsmLENameTable*,&SgAsmLEFileHeader::p_residentNameTable>, describe_field_t<SgAsmLEFileHeader,SgAsmLENameTable*,&SgAsmLEFileHeader::p_nonresidentNameTable>, describe_field_t<SgAsmLEFileHeader,SgAsmLEEntryTable*,&SgAsmLEFileHeader::p_entryTable>, describe_field_t<SgAsmLEFileHeader,SgAsmLERelocTable*,&SgAsmLEFileHeader::p_relocationTable>>;
7938};
7939template <> struct node_from_variant_t<223> { using type = SgAsmLEFileHeader; };
7940
7941// Class: AsmLENameTable
7942template <> struct describe_field_t<SgAsmLENameTable,SgStringList,&SgAsmLENameTable::p_names> {
7943 using parent = SgAsmLENameTable;
7944 using field_type = SgStringList;
7945 static constexpr size_t position{0};
7946 static constexpr char const * const name{"names"};
7947 static constexpr char const * const typestr{"SgStringList"};
7948 static constexpr bool traverse{false};
7949 static constexpr auto mbr_ptr{&SgAsmLENameTable::p_names};
7950 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7951 using bind = Desc<SgAsmLENameTable, SgStringList SgAsmLENameTable::*, &SgAsmLENameTable::p_names>;
7952};
7953template <> struct describe_field_t<SgAsmLENameTable,SgUnsignedList,&SgAsmLENameTable::p_ordinals> {
7954 using parent = SgAsmLENameTable;
7955 using field_type = SgUnsignedList;
7956 static constexpr size_t position{1};
7957 static constexpr char const * const name{"ordinals"};
7958 static constexpr char const * const typestr{"SgUnsignedList"};
7959 static constexpr bool traverse{false};
7960 static constexpr auto mbr_ptr{&SgAsmLENameTable::p_ordinals};
7961 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7962 using bind = Desc<SgAsmLENameTable, SgUnsignedList SgAsmLENameTable::*, &SgAsmLENameTable::p_ordinals>;
7963};
7965 using node = SgAsmLENameTable;
7966 using base = SgAsmGenericSection;
7967 static constexpr char const * const name{"AsmLENameTable"};
7968 static constexpr unsigned long variant{224};
7969 static constexpr bool concrete{true};
7970 using subclasses_t = mp::List<>;
7972};
7973template <> struct node_from_variant_t<224> { using type = SgAsmLENameTable; };
7974
7975// Class: AsmLEPageTable
7976template <> struct describe_field_t<SgAsmLEPageTable,SgAsmLEPageTableEntryPtrList,&SgAsmLEPageTable::p_entries> {
7977 using parent = SgAsmLEPageTable;
7978 using field_type = SgAsmLEPageTableEntryPtrList;
7979 static constexpr size_t position{0};
7980 static constexpr char const * const name{"entries"};
7981 static constexpr char const * const typestr{"SgAsmLEPageTableEntryPtrList"};
7982 static constexpr bool traverse{true};
7983 static constexpr auto mbr_ptr{&SgAsmLEPageTable::p_entries};
7984 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
7985 using bind = Desc<SgAsmLEPageTable, SgAsmLEPageTableEntryPtrList SgAsmLEPageTable::*, &SgAsmLEPageTable::p_entries>;
7986};
7988 using node = SgAsmLEPageTable;
7989 using base = SgAsmGenericSection;
7990 static constexpr char const * const name{"AsmLEPageTable"};
7991 static constexpr unsigned long variant{225};
7992 static constexpr bool concrete{true};
7993 using subclasses_t = mp::List<>;
7995};
7996template <> struct node_from_variant_t<225> { using type = SgAsmLEPageTable; };
7997
7998// Class: AsmLEPageTableEntry
7999template <> struct describe_field_t<SgAsmLEPageTableEntry,unsigned,&SgAsmLEPageTableEntry::p_pageno> {
8001 using field_type = unsigned;
8002 static constexpr size_t position{0};
8003 static constexpr char const * const name{"pageno"};
8004 static constexpr char const * const typestr{"unsigned"};
8005 static constexpr bool traverse{false};
8006 static constexpr auto mbr_ptr{&SgAsmLEPageTableEntry::p_pageno};
8007 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8008 using bind = Desc<SgAsmLEPageTableEntry, unsigned SgAsmLEPageTableEntry::*, &SgAsmLEPageTableEntry::p_pageno>;
8009};
8010template <> struct describe_field_t<SgAsmLEPageTableEntry,unsigned,&SgAsmLEPageTableEntry::p_flags> {
8012 using field_type = unsigned;
8013 static constexpr size_t position{1};
8014 static constexpr char const * const name{"flags"};
8015 static constexpr char const * const typestr{"unsigned"};
8016 static constexpr bool traverse{false};
8017 static constexpr auto mbr_ptr{&SgAsmLEPageTableEntry::p_flags};
8018 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8019 using bind = Desc<SgAsmLEPageTableEntry, unsigned SgAsmLEPageTableEntry::*, &SgAsmLEPageTableEntry::p_flags>;
8020};
8024 static constexpr char const * const name{"AsmLEPageTableEntry"};
8025 static constexpr unsigned long variant{226};
8026 static constexpr bool concrete{true};
8027 using subclasses_t = mp::List<>;
8029};
8030template <> struct node_from_variant_t<226> { using type = SgAsmLEPageTableEntry; };
8031
8032// Class: AsmLERelocTable
8033template <> struct describe_field_t<SgAsmLERelocTable,SgAsmLERelocEntryPtrList,&SgAsmLERelocTable::p_entries> {
8034 using parent = SgAsmLERelocTable;
8035 using field_type = SgAsmLERelocEntryPtrList;
8036 static constexpr size_t position{0};
8037 static constexpr char const * const name{"entries"};
8038 static constexpr char const * const typestr{"SgAsmLERelocEntryPtrList"};
8039 static constexpr bool traverse{true};
8040 static constexpr auto mbr_ptr{&SgAsmLERelocTable::p_entries};
8041 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8042 using bind = Desc<SgAsmLERelocTable, SgAsmLERelocEntryPtrList SgAsmLERelocTable::*, &SgAsmLERelocTable::p_entries>;
8043};
8045 using node = SgAsmLERelocTable;
8046 using base = SgAsmGenericSection;
8047 static constexpr char const * const name{"AsmLERelocTable"};
8048 static constexpr unsigned long variant{227};
8049 static constexpr bool concrete{true};
8050 using subclasses_t = mp::List<>;
8052};
8053template <> struct node_from_variant_t<227> { using type = SgAsmLERelocTable; };
8054
8055// Class: AsmLESection
8056template <> struct describe_field_t<SgAsmLESection,SgAsmLESectionTableEntry*,&SgAsmLESection::p_sectionTableEntry> {
8057 using parent = SgAsmLESection;
8059 static constexpr size_t position{0};
8060 static constexpr char const * const name{"sectionTableEntry"};
8061 static constexpr char const * const typestr{"SgAsmLESectionTableEntry*"};
8062 static constexpr bool traverse{true};
8063 static constexpr auto mbr_ptr{&SgAsmLESection::p_sectionTableEntry};
8064 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8065 using bind = Desc<SgAsmLESection, SgAsmLESectionTableEntry* SgAsmLESection::*, &SgAsmLESection::p_sectionTableEntry>;
8066};
8067template <> struct describe_node_t<SgAsmLESection> {
8068 using node = SgAsmLESection;
8069 using base = SgAsmGenericSection;
8070 static constexpr char const * const name{"AsmLESection"};
8071 static constexpr unsigned long variant{228};
8072 static constexpr bool concrete{true};
8073 using subclasses_t = mp::List<>;
8075};
8076template <> struct node_from_variant_t<228> { using type = SgAsmLESection; };
8077
8078// Class: AsmLESectionTable
8080 using node = SgAsmLESectionTable;
8081 using base = SgAsmGenericSection;
8082 static constexpr char const * const name{"AsmLESectionTable"};
8083 static constexpr unsigned long variant{229};
8084 static constexpr bool concrete{true};
8085 using subclasses_t = mp::List<>;
8086 using fields_t = mp::List<>;
8087};
8088template <> struct node_from_variant_t<229> { using type = SgAsmLESectionTable; };
8089
8090// Class: AsmLESectionTableEntry
8091template <> struct describe_field_t<SgAsmLESectionTableEntry,unsigned,&SgAsmLESectionTableEntry::p_flags> {
8093 using field_type = unsigned;
8094 static constexpr size_t position{0};
8095 static constexpr char const * const name{"flags"};
8096 static constexpr char const * const typestr{"unsigned"};
8097 static constexpr bool traverse{false};
8098 static constexpr auto mbr_ptr{&SgAsmLESectionTableEntry::p_flags};
8099 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8100 using bind = Desc<SgAsmLESectionTableEntry, unsigned SgAsmLESectionTableEntry::*, &SgAsmLESectionTableEntry::p_flags>;
8101};
8102template <> struct describe_field_t<SgAsmLESectionTableEntry,unsigned,&SgAsmLESectionTableEntry::p_pageMapIndex> {
8104 using field_type = unsigned;
8105 static constexpr size_t position{1};
8106 static constexpr char const * const name{"pageMapIndex"};
8107 static constexpr char const * const typestr{"unsigned"};
8108 static constexpr bool traverse{false};
8109 static constexpr auto mbr_ptr{&SgAsmLESectionTableEntry::p_pageMapIndex};
8110 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8111 using bind = Desc<SgAsmLESectionTableEntry, unsigned SgAsmLESectionTableEntry::*, &SgAsmLESectionTableEntry::p_pageMapIndex>;
8112};
8113template <> struct describe_field_t<SgAsmLESectionTableEntry,unsigned,&SgAsmLESectionTableEntry::p_pageMapNEntries> {
8115 using field_type = unsigned;
8116 static constexpr size_t position{2};
8117 static constexpr char const * const name{"pageMapNEntries"};
8118 static constexpr char const * const typestr{"unsigned"};
8119 static constexpr bool traverse{false};
8120 static constexpr auto mbr_ptr{&SgAsmLESectionTableEntry::p_pageMapNEntries};
8121 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8122 using bind = Desc<SgAsmLESectionTableEntry, unsigned SgAsmLESectionTableEntry::*, &SgAsmLESectionTableEntry::p_pageMapNEntries>;
8123};
8124template <> struct describe_field_t<SgAsmLESectionTableEntry,unsigned,&SgAsmLESectionTableEntry::p_res1> {
8126 using field_type = unsigned;
8127 static constexpr size_t position{3};
8128 static constexpr char const * const name{"res1"};
8129 static constexpr char const * const typestr{"unsigned"};
8130 static constexpr bool traverse{false};
8131 static constexpr auto mbr_ptr{&SgAsmLESectionTableEntry::p_res1};
8132 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8133 using bind = Desc<SgAsmLESectionTableEntry, unsigned SgAsmLESectionTableEntry::*, &SgAsmLESectionTableEntry::p_res1>;
8134};
8135template <> struct describe_field_t<SgAsmLESectionTableEntry,Rose::BinaryAnalysis::Address,&SgAsmLESectionTableEntry::p_mappedSize> {
8137 using field_type = Rose::BinaryAnalysis::Address;
8138 static constexpr size_t position{4};
8139 static constexpr char const * const name{"mappedSize"};
8140 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
8141 static constexpr bool traverse{false};
8142 static constexpr auto mbr_ptr{&SgAsmLESectionTableEntry::p_mappedSize};
8143 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8144 using bind = Desc<SgAsmLESectionTableEntry, Rose::BinaryAnalysis::Address SgAsmLESectionTableEntry::*, &SgAsmLESectionTableEntry::p_mappedSize>;
8145};
8146template <> struct describe_field_t<SgAsmLESectionTableEntry,Rose::BinaryAnalysis::Address,&SgAsmLESectionTableEntry::p_baseAddr> {
8148 using field_type = Rose::BinaryAnalysis::Address;
8149 static constexpr size_t position{5};
8150 static constexpr char const * const name{"baseAddr"};
8151 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
8152 static constexpr bool traverse{false};
8153 static constexpr auto mbr_ptr{&SgAsmLESectionTableEntry::p_baseAddr};
8154 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8155 using bind = Desc<SgAsmLESectionTableEntry, Rose::BinaryAnalysis::Address SgAsmLESectionTableEntry::*, &SgAsmLESectionTableEntry::p_baseAddr>;
8156};
8166template <> struct node_from_variant_t<230> { using type = SgAsmLESectionTableEntry; };
8167
8168// Class: AsmM68kInstruction
8169template <> struct describe_field_t<SgAsmM68kInstruction,Rose::BinaryAnalysis::M68kInstructionKind,&SgAsmM68kInstruction::p_kind> {
8171 using field_type = Rose::BinaryAnalysis::M68kInstructionKind;
8172 static constexpr size_t position{0};
8173 static constexpr char const * const name{"kind"};
8174 static constexpr char const * const typestr{"Rose::BinaryAnalysis::M68kInstructionKind"};
8175 static constexpr bool traverse{false};
8176 static constexpr auto mbr_ptr{&SgAsmM68kInstruction::p_kind};
8177 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8178 using bind = Desc<SgAsmM68kInstruction, Rose::BinaryAnalysis::M68kInstructionKind SgAsmM68kInstruction::*, &SgAsmM68kInstruction::p_kind>;
8179};
8180template <> struct describe_field_t<SgAsmM68kInstruction,Rose::BinaryAnalysis::M68kDataFormat,&SgAsmM68kInstruction::p_dataFormat> {
8182 using field_type = Rose::BinaryAnalysis::M68kDataFormat;
8183 static constexpr size_t position{1};
8184 static constexpr char const * const name{"dataFormat"};
8185 static constexpr char const * const typestr{"Rose::BinaryAnalysis::M68kDataFormat"};
8186 static constexpr bool traverse{false};
8187 static constexpr auto mbr_ptr{&SgAsmM68kInstruction::p_dataFormat};
8188 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8189 using bind = Desc<SgAsmM68kInstruction, Rose::BinaryAnalysis::M68kDataFormat SgAsmM68kInstruction::*, &SgAsmM68kInstruction::p_dataFormat>;
8190};
8192 using node = SgAsmM68kInstruction;
8193 using base = SgAsmInstruction;
8194 static constexpr char const * const name{"AsmM68kInstruction"};
8195 static constexpr unsigned long variant{231};
8196 static constexpr bool concrete{true};
8197 using subclasses_t = mp::List<>;
8199};
8200template <> struct node_from_variant_t<231> { using type = SgAsmM68kInstruction; };
8201
8202// Class: AsmMemoryReferenceExpression
8203template <> struct describe_field_t<SgAsmMemoryReferenceExpression,SgAsmExpression*,&SgAsmMemoryReferenceExpression::p_address> {
8205 using field_type = SgAsmExpression*;
8206 static constexpr size_t position{0};
8207 static constexpr char const * const name{"address"};
8208 static constexpr char const * const typestr{"SgAsmExpression*"};
8209 static constexpr bool traverse{true};
8210 static constexpr auto mbr_ptr{&SgAsmMemoryReferenceExpression::p_address};
8211 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8212 using bind = Desc<SgAsmMemoryReferenceExpression, SgAsmExpression* SgAsmMemoryReferenceExpression::*, &SgAsmMemoryReferenceExpression::p_address>;
8213};
8214template <> struct describe_field_t<SgAsmMemoryReferenceExpression,SgAsmExpression*,&SgAsmMemoryReferenceExpression::p_segment> {
8216 using field_type = SgAsmExpression*;
8217 static constexpr size_t position{1};
8218 static constexpr char const * const name{"segment"};
8219 static constexpr char const * const typestr{"SgAsmExpression*"};
8220 static constexpr bool traverse{true};
8221 static constexpr auto mbr_ptr{&SgAsmMemoryReferenceExpression::p_segment};
8222 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8223 using bind = Desc<SgAsmMemoryReferenceExpression, SgAsmExpression* SgAsmMemoryReferenceExpression::*, &SgAsmMemoryReferenceExpression::p_segment>;
8224};
8227 using base = SgAsmExpression;
8228 static constexpr char const * const name{"AsmMemoryReferenceExpression"};
8229 static constexpr unsigned long variant{232};
8230 static constexpr bool concrete{true};
8231 using subclasses_t = mp::List<>;
8233};
8234template <> struct node_from_variant_t<232> { using type = SgAsmMemoryReferenceExpression; };
8235
8236// Class: AsmMipsInstruction
8237template <> struct describe_field_t<SgAsmMipsInstruction,Rose::BinaryAnalysis::MipsInstructionKind,&SgAsmMipsInstruction::p_kind> {
8239 using field_type = Rose::BinaryAnalysis::MipsInstructionKind;
8240 static constexpr size_t position{0};
8241 static constexpr char const * const name{"kind"};
8242 static constexpr char const * const typestr{"Rose::BinaryAnalysis::MipsInstructionKind"};
8243 static constexpr bool traverse{false};
8244 static constexpr auto mbr_ptr{&SgAsmMipsInstruction::p_kind};
8245 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8246 using bind = Desc<SgAsmMipsInstruction, Rose::BinaryAnalysis::MipsInstructionKind SgAsmMipsInstruction::*, &SgAsmMipsInstruction::p_kind>;
8247};
8249 using node = SgAsmMipsInstruction;
8250 using base = SgAsmInstruction;
8251 static constexpr char const * const name{"AsmMipsInstruction"};
8252 static constexpr unsigned long variant{233};
8253 static constexpr bool concrete{true};
8254 using subclasses_t = mp::List<>;
8256};
8257template <> struct node_from_variant_t<233> { using type = SgAsmMipsInstruction; };
8258
8259// Class: AsmNEEntryPoint
8260template <> struct describe_field_t<SgAsmNEEntryPoint,SgAsmNEEntryPoint::NEEntryFlags,&SgAsmNEEntryPoint::p_flags> {
8261 using parent = SgAsmNEEntryPoint;
8262 using field_type = SgAsmNEEntryPoint::NEEntryFlags;
8263 static constexpr size_t position{0};
8264 static constexpr char const * const name{"flags"};
8265 static constexpr char const * const typestr{"SgAsmNEEntryPoint::NEEntryFlags"};
8266 static constexpr bool traverse{false};
8267 static constexpr auto mbr_ptr{&SgAsmNEEntryPoint::p_flags};
8268 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8269 using bind = Desc<SgAsmNEEntryPoint, SgAsmNEEntryPoint::NEEntryFlags SgAsmNEEntryPoint::*, &SgAsmNEEntryPoint::p_flags>;
8270};
8271template <> struct describe_field_t<SgAsmNEEntryPoint,unsigned,&SgAsmNEEntryPoint::p_int3f> {
8272 using parent = SgAsmNEEntryPoint;
8273 using field_type = unsigned;
8274 static constexpr size_t position{1};
8275 static constexpr char const * const name{"int3f"};
8276 static constexpr char const * const typestr{"unsigned"};
8277 static constexpr bool traverse{false};
8278 static constexpr auto mbr_ptr{&SgAsmNEEntryPoint::p_int3f};
8279 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8280 using bind = Desc<SgAsmNEEntryPoint, unsigned SgAsmNEEntryPoint::*, &SgAsmNEEntryPoint::p_int3f>;
8281};
8282template <> struct describe_field_t<SgAsmNEEntryPoint,unsigned,&SgAsmNEEntryPoint::p_sectionIndex> {
8283 using parent = SgAsmNEEntryPoint;
8284 using field_type = unsigned;
8285 static constexpr size_t position{2};
8286 static constexpr char const * const name{"sectionIndex"};
8287 static constexpr char const * const typestr{"unsigned"};
8288 static constexpr bool traverse{false};
8289 static constexpr auto mbr_ptr{&SgAsmNEEntryPoint::p_sectionIndex};
8290 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8291 using bind = Desc<SgAsmNEEntryPoint, unsigned SgAsmNEEntryPoint::*, &SgAsmNEEntryPoint::p_sectionIndex>;
8292};
8293template <> struct describe_field_t<SgAsmNEEntryPoint,unsigned,&SgAsmNEEntryPoint::p_sectionOffset> {
8294 using parent = SgAsmNEEntryPoint;
8295 using field_type = unsigned;
8296 static constexpr size_t position{3};
8297 static constexpr char const * const name{"sectionOffset"};
8298 static constexpr char const * const typestr{"unsigned"};
8299 static constexpr bool traverse{false};
8300 static constexpr auto mbr_ptr{&SgAsmNEEntryPoint::p_sectionOffset};
8301 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8302 using bind = Desc<SgAsmNEEntryPoint, unsigned SgAsmNEEntryPoint::*, &SgAsmNEEntryPoint::p_sectionOffset>;
8303};
8313template <> struct node_from_variant_t<234> { using type = SgAsmNEEntryPoint; };
8314
8315// Class: AsmNEEntryTable
8316template <> struct describe_field_t<SgAsmNEEntryTable,SgSizeTList,&SgAsmNEEntryTable::p_bundle_sizes> {
8317 using parent = SgAsmNEEntryTable;
8318 using field_type = SgSizeTList;
8319 static constexpr size_t position{0};
8320 static constexpr char const * const name{"bundle_sizes"};
8321 static constexpr char const * const typestr{"SgSizeTList"};
8322 static constexpr bool traverse{false};
8323 static constexpr auto mbr_ptr{&SgAsmNEEntryTable::p_bundle_sizes};
8324 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8325 using bind = Desc<SgAsmNEEntryTable, SgSizeTList SgAsmNEEntryTable::*, &SgAsmNEEntryTable::p_bundle_sizes>;
8326};
8327template <> struct describe_field_t<SgAsmNEEntryTable,SgAsmNEEntryPointPtrList,&SgAsmNEEntryTable::p_entries> {
8328 using parent = SgAsmNEEntryTable;
8329 using field_type = SgAsmNEEntryPointPtrList;
8330 static constexpr size_t position{1};
8331 static constexpr char const * const name{"entries"};
8332 static constexpr char const * const typestr{"SgAsmNEEntryPointPtrList"};
8333 static constexpr bool traverse{true};
8334 static constexpr auto mbr_ptr{&SgAsmNEEntryTable::p_entries};
8335 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8336 using bind = Desc<SgAsmNEEntryTable, SgAsmNEEntryPointPtrList SgAsmNEEntryTable::*, &SgAsmNEEntryTable::p_entries>;
8337};
8339 using node = SgAsmNEEntryTable;
8340 using base = SgAsmGenericSection;
8341 static constexpr char const * const name{"AsmNEEntryTable"};
8342 static constexpr unsigned long variant{235};
8343 static constexpr bool concrete{true};
8344 using subclasses_t = mp::List<>;
8346};
8347template <> struct node_from_variant_t<235> { using type = SgAsmNEEntryTable; };
8348
8349// Class: AsmNEFileHeader
8350template <> struct describe_field_t<SgAsmNEFileHeader,unsigned,&SgAsmNEFileHeader::p_e_linker_major> {
8351 using parent = SgAsmNEFileHeader;
8352 using field_type = unsigned;
8353 static constexpr size_t position{0};
8354 static constexpr char const * const name{"e_linker_major"};
8355 static constexpr char const * const typestr{"unsigned"};
8356 static constexpr bool traverse{false};
8357 static constexpr auto mbr_ptr{&SgAsmNEFileHeader::p_e_linker_major};
8358 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8359 using bind = Desc<SgAsmNEFileHeader, unsigned SgAsmNEFileHeader::*, &SgAsmNEFileHeader::p_e_linker_major>;
8360};
8361template <> struct describe_field_t<SgAsmNEFileHeader,unsigned,&SgAsmNEFileHeader::p_e_linker_minor> {
8362 using parent = SgAsmNEFileHeader;
8363 using field_type = unsigned;
8364 static constexpr size_t position{1};
8365 static constexpr char const * const name{"e_linker_minor"};
8366 static constexpr char const * const typestr{"unsigned"};
8367 static constexpr bool traverse{false};
8368 static constexpr auto mbr_ptr{&SgAsmNEFileHeader::p_e_linker_minor};
8369 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8370 using bind = Desc<SgAsmNEFileHeader, unsigned SgAsmNEFileHeader::*, &SgAsmNEFileHeader::p_e_linker_minor>;
8371};
8372template <> struct describe_field_t<SgAsmNEFileHeader,unsigned,&SgAsmNEFileHeader::p_e_checksum> {
8373 using parent = SgAsmNEFileHeader;
8374 using field_type = unsigned;
8375 static constexpr size_t position{2};
8376 static constexpr char const * const name{"e_checksum"};
8377 static constexpr char const * const typestr{"unsigned"};
8378 static constexpr bool traverse{false};
8379 static constexpr auto mbr_ptr{&SgAsmNEFileHeader::p_e_checksum};
8380 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8381 using bind = Desc<SgAsmNEFileHeader, unsigned SgAsmNEFileHeader::*, &SgAsmNEFileHeader::p_e_checksum>;
8382};
8383template <> struct describe_field_t<SgAsmNEFileHeader,unsigned,&SgAsmNEFileHeader::p_e_flags1> {
8384 using parent = SgAsmNEFileHeader;
8385 using field_type = unsigned;
8386 static constexpr size_t position{3};
8387 static constexpr char const * const name{"e_flags1"};
8388 static constexpr char const * const typestr{"unsigned"};
8389 static constexpr bool traverse{false};
8390 static constexpr auto mbr_ptr{&SgAsmNEFileHeader::p_e_flags1};
8391 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8392 using bind = Desc<SgAsmNEFileHeader, unsigned SgAsmNEFileHeader::*, &SgAsmNEFileHeader::p_e_flags1>;
8393};
8394template <> struct describe_field_t<SgAsmNEFileHeader,unsigned,&SgAsmNEFileHeader::p_e_autodata_sn> {
8395 using parent = SgAsmNEFileHeader;
8396 using field_type = unsigned;
8397 static constexpr size_t position{4};
8398 static constexpr char const * const name{"e_autodata_sn"};
8399 static constexpr char const * const typestr{"unsigned"};
8400 static constexpr bool traverse{false};
8401 static constexpr auto mbr_ptr{&SgAsmNEFileHeader::p_e_autodata_sn};
8402 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8403 using bind = Desc<SgAsmNEFileHeader, unsigned SgAsmNEFileHeader::*, &SgAsmNEFileHeader::p_e_autodata_sn>;
8404};
8405template <> struct describe_field_t<SgAsmNEFileHeader,unsigned,&SgAsmNEFileHeader::p_e_bss_size> {
8406 using parent = SgAsmNEFileHeader;
8407 using field_type = unsigned;
8408 static constexpr size_t position{5};
8409 static constexpr char const * const name{"e_bss_size"};
8410 static constexpr char const * const typestr{"unsigned"};
8411 static constexpr bool traverse{false};
8412 static constexpr auto mbr_ptr{&SgAsmNEFileHeader::p_e_bss_size};
8413 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8414 using bind = Desc<SgAsmNEFileHeader, unsigned SgAsmNEFileHeader::*, &SgAsmNEFileHeader::p_e_bss_size>;
8415};
8416template <> struct describe_field_t<SgAsmNEFileHeader,unsigned,&SgAsmNEFileHeader::p_e_stack_size> {
8417 using parent = SgAsmNEFileHeader;
8418 using field_type = unsigned;
8419 static constexpr size_t position{6};
8420 static constexpr char const * const name{"e_stack_size"};
8421 static constexpr char const * const typestr{"unsigned"};
8422 static constexpr bool traverse{false};
8423 static constexpr auto mbr_ptr{&SgAsmNEFileHeader::p_e_stack_size};
8424 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8425 using bind = Desc<SgAsmNEFileHeader, unsigned SgAsmNEFileHeader::*, &SgAsmNEFileHeader::p_e_stack_size>;
8426};
8427template <> struct describe_field_t<SgAsmNEFileHeader,unsigned,&SgAsmNEFileHeader::p_e_csip> {
8428 using parent = SgAsmNEFileHeader;
8429 using field_type = unsigned;
8430 static constexpr size_t position{7};
8431 static constexpr char const * const name{"e_csip"};
8432 static constexpr char const * const typestr{"unsigned"};
8433 static constexpr bool traverse{false};
8434 static constexpr auto mbr_ptr{&SgAsmNEFileHeader::p_e_csip};
8435 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8436 using bind = Desc<SgAsmNEFileHeader, unsigned SgAsmNEFileHeader::*, &SgAsmNEFileHeader::p_e_csip>;
8437};
8438template <> struct describe_field_t<SgAsmNEFileHeader,unsigned,&SgAsmNEFileHeader::p_e_sssp> {
8439 using parent = SgAsmNEFileHeader;
8440 using field_type = unsigned;
8441 static constexpr size_t position{8};
8442 static constexpr char const * const name{"e_sssp"};
8443 static constexpr char const * const typestr{"unsigned"};
8444 static constexpr bool traverse{false};
8445 static constexpr auto mbr_ptr{&SgAsmNEFileHeader::p_e_sssp};
8446 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8447 using bind = Desc<SgAsmNEFileHeader, unsigned SgAsmNEFileHeader::*, &SgAsmNEFileHeader::p_e_sssp>;
8448};
8449template <> struct describe_field_t<SgAsmNEFileHeader,unsigned,&SgAsmNEFileHeader::p_e_nsections> {
8450 using parent = SgAsmNEFileHeader;
8451 using field_type = unsigned;
8452 static constexpr size_t position{9};
8453 static constexpr char const * const name{"e_nsections"};
8454 static constexpr char const * const typestr{"unsigned"};
8455 static constexpr bool traverse{false};
8456 static constexpr auto mbr_ptr{&SgAsmNEFileHeader::p_e_nsections};
8457 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8458 using bind = Desc<SgAsmNEFileHeader, unsigned SgAsmNEFileHeader::*, &SgAsmNEFileHeader::p_e_nsections>;
8459};
8460template <> struct describe_field_t<SgAsmNEFileHeader,unsigned,&SgAsmNEFileHeader::p_e_nmodrefs> {
8461 using parent = SgAsmNEFileHeader;
8462 using field_type = unsigned;
8463 static constexpr size_t position{10};
8464 static constexpr char const * const name{"e_nmodrefs"};
8465 static constexpr char const * const typestr{"unsigned"};
8466 static constexpr bool traverse{false};
8467 static constexpr auto mbr_ptr{&SgAsmNEFileHeader::p_e_nmodrefs};
8468 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8469 using bind = Desc<SgAsmNEFileHeader, unsigned SgAsmNEFileHeader::*, &SgAsmNEFileHeader::p_e_nmodrefs>;
8470};
8471template <> struct describe_field_t<SgAsmNEFileHeader,unsigned,&SgAsmNEFileHeader::p_e_nnonresnames> {
8472 using parent = SgAsmNEFileHeader;
8473 using field_type = unsigned;
8474 static constexpr size_t position{11};
8475 static constexpr char const * const name{"e_nnonresnames"};
8476 static constexpr char const * const typestr{"unsigned"};
8477 static constexpr bool traverse{false};
8478 static constexpr auto mbr_ptr{&SgAsmNEFileHeader::p_e_nnonresnames};
8479 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8480 using bind = Desc<SgAsmNEFileHeader, unsigned SgAsmNEFileHeader::*, &SgAsmNEFileHeader::p_e_nnonresnames>;
8481};
8482template <> struct describe_field_t<SgAsmNEFileHeader,unsigned,&SgAsmNEFileHeader::p_e_nmovable_entries> {
8483 using parent = SgAsmNEFileHeader;
8484 using field_type = unsigned;
8485 static constexpr size_t position{12};
8486 static constexpr char const * const name{"e_nmovable_entries"};
8487 static constexpr char const * const typestr{"unsigned"};
8488 static constexpr bool traverse{false};
8489 static constexpr auto mbr_ptr{&SgAsmNEFileHeader::p_e_nmovable_entries};
8490 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8491 using bind = Desc<SgAsmNEFileHeader, unsigned SgAsmNEFileHeader::*, &SgAsmNEFileHeader::p_e_nmovable_entries>;
8492};
8493template <> struct describe_field_t<SgAsmNEFileHeader,unsigned,&SgAsmNEFileHeader::p_e_sector_align> {
8494 using parent = SgAsmNEFileHeader;
8495 using field_type = unsigned;
8496 static constexpr size_t position{13};
8497 static constexpr char const * const name{"e_sector_align"};
8498 static constexpr char const * const typestr{"unsigned"};
8499 static constexpr bool traverse{false};
8500 static constexpr auto mbr_ptr{&SgAsmNEFileHeader::p_e_sector_align};
8501 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8502 using bind = Desc<SgAsmNEFileHeader, unsigned SgAsmNEFileHeader::*, &SgAsmNEFileHeader::p_e_sector_align>;
8503};
8504template <> struct describe_field_t<SgAsmNEFileHeader,unsigned,&SgAsmNEFileHeader::p_e_nresources> {
8505 using parent = SgAsmNEFileHeader;
8506 using field_type = unsigned;
8507 static constexpr size_t position{14};
8508 static constexpr char const * const name{"e_nresources"};
8509 static constexpr char const * const typestr{"unsigned"};
8510 static constexpr bool traverse{false};
8511 static constexpr auto mbr_ptr{&SgAsmNEFileHeader::p_e_nresources};
8512 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8513 using bind = Desc<SgAsmNEFileHeader, unsigned SgAsmNEFileHeader::*, &SgAsmNEFileHeader::p_e_nresources>;
8514};
8515template <> struct describe_field_t<SgAsmNEFileHeader,unsigned,&SgAsmNEFileHeader::p_e_exetype> {
8516 using parent = SgAsmNEFileHeader;
8517 using field_type = unsigned;
8518 static constexpr size_t position{15};
8519 static constexpr char const * const name{"e_exetype"};
8520 static constexpr char const * const typestr{"unsigned"};
8521 static constexpr bool traverse{false};
8522 static constexpr auto mbr_ptr{&SgAsmNEFileHeader::p_e_exetype};
8523 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8524 using bind = Desc<SgAsmNEFileHeader, unsigned SgAsmNEFileHeader::*, &SgAsmNEFileHeader::p_e_exetype>;
8525};
8526template <> struct describe_field_t<SgAsmNEFileHeader,unsigned,&SgAsmNEFileHeader::p_e_flags2> {
8527 using parent = SgAsmNEFileHeader;
8528 using field_type = unsigned;
8529 static constexpr size_t position{16};
8530 static constexpr char const * const name{"e_flags2"};
8531 static constexpr char const * const typestr{"unsigned"};
8532 static constexpr bool traverse{false};
8533 static constexpr auto mbr_ptr{&SgAsmNEFileHeader::p_e_flags2};
8534 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8535 using bind = Desc<SgAsmNEFileHeader, unsigned SgAsmNEFileHeader::*, &SgAsmNEFileHeader::p_e_flags2>;
8536};
8537template <> struct describe_field_t<SgAsmNEFileHeader,unsigned,&SgAsmNEFileHeader::p_e_res1> {
8538 using parent = SgAsmNEFileHeader;
8539 using field_type = unsigned;
8540 static constexpr size_t position{17};
8541 static constexpr char const * const name{"e_res1"};
8542 static constexpr char const * const typestr{"unsigned"};
8543 static constexpr bool traverse{false};
8544 static constexpr auto mbr_ptr{&SgAsmNEFileHeader::p_e_res1};
8545 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8546 using bind = Desc<SgAsmNEFileHeader, unsigned SgAsmNEFileHeader::*, &SgAsmNEFileHeader::p_e_res1>;
8547};
8548template <> struct describe_field_t<SgAsmNEFileHeader,unsigned,&SgAsmNEFileHeader::p_e_winvers> {
8549 using parent = SgAsmNEFileHeader;
8550 using field_type = unsigned;
8551 static constexpr size_t position{18};
8552 static constexpr char const * const name{"e_winvers"};
8553 static constexpr char const * const typestr{"unsigned"};
8554 static constexpr bool traverse{false};
8555 static constexpr auto mbr_ptr{&SgAsmNEFileHeader::p_e_winvers};
8556 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8557 using bind = Desc<SgAsmNEFileHeader, unsigned SgAsmNEFileHeader::*, &SgAsmNEFileHeader::p_e_winvers>;
8558};
8559template <> struct describe_field_t<SgAsmNEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmNEFileHeader::p_e_entrytab_rfo> {
8560 using parent = SgAsmNEFileHeader;
8561 using field_type = Rose::BinaryAnalysis::Address;
8562 static constexpr size_t position{19};
8563 static constexpr char const * const name{"e_entrytab_rfo"};
8564 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
8565 static constexpr bool traverse{false};
8566 static constexpr auto mbr_ptr{&SgAsmNEFileHeader::p_e_entrytab_rfo};
8567 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8568 using bind = Desc<SgAsmNEFileHeader, Rose::BinaryAnalysis::Address SgAsmNEFileHeader::*, &SgAsmNEFileHeader::p_e_entrytab_rfo>;
8569};
8570template <> struct describe_field_t<SgAsmNEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmNEFileHeader::p_e_entrytab_size> {
8571 using parent = SgAsmNEFileHeader;
8572 using field_type = Rose::BinaryAnalysis::Address;
8573 static constexpr size_t position{20};
8574 static constexpr char const * const name{"e_entrytab_size"};
8575 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
8576 static constexpr bool traverse{false};
8577 static constexpr auto mbr_ptr{&SgAsmNEFileHeader::p_e_entrytab_size};
8578 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8579 using bind = Desc<SgAsmNEFileHeader, Rose::BinaryAnalysis::Address SgAsmNEFileHeader::*, &SgAsmNEFileHeader::p_e_entrytab_size>;
8580};
8581template <> struct describe_field_t<SgAsmNEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmNEFileHeader::p_e_sectab_rfo> {
8582 using parent = SgAsmNEFileHeader;
8583 using field_type = Rose::BinaryAnalysis::Address;
8584 static constexpr size_t position{21};
8585 static constexpr char const * const name{"e_sectab_rfo"};
8586 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
8587 static constexpr bool traverse{false};
8588 static constexpr auto mbr_ptr{&SgAsmNEFileHeader::p_e_sectab_rfo};
8589 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8590 using bind = Desc<SgAsmNEFileHeader, Rose::BinaryAnalysis::Address SgAsmNEFileHeader::*, &SgAsmNEFileHeader::p_e_sectab_rfo>;
8591};
8592template <> struct describe_field_t<SgAsmNEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmNEFileHeader::p_e_rsrctab_rfo> {
8593 using parent = SgAsmNEFileHeader;
8594 using field_type = Rose::BinaryAnalysis::Address;
8595 static constexpr size_t position{22};
8596 static constexpr char const * const name{"e_rsrctab_rfo"};
8597 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
8598 static constexpr bool traverse{false};
8599 static constexpr auto mbr_ptr{&SgAsmNEFileHeader::p_e_rsrctab_rfo};
8600 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8601 using bind = Desc<SgAsmNEFileHeader, Rose::BinaryAnalysis::Address SgAsmNEFileHeader::*, &SgAsmNEFileHeader::p_e_rsrctab_rfo>;
8602};
8603template <> struct describe_field_t<SgAsmNEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmNEFileHeader::p_e_resnametab_rfo> {
8604 using parent = SgAsmNEFileHeader;
8605 using field_type = Rose::BinaryAnalysis::Address;
8606 static constexpr size_t position{23};
8607 static constexpr char const * const name{"e_resnametab_rfo"};
8608 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
8609 static constexpr bool traverse{false};
8610 static constexpr auto mbr_ptr{&SgAsmNEFileHeader::p_e_resnametab_rfo};
8611 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8612 using bind = Desc<SgAsmNEFileHeader, Rose::BinaryAnalysis::Address SgAsmNEFileHeader::*, &SgAsmNEFileHeader::p_e_resnametab_rfo>;
8613};
8614template <> struct describe_field_t<SgAsmNEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmNEFileHeader::p_e_modreftab_rfo> {
8615 using parent = SgAsmNEFileHeader;
8616 using field_type = Rose::BinaryAnalysis::Address;
8617 static constexpr size_t position{24};
8618 static constexpr char const * const name{"e_modreftab_rfo"};
8619 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
8620 static constexpr bool traverse{false};
8621 static constexpr auto mbr_ptr{&SgAsmNEFileHeader::p_e_modreftab_rfo};
8622 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8623 using bind = Desc<SgAsmNEFileHeader, Rose::BinaryAnalysis::Address SgAsmNEFileHeader::*, &SgAsmNEFileHeader::p_e_modreftab_rfo>;
8624};
8625template <> struct describe_field_t<SgAsmNEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmNEFileHeader::p_e_importnametab_rfo> {
8626 using parent = SgAsmNEFileHeader;
8627 using field_type = Rose::BinaryAnalysis::Address;
8628 static constexpr size_t position{25};
8629 static constexpr char const * const name{"e_importnametab_rfo"};
8630 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
8631 static constexpr bool traverse{false};
8632 static constexpr auto mbr_ptr{&SgAsmNEFileHeader::p_e_importnametab_rfo};
8633 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8634 using bind = Desc<SgAsmNEFileHeader, Rose::BinaryAnalysis::Address SgAsmNEFileHeader::*, &SgAsmNEFileHeader::p_e_importnametab_rfo>;
8635};
8636template <> struct describe_field_t<SgAsmNEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmNEFileHeader::p_e_nonresnametab_offset> {
8637 using parent = SgAsmNEFileHeader;
8638 using field_type = Rose::BinaryAnalysis::Address;
8639 static constexpr size_t position{26};
8640 static constexpr char const * const name{"e_nonresnametab_offset"};
8641 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
8642 static constexpr bool traverse{false};
8643 static constexpr auto mbr_ptr{&SgAsmNEFileHeader::p_e_nonresnametab_offset};
8644 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8645 using bind = Desc<SgAsmNEFileHeader, Rose::BinaryAnalysis::Address SgAsmNEFileHeader::*, &SgAsmNEFileHeader::p_e_nonresnametab_offset>;
8646};
8647template <> struct describe_field_t<SgAsmNEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmNEFileHeader::p_e_fastload_sector> {
8648 using parent = SgAsmNEFileHeader;
8649 using field_type = Rose::BinaryAnalysis::Address;
8650 static constexpr size_t position{27};
8651 static constexpr char const * const name{"e_fastload_sector"};
8652 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
8653 static constexpr bool traverse{false};
8654 static constexpr auto mbr_ptr{&SgAsmNEFileHeader::p_e_fastload_sector};
8655 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8656 using bind = Desc<SgAsmNEFileHeader, Rose::BinaryAnalysis::Address SgAsmNEFileHeader::*, &SgAsmNEFileHeader::p_e_fastload_sector>;
8657};
8658template <> struct describe_field_t<SgAsmNEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmNEFileHeader::p_e_fastload_nsectors> {
8659 using parent = SgAsmNEFileHeader;
8660 using field_type = Rose::BinaryAnalysis::Address;
8661 static constexpr size_t position{28};
8662 static constexpr char const * const name{"e_fastload_nsectors"};
8663 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
8664 static constexpr bool traverse{false};
8665 static constexpr auto mbr_ptr{&SgAsmNEFileHeader::p_e_fastload_nsectors};
8666 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8667 using bind = Desc<SgAsmNEFileHeader, Rose::BinaryAnalysis::Address SgAsmNEFileHeader::*, &SgAsmNEFileHeader::p_e_fastload_nsectors>;
8668};
8669template <> struct describe_field_t<SgAsmNEFileHeader,SgAsmDOSExtendedHeader*,&SgAsmNEFileHeader::p_dos2Header> {
8670 using parent = SgAsmNEFileHeader;
8672 static constexpr size_t position{29};
8673 static constexpr char const * const name{"dos2Header"};
8674 static constexpr char const * const typestr{"SgAsmDOSExtendedHeader*"};
8675 static constexpr bool traverse{true};
8676 static constexpr auto mbr_ptr{&SgAsmNEFileHeader::p_dos2Header};
8677 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8678 using bind = Desc<SgAsmNEFileHeader, SgAsmDOSExtendedHeader* SgAsmNEFileHeader::*, &SgAsmNEFileHeader::p_dos2Header>;
8679};
8680template <> struct describe_field_t<SgAsmNEFileHeader,SgAsmNESectionTable*,&SgAsmNEFileHeader::p_sectionTable> {
8681 using parent = SgAsmNEFileHeader;
8683 static constexpr size_t position{30};
8684 static constexpr char const * const name{"sectionTable"};
8685 static constexpr char const * const typestr{"SgAsmNESectionTable*"};
8686 static constexpr bool traverse{false};
8687 static constexpr auto mbr_ptr{&SgAsmNEFileHeader::p_sectionTable};
8688 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8689 using bind = Desc<SgAsmNEFileHeader, SgAsmNESectionTable* SgAsmNEFileHeader::*, &SgAsmNEFileHeader::p_sectionTable>;
8690};
8691template <> struct describe_field_t<SgAsmNEFileHeader,SgAsmNENameTable*,&SgAsmNEFileHeader::p_residentNameTable> {
8692 using parent = SgAsmNEFileHeader;
8694 static constexpr size_t position{31};
8695 static constexpr char const * const name{"residentNameTable"};
8696 static constexpr char const * const typestr{"SgAsmNENameTable*"};
8697 static constexpr bool traverse{true};
8698 static constexpr auto mbr_ptr{&SgAsmNEFileHeader::p_residentNameTable};
8699 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8700 using bind = Desc<SgAsmNEFileHeader, SgAsmNENameTable* SgAsmNEFileHeader::*, &SgAsmNEFileHeader::p_residentNameTable>;
8701};
8702template <> struct describe_field_t<SgAsmNEFileHeader,SgAsmNENameTable*,&SgAsmNEFileHeader::p_nonresidentNameTable> {
8703 using parent = SgAsmNEFileHeader;
8705 static constexpr size_t position{32};
8706 static constexpr char const * const name{"nonresidentNameTable"};
8707 static constexpr char const * const typestr{"SgAsmNENameTable*"};
8708 static constexpr bool traverse{true};
8709 static constexpr auto mbr_ptr{&SgAsmNEFileHeader::p_nonresidentNameTable};
8710 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8711 using bind = Desc<SgAsmNEFileHeader, SgAsmNENameTable* SgAsmNEFileHeader::*, &SgAsmNEFileHeader::p_nonresidentNameTable>;
8712};
8713template <> struct describe_field_t<SgAsmNEFileHeader,SgAsmNEModuleTable*,&SgAsmNEFileHeader::p_moduleTable> {
8714 using parent = SgAsmNEFileHeader;
8716 static constexpr size_t position{33};
8717 static constexpr char const * const name{"moduleTable"};
8718 static constexpr char const * const typestr{"SgAsmNEModuleTable*"};
8719 static constexpr bool traverse{true};
8720 static constexpr auto mbr_ptr{&SgAsmNEFileHeader::p_moduleTable};
8721 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8722 using bind = Desc<SgAsmNEFileHeader, SgAsmNEModuleTable* SgAsmNEFileHeader::*, &SgAsmNEFileHeader::p_moduleTable>;
8723};
8724template <> struct describe_field_t<SgAsmNEFileHeader,SgAsmNEEntryTable*,&SgAsmNEFileHeader::p_entryTable> {
8725 using parent = SgAsmNEFileHeader;
8727 static constexpr size_t position{34};
8728 static constexpr char const * const name{"entryTable"};
8729 static constexpr char const * const typestr{"SgAsmNEEntryTable*"};
8730 static constexpr bool traverse{true};
8731 static constexpr auto mbr_ptr{&SgAsmNEFileHeader::p_entryTable};
8732 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8733 using bind = Desc<SgAsmNEFileHeader, SgAsmNEEntryTable* SgAsmNEFileHeader::*, &SgAsmNEFileHeader::p_entryTable>;
8734};
8736 using node = SgAsmNEFileHeader;
8737 using base = SgAsmGenericHeader;
8738 static constexpr char const * const name{"AsmNEFileHeader"};
8739 static constexpr unsigned long variant{236};
8740 static constexpr bool concrete{true};
8741 using subclasses_t = mp::List<>;
8742 using fields_t = mp::List<describe_field_t<SgAsmNEFileHeader,unsigned,&SgAsmNEFileHeader::p_e_linker_major>, describe_field_t<SgAsmNEFileHeader,unsigned,&SgAsmNEFileHeader::p_e_linker_minor>, describe_field_t<SgAsmNEFileHeader,unsigned,&SgAsmNEFileHeader::p_e_checksum>, describe_field_t<SgAsmNEFileHeader,unsigned,&SgAsmNEFileHeader::p_e_flags1>, describe_field_t<SgAsmNEFileHeader,unsigned,&SgAsmNEFileHeader::p_e_autodata_sn>, describe_field_t<SgAsmNEFileHeader,unsigned,&SgAsmNEFileHeader::p_e_bss_size>, describe_field_t<SgAsmNEFileHeader,unsigned,&SgAsmNEFileHeader::p_e_stack_size>, describe_field_t<SgAsmNEFileHeader,unsigned,&SgAsmNEFileHeader::p_e_csip>, describe_field_t<SgAsmNEFileHeader,unsigned,&SgAsmNEFileHeader::p_e_sssp>, describe_field_t<SgAsmNEFileHeader,unsigned,&SgAsmNEFileHeader::p_e_nsections>, describe_field_t<SgAsmNEFileHeader,unsigned,&SgAsmNEFileHeader::p_e_nmodrefs>, describe_field_t<SgAsmNEFileHeader,unsigned,&SgAsmNEFileHeader::p_e_nnonresnames>, describe_field_t<SgAsmNEFileHeader,unsigned,&SgAsmNEFileHeader::p_e_nmovable_entries>, describe_field_t<SgAsmNEFileHeader,unsigned,&SgAsmNEFileHeader::p_e_sector_align>, describe_field_t<SgAsmNEFileHeader,unsigned,&SgAsmNEFileHeader::p_e_nresources>, describe_field_t<SgAsmNEFileHeader,unsigned,&SgAsmNEFileHeader::p_e_exetype>, describe_field_t<SgAsmNEFileHeader,unsigned,&SgAsmNEFileHeader::p_e_flags2>, describe_field_t<SgAsmNEFileHeader,unsigned,&SgAsmNEFileHeader::p_e_res1>, describe_field_t<SgAsmNEFileHeader,unsigned,&SgAsmNEFileHeader::p_e_winvers>, describe_field_t<SgAsmNEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmNEFileHeader::p_e_entrytab_rfo>, describe_field_t<SgAsmNEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmNEFileHeader::p_e_entrytab_size>, describe_field_t<SgAsmNEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmNEFileHeader::p_e_sectab_rfo>, describe_field_t<SgAsmNEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmNEFileHeader::p_e_rsrctab_rfo>, describe_field_t<SgAsmNEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmNEFileHeader::p_e_resnametab_rfo>, describe_field_t<SgAsmNEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmNEFileHeader::p_e_modreftab_rfo>, describe_field_t<SgAsmNEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmNEFileHeader::p_e_importnametab_rfo>, describe_field_t<SgAsmNEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmNEFileHeader::p_e_nonresnametab_offset>, describe_field_t<SgAsmNEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmNEFileHeader::p_e_fastload_sector>, describe_field_t<SgAsmNEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmNEFileHeader::p_e_fastload_nsectors>, describe_field_t<SgAsmNEFileHeader,SgAsmDOSExtendedHeader*,&SgAsmNEFileHeader::p_dos2Header>, describe_field_t<SgAsmNEFileHeader,SgAsmNESectionTable*,&SgAsmNEFileHeader::p_sectionTable>, describe_field_t<SgAsmNEFileHeader,SgAsmNENameTable*,&SgAsmNEFileHeader::p_residentNameTable>, describe_field_t<SgAsmNEFileHeader,SgAsmNENameTable*,&SgAsmNEFileHeader::p_nonresidentNameTable>, describe_field_t<SgAsmNEFileHeader,SgAsmNEModuleTable*,&SgAsmNEFileHeader::p_moduleTable>, describe_field_t<SgAsmNEFileHeader,SgAsmNEEntryTable*,&SgAsmNEFileHeader::p_entryTable>>;
8743};
8744template <> struct node_from_variant_t<236> { using type = SgAsmNEFileHeader; };
8745
8746// Class: AsmNEModuleTable
8747template <> struct describe_field_t<SgAsmNEModuleTable,SgAsmNEStringTable*,&SgAsmNEModuleTable::p_strtab> {
8748 using parent = SgAsmNEModuleTable;
8750 static constexpr size_t position{0};
8751 static constexpr char const * const name{"strtab"};
8752 static constexpr char const * const typestr{"SgAsmNEStringTable*"};
8753 static constexpr bool traverse{true};
8754 static constexpr auto mbr_ptr{&SgAsmNEModuleTable::p_strtab};
8755 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8756 using bind = Desc<SgAsmNEModuleTable, SgAsmNEStringTable* SgAsmNEModuleTable::*, &SgAsmNEModuleTable::p_strtab>;
8757};
8758template <> struct describe_field_t<SgAsmNEModuleTable,SgAddressList,&SgAsmNEModuleTable::p_nameOffsets> {
8759 using parent = SgAsmNEModuleTable;
8760 using field_type = SgAddressList;
8761 static constexpr size_t position{1};
8762 static constexpr char const * const name{"nameOffsets"};
8763 static constexpr char const * const typestr{"SgAddressList"};
8764 static constexpr bool traverse{false};
8765 static constexpr auto mbr_ptr{&SgAsmNEModuleTable::p_nameOffsets};
8766 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8767 using bind = Desc<SgAsmNEModuleTable, SgAddressList SgAsmNEModuleTable::*, &SgAsmNEModuleTable::p_nameOffsets>;
8768};
8769template <> struct describe_field_t<SgAsmNEModuleTable,SgStringList,&SgAsmNEModuleTable::p_names> {
8770 using parent = SgAsmNEModuleTable;
8771 using field_type = SgStringList;
8772 static constexpr size_t position{2};
8773 static constexpr char const * const name{"names"};
8774 static constexpr char const * const typestr{"SgStringList"};
8775 static constexpr bool traverse{false};
8776 static constexpr auto mbr_ptr{&SgAsmNEModuleTable::p_names};
8777 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8778 using bind = Desc<SgAsmNEModuleTable, SgStringList SgAsmNEModuleTable::*, &SgAsmNEModuleTable::p_names>;
8779};
8781 using node = SgAsmNEModuleTable;
8782 using base = SgAsmGenericSection;
8783 static constexpr char const * const name{"AsmNEModuleTable"};
8784 static constexpr unsigned long variant{237};
8785 static constexpr bool concrete{true};
8786 using subclasses_t = mp::List<>;
8788};
8789template <> struct node_from_variant_t<237> { using type = SgAsmNEModuleTable; };
8790
8791// Class: AsmNENameTable
8792template <> struct describe_field_t<SgAsmNENameTable,SgStringList,&SgAsmNENameTable::p_names> {
8793 using parent = SgAsmNENameTable;
8794 using field_type = SgStringList;
8795 static constexpr size_t position{0};
8796 static constexpr char const * const name{"names"};
8797 static constexpr char const * const typestr{"SgStringList"};
8798 static constexpr bool traverse{false};
8799 static constexpr auto mbr_ptr{&SgAsmNENameTable::p_names};
8800 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8801 using bind = Desc<SgAsmNENameTable, SgStringList SgAsmNENameTable::*, &SgAsmNENameTable::p_names>;
8802};
8803template <> struct describe_field_t<SgAsmNENameTable,SgUnsignedList,&SgAsmNENameTable::p_ordinals> {
8804 using parent = SgAsmNENameTable;
8805 using field_type = SgUnsignedList;
8806 static constexpr size_t position{1};
8807 static constexpr char const * const name{"ordinals"};
8808 static constexpr char const * const typestr{"SgUnsignedList"};
8809 static constexpr bool traverse{false};
8810 static constexpr auto mbr_ptr{&SgAsmNENameTable::p_ordinals};
8811 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8812 using bind = Desc<SgAsmNENameTable, SgUnsignedList SgAsmNENameTable::*, &SgAsmNENameTable::p_ordinals>;
8813};
8815 using node = SgAsmNENameTable;
8816 using base = SgAsmGenericSection;
8817 static constexpr char const * const name{"AsmNENameTable"};
8818 static constexpr unsigned long variant{238};
8819 static constexpr bool concrete{true};
8820 using subclasses_t = mp::List<>;
8822};
8823template <> struct node_from_variant_t<238> { using type = SgAsmNENameTable; };
8824
8825// Class: AsmNERelocEntry
8826template <> struct describe_field_t<SgAsmNERelocEntry,SgAsmNERelocEntry::NERelocSrcType,&SgAsmNERelocEntry::p_src_type> {
8827 using parent = SgAsmNERelocEntry;
8828 using field_type = SgAsmNERelocEntry::NERelocSrcType;
8829 static constexpr size_t position{0};
8830 static constexpr char const * const name{"src_type"};
8831 static constexpr char const * const typestr{"SgAsmNERelocEntry::NERelocSrcType"};
8832 static constexpr bool traverse{false};
8833 static constexpr auto mbr_ptr{&SgAsmNERelocEntry::p_src_type};
8834 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8835 using bind = Desc<SgAsmNERelocEntry, SgAsmNERelocEntry::NERelocSrcType SgAsmNERelocEntry::*, &SgAsmNERelocEntry::p_src_type>;
8836};
8837template <> struct describe_field_t<SgAsmNERelocEntry,SgAsmNERelocEntry::NERelocModifiers,&SgAsmNERelocEntry::p_modifier> {
8838 using parent = SgAsmNERelocEntry;
8839 using field_type = SgAsmNERelocEntry::NERelocModifiers;
8840 static constexpr size_t position{1};
8841 static constexpr char const * const name{"modifier"};
8842 static constexpr char const * const typestr{"SgAsmNERelocEntry::NERelocModifiers"};
8843 static constexpr bool traverse{false};
8844 static constexpr auto mbr_ptr{&SgAsmNERelocEntry::p_modifier};
8845 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8846 using bind = Desc<SgAsmNERelocEntry, SgAsmNERelocEntry::NERelocModifiers SgAsmNERelocEntry::*, &SgAsmNERelocEntry::p_modifier>;
8847};
8848template <> struct describe_field_t<SgAsmNERelocEntry,SgAsmNERelocEntry::NERelocTgtType,&SgAsmNERelocEntry::p_tgt_type> {
8849 using parent = SgAsmNERelocEntry;
8850 using field_type = SgAsmNERelocEntry::NERelocTgtType;
8851 static constexpr size_t position{2};
8852 static constexpr char const * const name{"tgt_type"};
8853 static constexpr char const * const typestr{"SgAsmNERelocEntry::NERelocTgtType"};
8854 static constexpr bool traverse{false};
8855 static constexpr auto mbr_ptr{&SgAsmNERelocEntry::p_tgt_type};
8856 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8857 using bind = Desc<SgAsmNERelocEntry, SgAsmNERelocEntry::NERelocTgtType SgAsmNERelocEntry::*, &SgAsmNERelocEntry::p_tgt_type>;
8858};
8859template <> struct describe_field_t<SgAsmNERelocEntry,SgAsmNERelocEntry::NERelocFlags,&SgAsmNERelocEntry::p_flags> {
8860 using parent = SgAsmNERelocEntry;
8861 using field_type = SgAsmNERelocEntry::NERelocFlags;
8862 static constexpr size_t position{3};
8863 static constexpr char const * const name{"flags"};
8864 static constexpr char const * const typestr{"SgAsmNERelocEntry::NERelocFlags"};
8865 static constexpr bool traverse{false};
8866 static constexpr auto mbr_ptr{&SgAsmNERelocEntry::p_flags};
8867 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8868 using bind = Desc<SgAsmNERelocEntry, SgAsmNERelocEntry::NERelocFlags SgAsmNERelocEntry::*, &SgAsmNERelocEntry::p_flags>;
8869};
8870template <> struct describe_field_t<SgAsmNERelocEntry,Rose::BinaryAnalysis::Address,&SgAsmNERelocEntry::p_src_offset> {
8871 using parent = SgAsmNERelocEntry;
8872 using field_type = Rose::BinaryAnalysis::Address;
8873 static constexpr size_t position{4};
8874 static constexpr char const * const name{"src_offset"};
8875 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
8876 static constexpr bool traverse{false};
8877 static constexpr auto mbr_ptr{&SgAsmNERelocEntry::p_src_offset};
8878 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8879 using bind = Desc<SgAsmNERelocEntry, Rose::BinaryAnalysis::Address SgAsmNERelocEntry::*, &SgAsmNERelocEntry::p_src_offset>;
8880};
8881template <> struct describe_field_t<SgAsmNERelocEntry,SgAsmNERelocEntry::iref_type,&SgAsmNERelocEntry::p_iref> {
8882 using parent = SgAsmNERelocEntry;
8884 static constexpr size_t position{5};
8885 static constexpr char const * const name{"iref"};
8886 static constexpr char const * const typestr{"SgAsmNERelocEntry::iref_type"};
8887 static constexpr bool traverse{false};
8888 static constexpr auto mbr_ptr{&SgAsmNERelocEntry::p_iref};
8889 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8890 using bind = Desc<SgAsmNERelocEntry, SgAsmNERelocEntry::iref_type SgAsmNERelocEntry::*, &SgAsmNERelocEntry::p_iref>;
8891};
8892template <> struct describe_field_t<SgAsmNERelocEntry,SgAsmNERelocEntry::iord_type,&SgAsmNERelocEntry::p_iord> {
8893 using parent = SgAsmNERelocEntry;
8895 static constexpr size_t position{6};
8896 static constexpr char const * const name{"iord"};
8897 static constexpr char const * const typestr{"SgAsmNERelocEntry::iord_type"};
8898 static constexpr bool traverse{false};
8899 static constexpr auto mbr_ptr{&SgAsmNERelocEntry::p_iord};
8900 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8901 using bind = Desc<SgAsmNERelocEntry, SgAsmNERelocEntry::iord_type SgAsmNERelocEntry::*, &SgAsmNERelocEntry::p_iord>;
8902};
8903template <> struct describe_field_t<SgAsmNERelocEntry,SgAsmNERelocEntry::iname_type,&SgAsmNERelocEntry::p_iname> {
8904 using parent = SgAsmNERelocEntry;
8906 static constexpr size_t position{7};
8907 static constexpr char const * const name{"iname"};
8908 static constexpr char const * const typestr{"SgAsmNERelocEntry::iname_type"};
8909 static constexpr bool traverse{false};
8910 static constexpr auto mbr_ptr{&SgAsmNERelocEntry::p_iname};
8911 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8912 using bind = Desc<SgAsmNERelocEntry, SgAsmNERelocEntry::iname_type SgAsmNERelocEntry::*, &SgAsmNERelocEntry::p_iname>;
8913};
8914template <> struct describe_field_t<SgAsmNERelocEntry,SgAsmNERelocEntry::osfixup_type,&SgAsmNERelocEntry::p_osfixup> {
8915 using parent = SgAsmNERelocEntry;
8917 static constexpr size_t position{8};
8918 static constexpr char const * const name{"osfixup"};
8919 static constexpr char const * const typestr{"SgAsmNERelocEntry::osfixup_type"};
8920 static constexpr bool traverse{false};
8921 static constexpr auto mbr_ptr{&SgAsmNERelocEntry::p_osfixup};
8922 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8923 using bind = Desc<SgAsmNERelocEntry, SgAsmNERelocEntry::osfixup_type SgAsmNERelocEntry::*, &SgAsmNERelocEntry::p_osfixup>;
8924};
8934template <> struct node_from_variant_t<239> { using type = SgAsmNERelocEntry; };
8935
8936// Class: AsmNERelocTable
8937template <> struct describe_field_t<SgAsmNERelocTable,SgAsmNERelocEntryPtrList,&SgAsmNERelocTable::p_entries> {
8938 using parent = SgAsmNERelocTable;
8939 using field_type = SgAsmNERelocEntryPtrList;
8940 static constexpr size_t position{0};
8941 static constexpr char const * const name{"entries"};
8942 static constexpr char const * const typestr{"SgAsmNERelocEntryPtrList"};
8943 static constexpr bool traverse{true};
8944 static constexpr auto mbr_ptr{&SgAsmNERelocTable::p_entries};
8945 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8946 using bind = Desc<SgAsmNERelocTable, SgAsmNERelocEntryPtrList SgAsmNERelocTable::*, &SgAsmNERelocTable::p_entries>;
8947};
8949 using node = SgAsmNERelocTable;
8950 using base = SgAsmGenericSection;
8951 static constexpr char const * const name{"AsmNERelocTable"};
8952 static constexpr unsigned long variant{240};
8953 static constexpr bool concrete{true};
8954 using subclasses_t = mp::List<>;
8956};
8957template <> struct node_from_variant_t<240> { using type = SgAsmNERelocTable; };
8958
8959// Class: AsmNESection
8960template <> struct describe_field_t<SgAsmNESection,SgAsmNESectionTableEntry*,&SgAsmNESection::p_sectionTableEntry> {
8961 using parent = SgAsmNESection;
8963 static constexpr size_t position{0};
8964 static constexpr char const * const name{"sectionTableEntry"};
8965 static constexpr char const * const typestr{"SgAsmNESectionTableEntry*"};
8966 static constexpr bool traverse{true};
8967 static constexpr auto mbr_ptr{&SgAsmNESection::p_sectionTableEntry};
8968 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8969 using bind = Desc<SgAsmNESection, SgAsmNESectionTableEntry* SgAsmNESection::*, &SgAsmNESection::p_sectionTableEntry>;
8970};
8971template <> struct describe_field_t<SgAsmNESection,SgAsmNERelocTable*,&SgAsmNESection::p_relocationTable> {
8972 using parent = SgAsmNESection;
8974 static constexpr size_t position{1};
8975 static constexpr char const * const name{"relocationTable"};
8976 static constexpr char const * const typestr{"SgAsmNERelocTable*"};
8977 static constexpr bool traverse{true};
8978 static constexpr auto mbr_ptr{&SgAsmNESection::p_relocationTable};
8979 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
8980 using bind = Desc<SgAsmNESection, SgAsmNERelocTable* SgAsmNESection::*, &SgAsmNESection::p_relocationTable>;
8981};
8982template <> struct describe_node_t<SgAsmNESection> {
8983 using node = SgAsmNESection;
8984 using base = SgAsmGenericSection;
8985 static constexpr char const * const name{"AsmNESection"};
8986 static constexpr unsigned long variant{241};
8987 static constexpr bool concrete{true};
8988 using subclasses_t = mp::List<>;
8990};
8991template <> struct node_from_variant_t<241> { using type = SgAsmNESection; };
8992
8993// Class: AsmNESectionTable
8994template <> struct describe_field_t<SgAsmNESectionTable,unsigned,&SgAsmNESectionTable::p_flags> {
8996 using field_type = unsigned;
8997 static constexpr size_t position{0};
8998 static constexpr char const * const name{"flags"};
8999 static constexpr char const * const typestr{"unsigned"};
9000 static constexpr bool traverse{false};
9001 static constexpr auto mbr_ptr{&SgAsmNESectionTable::p_flags};
9002 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9003 using bind = Desc<SgAsmNESectionTable, unsigned SgAsmNESectionTable::*, &SgAsmNESectionTable::p_flags>;
9004};
9005template <> struct describe_field_t<SgAsmNESectionTable,unsigned,&SgAsmNESectionTable::p_sector> {
9007 using field_type = unsigned;
9008 static constexpr size_t position{1};
9009 static constexpr char const * const name{"sector"};
9010 static constexpr char const * const typestr{"unsigned"};
9011 static constexpr bool traverse{false};
9012 static constexpr auto mbr_ptr{&SgAsmNESectionTable::p_sector};
9013 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9014 using bind = Desc<SgAsmNESectionTable, unsigned SgAsmNESectionTable::*, &SgAsmNESectionTable::p_sector>;
9015};
9016template <> struct describe_field_t<SgAsmNESectionTable,Rose::BinaryAnalysis::Address,&SgAsmNESectionTable::p_physicalSize> {
9018 using field_type = Rose::BinaryAnalysis::Address;
9019 static constexpr size_t position{2};
9020 static constexpr char const * const name{"physicalSize"};
9021 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
9022 static constexpr bool traverse{false};
9023 static constexpr auto mbr_ptr{&SgAsmNESectionTable::p_physicalSize};
9024 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9025 using bind = Desc<SgAsmNESectionTable, Rose::BinaryAnalysis::Address SgAsmNESectionTable::*, &SgAsmNESectionTable::p_physicalSize>;
9026};
9027template <> struct describe_field_t<SgAsmNESectionTable,Rose::BinaryAnalysis::Address,&SgAsmNESectionTable::p_virtualSize> {
9029 using field_type = Rose::BinaryAnalysis::Address;
9030 static constexpr size_t position{3};
9031 static constexpr char const * const name{"virtualSize"};
9032 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
9033 static constexpr bool traverse{false};
9034 static constexpr auto mbr_ptr{&SgAsmNESectionTable::p_virtualSize};
9035 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9036 using bind = Desc<SgAsmNESectionTable, Rose::BinaryAnalysis::Address SgAsmNESectionTable::*, &SgAsmNESectionTable::p_virtualSize>;
9037};
9047template <> struct node_from_variant_t<242> { using type = SgAsmNESectionTable; };
9048
9049// Class: AsmNESectionTableEntry
9050template <> struct describe_field_t<SgAsmNESectionTableEntry,unsigned,&SgAsmNESectionTableEntry::p_flags> {
9052 using field_type = unsigned;
9053 static constexpr size_t position{0};
9054 static constexpr char const * const name{"flags"};
9055 static constexpr char const * const typestr{"unsigned"};
9056 static constexpr bool traverse{false};
9057 static constexpr auto mbr_ptr{&SgAsmNESectionTableEntry::p_flags};
9058 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9059 using bind = Desc<SgAsmNESectionTableEntry, unsigned SgAsmNESectionTableEntry::*, &SgAsmNESectionTableEntry::p_flags>;
9060};
9061template <> struct describe_field_t<SgAsmNESectionTableEntry,unsigned,&SgAsmNESectionTableEntry::p_sector> {
9063 using field_type = unsigned;
9064 static constexpr size_t position{1};
9065 static constexpr char const * const name{"sector"};
9066 static constexpr char const * const typestr{"unsigned"};
9067 static constexpr bool traverse{false};
9068 static constexpr auto mbr_ptr{&SgAsmNESectionTableEntry::p_sector};
9069 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9070 using bind = Desc<SgAsmNESectionTableEntry, unsigned SgAsmNESectionTableEntry::*, &SgAsmNESectionTableEntry::p_sector>;
9071};
9072template <> struct describe_field_t<SgAsmNESectionTableEntry,Rose::BinaryAnalysis::Address,&SgAsmNESectionTableEntry::p_physicalSize> {
9074 using field_type = Rose::BinaryAnalysis::Address;
9075 static constexpr size_t position{2};
9076 static constexpr char const * const name{"physicalSize"};
9077 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
9078 static constexpr bool traverse{false};
9079 static constexpr auto mbr_ptr{&SgAsmNESectionTableEntry::p_physicalSize};
9080 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9081 using bind = Desc<SgAsmNESectionTableEntry, Rose::BinaryAnalysis::Address SgAsmNESectionTableEntry::*, &SgAsmNESectionTableEntry::p_physicalSize>;
9082};
9083template <> struct describe_field_t<SgAsmNESectionTableEntry,Rose::BinaryAnalysis::Address,&SgAsmNESectionTableEntry::p_virtualSize> {
9085 using field_type = Rose::BinaryAnalysis::Address;
9086 static constexpr size_t position{3};
9087 static constexpr char const * const name{"virtualSize"};
9088 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
9089 static constexpr bool traverse{false};
9090 static constexpr auto mbr_ptr{&SgAsmNESectionTableEntry::p_virtualSize};
9091 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9092 using bind = Desc<SgAsmNESectionTableEntry, Rose::BinaryAnalysis::Address SgAsmNESectionTableEntry::*, &SgAsmNESectionTableEntry::p_virtualSize>;
9093};
9103template <> struct node_from_variant_t<243> { using type = SgAsmNESectionTableEntry; };
9104
9105// Class: AsmNEStringTable
9107 using node = SgAsmNEStringTable;
9108 using base = SgAsmGenericSection;
9109 static constexpr char const * const name{"AsmNEStringTable"};
9110 static constexpr unsigned long variant{244};
9111 static constexpr bool concrete{true};
9112 using subclasses_t = mp::List<>;
9113 using fields_t = mp::List<>;
9114};
9115template <> struct node_from_variant_t<244> { using type = SgAsmNEStringTable; };
9116
9117// Class: AsmNode
9118template <> struct describe_node_t<SgAsmNode> {
9119 using node = SgAsmNode;
9120 using base = SgNode;
9121 static constexpr char const * const name{"AsmNode"};
9122 static constexpr unsigned long variant{245};
9123 static constexpr bool concrete{false};
9125 using fields_t = mp::List<>;
9126};
9127template <> struct node_from_variant_t<245> { using type = SgAsmNode; };
9128
9129// Class: AsmOp
9130template <> struct describe_field_t<SgAsmOp,SgAsmOp::asm_operand_constraint_enum,&SgAsmOp::p_constraint> {
9131 using parent = SgAsmOp;
9133 static constexpr size_t position{0};
9134 static constexpr char const * const name{"constraint"};
9135 static constexpr char const * const typestr{"SgAsmOp::asm_operand_constraint_enum"};
9136 static constexpr bool traverse{false};
9137 static constexpr auto mbr_ptr{&SgAsmOp::p_constraint};
9138 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9139 using bind = Desc<SgAsmOp, SgAsmOp::asm_operand_constraint_enum SgAsmOp::*, &SgAsmOp::p_constraint>;
9140};
9141template <> struct describe_field_t<SgAsmOp,SgAsmOp::asm_operand_modifier_enum,&SgAsmOp::p_modifiers> {
9142 using parent = SgAsmOp;
9144 static constexpr size_t position{1};
9145 static constexpr char const * const name{"modifiers"};
9146 static constexpr char const * const typestr{"SgAsmOp::asm_operand_modifier_enum"};
9147 static constexpr bool traverse{false};
9148 static constexpr auto mbr_ptr{&SgAsmOp::p_modifiers};
9149 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9150 using bind = Desc<SgAsmOp, SgAsmOp::asm_operand_modifier_enum SgAsmOp::*, &SgAsmOp::p_modifiers>;
9151};
9152template <> struct describe_field_t<SgAsmOp,SgExpression*,&SgAsmOp::p_expression> {
9153 using parent = SgAsmOp;
9154 using field_type = SgExpression*;
9155 static constexpr size_t position{2};
9156 static constexpr char const * const name{"expression"};
9157 static constexpr char const * const typestr{"SgExpression*"};
9158 static constexpr bool traverse{true};
9159 static constexpr auto mbr_ptr{&SgAsmOp::p_expression};
9160 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9161 using bind = Desc<SgAsmOp, SgExpression* SgAsmOp::*, &SgAsmOp::p_expression>;
9162};
9163template <> struct describe_field_t<SgAsmOp,bool,&SgAsmOp::p_recordRawAsmOperandDescriptions> {
9164 using parent = SgAsmOp;
9165 using field_type = bool;
9166 static constexpr size_t position{3};
9167 static constexpr char const * const name{"recordRawAsmOperandDescriptions"};
9168 static constexpr char const * const typestr{"bool"};
9169 static constexpr bool traverse{false};
9170 static constexpr auto mbr_ptr{&SgAsmOp::p_recordRawAsmOperandDescriptions};
9171 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9172 using bind = Desc<SgAsmOp, bool SgAsmOp::*, &SgAsmOp::p_recordRawAsmOperandDescriptions>;
9173};
9174template <> struct describe_field_t<SgAsmOp,bool,&SgAsmOp::p_isOutputOperand> {
9175 using parent = SgAsmOp;
9176 using field_type = bool;
9177 static constexpr size_t position{4};
9178 static constexpr char const * const name{"isOutputOperand"};
9179 static constexpr char const * const typestr{"bool"};
9180 static constexpr bool traverse{false};
9181 static constexpr auto mbr_ptr{&SgAsmOp::p_isOutputOperand};
9182 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9183 using bind = Desc<SgAsmOp, bool SgAsmOp::*, &SgAsmOp::p_isOutputOperand>;
9184};
9185template <> struct describe_field_t<SgAsmOp,std::string,&SgAsmOp::p_constraintString> {
9186 using parent = SgAsmOp;
9187 using field_type = std::string;
9188 static constexpr size_t position{5};
9189 static constexpr char const * const name{"constraintString"};
9190 static constexpr char const * const typestr{"std::string"};
9191 static constexpr bool traverse{false};
9192 static constexpr auto mbr_ptr{&SgAsmOp::p_constraintString};
9193 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9194 using bind = Desc<SgAsmOp, std::string SgAsmOp::*, &SgAsmOp::p_constraintString>;
9195};
9196template <> struct describe_field_t<SgAsmOp,std::string,&SgAsmOp::p_name> {
9197 using parent = SgAsmOp;
9198 using field_type = std::string;
9199 static constexpr size_t position{6};
9200 static constexpr char const * const name{"name"};
9201 static constexpr char const * const typestr{"std::string"};
9202 static constexpr bool traverse{false};
9203 static constexpr auto mbr_ptr{&SgAsmOp::p_name};
9204 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9205 using bind = Desc<SgAsmOp, std::string SgAsmOp::*, &SgAsmOp::p_name>;
9206};
9216template <> struct node_from_variant_t<246> { using type = SgAsmOp; };
9217
9218// Class: AsmOperandList
9219template <> struct describe_field_t<SgAsmOperandList,SgAsmExpressionPtrList,&SgAsmOperandList::p_operands> {
9220 using parent = SgAsmOperandList;
9221 using field_type = SgAsmExpressionPtrList;
9222 static constexpr size_t position{0};
9223 static constexpr char const * const name{"operands"};
9224 static constexpr char const * const typestr{"SgAsmExpressionPtrList"};
9225 static constexpr bool traverse{true};
9226 static constexpr auto mbr_ptr{&SgAsmOperandList::p_operands};
9227 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9228 using bind = Desc<SgAsmOperandList, SgAsmExpressionPtrList SgAsmOperandList::*, &SgAsmOperandList::p_operands>;
9229};
9231 using node = SgAsmOperandList;
9232 using base = SgAsmNode;
9233 static constexpr char const * const name{"AsmOperandList"};
9234 static constexpr unsigned long variant{247};
9235 static constexpr bool concrete{true};
9236 using subclasses_t = mp::List<>;
9238};
9239template <> struct node_from_variant_t<247> { using type = SgAsmOperandList; };
9240
9241// Class: AsmPEExportDirectory
9242template <> struct describe_field_t<SgAsmPEExportDirectory,unsigned,&SgAsmPEExportDirectory::p_res1> {
9244 using field_type = unsigned;
9245 static constexpr size_t position{0};
9246 static constexpr char const * const name{"res1"};
9247 static constexpr char const * const typestr{"unsigned"};
9248 static constexpr bool traverse{false};
9249 static constexpr auto mbr_ptr{&SgAsmPEExportDirectory::p_res1};
9250 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9251 using bind = Desc<SgAsmPEExportDirectory, unsigned SgAsmPEExportDirectory::*, &SgAsmPEExportDirectory::p_res1>;
9252};
9253template <> struct describe_field_t<SgAsmPEExportDirectory,time_t,&SgAsmPEExportDirectory::p_timestamp> {
9255 using field_type = time_t;
9256 static constexpr size_t position{1};
9257 static constexpr char const * const name{"timestamp"};
9258 static constexpr char const * const typestr{"time_t"};
9259 static constexpr bool traverse{false};
9260 static constexpr auto mbr_ptr{&SgAsmPEExportDirectory::p_timestamp};
9261 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9262 using bind = Desc<SgAsmPEExportDirectory, time_t SgAsmPEExportDirectory::*, &SgAsmPEExportDirectory::p_timestamp>;
9263};
9264template <> struct describe_field_t<SgAsmPEExportDirectory,unsigned,&SgAsmPEExportDirectory::p_vmajor> {
9266 using field_type = unsigned;
9267 static constexpr size_t position{2};
9268 static constexpr char const * const name{"vmajor"};
9269 static constexpr char const * const typestr{"unsigned"};
9270 static constexpr bool traverse{false};
9271 static constexpr auto mbr_ptr{&SgAsmPEExportDirectory::p_vmajor};
9272 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9273 using bind = Desc<SgAsmPEExportDirectory, unsigned SgAsmPEExportDirectory::*, &SgAsmPEExportDirectory::p_vmajor>;
9274};
9275template <> struct describe_field_t<SgAsmPEExportDirectory,unsigned,&SgAsmPEExportDirectory::p_vminor> {
9277 using field_type = unsigned;
9278 static constexpr size_t position{3};
9279 static constexpr char const * const name{"vminor"};
9280 static constexpr char const * const typestr{"unsigned"};
9281 static constexpr bool traverse{false};
9282 static constexpr auto mbr_ptr{&SgAsmPEExportDirectory::p_vminor};
9283 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9284 using bind = Desc<SgAsmPEExportDirectory, unsigned SgAsmPEExportDirectory::*, &SgAsmPEExportDirectory::p_vminor>;
9285};
9286template <> struct describe_field_t<SgAsmPEExportDirectory,Rose::BinaryAnalysis::RelativeVirtualAddress,&SgAsmPEExportDirectory::p_name_rva> {
9289 static constexpr size_t position{4};
9290 static constexpr char const * const name{"name_rva"};
9291 static constexpr char const * const typestr{"Rose::BinaryAnalysis::RelativeVirtualAddress"};
9292 static constexpr bool traverse{false};
9293 static constexpr auto mbr_ptr{&SgAsmPEExportDirectory::p_name_rva};
9294 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9295 using bind = Desc<SgAsmPEExportDirectory, Rose::BinaryAnalysis::RelativeVirtualAddress SgAsmPEExportDirectory::*, &SgAsmPEExportDirectory::p_name_rva>;
9296};
9297template <> struct describe_field_t<SgAsmPEExportDirectory,unsigned,&SgAsmPEExportDirectory::p_ord_base> {
9299 using field_type = unsigned;
9300 static constexpr size_t position{5};
9301 static constexpr char const * const name{"ord_base"};
9302 static constexpr char const * const typestr{"unsigned"};
9303 static constexpr bool traverse{false};
9304 static constexpr auto mbr_ptr{&SgAsmPEExportDirectory::p_ord_base};
9305 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9306 using bind = Desc<SgAsmPEExportDirectory, unsigned SgAsmPEExportDirectory::*, &SgAsmPEExportDirectory::p_ord_base>;
9307};
9308template <> struct describe_field_t<SgAsmPEExportDirectory,size_t,&SgAsmPEExportDirectory::p_expaddr_n> {
9310 using field_type = size_t;
9311 static constexpr size_t position{6};
9312 static constexpr char const * const name{"expaddr_n"};
9313 static constexpr char const * const typestr{"size_t"};
9314 static constexpr bool traverse{false};
9315 static constexpr auto mbr_ptr{&SgAsmPEExportDirectory::p_expaddr_n};
9316 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9317 using bind = Desc<SgAsmPEExportDirectory, size_t SgAsmPEExportDirectory::*, &SgAsmPEExportDirectory::p_expaddr_n>;
9318};
9319template <> struct describe_field_t<SgAsmPEExportDirectory,size_t,&SgAsmPEExportDirectory::p_nameptr_n> {
9321 using field_type = size_t;
9322 static constexpr size_t position{7};
9323 static constexpr char const * const name{"nameptr_n"};
9324 static constexpr char const * const typestr{"size_t"};
9325 static constexpr bool traverse{false};
9326 static constexpr auto mbr_ptr{&SgAsmPEExportDirectory::p_nameptr_n};
9327 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9328 using bind = Desc<SgAsmPEExportDirectory, size_t SgAsmPEExportDirectory::*, &SgAsmPEExportDirectory::p_nameptr_n>;
9329};
9330template <> struct describe_field_t<SgAsmPEExportDirectory,Rose::BinaryAnalysis::RelativeVirtualAddress,&SgAsmPEExportDirectory::p_expaddr_rva> {
9333 static constexpr size_t position{8};
9334 static constexpr char const * const name{"expaddr_rva"};
9335 static constexpr char const * const typestr{"Rose::BinaryAnalysis::RelativeVirtualAddress"};
9336 static constexpr bool traverse{false};
9337 static constexpr auto mbr_ptr{&SgAsmPEExportDirectory::p_expaddr_rva};
9338 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9339 using bind = Desc<SgAsmPEExportDirectory, Rose::BinaryAnalysis::RelativeVirtualAddress SgAsmPEExportDirectory::*, &SgAsmPEExportDirectory::p_expaddr_rva>;
9340};
9341template <> struct describe_field_t<SgAsmPEExportDirectory,Rose::BinaryAnalysis::RelativeVirtualAddress,&SgAsmPEExportDirectory::p_nameptr_rva> {
9344 static constexpr size_t position{9};
9345 static constexpr char const * const name{"nameptr_rva"};
9346 static constexpr char const * const typestr{"Rose::BinaryAnalysis::RelativeVirtualAddress"};
9347 static constexpr bool traverse{false};
9348 static constexpr auto mbr_ptr{&SgAsmPEExportDirectory::p_nameptr_rva};
9349 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9350 using bind = Desc<SgAsmPEExportDirectory, Rose::BinaryAnalysis::RelativeVirtualAddress SgAsmPEExportDirectory::*, &SgAsmPEExportDirectory::p_nameptr_rva>;
9351};
9352template <> struct describe_field_t<SgAsmPEExportDirectory,Rose::BinaryAnalysis::RelativeVirtualAddress,&SgAsmPEExportDirectory::p_ordinals_rva> {
9355 static constexpr size_t position{10};
9356 static constexpr char const * const name{"ordinals_rva"};
9357 static constexpr char const * const typestr{"Rose::BinaryAnalysis::RelativeVirtualAddress"};
9358 static constexpr bool traverse{false};
9359 static constexpr auto mbr_ptr{&SgAsmPEExportDirectory::p_ordinals_rva};
9360 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9361 using bind = Desc<SgAsmPEExportDirectory, Rose::BinaryAnalysis::RelativeVirtualAddress SgAsmPEExportDirectory::*, &SgAsmPEExportDirectory::p_ordinals_rva>;
9362};
9363template <> struct describe_field_t<SgAsmPEExportDirectory,SgAsmGenericString*,&SgAsmPEExportDirectory::p_name> {
9366 static constexpr size_t position{11};
9367 static constexpr char const * const name{"name"};
9368 static constexpr char const * const typestr{"SgAsmGenericString*"};
9369 static constexpr bool traverse{true};
9370 static constexpr auto mbr_ptr{&SgAsmPEExportDirectory::p_name};
9371 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9372 using bind = Desc<SgAsmPEExportDirectory, SgAsmGenericString* SgAsmPEExportDirectory::*, &SgAsmPEExportDirectory::p_name>;
9373};
9377 static constexpr char const * const name{"AsmPEExportDirectory"};
9378 static constexpr unsigned long variant{248};
9379 static constexpr bool concrete{true};
9380 using subclasses_t = mp::List<>;
9382};
9383template <> struct node_from_variant_t<248> { using type = SgAsmPEExportDirectory; };
9384
9385// Class: AsmPEExportEntry
9386template <> struct describe_field_t<SgAsmPEExportEntry,SgAsmGenericString*,&SgAsmPEExportEntry::p_name> {
9387 using parent = SgAsmPEExportEntry;
9389 static constexpr size_t position{0};
9390 static constexpr char const * const name{"name"};
9391 static constexpr char const * const typestr{"SgAsmGenericString*"};
9392 static constexpr bool traverse{true};
9393 static constexpr auto mbr_ptr{&SgAsmPEExportEntry::p_name};
9394 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9395 using bind = Desc<SgAsmPEExportEntry, SgAsmGenericString* SgAsmPEExportEntry::*, &SgAsmPEExportEntry::p_name>;
9396};
9397template <> struct describe_field_t<SgAsmPEExportEntry,unsigned,&SgAsmPEExportEntry::p_ordinal> {
9398 using parent = SgAsmPEExportEntry;
9399 using field_type = unsigned;
9400 static constexpr size_t position{1};
9401 static constexpr char const * const name{"ordinal"};
9402 static constexpr char const * const typestr{"unsigned"};
9403 static constexpr bool traverse{false};
9404 static constexpr auto mbr_ptr{&SgAsmPEExportEntry::p_ordinal};
9405 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9406 using bind = Desc<SgAsmPEExportEntry, unsigned SgAsmPEExportEntry::*, &SgAsmPEExportEntry::p_ordinal>;
9407};
9408template <> struct describe_field_t<SgAsmPEExportEntry,Rose::BinaryAnalysis::RelativeVirtualAddress,&SgAsmPEExportEntry::p_exportRva> {
9409 using parent = SgAsmPEExportEntry;
9411 static constexpr size_t position{2};
9412 static constexpr char const * const name{"exportRva"};
9413 static constexpr char const * const typestr{"Rose::BinaryAnalysis::RelativeVirtualAddress"};
9414 static constexpr bool traverse{false};
9415 static constexpr auto mbr_ptr{&SgAsmPEExportEntry::p_exportRva};
9416 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9417 using bind = Desc<SgAsmPEExportEntry, Rose::BinaryAnalysis::RelativeVirtualAddress SgAsmPEExportEntry::*, &SgAsmPEExportEntry::p_exportRva>;
9418};
9419template <> struct describe_field_t<SgAsmPEExportEntry,SgAsmGenericString*,&SgAsmPEExportEntry::p_forwarder> {
9420 using parent = SgAsmPEExportEntry;
9422 static constexpr size_t position{3};
9423 static constexpr char const * const name{"forwarder"};
9424 static constexpr char const * const typestr{"SgAsmGenericString*"};
9425 static constexpr bool traverse{true};
9426 static constexpr auto mbr_ptr{&SgAsmPEExportEntry::p_forwarder};
9427 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9428 using bind = Desc<SgAsmPEExportEntry, SgAsmGenericString* SgAsmPEExportEntry::*, &SgAsmPEExportEntry::p_forwarder>;
9429};
9439template <> struct node_from_variant_t<249> { using type = SgAsmPEExportEntry; };
9440
9441// Class: AsmPEExportEntryList
9442template <> struct describe_field_t<SgAsmPEExportEntryList,SgAsmPEExportEntryPtrList,&SgAsmPEExportEntryList::p_exports> {
9444 using field_type = SgAsmPEExportEntryPtrList;
9445 static constexpr size_t position{0};
9446 static constexpr char const * const name{"exports"};
9447 static constexpr char const * const typestr{"SgAsmPEExportEntryPtrList"};
9448 static constexpr bool traverse{true};
9449 static constexpr auto mbr_ptr{&SgAsmPEExportEntryList::p_exports};
9450 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9451 using bind = Desc<SgAsmPEExportEntryList, SgAsmPEExportEntryPtrList SgAsmPEExportEntryList::*, &SgAsmPEExportEntryList::p_exports>;
9452};
9456 static constexpr char const * const name{"AsmPEExportEntryList"};
9457 static constexpr unsigned long variant{250};
9458 static constexpr bool concrete{true};
9459 using subclasses_t = mp::List<>;
9461};
9462template <> struct node_from_variant_t<250> { using type = SgAsmPEExportEntryList; };
9463
9464// Class: AsmPEExportSection
9465template <> struct describe_field_t<SgAsmPEExportSection,SgAsmPEExportDirectory*,&SgAsmPEExportSection::p_exportDirectory> {
9468 static constexpr size_t position{0};
9469 static constexpr char const * const name{"exportDirectory"};
9470 static constexpr char const * const typestr{"SgAsmPEExportDirectory*"};
9471 static constexpr bool traverse{true};
9472 static constexpr auto mbr_ptr{&SgAsmPEExportSection::p_exportDirectory};
9473 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9474 using bind = Desc<SgAsmPEExportSection, SgAsmPEExportDirectory* SgAsmPEExportSection::*, &SgAsmPEExportSection::p_exportDirectory>;
9475};
9476template <> struct describe_field_t<SgAsmPEExportSection,SgAsmPEExportEntryList*,&SgAsmPEExportSection::p_exports> {
9479 static constexpr size_t position{1};
9480 static constexpr char const * const name{"exports"};
9481 static constexpr char const * const typestr{"SgAsmPEExportEntryList*"};
9482 static constexpr bool traverse{true};
9483 static constexpr auto mbr_ptr{&SgAsmPEExportSection::p_exports};
9484 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9485 using bind = Desc<SgAsmPEExportSection, SgAsmPEExportEntryList* SgAsmPEExportSection::*, &SgAsmPEExportSection::p_exports>;
9486};
9488 using node = SgAsmPEExportSection;
9489 using base = SgAsmPESection;
9490 static constexpr char const * const name{"AsmPEExportSection"};
9491 static constexpr unsigned long variant{251};
9492 static constexpr bool concrete{true};
9493 using subclasses_t = mp::List<>;
9495};
9496template <> struct node_from_variant_t<251> { using type = SgAsmPEExportSection; };
9497
9498// Class: AsmPEFileHeader
9499template <> struct describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_cpu_type> {
9500 using parent = SgAsmPEFileHeader;
9501 using field_type = unsigned;
9502 static constexpr size_t position{0};
9503 static constexpr char const * const name{"e_cpu_type"};
9504 static constexpr char const * const typestr{"unsigned"};
9505 static constexpr bool traverse{false};
9506 static constexpr auto mbr_ptr{&SgAsmPEFileHeader::p_e_cpu_type};
9507 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9508 using bind = Desc<SgAsmPEFileHeader, unsigned SgAsmPEFileHeader::*, &SgAsmPEFileHeader::p_e_cpu_type>;
9509};
9510template <> struct describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_nsections> {
9511 using parent = SgAsmPEFileHeader;
9512 using field_type = unsigned;
9513 static constexpr size_t position{1};
9514 static constexpr char const * const name{"e_nsections"};
9515 static constexpr char const * const typestr{"unsigned"};
9516 static constexpr bool traverse{false};
9517 static constexpr auto mbr_ptr{&SgAsmPEFileHeader::p_e_nsections};
9518 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9519 using bind = Desc<SgAsmPEFileHeader, unsigned SgAsmPEFileHeader::*, &SgAsmPEFileHeader::p_e_nsections>;
9520};
9521template <> struct describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_time> {
9522 using parent = SgAsmPEFileHeader;
9523 using field_type = unsigned;
9524 static constexpr size_t position{2};
9525 static constexpr char const * const name{"e_time"};
9526 static constexpr char const * const typestr{"unsigned"};
9527 static constexpr bool traverse{false};
9528 static constexpr auto mbr_ptr{&SgAsmPEFileHeader::p_e_time};
9529 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9530 using bind = Desc<SgAsmPEFileHeader, unsigned SgAsmPEFileHeader::*, &SgAsmPEFileHeader::p_e_time>;
9531};
9532template <> struct describe_field_t<SgAsmPEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmPEFileHeader::p_e_coff_symtab> {
9533 using parent = SgAsmPEFileHeader;
9534 using field_type = Rose::BinaryAnalysis::Address;
9535 static constexpr size_t position{3};
9536 static constexpr char const * const name{"e_coff_symtab"};
9537 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
9538 static constexpr bool traverse{false};
9539 static constexpr auto mbr_ptr{&SgAsmPEFileHeader::p_e_coff_symtab};
9540 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9541 using bind = Desc<SgAsmPEFileHeader, Rose::BinaryAnalysis::Address SgAsmPEFileHeader::*, &SgAsmPEFileHeader::p_e_coff_symtab>;
9542};
9543template <> struct describe_field_t<SgAsmPEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmPEFileHeader::p_e_nt_hdr_size> {
9544 using parent = SgAsmPEFileHeader;
9545 using field_type = Rose::BinaryAnalysis::Address;
9546 static constexpr size_t position{4};
9547 static constexpr char const * const name{"e_nt_hdr_size"};
9548 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
9549 static constexpr bool traverse{false};
9550 static constexpr auto mbr_ptr{&SgAsmPEFileHeader::p_e_nt_hdr_size};
9551 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9552 using bind = Desc<SgAsmPEFileHeader, Rose::BinaryAnalysis::Address SgAsmPEFileHeader::*, &SgAsmPEFileHeader::p_e_nt_hdr_size>;
9553};
9554template <> struct describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_coff_nsyms> {
9555 using parent = SgAsmPEFileHeader;
9556 using field_type = unsigned;
9557 static constexpr size_t position{5};
9558 static constexpr char const * const name{"e_coff_nsyms"};
9559 static constexpr char const * const typestr{"unsigned"};
9560 static constexpr bool traverse{false};
9561 static constexpr auto mbr_ptr{&SgAsmPEFileHeader::p_e_coff_nsyms};
9562 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9563 using bind = Desc<SgAsmPEFileHeader, unsigned SgAsmPEFileHeader::*, &SgAsmPEFileHeader::p_e_coff_nsyms>;
9564};
9565template <> struct describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_flags> {
9566 using parent = SgAsmPEFileHeader;
9567 using field_type = unsigned;
9568 static constexpr size_t position{6};
9569 static constexpr char const * const name{"e_flags"};
9570 static constexpr char const * const typestr{"unsigned"};
9571 static constexpr bool traverse{false};
9572 static constexpr auto mbr_ptr{&SgAsmPEFileHeader::p_e_flags};
9573 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9574 using bind = Desc<SgAsmPEFileHeader, unsigned SgAsmPEFileHeader::*, &SgAsmPEFileHeader::p_e_flags>;
9575};
9576template <> struct describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_opt_magic> {
9577 using parent = SgAsmPEFileHeader;
9578 using field_type = unsigned;
9579 static constexpr size_t position{7};
9580 static constexpr char const * const name{"e_opt_magic"};
9581 static constexpr char const * const typestr{"unsigned"};
9582 static constexpr bool traverse{false};
9583 static constexpr auto mbr_ptr{&SgAsmPEFileHeader::p_e_opt_magic};
9584 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9585 using bind = Desc<SgAsmPEFileHeader, unsigned SgAsmPEFileHeader::*, &SgAsmPEFileHeader::p_e_opt_magic>;
9586};
9587template <> struct describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_lmajor> {
9588 using parent = SgAsmPEFileHeader;
9589 using field_type = unsigned;
9590 static constexpr size_t position{8};
9591 static constexpr char const * const name{"e_lmajor"};
9592 static constexpr char const * const typestr{"unsigned"};
9593 static constexpr bool traverse{false};
9594 static constexpr auto mbr_ptr{&SgAsmPEFileHeader::p_e_lmajor};
9595 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9596 using bind = Desc<SgAsmPEFileHeader, unsigned SgAsmPEFileHeader::*, &SgAsmPEFileHeader::p_e_lmajor>;
9597};
9598template <> struct describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_lminor> {
9599 using parent = SgAsmPEFileHeader;
9600 using field_type = unsigned;
9601 static constexpr size_t position{9};
9602 static constexpr char const * const name{"e_lminor"};
9603 static constexpr char const * const typestr{"unsigned"};
9604 static constexpr bool traverse{false};
9605 static constexpr auto mbr_ptr{&SgAsmPEFileHeader::p_e_lminor};
9606 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9607 using bind = Desc<SgAsmPEFileHeader, unsigned SgAsmPEFileHeader::*, &SgAsmPEFileHeader::p_e_lminor>;
9608};
9609template <> struct describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_code_size> {
9610 using parent = SgAsmPEFileHeader;
9611 using field_type = unsigned;
9612 static constexpr size_t position{10};
9613 static constexpr char const * const name{"e_code_size"};
9614 static constexpr char const * const typestr{"unsigned"};
9615 static constexpr bool traverse{false};
9616 static constexpr auto mbr_ptr{&SgAsmPEFileHeader::p_e_code_size};
9617 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9618 using bind = Desc<SgAsmPEFileHeader, unsigned SgAsmPEFileHeader::*, &SgAsmPEFileHeader::p_e_code_size>;
9619};
9620template <> struct describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_data_size> {
9621 using parent = SgAsmPEFileHeader;
9622 using field_type = unsigned;
9623 static constexpr size_t position{11};
9624 static constexpr char const * const name{"e_data_size"};
9625 static constexpr char const * const typestr{"unsigned"};
9626 static constexpr bool traverse{false};
9627 static constexpr auto mbr_ptr{&SgAsmPEFileHeader::p_e_data_size};
9628 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9629 using bind = Desc<SgAsmPEFileHeader, unsigned SgAsmPEFileHeader::*, &SgAsmPEFileHeader::p_e_data_size>;
9630};
9631template <> struct describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_bss_size> {
9632 using parent = SgAsmPEFileHeader;
9633 using field_type = unsigned;
9634 static constexpr size_t position{12};
9635 static constexpr char const * const name{"e_bss_size"};
9636 static constexpr char const * const typestr{"unsigned"};
9637 static constexpr bool traverse{false};
9638 static constexpr auto mbr_ptr{&SgAsmPEFileHeader::p_e_bss_size};
9639 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9640 using bind = Desc<SgAsmPEFileHeader, unsigned SgAsmPEFileHeader::*, &SgAsmPEFileHeader::p_e_bss_size>;
9641};
9642template <> struct describe_field_t<SgAsmPEFileHeader,Rose::BinaryAnalysis::RelativeVirtualAddress,&SgAsmPEFileHeader::p_e_code_rva> {
9643 using parent = SgAsmPEFileHeader;
9645 static constexpr size_t position{13};
9646 static constexpr char const * const name{"e_code_rva"};
9647 static constexpr char const * const typestr{"Rose::BinaryAnalysis::RelativeVirtualAddress"};
9648 static constexpr bool traverse{false};
9649 static constexpr auto mbr_ptr{&SgAsmPEFileHeader::p_e_code_rva};
9650 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9651 using bind = Desc<SgAsmPEFileHeader, Rose::BinaryAnalysis::RelativeVirtualAddress SgAsmPEFileHeader::*, &SgAsmPEFileHeader::p_e_code_rva>;
9652};
9653template <> struct describe_field_t<SgAsmPEFileHeader,Rose::BinaryAnalysis::RelativeVirtualAddress,&SgAsmPEFileHeader::p_e_data_rva> {
9654 using parent = SgAsmPEFileHeader;
9656 static constexpr size_t position{14};
9657 static constexpr char const * const name{"e_data_rva"};
9658 static constexpr char const * const typestr{"Rose::BinaryAnalysis::RelativeVirtualAddress"};
9659 static constexpr bool traverse{false};
9660 static constexpr auto mbr_ptr{&SgAsmPEFileHeader::p_e_data_rva};
9661 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9662 using bind = Desc<SgAsmPEFileHeader, Rose::BinaryAnalysis::RelativeVirtualAddress SgAsmPEFileHeader::*, &SgAsmPEFileHeader::p_e_data_rva>;
9663};
9664template <> struct describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_section_align> {
9665 using parent = SgAsmPEFileHeader;
9666 using field_type = unsigned;
9667 static constexpr size_t position{15};
9668 static constexpr char const * const name{"e_section_align"};
9669 static constexpr char const * const typestr{"unsigned"};
9670 static constexpr bool traverse{false};
9671 static constexpr auto mbr_ptr{&SgAsmPEFileHeader::p_e_section_align};
9672 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9673 using bind = Desc<SgAsmPEFileHeader, unsigned SgAsmPEFileHeader::*, &SgAsmPEFileHeader::p_e_section_align>;
9674};
9675template <> struct describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_file_align> {
9676 using parent = SgAsmPEFileHeader;
9677 using field_type = unsigned;
9678 static constexpr size_t position{16};
9679 static constexpr char const * const name{"e_file_align"};
9680 static constexpr char const * const typestr{"unsigned"};
9681 static constexpr bool traverse{false};
9682 static constexpr auto mbr_ptr{&SgAsmPEFileHeader::p_e_file_align};
9683 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9684 using bind = Desc<SgAsmPEFileHeader, unsigned SgAsmPEFileHeader::*, &SgAsmPEFileHeader::p_e_file_align>;
9685};
9686template <> struct describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_os_major> {
9687 using parent = SgAsmPEFileHeader;
9688 using field_type = unsigned;
9689 static constexpr size_t position{17};
9690 static constexpr char const * const name{"e_os_major"};
9691 static constexpr char const * const typestr{"unsigned"};
9692 static constexpr bool traverse{false};
9693 static constexpr auto mbr_ptr{&SgAsmPEFileHeader::p_e_os_major};
9694 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9695 using bind = Desc<SgAsmPEFileHeader, unsigned SgAsmPEFileHeader::*, &SgAsmPEFileHeader::p_e_os_major>;
9696};
9697template <> struct describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_os_minor> {
9698 using parent = SgAsmPEFileHeader;
9699 using field_type = unsigned;
9700 static constexpr size_t position{18};
9701 static constexpr char const * const name{"e_os_minor"};
9702 static constexpr char const * const typestr{"unsigned"};
9703 static constexpr bool traverse{false};
9704 static constexpr auto mbr_ptr{&SgAsmPEFileHeader::p_e_os_minor};
9705 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9706 using bind = Desc<SgAsmPEFileHeader, unsigned SgAsmPEFileHeader::*, &SgAsmPEFileHeader::p_e_os_minor>;
9707};
9708template <> struct describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_user_major> {
9709 using parent = SgAsmPEFileHeader;
9710 using field_type = unsigned;
9711 static constexpr size_t position{19};
9712 static constexpr char const * const name{"e_user_major"};
9713 static constexpr char const * const typestr{"unsigned"};
9714 static constexpr bool traverse{false};
9715 static constexpr auto mbr_ptr{&SgAsmPEFileHeader::p_e_user_major};
9716 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9717 using bind = Desc<SgAsmPEFileHeader, unsigned SgAsmPEFileHeader::*, &SgAsmPEFileHeader::p_e_user_major>;
9718};
9719template <> struct describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_user_minor> {
9720 using parent = SgAsmPEFileHeader;
9721 using field_type = unsigned;
9722 static constexpr size_t position{20};
9723 static constexpr char const * const name{"e_user_minor"};
9724 static constexpr char const * const typestr{"unsigned"};
9725 static constexpr bool traverse{false};
9726 static constexpr auto mbr_ptr{&SgAsmPEFileHeader::p_e_user_minor};
9727 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9728 using bind = Desc<SgAsmPEFileHeader, unsigned SgAsmPEFileHeader::*, &SgAsmPEFileHeader::p_e_user_minor>;
9729};
9730template <> struct describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_subsys_major> {
9731 using parent = SgAsmPEFileHeader;
9732 using field_type = unsigned;
9733 static constexpr size_t position{21};
9734 static constexpr char const * const name{"e_subsys_major"};
9735 static constexpr char const * const typestr{"unsigned"};
9736 static constexpr bool traverse{false};
9737 static constexpr auto mbr_ptr{&SgAsmPEFileHeader::p_e_subsys_major};
9738 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9739 using bind = Desc<SgAsmPEFileHeader, unsigned SgAsmPEFileHeader::*, &SgAsmPEFileHeader::p_e_subsys_major>;
9740};
9741template <> struct describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_subsys_minor> {
9742 using parent = SgAsmPEFileHeader;
9743 using field_type = unsigned;
9744 static constexpr size_t position{22};
9745 static constexpr char const * const name{"e_subsys_minor"};
9746 static constexpr char const * const typestr{"unsigned"};
9747 static constexpr bool traverse{false};
9748 static constexpr auto mbr_ptr{&SgAsmPEFileHeader::p_e_subsys_minor};
9749 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9750 using bind = Desc<SgAsmPEFileHeader, unsigned SgAsmPEFileHeader::*, &SgAsmPEFileHeader::p_e_subsys_minor>;
9751};
9752template <> struct describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_reserved9> {
9753 using parent = SgAsmPEFileHeader;
9754 using field_type = unsigned;
9755 static constexpr size_t position{23};
9756 static constexpr char const * const name{"e_reserved9"};
9757 static constexpr char const * const typestr{"unsigned"};
9758 static constexpr bool traverse{false};
9759 static constexpr auto mbr_ptr{&SgAsmPEFileHeader::p_e_reserved9};
9760 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9761 using bind = Desc<SgAsmPEFileHeader, unsigned SgAsmPEFileHeader::*, &SgAsmPEFileHeader::p_e_reserved9>;
9762};
9763template <> struct describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_image_size> {
9764 using parent = SgAsmPEFileHeader;
9765 using field_type = unsigned;
9766 static constexpr size_t position{24};
9767 static constexpr char const * const name{"e_image_size"};
9768 static constexpr char const * const typestr{"unsigned"};
9769 static constexpr bool traverse{false};
9770 static constexpr auto mbr_ptr{&SgAsmPEFileHeader::p_e_image_size};
9771 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9772 using bind = Desc<SgAsmPEFileHeader, unsigned SgAsmPEFileHeader::*, &SgAsmPEFileHeader::p_e_image_size>;
9773};
9774template <> struct describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_header_size> {
9775 using parent = SgAsmPEFileHeader;
9776 using field_type = unsigned;
9777 static constexpr size_t position{25};
9778 static constexpr char const * const name{"e_header_size"};
9779 static constexpr char const * const typestr{"unsigned"};
9780 static constexpr bool traverse{false};
9781 static constexpr auto mbr_ptr{&SgAsmPEFileHeader::p_e_header_size};
9782 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9783 using bind = Desc<SgAsmPEFileHeader, unsigned SgAsmPEFileHeader::*, &SgAsmPEFileHeader::p_e_header_size>;
9784};
9785template <> struct describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_file_checksum> {
9786 using parent = SgAsmPEFileHeader;
9787 using field_type = unsigned;
9788 static constexpr size_t position{26};
9789 static constexpr char const * const name{"e_file_checksum"};
9790 static constexpr char const * const typestr{"unsigned"};
9791 static constexpr bool traverse{false};
9792 static constexpr auto mbr_ptr{&SgAsmPEFileHeader::p_e_file_checksum};
9793 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9794 using bind = Desc<SgAsmPEFileHeader, unsigned SgAsmPEFileHeader::*, &SgAsmPEFileHeader::p_e_file_checksum>;
9795};
9796template <> struct describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_subsystem> {
9797 using parent = SgAsmPEFileHeader;
9798 using field_type = unsigned;
9799 static constexpr size_t position{27};
9800 static constexpr char const * const name{"e_subsystem"};
9801 static constexpr char const * const typestr{"unsigned"};
9802 static constexpr bool traverse{false};
9803 static constexpr auto mbr_ptr{&SgAsmPEFileHeader::p_e_subsystem};
9804 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9805 using bind = Desc<SgAsmPEFileHeader, unsigned SgAsmPEFileHeader::*, &SgAsmPEFileHeader::p_e_subsystem>;
9806};
9807template <> struct describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_dll_flags> {
9808 using parent = SgAsmPEFileHeader;
9809 using field_type = unsigned;
9810 static constexpr size_t position{28};
9811 static constexpr char const * const name{"e_dll_flags"};
9812 static constexpr char const * const typestr{"unsigned"};
9813 static constexpr bool traverse{false};
9814 static constexpr auto mbr_ptr{&SgAsmPEFileHeader::p_e_dll_flags};
9815 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9816 using bind = Desc<SgAsmPEFileHeader, unsigned SgAsmPEFileHeader::*, &SgAsmPEFileHeader::p_e_dll_flags>;
9817};
9818template <> struct describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_stack_reserve_size> {
9819 using parent = SgAsmPEFileHeader;
9820 using field_type = unsigned;
9821 static constexpr size_t position{29};
9822 static constexpr char const * const name{"e_stack_reserve_size"};
9823 static constexpr char const * const typestr{"unsigned"};
9824 static constexpr bool traverse{false};
9825 static constexpr auto mbr_ptr{&SgAsmPEFileHeader::p_e_stack_reserve_size};
9826 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9827 using bind = Desc<SgAsmPEFileHeader, unsigned SgAsmPEFileHeader::*, &SgAsmPEFileHeader::p_e_stack_reserve_size>;
9828};
9829template <> struct describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_stack_commit_size> {
9830 using parent = SgAsmPEFileHeader;
9831 using field_type = unsigned;
9832 static constexpr size_t position{30};
9833 static constexpr char const * const name{"e_stack_commit_size"};
9834 static constexpr char const * const typestr{"unsigned"};
9835 static constexpr bool traverse{false};
9836 static constexpr auto mbr_ptr{&SgAsmPEFileHeader::p_e_stack_commit_size};
9837 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9838 using bind = Desc<SgAsmPEFileHeader, unsigned SgAsmPEFileHeader::*, &SgAsmPEFileHeader::p_e_stack_commit_size>;
9839};
9840template <> struct describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_heap_reserve_size> {
9841 using parent = SgAsmPEFileHeader;
9842 using field_type = unsigned;
9843 static constexpr size_t position{31};
9844 static constexpr char const * const name{"e_heap_reserve_size"};
9845 static constexpr char const * const typestr{"unsigned"};
9846 static constexpr bool traverse{false};
9847 static constexpr auto mbr_ptr{&SgAsmPEFileHeader::p_e_heap_reserve_size};
9848 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9849 using bind = Desc<SgAsmPEFileHeader, unsigned SgAsmPEFileHeader::*, &SgAsmPEFileHeader::p_e_heap_reserve_size>;
9850};
9851template <> struct describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_heap_commit_size> {
9852 using parent = SgAsmPEFileHeader;
9853 using field_type = unsigned;
9854 static constexpr size_t position{32};
9855 static constexpr char const * const name{"e_heap_commit_size"};
9856 static constexpr char const * const typestr{"unsigned"};
9857 static constexpr bool traverse{false};
9858 static constexpr auto mbr_ptr{&SgAsmPEFileHeader::p_e_heap_commit_size};
9859 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9860 using bind = Desc<SgAsmPEFileHeader, unsigned SgAsmPEFileHeader::*, &SgAsmPEFileHeader::p_e_heap_commit_size>;
9861};
9862template <> struct describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_loader_flags> {
9863 using parent = SgAsmPEFileHeader;
9864 using field_type = unsigned;
9865 static constexpr size_t position{33};
9866 static constexpr char const * const name{"e_loader_flags"};
9867 static constexpr char const * const typestr{"unsigned"};
9868 static constexpr bool traverse{false};
9869 static constexpr auto mbr_ptr{&SgAsmPEFileHeader::p_e_loader_flags};
9870 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9871 using bind = Desc<SgAsmPEFileHeader, unsigned SgAsmPEFileHeader::*, &SgAsmPEFileHeader::p_e_loader_flags>;
9872};
9873template <> struct describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_num_rvasize_pairs> {
9874 using parent = SgAsmPEFileHeader;
9875 using field_type = unsigned;
9876 static constexpr size_t position{34};
9877 static constexpr char const * const name{"e_num_rvasize_pairs"};
9878 static constexpr char const * const typestr{"unsigned"};
9879 static constexpr bool traverse{false};
9880 static constexpr auto mbr_ptr{&SgAsmPEFileHeader::p_e_num_rvasize_pairs};
9881 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9882 using bind = Desc<SgAsmPEFileHeader, unsigned SgAsmPEFileHeader::*, &SgAsmPEFileHeader::p_e_num_rvasize_pairs>;
9883};
9884template <> struct describe_field_t<SgAsmPEFileHeader,SgAsmPERVASizePairList*,&SgAsmPEFileHeader::p_rvaSizePairs> {
9885 using parent = SgAsmPEFileHeader;
9887 static constexpr size_t position{35};
9888 static constexpr char const * const name{"rvaSizePairs"};
9889 static constexpr char const * const typestr{"SgAsmPERVASizePairList*"};
9890 static constexpr bool traverse{true};
9891 static constexpr auto mbr_ptr{&SgAsmPEFileHeader::p_rvaSizePairs};
9892 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9893 using bind = Desc<SgAsmPEFileHeader, SgAsmPERVASizePairList* SgAsmPEFileHeader::*, &SgAsmPEFileHeader::p_rvaSizePairs>;
9894};
9895template <> struct describe_field_t<SgAsmPEFileHeader,SgAsmPESectionTable*,&SgAsmPEFileHeader::p_sectionTable> {
9896 using parent = SgAsmPEFileHeader;
9898 static constexpr size_t position{36};
9899 static constexpr char const * const name{"sectionTable"};
9900 static constexpr char const * const typestr{"SgAsmPESectionTable*"};
9901 static constexpr bool traverse{false};
9902 static constexpr auto mbr_ptr{&SgAsmPEFileHeader::p_sectionTable};
9903 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9904 using bind = Desc<SgAsmPEFileHeader, SgAsmPESectionTable* SgAsmPEFileHeader::*, &SgAsmPEFileHeader::p_sectionTable>;
9905};
9906template <> struct describe_field_t<SgAsmPEFileHeader,SgAsmCoffSymbolTable*,&SgAsmPEFileHeader::p_coffSymbolTable> {
9907 using parent = SgAsmPEFileHeader;
9909 static constexpr size_t position{37};
9910 static constexpr char const * const name{"coffSymbolTable"};
9911 static constexpr char const * const typestr{"SgAsmCoffSymbolTable*"};
9912 static constexpr bool traverse{false};
9913 static constexpr auto mbr_ptr{&SgAsmPEFileHeader::p_coffSymbolTable};
9914 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9915 using bind = Desc<SgAsmPEFileHeader, SgAsmCoffSymbolTable* SgAsmPEFileHeader::*, &SgAsmPEFileHeader::p_coffSymbolTable>;
9916};
9918 using node = SgAsmPEFileHeader;
9919 using base = SgAsmGenericHeader;
9920 static constexpr char const * const name{"AsmPEFileHeader"};
9921 static constexpr unsigned long variant{252};
9922 static constexpr bool concrete{true};
9923 using subclasses_t = mp::List<>;
9924 using fields_t = mp::List<describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_cpu_type>, describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_nsections>, describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_time>, describe_field_t<SgAsmPEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmPEFileHeader::p_e_coff_symtab>, describe_field_t<SgAsmPEFileHeader,Rose::BinaryAnalysis::Address,&SgAsmPEFileHeader::p_e_nt_hdr_size>, describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_coff_nsyms>, describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_flags>, describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_opt_magic>, describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_lmajor>, describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_lminor>, describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_code_size>, describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_data_size>, describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_bss_size>, describe_field_t<SgAsmPEFileHeader,Rose::BinaryAnalysis::RelativeVirtualAddress,&SgAsmPEFileHeader::p_e_code_rva>, describe_field_t<SgAsmPEFileHeader,Rose::BinaryAnalysis::RelativeVirtualAddress,&SgAsmPEFileHeader::p_e_data_rva>, describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_section_align>, describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_file_align>, describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_os_major>, describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_os_minor>, describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_user_major>, describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_user_minor>, describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_subsys_major>, describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_subsys_minor>, describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_reserved9>, describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_image_size>, describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_header_size>, describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_file_checksum>, describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_subsystem>, describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_dll_flags>, describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_stack_reserve_size>, describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_stack_commit_size>, describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_heap_reserve_size>, describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_heap_commit_size>, describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_loader_flags>, describe_field_t<SgAsmPEFileHeader,unsigned,&SgAsmPEFileHeader::p_e_num_rvasize_pairs>, describe_field_t<SgAsmPEFileHeader,SgAsmPERVASizePairList*,&SgAsmPEFileHeader::p_rvaSizePairs>, describe_field_t<SgAsmPEFileHeader,SgAsmPESectionTable*,&SgAsmPEFileHeader::p_sectionTable>, describe_field_t<SgAsmPEFileHeader,SgAsmCoffSymbolTable*,&SgAsmPEFileHeader::p_coffSymbolTable>>;
9925};
9926template <> struct node_from_variant_t<252> { using type = SgAsmPEFileHeader; };
9927
9928// Class: AsmPEImportDirectory
9929template <> struct describe_field_t<SgAsmPEImportDirectory,SgAsmGenericString*,&SgAsmPEImportDirectory::p_dllName> {
9932 static constexpr size_t position{0};
9933 static constexpr char const * const name{"dllName"};
9934 static constexpr char const * const typestr{"SgAsmGenericString*"};
9935 static constexpr bool traverse{true};
9936 static constexpr auto mbr_ptr{&SgAsmPEImportDirectory::p_dllName};
9937 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9938 using bind = Desc<SgAsmPEImportDirectory, SgAsmGenericString* SgAsmPEImportDirectory::*, &SgAsmPEImportDirectory::p_dllName>;
9939};
9940template <> struct describe_field_t<SgAsmPEImportDirectory,Rose::BinaryAnalysis::RelativeVirtualAddress,&SgAsmPEImportDirectory::p_dllNameRva> {
9943 static constexpr size_t position{1};
9944 static constexpr char const * const name{"dllNameRva"};
9945 static constexpr char const * const typestr{"Rose::BinaryAnalysis::RelativeVirtualAddress"};
9946 static constexpr bool traverse{false};
9947 static constexpr auto mbr_ptr{&SgAsmPEImportDirectory::p_dllNameRva};
9948 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9949 using bind = Desc<SgAsmPEImportDirectory, Rose::BinaryAnalysis::RelativeVirtualAddress SgAsmPEImportDirectory::*, &SgAsmPEImportDirectory::p_dllNameRva>;
9950};
9951template <> struct describe_field_t<SgAsmPEImportDirectory,size_t,&SgAsmPEImportDirectory::p_dll_name_nalloc> {
9953 using field_type = size_t;
9954 static constexpr size_t position{2};
9955 static constexpr char const * const name{"dll_name_nalloc"};
9956 static constexpr char const * const typestr{"size_t"};
9957 static constexpr bool traverse{false};
9958 static constexpr auto mbr_ptr{&SgAsmPEImportDirectory::p_dll_name_nalloc};
9959 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9960 using bind = Desc<SgAsmPEImportDirectory, size_t SgAsmPEImportDirectory::*, &SgAsmPEImportDirectory::p_dll_name_nalloc>;
9961};
9962template <> struct describe_field_t<SgAsmPEImportDirectory,time_t,&SgAsmPEImportDirectory::p_time> {
9964 using field_type = time_t;
9965 static constexpr size_t position{3};
9966 static constexpr char const * const name{"time"};
9967 static constexpr char const * const typestr{"time_t"};
9968 static constexpr bool traverse{false};
9969 static constexpr auto mbr_ptr{&SgAsmPEImportDirectory::p_time};
9970 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9971 using bind = Desc<SgAsmPEImportDirectory, time_t SgAsmPEImportDirectory::*, &SgAsmPEImportDirectory::p_time>;
9972};
9973template <> struct describe_field_t<SgAsmPEImportDirectory,unsigned,&SgAsmPEImportDirectory::p_forwarder_chain> {
9975 using field_type = unsigned;
9976 static constexpr size_t position{4};
9977 static constexpr char const * const name{"forwarder_chain"};
9978 static constexpr char const * const typestr{"unsigned"};
9979 static constexpr bool traverse{false};
9980 static constexpr auto mbr_ptr{&SgAsmPEImportDirectory::p_forwarder_chain};
9981 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9982 using bind = Desc<SgAsmPEImportDirectory, unsigned SgAsmPEImportDirectory::*, &SgAsmPEImportDirectory::p_forwarder_chain>;
9983};
9984template <> struct describe_field_t<SgAsmPEImportDirectory,Rose::BinaryAnalysis::RelativeVirtualAddress,&SgAsmPEImportDirectory::p_ilt_rva> {
9987 static constexpr size_t position{5};
9988 static constexpr char const * const name{"ilt_rva"};
9989 static constexpr char const * const typestr{"Rose::BinaryAnalysis::RelativeVirtualAddress"};
9990 static constexpr bool traverse{false};
9991 static constexpr auto mbr_ptr{&SgAsmPEImportDirectory::p_ilt_rva};
9992 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
9993 using bind = Desc<SgAsmPEImportDirectory, Rose::BinaryAnalysis::RelativeVirtualAddress SgAsmPEImportDirectory::*, &SgAsmPEImportDirectory::p_ilt_rva>;
9994};
9995template <> struct describe_field_t<SgAsmPEImportDirectory,size_t,&SgAsmPEImportDirectory::p_ilt_nalloc> {
9997 using field_type = size_t;
9998 static constexpr size_t position{6};
9999 static constexpr char const * const name{"ilt_nalloc"};
10000 static constexpr char const * const typestr{"size_t"};
10001 static constexpr bool traverse{false};
10002 static constexpr auto mbr_ptr{&SgAsmPEImportDirectory::p_ilt_nalloc};
10003 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10004 using bind = Desc<SgAsmPEImportDirectory, size_t SgAsmPEImportDirectory::*, &SgAsmPEImportDirectory::p_ilt_nalloc>;
10005};
10006template <> struct describe_field_t<SgAsmPEImportDirectory,Rose::BinaryAnalysis::RelativeVirtualAddress,&SgAsmPEImportDirectory::p_iat_rva> {
10009 static constexpr size_t position{7};
10010 static constexpr char const * const name{"iat_rva"};
10011 static constexpr char const * const typestr{"Rose::BinaryAnalysis::RelativeVirtualAddress"};
10012 static constexpr bool traverse{false};
10013 static constexpr auto mbr_ptr{&SgAsmPEImportDirectory::p_iat_rva};
10014 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10015 using bind = Desc<SgAsmPEImportDirectory, Rose::BinaryAnalysis::RelativeVirtualAddress SgAsmPEImportDirectory::*, &SgAsmPEImportDirectory::p_iat_rva>;
10016};
10017template <> struct describe_field_t<SgAsmPEImportDirectory,size_t,&SgAsmPEImportDirectory::p_iat_nalloc> {
10019 using field_type = size_t;
10020 static constexpr size_t position{8};
10021 static constexpr char const * const name{"iat_nalloc"};
10022 static constexpr char const * const typestr{"size_t"};
10023 static constexpr bool traverse{false};
10024 static constexpr auto mbr_ptr{&SgAsmPEImportDirectory::p_iat_nalloc};
10025 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10026 using bind = Desc<SgAsmPEImportDirectory, size_t SgAsmPEImportDirectory::*, &SgAsmPEImportDirectory::p_iat_nalloc>;
10027};
10028template <> struct describe_field_t<SgAsmPEImportDirectory,SgAsmPEImportItemList*,&SgAsmPEImportDirectory::p_imports> {
10031 static constexpr size_t position{9};
10032 static constexpr char const * const name{"imports"};
10033 static constexpr char const * const typestr{"SgAsmPEImportItemList*"};
10034 static constexpr bool traverse{true};
10035 static constexpr auto mbr_ptr{&SgAsmPEImportDirectory::p_imports};
10036 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10037 using bind = Desc<SgAsmPEImportDirectory, SgAsmPEImportItemList* SgAsmPEImportDirectory::*, &SgAsmPEImportDirectory::p_imports>;
10038};
10048template <> struct node_from_variant_t<253> { using type = SgAsmPEImportDirectory; };
10049
10050// Class: AsmPEImportDirectoryList
10051template <> struct describe_field_t<SgAsmPEImportDirectoryList,SgAsmPEImportDirectoryPtrList,&SgAsmPEImportDirectoryList::p_vector> {
10053 using field_type = SgAsmPEImportDirectoryPtrList;
10054 static constexpr size_t position{0};
10055 static constexpr char const * const name{"vector"};
10056 static constexpr char const * const typestr{"SgAsmPEImportDirectoryPtrList"};
10057 static constexpr bool traverse{true};
10058 static constexpr auto mbr_ptr{&SgAsmPEImportDirectoryList::p_vector};
10059 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10060 using bind = Desc<SgAsmPEImportDirectoryList, SgAsmPEImportDirectoryPtrList SgAsmPEImportDirectoryList::*, &SgAsmPEImportDirectoryList::p_vector>;
10061};
10065 static constexpr char const * const name{"AsmPEImportDirectoryList"};
10066 static constexpr unsigned long variant{254};
10067 static constexpr bool concrete{true};
10068 using subclasses_t = mp::List<>;
10070};
10071template <> struct node_from_variant_t<254> { using type = SgAsmPEImportDirectoryList; };
10072
10073// Class: AsmPEImportItem
10074template <> struct describe_field_t<SgAsmPEImportItem,bool,&SgAsmPEImportItem::p_by_ordinal> {
10075 using parent = SgAsmPEImportItem;
10076 using field_type = bool;
10077 static constexpr size_t position{0};
10078 static constexpr char const * const name{"by_ordinal"};
10079 static constexpr char const * const typestr{"bool"};
10080 static constexpr bool traverse{false};
10081 static constexpr auto mbr_ptr{&SgAsmPEImportItem::p_by_ordinal};
10082 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10083 using bind = Desc<SgAsmPEImportItem, bool SgAsmPEImportItem::*, &SgAsmPEImportItem::p_by_ordinal>;
10084};
10085template <> struct describe_field_t<SgAsmPEImportItem,unsigned,&SgAsmPEImportItem::p_ordinal> {
10086 using parent = SgAsmPEImportItem;
10087 using field_type = unsigned;
10088 static constexpr size_t position{1};
10089 static constexpr char const * const name{"ordinal"};
10090 static constexpr char const * const typestr{"unsigned"};
10091 static constexpr bool traverse{false};
10092 static constexpr auto mbr_ptr{&SgAsmPEImportItem::p_ordinal};
10093 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10094 using bind = Desc<SgAsmPEImportItem, unsigned SgAsmPEImportItem::*, &SgAsmPEImportItem::p_ordinal>;
10095};
10096template <> struct describe_field_t<SgAsmPEImportItem,unsigned,&SgAsmPEImportItem::p_hint> {
10097 using parent = SgAsmPEImportItem;
10098 using field_type = unsigned;
10099 static constexpr size_t position{2};
10100 static constexpr char const * const name{"hint"};
10101 static constexpr char const * const typestr{"unsigned"};
10102 static constexpr bool traverse{false};
10103 static constexpr auto mbr_ptr{&SgAsmPEImportItem::p_hint};
10104 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10105 using bind = Desc<SgAsmPEImportItem, unsigned SgAsmPEImportItem::*, &SgAsmPEImportItem::p_hint>;
10106};
10107template <> struct describe_field_t<SgAsmPEImportItem,SgAsmGenericString*,&SgAsmPEImportItem::p_name> {
10108 using parent = SgAsmPEImportItem;
10110 static constexpr size_t position{3};
10111 static constexpr char const * const name{"name"};
10112 static constexpr char const * const typestr{"SgAsmGenericString*"};
10113 static constexpr bool traverse{true};
10114 static constexpr auto mbr_ptr{&SgAsmPEImportItem::p_name};
10115 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10116 using bind = Desc<SgAsmPEImportItem, SgAsmGenericString* SgAsmPEImportItem::*, &SgAsmPEImportItem::p_name>;
10117};
10118template <> struct describe_field_t<SgAsmPEImportItem,Rose::BinaryAnalysis::RelativeVirtualAddress,&SgAsmPEImportItem::p_hintname_rva> {
10119 using parent = SgAsmPEImportItem;
10121 static constexpr size_t position{4};
10122 static constexpr char const * const name{"hintname_rva"};
10123 static constexpr char const * const typestr{"Rose::BinaryAnalysis::RelativeVirtualAddress"};
10124 static constexpr bool traverse{false};
10125 static constexpr auto mbr_ptr{&SgAsmPEImportItem::p_hintname_rva};
10126 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10127 using bind = Desc<SgAsmPEImportItem, Rose::BinaryAnalysis::RelativeVirtualAddress SgAsmPEImportItem::*, &SgAsmPEImportItem::p_hintname_rva>;
10128};
10129template <> struct describe_field_t<SgAsmPEImportItem,size_t,&SgAsmPEImportItem::p_hintname_nalloc> {
10130 using parent = SgAsmPEImportItem;
10131 using field_type = size_t;
10132 static constexpr size_t position{5};
10133 static constexpr char const * const name{"hintname_nalloc"};
10134 static constexpr char const * const typestr{"size_t"};
10135 static constexpr bool traverse{false};
10136 static constexpr auto mbr_ptr{&SgAsmPEImportItem::p_hintname_nalloc};
10137 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10138 using bind = Desc<SgAsmPEImportItem, size_t SgAsmPEImportItem::*, &SgAsmPEImportItem::p_hintname_nalloc>;
10139};
10140template <> struct describe_field_t<SgAsmPEImportItem,Rose::BinaryAnalysis::RelativeVirtualAddress,&SgAsmPEImportItem::p_bound_rva> {
10141 using parent = SgAsmPEImportItem;
10143 static constexpr size_t position{6};
10144 static constexpr char const * const name{"bound_rva"};
10145 static constexpr char const * const typestr{"Rose::BinaryAnalysis::RelativeVirtualAddress"};
10146 static constexpr bool traverse{false};
10147 static constexpr auto mbr_ptr{&SgAsmPEImportItem::p_bound_rva};
10148 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10149 using bind = Desc<SgAsmPEImportItem, Rose::BinaryAnalysis::RelativeVirtualAddress SgAsmPEImportItem::*, &SgAsmPEImportItem::p_bound_rva>;
10150};
10151template <> struct describe_field_t<SgAsmPEImportItem,bool,&SgAsmPEImportItem::p_iat_written> {
10152 using parent = SgAsmPEImportItem;
10153 using field_type = bool;
10154 static constexpr size_t position{7};
10155 static constexpr char const * const name{"iat_written"};
10156 static constexpr char const * const typestr{"bool"};
10157 static constexpr bool traverse{false};
10158 static constexpr auto mbr_ptr{&SgAsmPEImportItem::p_iat_written};
10159 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10160 using bind = Desc<SgAsmPEImportItem, bool SgAsmPEImportItem::*, &SgAsmPEImportItem::p_iat_written>;
10161};
10171template <> struct node_from_variant_t<255> { using type = SgAsmPEImportItem; };
10172
10173// Class: AsmPEImportItemList
10174template <> struct describe_field_t<SgAsmPEImportItemList,SgAsmPEImportItemPtrList,&SgAsmPEImportItemList::p_vector> {
10176 using field_type = SgAsmPEImportItemPtrList;
10177 static constexpr size_t position{0};
10178 static constexpr char const * const name{"vector"};
10179 static constexpr char const * const typestr{"SgAsmPEImportItemPtrList"};
10180 static constexpr bool traverse{true};
10181 static constexpr auto mbr_ptr{&SgAsmPEImportItemList::p_vector};
10182 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10183 using bind = Desc<SgAsmPEImportItemList, SgAsmPEImportItemPtrList SgAsmPEImportItemList::*, &SgAsmPEImportItemList::p_vector>;
10184};
10188 static constexpr char const * const name{"AsmPEImportItemList"};
10189 static constexpr unsigned long variant{256};
10190 static constexpr bool concrete{true};
10191 using subclasses_t = mp::List<>;
10193};
10194template <> struct node_from_variant_t<256> { using type = SgAsmPEImportItemList; };
10195
10196// Class: AsmPEImportSection
10197template <> struct describe_field_t<SgAsmPEImportSection,SgAsmPEImportDirectoryList*,&SgAsmPEImportSection::p_importDirectories> {
10200 static constexpr size_t position{0};
10201 static constexpr char const * const name{"importDirectories"};
10202 static constexpr char const * const typestr{"SgAsmPEImportDirectoryList*"};
10203 static constexpr bool traverse{true};
10204 static constexpr auto mbr_ptr{&SgAsmPEImportSection::p_importDirectories};
10205 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10206 using bind = Desc<SgAsmPEImportSection, SgAsmPEImportDirectoryList* SgAsmPEImportSection::*, &SgAsmPEImportSection::p_importDirectories>;
10207};
10209 using node = SgAsmPEImportSection;
10210 using base = SgAsmPESection;
10211 static constexpr char const * const name{"AsmPEImportSection"};
10212 static constexpr unsigned long variant{257};
10213 static constexpr bool concrete{true};
10214 using subclasses_t = mp::List<>;
10216};
10217template <> struct node_from_variant_t<257> { using type = SgAsmPEImportSection; };
10218
10219// Class: AsmPERVASizePair
10220template <> struct describe_field_t<SgAsmPERVASizePair,Rose::BinaryAnalysis::RelativeVirtualAddress,&SgAsmPERVASizePair::p_e_rva> {
10221 using parent = SgAsmPERVASizePair;
10223 static constexpr size_t position{0};
10224 static constexpr char const * const name{"e_rva"};
10225 static constexpr char const * const typestr{"Rose::BinaryAnalysis::RelativeVirtualAddress"};
10226 static constexpr bool traverse{false};
10227 static constexpr auto mbr_ptr{&SgAsmPERVASizePair::p_e_rva};
10228 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10229 using bind = Desc<SgAsmPERVASizePair, Rose::BinaryAnalysis::RelativeVirtualAddress SgAsmPERVASizePair::*, &SgAsmPERVASizePair::p_e_rva>;
10230};
10231template <> struct describe_field_t<SgAsmPERVASizePair,Rose::BinaryAnalysis::Address,&SgAsmPERVASizePair::p_e_size> {
10232 using parent = SgAsmPERVASizePair;
10233 using field_type = Rose::BinaryAnalysis::Address;
10234 static constexpr size_t position{1};
10235 static constexpr char const * const name{"e_size"};
10236 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
10237 static constexpr bool traverse{false};
10238 static constexpr auto mbr_ptr{&SgAsmPERVASizePair::p_e_size};
10239 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10240 using bind = Desc<SgAsmPERVASizePair, Rose::BinaryAnalysis::Address SgAsmPERVASizePair::*, &SgAsmPERVASizePair::p_e_size>;
10241};
10242template <> struct describe_field_t<SgAsmPERVASizePair,SgAsmGenericSection*,&SgAsmPERVASizePair::p_section> {
10243 using parent = SgAsmPERVASizePair;
10245 static constexpr size_t position{2};
10246 static constexpr char const * const name{"section"};
10247 static constexpr char const * const typestr{"SgAsmGenericSection*"};
10248 static constexpr bool traverse{false};
10249 static constexpr auto mbr_ptr{&SgAsmPERVASizePair::p_section};
10250 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10251 using bind = Desc<SgAsmPERVASizePair, SgAsmGenericSection* SgAsmPERVASizePair::*, &SgAsmPERVASizePair::p_section>;
10252};
10262template <> struct node_from_variant_t<258> { using type = SgAsmPERVASizePair; };
10263
10264// Class: AsmPERVASizePairList
10265template <> struct describe_field_t<SgAsmPERVASizePairList,SgAsmPERVASizePairPtrList,&SgAsmPERVASizePairList::p_pairs> {
10267 using field_type = SgAsmPERVASizePairPtrList;
10268 static constexpr size_t position{0};
10269 static constexpr char const * const name{"pairs"};
10270 static constexpr char const * const typestr{"SgAsmPERVASizePairPtrList"};
10271 static constexpr bool traverse{true};
10272 static constexpr auto mbr_ptr{&SgAsmPERVASizePairList::p_pairs};
10273 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10274 using bind = Desc<SgAsmPERVASizePairList, SgAsmPERVASizePairPtrList SgAsmPERVASizePairList::*, &SgAsmPERVASizePairList::p_pairs>;
10275};
10279 static constexpr char const * const name{"AsmPERVASizePairList"};
10280 static constexpr unsigned long variant{259};
10281 static constexpr bool concrete{true};
10282 using subclasses_t = mp::List<>;
10284};
10285template <> struct node_from_variant_t<259> { using type = SgAsmPERVASizePairList; };
10286
10287// Class: AsmPESection
10288template <> struct describe_field_t<SgAsmPESection,SgAsmPESectionTableEntry*,&SgAsmPESection::p_section_entry> {
10289 using parent = SgAsmPESection;
10291 static constexpr size_t position{0};
10292 static constexpr char const * const name{"section_entry"};
10293 static constexpr char const * const typestr{"SgAsmPESectionTableEntry*"};
10294 static constexpr bool traverse{true};
10295 static constexpr auto mbr_ptr{&SgAsmPESection::p_section_entry};
10296 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10297 using bind = Desc<SgAsmPESection, SgAsmPESectionTableEntry* SgAsmPESection::*, &SgAsmPESection::p_section_entry>;
10298};
10299template <> struct describe_node_t<SgAsmPESection> {
10300 using node = SgAsmPESection;
10301 using base = SgAsmGenericSection;
10302 static constexpr char const * const name{"AsmPESection"};
10303 static constexpr unsigned long variant{260};
10304 static constexpr bool concrete{true};
10307};
10308template <> struct node_from_variant_t<260> { using type = SgAsmPESection; };
10309
10310// Class: AsmPESectionTable
10312 using node = SgAsmPESectionTable;
10313 using base = SgAsmGenericSection;
10314 static constexpr char const * const name{"AsmPESectionTable"};
10315 static constexpr unsigned long variant{261};
10316 static constexpr bool concrete{true};
10317 using subclasses_t = mp::List<>;
10318 using fields_t = mp::List<>;
10319};
10320template <> struct node_from_variant_t<261> { using type = SgAsmPESectionTable; };
10321
10322// Class: AsmPESectionTableEntry
10323template <> struct describe_field_t<SgAsmPESectionTableEntry,std::string,&SgAsmPESectionTableEntry::p_name> {
10325 using field_type = std::string;
10326 static constexpr size_t position{0};
10327 static constexpr char const * const name{"name"};
10328 static constexpr char const * const typestr{"std::string"};
10329 static constexpr bool traverse{false};
10330 static constexpr auto mbr_ptr{&SgAsmPESectionTableEntry::p_name};
10331 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10332 using bind = Desc<SgAsmPESectionTableEntry, std::string SgAsmPESectionTableEntry::*, &SgAsmPESectionTableEntry::p_name>;
10333};
10334template <> struct describe_field_t<SgAsmPESectionTableEntry,Rose::BinaryAnalysis::Address,&SgAsmPESectionTableEntry::p_virtual_size> {
10336 using field_type = Rose::BinaryAnalysis::Address;
10337 static constexpr size_t position{1};
10338 static constexpr char const * const name{"virtual_size"};
10339 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
10340 static constexpr bool traverse{false};
10341 static constexpr auto mbr_ptr{&SgAsmPESectionTableEntry::p_virtual_size};
10342 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10343 using bind = Desc<SgAsmPESectionTableEntry, Rose::BinaryAnalysis::Address SgAsmPESectionTableEntry::*, &SgAsmPESectionTableEntry::p_virtual_size>;
10344};
10345template <> struct describe_field_t<SgAsmPESectionTableEntry,Rose::BinaryAnalysis::Address,&SgAsmPESectionTableEntry::p_rva> {
10347 using field_type = Rose::BinaryAnalysis::Address;
10348 static constexpr size_t position{2};
10349 static constexpr char const * const name{"rva"};
10350 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
10351 static constexpr bool traverse{false};
10352 static constexpr auto mbr_ptr{&SgAsmPESectionTableEntry::p_rva};
10353 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10354 using bind = Desc<SgAsmPESectionTableEntry, Rose::BinaryAnalysis::Address SgAsmPESectionTableEntry::*, &SgAsmPESectionTableEntry::p_rva>;
10355};
10356template <> struct describe_field_t<SgAsmPESectionTableEntry,Rose::BinaryAnalysis::Address,&SgAsmPESectionTableEntry::p_physical_size> {
10358 using field_type = Rose::BinaryAnalysis::Address;
10359 static constexpr size_t position{3};
10360 static constexpr char const * const name{"physical_size"};
10361 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
10362 static constexpr bool traverse{false};
10363 static constexpr auto mbr_ptr{&SgAsmPESectionTableEntry::p_physical_size};
10364 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10365 using bind = Desc<SgAsmPESectionTableEntry, Rose::BinaryAnalysis::Address SgAsmPESectionTableEntry::*, &SgAsmPESectionTableEntry::p_physical_size>;
10366};
10367template <> struct describe_field_t<SgAsmPESectionTableEntry,Rose::BinaryAnalysis::Address,&SgAsmPESectionTableEntry::p_physical_offset> {
10369 using field_type = Rose::BinaryAnalysis::Address;
10370 static constexpr size_t position{4};
10371 static constexpr char const * const name{"physical_offset"};
10372 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
10373 static constexpr bool traverse{false};
10374 static constexpr auto mbr_ptr{&SgAsmPESectionTableEntry::p_physical_offset};
10375 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10376 using bind = Desc<SgAsmPESectionTableEntry, Rose::BinaryAnalysis::Address SgAsmPESectionTableEntry::*, &SgAsmPESectionTableEntry::p_physical_offset>;
10377};
10378template <> struct describe_field_t<SgAsmPESectionTableEntry,unsigned,&SgAsmPESectionTableEntry::p_coff_line_nums> {
10380 using field_type = unsigned;
10381 static constexpr size_t position{5};
10382 static constexpr char const * const name{"coff_line_nums"};
10383 static constexpr char const * const typestr{"unsigned"};
10384 static constexpr bool traverse{false};
10385 static constexpr auto mbr_ptr{&SgAsmPESectionTableEntry::p_coff_line_nums};
10386 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10387 using bind = Desc<SgAsmPESectionTableEntry, unsigned SgAsmPESectionTableEntry::*, &SgAsmPESectionTableEntry::p_coff_line_nums>;
10388};
10389template <> struct describe_field_t<SgAsmPESectionTableEntry,unsigned,&SgAsmPESectionTableEntry::p_n_relocs> {
10391 using field_type = unsigned;
10392 static constexpr size_t position{6};
10393 static constexpr char const * const name{"n_relocs"};
10394 static constexpr char const * const typestr{"unsigned"};
10395 static constexpr bool traverse{false};
10396 static constexpr auto mbr_ptr{&SgAsmPESectionTableEntry::p_n_relocs};
10397 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10398 using bind = Desc<SgAsmPESectionTableEntry, unsigned SgAsmPESectionTableEntry::*, &SgAsmPESectionTableEntry::p_n_relocs>;
10399};
10400template <> struct describe_field_t<SgAsmPESectionTableEntry,unsigned,&SgAsmPESectionTableEntry::p_n_coff_line_nums> {
10402 using field_type = unsigned;
10403 static constexpr size_t position{7};
10404 static constexpr char const * const name{"n_coff_line_nums"};
10405 static constexpr char const * const typestr{"unsigned"};
10406 static constexpr bool traverse{false};
10407 static constexpr auto mbr_ptr{&SgAsmPESectionTableEntry::p_n_coff_line_nums};
10408 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10409 using bind = Desc<SgAsmPESectionTableEntry, unsigned SgAsmPESectionTableEntry::*, &SgAsmPESectionTableEntry::p_n_coff_line_nums>;
10410};
10411template <> struct describe_field_t<SgAsmPESectionTableEntry,unsigned,&SgAsmPESectionTableEntry::p_flags> {
10413 using field_type = unsigned;
10414 static constexpr size_t position{8};
10415 static constexpr char const * const name{"flags"};
10416 static constexpr char const * const typestr{"unsigned"};
10417 static constexpr bool traverse{false};
10418 static constexpr auto mbr_ptr{&SgAsmPESectionTableEntry::p_flags};
10419 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10420 using bind = Desc<SgAsmPESectionTableEntry, unsigned SgAsmPESectionTableEntry::*, &SgAsmPESectionTableEntry::p_flags>;
10421};
10431template <> struct node_from_variant_t<262> { using type = SgAsmPESectionTableEntry; };
10432
10433// Class: AsmPEStringSection
10434template <> struct describe_field_t<SgAsmPEStringSection,SgAsmCoffStrtab*,&SgAsmPEStringSection::p_strtab> {
10436 using field_type = SgAsmCoffStrtab*;
10437 static constexpr size_t position{0};
10438 static constexpr char const * const name{"strtab"};
10439 static constexpr char const * const typestr{"SgAsmCoffStrtab*"};
10440 static constexpr bool traverse{false};
10441 static constexpr auto mbr_ptr{&SgAsmPEStringSection::p_strtab};
10442 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10443 using bind = Desc<SgAsmPEStringSection, SgAsmCoffStrtab* SgAsmPEStringSection::*, &SgAsmPEStringSection::p_strtab>;
10444};
10446 using node = SgAsmPEStringSection;
10447 using base = SgAsmPESection;
10448 static constexpr char const * const name{"AsmPEStringSection"};
10449 static constexpr unsigned long variant{263};
10450 static constexpr bool concrete{true};
10451 using subclasses_t = mp::List<>;
10453};
10454template <> struct node_from_variant_t<263> { using type = SgAsmPEStringSection; };
10455
10456// Class: AsmPowerpcInstruction
10457template <> struct describe_field_t<SgAsmPowerpcInstruction,Rose::BinaryAnalysis::PowerpcInstructionKind,&SgAsmPowerpcInstruction::p_kind> {
10459 using field_type = Rose::BinaryAnalysis::PowerpcInstructionKind;
10460 static constexpr size_t position{0};
10461 static constexpr char const * const name{"kind"};
10462 static constexpr char const * const typestr{"Rose::BinaryAnalysis::PowerpcInstructionKind"};
10463 static constexpr bool traverse{false};
10464 static constexpr auto mbr_ptr{&SgAsmPowerpcInstruction::p_kind};
10465 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10466 using bind = Desc<SgAsmPowerpcInstruction, Rose::BinaryAnalysis::PowerpcInstructionKind SgAsmPowerpcInstruction::*, &SgAsmPowerpcInstruction::p_kind>;
10467};
10470 using base = SgAsmInstruction;
10471 static constexpr char const * const name{"AsmPowerpcInstruction"};
10472 static constexpr unsigned long variant{264};
10473 static constexpr bool concrete{true};
10474 using subclasses_t = mp::List<>;
10476};
10477template <> struct node_from_variant_t<264> { using type = SgAsmPowerpcInstruction; };
10478
10479// Class: AsmRegisterNames
10480template <> struct describe_field_t<SgAsmRegisterNames,SgAsmRegisterReferenceExpressionPtrList,&SgAsmRegisterNames::p_registers> {
10481 using parent = SgAsmRegisterNames;
10482 using field_type = SgAsmRegisterReferenceExpressionPtrList;
10483 static constexpr size_t position{0};
10484 static constexpr char const * const name{"registers"};
10485 static constexpr char const * const typestr{"SgAsmRegisterReferenceExpressionPtrList"};
10486 static constexpr bool traverse{true};
10487 static constexpr auto mbr_ptr{&SgAsmRegisterNames::p_registers};
10488 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10489 using bind = Desc<SgAsmRegisterNames, SgAsmRegisterReferenceExpressionPtrList SgAsmRegisterNames::*, &SgAsmRegisterNames::p_registers>;
10490};
10491template <> struct describe_field_t<SgAsmRegisterNames,unsigned,&SgAsmRegisterNames::p_mask> {
10492 using parent = SgAsmRegisterNames;
10493 using field_type = unsigned;
10494 static constexpr size_t position{1};
10495 static constexpr char const * const name{"mask"};
10496 static constexpr char const * const typestr{"unsigned"};
10497 static constexpr bool traverse{false};
10498 static constexpr auto mbr_ptr{&SgAsmRegisterNames::p_mask};
10499 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10500 using bind = Desc<SgAsmRegisterNames, unsigned SgAsmRegisterNames::*, &SgAsmRegisterNames::p_mask>;
10501};
10503 using node = SgAsmRegisterNames;
10504 using base = SgAsmExpression;
10505 static constexpr char const * const name{"AsmRegisterNames"};
10506 static constexpr unsigned long variant{265};
10507 static constexpr bool concrete{true};
10508 using subclasses_t = mp::List<>;
10510};
10511template <> struct node_from_variant_t<265> { using type = SgAsmRegisterNames; };
10512
10513// Class: AsmRegisterReferenceExpression
10514template <> struct describe_field_t<SgAsmRegisterReferenceExpression,Rose::BinaryAnalysis::RegisterDescriptor,&SgAsmRegisterReferenceExpression::p_descriptor> {
10517 static constexpr size_t position{0};
10518 static constexpr char const * const name{"descriptor"};
10519 static constexpr char const * const typestr{"Rose::BinaryAnalysis::RegisterDescriptor"};
10520 static constexpr bool traverse{false};
10521 static constexpr auto mbr_ptr{&SgAsmRegisterReferenceExpression::p_descriptor};
10522 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10523 using bind = Desc<SgAsmRegisterReferenceExpression, Rose::BinaryAnalysis::RegisterDescriptor SgAsmRegisterReferenceExpression::*, &SgAsmRegisterReferenceExpression::p_descriptor>;
10524};
10525template <> struct describe_field_t<SgAsmRegisterReferenceExpression,int,&SgAsmRegisterReferenceExpression::p_adjustment> {
10527 using field_type = int;
10528 static constexpr size_t position{1};
10529 static constexpr char const * const name{"adjustment"};
10530 static constexpr char const * const typestr{"int"};
10531 static constexpr bool traverse{false};
10532 static constexpr auto mbr_ptr{&SgAsmRegisterReferenceExpression::p_adjustment};
10533 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10534 using bind = Desc<SgAsmRegisterReferenceExpression, int SgAsmRegisterReferenceExpression::*, &SgAsmRegisterReferenceExpression::p_adjustment>;
10535};
10545template <> struct node_from_variant_t<266> { using type = SgAsmRegisterReferenceExpression; };
10546
10547// Class: AsmRiscOperation
10548template <> struct describe_field_t<SgAsmRiscOperation,SgAsmRiscOperation::RiscOperator,&SgAsmRiscOperation::p_riscOperator> {
10549 using parent = SgAsmRiscOperation;
10551 static constexpr size_t position{0};
10552 static constexpr char const * const name{"riscOperator"};
10553 static constexpr char const * const typestr{"SgAsmRiscOperation::RiscOperator"};
10554 static constexpr bool traverse{false};
10555 static constexpr auto mbr_ptr{&SgAsmRiscOperation::p_riscOperator};
10556 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10557 using bind = Desc<SgAsmRiscOperation, SgAsmRiscOperation::RiscOperator SgAsmRiscOperation::*, &SgAsmRiscOperation::p_riscOperator>;
10558};
10559template <> struct describe_field_t<SgAsmRiscOperation,SgAsmExprListExp*,&SgAsmRiscOperation::p_operands> {
10560 using parent = SgAsmRiscOperation;
10562 static constexpr size_t position{1};
10563 static constexpr char const * const name{"operands"};
10564 static constexpr char const * const typestr{"SgAsmExprListExp*"};
10565 static constexpr bool traverse{true};
10566 static constexpr auto mbr_ptr{&SgAsmRiscOperation::p_operands};
10567 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10568 using bind = Desc<SgAsmRiscOperation, SgAsmExprListExp* SgAsmRiscOperation::*, &SgAsmRiscOperation::p_operands>;
10569};
10571 using node = SgAsmRiscOperation;
10572 using base = SgAsmExpression;
10573 static constexpr char const * const name{"AsmRiscOperation"};
10574 static constexpr unsigned long variant{267};
10575 static constexpr bool concrete{true};
10576 using subclasses_t = mp::List<>;
10578};
10579template <> struct node_from_variant_t<267> { using type = SgAsmRiscOperation; };
10580
10581// Class: AsmScalarType
10582template <> struct describe_field_t<SgAsmScalarType,Rose::BinaryAnalysis::ByteOrder::Endianness,&SgAsmScalarType::p_minorOrder> {
10583 using parent = SgAsmScalarType;
10585 static constexpr size_t position{0};
10586 static constexpr char const * const name{"minorOrder"};
10587 static constexpr char const * const typestr{"Rose::BinaryAnalysis::ByteOrder::Endianness"};
10588 static constexpr bool traverse{false};
10589 static constexpr auto mbr_ptr{&SgAsmScalarType::p_minorOrder};
10590 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10591 using bind = Desc<SgAsmScalarType, Rose::BinaryAnalysis::ByteOrder::Endianness SgAsmScalarType::*, &SgAsmScalarType::p_minorOrder>;
10592};
10593template <> struct describe_field_t<SgAsmScalarType,Rose::BinaryAnalysis::ByteOrder::Endianness,&SgAsmScalarType::p_majorOrder> {
10594 using parent = SgAsmScalarType;
10596 static constexpr size_t position{1};
10597 static constexpr char const * const name{"majorOrder"};
10598 static constexpr char const * const typestr{"Rose::BinaryAnalysis::ByteOrder::Endianness"};
10599 static constexpr bool traverse{false};
10600 static constexpr auto mbr_ptr{&SgAsmScalarType::p_majorOrder};
10601 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10602 using bind = Desc<SgAsmScalarType, Rose::BinaryAnalysis::ByteOrder::Endianness SgAsmScalarType::*, &SgAsmScalarType::p_majorOrder>;
10603};
10604template <> struct describe_field_t<SgAsmScalarType,size_t,&SgAsmScalarType::p_majorNBytes> {
10605 using parent = SgAsmScalarType;
10606 using field_type = size_t;
10607 static constexpr size_t position{2};
10608 static constexpr char const * const name{"majorNBytes"};
10609 static constexpr char const * const typestr{"size_t"};
10610 static constexpr bool traverse{false};
10611 static constexpr auto mbr_ptr{&SgAsmScalarType::p_majorNBytes};
10612 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10613 using bind = Desc<SgAsmScalarType, size_t SgAsmScalarType::*, &SgAsmScalarType::p_majorNBytes>;
10614};
10615template <> struct describe_field_t<SgAsmScalarType,size_t,&SgAsmScalarType::p_nBits> {
10616 using parent = SgAsmScalarType;
10617 using field_type = size_t;
10618 static constexpr size_t position{3};
10619 static constexpr char const * const name{"nBits"};
10620 static constexpr char const * const typestr{"size_t"};
10621 static constexpr bool traverse{false};
10622 static constexpr auto mbr_ptr{&SgAsmScalarType::p_nBits};
10623 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10624 using bind = Desc<SgAsmScalarType, size_t SgAsmScalarType::*, &SgAsmScalarType::p_nBits>;
10625};
10635template <> struct node_from_variant_t<268> { using type = SgAsmScalarType; };
10636
10637// Class: AsmStatement
10638template <> struct describe_field_t<SgAsmStatement,Rose::BinaryAnalysis::Address,&SgAsmStatement::p_address> {
10639 using parent = SgAsmStatement;
10640 using field_type = Rose::BinaryAnalysis::Address;
10641 static constexpr size_t position{0};
10642 static constexpr char const * const name{"address"};
10643 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
10644 static constexpr bool traverse{false};
10645 static constexpr auto mbr_ptr{&SgAsmStatement::p_address};
10646 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10647 using bind = Desc<SgAsmStatement, Rose::BinaryAnalysis::Address SgAsmStatement::*, &SgAsmStatement::p_address>;
10648};
10649template <> struct describe_field_t<SgAsmStatement,std::string,&SgAsmStatement::p_comment> {
10650 using parent = SgAsmStatement;
10651 using field_type = std::string;
10652 static constexpr size_t position{1};
10653 static constexpr char const * const name{"comment"};
10654 static constexpr char const * const typestr{"std::string"};
10655 static constexpr bool traverse{false};
10656 static constexpr auto mbr_ptr{&SgAsmStatement::p_comment};
10657 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10658 using bind = Desc<SgAsmStatement, std::string SgAsmStatement::*, &SgAsmStatement::p_comment>;
10659};
10660template <> struct describe_node_t<SgAsmStatement> {
10661 using node = SgAsmStatement;
10662 using base = SgAsmNode;
10663 static constexpr char const * const name{"AsmStatement"};
10664 static constexpr unsigned long variant{269};
10665 static constexpr bool concrete{false};
10668};
10669template <> struct node_from_variant_t<269> { using type = SgAsmStatement; };
10670
10671// Class: AsmStaticData
10672template <> struct describe_field_t<SgAsmStaticData,SgUnsignedCharList,&SgAsmStaticData::p_rawBytes> {
10673 using parent = SgAsmStaticData;
10674 using field_type = SgUnsignedCharList;
10675 static constexpr size_t position{0};
10676 static constexpr char const * const name{"rawBytes"};
10677 static constexpr char const * const typestr{"SgUnsignedCharList"};
10678 static constexpr bool traverse{false};
10679 static constexpr auto mbr_ptr{&SgAsmStaticData::p_rawBytes};
10680 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10681 using bind = Desc<SgAsmStaticData, SgUnsignedCharList SgAsmStaticData::*, &SgAsmStaticData::p_rawBytes>;
10682};
10684 using node = SgAsmStaticData;
10685 using base = SgAsmStatement;
10686 static constexpr char const * const name{"AsmStaticData"};
10687 static constexpr unsigned long variant{270};
10688 static constexpr bool concrete{true};
10689 using subclasses_t = mp::List<>;
10691};
10692template <> struct node_from_variant_t<270> { using type = SgAsmStaticData; };
10693
10694// Class: AsmStmt
10695template <> struct describe_field_t<SgAsmStmt,std::string,&SgAsmStmt::p_assemblyCode> {
10696 using parent = SgAsmStmt;
10697 using field_type = std::string;
10698 static constexpr size_t position{0};
10699 static constexpr char const * const name{"assemblyCode"};
10700 static constexpr char const * const typestr{"std::string"};
10701 static constexpr bool traverse{false};
10702 static constexpr auto mbr_ptr{&SgAsmStmt::p_assemblyCode};
10703 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10704 using bind = Desc<SgAsmStmt, std::string SgAsmStmt::*, &SgAsmStmt::p_assemblyCode>;
10705};
10706template <> struct describe_field_t<SgAsmStmt,bool,&SgAsmStmt::p_useGnuExtendedFormat> {
10707 using parent = SgAsmStmt;
10708 using field_type = bool;
10709 static constexpr size_t position{1};
10710 static constexpr char const * const name{"useGnuExtendedFormat"};
10711 static constexpr char const * const typestr{"bool"};
10712 static constexpr bool traverse{false};
10713 static constexpr auto mbr_ptr{&SgAsmStmt::p_useGnuExtendedFormat};
10714 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10715 using bind = Desc<SgAsmStmt, bool SgAsmStmt::*, &SgAsmStmt::p_useGnuExtendedFormat>;
10716};
10717template <> struct describe_field_t<SgAsmStmt,SgExpressionPtrList,&SgAsmStmt::p_operands> {
10718 using parent = SgAsmStmt;
10719 using field_type = SgExpressionPtrList;
10720 static constexpr size_t position{2};
10721 static constexpr char const * const name{"operands"};
10722 static constexpr char const * const typestr{"SgExpressionPtrList"};
10723 static constexpr bool traverse{true};
10724 static constexpr auto mbr_ptr{&SgAsmStmt::p_operands};
10725 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10726 using bind = Desc<SgAsmStmt, SgExpressionPtrList SgAsmStmt::*, &SgAsmStmt::p_operands>;
10727};
10729 using parent = SgAsmStmt;
10730 using field_type = SgAsmStmt::AsmRegisterNameList;
10731 static constexpr size_t position{3};
10732 static constexpr char const * const name{"clobberRegisterList"};
10733 static constexpr char const * const typestr{"SgAsmStmt::AsmRegisterNameList"};
10734 static constexpr bool traverse{false};
10735 static constexpr auto mbr_ptr{&SgAsmStmt::p_clobberRegisterList};
10736 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10737 using bind = Desc<SgAsmStmt, SgAsmStmt::AsmRegisterNameList SgAsmStmt::*, &SgAsmStmt::p_clobberRegisterList>;
10738};
10739template <> struct describe_field_t<SgAsmStmt,bool,&SgAsmStmt::p_isVolatile> {
10740 using parent = SgAsmStmt;
10741 using field_type = bool;
10742 static constexpr size_t position{4};
10743 static constexpr char const * const name{"isVolatile"};
10744 static constexpr char const * const typestr{"bool"};
10745 static constexpr bool traverse{false};
10746 static constexpr auto mbr_ptr{&SgAsmStmt::p_isVolatile};
10747 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10748 using bind = Desc<SgAsmStmt, bool SgAsmStmt::*, &SgAsmStmt::p_isVolatile>;
10749};
10759template <> struct node_from_variant_t<271> { using type = SgAsmStmt; };
10760
10761// Class: AsmStoredString
10762template <> struct describe_field_t<SgAsmStoredString,SgAsmStringStorage*,&SgAsmStoredString::p_storage> {
10763 using parent = SgAsmStoredString;
10765 static constexpr size_t position{0};
10766 static constexpr char const * const name{"storage"};
10767 static constexpr char const * const typestr{"SgAsmStringStorage*"};
10768 static constexpr bool traverse{false};
10769 static constexpr auto mbr_ptr{&SgAsmStoredString::p_storage};
10770 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10771 using bind = Desc<SgAsmStoredString, SgAsmStringStorage* SgAsmStoredString::*, &SgAsmStoredString::p_storage>;
10772};
10774 using node = SgAsmStoredString;
10775 using base = SgAsmGenericString;
10776 static constexpr char const * const name{"AsmStoredString"};
10777 static constexpr unsigned long variant{272};
10778 static constexpr bool concrete{true};
10779 using subclasses_t = mp::List<>;
10781};
10782template <> struct node_from_variant_t<272> { using type = SgAsmStoredString; };
10783
10784// Class: AsmStringStorage
10785template <> struct describe_field_t<SgAsmStringStorage,SgAsmGenericStrtab*,&SgAsmStringStorage::p_strtab> {
10786 using parent = SgAsmStringStorage;
10788 static constexpr size_t position{0};
10789 static constexpr char const * const name{"strtab"};
10790 static constexpr char const * const typestr{"SgAsmGenericStrtab*"};
10791 static constexpr bool traverse{false};
10792 static constexpr auto mbr_ptr{&SgAsmStringStorage::p_strtab};
10793 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10794 using bind = Desc<SgAsmStringStorage, SgAsmGenericStrtab* SgAsmStringStorage::*, &SgAsmStringStorage::p_strtab>;
10795};
10796template <> struct describe_field_t<SgAsmStringStorage,std::string,&SgAsmStringStorage::p_string> {
10797 using parent = SgAsmStringStorage;
10798 using field_type = std::string;
10799 static constexpr size_t position{1};
10800 static constexpr char const * const name{"string"};
10801 static constexpr char const * const typestr{"std::string"};
10802 static constexpr bool traverse{false};
10803 static constexpr auto mbr_ptr{&SgAsmStringStorage::p_string};
10804 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10805 using bind = Desc<SgAsmStringStorage, std::string SgAsmStringStorage::*, &SgAsmStringStorage::p_string>;
10806};
10807template <> struct describe_field_t<SgAsmStringStorage,Rose::BinaryAnalysis::Address,&SgAsmStringStorage::p_offset> {
10808 using parent = SgAsmStringStorage;
10809 using field_type = Rose::BinaryAnalysis::Address;
10810 static constexpr size_t position{2};
10811 static constexpr char const * const name{"offset"};
10812 static constexpr char const * const typestr{"Rose::BinaryAnalysis::Address"};
10813 static constexpr bool traverse{false};
10814 static constexpr auto mbr_ptr{&SgAsmStringStorage::p_offset};
10815 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10816 using bind = Desc<SgAsmStringStorage, Rose::BinaryAnalysis::Address SgAsmStringStorage::*, &SgAsmStringStorage::p_offset>;
10817};
10819 using node = SgAsmStringStorage;
10821 static constexpr char const * const name{"AsmStringStorage"};
10822 static constexpr unsigned long variant{273};
10823 static constexpr bool concrete{true};
10824 using subclasses_t = mp::List<>;
10826};
10827template <> struct node_from_variant_t<273> { using type = SgAsmStringStorage; };
10828
10829// Class: AsmType
10830template <> struct describe_node_t<SgAsmType> {
10831 using node = SgAsmType;
10832 using base = SgAsmNode;
10833 static constexpr char const * const name{"AsmType"};
10834 static constexpr unsigned long variant{274};
10835 static constexpr bool concrete{false};
10837 using fields_t = mp::List<>;
10838};
10839template <> struct node_from_variant_t<274> { using type = SgAsmType; };
10840
10841// Class: AsmUnaryExpression
10842template <> struct describe_field_t<SgAsmUnaryExpression,SgAsmExpression*,&SgAsmUnaryExpression::p_operand> {
10844 using field_type = SgAsmExpression*;
10845 static constexpr size_t position{0};
10846 static constexpr char const * const name{"operand"};
10847 static constexpr char const * const typestr{"SgAsmExpression*"};
10848 static constexpr bool traverse{true};
10849 static constexpr auto mbr_ptr{&SgAsmUnaryExpression::p_operand};
10850 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10851 using bind = Desc<SgAsmUnaryExpression, SgAsmExpression* SgAsmUnaryExpression::*, &SgAsmUnaryExpression::p_operand>;
10852};
10854 using node = SgAsmUnaryExpression;
10855 using base = SgAsmExpression;
10856 static constexpr char const * const name{"AsmUnaryExpression"};
10857 static constexpr unsigned long variant{275};
10858 static constexpr bool concrete{false};
10861};
10862template <> struct node_from_variant_t<275> { using type = SgAsmUnaryExpression; };
10863
10864// Class: AsmUnaryMinus
10866 using node = SgAsmUnaryMinus;
10867 using base = SgAsmUnaryExpression;
10868 static constexpr char const * const name{"AsmUnaryMinus"};
10869 static constexpr unsigned long variant{276};
10870 static constexpr bool concrete{true};
10871 using subclasses_t = mp::List<>;
10872 using fields_t = mp::List<>;
10873};
10874template <> struct node_from_variant_t<276> { using type = SgAsmUnaryMinus; };
10875
10876// Class: AsmUnaryPlus
10877template <> struct describe_node_t<SgAsmUnaryPlus> {
10878 using node = SgAsmUnaryPlus;
10879 using base = SgAsmUnaryExpression;
10880 static constexpr char const * const name{"AsmUnaryPlus"};
10881 static constexpr unsigned long variant{277};
10882 static constexpr bool concrete{true};
10883 using subclasses_t = mp::List<>;
10884 using fields_t = mp::List<>;
10885};
10886template <> struct node_from_variant_t<277> { using type = SgAsmUnaryPlus; };
10887
10888// Class: AsmUnaryRrx
10889template <> struct describe_node_t<SgAsmUnaryRrx> {
10890 using node = SgAsmUnaryRrx;
10891 using base = SgAsmUnaryExpression;
10892 static constexpr char const * const name{"AsmUnaryRrx"};
10893 static constexpr unsigned long variant{278};
10894 static constexpr bool concrete{true};
10895 using subclasses_t = mp::List<>;
10896 using fields_t = mp::List<>;
10897};
10898template <> struct node_from_variant_t<278> { using type = SgAsmUnaryRrx; };
10899
10900// Class: AsmUnarySignedExtend
10903 using base = SgAsmUnaryExpression;
10904 static constexpr char const * const name{"AsmUnarySignedExtend"};
10905 static constexpr unsigned long variant{279};
10906 static constexpr bool concrete{true};
10907 using subclasses_t = mp::List<>;
10908 using fields_t = mp::List<>;
10909};
10910template <> struct node_from_variant_t<279> { using type = SgAsmUnarySignedExtend; };
10911
10912// Class: AsmUnaryUnsignedExtend
10915 using base = SgAsmUnaryExpression;
10916 static constexpr char const * const name{"AsmUnaryUnsignedExtend"};
10917 static constexpr unsigned long variant{280};
10918 static constexpr bool concrete{true};
10919 using subclasses_t = mp::List<>;
10920 using fields_t = mp::List<>;
10921};
10922template <> struct node_from_variant_t<280> { using type = SgAsmUnaryUnsignedExtend; };
10923
10924// Class: AsmUnaryTruncate
10926 using node = SgAsmUnaryTruncate;
10927 using base = SgAsmUnaryExpression;
10928 static constexpr char const * const name{"AsmUnaryTruncate"};
10929 static constexpr unsigned long variant{281};
10930 static constexpr bool concrete{true};
10931 using subclasses_t = mp::List<>;
10932 using fields_t = mp::List<>;
10933};
10934template <> struct node_from_variant_t<281> { using type = SgAsmUnaryTruncate; };
10935
10936// Class: AsmValueExpression
10937template <> struct describe_field_t<SgAsmValueExpression,SgAsmValueExpression*,&SgAsmValueExpression::p_unfoldedExpression> {
10940 static constexpr size_t position{0};
10941 static constexpr char const * const name{"unfoldedExpression"};
10942 static constexpr char const * const typestr{"SgAsmValueExpression*"};
10943 static constexpr bool traverse{true};
10944 static constexpr auto mbr_ptr{&SgAsmValueExpression::p_unfoldedExpression};
10945 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10946 using bind = Desc<SgAsmValueExpression, SgAsmValueExpression* SgAsmValueExpression::*, &SgAsmValueExpression::p_unfoldedExpression>;
10947};
10948template <> struct describe_field_t<SgAsmValueExpression,unsigned short,&SgAsmValueExpression::p_bitOffset> {
10950 using field_type = unsigned short;
10951 static constexpr size_t position{1};
10952 static constexpr char const * const name{"bitOffset"};
10953 static constexpr char const * const typestr{"unsigned short"};
10954 static constexpr bool traverse{false};
10955 static constexpr auto mbr_ptr{&SgAsmValueExpression::p_bitOffset};
10956 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10957 using bind = Desc<SgAsmValueExpression, unsigned short SgAsmValueExpression::*, &SgAsmValueExpression::p_bitOffset>;
10958};
10959template <> struct describe_field_t<SgAsmValueExpression,unsigned short,&SgAsmValueExpression::p_bitSize> {
10961 using field_type = unsigned short;
10962 static constexpr size_t position{2};
10963 static constexpr char const * const name{"bitSize"};
10964 static constexpr char const * const typestr{"unsigned short"};
10965 static constexpr bool traverse{false};
10966 static constexpr auto mbr_ptr{&SgAsmValueExpression::p_bitSize};
10967 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10968 using bind = Desc<SgAsmValueExpression, unsigned short SgAsmValueExpression::*, &SgAsmValueExpression::p_bitSize>;
10969};
10970template <> struct describe_field_t<SgAsmValueExpression,SgSymbol*,&SgAsmValueExpression::p_symbol> {
10972 using field_type = SgSymbol*;
10973 static constexpr size_t position{3};
10974 static constexpr char const * const name{"symbol"};
10975 static constexpr char const * const typestr{"SgSymbol*"};
10976 static constexpr bool traverse{false};
10977 static constexpr auto mbr_ptr{&SgAsmValueExpression::p_symbol};
10978 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
10979 using bind = Desc<SgAsmValueExpression, SgSymbol* SgAsmValueExpression::*, &SgAsmValueExpression::p_symbol>;
10980};
10990template <> struct node_from_variant_t<282> { using type = SgAsmValueExpression; };
10991
10992// Class: AsmVectorType
10993template <> struct describe_field_t<SgAsmVectorType,size_t,&SgAsmVectorType::p_nElmts> {
10994 using parent = SgAsmVectorType;
10995 using field_type = size_t;
10996 static constexpr size_t position{0};
10997 static constexpr char const * const name{"nElmts"};
10998 static constexpr char const * const typestr{"size_t"};
10999 static constexpr bool traverse{false};
11000 static constexpr auto mbr_ptr{&SgAsmVectorType::p_nElmts};
11001 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11002 using bind = Desc<SgAsmVectorType, size_t SgAsmVectorType::*, &SgAsmVectorType::p_nElmts>;
11003};
11004template <> struct describe_field_t<SgAsmVectorType,SgAsmType*,&SgAsmVectorType::p_elmtType> {
11005 using parent = SgAsmVectorType;
11006 using field_type = SgAsmType*;
11007 static constexpr size_t position{1};
11008 static constexpr char const * const name{"elmtType"};
11009 static constexpr char const * const typestr{"SgAsmType*"};
11010 static constexpr bool traverse{false};
11011 static constexpr auto mbr_ptr{&SgAsmVectorType::p_elmtType};
11012 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11013 using bind = Desc<SgAsmVectorType, SgAsmType* SgAsmVectorType::*, &SgAsmVectorType::p_elmtType>;
11014};
11016 using node = SgAsmVectorType;
11017 using base = SgAsmType;
11018 static constexpr char const * const name{"AsmVectorType"};
11019 static constexpr unsigned long variant{283};
11020 static constexpr bool concrete{true};
11021 using subclasses_t = mp::List<>;
11023};
11024template <> struct node_from_variant_t<283> { using type = SgAsmVectorType; };
11025
11026// Class: AsmX86Instruction
11027template <> struct describe_field_t<SgAsmX86Instruction,Rose::BinaryAnalysis::X86InstructionKind,&SgAsmX86Instruction::p_kind> {
11030 static constexpr size_t position{0};
11031 static constexpr char const * const name{"kind"};
11032 static constexpr char const * const typestr{"Rose::BinaryAnalysis::X86InstructionKind"};
11033 static constexpr bool traverse{false};
11034 static constexpr auto mbr_ptr{&SgAsmX86Instruction::p_kind};
11035 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11036 using bind = Desc<SgAsmX86Instruction, Rose::BinaryAnalysis::X86InstructionKind SgAsmX86Instruction::*, &SgAsmX86Instruction::p_kind>;
11037};
11038template <> struct describe_field_t<SgAsmX86Instruction,Rose::BinaryAnalysis::X86InstructionSize,&SgAsmX86Instruction::p_baseSize> {
11040 using field_type = Rose::BinaryAnalysis::X86InstructionSize;
11041 static constexpr size_t position{1};
11042 static constexpr char const * const name{"baseSize"};
11043 static constexpr char const * const typestr{"Rose::BinaryAnalysis::X86InstructionSize"};
11044 static constexpr bool traverse{false};
11045 static constexpr auto mbr_ptr{&SgAsmX86Instruction::p_baseSize};
11046 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11047 using bind = Desc<SgAsmX86Instruction, Rose::BinaryAnalysis::X86InstructionSize SgAsmX86Instruction::*, &SgAsmX86Instruction::p_baseSize>;
11048};
11049template <> struct describe_field_t<SgAsmX86Instruction,Rose::BinaryAnalysis::X86InstructionSize,&SgAsmX86Instruction::p_operandSize> {
11051 using field_type = Rose::BinaryAnalysis::X86InstructionSize;
11052 static constexpr size_t position{2};
11053 static constexpr char const * const name{"operandSize"};
11054 static constexpr char const * const typestr{"Rose::BinaryAnalysis::X86InstructionSize"};
11055 static constexpr bool traverse{false};
11056 static constexpr auto mbr_ptr{&SgAsmX86Instruction::p_operandSize};
11057 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11058 using bind = Desc<SgAsmX86Instruction, Rose::BinaryAnalysis::X86InstructionSize SgAsmX86Instruction::*, &SgAsmX86Instruction::p_operandSize>;
11059};
11060template <> struct describe_field_t<SgAsmX86Instruction,Rose::BinaryAnalysis::X86InstructionSize,&SgAsmX86Instruction::p_addressSize> {
11062 using field_type = Rose::BinaryAnalysis::X86InstructionSize;
11063 static constexpr size_t position{3};
11064 static constexpr char const * const name{"addressSize"};
11065 static constexpr char const * const typestr{"Rose::BinaryAnalysis::X86InstructionSize"};
11066 static constexpr bool traverse{false};
11067 static constexpr auto mbr_ptr{&SgAsmX86Instruction::p_addressSize};
11068 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11069 using bind = Desc<SgAsmX86Instruction, Rose::BinaryAnalysis::X86InstructionSize SgAsmX86Instruction::*, &SgAsmX86Instruction::p_addressSize>;
11070};
11071template <> struct describe_field_t<SgAsmX86Instruction,bool,&SgAsmX86Instruction::p_lockPrefix> {
11073 using field_type = bool;
11074 static constexpr size_t position{4};
11075 static constexpr char const * const name{"lockPrefix"};
11076 static constexpr char const * const typestr{"bool"};
11077 static constexpr bool traverse{false};
11078 static constexpr auto mbr_ptr{&SgAsmX86Instruction::p_lockPrefix};
11079 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11080 using bind = Desc<SgAsmX86Instruction, bool SgAsmX86Instruction::*, &SgAsmX86Instruction::p_lockPrefix>;
11081};
11082template <> struct describe_field_t<SgAsmX86Instruction,Rose::BinaryAnalysis::X86RepeatPrefix,&SgAsmX86Instruction::p_repeatPrefix> {
11084 using field_type = Rose::BinaryAnalysis::X86RepeatPrefix;
11085 static constexpr size_t position{5};
11086 static constexpr char const * const name{"repeatPrefix"};
11087 static constexpr char const * const typestr{"Rose::BinaryAnalysis::X86RepeatPrefix"};
11088 static constexpr bool traverse{false};
11089 static constexpr auto mbr_ptr{&SgAsmX86Instruction::p_repeatPrefix};
11090 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11091 using bind = Desc<SgAsmX86Instruction, Rose::BinaryAnalysis::X86RepeatPrefix SgAsmX86Instruction::*, &SgAsmX86Instruction::p_repeatPrefix>;
11092};
11093template <> struct describe_field_t<SgAsmX86Instruction,Rose::BinaryAnalysis::X86BranchPrediction,&SgAsmX86Instruction::p_branchPrediction> {
11095 using field_type = Rose::BinaryAnalysis::X86BranchPrediction;
11096 static constexpr size_t position{6};
11097 static constexpr char const * const name{"branchPrediction"};
11098 static constexpr char const * const typestr{"Rose::BinaryAnalysis::X86BranchPrediction"};
11099 static constexpr bool traverse{false};
11100 static constexpr auto mbr_ptr{&SgAsmX86Instruction::p_branchPrediction};
11101 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11102 using bind = Desc<SgAsmX86Instruction, Rose::BinaryAnalysis::X86BranchPrediction SgAsmX86Instruction::*, &SgAsmX86Instruction::p_branchPrediction>;
11103};
11104template <> struct describe_field_t<SgAsmX86Instruction,Rose::BinaryAnalysis::X86SegmentRegister,&SgAsmX86Instruction::p_segmentOverride> {
11106 using field_type = Rose::BinaryAnalysis::X86SegmentRegister;
11107 static constexpr size_t position{7};
11108 static constexpr char const * const name{"segmentOverride"};
11109 static constexpr char const * const typestr{"Rose::BinaryAnalysis::X86SegmentRegister"};
11110 static constexpr bool traverse{false};
11111 static constexpr auto mbr_ptr{&SgAsmX86Instruction::p_segmentOverride};
11112 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11113 using bind = Desc<SgAsmX86Instruction, Rose::BinaryAnalysis::X86SegmentRegister SgAsmX86Instruction::*, &SgAsmX86Instruction::p_segmentOverride>;
11114};
11124template <> struct node_from_variant_t<284> { using type = SgAsmX86Instruction; };
11125
11126// Class: AsmBinaryAddressSymbol
11127template <> struct describe_field_t<SgAsmBinaryAddressSymbol,SgName,&SgAsmBinaryAddressSymbol::p_address_name> {
11129 using field_type = SgName;
11130 static constexpr size_t position{0};
11131 static constexpr char const * const name{"address_name"};
11132 static constexpr char const * const typestr{"SgName"};
11133 static constexpr bool traverse{false};
11134 static constexpr auto mbr_ptr{&SgAsmBinaryAddressSymbol::p_address_name};
11135 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11136 using bind = Desc<SgAsmBinaryAddressSymbol, SgName SgAsmBinaryAddressSymbol::*, &SgAsmBinaryAddressSymbol::p_address_name>;
11137};
11138template <> struct describe_field_t<SgAsmBinaryAddressSymbol,SgAsmInstruction*,&SgAsmBinaryAddressSymbol::p_address> {
11141 static constexpr size_t position{1};
11142 static constexpr char const * const name{"address"};
11143 static constexpr char const * const typestr{"SgAsmInstruction*"};
11144 static constexpr bool traverse{false};
11145 static constexpr auto mbr_ptr{&SgAsmBinaryAddressSymbol::p_address};
11146 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11147 using bind = Desc<SgAsmBinaryAddressSymbol, SgAsmInstruction* SgAsmBinaryAddressSymbol::*, &SgAsmBinaryAddressSymbol::p_address>;
11148};
11151 using base = SgSymbol;
11152 static constexpr char const * const name{"AsmBinaryAddressSymbol"};
11153 static constexpr unsigned long variant{285};
11154 static constexpr bool concrete{true};
11155 using subclasses_t = mp::List<>;
11157};
11158template <> struct node_from_variant_t<285> { using type = SgAsmBinaryAddressSymbol; };
11159
11160// Class: AsmBinaryDataSymbol
11161template <> struct describe_field_t<SgAsmBinaryDataSymbol,SgName,&SgAsmBinaryDataSymbol::p_variable_name> {
11163 using field_type = SgName;
11164 static constexpr size_t position{0};
11165 static constexpr char const * const name{"variable_name"};
11166 static constexpr char const * const typestr{"SgName"};
11167 static constexpr bool traverse{false};
11168 static constexpr auto mbr_ptr{&SgAsmBinaryDataSymbol::p_variable_name};
11169 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11170 using bind = Desc<SgAsmBinaryDataSymbol, SgName SgAsmBinaryDataSymbol::*, &SgAsmBinaryDataSymbol::p_variable_name>;
11171};
11172template <> struct describe_field_t<SgAsmBinaryDataSymbol,SgAsmInstruction*,&SgAsmBinaryDataSymbol::p_address> {
11175 static constexpr size_t position{1};
11176 static constexpr char const * const name{"address"};
11177 static constexpr char const * const typestr{"SgAsmInstruction*"};
11178 static constexpr bool traverse{false};
11179 static constexpr auto mbr_ptr{&SgAsmBinaryDataSymbol::p_address};
11180 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11181 using bind = Desc<SgAsmBinaryDataSymbol, SgAsmInstruction* SgAsmBinaryDataSymbol::*, &SgAsmBinaryDataSymbol::p_address>;
11182};
11185 using base = SgSymbol;
11186 static constexpr char const * const name{"AsmBinaryDataSymbol"};
11187 static constexpr unsigned long variant{286};
11188 static constexpr bool concrete{true};
11189 using subclasses_t = mp::List<>;
11191};
11192template <> struct node_from_variant_t<286> { using type = SgAsmBinaryDataSymbol; };
11193
11194// Class: AssertStmt
11195template <> struct describe_field_t<SgAssertStmt,SgExpression*,&SgAssertStmt::p_test> {
11196 using parent = SgAssertStmt;
11197 using field_type = SgExpression*;
11198 static constexpr size_t position{0};
11199 static constexpr char const * const name{"test"};
11200 static constexpr char const * const typestr{"SgExpression*"};
11201 static constexpr bool traverse{true};
11202 static constexpr auto mbr_ptr{&SgAssertStmt::p_test};
11203 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11204 using bind = Desc<SgAssertStmt, SgExpression* SgAssertStmt::*, &SgAssertStmt::p_test>;
11205};
11206template <> struct describe_field_t<SgAssertStmt,SgExpression*,&SgAssertStmt::p_exception_argument> {
11207 using parent = SgAssertStmt;
11208 using field_type = SgExpression*;
11209 static constexpr size_t position{1};
11210 static constexpr char const * const name{"exception_argument"};
11211 static constexpr char const * const typestr{"SgExpression*"};
11212 static constexpr bool traverse{true};
11213 static constexpr auto mbr_ptr{&SgAssertStmt::p_exception_argument};
11214 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11215 using bind = Desc<SgAssertStmt, SgExpression* SgAssertStmt::*, &SgAssertStmt::p_exception_argument>;
11216};
11217template <> struct describe_node_t<SgAssertStmt> {
11218 using node = SgAssertStmt;
11219 using base = SgStatement;
11220 static constexpr char const * const name{"AssertStmt"};
11221 static constexpr unsigned long variant{287};
11222 static constexpr bool concrete{true};
11223 using subclasses_t = mp::List<>;
11225};
11226template <> struct node_from_variant_t<287> { using type = SgAssertStmt; };
11227
11228// Class: AssignInitializer
11231 using field_type = SgExpression*;
11232 static constexpr size_t position{0};
11233 static constexpr char const * const name{"operand_i"};
11234 static constexpr char const * const typestr{"SgExpression*"};
11235 static constexpr bool traverse{true};
11236 static constexpr auto mbr_ptr{&SgAssignInitializer::p_operand_i};
11237 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11238 using bind = Desc<SgAssignInitializer, SgExpression* SgAssignInitializer::*, &SgAssignInitializer::p_operand_i>;
11239};
11242 using field_type = SgType*;
11243 static constexpr size_t position{1};
11244 static constexpr char const * const name{"expression_type"};
11245 static constexpr char const * const typestr{"SgType*"};
11246 static constexpr bool traverse{false};
11247 static constexpr auto mbr_ptr{&SgAssignInitializer::p_expression_type};
11248 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11249 using bind = Desc<SgAssignInitializer, SgType* SgAssignInitializer::*, &SgAssignInitializer::p_expression_type>;
11250};
11252 using node = SgAssignInitializer;
11253 using base = SgInitializer;
11254 static constexpr char const * const name{"AssignInitializer"};
11255 static constexpr unsigned long variant{288};
11256 static constexpr bool concrete{true};
11257 using subclasses_t = mp::List<>;
11259};
11260template <> struct node_from_variant_t<288> { using type = SgAssignInitializer; };
11261
11262// Class: AssignOp
11263template <> struct describe_node_t<SgAssignOp> {
11264 using node = SgAssignOp;
11265 using base = SgBinaryOp;
11266 static constexpr char const * const name{"AssignOp"};
11267 static constexpr unsigned long variant{289};
11268 static constexpr bool concrete{true};
11269 using subclasses_t = mp::List<>;
11270 using fields_t = mp::List<>;
11271};
11272template <> struct node_from_variant_t<289> { using type = SgAssignOp; };
11273
11274// Class: AssignStatement
11275template <> struct describe_field_t<SgAssignStatement,SgLabelRefExp*,&SgAssignStatement::p_label> {
11276 using parent = SgAssignStatement;
11277 using field_type = SgLabelRefExp*;
11278 static constexpr size_t position{0};
11279 static constexpr char const * const name{"label"};
11280 static constexpr char const * const typestr{"SgLabelRefExp*"};
11281 static constexpr bool traverse{false};
11282 static constexpr auto mbr_ptr{&SgAssignStatement::p_label};
11283 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11284 using bind = Desc<SgAssignStatement, SgLabelRefExp* SgAssignStatement::*, &SgAssignStatement::p_label>;
11285};
11286template <> struct describe_field_t<SgAssignStatement,SgExpression*,&SgAssignStatement::p_value> {
11287 using parent = SgAssignStatement;
11288 using field_type = SgExpression*;
11289 static constexpr size_t position{1};
11290 static constexpr char const * const name{"value"};
11291 static constexpr char const * const typestr{"SgExpression*"};
11292 static constexpr bool traverse{true};
11293 static constexpr auto mbr_ptr{&SgAssignStatement::p_value};
11294 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11295 using bind = Desc<SgAssignStatement, SgExpression* SgAssignStatement::*, &SgAssignStatement::p_value>;
11296};
11298 using node = SgAssignStatement;
11299 using base = SgStatement;
11300 static constexpr char const * const name{"AssignStatement"};
11301 static constexpr unsigned long variant{290};
11302 static constexpr bool concrete{true};
11303 using subclasses_t = mp::List<>;
11305};
11306template <> struct node_from_variant_t<290> { using type = SgAssignStatement; };
11307
11308// Class: AssignedGotoStatement
11309template <> struct describe_field_t<SgAssignedGotoStatement,SgExprListExp*,&SgAssignedGotoStatement::p_targets> {
11311 using field_type = SgExprListExp*;
11312 static constexpr size_t position{0};
11313 static constexpr char const * const name{"targets"};
11314 static constexpr char const * const typestr{"SgExprListExp*"};
11315 static constexpr bool traverse{true};
11316 static constexpr auto mbr_ptr{&SgAssignedGotoStatement::p_targets};
11317 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11318 using bind = Desc<SgAssignedGotoStatement, SgExprListExp* SgAssignedGotoStatement::*, &SgAssignedGotoStatement::p_targets>;
11319};
11322 using base = SgStatement;
11323 static constexpr char const * const name{"AssignedGotoStatement"};
11324 static constexpr unsigned long variant{291};
11325 static constexpr bool concrete{true};
11326 using subclasses_t = mp::List<>;
11328};
11329template <> struct node_from_variant_t<291> { using type = SgAssignedGotoStatement; };
11330
11331// Class: AssociateStatement
11332template <> struct describe_field_t<SgAssociateStatement,SgDeclarationStatementPtrList,&SgAssociateStatement::p_associates> {
11334 using field_type = SgDeclarationStatementPtrList;
11335 static constexpr size_t position{0};
11336 static constexpr char const * const name{"associates"};
11337 static constexpr char const * const typestr{"SgDeclarationStatementPtrList"};
11338 static constexpr bool traverse{false};
11339 static constexpr auto mbr_ptr{&SgAssociateStatement::p_associates};
11340 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11341 using bind = Desc<SgAssociateStatement, SgDeclarationStatementPtrList SgAssociateStatement::*, &SgAssociateStatement::p_associates>;
11342};
11343template <> struct describe_field_t<SgAssociateStatement,SgBasicBlock*,&SgAssociateStatement::p_body> {
11345 using field_type = SgBasicBlock*;
11346 static constexpr size_t position{1};
11347 static constexpr char const * const name{"body"};
11348 static constexpr char const * const typestr{"SgBasicBlock*"};
11349 static constexpr bool traverse{true};
11350 static constexpr auto mbr_ptr{&SgAssociateStatement::p_body};
11351 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11352 using bind = Desc<SgAssociateStatement, SgBasicBlock* SgAssociateStatement::*, &SgAssociateStatement::p_body>;
11353};
11355 using node = SgAssociateStatement;
11356 using base = SgScopeStatement;
11357 static constexpr char const * const name{"AssociateStatement"};
11358 static constexpr unsigned long variant{292};
11359 static constexpr bool concrete{true};
11360 using subclasses_t = mp::List<>;
11362};
11363template <> struct node_from_variant_t<292> { using type = SgAssociateStatement; };
11364
11365// Class: AsteriskShapeExp
11367 using node = SgAsteriskShapeExp;
11368 using base = SgExpression;
11369 static constexpr char const * const name{"AsteriskShapeExp"};
11370 static constexpr unsigned long variant{293};
11371 static constexpr bool concrete{true};
11372 using subclasses_t = mp::List<>;
11373 using fields_t = mp::List<>;
11374};
11375template <> struct node_from_variant_t<293> { using type = SgAsteriskShapeExp; };
11376
11377// Class: AtOp
11378template <> struct describe_node_t<SgAtOp> {
11379 using node = SgAtOp;
11380 using base = SgBinaryOp;
11381 static constexpr char const * const name{"AtOp"};
11382 static constexpr unsigned long variant{294};
11383 static constexpr bool concrete{true};
11384 using subclasses_t = mp::List<>;
11385 using fields_t = mp::List<>;
11386};
11387template <> struct node_from_variant_t<294> { using type = SgAtOp; };
11388
11389// Class: Attribute
11390template <> struct describe_field_t<SgAttribute,std::string,&SgAttribute::p_name> {
11391 using parent = SgAttribute;
11392 using field_type = std::string;
11393 static constexpr size_t position{0};
11394 static constexpr char const * const name{"name"};
11395 static constexpr char const * const typestr{"std::string"};
11396 static constexpr bool traverse{false};
11397 static constexpr auto mbr_ptr{&SgAttribute::p_name};
11398 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11399 using bind = Desc<SgAttribute, std::string SgAttribute::*, &SgAttribute::p_name>;
11400};
11401template <> struct describe_node_t<SgAttribute> {
11402 using node = SgAttribute;
11403 using base = SgSupport;
11404 static constexpr char const * const name{"Attribute"};
11405 static constexpr unsigned long variant{295};
11406 static constexpr bool concrete{false};
11409};
11410template <> struct node_from_variant_t<295> { using type = SgAttribute; };
11411
11412// Class: AttributeSpecificationStatement
11413template <> struct describe_field_t<SgAttributeSpecificationStatement,SgStringList,&SgAttributeSpecificationStatement::p_name_list> {
11415 using field_type = SgStringList;
11416 static constexpr size_t position{0};
11417 static constexpr char const * const name{"name_list"};
11418 static constexpr char const * const typestr{"SgStringList"};
11419 static constexpr bool traverse{false};
11420 static constexpr auto mbr_ptr{&SgAttributeSpecificationStatement::p_name_list};
11421 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11422 using bind = Desc<SgAttributeSpecificationStatement, SgStringList SgAttributeSpecificationStatement::*, &SgAttributeSpecificationStatement::p_name_list>;
11423};
11424template <> struct describe_field_t<SgAttributeSpecificationStatement,SgAttributeSpecificationStatement::attribute_spec_enum,&SgAttributeSpecificationStatement::p_attribute_kind> {
11427 static constexpr size_t position{1};
11428 static constexpr char const * const name{"attribute_kind"};
11429 static constexpr char const * const typestr{"SgAttributeSpecificationStatement::attribute_spec_enum"};
11430 static constexpr bool traverse{false};
11431 static constexpr auto mbr_ptr{&SgAttributeSpecificationStatement::p_attribute_kind};
11432 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11433 using bind = Desc<SgAttributeSpecificationStatement, SgAttributeSpecificationStatement::attribute_spec_enum SgAttributeSpecificationStatement::*, &SgAttributeSpecificationStatement::p_attribute_kind>;
11434};
11435template <> struct describe_field_t<SgAttributeSpecificationStatement,int,&SgAttributeSpecificationStatement::p_intent> {
11437 using field_type = int;
11438 static constexpr size_t position{2};
11439 static constexpr char const * const name{"intent"};
11440 static constexpr char const * const typestr{"int"};
11441 static constexpr bool traverse{false};
11442 static constexpr auto mbr_ptr{&SgAttributeSpecificationStatement::p_intent};
11443 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11444 using bind = Desc<SgAttributeSpecificationStatement, int SgAttributeSpecificationStatement::*, &SgAttributeSpecificationStatement::p_intent>;
11445};
11446template <> struct describe_field_t<SgAttributeSpecificationStatement,SgExprListExp*,&SgAttributeSpecificationStatement::p_parameter_list> {
11448 using field_type = SgExprListExp*;
11449 static constexpr size_t position{3};
11450 static constexpr char const * const name{"parameter_list"};
11451 static constexpr char const * const typestr{"SgExprListExp*"};
11452 static constexpr bool traverse{false};
11453 static constexpr auto mbr_ptr{&SgAttributeSpecificationStatement::p_parameter_list};
11454 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11455 using bind = Desc<SgAttributeSpecificationStatement, SgExprListExp* SgAttributeSpecificationStatement::*, &SgAttributeSpecificationStatement::p_parameter_list>;
11456};
11457template <> struct describe_field_t<SgAttributeSpecificationStatement,SgDataStatementGroupPtrList,&SgAttributeSpecificationStatement::p_data_statement_group_list> {
11459 using field_type = SgDataStatementGroupPtrList;
11460 static constexpr size_t position{4};
11461 static constexpr char const * const name{"data_statement_group_list"};
11462 static constexpr char const * const typestr{"SgDataStatementGroupPtrList"};
11463 static constexpr bool traverse{false};
11464 static constexpr auto mbr_ptr{&SgAttributeSpecificationStatement::p_data_statement_group_list};
11465 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11466 using bind = Desc<SgAttributeSpecificationStatement, SgDataStatementGroupPtrList SgAttributeSpecificationStatement::*, &SgAttributeSpecificationStatement::p_data_statement_group_list>;
11467};
11468template <> struct describe_field_t<SgAttributeSpecificationStatement,SgExprListExp*,&SgAttributeSpecificationStatement::p_bind_list> {
11470 using field_type = SgExprListExp*;
11471 static constexpr size_t position{5};
11472 static constexpr char const * const name{"bind_list"};
11473 static constexpr char const * const typestr{"SgExprListExp*"};
11474 static constexpr bool traverse{false};
11475 static constexpr auto mbr_ptr{&SgAttributeSpecificationStatement::p_bind_list};
11476 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11477 using bind = Desc<SgAttributeSpecificationStatement, SgExprListExp* SgAttributeSpecificationStatement::*, &SgAttributeSpecificationStatement::p_bind_list>;
11478};
11479template <> struct describe_field_t<SgAttributeSpecificationStatement,SgDimensionObjectPtrList,&SgAttributeSpecificationStatement::p_dimension_object_list> {
11481 using field_type = SgDimensionObjectPtrList;
11482 static constexpr size_t position{6};
11483 static constexpr char const * const name{"dimension_object_list"};
11484 static constexpr char const * const typestr{"SgDimensionObjectPtrList"};
11485 static constexpr bool traverse{false};
11486 static constexpr auto mbr_ptr{&SgAttributeSpecificationStatement::p_dimension_object_list};
11487 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11488 using bind = Desc<SgAttributeSpecificationStatement, SgDimensionObjectPtrList SgAttributeSpecificationStatement::*, &SgAttributeSpecificationStatement::p_dimension_object_list>;
11489};
11499template <> struct node_from_variant_t<296> { using type = SgAttributeSpecificationStatement; };
11500
11501// Class: AutoType
11502template <> struct describe_node_t<SgAutoType> {
11503 using node = SgAutoType;
11504 using base = SgType;
11505 static constexpr char const * const name{"AutoType"};
11506 static constexpr unsigned long variant{297};
11507 static constexpr bool concrete{true};
11508 using subclasses_t = mp::List<>;
11509 using fields_t = mp::List<>;
11510};
11511template <> struct node_from_variant_t<297> { using type = SgAutoType; };
11512
11513// Class: AwaitExpression
11514template <> struct describe_field_t<SgAwaitExpression,SgExpression*,&SgAwaitExpression::p_value> {
11515 using parent = SgAwaitExpression;
11516 using field_type = SgExpression*;
11517 static constexpr size_t position{0};
11518 static constexpr char const * const name{"value"};
11519 static constexpr char const * const typestr{"SgExpression*"};
11520 static constexpr bool traverse{true};
11521 static constexpr auto mbr_ptr{&SgAwaitExpression::p_value};
11522 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11523 using bind = Desc<SgAwaitExpression, SgExpression* SgAwaitExpression::*, &SgAwaitExpression::p_value>;
11524};
11526 using node = SgAwaitExpression;
11527 using base = SgExpression;
11528 static constexpr char const * const name{"AwaitExpression"};
11529 static constexpr unsigned long variant{298};
11530 static constexpr bool concrete{true};
11531 using subclasses_t = mp::List<>;
11533};
11534template <> struct node_from_variant_t<298> { using type = SgAwaitExpression; };
11535
11536// Class: BackspaceStatement
11538 using node = SgBackspaceStatement;
11539 using base = SgIOStatement;
11540 static constexpr char const * const name{"BackspaceStatement"};
11541 static constexpr unsigned long variant{299};
11542 static constexpr bool concrete{true};
11543 using subclasses_t = mp::List<>;
11544 using fields_t = mp::List<>;
11545};
11546template <> struct node_from_variant_t<299> { using type = SgBackspaceStatement; };
11547
11548// Class: BaseClass
11549template <> struct describe_field_t<SgBaseClass,SgClassDeclaration*,&SgBaseClass::p_base_class> {
11550 using parent = SgBaseClass;
11552 static constexpr size_t position{0};
11553 static constexpr char const * const name{"base_class"};
11554 static constexpr char const * const typestr{"SgClassDeclaration*"};
11555 static constexpr bool traverse{true};
11556 static constexpr auto mbr_ptr{&SgBaseClass::p_base_class};
11557 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11558 using bind = Desc<SgBaseClass, SgClassDeclaration* SgBaseClass::*, &SgBaseClass::p_base_class>;
11559};
11560template <> struct describe_field_t<SgBaseClass,bool,&SgBaseClass::p_isDirectBaseClass> {
11561 using parent = SgBaseClass;
11562 using field_type = bool;
11563 static constexpr size_t position{1};
11564 static constexpr char const * const name{"isDirectBaseClass"};
11565 static constexpr char const * const typestr{"bool"};
11566 static constexpr bool traverse{false};
11567 static constexpr auto mbr_ptr{&SgBaseClass::p_isDirectBaseClass};
11568 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11569 using bind = Desc<SgBaseClass, bool SgBaseClass::*, &SgBaseClass::p_isDirectBaseClass>;
11570};
11571template <> struct describe_field_t<SgBaseClass,SgBaseClassModifier*,&SgBaseClass::p_baseClassModifier> {
11572 using parent = SgBaseClass;
11574 static constexpr size_t position{2};
11575 static constexpr char const * const name{"baseClassModifier"};
11576 static constexpr char const * const typestr{"SgBaseClassModifier*"};
11577 static constexpr bool traverse{false};
11578 static constexpr auto mbr_ptr{&SgBaseClass::p_baseClassModifier};
11579 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11580 using bind = Desc<SgBaseClass, SgBaseClassModifier* SgBaseClass::*, &SgBaseClass::p_baseClassModifier>;
11581};
11582template <> struct describe_field_t<SgBaseClass,int,&SgBaseClass::p_name_qualification_length> {
11583 using parent = SgBaseClass;
11584 using field_type = int;
11585 static constexpr size_t position{3};
11586 static constexpr char const * const name{"name_qualification_length"};
11587 static constexpr char const * const typestr{"int"};
11588 static constexpr bool traverse{false};
11589 static constexpr auto mbr_ptr{&SgBaseClass::p_name_qualification_length};
11590 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11591 using bind = Desc<SgBaseClass, int SgBaseClass::*, &SgBaseClass::p_name_qualification_length>;
11592};
11593template <> struct describe_field_t<SgBaseClass,bool,&SgBaseClass::p_type_elaboration_required> {
11594 using parent = SgBaseClass;
11595 using field_type = bool;
11596 static constexpr size_t position{4};
11597 static constexpr char const * const name{"type_elaboration_required"};
11598 static constexpr char const * const typestr{"bool"};
11599 static constexpr bool traverse{false};
11600 static constexpr auto mbr_ptr{&SgBaseClass::p_type_elaboration_required};
11601 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11602 using bind = Desc<SgBaseClass, bool SgBaseClass::*, &SgBaseClass::p_type_elaboration_required>;
11603};
11604template <> struct describe_field_t<SgBaseClass,bool,&SgBaseClass::p_global_qualification_required> {
11605 using parent = SgBaseClass;
11606 using field_type = bool;
11607 static constexpr size_t position{5};
11608 static constexpr char const * const name{"global_qualification_required"};
11609 static constexpr char const * const typestr{"bool"};
11610 static constexpr bool traverse{false};
11611 static constexpr auto mbr_ptr{&SgBaseClass::p_global_qualification_required};
11612 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11613 using bind = Desc<SgBaseClass, bool SgBaseClass::*, &SgBaseClass::p_global_qualification_required>;
11614};
11624template <> struct node_from_variant_t<300> { using type = SgBaseClass; };
11625
11626// Class: ExpBaseClass
11627template <> struct describe_field_t<SgExpBaseClass,SgExpression*,&SgExpBaseClass::p_base_class_exp> {
11628 using parent = SgExpBaseClass;
11629 using field_type = SgExpression*;
11630 static constexpr size_t position{0};
11631 static constexpr char const * const name{"base_class_exp"};
11632 static constexpr char const * const typestr{"SgExpression*"};
11633 static constexpr bool traverse{true};
11634 static constexpr auto mbr_ptr{&SgExpBaseClass::p_base_class_exp};
11635 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11636 using bind = Desc<SgExpBaseClass, SgExpression* SgExpBaseClass::*, &SgExpBaseClass::p_base_class_exp>;
11637};
11638template <> struct describe_node_t<SgExpBaseClass> {
11639 using node = SgExpBaseClass;
11640 using base = SgBaseClass;
11641 static constexpr char const * const name{"ExpBaseClass"};
11642 static constexpr unsigned long variant{301};
11643 static constexpr bool concrete{true};
11644 using subclasses_t = mp::List<>;
11646};
11647template <> struct node_from_variant_t<301> { using type = SgExpBaseClass; };
11648
11649// Class: BaseClassModifier
11650template <> struct describe_field_t<SgBaseClassModifier,SgBaseClassModifier::baseclass_modifier_enum,&SgBaseClassModifier::p_modifier> {
11653 static constexpr size_t position{0};
11654 static constexpr char const * const name{"modifier"};
11655 static constexpr char const * const typestr{"SgBaseClassModifier::baseclass_modifier_enum"};
11656 static constexpr bool traverse{false};
11657 static constexpr auto mbr_ptr{&SgBaseClassModifier::p_modifier};
11658 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11659 using bind = Desc<SgBaseClassModifier, SgBaseClassModifier::baseclass_modifier_enum SgBaseClassModifier::*, &SgBaseClassModifier::p_modifier>;
11660};
11661template <> struct describe_field_t<SgBaseClassModifier,SgAccessModifier,&SgBaseClassModifier::p_accessModifier> {
11664 static constexpr size_t position{1};
11665 static constexpr char const * const name{"accessModifier"};
11666 static constexpr char const * const typestr{"SgAccessModifier"};
11667 static constexpr bool traverse{false};
11668 static constexpr auto mbr_ptr{&SgBaseClassModifier::p_accessModifier};
11669 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11670 using bind = Desc<SgBaseClassModifier, SgAccessModifier SgBaseClassModifier::*, &SgBaseClassModifier::p_accessModifier>;
11671};
11673 using node = SgBaseClassModifier;
11674 using base = SgModifier;
11675 static constexpr char const * const name{"BaseClassModifier"};
11676 static constexpr unsigned long variant{302};
11677 static constexpr bool concrete{true};
11678 using subclasses_t = mp::List<>;
11680};
11681template <> struct node_from_variant_t<302> { using type = SgBaseClassModifier; };
11682
11683// Class: BasicBlock
11684template <> struct describe_field_t<SgBasicBlock,SgStatementPtrList,&SgBasicBlock::p_statements> {
11685 using parent = SgBasicBlock;
11686 using field_type = SgStatementPtrList;
11687 static constexpr size_t position{0};
11688 static constexpr char const * const name{"statements"};
11689 static constexpr char const * const typestr{"SgStatementPtrList"};
11690 static constexpr bool traverse{true};
11691 static constexpr auto mbr_ptr{&SgBasicBlock::p_statements};
11692 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11693 using bind = Desc<SgBasicBlock, SgStatementPtrList SgBasicBlock::*, &SgBasicBlock::p_statements>;
11694};
11695template <> struct describe_field_t<SgBasicBlock,std::string,&SgBasicBlock::p_asm_function_body> {
11696 using parent = SgBasicBlock;
11697 using field_type = std::string;
11698 static constexpr size_t position{1};
11699 static constexpr char const * const name{"asm_function_body"};
11700 static constexpr char const * const typestr{"std::string"};
11701 static constexpr bool traverse{false};
11702 static constexpr auto mbr_ptr{&SgBasicBlock::p_asm_function_body};
11703 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11704 using bind = Desc<SgBasicBlock, std::string SgBasicBlock::*, &SgBasicBlock::p_asm_function_body>;
11705};
11706template <> struct describe_field_t<SgBasicBlock,std::string,&SgBasicBlock::p_string_label> {
11707 using parent = SgBasicBlock;
11708 using field_type = std::string;
11709 static constexpr size_t position{2};
11710 static constexpr char const * const name{"string_label"};
11711 static constexpr char const * const typestr{"std::string"};
11712 static constexpr bool traverse{false};
11713 static constexpr auto mbr_ptr{&SgBasicBlock::p_string_label};
11714 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11715 using bind = Desc<SgBasicBlock, std::string SgBasicBlock::*, &SgBasicBlock::p_string_label>;
11716};
11717template <> struct describe_node_t<SgBasicBlock> {
11718 using node = SgBasicBlock;
11719 using base = SgScopeStatement;
11720 static constexpr char const * const name{"BasicBlock"};
11721 static constexpr unsigned long variant{303};
11722 static constexpr bool concrete{true};
11723 using subclasses_t = mp::List<>;
11725};
11726template <> struct node_from_variant_t<303> { using type = SgBasicBlock; };
11727
11728// Class: BidirectionalGraph
11730 using node = SgBidirectionalGraph;
11732 static constexpr char const * const name{"BidirectionalGraph"};
11733 static constexpr unsigned long variant{304};
11734 static constexpr bool concrete{false};
11736 using fields_t = mp::List<>;
11737};
11738template <> struct node_from_variant_t<304> { using type = SgBidirectionalGraph; };
11739
11740// Class: BinaryComposite
11741template <> struct describe_field_t<SgBinaryComposite,SgAsmGenericFileList*,&SgBinaryComposite::p_genericFileList> {
11742 using parent = SgBinaryComposite;
11744 static constexpr size_t position{0};
11745 static constexpr char const * const name{"genericFileList"};
11746 static constexpr char const * const typestr{"SgAsmGenericFileList*"};
11747 static constexpr bool traverse{true};
11748 static constexpr auto mbr_ptr{&SgBinaryComposite::p_genericFileList};
11749 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11750 using bind = Desc<SgBinaryComposite, SgAsmGenericFileList* SgBinaryComposite::*, &SgBinaryComposite::p_genericFileList>;
11751};
11752template <> struct describe_field_t<SgBinaryComposite,SgAsmInterpretationList*,&SgBinaryComposite::p_interpretations> {
11753 using parent = SgBinaryComposite;
11755 static constexpr size_t position{1};
11756 static constexpr char const * const name{"interpretations"};
11757 static constexpr char const * const typestr{"SgAsmInterpretationList*"};
11758 static constexpr bool traverse{true};
11759 static constexpr auto mbr_ptr{&SgBinaryComposite::p_interpretations};
11760 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11761 using bind = Desc<SgBinaryComposite, SgAsmInterpretationList* SgBinaryComposite::*, &SgBinaryComposite::p_interpretations>;
11762};
11764 using node = SgBinaryComposite;
11765 using base = SgFile;
11766 static constexpr char const * const name{"BinaryComposite"};
11767 static constexpr unsigned long variant{305};
11768 static constexpr bool concrete{true};
11771};
11772template <> struct node_from_variant_t<305> { using type = SgBinaryComposite; };
11773
11774// Class: BinaryOp
11776 using parent = SgBinaryOp;
11777 using field_type = SgExpression*;
11778 static constexpr size_t position{0};
11779 static constexpr char const * const name{"lhs_operand_i"};
11780 static constexpr char const * const typestr{"SgExpression*"};
11781 static constexpr bool traverse{true};
11782 static constexpr auto mbr_ptr{&SgBinaryOp::p_lhs_operand_i};
11783 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11784 using bind = Desc<SgBinaryOp, SgExpression* SgBinaryOp::*, &SgBinaryOp::p_lhs_operand_i>;
11785};
11787 using parent = SgBinaryOp;
11788 using field_type = SgExpression*;
11789 static constexpr size_t position{1};
11790 static constexpr char const * const name{"rhs_operand_i"};
11791 static constexpr char const * const typestr{"SgExpression*"};
11792 static constexpr bool traverse{true};
11793 static constexpr auto mbr_ptr{&SgBinaryOp::p_rhs_operand_i};
11794 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11795 using bind = Desc<SgBinaryOp, SgExpression* SgBinaryOp::*, &SgBinaryOp::p_rhs_operand_i>;
11796};
11798 using parent = SgBinaryOp;
11799 using field_type = SgType*;
11800 static constexpr size_t position{2};
11801 static constexpr char const * const name{"expression_type"};
11802 static constexpr char const * const typestr{"SgType*"};
11803 static constexpr bool traverse{false};
11804 static constexpr auto mbr_ptr{&SgBinaryOp::p_expression_type};
11805 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11806 using bind = Desc<SgBinaryOp, SgType* SgBinaryOp::*, &SgBinaryOp::p_expression_type>;
11807};
11808template <> struct describe_field_t<SgBinaryOp,SgExpression*,&SgBinaryOp::p_originalExpressionTree> {
11809 using parent = SgBinaryOp;
11810 using field_type = SgExpression*;
11811 static constexpr size_t position{3};
11812 static constexpr char const * const name{"originalExpressionTree"};
11813 static constexpr char const * const typestr{"SgExpression*"};
11814 static constexpr bool traverse{false};
11815 static constexpr auto mbr_ptr{&SgBinaryOp::p_originalExpressionTree};
11816 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11817 using bind = Desc<SgBinaryOp, SgExpression* SgBinaryOp::*, &SgBinaryOp::p_originalExpressionTree>;
11818};
11828template <> struct node_from_variant_t<306> { using type = SgBinaryOp; };
11829
11830// Class: BitAndOp
11831template <> struct describe_node_t<SgBitAndOp> {
11832 using node = SgBitAndOp;
11833 using base = SgBinaryOp;
11834 static constexpr char const * const name{"BitAndOp"};
11835 static constexpr unsigned long variant{307};
11836 static constexpr bool concrete{true};
11837 using subclasses_t = mp::List<>;
11838 using fields_t = mp::List<>;
11839};
11840template <> struct node_from_variant_t<307> { using type = SgBitAndOp; };
11841
11842// Class: BitAttribute
11843template <> struct describe_field_t<SgBitAttribute,unsigned long int,&SgBitAttribute::p_bitflag> {
11844 using parent = SgBitAttribute;
11845 using field_type = unsigned long int;
11846 static constexpr size_t position{0};
11847 static constexpr char const * const name{"bitflag"};
11848 static constexpr char const * const typestr{"unsigned long int"};
11849 static constexpr bool traverse{false};
11850 static constexpr auto mbr_ptr{&SgBitAttribute::p_bitflag};
11851 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11852 using bind = Desc<SgBitAttribute, unsigned long int SgBitAttribute::*, &SgBitAttribute::p_bitflag>;
11853};
11854template <> struct describe_node_t<SgBitAttribute> {
11855 using node = SgBitAttribute;
11856 using base = SgAttribute;
11857 static constexpr char const * const name{"BitAttribute"};
11858 static constexpr unsigned long variant{308};
11859 static constexpr bool concrete{false};
11862};
11863template <> struct node_from_variant_t<308> { using type = SgBitAttribute; };
11864
11865// Class: BitComplementOp
11867 using node = SgBitComplementOp;
11868 using base = SgUnaryOp;
11869 static constexpr char const * const name{"BitComplementOp"};
11870 static constexpr unsigned long variant{309};
11871 static constexpr bool concrete{true};
11872 using subclasses_t = mp::List<>;
11873 using fields_t = mp::List<>;
11874};
11875template <> struct node_from_variant_t<309> { using type = SgBitComplementOp; };
11876
11877// Class: BitEqvOp
11878template <> struct describe_node_t<SgBitEqvOp> {
11879 using node = SgBitEqvOp;
11880 using base = SgBinaryOp;
11881 static constexpr char const * const name{"BitEqvOp"};
11882 static constexpr unsigned long variant{310};
11883 static constexpr bool concrete{true};
11884 using subclasses_t = mp::List<>;
11885 using fields_t = mp::List<>;
11886};
11887template <> struct node_from_variant_t<310> { using type = SgBitEqvOp; };
11888
11889// Class: BitOrOp
11890template <> struct describe_node_t<SgBitOrOp> {
11891 using node = SgBitOrOp;
11892 using base = SgBinaryOp;
11893 static constexpr char const * const name{"BitOrOp"};
11894 static constexpr unsigned long variant{311};
11895 static constexpr bool concrete{true};
11896 using subclasses_t = mp::List<>;
11897 using fields_t = mp::List<>;
11898};
11899template <> struct node_from_variant_t<311> { using type = SgBitOrOp; };
11900
11901// Class: BitXorOp
11902template <> struct describe_node_t<SgBitXorOp> {
11903 using node = SgBitXorOp;
11904 using base = SgBinaryOp;
11905 static constexpr char const * const name{"BitXorOp"};
11906 static constexpr unsigned long variant{312};
11907 static constexpr bool concrete{true};
11908 using subclasses_t = mp::List<>;
11909 using fields_t = mp::List<>;
11910};
11911template <> struct node_from_variant_t<312> { using type = SgBitXorOp; };
11912
11913// Class: BlockDataStatement
11914template <> struct describe_field_t<SgBlockDataStatement,SgBasicBlock*,&SgBlockDataStatement::p_body> {
11916 using field_type = SgBasicBlock*;
11917 static constexpr size_t position{0};
11918 static constexpr char const * const name{"body"};
11919 static constexpr char const * const typestr{"SgBasicBlock*"};
11920 static constexpr bool traverse{false};
11921 static constexpr auto mbr_ptr{&SgBlockDataStatement::p_body};
11922 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11923 using bind = Desc<SgBlockDataStatement, SgBasicBlock* SgBlockDataStatement::*, &SgBlockDataStatement::p_body>;
11924};
11926 using node = SgBlockDataStatement;
11927 using base = SgScopeStatement;
11928 static constexpr char const * const name{"BlockDataStatement"};
11929 static constexpr unsigned long variant{313};
11930 static constexpr bool concrete{true};
11931 using subclasses_t = mp::List<>;
11933};
11934template <> struct node_from_variant_t<313> { using type = SgBlockDataStatement; };
11935
11936// Class: BoolValExp
11938 using parent = SgBoolValExp;
11939 using field_type = int;
11940 static constexpr size_t position{0};
11941 static constexpr char const * const name{"value"};
11942 static constexpr char const * const typestr{"int"};
11943 static constexpr bool traverse{false};
11944 static constexpr auto mbr_ptr{&SgBoolValExp::p_value};
11945 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11946 using bind = Desc<SgBoolValExp, int SgBoolValExp::*, &SgBoolValExp::p_value>;
11947};
11948template <> struct describe_node_t<SgBoolValExp> {
11949 using node = SgBoolValExp;
11950 using base = SgValueExp;
11951 static constexpr char const * const name{"BoolValExp"};
11952 static constexpr unsigned long variant{314};
11953 static constexpr bool concrete{true};
11954 using subclasses_t = mp::List<>;
11956};
11957template <> struct node_from_variant_t<314> { using type = SgBoolValExp; };
11958
11959// Class: BreakStmt
11960template <> struct describe_field_t<SgBreakStmt,std::string,&SgBreakStmt::p_do_string_label> {
11961 using parent = SgBreakStmt;
11962 using field_type = std::string;
11963 static constexpr size_t position{0};
11964 static constexpr char const * const name{"do_string_label"};
11965 static constexpr char const * const typestr{"std::string"};
11966 static constexpr bool traverse{false};
11967 static constexpr auto mbr_ptr{&SgBreakStmt::p_do_string_label};
11968 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11969 using bind = Desc<SgBreakStmt, std::string SgBreakStmt::*, &SgBreakStmt::p_do_string_label>;
11970};
11971template <> struct describe_node_t<SgBreakStmt> {
11972 using node = SgBreakStmt;
11973 using base = SgStatement;
11974 static constexpr char const * const name{"BreakStmt"};
11975 static constexpr unsigned long variant{315};
11976 static constexpr bool concrete{true};
11977 using subclasses_t = mp::List<>;
11979};
11980template <> struct node_from_variant_t<315> { using type = SgBreakStmt; };
11981
11982// Class: BracedInitializer
11983template <> struct describe_field_t<SgBracedInitializer,SgExprListExp*,&SgBracedInitializer::p_initializers> {
11985 using field_type = SgExprListExp*;
11986 static constexpr size_t position{0};
11987 static constexpr char const * const name{"initializers"};
11988 static constexpr char const * const typestr{"SgExprListExp*"};
11989 static constexpr bool traverse{true};
11990 static constexpr auto mbr_ptr{&SgBracedInitializer::p_initializers};
11991 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
11992 using bind = Desc<SgBracedInitializer, SgExprListExp* SgBracedInitializer::*, &SgBracedInitializer::p_initializers>;
11993};
11994template <> struct describe_field_t<SgBracedInitializer,SgType*,&SgBracedInitializer::p_expression_type> {
11996 using field_type = SgType*;
11997 static constexpr size_t position{1};
11998 static constexpr char const * const name{"expression_type"};
11999 static constexpr char const * const typestr{"SgType*"};
12000 static constexpr bool traverse{false};
12001 static constexpr auto mbr_ptr{&SgBracedInitializer::p_expression_type};
12002 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12003 using bind = Desc<SgBracedInitializer, SgType* SgBracedInitializer::*, &SgBracedInitializer::p_expression_type>;
12004};
12006 using node = SgBracedInitializer;
12007 using base = SgInitializer;
12008 static constexpr char const * const name{"BracedInitializer"};
12009 static constexpr unsigned long variant{316};
12010 static constexpr bool concrete{true};
12011 using subclasses_t = mp::List<>;
12013};
12014template <> struct node_from_variant_t<316> { using type = SgBracedInitializer; };
12015
12016// Class: C_PreprocessorDirectiveStatement
12017template <> struct describe_field_t<SgC_PreprocessorDirectiveStatement,std::string,&SgC_PreprocessorDirectiveStatement::p_directiveString> {
12019 using field_type = std::string;
12020 static constexpr size_t position{0};
12021 static constexpr char const * const name{"directiveString"};
12022 static constexpr char const * const typestr{"std::string"};
12023 static constexpr bool traverse{false};
12024 static constexpr auto mbr_ptr{&SgC_PreprocessorDirectiveStatement::p_directiveString};
12025 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12026 using bind = Desc<SgC_PreprocessorDirectiveStatement, std::string SgC_PreprocessorDirectiveStatement::*, &SgC_PreprocessorDirectiveStatement::p_directiveString>;
12027};
12037template <> struct node_from_variant_t<317> { using type = SgC_PreprocessorDirectiveStatement; };
12038
12039// Class: CaseOptionStmt
12040template <> struct describe_field_t<SgCaseOptionStmt,SgExpression*,&SgCaseOptionStmt::p_key> {
12041 using parent = SgCaseOptionStmt;
12042 using field_type = SgExpression*;
12043 static constexpr size_t position{0};
12044 static constexpr char const * const name{"key"};
12045 static constexpr char const * const typestr{"SgExpression*"};
12046 static constexpr bool traverse{true};
12047 static constexpr auto mbr_ptr{&SgCaseOptionStmt::p_key};
12048 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12049 using bind = Desc<SgCaseOptionStmt, SgExpression* SgCaseOptionStmt::*, &SgCaseOptionStmt::p_key>;
12050};
12052 using parent = SgCaseOptionStmt;
12053 using field_type = SgStatement*;
12054 static constexpr size_t position{1};
12055 static constexpr char const * const name{"body"};
12056 static constexpr char const * const typestr{"SgStatement*"};
12057 static constexpr bool traverse{true};
12058 static constexpr auto mbr_ptr{&SgCaseOptionStmt::p_body};
12059 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12060 using bind = Desc<SgCaseOptionStmt, SgStatement* SgCaseOptionStmt::*, &SgCaseOptionStmt::p_body>;
12061};
12063 using parent = SgCaseOptionStmt;
12064 using field_type = SgExpression*;
12065 static constexpr size_t position{2};
12066 static constexpr char const * const name{"key_range_end"};
12067 static constexpr char const * const typestr{"SgExpression*"};
12068 static constexpr bool traverse{true};
12069 static constexpr auto mbr_ptr{&SgCaseOptionStmt::p_key_range_end};
12070 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12071 using bind = Desc<SgCaseOptionStmt, SgExpression* SgCaseOptionStmt::*, &SgCaseOptionStmt::p_key_range_end>;
12072};
12073template <> struct describe_field_t<SgCaseOptionStmt,std::string,&SgCaseOptionStmt::p_case_construct_name> {
12074 using parent = SgCaseOptionStmt;
12075 using field_type = std::string;
12076 static constexpr size_t position{3};
12077 static constexpr char const * const name{"case_construct_name"};
12078 static constexpr char const * const typestr{"std::string"};
12079 static constexpr bool traverse{false};
12080 static constexpr auto mbr_ptr{&SgCaseOptionStmt::p_case_construct_name};
12081 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12082 using bind = Desc<SgCaseOptionStmt, std::string SgCaseOptionStmt::*, &SgCaseOptionStmt::p_case_construct_name>;
12083};
12084template <> struct describe_field_t<SgCaseOptionStmt,bool,&SgCaseOptionStmt::p_has_fall_through> {
12085 using parent = SgCaseOptionStmt;
12086 using field_type = bool;
12087 static constexpr size_t position{4};
12088 static constexpr char const * const name{"has_fall_through"};
12089 static constexpr char const * const typestr{"bool"};
12090 static constexpr bool traverse{false};
12091 static constexpr auto mbr_ptr{&SgCaseOptionStmt::p_has_fall_through};
12092 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12093 using bind = Desc<SgCaseOptionStmt, bool SgCaseOptionStmt::*, &SgCaseOptionStmt::p_has_fall_through>;
12094};
12104template <> struct node_from_variant_t<318> { using type = SgCaseOptionStmt; };
12105
12106// Class: CastExp
12107template <> struct describe_field_t<SgCastExp,SgCastExp::cast_type_enum,&SgCastExp::p_cast_type> {
12108 using parent = SgCastExp;
12110 static constexpr size_t position{0};
12111 static constexpr char const * const name{"cast_type"};
12112 static constexpr char const * const typestr{"SgCastExp::cast_type_enum"};
12113 static constexpr bool traverse{false};
12114 static constexpr auto mbr_ptr{&SgCastExp::p_cast_type};
12115 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12116 using bind = Desc<SgCastExp, SgCastExp::cast_type_enum SgCastExp::*, &SgCastExp::p_cast_type>;
12117};
12118template <> struct describe_field_t<SgCastExp,SgExpression*,&SgCastExp::p_originalExpressionTree> {
12119 using parent = SgCastExp;
12120 using field_type = SgExpression*;
12121 static constexpr size_t position{1};
12122 static constexpr char const * const name{"originalExpressionTree"};
12123 static constexpr char const * const typestr{"SgExpression*"};
12124 static constexpr bool traverse{false};
12125 static constexpr auto mbr_ptr{&SgCastExp::p_originalExpressionTree};
12126 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12127 using bind = Desc<SgCastExp, SgExpression* SgCastExp::*, &SgCastExp::p_originalExpressionTree>;
12128};
12129template <> struct describe_field_t<SgCastExp,int,&SgCastExp::p_name_qualification_length> {
12130 using parent = SgCastExp;
12131 using field_type = int;
12132 static constexpr size_t position{2};
12133 static constexpr char const * const name{"name_qualification_length"};
12134 static constexpr char const * const typestr{"int"};
12135 static constexpr bool traverse{false};
12136 static constexpr auto mbr_ptr{&SgCastExp::p_name_qualification_length};
12137 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12138 using bind = Desc<SgCastExp, int SgCastExp::*, &SgCastExp::p_name_qualification_length>;
12139};
12140template <> struct describe_field_t<SgCastExp,bool,&SgCastExp::p_type_elaboration_required> {
12141 using parent = SgCastExp;
12142 using field_type = bool;
12143 static constexpr size_t position{3};
12144 static constexpr char const * const name{"type_elaboration_required"};
12145 static constexpr char const * const typestr{"bool"};
12146 static constexpr bool traverse{false};
12147 static constexpr auto mbr_ptr{&SgCastExp::p_type_elaboration_required};
12148 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12149 using bind = Desc<SgCastExp, bool SgCastExp::*, &SgCastExp::p_type_elaboration_required>;
12150};
12151template <> struct describe_field_t<SgCastExp,bool,&SgCastExp::p_global_qualification_required> {
12152 using parent = SgCastExp;
12153 using field_type = bool;
12154 static constexpr size_t position{4};
12155 static constexpr char const * const name{"global_qualification_required"};
12156 static constexpr char const * const typestr{"bool"};
12157 static constexpr bool traverse{false};
12158 static constexpr auto mbr_ptr{&SgCastExp::p_global_qualification_required};
12159 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12160 using bind = Desc<SgCastExp, bool SgCastExp::*, &SgCastExp::p_global_qualification_required>;
12161};
12162template <> struct describe_field_t<SgCastExp,bool,&SgCastExp::p_castContainsBaseTypeDefiningDeclaration> {
12163 using parent = SgCastExp;
12164 using field_type = bool;
12165 static constexpr size_t position{5};
12166 static constexpr char const * const name{"castContainsBaseTypeDefiningDeclaration"};
12167 static constexpr char const * const typestr{"bool"};
12168 static constexpr bool traverse{false};
12169 static constexpr auto mbr_ptr{&SgCastExp::p_castContainsBaseTypeDefiningDeclaration};
12170 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12171 using bind = Desc<SgCastExp, bool SgCastExp::*, &SgCastExp::p_castContainsBaseTypeDefiningDeclaration>;
12172};
12173template <> struct describe_field_t<SgCastExp,int,&SgCastExp::p_name_qualification_for_pointer_to_member_class_length> {
12174 using parent = SgCastExp;
12175 using field_type = int;
12176 static constexpr size_t position{6};
12177 static constexpr char const * const name{"name_qualification_for_pointer_to_member_class_length"};
12178 static constexpr char const * const typestr{"int"};
12179 static constexpr bool traverse{false};
12180 static constexpr auto mbr_ptr{&SgCastExp::p_name_qualification_for_pointer_to_member_class_length};
12181 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12182 using bind = Desc<SgCastExp, int SgCastExp::*, &SgCastExp::p_name_qualification_for_pointer_to_member_class_length>;
12183};
12184template <> struct describe_field_t<SgCastExp,bool,&SgCastExp::p_type_elaboration_for_pointer_to_member_class_required> {
12185 using parent = SgCastExp;
12186 using field_type = bool;
12187 static constexpr size_t position{7};
12188 static constexpr char const * const name{"type_elaboration_for_pointer_to_member_class_required"};
12189 static constexpr char const * const typestr{"bool"};
12190 static constexpr bool traverse{false};
12191 static constexpr auto mbr_ptr{&SgCastExp::p_type_elaboration_for_pointer_to_member_class_required};
12192 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12193 using bind = Desc<SgCastExp, bool SgCastExp::*, &SgCastExp::p_type_elaboration_for_pointer_to_member_class_required>;
12194};
12195template <> struct describe_field_t<SgCastExp,bool,&SgCastExp::p_global_qualification_for_pointer_to_member_class_required> {
12196 using parent = SgCastExp;
12197 using field_type = bool;
12198 static constexpr size_t position{8};
12199 static constexpr char const * const name{"global_qualification_for_pointer_to_member_class_required"};
12200 static constexpr char const * const typestr{"bool"};
12201 static constexpr bool traverse{false};
12202 static constexpr auto mbr_ptr{&SgCastExp::p_global_qualification_for_pointer_to_member_class_required};
12203 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12204 using bind = Desc<SgCastExp, bool SgCastExp::*, &SgCastExp::p_global_qualification_for_pointer_to_member_class_required>;
12205};
12215template <> struct node_from_variant_t<319> { using type = SgCastExp; };
12216
12217// Class: CatchOptionStmt
12219 using parent = SgCatchOptionStmt;
12221 static constexpr size_t position{0};
12222 static constexpr char const * const name{"condition"};
12223 static constexpr char const * const typestr{"SgVariableDeclaration*"};
12224 static constexpr bool traverse{true};
12225 static constexpr auto mbr_ptr{&SgCatchOptionStmt::p_condition};
12226 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12227 using bind = Desc<SgCatchOptionStmt, SgVariableDeclaration* SgCatchOptionStmt::*, &SgCatchOptionStmt::p_condition>;
12228};
12230 using parent = SgCatchOptionStmt;
12231 using field_type = SgStatement*;
12232 static constexpr size_t position{1};
12233 static constexpr char const * const name{"body"};
12234 static constexpr char const * const typestr{"SgStatement*"};
12235 static constexpr bool traverse{true};
12236 static constexpr auto mbr_ptr{&SgCatchOptionStmt::p_body};
12237 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12238 using bind = Desc<SgCatchOptionStmt, SgStatement* SgCatchOptionStmt::*, &SgCatchOptionStmt::p_body>;
12239};
12241 using parent = SgCatchOptionStmt;
12242 using field_type = SgTryStmt*;
12243 static constexpr size_t position{2};
12244 static constexpr char const * const name{"trystmt"};
12245 static constexpr char const * const typestr{"SgTryStmt*"};
12246 static constexpr bool traverse{false};
12247 static constexpr auto mbr_ptr{&SgCatchOptionStmt::p_trystmt};
12248 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12249 using bind = Desc<SgCatchOptionStmt, SgTryStmt* SgCatchOptionStmt::*, &SgCatchOptionStmt::p_trystmt>;
12250};
12252 using node = SgCatchOptionStmt;
12253 using base = SgScopeStatement;
12254 static constexpr char const * const name{"CatchOptionStmt"};
12255 static constexpr unsigned long variant{320};
12256 static constexpr bool concrete{true};
12257 using subclasses_t = mp::List<>;
12259};
12260template <> struct node_from_variant_t<320> { using type = SgCatchOptionStmt; };
12261
12262// Class: CatchStatementSeq
12265 using field_type = SgStatementPtrList;
12266 static constexpr size_t position{0};
12267 static constexpr char const * const name{"catch_statement_seq"};
12268 static constexpr char const * const typestr{"SgStatementPtrList"};
12269 static constexpr bool traverse{true};
12270 static constexpr auto mbr_ptr{&SgCatchStatementSeq::p_catch_statement_seq};
12271 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12272 using bind = Desc<SgCatchStatementSeq, SgStatementPtrList SgCatchStatementSeq::*, &SgCatchStatementSeq::p_catch_statement_seq>;
12273};
12275 using node = SgCatchStatementSeq;
12276 using base = SgStatement;
12277 static constexpr char const * const name{"CatchStatementSeq"};
12278 static constexpr unsigned long variant{321};
12279 static constexpr bool concrete{true};
12280 using subclasses_t = mp::List<>;
12282};
12283template <> struct node_from_variant_t<321> { using type = SgCatchStatementSeq; };
12284
12285// Class: CharVal
12286template <> struct describe_field_t<SgCharVal,char,&SgCharVal::p_value> {
12287 using parent = SgCharVal;
12288 using field_type = char;
12289 static constexpr size_t position{0};
12290 static constexpr char const * const name{"value"};
12291 static constexpr char const * const typestr{"char"};
12292 static constexpr bool traverse{false};
12293 static constexpr auto mbr_ptr{&SgCharVal::p_value};
12294 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12295 using bind = Desc<SgCharVal, char SgCharVal::*, &SgCharVal::p_value>;
12296};
12297template <> struct describe_field_t<SgCharVal,std::string,&SgCharVal::p_valueString> {
12298 using parent = SgCharVal;
12299 using field_type = std::string;
12300 static constexpr size_t position{1};
12301 static constexpr char const * const name{"valueString"};
12302 static constexpr char const * const typestr{"std::string"};
12303 static constexpr bool traverse{false};
12304 static constexpr auto mbr_ptr{&SgCharVal::p_valueString};
12305 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12306 using bind = Desc<SgCharVal, std::string SgCharVal::*, &SgCharVal::p_valueString>;
12307};
12308template <> struct describe_node_t<SgCharVal> {
12309 using node = SgCharVal;
12310 using base = SgValueExp;
12311 static constexpr char const * const name{"CharVal"};
12312 static constexpr unsigned long variant{322};
12313 static constexpr bool concrete{true};
12314 using subclasses_t = mp::List<>;
12316};
12317template <> struct node_from_variant_t<322> { using type = SgCharVal; };
12318
12319// Class: Char16Val
12320template <> struct describe_field_t<SgChar16Val,unsigned short,&SgChar16Val::p_valueUL> {
12321 using parent = SgChar16Val;
12322 using field_type = unsigned short;
12323 static constexpr size_t position{0};
12324 static constexpr char const * const name{"valueUL"};
12325 static constexpr char const * const typestr{"unsigned short"};
12326 static constexpr bool traverse{false};
12327 static constexpr auto mbr_ptr{&SgChar16Val::p_valueUL};
12328 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12329 using bind = Desc<SgChar16Val, unsigned short SgChar16Val::*, &SgChar16Val::p_valueUL>;
12330};
12331template <> struct describe_field_t<SgChar16Val,std::string,&SgChar16Val::p_valueString> {
12332 using parent = SgChar16Val;
12333 using field_type = std::string;
12334 static constexpr size_t position{1};
12335 static constexpr char const * const name{"valueString"};
12336 static constexpr char const * const typestr{"std::string"};
12337 static constexpr bool traverse{false};
12338 static constexpr auto mbr_ptr{&SgChar16Val::p_valueString};
12339 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12340 using bind = Desc<SgChar16Val, std::string SgChar16Val::*, &SgChar16Val::p_valueString>;
12341};
12342template <> struct describe_node_t<SgChar16Val> {
12343 using node = SgChar16Val;
12344 using base = SgValueExp;
12345 static constexpr char const * const name{"Char16Val"};
12346 static constexpr unsigned long variant{323};
12347 static constexpr bool concrete{true};
12348 using subclasses_t = mp::List<>;
12350};
12351template <> struct node_from_variant_t<323> { using type = SgChar16Val; };
12352
12353// Class: Char32Val
12354template <> struct describe_field_t<SgChar32Val,unsigned int,&SgChar32Val::p_valueUL> {
12355 using parent = SgChar32Val;
12356 using field_type = unsigned int;
12357 static constexpr size_t position{0};
12358 static constexpr char const * const name{"valueUL"};
12359 static constexpr char const * const typestr{"unsigned int"};
12360 static constexpr bool traverse{false};
12361 static constexpr auto mbr_ptr{&SgChar32Val::p_valueUL};
12362 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12363 using bind = Desc<SgChar32Val, unsigned int SgChar32Val::*, &SgChar32Val::p_valueUL>;
12364};
12365template <> struct describe_field_t<SgChar32Val,std::string,&SgChar32Val::p_valueString> {
12366 using parent = SgChar32Val;
12367 using field_type = std::string;
12368 static constexpr size_t position{1};
12369 static constexpr char const * const name{"valueString"};
12370 static constexpr char const * const typestr{"std::string"};
12371 static constexpr bool traverse{false};
12372 static constexpr auto mbr_ptr{&SgChar32Val::p_valueString};
12373 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12374 using bind = Desc<SgChar32Val, std::string SgChar32Val::*, &SgChar32Val::p_valueString>;
12375};
12376template <> struct describe_node_t<SgChar32Val> {
12377 using node = SgChar32Val;
12378 using base = SgValueExp;
12379 static constexpr char const * const name{"Char32Val"};
12380 static constexpr unsigned long variant{324};
12381 static constexpr bool concrete{true};
12382 using subclasses_t = mp::List<>;
12384};
12385template <> struct node_from_variant_t<324> { using type = SgChar32Val; };
12386
12387// Class: ChooseExpression
12388template <> struct describe_field_t<SgChooseExpression,SgExpression*,&SgChooseExpression::p_value> {
12389 using parent = SgChooseExpression;
12390 using field_type = SgExpression*;
12391 static constexpr size_t position{0};
12392 static constexpr char const * const name{"value"};
12393 static constexpr char const * const typestr{"SgExpression*"};
12394 static constexpr bool traverse{true};
12395 static constexpr auto mbr_ptr{&SgChooseExpression::p_value};
12396 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12397 using bind = Desc<SgChooseExpression, SgExpression* SgChooseExpression::*, &SgChooseExpression::p_value>;
12398};
12400 using node = SgChooseExpression;
12401 using base = SgExpression;
12402 static constexpr char const * const name{"ChooseExpression"};
12403 static constexpr unsigned long variant{325};
12404 static constexpr bool concrete{true};
12405 using subclasses_t = mp::List<>;
12407};
12408template <> struct node_from_variant_t<325> { using type = SgChooseExpression; };
12409
12410// Class: ClassDecl_attr
12412 using node = SgClassDecl_attr;
12413 using base = SgBitAttribute;
12414 static constexpr char const * const name{"ClassDecl_attr"};
12415 static constexpr unsigned long variant{326};
12416 static constexpr bool concrete{true};
12417 using subclasses_t = mp::List<>;
12418 using fields_t = mp::List<>;
12419};
12420template <> struct node_from_variant_t<326> { using type = SgClassDecl_attr; };
12421
12422// Class: ClassDeclaration
12424 using parent = SgClassDeclaration;
12425 using field_type = SgName;
12426 static constexpr size_t position{0};
12427 static constexpr char const * const name{"name"};
12428 static constexpr char const * const typestr{"SgName"};
12429 static constexpr bool traverse{false};
12430 static constexpr auto mbr_ptr{&SgClassDeclaration::p_name};
12431 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12432 using bind = Desc<SgClassDeclaration, SgName SgClassDeclaration::*, &SgClassDeclaration::p_name>;
12433};
12435 using parent = SgClassDeclaration;
12437 static constexpr size_t position{1};
12438 static constexpr char const * const name{"class_type"};
12439 static constexpr char const * const typestr{"SgClassDeclaration::class_types"};
12440 static constexpr bool traverse{false};
12441 static constexpr auto mbr_ptr{&SgClassDeclaration::p_class_type};
12442 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12443 using bind = Desc<SgClassDeclaration, SgClassDeclaration::class_types SgClassDeclaration::*, &SgClassDeclaration::p_class_type>;
12444};
12446 using parent = SgClassDeclaration;
12447 using field_type = SgClassType*;
12448 static constexpr size_t position{2};
12449 static constexpr char const * const name{"type"};
12450 static constexpr char const * const typestr{"SgClassType*"};
12451 static constexpr bool traverse{false};
12452 static constexpr auto mbr_ptr{&SgClassDeclaration::p_type};
12453 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12454 using bind = Desc<SgClassDeclaration, SgClassType* SgClassDeclaration::*, &SgClassDeclaration::p_type>;
12455};
12457 using parent = SgClassDeclaration;
12459 static constexpr size_t position{3};
12460 static constexpr char const * const name{"definition"};
12461 static constexpr char const * const typestr{"SgClassDefinition*"};
12462 static constexpr bool traverse{true};
12463 static constexpr auto mbr_ptr{&SgClassDeclaration::p_definition};
12464 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12465 using bind = Desc<SgClassDeclaration, SgClassDefinition* SgClassDeclaration::*, &SgClassDeclaration::p_definition>;
12466};
12467template <> struct describe_field_t<SgClassDeclaration,SgScopeStatement*,&SgClassDeclaration::p_scope> {
12468 using parent = SgClassDeclaration;
12470 static constexpr size_t position{4};
12471 static constexpr char const * const name{"scope"};
12472 static constexpr char const * const typestr{"SgScopeStatement*"};
12473 static constexpr bool traverse{false};
12474 static constexpr auto mbr_ptr{&SgClassDeclaration::p_scope};
12475 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12476 using bind = Desc<SgClassDeclaration, SgScopeStatement* SgClassDeclaration::*, &SgClassDeclaration::p_scope>;
12477};
12478template <> struct describe_field_t<SgClassDeclaration,SgDeclarationStatement::template_specialization_enum,&SgClassDeclaration::p_specialization> {
12479 using parent = SgClassDeclaration;
12481 static constexpr size_t position{5};
12482 static constexpr char const * const name{"specialization"};
12483 static constexpr char const * const typestr{"SgDeclarationStatement::template_specialization_enum"};
12484 static constexpr bool traverse{false};
12485 static constexpr auto mbr_ptr{&SgClassDeclaration::p_specialization};
12486 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12487 using bind = Desc<SgClassDeclaration, SgDeclarationStatement::template_specialization_enum SgClassDeclaration::*, &SgClassDeclaration::p_specialization>;
12488};
12490 using parent = SgClassDeclaration;
12491 using field_type = bool;
12492 static constexpr size_t position{6};
12493 static constexpr char const * const name{"from_template"};
12494 static constexpr char const * const typestr{"bool"};
12495 static constexpr bool traverse{false};
12496 static constexpr auto mbr_ptr{&SgClassDeclaration::p_from_template};
12497 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12498 using bind = Desc<SgClassDeclaration, bool SgClassDeclaration::*, &SgClassDeclaration::p_from_template>;
12499};
12500template <> struct describe_field_t<SgClassDeclaration,bool,&SgClassDeclaration::p_fixupScope> {
12501 using parent = SgClassDeclaration;
12502 using field_type = bool;
12503 static constexpr size_t position{7};
12504 static constexpr char const * const name{"fixupScope"};
12505 static constexpr char const * const typestr{"bool"};
12506 static constexpr bool traverse{false};
12507 static constexpr auto mbr_ptr{&SgClassDeclaration::p_fixupScope};
12508 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12509 using bind = Desc<SgClassDeclaration, bool SgClassDeclaration::*, &SgClassDeclaration::p_fixupScope>;
12510};
12511template <> struct describe_field_t<SgClassDeclaration,bool,&SgClassDeclaration::p_isUnNamed> {
12512 using parent = SgClassDeclaration;
12513 using field_type = bool;
12514 static constexpr size_t position{8};
12515 static constexpr char const * const name{"isUnNamed"};
12516 static constexpr char const * const typestr{"bool"};
12517 static constexpr bool traverse{false};
12518 static constexpr auto mbr_ptr{&SgClassDeclaration::p_isUnNamed};
12519 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12520 using bind = Desc<SgClassDeclaration, bool SgClassDeclaration::*, &SgClassDeclaration::p_isUnNamed>;
12521};
12522template <> struct describe_field_t<SgClassDeclaration,bool,&SgClassDeclaration::p_explicit_annotation_interface> {
12523 using parent = SgClassDeclaration;
12524 using field_type = bool;
12525 static constexpr size_t position{9};
12526 static constexpr char const * const name{"explicit_annotation_interface"};
12527 static constexpr char const * const typestr{"bool"};
12528 static constexpr bool traverse{false};
12529 static constexpr auto mbr_ptr{&SgClassDeclaration::p_explicit_annotation_interface};
12530 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12531 using bind = Desc<SgClassDeclaration, bool SgClassDeclaration::*, &SgClassDeclaration::p_explicit_annotation_interface>;
12532};
12533template <> struct describe_field_t<SgClassDeclaration,bool,&SgClassDeclaration::p_explicit_interface> {
12534 using parent = SgClassDeclaration;
12535 using field_type = bool;
12536 static constexpr size_t position{10};
12537 static constexpr char const * const name{"explicit_interface"};
12538 static constexpr char const * const typestr{"bool"};
12539 static constexpr bool traverse{false};
12540 static constexpr auto mbr_ptr{&SgClassDeclaration::p_explicit_interface};
12541 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12542 using bind = Desc<SgClassDeclaration, bool SgClassDeclaration::*, &SgClassDeclaration::p_explicit_interface>;
12543};
12544template <> struct describe_field_t<SgClassDeclaration,bool,&SgClassDeclaration::p_explicit_enum> {
12545 using parent = SgClassDeclaration;
12546 using field_type = bool;
12547 static constexpr size_t position{11};
12548 static constexpr char const * const name{"explicit_enum"};
12549 static constexpr char const * const typestr{"bool"};
12550 static constexpr bool traverse{false};
12551 static constexpr auto mbr_ptr{&SgClassDeclaration::p_explicit_enum};
12552 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12553 using bind = Desc<SgClassDeclaration, bool SgClassDeclaration::*, &SgClassDeclaration::p_explicit_enum>;
12554};
12555template <> struct describe_field_t<SgClassDeclaration,bool,&SgClassDeclaration::p_explicit_anonymous> {
12556 using parent = SgClassDeclaration;
12557 using field_type = bool;
12558 static constexpr size_t position{12};
12559 static constexpr char const * const name{"explicit_anonymous"};
12560 static constexpr char const * const typestr{"bool"};
12561 static constexpr bool traverse{false};
12562 static constexpr auto mbr_ptr{&SgClassDeclaration::p_explicit_anonymous};
12563 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12564 using bind = Desc<SgClassDeclaration, bool SgClassDeclaration::*, &SgClassDeclaration::p_explicit_anonymous>;
12565};
12566template <> struct describe_field_t<SgClassDeclaration,SgExprListExp*,&SgClassDeclaration::p_decoratorList> {
12567 using parent = SgClassDeclaration;
12568 using field_type = SgExprListExp*;
12569 static constexpr size_t position{13};
12570 static constexpr char const * const name{"decoratorList"};
12571 static constexpr char const * const typestr{"SgExprListExp*"};
12572 static constexpr bool traverse{true};
12573 static constexpr auto mbr_ptr{&SgClassDeclaration::p_decoratorList};
12574 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12575 using bind = Desc<SgClassDeclaration, SgExprListExp* SgClassDeclaration::*, &SgClassDeclaration::p_decoratorList>;
12576};
12577template <> struct describe_field_t<SgClassDeclaration,int,&SgClassDeclaration::p_name_qualification_length> {
12578 using parent = SgClassDeclaration;
12579 using field_type = int;
12580 static constexpr size_t position{14};
12581 static constexpr char const * const name{"name_qualification_length"};
12582 static constexpr char const * const typestr{"int"};
12583 static constexpr bool traverse{false};
12584 static constexpr auto mbr_ptr{&SgClassDeclaration::p_name_qualification_length};
12585 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12586 using bind = Desc<SgClassDeclaration, int SgClassDeclaration::*, &SgClassDeclaration::p_name_qualification_length>;
12587};
12588template <> struct describe_field_t<SgClassDeclaration,bool,&SgClassDeclaration::p_type_elaboration_required> {
12589 using parent = SgClassDeclaration;
12590 using field_type = bool;
12591 static constexpr size_t position{15};
12592 static constexpr char const * const name{"type_elaboration_required"};
12593 static constexpr char const * const typestr{"bool"};
12594 static constexpr bool traverse{false};
12595 static constexpr auto mbr_ptr{&SgClassDeclaration::p_type_elaboration_required};
12596 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12597 using bind = Desc<SgClassDeclaration, bool SgClassDeclaration::*, &SgClassDeclaration::p_type_elaboration_required>;
12598};
12599template <> struct describe_field_t<SgClassDeclaration,bool,&SgClassDeclaration::p_global_qualification_required> {
12600 using parent = SgClassDeclaration;
12601 using field_type = bool;
12602 static constexpr size_t position{16};
12603 static constexpr char const * const name{"global_qualification_required"};
12604 static constexpr char const * const typestr{"bool"};
12605 static constexpr bool traverse{false};
12606 static constexpr auto mbr_ptr{&SgClassDeclaration::p_global_qualification_required};
12607 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12608 using bind = Desc<SgClassDeclaration, bool SgClassDeclaration::*, &SgClassDeclaration::p_global_qualification_required>;
12609};
12610template <> struct describe_field_t<SgClassDeclaration,bool,&SgClassDeclaration::p_isAutonomousDeclaration> {
12611 using parent = SgClassDeclaration;
12612 using field_type = bool;
12613 static constexpr size_t position{17};
12614 static constexpr char const * const name{"isAutonomousDeclaration"};
12615 static constexpr char const * const typestr{"bool"};
12616 static constexpr bool traverse{false};
12617 static constexpr auto mbr_ptr{&SgClassDeclaration::p_isAutonomousDeclaration};
12618 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12619 using bind = Desc<SgClassDeclaration, bool SgClassDeclaration::*, &SgClassDeclaration::p_isAutonomousDeclaration>;
12620};
12621template <> struct describe_field_t<SgClassDeclaration,bool,&SgClassDeclaration::p_isRepresentingTemplateParameterInTemplateDeclaration> {
12622 using parent = SgClassDeclaration;
12623 using field_type = bool;
12624 static constexpr size_t position{18};
12625 static constexpr char const * const name{"isRepresentingTemplateParameterInTemplateDeclaration"};
12626 static constexpr char const * const typestr{"bool"};
12627 static constexpr bool traverse{false};
12628 static constexpr auto mbr_ptr{&SgClassDeclaration::p_isRepresentingTemplateParameterInTemplateDeclaration};
12629 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12630 using bind = Desc<SgClassDeclaration, bool SgClassDeclaration::*, &SgClassDeclaration::p_isRepresentingTemplateParameterInTemplateDeclaration>;
12631};
12632template <> struct describe_field_t<SgClassDeclaration,SgBaseClass*,&SgClassDeclaration::p_adaParentType> {
12633 using parent = SgClassDeclaration;
12634 using field_type = SgBaseClass*;
12635 static constexpr size_t position{19};
12636 static constexpr char const * const name{"adaParentType"};
12637 static constexpr char const * const typestr{"SgBaseClass*"};
12638 static constexpr bool traverse{false};
12639 static constexpr auto mbr_ptr{&SgClassDeclaration::p_adaParentType};
12640 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12641 using bind = Desc<SgClassDeclaration, SgBaseClass* SgClassDeclaration::*, &SgClassDeclaration::p_adaParentType>;
12642};
12644 using node = SgClassDeclaration;
12646 static constexpr char const * const name{"ClassDeclaration"};
12647 static constexpr unsigned long variant{327};
12648 static constexpr bool concrete{true};
12650 using fields_t = mp::List<describe_field_t<SgClassDeclaration,SgName,&SgClassDeclaration::p_name>, describe_field_t<SgClassDeclaration,SgClassDeclaration::class_types,&SgClassDeclaration::p_class_type>, describe_field_t<SgClassDeclaration,SgClassType*,&SgClassDeclaration::p_type>, describe_field_t<SgClassDeclaration,SgClassDefinition*,&SgClassDeclaration::p_definition>, describe_field_t<SgClassDeclaration,SgScopeStatement*,&SgClassDeclaration::p_scope>, describe_field_t<SgClassDeclaration,SgDeclarationStatement::template_specialization_enum,&SgClassDeclaration::p_specialization>, describe_field_t<SgClassDeclaration,bool,&SgClassDeclaration::p_from_template>, describe_field_t<SgClassDeclaration,bool,&SgClassDeclaration::p_fixupScope>, describe_field_t<SgClassDeclaration,bool,&SgClassDeclaration::p_isUnNamed>, describe_field_t<SgClassDeclaration,bool,&SgClassDeclaration::p_explicit_annotation_interface>, describe_field_t<SgClassDeclaration,bool,&SgClassDeclaration::p_explicit_interface>, describe_field_t<SgClassDeclaration,bool,&SgClassDeclaration::p_explicit_enum>, describe_field_t<SgClassDeclaration,bool,&SgClassDeclaration::p_explicit_anonymous>, describe_field_t<SgClassDeclaration,SgExprListExp*,&SgClassDeclaration::p_decoratorList>, describe_field_t<SgClassDeclaration,int,&SgClassDeclaration::p_name_qualification_length>, describe_field_t<SgClassDeclaration,bool,&SgClassDeclaration::p_type_elaboration_required>, describe_field_t<SgClassDeclaration,bool,&SgClassDeclaration::p_global_qualification_required>, describe_field_t<SgClassDeclaration,bool,&SgClassDeclaration::p_isAutonomousDeclaration>, describe_field_t<SgClassDeclaration,bool,&SgClassDeclaration::p_isRepresentingTemplateParameterInTemplateDeclaration>, describe_field_t<SgClassDeclaration,SgBaseClass*,&SgClassDeclaration::p_adaParentType>>;
12651};
12652template <> struct node_from_variant_t<327> { using type = SgClassDeclaration; };
12653
12654// Class: ClassDefinition
12655template <> struct describe_field_t<SgClassDefinition,SgDeclarationStatementPtrList,&SgClassDefinition::p_members> {
12656 using parent = SgClassDefinition;
12657 using field_type = SgDeclarationStatementPtrList;
12658 static constexpr size_t position{0};
12659 static constexpr char const * const name{"members"};
12660 static constexpr char const * const typestr{"SgDeclarationStatementPtrList"};
12661 static constexpr bool traverse{true};
12662 static constexpr auto mbr_ptr{&SgClassDefinition::p_members};
12663 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12664 using bind = Desc<SgClassDefinition, SgDeclarationStatementPtrList SgClassDefinition::*, &SgClassDefinition::p_members>;
12665};
12667 using parent = SgClassDefinition;
12668 using field_type = SgBaseClassPtrList;
12669 static constexpr size_t position{1};
12670 static constexpr char const * const name{"inheritances"};
12671 static constexpr char const * const typestr{"SgBaseClassPtrList"};
12672 static constexpr bool traverse{false};
12673 static constexpr auto mbr_ptr{&SgClassDefinition::p_inheritances};
12674 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12675 using bind = Desc<SgClassDefinition, SgBaseClassPtrList SgClassDefinition::*, &SgClassDefinition::p_inheritances>;
12676};
12677template <> struct describe_field_t<SgClassDefinition,unsigned int,&SgClassDefinition::p_packingAlignment> {
12678 using parent = SgClassDefinition;
12679 using field_type = unsigned int;
12680 static constexpr size_t position{2};
12681 static constexpr char const * const name{"packingAlignment"};
12682 static constexpr char const * const typestr{"unsigned int"};
12683 static constexpr bool traverse{false};
12684 static constexpr auto mbr_ptr{&SgClassDefinition::p_packingAlignment};
12685 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12686 using bind = Desc<SgClassDefinition, unsigned int SgClassDefinition::*, &SgClassDefinition::p_packingAlignment>;
12687};
12688template <> struct describe_field_t<SgClassDefinition,bool,&SgClassDefinition::p_isSequence> {
12689 using parent = SgClassDefinition;
12690 using field_type = bool;
12691 static constexpr size_t position{3};
12692 static constexpr char const * const name{"isSequence"};
12693 static constexpr char const * const typestr{"bool"};
12694 static constexpr bool traverse{false};
12695 static constexpr auto mbr_ptr{&SgClassDefinition::p_isSequence};
12696 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12697 using bind = Desc<SgClassDefinition, bool SgClassDefinition::*, &SgClassDefinition::p_isSequence>;
12698};
12699template <> struct describe_field_t<SgClassDefinition,bool,&SgClassDefinition::p_isPrivate> {
12700 using parent = SgClassDefinition;
12701 using field_type = bool;
12702 static constexpr size_t position{4};
12703 static constexpr char const * const name{"isPrivate"};
12704 static constexpr char const * const typestr{"bool"};
12705 static constexpr bool traverse{false};
12706 static constexpr auto mbr_ptr{&SgClassDefinition::p_isPrivate};
12707 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12708 using bind = Desc<SgClassDefinition, bool SgClassDefinition::*, &SgClassDefinition::p_isPrivate>;
12709};
12710template <> struct describe_field_t<SgClassDefinition,bool,&SgClassDefinition::p_isAbstract> {
12711 using parent = SgClassDefinition;
12712 using field_type = bool;
12713 static constexpr size_t position{5};
12714 static constexpr char const * const name{"isAbstract"};
12715 static constexpr char const * const typestr{"bool"};
12716 static constexpr bool traverse{false};
12717 static constexpr auto mbr_ptr{&SgClassDefinition::p_isAbstract};
12718 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12719 using bind = Desc<SgClassDefinition, bool SgClassDefinition::*, &SgClassDefinition::p_isAbstract>;
12720};
12730template <> struct node_from_variant_t<328> { using type = SgClassDefinition; };
12731
12732// Class: ClassNameRefExp
12734 using parent = SgClassNameRefExp;
12735 using field_type = SgClassSymbol*;
12736 static constexpr size_t position{0};
12737 static constexpr char const * const name{"symbol"};
12738 static constexpr char const * const typestr{"SgClassSymbol*"};
12739 static constexpr bool traverse{false};
12740 static constexpr auto mbr_ptr{&SgClassNameRefExp::p_symbol};
12741 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12742 using bind = Desc<SgClassNameRefExp, SgClassSymbol* SgClassNameRefExp::*, &SgClassNameRefExp::p_symbol>;
12743};
12745 using node = SgClassNameRefExp;
12746 using base = SgReferenceExp;
12747 static constexpr char const * const name{"ClassNameRefExp"};
12748 static constexpr unsigned long variant{329};
12749 static constexpr bool concrete{true};
12750 using subclasses_t = mp::List<>;
12752};
12753template <> struct node_from_variant_t<329> { using type = SgClassNameRefExp; };
12754
12755// Class: ClassSymbol
12756template <> struct describe_field_t<SgClassSymbol,SgClassDeclaration*,&SgClassSymbol::p_declaration> {
12757 using parent = SgClassSymbol;
12759 static constexpr size_t position{0};
12760 static constexpr char const * const name{"declaration"};
12761 static constexpr char const * const typestr{"SgClassDeclaration*"};
12762 static constexpr bool traverse{true};
12763 static constexpr auto mbr_ptr{&SgClassSymbol::p_declaration};
12764 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12765 using bind = Desc<SgClassSymbol, SgClassDeclaration* SgClassSymbol::*, &SgClassSymbol::p_declaration>;
12766};
12767template <> struct describe_node_t<SgClassSymbol> {
12768 using node = SgClassSymbol;
12769 using base = SgTypeSymbol;
12770 static constexpr char const * const name{"ClassSymbol"};
12771 static constexpr unsigned long variant{330};
12772 static constexpr bool concrete{true};
12775};
12776template <> struct node_from_variant_t<330> { using type = SgClassSymbol; };
12777
12778// Class: ClassType
12779template <> struct describe_field_t<SgClassType,bool,&SgClassType::p_packed> {
12780 using parent = SgClassType;
12781 using field_type = bool;
12782 static constexpr size_t position{0};
12783 static constexpr char const * const name{"packed"};
12784 static constexpr char const * const typestr{"bool"};
12785 static constexpr bool traverse{false};
12786 static constexpr auto mbr_ptr{&SgClassType::p_packed};
12787 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12788 using bind = Desc<SgClassType, bool SgClassType::*, &SgClassType::p_packed>;
12789};
12790template <> struct describe_node_t<SgClassType> {
12791 using node = SgClassType;
12792 using base = SgNamedType;
12793 static constexpr char const * const name{"ClassType"};
12794 static constexpr unsigned long variant{331};
12795 static constexpr bool concrete{true};
12798};
12799template <> struct node_from_variant_t<331> { using type = SgClassType; };
12800
12801// Class: ClinkageDeclarationStatement
12802template <> struct describe_field_t<SgClinkageDeclarationStatement,std::string,&SgClinkageDeclarationStatement::p_languageSpecifier> {
12804 using field_type = std::string;
12805 static constexpr size_t position{0};
12806 static constexpr char const * const name{"languageSpecifier"};
12807 static constexpr char const * const typestr{"std::string"};
12808 static constexpr bool traverse{false};
12809 static constexpr auto mbr_ptr{&SgClinkageDeclarationStatement::p_languageSpecifier};
12810 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12811 using bind = Desc<SgClinkageDeclarationStatement, std::string SgClinkageDeclarationStatement::*, &SgClinkageDeclarationStatement::p_languageSpecifier>;
12812};
12816 static constexpr char const * const name{"ClinkageDeclarationStatement"};
12817 static constexpr unsigned long variant{332};
12818 static constexpr bool concrete{false};
12821};
12822template <> struct node_from_variant_t<332> { using type = SgClinkageDeclarationStatement; };
12823
12824// Class: ClinkageEndStatement
12828 static constexpr char const * const name{"ClinkageEndStatement"};
12829 static constexpr unsigned long variant{333};
12830 static constexpr bool concrete{true};
12831 using subclasses_t = mp::List<>;
12832 using fields_t = mp::List<>;
12833};
12834template <> struct node_from_variant_t<333> { using type = SgClinkageEndStatement; };
12835
12836// Class: ClinkageStartStatement
12840 static constexpr char const * const name{"ClinkageStartStatement"};
12841 static constexpr unsigned long variant{334};
12842 static constexpr bool concrete{true};
12843 using subclasses_t = mp::List<>;
12844 using fields_t = mp::List<>;
12845};
12846template <> struct node_from_variant_t<334> { using type = SgClinkageStartStatement; };
12847
12848// Class: CloseStatement
12849template <> struct describe_field_t<SgCloseStatement,SgExpression*,&SgCloseStatement::p_status> {
12850 using parent = SgCloseStatement;
12851 using field_type = SgExpression*;
12852 static constexpr size_t position{0};
12853 static constexpr char const * const name{"status"};
12854 static constexpr char const * const typestr{"SgExpression*"};
12855 static constexpr bool traverse{true};
12856 static constexpr auto mbr_ptr{&SgCloseStatement::p_status};
12857 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12858 using bind = Desc<SgCloseStatement, SgExpression* SgCloseStatement::*, &SgCloseStatement::p_status>;
12859};
12861 using node = SgCloseStatement;
12862 using base = SgIOStatement;
12863 static constexpr char const * const name{"CloseStatement"};
12864 static constexpr unsigned long variant{335};
12865 static constexpr bool concrete{true};
12866 using subclasses_t = mp::List<>;
12868};
12869template <> struct node_from_variant_t<335> { using type = SgCloseStatement; };
12870
12871// Class: ColonShapeExp
12873 using node = SgColonShapeExp;
12874 using base = SgExpression;
12875 static constexpr char const * const name{"ColonShapeExp"};
12876 static constexpr unsigned long variant{336};
12877 static constexpr bool concrete{true};
12878 using subclasses_t = mp::List<>;
12879 using fields_t = mp::List<>;
12880};
12881template <> struct node_from_variant_t<336> { using type = SgColonShapeExp; };
12882
12883// Class: CommaOpExp
12884template <> struct describe_node_t<SgCommaOpExp> {
12885 using node = SgCommaOpExp;
12886 using base = SgBinaryOp;
12887 static constexpr char const * const name{"CommaOpExp"};
12888 static constexpr unsigned long variant{337};
12889 static constexpr bool concrete{true};
12890 using subclasses_t = mp::List<>;
12891 using fields_t = mp::List<>;
12892};
12893template <> struct node_from_variant_t<337> { using type = SgCommaOpExp; };
12894
12895// Class: CommonBlock
12896template <> struct describe_field_t<SgCommonBlock,SgCommonBlockObjectPtrList,&SgCommonBlock::p_block_list> {
12897 using parent = SgCommonBlock;
12898 using field_type = SgCommonBlockObjectPtrList;
12899 static constexpr size_t position{0};
12900 static constexpr char const * const name{"block_list"};
12901 static constexpr char const * const typestr{"SgCommonBlockObjectPtrList"};
12902 static constexpr bool traverse{true};
12903 static constexpr auto mbr_ptr{&SgCommonBlock::p_block_list};
12904 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12905 using bind = Desc<SgCommonBlock, SgCommonBlockObjectPtrList SgCommonBlock::*, &SgCommonBlock::p_block_list>;
12906};
12907template <> struct describe_node_t<SgCommonBlock> {
12908 using node = SgCommonBlock;
12910 static constexpr char const * const name{"CommonBlock"};
12911 static constexpr unsigned long variant{338};
12912 static constexpr bool concrete{true};
12913 using subclasses_t = mp::List<>;
12915};
12916template <> struct node_from_variant_t<338> { using type = SgCommonBlock; };
12917
12918// Class: CommonBlockObject
12919template <> struct describe_field_t<SgCommonBlockObject,std::string,&SgCommonBlockObject::p_block_name> {
12921 using field_type = std::string;
12922 static constexpr size_t position{0};
12923 static constexpr char const * const name{"block_name"};
12924 static constexpr char const * const typestr{"std::string"};
12925 static constexpr bool traverse{false};
12926 static constexpr auto mbr_ptr{&SgCommonBlockObject::p_block_name};
12927 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12928 using bind = Desc<SgCommonBlockObject, std::string SgCommonBlockObject::*, &SgCommonBlockObject::p_block_name>;
12929};
12930template <> struct describe_field_t<SgCommonBlockObject,SgExprListExp*,&SgCommonBlockObject::p_variable_reference_list> {
12932 using field_type = SgExprListExp*;
12933 static constexpr size_t position{1};
12934 static constexpr char const * const name{"variable_reference_list"};
12935 static constexpr char const * const typestr{"SgExprListExp*"};
12936 static constexpr bool traverse{true};
12937 static constexpr auto mbr_ptr{&SgCommonBlockObject::p_variable_reference_list};
12938 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12939 using bind = Desc<SgCommonBlockObject, SgExprListExp* SgCommonBlockObject::*, &SgCommonBlockObject::p_variable_reference_list>;
12940};
12942 using node = SgCommonBlockObject;
12943 using base = SgLocatedNodeSupport;
12944 static constexpr char const * const name{"CommonBlockObject"};
12945 static constexpr unsigned long variant{339};
12946 static constexpr bool concrete{true};
12947 using subclasses_t = mp::List<>;
12949};
12950template <> struct node_from_variant_t<339> { using type = SgCommonBlockObject; };
12951
12952// Class: CommonSymbol
12953template <> struct describe_field_t<SgCommonSymbol,SgInitializedName*,&SgCommonSymbol::p_declaration> {
12954 using parent = SgCommonSymbol;
12956 static constexpr size_t position{0};
12957 static constexpr char const * const name{"declaration"};
12958 static constexpr char const * const typestr{"SgInitializedName*"};
12959 static constexpr bool traverse{false};
12960 static constexpr auto mbr_ptr{&SgCommonSymbol::p_declaration};
12961 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12962 using bind = Desc<SgCommonSymbol, SgInitializedName* SgCommonSymbol::*, &SgCommonSymbol::p_declaration>;
12963};
12964template <> struct describe_node_t<SgCommonSymbol> {
12965 using node = SgCommonSymbol;
12966 using base = SgSymbol;
12967 static constexpr char const * const name{"CommonSymbol"};
12968 static constexpr unsigned long variant{340};
12969 static constexpr bool concrete{true};
12970 using subclasses_t = mp::List<>;
12972};
12973template <> struct node_from_variant_t<340> { using type = SgCommonSymbol; };
12974
12975// Class: ComplexVal
12976template <> struct describe_field_t<SgComplexVal,SgValueExp*,&SgComplexVal::p_real_value> {
12977 using parent = SgComplexVal;
12978 using field_type = SgValueExp*;
12979 static constexpr size_t position{0};
12980 static constexpr char const * const name{"real_value"};
12981 static constexpr char const * const typestr{"SgValueExp*"};
12982 static constexpr bool traverse{true};
12983 static constexpr auto mbr_ptr{&SgComplexVal::p_real_value};
12984 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12985 using bind = Desc<SgComplexVal, SgValueExp* SgComplexVal::*, &SgComplexVal::p_real_value>;
12986};
12987template <> struct describe_field_t<SgComplexVal,SgValueExp*,&SgComplexVal::p_imaginary_value> {
12988 using parent = SgComplexVal;
12989 using field_type = SgValueExp*;
12990 static constexpr size_t position{1};
12991 static constexpr char const * const name{"imaginary_value"};
12992 static constexpr char const * const typestr{"SgValueExp*"};
12993 static constexpr bool traverse{true};
12994 static constexpr auto mbr_ptr{&SgComplexVal::p_imaginary_value};
12995 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
12996 using bind = Desc<SgComplexVal, SgValueExp* SgComplexVal::*, &SgComplexVal::p_imaginary_value>;
12997};
12998template <> struct describe_field_t<SgComplexVal,SgType*,&SgComplexVal::p_precisionType> {
12999 using parent = SgComplexVal;
13000 using field_type = SgType*;
13001 static constexpr size_t position{2};
13002 static constexpr char const * const name{"precisionType"};
13003 static constexpr char const * const typestr{"SgType*"};
13004 static constexpr bool traverse{false};
13005 static constexpr auto mbr_ptr{&SgComplexVal::p_precisionType};
13006 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13007 using bind = Desc<SgComplexVal, SgType* SgComplexVal::*, &SgComplexVal::p_precisionType>;
13008};
13009template <> struct describe_field_t<SgComplexVal,std::string,&SgComplexVal::p_valueString> {
13010 using parent = SgComplexVal;
13011 using field_type = std::string;
13012 static constexpr size_t position{3};
13013 static constexpr char const * const name{"valueString"};
13014 static constexpr char const * const typestr{"std::string"};
13015 static constexpr bool traverse{false};
13016 static constexpr auto mbr_ptr{&SgComplexVal::p_valueString};
13017 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13018 using bind = Desc<SgComplexVal, std::string SgComplexVal::*, &SgComplexVal::p_valueString>;
13019};
13020template <> struct describe_node_t<SgComplexVal> {
13021 using node = SgComplexVal;
13022 using base = SgValueExp;
13023 static constexpr char const * const name{"ComplexVal"};
13024 static constexpr unsigned long variant{341};
13025 static constexpr bool concrete{true};
13026 using subclasses_t = mp::List<>;
13028};
13029template <> struct node_from_variant_t<341> { using type = SgComplexVal; };
13030
13031// Class: Comprehension
13032template <> struct describe_field_t<SgComprehension,SgExpression*,&SgComprehension::p_target> {
13033 using parent = SgComprehension;
13034 using field_type = SgExpression*;
13035 static constexpr size_t position{0};
13036 static constexpr char const * const name{"target"};
13037 static constexpr char const * const typestr{"SgExpression*"};
13038 static constexpr bool traverse{true};
13039 static constexpr auto mbr_ptr{&SgComprehension::p_target};
13040 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13041 using bind = Desc<SgComprehension, SgExpression* SgComprehension::*, &SgComprehension::p_target>;
13042};
13043template <> struct describe_field_t<SgComprehension,SgExpression*,&SgComprehension::p_iter> {
13044 using parent = SgComprehension;
13045 using field_type = SgExpression*;
13046 static constexpr size_t position{1};
13047 static constexpr char const * const name{"iter"};
13048 static constexpr char const * const typestr{"SgExpression*"};
13049 static constexpr bool traverse{true};
13050 static constexpr auto mbr_ptr{&SgComprehension::p_iter};
13051 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13052 using bind = Desc<SgComprehension, SgExpression* SgComprehension::*, &SgComprehension::p_iter>;
13053};
13054template <> struct describe_field_t<SgComprehension,SgExprListExp*,&SgComprehension::p_filters> {
13055 using parent = SgComprehension;
13056 using field_type = SgExprListExp*;
13057 static constexpr size_t position{2};
13058 static constexpr char const * const name{"filters"};
13059 static constexpr char const * const typestr{"SgExprListExp*"};
13060 static constexpr bool traverse{true};
13061 static constexpr auto mbr_ptr{&SgComprehension::p_filters};
13062 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13063 using bind = Desc<SgComprehension, SgExprListExp* SgComprehension::*, &SgComprehension::p_filters>;
13064};
13066 using node = SgComprehension;
13067 using base = SgExpression;
13068 static constexpr char const * const name{"Comprehension"};
13069 static constexpr unsigned long variant{342};
13070 static constexpr bool concrete{true};
13071 using subclasses_t = mp::List<>;
13073};
13074template <> struct node_from_variant_t<342> { using type = SgComprehension; };
13075
13076// Class: CompoundAssignOp
13078 using node = SgCompoundAssignOp;
13079 using base = SgBinaryOp;
13080 static constexpr char const * const name{"CompoundAssignOp"};
13081 static constexpr unsigned long variant{344};
13082 static constexpr bool concrete{false};
13084 using fields_t = mp::List<>;
13085};
13086template <> struct node_from_variant_t<344> { using type = SgCompoundAssignOp; };
13087
13088// Class: CompoundInitializer
13089template <> struct describe_field_t<SgCompoundInitializer,SgExprListExp*,&SgCompoundInitializer::p_initializers> {
13091 using field_type = SgExprListExp*;
13092 static constexpr size_t position{0};
13093 static constexpr char const * const name{"initializers"};
13094 static constexpr char const * const typestr{"SgExprListExp*"};
13095 static constexpr bool traverse{true};
13096 static constexpr auto mbr_ptr{&SgCompoundInitializer::p_initializers};
13097 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13098 using bind = Desc<SgCompoundInitializer, SgExprListExp* SgCompoundInitializer::*, &SgCompoundInitializer::p_initializers>;
13099};
13100template <> struct describe_field_t<SgCompoundInitializer,SgType*,&SgCompoundInitializer::p_expression_type> {
13102 using field_type = SgType*;
13103 static constexpr size_t position{1};
13104 static constexpr char const * const name{"expression_type"};
13105 static constexpr char const * const typestr{"SgType*"};
13106 static constexpr bool traverse{false};
13107 static constexpr auto mbr_ptr{&SgCompoundInitializer::p_expression_type};
13108 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13109 using bind = Desc<SgCompoundInitializer, SgType* SgCompoundInitializer::*, &SgCompoundInitializer::p_expression_type>;
13110};
13113 using base = SgInitializer;
13114 static constexpr char const * const name{"CompoundInitializer"};
13115 static constexpr unsigned long variant{345};
13116 static constexpr bool concrete{true};
13117 using subclasses_t = mp::List<>;
13119};
13120template <> struct node_from_variant_t<345> { using type = SgCompoundInitializer; };
13121
13122// Class: CompoundLiteralExp
13123template <> struct describe_field_t<SgCompoundLiteralExp,SgVariableSymbol*,&SgCompoundLiteralExp::p_symbol> {
13126 static constexpr size_t position{0};
13127 static constexpr char const * const name{"symbol"};
13128 static constexpr char const * const typestr{"SgVariableSymbol*"};
13129 static constexpr bool traverse{false};
13130 static constexpr auto mbr_ptr{&SgCompoundLiteralExp::p_symbol};
13131 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13132 using bind = Desc<SgCompoundLiteralExp, SgVariableSymbol* SgCompoundLiteralExp::*, &SgCompoundLiteralExp::p_symbol>;
13133};
13135 using node = SgCompoundLiteralExp;
13136 using base = SgExpression;
13137 static constexpr char const * const name{"CompoundLiteralExp"};
13138 static constexpr unsigned long variant{346};
13139 static constexpr bool concrete{true};
13140 using subclasses_t = mp::List<>;
13142};
13143template <> struct node_from_variant_t<346> { using type = SgCompoundLiteralExp; };
13144
13145// Class: ComputedGotoStatement
13146template <> struct describe_field_t<SgComputedGotoStatement,SgExprListExp*,&SgComputedGotoStatement::p_labelList> {
13148 using field_type = SgExprListExp*;
13149 static constexpr size_t position{0};
13150 static constexpr char const * const name{"labelList"};
13151 static constexpr char const * const typestr{"SgExprListExp*"};
13152 static constexpr bool traverse{true};
13153 static constexpr auto mbr_ptr{&SgComputedGotoStatement::p_labelList};
13154 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13155 using bind = Desc<SgComputedGotoStatement, SgExprListExp* SgComputedGotoStatement::*, &SgComputedGotoStatement::p_labelList>;
13156};
13157template <> struct describe_field_t<SgComputedGotoStatement,SgExpression*,&SgComputedGotoStatement::p_label_index> {
13159 using field_type = SgExpression*;
13160 static constexpr size_t position{1};
13161 static constexpr char const * const name{"label_index"};
13162 static constexpr char const * const typestr{"SgExpression*"};
13163 static constexpr bool traverse{true};
13164 static constexpr auto mbr_ptr{&SgComputedGotoStatement::p_label_index};
13165 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13166 using bind = Desc<SgComputedGotoStatement, SgExpression* SgComputedGotoStatement::*, &SgComputedGotoStatement::p_label_index>;
13167};
13170 using base = SgStatement;
13171 static constexpr char const * const name{"ComputedGotoStatement"};
13172 static constexpr unsigned long variant{347};
13173 static constexpr bool concrete{true};
13174 using subclasses_t = mp::List<>;
13176};
13177template <> struct node_from_variant_t<347> { using type = SgComputedGotoStatement; };
13178
13179// Class: ConcatenationOp
13181 using node = SgConcatenationOp;
13182 using base = SgBinaryOp;
13183 static constexpr char const * const name{"ConcatenationOp"};
13184 static constexpr unsigned long variant{348};
13185 static constexpr bool concrete{true};
13186 using subclasses_t = mp::List<>;
13187 using fields_t = mp::List<>;
13188};
13189template <> struct node_from_variant_t<348> { using type = SgConcatenationOp; };
13190
13191// Class: ConditionalExp
13193 using parent = SgConditionalExp;
13194 using field_type = SgExpression*;
13195 static constexpr size_t position{0};
13196 static constexpr char const * const name{"conditional_exp"};
13197 static constexpr char const * const typestr{"SgExpression*"};
13198 static constexpr bool traverse{true};
13199 static constexpr auto mbr_ptr{&SgConditionalExp::p_conditional_exp};
13200 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13201 using bind = Desc<SgConditionalExp, SgExpression* SgConditionalExp::*, &SgConditionalExp::p_conditional_exp>;
13202};
13204 using parent = SgConditionalExp;
13205 using field_type = SgExpression*;
13206 static constexpr size_t position{1};
13207 static constexpr char const * const name{"true_exp"};
13208 static constexpr char const * const typestr{"SgExpression*"};
13209 static constexpr bool traverse{true};
13210 static constexpr auto mbr_ptr{&SgConditionalExp::p_true_exp};
13211 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13212 using bind = Desc<SgConditionalExp, SgExpression* SgConditionalExp::*, &SgConditionalExp::p_true_exp>;
13213};
13215 using parent = SgConditionalExp;
13216 using field_type = SgExpression*;
13217 static constexpr size_t position{2};
13218 static constexpr char const * const name{"false_exp"};
13219 static constexpr char const * const typestr{"SgExpression*"};
13220 static constexpr bool traverse{true};
13221 static constexpr auto mbr_ptr{&SgConditionalExp::p_false_exp};
13222 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13223 using bind = Desc<SgConditionalExp, SgExpression* SgConditionalExp::*, &SgConditionalExp::p_false_exp>;
13224};
13226 using parent = SgConditionalExp;
13227 using field_type = SgType*;
13228 static constexpr size_t position{3};
13229 static constexpr char const * const name{"expression_type"};
13230 static constexpr char const * const typestr{"SgType*"};
13231 static constexpr bool traverse{false};
13232 static constexpr auto mbr_ptr{&SgConditionalExp::p_expression_type};
13233 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13234 using bind = Desc<SgConditionalExp, SgType* SgConditionalExp::*, &SgConditionalExp::p_expression_type>;
13235};
13245template <> struct node_from_variant_t<349> { using type = SgConditionalExp; };
13246
13247// Class: ConjugateOp
13248template <> struct describe_node_t<SgConjugateOp> {
13249 using node = SgConjugateOp;
13250 using base = SgUnaryOp;
13251 static constexpr char const * const name{"ConjugateOp"};
13252 static constexpr unsigned long variant{350};
13253 static constexpr bool concrete{true};
13254 using subclasses_t = mp::List<>;
13255 using fields_t = mp::List<>;
13256};
13257template <> struct node_from_variant_t<350> { using type = SgConjugateOp; };
13258
13259// Class: ConstVolatileModifier
13260template <> struct describe_field_t<SgConstVolatileModifier,SgConstVolatileModifier::cv_modifier_enum,&SgConstVolatileModifier::p_modifier> {
13263 static constexpr size_t position{0};
13264 static constexpr char const * const name{"modifier"};
13265 static constexpr char const * const typestr{"SgConstVolatileModifier::cv_modifier_enum"};
13266 static constexpr bool traverse{false};
13267 static constexpr auto mbr_ptr{&SgConstVolatileModifier::p_modifier};
13268 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13269 using bind = Desc<SgConstVolatileModifier, SgConstVolatileModifier::cv_modifier_enum SgConstVolatileModifier::*, &SgConstVolatileModifier::p_modifier>;
13270};
13273 using base = SgModifier;
13274 static constexpr char const * const name{"ConstVolatileModifier"};
13275 static constexpr unsigned long variant{351};
13276 static constexpr bool concrete{true};
13277 using subclasses_t = mp::List<>;
13279};
13280template <> struct node_from_variant_t<351> { using type = SgConstVolatileModifier; };
13281
13282// Class: ConstructorInitializer
13286 static constexpr size_t position{0};
13287 static constexpr char const * const name{"declaration"};
13288 static constexpr char const * const typestr{"SgMemberFunctionDeclaration*"};
13289 static constexpr bool traverse{false};
13290 static constexpr auto mbr_ptr{&SgConstructorInitializer::p_declaration};
13291 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13292 using bind = Desc<SgConstructorInitializer, SgMemberFunctionDeclaration* SgConstructorInitializer::*, &SgConstructorInitializer::p_declaration>;
13293};
13296 using field_type = SgExprListExp*;
13297 static constexpr size_t position{1};
13298 static constexpr char const * const name{"args"};
13299 static constexpr char const * const typestr{"SgExprListExp*"};
13300 static constexpr bool traverse{true};
13301 static constexpr auto mbr_ptr{&SgConstructorInitializer::p_args};
13302 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13303 using bind = Desc<SgConstructorInitializer, SgExprListExp* SgConstructorInitializer::*, &SgConstructorInitializer::p_args>;
13304};
13307 using field_type = SgType*;
13308 static constexpr size_t position{2};
13309 static constexpr char const * const name{"expression_type"};
13310 static constexpr char const * const typestr{"SgType*"};
13311 static constexpr bool traverse{false};
13312 static constexpr auto mbr_ptr{&SgConstructorInitializer::p_expression_type};
13313 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13314 using bind = Desc<SgConstructorInitializer, SgType* SgConstructorInitializer::*, &SgConstructorInitializer::p_expression_type>;
13315};
13318 using field_type = bool;
13319 static constexpr size_t position{3};
13320 static constexpr char const * const name{"need_name"};
13321 static constexpr char const * const typestr{"bool"};
13322 static constexpr bool traverse{false};
13323 static constexpr auto mbr_ptr{&SgConstructorInitializer::p_need_name};
13324 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13325 using bind = Desc<SgConstructorInitializer, bool SgConstructorInitializer::*, &SgConstructorInitializer::p_need_name>;
13326};
13329 using field_type = bool;
13330 static constexpr size_t position{4};
13331 static constexpr char const * const name{"need_qualifier"};
13332 static constexpr char const * const typestr{"bool"};
13333 static constexpr bool traverse{false};
13334 static constexpr auto mbr_ptr{&SgConstructorInitializer::p_need_qualifier};
13335 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13336 using bind = Desc<SgConstructorInitializer, bool SgConstructorInitializer::*, &SgConstructorInitializer::p_need_qualifier>;
13337};
13340 using field_type = bool;
13341 static constexpr size_t position{5};
13342 static constexpr char const * const name{"need_parenthesis_after_name"};
13343 static constexpr char const * const typestr{"bool"};
13344 static constexpr bool traverse{false};
13345 static constexpr auto mbr_ptr{&SgConstructorInitializer::p_need_parenthesis_after_name};
13346 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13347 using bind = Desc<SgConstructorInitializer, bool SgConstructorInitializer::*, &SgConstructorInitializer::p_need_parenthesis_after_name>;
13348};
13351 using field_type = bool;
13352 static constexpr size_t position{6};
13353 static constexpr char const * const name{"associated_class_unknown"};
13354 static constexpr char const * const typestr{"bool"};
13355 static constexpr bool traverse{false};
13356 static constexpr auto mbr_ptr{&SgConstructorInitializer::p_associated_class_unknown};
13357 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13358 using bind = Desc<SgConstructorInitializer, bool SgConstructorInitializer::*, &SgConstructorInitializer::p_associated_class_unknown>;
13359};
13360template <> struct describe_field_t<SgConstructorInitializer,int,&SgConstructorInitializer::p_name_qualification_length> {
13362 using field_type = int;
13363 static constexpr size_t position{7};
13364 static constexpr char const * const name{"name_qualification_length"};
13365 static constexpr char const * const typestr{"int"};
13366 static constexpr bool traverse{false};
13367 static constexpr auto mbr_ptr{&SgConstructorInitializer::p_name_qualification_length};
13368 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13369 using bind = Desc<SgConstructorInitializer, int SgConstructorInitializer::*, &SgConstructorInitializer::p_name_qualification_length>;
13370};
13371template <> struct describe_field_t<SgConstructorInitializer,bool,&SgConstructorInitializer::p_type_elaboration_required> {
13373 using field_type = bool;
13374 static constexpr size_t position{8};
13375 static constexpr char const * const name{"type_elaboration_required"};
13376 static constexpr char const * const typestr{"bool"};
13377 static constexpr bool traverse{false};
13378 static constexpr auto mbr_ptr{&SgConstructorInitializer::p_type_elaboration_required};
13379 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13380 using bind = Desc<SgConstructorInitializer, bool SgConstructorInitializer::*, &SgConstructorInitializer::p_type_elaboration_required>;
13381};
13382template <> struct describe_field_t<SgConstructorInitializer,bool,&SgConstructorInitializer::p_global_qualification_required> {
13384 using field_type = bool;
13385 static constexpr size_t position{9};
13386 static constexpr char const * const name{"global_qualification_required"};
13387 static constexpr char const * const typestr{"bool"};
13388 static constexpr bool traverse{false};
13389 static constexpr auto mbr_ptr{&SgConstructorInitializer::p_global_qualification_required};
13390 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13391 using bind = Desc<SgConstructorInitializer, bool SgConstructorInitializer::*, &SgConstructorInitializer::p_global_qualification_required>;
13392};
13393template <> struct describe_field_t<SgConstructorInitializer,bool,&SgConstructorInitializer::p_is_used_in_conditional> {
13395 using field_type = bool;
13396 static constexpr size_t position{10};
13397 static constexpr char const * const name{"is_used_in_conditional"};
13398 static constexpr char const * const typestr{"bool"};
13399 static constexpr bool traverse{false};
13400 static constexpr auto mbr_ptr{&SgConstructorInitializer::p_is_used_in_conditional};
13401 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13402 using bind = Desc<SgConstructorInitializer, bool SgConstructorInitializer::*, &SgConstructorInitializer::p_is_used_in_conditional>;
13403};
13406 using base = SgInitializer;
13407 static constexpr char const * const name{"ConstructorInitializer"};
13408 static constexpr unsigned long variant{352};
13409 static constexpr bool concrete{true};
13410 using subclasses_t = mp::List<>;
13412};
13413template <> struct node_from_variant_t<352> { using type = SgConstructorInitializer; };
13414
13415// Class: ContainsStatement
13417 using node = SgContainsStatement;
13419 static constexpr char const * const name{"ContainsStatement"};
13420 static constexpr unsigned long variant{353};
13421 static constexpr bool concrete{true};
13422 using subclasses_t = mp::List<>;
13423 using fields_t = mp::List<>;
13424};
13425template <> struct node_from_variant_t<353> { using type = SgContainsStatement; };
13426
13427// Class: ContinueStmt
13428template <> struct describe_field_t<SgContinueStmt,std::string,&SgContinueStmt::p_do_string_label> {
13429 using parent = SgContinueStmt;
13430 using field_type = std::string;
13431 static constexpr size_t position{0};
13432 static constexpr char const * const name{"do_string_label"};
13433 static constexpr char const * const typestr{"std::string"};
13434 static constexpr bool traverse{false};
13435 static constexpr auto mbr_ptr{&SgContinueStmt::p_do_string_label};
13436 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13437 using bind = Desc<SgContinueStmt, std::string SgContinueStmt::*, &SgContinueStmt::p_do_string_label>;
13438};
13439template <> struct describe_node_t<SgContinueStmt> {
13440 using node = SgContinueStmt;
13441 using base = SgStatement;
13442 static constexpr char const * const name{"ContinueStmt"};
13443 static constexpr unsigned long variant{354};
13444 static constexpr bool concrete{true};
13445 using subclasses_t = mp::List<>;
13447};
13448template <> struct node_from_variant_t<354> { using type = SgContinueStmt; };
13449
13450// Class: CtorInitializerList
13451template <> struct describe_field_t<SgCtorInitializerList,SgInitializedNamePtrList,&SgCtorInitializerList::p_ctors> {
13453 using field_type = SgInitializedNamePtrList;
13454 static constexpr size_t position{0};
13455 static constexpr char const * const name{"ctors"};
13456 static constexpr char const * const typestr{"SgInitializedNamePtrList"};
13457 static constexpr bool traverse{true};
13458 static constexpr auto mbr_ptr{&SgCtorInitializerList::p_ctors};
13459 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13460 using bind = Desc<SgCtorInitializerList, SgInitializedNamePtrList SgCtorInitializerList::*, &SgCtorInitializerList::p_ctors>;
13461};
13465 static constexpr char const * const name{"CtorInitializerList"};
13466 static constexpr unsigned long variant{355};
13467 static constexpr bool concrete{true};
13468 using subclasses_t = mp::List<>;
13470};
13471template <> struct node_from_variant_t<355> { using type = SgCtorInitializerList; };
13472
13473// Class: DataStatementGroup
13474template <> struct describe_field_t<SgDataStatementGroup,SgDataStatementObjectPtrList,&SgDataStatementGroup::p_object_list> {
13476 using field_type = SgDataStatementObjectPtrList;
13477 static constexpr size_t position{0};
13478 static constexpr char const * const name{"object_list"};
13479 static constexpr char const * const typestr{"SgDataStatementObjectPtrList"};
13480 static constexpr bool traverse{false};
13481 static constexpr auto mbr_ptr{&SgDataStatementGroup::p_object_list};
13482 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13483 using bind = Desc<SgDataStatementGroup, SgDataStatementObjectPtrList SgDataStatementGroup::*, &SgDataStatementGroup::p_object_list>;
13484};
13485template <> struct describe_field_t<SgDataStatementGroup,SgDataStatementValuePtrList,&SgDataStatementGroup::p_value_list> {
13487 using field_type = SgDataStatementValuePtrList;
13488 static constexpr size_t position{1};
13489 static constexpr char const * const name{"value_list"};
13490 static constexpr char const * const typestr{"SgDataStatementValuePtrList"};
13491 static constexpr bool traverse{false};
13492 static constexpr auto mbr_ptr{&SgDataStatementGroup::p_value_list};
13493 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13494 using bind = Desc<SgDataStatementGroup, SgDataStatementValuePtrList SgDataStatementGroup::*, &SgDataStatementGroup::p_value_list>;
13495};
13497 using node = SgDataStatementGroup;
13498 using base = SgSupport;
13499 static constexpr char const * const name{"DataStatementGroup"};
13500 static constexpr unsigned long variant{356};
13501 static constexpr bool concrete{true};
13502 using subclasses_t = mp::List<>;
13504};
13505template <> struct node_from_variant_t<356> { using type = SgDataStatementGroup; };
13506
13507// Class: DataStatementObject
13508template <> struct describe_field_t<SgDataStatementObject,SgExprListExp*,&SgDataStatementObject::p_variableReference_list> {
13510 using field_type = SgExprListExp*;
13511 static constexpr size_t position{0};
13512 static constexpr char const * const name{"variableReference_list"};
13513 static constexpr char const * const typestr{"SgExprListExp*"};
13514 static constexpr bool traverse{false};
13515 static constexpr auto mbr_ptr{&SgDataStatementObject::p_variableReference_list};
13516 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13517 using bind = Desc<SgDataStatementObject, SgExprListExp* SgDataStatementObject::*, &SgDataStatementObject::p_variableReference_list>;
13518};
13521 using base = SgSupport;
13522 static constexpr char const * const name{"DataStatementObject"};
13523 static constexpr unsigned long variant{357};
13524 static constexpr bool concrete{true};
13525 using subclasses_t = mp::List<>;
13527};
13528template <> struct node_from_variant_t<357> { using type = SgDataStatementObject; };
13529
13530// Class: DataStatementValue
13531template <> struct describe_field_t<SgDataStatementValue,SgDataStatementValue::data_statement_value_enum,&SgDataStatementValue::p_data_initialization_format> {
13534 static constexpr size_t position{0};
13535 static constexpr char const * const name{"data_initialization_format"};
13536 static constexpr char const * const typestr{"SgDataStatementValue::data_statement_value_enum"};
13537 static constexpr bool traverse{false};
13538 static constexpr auto mbr_ptr{&SgDataStatementValue::p_data_initialization_format};
13539 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13540 using bind = Desc<SgDataStatementValue, SgDataStatementValue::data_statement_value_enum SgDataStatementValue::*, &SgDataStatementValue::p_data_initialization_format>;
13541};
13542template <> struct describe_field_t<SgDataStatementValue,SgExprListExp*,&SgDataStatementValue::p_initializer_list> {
13544 using field_type = SgExprListExp*;
13545 static constexpr size_t position{1};
13546 static constexpr char const * const name{"initializer_list"};
13547 static constexpr char const * const typestr{"SgExprListExp*"};
13548 static constexpr bool traverse{false};
13549 static constexpr auto mbr_ptr{&SgDataStatementValue::p_initializer_list};
13550 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13551 using bind = Desc<SgDataStatementValue, SgExprListExp* SgDataStatementValue::*, &SgDataStatementValue::p_initializer_list>;
13552};
13553template <> struct describe_field_t<SgDataStatementValue,SgExpression*,&SgDataStatementValue::p_repeat_expression> {
13555 using field_type = SgExpression*;
13556 static constexpr size_t position{2};
13557 static constexpr char const * const name{"repeat_expression"};
13558 static constexpr char const * const typestr{"SgExpression*"};
13559 static constexpr bool traverse{false};
13560 static constexpr auto mbr_ptr{&SgDataStatementValue::p_repeat_expression};
13561 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13562 using bind = Desc<SgDataStatementValue, SgExpression* SgDataStatementValue::*, &SgDataStatementValue::p_repeat_expression>;
13563};
13564template <> struct describe_field_t<SgDataStatementValue,SgExpression*,&SgDataStatementValue::p_constant_expression> {
13566 using field_type = SgExpression*;
13567 static constexpr size_t position{3};
13568 static constexpr char const * const name{"constant_expression"};
13569 static constexpr char const * const typestr{"SgExpression*"};
13570 static constexpr bool traverse{false};
13571 static constexpr auto mbr_ptr{&SgDataStatementValue::p_constant_expression};
13572 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13573 using bind = Desc<SgDataStatementValue, SgExpression* SgDataStatementValue::*, &SgDataStatementValue::p_constant_expression>;
13574};
13584template <> struct node_from_variant_t<358> { using type = SgDataStatementValue; };
13585
13586// Class: DeadIfDirectiveStatement
13590 static constexpr char const * const name{"DeadIfDirectiveStatement"};
13591 static constexpr unsigned long variant{359};
13592 static constexpr bool concrete{true};
13593 using subclasses_t = mp::List<>;
13594 using fields_t = mp::List<>;
13595};
13596template <> struct node_from_variant_t<359> { using type = SgDeadIfDirectiveStatement; };
13597
13598// Class: DeallocateStatement
13599template <> struct describe_field_t<SgDeallocateStatement,SgExprListExp*,&SgDeallocateStatement::p_expr_list> {
13601 using field_type = SgExprListExp*;
13602 static constexpr size_t position{0};
13603 static constexpr char const * const name{"expr_list"};
13604 static constexpr char const * const typestr{"SgExprListExp*"};
13605 static constexpr bool traverse{true};
13606 static constexpr auto mbr_ptr{&SgDeallocateStatement::p_expr_list};
13607 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13608 using bind = Desc<SgDeallocateStatement, SgExprListExp* SgDeallocateStatement::*, &SgDeallocateStatement::p_expr_list>;
13609};
13610template <> struct describe_field_t<SgDeallocateStatement,SgExpression*,&SgDeallocateStatement::p_stat_expression> {
13612 using field_type = SgExpression*;
13613 static constexpr size_t position{1};
13614 static constexpr char const * const name{"stat_expression"};
13615 static constexpr char const * const typestr{"SgExpression*"};
13616 static constexpr bool traverse{true};
13617 static constexpr auto mbr_ptr{&SgDeallocateStatement::p_stat_expression};
13618 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13619 using bind = Desc<SgDeallocateStatement, SgExpression* SgDeallocateStatement::*, &SgDeallocateStatement::p_stat_expression>;
13620};
13621template <> struct describe_field_t<SgDeallocateStatement,SgExpression*,&SgDeallocateStatement::p_errmsg_expression> {
13623 using field_type = SgExpression*;
13624 static constexpr size_t position{2};
13625 static constexpr char const * const name{"errmsg_expression"};
13626 static constexpr char const * const typestr{"SgExpression*"};
13627 static constexpr bool traverse{true};
13628 static constexpr auto mbr_ptr{&SgDeallocateStatement::p_errmsg_expression};
13629 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13630 using bind = Desc<SgDeallocateStatement, SgExpression* SgDeallocateStatement::*, &SgDeallocateStatement::p_errmsg_expression>;
13631};
13634 using base = SgStatement;
13635 static constexpr char const * const name{"DeallocateStatement"};
13636 static constexpr unsigned long variant{360};
13637 static constexpr bool concrete{true};
13638 using subclasses_t = mp::List<>;
13640};
13641template <> struct node_from_variant_t<360> { using type = SgDeallocateStatement; };
13642
13643// Class: DeclarationModifier
13646 using field_type = SgBitVector;
13647 static constexpr size_t position{0};
13648 static constexpr char const * const name{"modifierVector"};
13649 static constexpr char const * const typestr{"SgBitVector"};
13650 static constexpr bool traverse{false};
13651 static constexpr auto mbr_ptr{&SgDeclarationModifier::p_modifierVector};
13652 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13653 using bind = Desc<SgDeclarationModifier, SgBitVector SgDeclarationModifier::*, &SgDeclarationModifier::p_modifierVector>;
13654};
13657 using field_type = SgTypeModifier;
13658 static constexpr size_t position{1};
13659 static constexpr char const * const name{"typeModifier"};
13660 static constexpr char const * const typestr{"SgTypeModifier"};
13661 static constexpr bool traverse{false};
13662 static constexpr auto mbr_ptr{&SgDeclarationModifier::p_typeModifier};
13663 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13664 using bind = Desc<SgDeclarationModifier, SgTypeModifier SgDeclarationModifier::*, &SgDeclarationModifier::p_typeModifier>;
13665};
13669 static constexpr size_t position{2};
13670 static constexpr char const * const name{"accessModifier"};
13671 static constexpr char const * const typestr{"SgAccessModifier"};
13672 static constexpr bool traverse{false};
13673 static constexpr auto mbr_ptr{&SgDeclarationModifier::p_accessModifier};
13674 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13675 using bind = Desc<SgDeclarationModifier, SgAccessModifier SgDeclarationModifier::*, &SgDeclarationModifier::p_accessModifier>;
13676};
13680 static constexpr size_t position{3};
13681 static constexpr char const * const name{"storageModifier"};
13682 static constexpr char const * const typestr{"SgStorageModifier"};
13683 static constexpr bool traverse{false};
13684 static constexpr auto mbr_ptr{&SgDeclarationModifier::p_storageModifier};
13685 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13686 using bind = Desc<SgDeclarationModifier, SgStorageModifier SgDeclarationModifier::*, &SgDeclarationModifier::p_storageModifier>;
13687};
13688template <> struct describe_field_t<SgDeclarationModifier,std::string,&SgDeclarationModifier::p_gnu_attribute_section_name> {
13690 using field_type = std::string;
13691 static constexpr size_t position{4};
13692 static constexpr char const * const name{"gnu_attribute_section_name"};
13693 static constexpr char const * const typestr{"std::string"};
13694 static constexpr bool traverse{false};
13695 static constexpr auto mbr_ptr{&SgDeclarationModifier::p_gnu_attribute_section_name};
13696 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13697 using bind = Desc<SgDeclarationModifier, std::string SgDeclarationModifier::*, &SgDeclarationModifier::p_gnu_attribute_section_name>;
13698};
13699template <> struct describe_field_t<SgDeclarationModifier,SgDeclarationModifier::gnu_declaration_visability_enum,&SgDeclarationModifier::p_gnu_attribute_visability> {
13702 static constexpr size_t position{5};
13703 static constexpr char const * const name{"gnu_attribute_visability"};
13704 static constexpr char const * const typestr{"SgDeclarationModifier::gnu_declaration_visability_enum"};
13705 static constexpr bool traverse{false};
13706 static constexpr auto mbr_ptr{&SgDeclarationModifier::p_gnu_attribute_visability};
13707 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13708 using bind = Desc<SgDeclarationModifier, SgDeclarationModifier::gnu_declaration_visability_enum SgDeclarationModifier::*, &SgDeclarationModifier::p_gnu_attribute_visability>;
13709};
13710template <> struct describe_field_t<SgDeclarationModifier,std::string,&SgDeclarationModifier::p_microsoft_uuid_string> {
13712 using field_type = std::string;
13713 static constexpr size_t position{6};
13714 static constexpr char const * const name{"microsoft_uuid_string"};
13715 static constexpr char const * const typestr{"std::string"};
13716 static constexpr bool traverse{false};
13717 static constexpr auto mbr_ptr{&SgDeclarationModifier::p_microsoft_uuid_string};
13718 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13719 using bind = Desc<SgDeclarationModifier, std::string SgDeclarationModifier::*, &SgDeclarationModifier::p_microsoft_uuid_string>;
13720};
13721template <> struct describe_field_t<SgDeclarationModifier,std::string,&SgDeclarationModifier::p_microsoft_property_get_function_name> {
13723 using field_type = std::string;
13724 static constexpr size_t position{7};
13725 static constexpr char const * const name{"microsoft_property_get_function_name"};
13726 static constexpr char const * const typestr{"std::string"};
13727 static constexpr bool traverse{false};
13728 static constexpr auto mbr_ptr{&SgDeclarationModifier::p_microsoft_property_get_function_name};
13729 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13730 using bind = Desc<SgDeclarationModifier, std::string SgDeclarationModifier::*, &SgDeclarationModifier::p_microsoft_property_get_function_name>;
13731};
13732template <> struct describe_field_t<SgDeclarationModifier,std::string,&SgDeclarationModifier::p_microsoft_property_put_function_name> {
13734 using field_type = std::string;
13735 static constexpr size_t position{8};
13736 static constexpr char const * const name{"microsoft_property_put_function_name"};
13737 static constexpr char const * const typestr{"std::string"};
13738 static constexpr bool traverse{false};
13739 static constexpr auto mbr_ptr{&SgDeclarationModifier::p_microsoft_property_put_function_name};
13740 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13741 using bind = Desc<SgDeclarationModifier, std::string SgDeclarationModifier::*, &SgDeclarationModifier::p_microsoft_property_put_function_name>;
13742};
13752template <> struct node_from_variant_t<361> { using type = SgDeclarationModifier; };
13753
13754// Class: DeclarationScope
13756 using node = SgDeclarationScope;
13757 using base = SgScopeStatement;
13758 static constexpr char const * const name{"DeclarationScope"};
13759 static constexpr unsigned long variant{362};
13760 static constexpr bool concrete{true};
13761 using subclasses_t = mp::List<>;
13762 using fields_t = mp::List<>;
13763};
13764template <> struct node_from_variant_t<362> { using type = SgDeclarationScope; };
13765
13766// Class: DeclarationStatement
13769 using field_type = unsigned int;
13770 static constexpr size_t position{0};
13771 static constexpr char const * const name{"decl_attributes"};
13772 static constexpr char const * const typestr{"unsigned int"};
13773 static constexpr bool traverse{false};
13774 static constexpr auto mbr_ptr{&SgDeclarationStatement::p_decl_attributes};
13775 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13776 using bind = Desc<SgDeclarationStatement, unsigned int SgDeclarationStatement::*, &SgDeclarationStatement::p_decl_attributes>;
13777};
13780 using field_type = std::string;
13781 static constexpr size_t position{1};
13782 static constexpr char const * const name{"linkage"};
13783 static constexpr char const * const typestr{"std::string"};
13784 static constexpr bool traverse{false};
13785 static constexpr auto mbr_ptr{&SgDeclarationStatement::p_linkage};
13786 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13787 using bind = Desc<SgDeclarationStatement, std::string SgDeclarationStatement::*, &SgDeclarationStatement::p_linkage>;
13788};
13792 static constexpr size_t position{2};
13793 static constexpr char const * const name{"declarationModifier"};
13794 static constexpr char const * const typestr{"SgDeclarationModifier"};
13795 static constexpr bool traverse{false};
13796 static constexpr auto mbr_ptr{&SgDeclarationStatement::p_declarationModifier};
13797 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13798 using bind = Desc<SgDeclarationStatement, SgDeclarationModifier SgDeclarationStatement::*, &SgDeclarationStatement::p_declarationModifier>;
13799};
13802 using field_type = bool;
13803 static constexpr size_t position{3};
13804 static constexpr char const * const name{"nameOnly"};
13805 static constexpr char const * const typestr{"bool"};
13806 static constexpr bool traverse{false};
13807 static constexpr auto mbr_ptr{&SgDeclarationStatement::p_nameOnly};
13808 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13809 using bind = Desc<SgDeclarationStatement, bool SgDeclarationStatement::*, &SgDeclarationStatement::p_nameOnly>;
13810};
13813 using field_type = bool;
13814 static constexpr size_t position{4};
13815 static constexpr char const * const name{"forward"};
13816 static constexpr char const * const typestr{"bool"};
13817 static constexpr bool traverse{false};
13818 static constexpr auto mbr_ptr{&SgDeclarationStatement::p_forward};
13819 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13820 using bind = Desc<SgDeclarationStatement, bool SgDeclarationStatement::*, &SgDeclarationStatement::p_forward>;
13821};
13824 using field_type = bool;
13825 static constexpr size_t position{5};
13826 static constexpr char const * const name{"externBrace"};
13827 static constexpr char const * const typestr{"bool"};
13828 static constexpr bool traverse{false};
13829 static constexpr auto mbr_ptr{&SgDeclarationStatement::p_externBrace};
13830 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13831 using bind = Desc<SgDeclarationStatement, bool SgDeclarationStatement::*, &SgDeclarationStatement::p_externBrace>;
13832};
13835 using field_type = bool;
13836 static constexpr size_t position{6};
13837 static constexpr char const * const name{"skipElaborateType"};
13838 static constexpr char const * const typestr{"bool"};
13839 static constexpr bool traverse{false};
13840 static constexpr auto mbr_ptr{&SgDeclarationStatement::p_skipElaborateType};
13841 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13842 using bind = Desc<SgDeclarationStatement, bool SgDeclarationStatement::*, &SgDeclarationStatement::p_skipElaborateType>;
13843};
13847 static constexpr size_t position{7};
13848 static constexpr char const * const name{"definingDeclaration"};
13849 static constexpr char const * const typestr{"SgDeclarationStatement*"};
13850 static constexpr bool traverse{false};
13851 static constexpr auto mbr_ptr{&SgDeclarationStatement::p_definingDeclaration};
13852 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13853 using bind = Desc<SgDeclarationStatement, SgDeclarationStatement* SgDeclarationStatement::*, &SgDeclarationStatement::p_definingDeclaration>;
13854};
13858 static constexpr size_t position{8};
13859 static constexpr char const * const name{"firstNondefiningDeclaration"};
13860 static constexpr char const * const typestr{"SgDeclarationStatement*"};
13861 static constexpr bool traverse{false};
13862 static constexpr auto mbr_ptr{&SgDeclarationStatement::p_firstNondefiningDeclaration};
13863 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13864 using bind = Desc<SgDeclarationStatement, SgDeclarationStatement* SgDeclarationStatement::*, &SgDeclarationStatement::p_firstNondefiningDeclaration>;
13865};
13866template <> struct describe_field_t<SgDeclarationStatement,SgQualifiedNamePtrList,&SgDeclarationStatement::p_qualifiedNameList> {
13868 using field_type = SgQualifiedNamePtrList;
13869 static constexpr size_t position{9};
13870 static constexpr char const * const name{"qualifiedNameList"};
13871 static constexpr char const * const typestr{"SgQualifiedNamePtrList"};
13872 static constexpr bool traverse{false};
13873 static constexpr auto mbr_ptr{&SgDeclarationStatement::p_qualifiedNameList};
13874 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13875 using bind = Desc<SgDeclarationStatement, SgQualifiedNamePtrList SgDeclarationStatement::*, &SgDeclarationStatement::p_qualifiedNameList>;
13876};
13877template <> struct describe_field_t<SgDeclarationStatement,std::string,&SgDeclarationStatement::p_binding_label> {
13879 using field_type = std::string;
13880 static constexpr size_t position{10};
13881 static constexpr char const * const name{"binding_label"};
13882 static constexpr char const * const typestr{"std::string"};
13883 static constexpr bool traverse{false};
13884 static constexpr auto mbr_ptr{&SgDeclarationStatement::p_binding_label};
13885 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13886 using bind = Desc<SgDeclarationStatement, std::string SgDeclarationStatement::*, &SgDeclarationStatement::p_binding_label>;
13887};
13888template <> struct describe_field_t<SgDeclarationStatement,SgDeclarationScope*,&SgDeclarationStatement::p_declarationScope> {
13891 static constexpr size_t position{11};
13892 static constexpr char const * const name{"declarationScope"};
13893 static constexpr char const * const typestr{"SgDeclarationScope*"};
13894 static constexpr bool traverse{false};
13895 static constexpr auto mbr_ptr{&SgDeclarationStatement::p_declarationScope};
13896 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13897 using bind = Desc<SgDeclarationStatement, SgDeclarationScope* SgDeclarationStatement::*, &SgDeclarationStatement::p_declarationScope>;
13898};
13899template <> struct describe_field_t<SgDeclarationStatement,bool,&SgDeclarationStatement::p_unparse_template_ast> {
13901 using field_type = bool;
13902 static constexpr size_t position{12};
13903 static constexpr char const * const name{"unparse_template_ast"};
13904 static constexpr char const * const typestr{"bool"};
13905 static constexpr bool traverse{false};
13906 static constexpr auto mbr_ptr{&SgDeclarationStatement::p_unparse_template_ast};
13907 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13908 using bind = Desc<SgDeclarationStatement, bool SgDeclarationStatement::*, &SgDeclarationStatement::p_unparse_template_ast>;
13909};
13910template <> struct describe_field_t<SgDeclarationStatement,SgExprListExp*,&SgDeclarationStatement::p_adaAspects> {
13912 using field_type = SgExprListExp*;
13913 static constexpr size_t position{13};
13914 static constexpr char const * const name{"adaAspects"};
13915 static constexpr char const * const typestr{"SgExprListExp*"};
13916 static constexpr bool traverse{false};
13917 static constexpr auto mbr_ptr{&SgDeclarationStatement::p_adaAspects};
13918 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13919 using bind = Desc<SgDeclarationStatement, SgExprListExp* SgDeclarationStatement::*, &SgDeclarationStatement::p_adaAspects>;
13920};
13923 using base = SgStatement;
13924 static constexpr char const * const name{"DeclarationStatement"};
13925 static constexpr unsigned long variant{363};
13926 static constexpr bool concrete{false};
13927 using subclasses_t = mp::List<SgFunctionParameterList, SgVariableDeclaration, SgVariableDefinition, SgClinkageDeclarationStatement, SgEnumDeclaration, SgAsmStmt, SgAttributeSpecificationStatement, SgFormatStatement, SgTemplateDeclaration, SgTemplateInstantiationDirectiveStatement, SgUseStatement, SgParameterStatement, SgNamespaceDeclarationStatement, SgEquivalenceStatement, SgInterfaceStatement, SgNamespaceAliasDeclarationStatement, SgCommonBlock, SgTypedefDeclaration, SgStatementFunctionStatement, SgCtorInitializerList, SgPragmaDeclaration, SgUsingDirectiveStatement, SgClassDeclaration, SgImplicitStatement, SgUsingDeclarationStatement, SgNamelistStatement, SgImportStatement, SgFunctionDeclaration, SgContainsStatement, SgC_PreprocessorDirectiveStatement, SgOmpThreadprivateStatement, SgFortranIncludeLine, SgJavaImportStatement, SgJavaPackageStatement, SgStmtDeclarationStatement, SgStaticAssertionDeclaration, SgOmpDeclareSimdStatement, SgMicrosoftAttributeDeclaration, SgJovialCompoolStatement, SgJovialDirectiveStatement, SgJovialDefineDeclaration, SgJovialLabelDeclaration, SgJovialOverlayDeclaration, SgNonrealDecl, SgEmptyDeclaration, SgAdaPackageBodyDecl, SgAdaPackageSpecDecl, SgAdaRenamingDecl, SgAdaTaskSpecDecl, SgAdaTaskBodyDecl, SgAdaTaskTypeDecl, SgAdaProtectedSpecDecl, SgAdaProtectedBodyDecl, SgAdaProtectedTypeDecl, SgAdaRepresentationClause, SgAdaComponentClause, SgAdaAttributeClause, SgAdaEnumRepresentationClause, SgAdaGenericDecl, SgAdaFormalTypeDecl, SgAdaDiscriminatedTypeDecl, SgAdaGenericInstanceDecl, SgAdaFormalPackageDecl, SgAdaParameterList, SgAdaVariantDecl>;
13929};
13930template <> struct node_from_variant_t<363> { using type = SgDeclarationStatement; };
13931
13932// Class: DeclType
13933template <> struct describe_field_t<SgDeclType,SgExpression*,&SgDeclType::p_base_expression> {
13934 using parent = SgDeclType;
13935 using field_type = SgExpression*;
13936 static constexpr size_t position{0};
13937 static constexpr char const * const name{"base_expression"};
13938 static constexpr char const * const typestr{"SgExpression*"};
13939 static constexpr bool traverse{false};
13940 static constexpr auto mbr_ptr{&SgDeclType::p_base_expression};
13941 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13942 using bind = Desc<SgDeclType, SgExpression* SgDeclType::*, &SgDeclType::p_base_expression>;
13943};
13944template <> struct describe_field_t<SgDeclType,SgType*,&SgDeclType::p_base_type> {
13945 using parent = SgDeclType;
13946 using field_type = SgType*;
13947 static constexpr size_t position{1};
13948 static constexpr char const * const name{"base_type"};
13949 static constexpr char const * const typestr{"SgType*"};
13950 static constexpr bool traverse{false};
13951 static constexpr auto mbr_ptr{&SgDeclType::p_base_type};
13952 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13953 using bind = Desc<SgDeclType, SgType* SgDeclType::*, &SgDeclType::p_base_type>;
13954};
13955template <> struct describe_node_t<SgDeclType> {
13956 using node = SgDeclType;
13957 using base = SgType;
13958 static constexpr char const * const name{"DeclType"};
13959 static constexpr unsigned long variant{364};
13960 static constexpr bool concrete{true};
13961 using subclasses_t = mp::List<>;
13963};
13964template <> struct node_from_variant_t<364> { using type = SgDeclType; };
13965
13966// Class: DefaultOptionStmt
13969 using field_type = SgStatement*;
13970 static constexpr size_t position{0};
13971 static constexpr char const * const name{"body"};
13972 static constexpr char const * const typestr{"SgStatement*"};
13973 static constexpr bool traverse{true};
13974 static constexpr auto mbr_ptr{&SgDefaultOptionStmt::p_body};
13975 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13976 using bind = Desc<SgDefaultOptionStmt, SgStatement* SgDefaultOptionStmt::*, &SgDefaultOptionStmt::p_body>;
13977};
13978template <> struct describe_field_t<SgDefaultOptionStmt,std::string,&SgDefaultOptionStmt::p_default_construct_name> {
13980 using field_type = std::string;
13981 static constexpr size_t position{1};
13982 static constexpr char const * const name{"default_construct_name"};
13983 static constexpr char const * const typestr{"std::string"};
13984 static constexpr bool traverse{false};
13985 static constexpr auto mbr_ptr{&SgDefaultOptionStmt::p_default_construct_name};
13986 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13987 using bind = Desc<SgDefaultOptionStmt, std::string SgDefaultOptionStmt::*, &SgDefaultOptionStmt::p_default_construct_name>;
13988};
13989template <> struct describe_field_t<SgDefaultOptionStmt,bool,&SgDefaultOptionStmt::p_has_fall_through> {
13991 using field_type = bool;
13992 static constexpr size_t position{2};
13993 static constexpr char const * const name{"has_fall_through"};
13994 static constexpr char const * const typestr{"bool"};
13995 static constexpr bool traverse{false};
13996 static constexpr auto mbr_ptr{&SgDefaultOptionStmt::p_has_fall_through};
13997 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
13998 using bind = Desc<SgDefaultOptionStmt, bool SgDefaultOptionStmt::*, &SgDefaultOptionStmt::p_has_fall_through>;
13999};
14001 using node = SgDefaultOptionStmt;
14002 using base = SgStatement;
14003 static constexpr char const * const name{"DefaultOptionStmt"};
14004 static constexpr unsigned long variant{365};
14005 static constexpr bool concrete{true};
14006 using subclasses_t = mp::List<>;
14008};
14009template <> struct node_from_variant_t<365> { using type = SgDefaultOptionStmt; };
14010
14011// Class: DefaultSymbol
14012template <> struct describe_field_t<SgDefaultSymbol,SgType*,&SgDefaultSymbol::p_type> {
14013 using parent = SgDefaultSymbol;
14014 using field_type = SgType*;
14015 static constexpr size_t position{0};
14016 static constexpr char const * const name{"type"};
14017 static constexpr char const * const typestr{"SgType*"};
14018 static constexpr bool traverse{false};
14019 static constexpr auto mbr_ptr{&SgDefaultSymbol::p_type};
14020 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14021 using bind = Desc<SgDefaultSymbol, SgType* SgDefaultSymbol::*, &SgDefaultSymbol::p_type>;
14022};
14024 using node = SgDefaultSymbol;
14025 using base = SgSymbol;
14026 static constexpr char const * const name{"DefaultSymbol"};
14027 static constexpr unsigned long variant{366};
14028 static constexpr bool concrete{true};
14029 using subclasses_t = mp::List<>;
14031};
14032template <> struct node_from_variant_t<366> { using type = SgDefaultSymbol; };
14033
14034// Class: DefineDirectiveStatement
14038 static constexpr char const * const name{"DefineDirectiveStatement"};
14039 static constexpr unsigned long variant{367};
14040 static constexpr bool concrete{true};
14041 using subclasses_t = mp::List<>;
14042 using fields_t = mp::List<>;
14043};
14044template <> struct node_from_variant_t<367> { using type = SgDefineDirectiveStatement; };
14045
14046// Class: DeleteExp
14048 using parent = SgDeleteExp;
14049 using field_type = SgExpression*;
14050 static constexpr size_t position{0};
14051 static constexpr char const * const name{"variable"};
14052 static constexpr char const * const typestr{"SgExpression*"};
14053 static constexpr bool traverse{true};
14054 static constexpr auto mbr_ptr{&SgDeleteExp::p_variable};
14055 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14056 using bind = Desc<SgDeleteExp, SgExpression* SgDeleteExp::*, &SgDeleteExp::p_variable>;
14057};
14059 using parent = SgDeleteExp;
14060 using field_type = short;
14061 static constexpr size_t position{1};
14062 static constexpr char const * const name{"is_array"};
14063 static constexpr char const * const typestr{"short"};
14064 static constexpr bool traverse{false};
14065 static constexpr auto mbr_ptr{&SgDeleteExp::p_is_array};
14066 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14067 using bind = Desc<SgDeleteExp, short SgDeleteExp::*, &SgDeleteExp::p_is_array>;
14068};
14070 using parent = SgDeleteExp;
14071 using field_type = short;
14072 static constexpr size_t position{2};
14073 static constexpr char const * const name{"need_global_specifier"};
14074 static constexpr char const * const typestr{"short"};
14075 static constexpr bool traverse{false};
14076 static constexpr auto mbr_ptr{&SgDeleteExp::p_need_global_specifier};
14077 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14078 using bind = Desc<SgDeleteExp, short SgDeleteExp::*, &SgDeleteExp::p_need_global_specifier>;
14079};
14080template <> struct describe_field_t<SgDeleteExp,SgFunctionDeclaration*,&SgDeleteExp::p_deleteOperatorDeclaration> {
14081 using parent = SgDeleteExp;
14083 static constexpr size_t position{3};
14084 static constexpr char const * const name{"deleteOperatorDeclaration"};
14085 static constexpr char const * const typestr{"SgFunctionDeclaration*"};
14086 static constexpr bool traverse{false};
14087 static constexpr auto mbr_ptr{&SgDeleteExp::p_deleteOperatorDeclaration};
14088 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14089 using bind = Desc<SgDeleteExp, SgFunctionDeclaration* SgDeleteExp::*, &SgDeleteExp::p_deleteOperatorDeclaration>;
14090};
14091template <> struct describe_node_t<SgDeleteExp> {
14092 using node = SgDeleteExp;
14093 using base = SgExpression;
14094 static constexpr char const * const name{"DeleteExp"};
14095 static constexpr unsigned long variant{368};
14096 static constexpr bool concrete{true};
14097 using subclasses_t = mp::List<>;
14099};
14100template <> struct node_from_variant_t<368> { using type = SgDeleteExp; };
14101
14102// Class: DerivedTypeStatement
14103template <> struct describe_field_t<SgDerivedTypeStatement,SgLabelRefExp*,&SgDerivedTypeStatement::p_end_numeric_label> {
14105 using field_type = SgLabelRefExp*;
14106 static constexpr size_t position{0};
14107 static constexpr char const * const name{"end_numeric_label"};
14108 static constexpr char const * const typestr{"SgLabelRefExp*"};
14109 static constexpr bool traverse{false};
14110 static constexpr auto mbr_ptr{&SgDerivedTypeStatement::p_end_numeric_label};
14111 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14112 using bind = Desc<SgDerivedTypeStatement, SgLabelRefExp* SgDerivedTypeStatement::*, &SgDerivedTypeStatement::p_end_numeric_label>;
14113};
14116 using base = SgClassDeclaration;
14117 static constexpr char const * const name{"DerivedTypeStatement"};
14118 static constexpr unsigned long variant{369};
14119 static constexpr bool concrete{true};
14120 using subclasses_t = mp::List<>;
14122};
14123template <> struct node_from_variant_t<369> { using type = SgDerivedTypeStatement; };
14124
14125// Class: DesignatedInitializer
14126template <> struct describe_field_t<SgDesignatedInitializer,SgExprListExp*,&SgDesignatedInitializer::p_designatorList> {
14128 using field_type = SgExprListExp*;
14129 static constexpr size_t position{0};
14130 static constexpr char const * const name{"designatorList"};
14131 static constexpr char const * const typestr{"SgExprListExp*"};
14132 static constexpr bool traverse{true};
14133 static constexpr auto mbr_ptr{&SgDesignatedInitializer::p_designatorList};
14134 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14135 using bind = Desc<SgDesignatedInitializer, SgExprListExp* SgDesignatedInitializer::*, &SgDesignatedInitializer::p_designatorList>;
14136};
14137template <> struct describe_field_t<SgDesignatedInitializer,SgInitializer*,&SgDesignatedInitializer::p_memberInit> {
14139 using field_type = SgInitializer*;
14140 static constexpr size_t position{1};
14141 static constexpr char const * const name{"memberInit"};
14142 static constexpr char const * const typestr{"SgInitializer*"};
14143 static constexpr bool traverse{true};
14144 static constexpr auto mbr_ptr{&SgDesignatedInitializer::p_memberInit};
14145 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14146 using bind = Desc<SgDesignatedInitializer, SgInitializer* SgDesignatedInitializer::*, &SgDesignatedInitializer::p_memberInit>;
14147};
14150 using base = SgInitializer;
14151 static constexpr char const * const name{"DesignatedInitializer"};
14152 static constexpr unsigned long variant{370};
14153 static constexpr bool concrete{true};
14154 using subclasses_t = mp::List<>;
14156};
14157template <> struct node_from_variant_t<370> { using type = SgDesignatedInitializer; };
14158
14159// Class: DictionaryComprehension
14160template <> struct describe_field_t<SgDictionaryComprehension,SgKeyDatumPair*,&SgDictionaryComprehension::p_element> {
14162 using field_type = SgKeyDatumPair*;
14163 static constexpr size_t position{0};
14164 static constexpr char const * const name{"element"};
14165 static constexpr char const * const typestr{"SgKeyDatumPair*"};
14166 static constexpr bool traverse{true};
14167 static constexpr auto mbr_ptr{&SgDictionaryComprehension::p_element};
14168 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14169 using bind = Desc<SgDictionaryComprehension, SgKeyDatumPair* SgDictionaryComprehension::*, &SgDictionaryComprehension::p_element>;
14170};
14171template <> struct describe_field_t<SgDictionaryComprehension,SgExprListExp*,&SgDictionaryComprehension::p_generators> {
14173 using field_type = SgExprListExp*;
14174 static constexpr size_t position{1};
14175 static constexpr char const * const name{"generators"};
14176 static constexpr char const * const typestr{"SgExprListExp*"};
14177 static constexpr bool traverse{true};
14178 static constexpr auto mbr_ptr{&SgDictionaryComprehension::p_generators};
14179 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14180 using bind = Desc<SgDictionaryComprehension, SgExprListExp* SgDictionaryComprehension::*, &SgDictionaryComprehension::p_generators>;
14181};
14184 using base = SgExpression;
14185 static constexpr char const * const name{"DictionaryComprehension"};
14186 static constexpr unsigned long variant{371};
14187 static constexpr bool concrete{true};
14188 using subclasses_t = mp::List<>;
14190};
14191template <> struct node_from_variant_t<371> { using type = SgDictionaryComprehension; };
14192
14193// Class: DictionaryExp
14194template <> struct describe_field_t<SgDictionaryExp,SgKeyDatumPairPtrList,&SgDictionaryExp::p_key_datum_pairs> {
14195 using parent = SgDictionaryExp;
14196 using field_type = SgKeyDatumPairPtrList;
14197 static constexpr size_t position{0};
14198 static constexpr char const * const name{"key_datum_pairs"};
14199 static constexpr char const * const typestr{"SgKeyDatumPairPtrList"};
14200 static constexpr bool traverse{true};
14201 static constexpr auto mbr_ptr{&SgDictionaryExp::p_key_datum_pairs};
14202 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14203 using bind = Desc<SgDictionaryExp, SgKeyDatumPairPtrList SgDictionaryExp::*, &SgDictionaryExp::p_key_datum_pairs>;
14204};
14206 using node = SgDictionaryExp;
14207 using base = SgExpression;
14208 static constexpr char const * const name{"DictionaryExp"};
14209 static constexpr unsigned long variant{372};
14210 static constexpr bool concrete{true};
14211 using subclasses_t = mp::List<>;
14213};
14214template <> struct node_from_variant_t<372> { using type = SgDictionaryExp; };
14215
14216// Class: DimensionObject
14217template <> struct describe_field_t<SgDimensionObject,SgInitializedName*,&SgDimensionObject::p_array> {
14218 using parent = SgDimensionObject;
14220 static constexpr size_t position{0};
14221 static constexpr char const * const name{"array"};
14222 static constexpr char const * const typestr{"SgInitializedName*"};
14223 static constexpr bool traverse{false};
14224 static constexpr auto mbr_ptr{&SgDimensionObject::p_array};
14225 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14226 using bind = Desc<SgDimensionObject, SgInitializedName* SgDimensionObject::*, &SgDimensionObject::p_array>;
14227};
14228template <> struct describe_field_t<SgDimensionObject,SgExprListExp*,&SgDimensionObject::p_shape> {
14229 using parent = SgDimensionObject;
14230 using field_type = SgExprListExp*;
14231 static constexpr size_t position{1};
14232 static constexpr char const * const name{"shape"};
14233 static constexpr char const * const typestr{"SgExprListExp*"};
14234 static constexpr bool traverse{false};
14235 static constexpr auto mbr_ptr{&SgDimensionObject::p_shape};
14236 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14237 using bind = Desc<SgDimensionObject, SgExprListExp* SgDimensionObject::*, &SgDimensionObject::p_shape>;
14238};
14240 using node = SgDimensionObject;
14241 using base = SgSupport;
14242 static constexpr char const * const name{"DimensionObject"};
14243 static constexpr unsigned long variant{373};
14244 static constexpr bool concrete{true};
14245 using subclasses_t = mp::List<>;
14247};
14248template <> struct node_from_variant_t<373> { using type = SgDimensionObject; };
14249
14250// Class: DirectedGraphEdge
14252 using node = SgDirectedGraphEdge;
14253 using base = SgGraphEdge;
14254 static constexpr char const * const name{"DirectedGraphEdge"};
14255 static constexpr unsigned long variant{375};
14256 static constexpr bool concrete{true};
14257 using subclasses_t = mp::List<>;
14258 using fields_t = mp::List<>;
14259};
14260template <> struct node_from_variant_t<375> { using type = SgDirectedGraphEdge; };
14261
14262// Class: Directory
14263template <> struct describe_field_t<SgDirectory,std::string,&SgDirectory::p_name> {
14264 using parent = SgDirectory;
14265 using field_type = std::string;
14266 static constexpr size_t position{0};
14267 static constexpr char const * const name{"name"};
14268 static constexpr char const * const typestr{"std::string"};
14269 static constexpr bool traverse{false};
14270 static constexpr auto mbr_ptr{&SgDirectory::p_name};
14271 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14272 using bind = Desc<SgDirectory, std::string SgDirectory::*, &SgDirectory::p_name>;
14273};
14274template <> struct describe_field_t<SgDirectory,SgFileList*,&SgDirectory::p_fileList> {
14275 using parent = SgDirectory;
14276 using field_type = SgFileList*;
14277 static constexpr size_t position{1};
14278 static constexpr char const * const name{"fileList"};
14279 static constexpr char const * const typestr{"SgFileList*"};
14280 static constexpr bool traverse{true};
14281 static constexpr auto mbr_ptr{&SgDirectory::p_fileList};
14282 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14283 using bind = Desc<SgDirectory, SgFileList* SgDirectory::*, &SgDirectory::p_fileList>;
14284};
14285template <> struct describe_field_t<SgDirectory,SgDirectoryList*,&SgDirectory::p_directoryList> {
14286 using parent = SgDirectory;
14287 using field_type = SgDirectoryList*;
14288 static constexpr size_t position{2};
14289 static constexpr char const * const name{"directoryList"};
14290 static constexpr char const * const typestr{"SgDirectoryList*"};
14291 static constexpr bool traverse{true};
14292 static constexpr auto mbr_ptr{&SgDirectory::p_directoryList};
14293 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14294 using bind = Desc<SgDirectory, SgDirectoryList* SgDirectory::*, &SgDirectory::p_directoryList>;
14295};
14296template <> struct describe_field_t<SgDirectory,AstAttributeMechanism*,&SgDirectory::p_attributeMechanism> {
14297 using parent = SgDirectory;
14299 static constexpr size_t position{3};
14300 static constexpr char const * const name{"attributeMechanism"};
14301 static constexpr char const * const typestr{"AstAttributeMechanism*"};
14302 static constexpr bool traverse{false};
14303 static constexpr auto mbr_ptr{&SgDirectory::p_attributeMechanism};
14304 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14305 using bind = Desc<SgDirectory, AstAttributeMechanism* SgDirectory::*, &SgDirectory::p_attributeMechanism>;
14306};
14307template <> struct describe_node_t<SgDirectory> {
14308 using node = SgDirectory;
14309 using base = SgSupport;
14310 static constexpr char const * const name{"Directory"};
14311 static constexpr unsigned long variant{377};
14312 static constexpr bool concrete{true};
14313 using subclasses_t = mp::List<>;
14315};
14316template <> struct node_from_variant_t<377> { using type = SgDirectory; };
14317
14318// Class: DirectoryList
14319template <> struct describe_field_t<SgDirectoryList,SgDirectoryPtrList,&SgDirectoryList::p_listOfDirectories> {
14320 using parent = SgDirectoryList;
14321 using field_type = SgDirectoryPtrList;
14322 static constexpr size_t position{0};
14323 static constexpr char const * const name{"listOfDirectories"};
14324 static constexpr char const * const typestr{"SgDirectoryPtrList"};
14325 static constexpr bool traverse{true};
14326 static constexpr auto mbr_ptr{&SgDirectoryList::p_listOfDirectories};
14327 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14328 using bind = Desc<SgDirectoryList, SgDirectoryPtrList SgDirectoryList::*, &SgDirectoryList::p_listOfDirectories>;
14329};
14331 using node = SgDirectoryList;
14332 using base = SgSupport;
14333 static constexpr char const * const name{"DirectoryList"};
14334 static constexpr unsigned long variant{378};
14335 static constexpr bool concrete{true};
14336 using subclasses_t = mp::List<>;
14338};
14339template <> struct node_from_variant_t<378> { using type = SgDirectoryList; };
14340
14341// Class: DivAssignOp
14342template <> struct describe_node_t<SgDivAssignOp> {
14343 using node = SgDivAssignOp;
14344 using base = SgCompoundAssignOp;
14345 static constexpr char const * const name{"DivAssignOp"};
14346 static constexpr unsigned long variant{379};
14347 static constexpr bool concrete{true};
14348 using subclasses_t = mp::List<>;
14349 using fields_t = mp::List<>;
14350};
14351template <> struct node_from_variant_t<379> { using type = SgDivAssignOp; };
14352
14353// Class: DivideOp
14354template <> struct describe_node_t<SgDivideOp> {
14355 using node = SgDivideOp;
14356 using base = SgBinaryOp;
14357 static constexpr char const * const name{"DivideOp"};
14358 static constexpr unsigned long variant{380};
14359 static constexpr bool concrete{true};
14360 using subclasses_t = mp::List<>;
14361 using fields_t = mp::List<>;
14362};
14363template <> struct node_from_variant_t<380> { using type = SgDivideOp; };
14364
14365// Class: DoWhileStmt
14367 using parent = SgDoWhileStmt;
14368 using field_type = SgStatement*;
14369 static constexpr size_t position{0};
14370 static constexpr char const * const name{"body"};
14371 static constexpr char const * const typestr{"SgStatement*"};
14372 static constexpr bool traverse{true};
14373 static constexpr auto mbr_ptr{&SgDoWhileStmt::p_body};
14374 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14375 using bind = Desc<SgDoWhileStmt, SgStatement* SgDoWhileStmt::*, &SgDoWhileStmt::p_body>;
14376};
14378 using parent = SgDoWhileStmt;
14379 using field_type = SgStatement*;
14380 static constexpr size_t position{1};
14381 static constexpr char const * const name{"condition"};
14382 static constexpr char const * const typestr{"SgStatement*"};
14383 static constexpr bool traverse{true};
14384 static constexpr auto mbr_ptr{&SgDoWhileStmt::p_condition};
14385 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14386 using bind = Desc<SgDoWhileStmt, SgStatement* SgDoWhileStmt::*, &SgDoWhileStmt::p_condition>;
14387};
14388template <> struct describe_node_t<SgDoWhileStmt> {
14389 using node = SgDoWhileStmt;
14390 using base = SgScopeStatement;
14391 static constexpr char const * const name{"DoWhileStmt"};
14392 static constexpr unsigned long variant{381};
14393 static constexpr bool concrete{true};
14394 using subclasses_t = mp::List<>;
14396};
14397template <> struct node_from_variant_t<381> { using type = SgDoWhileStmt; };
14398
14399// Class: DotExp
14400template <> struct describe_node_t<SgDotExp> {
14401 using node = SgDotExp;
14402 using base = SgBinaryOp;
14403 static constexpr char const * const name{"DotExp"};
14404 static constexpr unsigned long variant{382};
14405 static constexpr bool concrete{true};
14406 using subclasses_t = mp::List<>;
14407 using fields_t = mp::List<>;
14408};
14409template <> struct node_from_variant_t<382> { using type = SgDotExp; };
14410
14411// Class: DotStarOp
14412template <> struct describe_node_t<SgDotStarOp> {
14413 using node = SgDotStarOp;
14414 using base = SgBinaryOp;
14415 static constexpr char const * const name{"DotStarOp"};
14416 static constexpr unsigned long variant{383};
14417 static constexpr bool concrete{true};
14418 using subclasses_t = mp::List<>;
14419 using fields_t = mp::List<>;
14420};
14421template <> struct node_from_variant_t<383> { using type = SgDotStarOp; };
14422
14423// Class: DoubleVal
14425 using parent = SgDoubleVal;
14426 using field_type = double;
14427 static constexpr size_t position{0};
14428 static constexpr char const * const name{"value"};
14429 static constexpr char const * const typestr{"double"};
14430 static constexpr bool traverse{false};
14431 static constexpr auto mbr_ptr{&SgDoubleVal::p_value};
14432 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14433 using bind = Desc<SgDoubleVal, double SgDoubleVal::*, &SgDoubleVal::p_value>;
14434};
14435template <> struct describe_field_t<SgDoubleVal,std::string,&SgDoubleVal::p_valueString> {
14436 using parent = SgDoubleVal;
14437 using field_type = std::string;
14438 static constexpr size_t position{1};
14439 static constexpr char const * const name{"valueString"};
14440 static constexpr char const * const typestr{"std::string"};
14441 static constexpr bool traverse{false};
14442 static constexpr auto mbr_ptr{&SgDoubleVal::p_valueString};
14443 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14444 using bind = Desc<SgDoubleVal, std::string SgDoubleVal::*, &SgDoubleVal::p_valueString>;
14445};
14446template <> struct describe_node_t<SgDoubleVal> {
14447 using node = SgDoubleVal;
14448 using base = SgValueExp;
14449 static constexpr char const * const name{"DoubleVal"};
14450 static constexpr unsigned long variant{384};
14451 static constexpr bool concrete{true};
14452 using subclasses_t = mp::List<>;
14454};
14455template <> struct node_from_variant_t<384> { using type = SgDoubleVal; };
14456
14457// Class: ElaboratedTypeModifier
14458template <> struct describe_field_t<SgElaboratedTypeModifier,SgElaboratedTypeModifier::elaborated_type_modifier_enum,&SgElaboratedTypeModifier::p_modifier> {
14461 static constexpr size_t position{0};
14462 static constexpr char const * const name{"modifier"};
14463 static constexpr char const * const typestr{"SgElaboratedTypeModifier::elaborated_type_modifier_enum"};
14464 static constexpr bool traverse{false};
14465 static constexpr auto mbr_ptr{&SgElaboratedTypeModifier::p_modifier};
14466 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14467 using bind = Desc<SgElaboratedTypeModifier, SgElaboratedTypeModifier::elaborated_type_modifier_enum SgElaboratedTypeModifier::*, &SgElaboratedTypeModifier::p_modifier>;
14468};
14471 using base = SgModifier;
14472 static constexpr char const * const name{"ElaboratedTypeModifier"};
14473 static constexpr unsigned long variant{385};
14474 static constexpr bool concrete{true};
14475 using subclasses_t = mp::List<>;
14477};
14478template <> struct node_from_variant_t<385> { using type = SgElaboratedTypeModifier; };
14479
14480// Class: ElementwiseOp
14482 using node = SgElementwiseOp;
14483 using base = SgBinaryOp;
14484 static constexpr char const * const name{"ElementwiseOp"};
14485 static constexpr unsigned long variant{386};
14486 static constexpr bool concrete{false};
14488 using fields_t = mp::List<>;
14489};
14490template <> struct node_from_variant_t<386> { using type = SgElementwiseOp; };
14491
14492// Class: ElementwiseAddOp
14494 using node = SgElementwiseAddOp;
14495 using base = SgElementwiseOp;
14496 static constexpr char const * const name{"ElementwiseAddOp"};
14497 static constexpr unsigned long variant{387};
14498 static constexpr bool concrete{true};
14499 using subclasses_t = mp::List<>;
14500 using fields_t = mp::List<>;
14501};
14502template <> struct node_from_variant_t<387> { using type = SgElementwiseAddOp; };
14503
14504// Class: ElementwiseDivideOp
14507 using base = SgElementwiseOp;
14508 static constexpr char const * const name{"ElementwiseDivideOp"};
14509 static constexpr unsigned long variant{388};
14510 static constexpr bool concrete{true};
14511 using subclasses_t = mp::List<>;
14512 using fields_t = mp::List<>;
14513};
14514template <> struct node_from_variant_t<388> { using type = SgElementwiseDivideOp; };
14515
14516// Class: ElementwiseLeftDivideOp
14519 using base = SgElementwiseOp;
14520 static constexpr char const * const name{"ElementwiseLeftDivideOp"};
14521 static constexpr unsigned long variant{389};
14522 static constexpr bool concrete{true};
14523 using subclasses_t = mp::List<>;
14524 using fields_t = mp::List<>;
14525};
14526template <> struct node_from_variant_t<389> { using type = SgElementwiseLeftDivideOp; };
14527
14528// Class: ElementwiseMultiplyOp
14531 using base = SgElementwiseOp;
14532 static constexpr char const * const name{"ElementwiseMultiplyOp"};
14533 static constexpr unsigned long variant{390};
14534 static constexpr bool concrete{true};
14535 using subclasses_t = mp::List<>;
14536 using fields_t = mp::List<>;
14537};
14538template <> struct node_from_variant_t<390> { using type = SgElementwiseMultiplyOp; };
14539
14540// Class: ElementwisePowerOp
14542 using node = SgElementwisePowerOp;
14543 using base = SgElementwiseOp;
14544 static constexpr char const * const name{"ElementwisePowerOp"};
14545 static constexpr unsigned long variant{391};
14546 static constexpr bool concrete{true};
14547 using subclasses_t = mp::List<>;
14548 using fields_t = mp::List<>;
14549};
14550template <> struct node_from_variant_t<391> { using type = SgElementwisePowerOp; };
14551
14552// Class: ElementwiseSubtractOp
14555 using base = SgElementwiseOp;
14556 static constexpr char const * const name{"ElementwiseSubtractOp"};
14557 static constexpr unsigned long variant{392};
14558 static constexpr bool concrete{true};
14559 using subclasses_t = mp::List<>;
14560 using fields_t = mp::List<>;
14561};
14562template <> struct node_from_variant_t<392> { using type = SgElementwiseSubtractOp; };
14563
14564// Class: ElseDirectiveStatement
14568 static constexpr char const * const name{"ElseDirectiveStatement"};
14569 static constexpr unsigned long variant{393};
14570 static constexpr bool concrete{true};
14571 using subclasses_t = mp::List<>;
14572 using fields_t = mp::List<>;
14573};
14574template <> struct node_from_variant_t<393> { using type = SgElseDirectiveStatement; };
14575
14576// Class: ElseWhereStatement
14577template <> struct describe_field_t<SgElseWhereStatement,SgExpression*,&SgElseWhereStatement::p_condition> {
14579 using field_type = SgExpression*;
14580 static constexpr size_t position{0};
14581 static constexpr char const * const name{"condition"};
14582 static constexpr char const * const typestr{"SgExpression*"};
14583 static constexpr bool traverse{true};
14584 static constexpr auto mbr_ptr{&SgElseWhereStatement::p_condition};
14585 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14586 using bind = Desc<SgElseWhereStatement, SgExpression* SgElseWhereStatement::*, &SgElseWhereStatement::p_condition>;
14587};
14588template <> struct describe_field_t<SgElseWhereStatement,SgBasicBlock*,&SgElseWhereStatement::p_body> {
14590 using field_type = SgBasicBlock*;
14591 static constexpr size_t position{1};
14592 static constexpr char const * const name{"body"};
14593 static constexpr char const * const typestr{"SgBasicBlock*"};
14594 static constexpr bool traverse{true};
14595 static constexpr auto mbr_ptr{&SgElseWhereStatement::p_body};
14596 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14597 using bind = Desc<SgElseWhereStatement, SgBasicBlock* SgElseWhereStatement::*, &SgElseWhereStatement::p_body>;
14598};
14599template <> struct describe_field_t<SgElseWhereStatement,SgElseWhereStatement*,&SgElseWhereStatement::p_elsewhere> {
14602 static constexpr size_t position{2};
14603 static constexpr char const * const name{"elsewhere"};
14604 static constexpr char const * const typestr{"SgElseWhereStatement*"};
14605 static constexpr bool traverse{true};
14606 static constexpr auto mbr_ptr{&SgElseWhereStatement::p_elsewhere};
14607 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14608 using bind = Desc<SgElseWhereStatement, SgElseWhereStatement* SgElseWhereStatement::*, &SgElseWhereStatement::p_elsewhere>;
14609};
14611 using node = SgElseWhereStatement;
14612 using base = SgStatement;
14613 static constexpr char const * const name{"ElseWhereStatement"};
14614 static constexpr unsigned long variant{394};
14615 static constexpr bool concrete{true};
14616 using subclasses_t = mp::List<>;
14618};
14619template <> struct node_from_variant_t<394> { using type = SgElseWhereStatement; };
14620
14621// Class: ElseifDirectiveStatement
14625 static constexpr char const * const name{"ElseifDirectiveStatement"};
14626 static constexpr unsigned long variant{395};
14627 static constexpr bool concrete{true};
14628 using subclasses_t = mp::List<>;
14629 using fields_t = mp::List<>;
14630};
14631template <> struct node_from_variant_t<395> { using type = SgElseifDirectiveStatement; };
14632
14633// Class: EmptyDeclaration
14635 using node = SgEmptyDeclaration;
14637 static constexpr char const * const name{"EmptyDeclaration"};
14638 static constexpr unsigned long variant{396};
14639 static constexpr bool concrete{true};
14640 using subclasses_t = mp::List<>;
14641 using fields_t = mp::List<>;
14642};
14643template <> struct node_from_variant_t<396> { using type = SgEmptyDeclaration; };
14644
14645// Class: EmptyDirectiveStatement
14649 static constexpr char const * const name{"EmptyDirectiveStatement"};
14650 static constexpr unsigned long variant{397};
14651 static constexpr bool concrete{true};
14652 using subclasses_t = mp::List<>;
14653 using fields_t = mp::List<>;
14654};
14655template <> struct node_from_variant_t<397> { using type = SgEmptyDirectiveStatement; };
14656
14657// Class: EndfileStatement
14659 using node = SgEndfileStatement;
14660 using base = SgIOStatement;
14661 static constexpr char const * const name{"EndfileStatement"};
14662 static constexpr unsigned long variant{398};
14663 static constexpr bool concrete{true};
14664 using subclasses_t = mp::List<>;
14665 using fields_t = mp::List<>;
14666};
14667template <> struct node_from_variant_t<398> { using type = SgEndfileStatement; };
14668
14669// Class: EndifDirectiveStatement
14673 static constexpr char const * const name{"EndifDirectiveStatement"};
14674 static constexpr unsigned long variant{399};
14675 static constexpr bool concrete{true};
14676 using subclasses_t = mp::List<>;
14677 using fields_t = mp::List<>;
14678};
14679template <> struct node_from_variant_t<399> { using type = SgEndifDirectiveStatement; };
14680
14681// Class: EntryStatement
14682template <> struct describe_field_t<SgEntryStatement,SgInitializedName*,&SgEntryStatement::p_result_name> {
14683 using parent = SgEntryStatement;
14685 static constexpr size_t position{0};
14686 static constexpr char const * const name{"result_name"};
14687 static constexpr char const * const typestr{"SgInitializedName*"};
14688 static constexpr bool traverse{true};
14689 static constexpr auto mbr_ptr{&SgEntryStatement::p_result_name};
14690 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14691 using bind = Desc<SgEntryStatement, SgInitializedName* SgEntryStatement::*, &SgEntryStatement::p_result_name>;
14692};
14694 using node = SgEntryStatement;
14696 static constexpr char const * const name{"EntryStatement"};
14697 static constexpr unsigned long variant{400};
14698 static constexpr bool concrete{true};
14699 using subclasses_t = mp::List<>;
14701};
14702template <> struct node_from_variant_t<400> { using type = SgEntryStatement; };
14703
14704// Class: EnumDeclaration
14706 using parent = SgEnumDeclaration;
14707 using field_type = SgName;
14708 static constexpr size_t position{0};
14709 static constexpr char const * const name{"name"};
14710 static constexpr char const * const typestr{"SgName"};
14711 static constexpr bool traverse{false};
14712 static constexpr auto mbr_ptr{&SgEnumDeclaration::p_name};
14713 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14714 using bind = Desc<SgEnumDeclaration, SgName SgEnumDeclaration::*, &SgEnumDeclaration::p_name>;
14715};
14717 using parent = SgEnumDeclaration;
14718 using field_type = bool;
14719 static constexpr size_t position{1};
14720 static constexpr char const * const name{"embedded"};
14721 static constexpr char const * const typestr{"bool"};
14722 static constexpr bool traverse{false};
14723 static constexpr auto mbr_ptr{&SgEnumDeclaration::p_embedded};
14724 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14725 using bind = Desc<SgEnumDeclaration, bool SgEnumDeclaration::*, &SgEnumDeclaration::p_embedded>;
14726};
14728 using parent = SgEnumDeclaration;
14729 using field_type = SgEnumType*;
14730 static constexpr size_t position{2};
14731 static constexpr char const * const name{"type"};
14732 static constexpr char const * const typestr{"SgEnumType*"};
14733 static constexpr bool traverse{false};
14734 static constexpr auto mbr_ptr{&SgEnumDeclaration::p_type};
14735 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14736 using bind = Desc<SgEnumDeclaration, SgEnumType* SgEnumDeclaration::*, &SgEnumDeclaration::p_type>;
14737};
14738template <> struct describe_field_t<SgEnumDeclaration,SgType*,&SgEnumDeclaration::p_adaParentType> {
14739 using parent = SgEnumDeclaration;
14740 using field_type = SgType*;
14741 static constexpr size_t position{3};
14742 static constexpr char const * const name{"adaParentType"};
14743 static constexpr char const * const typestr{"SgType*"};
14744 static constexpr bool traverse{false};
14745 static constexpr auto mbr_ptr{&SgEnumDeclaration::p_adaParentType};
14746 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14747 using bind = Desc<SgEnumDeclaration, SgType* SgEnumDeclaration::*, &SgEnumDeclaration::p_adaParentType>;
14748};
14749template <> struct describe_field_t<SgEnumDeclaration,SgInitializedNamePtrList,&SgEnumDeclaration::p_enumerators> {
14750 using parent = SgEnumDeclaration;
14751 using field_type = SgInitializedNamePtrList;
14752 static constexpr size_t position{4};
14753 static constexpr char const * const name{"enumerators"};
14754 static constexpr char const * const typestr{"SgInitializedNamePtrList"};
14755 static constexpr bool traverse{true};
14756 static constexpr auto mbr_ptr{&SgEnumDeclaration::p_enumerators};
14757 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14758 using bind = Desc<SgEnumDeclaration, SgInitializedNamePtrList SgEnumDeclaration::*, &SgEnumDeclaration::p_enumerators>;
14759};
14761 using parent = SgEnumDeclaration;
14763 static constexpr size_t position{5};
14764 static constexpr char const * const name{"scope"};
14765 static constexpr char const * const typestr{"SgScopeStatement*"};
14766 static constexpr bool traverse{false};
14767 static constexpr auto mbr_ptr{&SgEnumDeclaration::p_scope};
14768 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14769 using bind = Desc<SgEnumDeclaration, SgScopeStatement* SgEnumDeclaration::*, &SgEnumDeclaration::p_scope>;
14770};
14771template <> struct describe_field_t<SgEnumDeclaration,bool,&SgEnumDeclaration::p_isUnNamed> {
14772 using parent = SgEnumDeclaration;
14773 using field_type = bool;
14774 static constexpr size_t position{6};
14775 static constexpr char const * const name{"isUnNamed"};
14776 static constexpr char const * const typestr{"bool"};
14777 static constexpr bool traverse{false};
14778 static constexpr auto mbr_ptr{&SgEnumDeclaration::p_isUnNamed};
14779 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14780 using bind = Desc<SgEnumDeclaration, bool SgEnumDeclaration::*, &SgEnumDeclaration::p_isUnNamed>;
14781};
14782template <> struct describe_field_t<SgEnumDeclaration,bool,&SgEnumDeclaration::p_isAutonomousDeclaration> {
14783 using parent = SgEnumDeclaration;
14784 using field_type = bool;
14785 static constexpr size_t position{7};
14786 static constexpr char const * const name{"isAutonomousDeclaration"};
14787 static constexpr char const * const typestr{"bool"};
14788 static constexpr bool traverse{false};
14789 static constexpr auto mbr_ptr{&SgEnumDeclaration::p_isAutonomousDeclaration};
14790 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14791 using bind = Desc<SgEnumDeclaration, bool SgEnumDeclaration::*, &SgEnumDeclaration::p_isAutonomousDeclaration>;
14792};
14793template <> struct describe_field_t<SgEnumDeclaration,SgType*,&SgEnumDeclaration::p_field_type> {
14794 using parent = SgEnumDeclaration;
14795 using field_type = SgType*;
14796 static constexpr size_t position{8};
14797 static constexpr char const * const name{"field_type"};
14798 static constexpr char const * const typestr{"SgType*"};
14799 static constexpr bool traverse{false};
14800 static constexpr auto mbr_ptr{&SgEnumDeclaration::p_field_type};
14801 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14802 using bind = Desc<SgEnumDeclaration, SgType* SgEnumDeclaration::*, &SgEnumDeclaration::p_field_type>;
14803};
14804template <> struct describe_field_t<SgEnumDeclaration,bool,&SgEnumDeclaration::p_isScopedEnum> {
14805 using parent = SgEnumDeclaration;
14806 using field_type = bool;
14807 static constexpr size_t position{9};
14808 static constexpr char const * const name{"isScopedEnum"};
14809 static constexpr char const * const typestr{"bool"};
14810 static constexpr bool traverse{false};
14811 static constexpr auto mbr_ptr{&SgEnumDeclaration::p_isScopedEnum};
14812 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14813 using bind = Desc<SgEnumDeclaration, bool SgEnumDeclaration::*, &SgEnumDeclaration::p_isScopedEnum>;
14814};
14815template <> struct describe_field_t<SgEnumDeclaration,int,&SgEnumDeclaration::p_name_qualification_length> {
14816 using parent = SgEnumDeclaration;
14817 using field_type = int;
14818 static constexpr size_t position{10};
14819 static constexpr char const * const name{"name_qualification_length"};
14820 static constexpr char const * const typestr{"int"};
14821 static constexpr bool traverse{false};
14822 static constexpr auto mbr_ptr{&SgEnumDeclaration::p_name_qualification_length};
14823 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14824 using bind = Desc<SgEnumDeclaration, int SgEnumDeclaration::*, &SgEnumDeclaration::p_name_qualification_length>;
14825};
14826template <> struct describe_field_t<SgEnumDeclaration,bool,&SgEnumDeclaration::p_type_elaboration_required> {
14827 using parent = SgEnumDeclaration;
14828 using field_type = bool;
14829 static constexpr size_t position{11};
14830 static constexpr char const * const name{"type_elaboration_required"};
14831 static constexpr char const * const typestr{"bool"};
14832 static constexpr bool traverse{false};
14833 static constexpr auto mbr_ptr{&SgEnumDeclaration::p_type_elaboration_required};
14834 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14835 using bind = Desc<SgEnumDeclaration, bool SgEnumDeclaration::*, &SgEnumDeclaration::p_type_elaboration_required>;
14836};
14837template <> struct describe_field_t<SgEnumDeclaration,bool,&SgEnumDeclaration::p_global_qualification_required> {
14838 using parent = SgEnumDeclaration;
14839 using field_type = bool;
14840 static constexpr size_t position{12};
14841 static constexpr char const * const name{"global_qualification_required"};
14842 static constexpr char const * const typestr{"bool"};
14843 static constexpr bool traverse{false};
14844 static constexpr auto mbr_ptr{&SgEnumDeclaration::p_global_qualification_required};
14845 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14846 using bind = Desc<SgEnumDeclaration, bool SgEnumDeclaration::*, &SgEnumDeclaration::p_global_qualification_required>;
14847};
14857template <> struct node_from_variant_t<401> { using type = SgEnumDeclaration; };
14858
14859// Class: EnumFieldSymbol
14860template <> struct describe_field_t<SgEnumFieldSymbol,SgInitializedName*,&SgEnumFieldSymbol::p_declaration> {
14861 using parent = SgEnumFieldSymbol;
14863 static constexpr size_t position{0};
14864 static constexpr char const * const name{"declaration"};
14865 static constexpr char const * const typestr{"SgInitializedName*"};
14866 static constexpr bool traverse{false};
14867 static constexpr auto mbr_ptr{&SgEnumFieldSymbol::p_declaration};
14868 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14869 using bind = Desc<SgEnumFieldSymbol, SgInitializedName* SgEnumFieldSymbol::*, &SgEnumFieldSymbol::p_declaration>;
14870};
14872 using node = SgEnumFieldSymbol;
14873 using base = SgSymbol;
14874 static constexpr char const * const name{"EnumFieldSymbol"};
14875 static constexpr unsigned long variant{402};
14876 static constexpr bool concrete{true};
14877 using subclasses_t = mp::List<>;
14879};
14880template <> struct node_from_variant_t<402> { using type = SgEnumFieldSymbol; };
14881
14882// Class: EnumSymbol
14883template <> struct describe_field_t<SgEnumSymbol,SgEnumDeclaration*,&SgEnumSymbol::p_declaration> {
14884 using parent = SgEnumSymbol;
14886 static constexpr size_t position{0};
14887 static constexpr char const * const name{"declaration"};
14888 static constexpr char const * const typestr{"SgEnumDeclaration*"};
14889 static constexpr bool traverse{true};
14890 static constexpr auto mbr_ptr{&SgEnumSymbol::p_declaration};
14891 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14892 using bind = Desc<SgEnumSymbol, SgEnumDeclaration* SgEnumSymbol::*, &SgEnumSymbol::p_declaration>;
14893};
14894template <> struct describe_node_t<SgEnumSymbol> {
14895 using node = SgEnumSymbol;
14896 using base = SgTypeSymbol;
14897 static constexpr char const * const name{"EnumSymbol"};
14898 static constexpr unsigned long variant{403};
14899 static constexpr bool concrete{true};
14900 using subclasses_t = mp::List<>;
14902};
14903template <> struct node_from_variant_t<403> { using type = SgEnumSymbol; };
14904
14905// Class: EnumType
14906template <> struct describe_node_t<SgEnumType> {
14907 using node = SgEnumType;
14908 using base = SgNamedType;
14909 static constexpr char const * const name{"EnumType"};
14910 static constexpr unsigned long variant{404};
14911 static constexpr bool concrete{true};
14912 using subclasses_t = mp::List<>;
14913 using fields_t = mp::List<>;
14914};
14915template <> struct node_from_variant_t<404> { using type = SgEnumType; };
14916
14917// Class: EnumVal
14918template <> struct describe_field_t<SgEnumVal,long long int,&SgEnumVal::p_value> {
14919 using parent = SgEnumVal;
14920 using field_type = long long int;
14921 static constexpr size_t position{0};
14922 static constexpr char const * const name{"value"};
14923 static constexpr char const * const typestr{"long long int"};
14924 static constexpr bool traverse{false};
14925 static constexpr auto mbr_ptr{&SgEnumVal::p_value};
14926 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14927 using bind = Desc<SgEnumVal, long long int SgEnumVal::*, &SgEnumVal::p_value>;
14928};
14929template <> struct describe_field_t<SgEnumVal,SgEnumDeclaration*,&SgEnumVal::p_declaration> {
14930 using parent = SgEnumVal;
14932 static constexpr size_t position{1};
14933 static constexpr char const * const name{"declaration"};
14934 static constexpr char const * const typestr{"SgEnumDeclaration*"};
14935 static constexpr bool traverse{false};
14936 static constexpr auto mbr_ptr{&SgEnumVal::p_declaration};
14937 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14938 using bind = Desc<SgEnumVal, SgEnumDeclaration* SgEnumVal::*, &SgEnumVal::p_declaration>;
14939};
14940template <> struct describe_field_t<SgEnumVal,SgName,&SgEnumVal::p_name> {
14941 using parent = SgEnumVal;
14942 using field_type = SgName;
14943 static constexpr size_t position{2};
14944 static constexpr char const * const name{"name"};
14945 static constexpr char const * const typestr{"SgName"};
14946 static constexpr bool traverse{false};
14947 static constexpr auto mbr_ptr{&SgEnumVal::p_name};
14948 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14949 using bind = Desc<SgEnumVal, SgName SgEnumVal::*, &SgEnumVal::p_name>;
14950};
14951template <> struct describe_field_t<SgEnumVal,bool,&SgEnumVal::p_requiresNameQualification> {
14952 using parent = SgEnumVal;
14953 using field_type = bool;
14954 static constexpr size_t position{3};
14955 static constexpr char const * const name{"requiresNameQualification"};
14956 static constexpr char const * const typestr{"bool"};
14957 static constexpr bool traverse{false};
14958 static constexpr auto mbr_ptr{&SgEnumVal::p_requiresNameQualification};
14959 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14960 using bind = Desc<SgEnumVal, bool SgEnumVal::*, &SgEnumVal::p_requiresNameQualification>;
14961};
14962template <> struct describe_field_t<SgEnumVal,int,&SgEnumVal::p_name_qualification_length> {
14963 using parent = SgEnumVal;
14964 using field_type = int;
14965 static constexpr size_t position{4};
14966 static constexpr char const * const name{"name_qualification_length"};
14967 static constexpr char const * const typestr{"int"};
14968 static constexpr bool traverse{false};
14969 static constexpr auto mbr_ptr{&SgEnumVal::p_name_qualification_length};
14970 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14971 using bind = Desc<SgEnumVal, int SgEnumVal::*, &SgEnumVal::p_name_qualification_length>;
14972};
14973template <> struct describe_field_t<SgEnumVal,bool,&SgEnumVal::p_type_elaboration_required> {
14974 using parent = SgEnumVal;
14975 using field_type = bool;
14976 static constexpr size_t position{5};
14977 static constexpr char const * const name{"type_elaboration_required"};
14978 static constexpr char const * const typestr{"bool"};
14979 static constexpr bool traverse{false};
14980 static constexpr auto mbr_ptr{&SgEnumVal::p_type_elaboration_required};
14981 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14982 using bind = Desc<SgEnumVal, bool SgEnumVal::*, &SgEnumVal::p_type_elaboration_required>;
14983};
14984template <> struct describe_field_t<SgEnumVal,bool,&SgEnumVal::p_global_qualification_required> {
14985 using parent = SgEnumVal;
14986 using field_type = bool;
14987 static constexpr size_t position{6};
14988 static constexpr char const * const name{"global_qualification_required"};
14989 static constexpr char const * const typestr{"bool"};
14990 static constexpr bool traverse{false};
14991 static constexpr auto mbr_ptr{&SgEnumVal::p_global_qualification_required};
14992 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
14993 using bind = Desc<SgEnumVal, bool SgEnumVal::*, &SgEnumVal::p_global_qualification_required>;
14994};
15004template <> struct node_from_variant_t<405> { using type = SgEnumVal; };
15005
15006// Class: EqualityOp
15007template <> struct describe_node_t<SgEqualityOp> {
15008 using node = SgEqualityOp;
15009 using base = SgBinaryOp;
15010 static constexpr char const * const name{"EqualityOp"};
15011 static constexpr unsigned long variant{406};
15012 static constexpr bool concrete{true};
15013 using subclasses_t = mp::List<>;
15014 using fields_t = mp::List<>;
15015};
15016template <> struct node_from_variant_t<406> { using type = SgEqualityOp; };
15017
15018// Class: EquivalenceStatement
15019template <> struct describe_field_t<SgEquivalenceStatement,SgExprListExp*,&SgEquivalenceStatement::p_equivalence_set_list> {
15021 using field_type = SgExprListExp*;
15022 static constexpr size_t position{0};
15023 static constexpr char const * const name{"equivalence_set_list"};
15024 static constexpr char const * const typestr{"SgExprListExp*"};
15025 static constexpr bool traverse{false};
15026 static constexpr auto mbr_ptr{&SgEquivalenceStatement::p_equivalence_set_list};
15027 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15028 using bind = Desc<SgEquivalenceStatement, SgExprListExp* SgEquivalenceStatement::*, &SgEquivalenceStatement::p_equivalence_set_list>;
15029};
15033 static constexpr char const * const name{"EquivalenceStatement"};
15034 static constexpr unsigned long variant{407};
15035 static constexpr bool concrete{true};
15036 using subclasses_t = mp::List<>;
15038};
15039template <> struct node_from_variant_t<407> { using type = SgEquivalenceStatement; };
15040
15041// Class: ErrorDirectiveStatement
15045 static constexpr char const * const name{"ErrorDirectiveStatement"};
15046 static constexpr unsigned long variant{408};
15047 static constexpr bool concrete{true};
15048 using subclasses_t = mp::List<>;
15049 using fields_t = mp::List<>;
15050};
15051template <> struct node_from_variant_t<408> { using type = SgErrorDirectiveStatement; };
15052
15053// Class: ExecStatement
15055 using parent = SgExecStatement;
15056 using field_type = SgExpression*;
15057 static constexpr size_t position{0};
15058 static constexpr char const * const name{"executable"};
15059 static constexpr char const * const typestr{"SgExpression*"};
15060 static constexpr bool traverse{true};
15061 static constexpr auto mbr_ptr{&SgExecStatement::p_executable};
15062 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15063 using bind = Desc<SgExecStatement, SgExpression* SgExecStatement::*, &SgExecStatement::p_executable>;
15064};
15066 using parent = SgExecStatement;
15067 using field_type = SgExpression*;
15068 static constexpr size_t position{1};
15069 static constexpr char const * const name{"globals"};
15070 static constexpr char const * const typestr{"SgExpression*"};
15071 static constexpr bool traverse{true};
15072 static constexpr auto mbr_ptr{&SgExecStatement::p_globals};
15073 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15074 using bind = Desc<SgExecStatement, SgExpression* SgExecStatement::*, &SgExecStatement::p_globals>;
15075};
15077 using parent = SgExecStatement;
15078 using field_type = SgExpression*;
15079 static constexpr size_t position{2};
15080 static constexpr char const * const name{"locals"};
15081 static constexpr char const * const typestr{"SgExpression*"};
15082 static constexpr bool traverse{true};
15083 static constexpr auto mbr_ptr{&SgExecStatement::p_locals};
15084 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15085 using bind = Desc<SgExecStatement, SgExpression* SgExecStatement::*, &SgExecStatement::p_locals>;
15086};
15088 using node = SgExecStatement;
15089 using base = SgStatement;
15090 static constexpr char const * const name{"ExecStatement"};
15091 static constexpr unsigned long variant{409};
15092 static constexpr bool concrete{true};
15093 using subclasses_t = mp::List<>;
15095};
15096template <> struct node_from_variant_t<409> { using type = SgExecStatement; };
15097
15098// Class: ExponentiationOp
15100 using node = SgExponentiationOp;
15101 using base = SgBinaryOp;
15102 static constexpr char const * const name{"ExponentiationOp"};
15103 static constexpr unsigned long variant{410};
15104 static constexpr bool concrete{true};
15105 using subclasses_t = mp::List<>;
15106 using fields_t = mp::List<>;
15107};
15108template <> struct node_from_variant_t<410> { using type = SgExponentiationOp; };
15109
15110// Class: ExponentiationAssignOp
15113 using base = SgCompoundAssignOp;
15114 static constexpr char const * const name{"ExponentiationAssignOp"};
15115 static constexpr unsigned long variant{411};
15116 static constexpr bool concrete{true};
15117 using subclasses_t = mp::List<>;
15118 using fields_t = mp::List<>;
15119};
15120template <> struct node_from_variant_t<411> { using type = SgExponentiationAssignOp; };
15121
15122// Class: ExprListExp
15123template <> struct describe_field_t<SgExprListExp,SgExpressionPtrList,&SgExprListExp::p_expressions> {
15124 using parent = SgExprListExp;
15125 using field_type = SgExpressionPtrList;
15126 static constexpr size_t position{0};
15127 static constexpr char const * const name{"expressions"};
15128 static constexpr char const * const typestr{"SgExpressionPtrList"};
15129 static constexpr bool traverse{true};
15130 static constexpr auto mbr_ptr{&SgExprListExp::p_expressions};
15131 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15132 using bind = Desc<SgExprListExp, SgExpressionPtrList SgExprListExp::*, &SgExprListExp::p_expressions>;
15133};
15134template <> struct describe_node_t<SgExprListExp> {
15135 using node = SgExprListExp;
15136 using base = SgExpression;
15137 static constexpr char const * const name{"ExprListExp"};
15138 static constexpr unsigned long variant{412};
15139 static constexpr bool concrete{true};
15142};
15143template <> struct node_from_variant_t<412> { using type = SgExprListExp; };
15144
15145// Class: ExprStatement
15146template <> struct describe_field_t<SgExprStatement,SgExpression*,&SgExprStatement::p_expression> {
15147 using parent = SgExprStatement;
15148 using field_type = SgExpression*;
15149 static constexpr size_t position{0};
15150 static constexpr char const * const name{"expression"};
15151 static constexpr char const * const typestr{"SgExpression*"};
15152 static constexpr bool traverse{true};
15153 static constexpr auto mbr_ptr{&SgExprStatement::p_expression};
15154 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15155 using bind = Desc<SgExprStatement, SgExpression* SgExprStatement::*, &SgExprStatement::p_expression>;
15156};
15158 using node = SgExprStatement;
15159 using base = SgStatement;
15160 static constexpr char const * const name{"ExprStatement"};
15161 static constexpr unsigned long variant{413};
15162 static constexpr bool concrete{true};
15163 using subclasses_t = mp::List<>;
15165};
15166template <> struct node_from_variant_t<413> { using type = SgExprStatement; };
15167
15168// Class: Expression
15170 using parent = SgExpression;
15171 using field_type = bool;
15172 static constexpr size_t position{0};
15173 static constexpr char const * const name{"need_paren"};
15174 static constexpr char const * const typestr{"bool"};
15175 static constexpr bool traverse{false};
15176 static constexpr auto mbr_ptr{&SgExpression::p_need_paren};
15177 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15178 using bind = Desc<SgExpression, bool SgExpression::*, &SgExpression::p_need_paren>;
15179};
15181 using parent = SgExpression;
15182 using field_type = bool;
15183 static constexpr size_t position{1};
15184 static constexpr char const * const name{"lvalue"};
15185 static constexpr char const * const typestr{"bool"};
15186 static constexpr bool traverse{false};
15187 static constexpr auto mbr_ptr{&SgExpression::p_lvalue};
15188 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15189 using bind = Desc<SgExpression, bool SgExpression::*, &SgExpression::p_lvalue>;
15190};
15191template <> struct describe_field_t<SgExpression,bool,&SgExpression::p_global_qualified_name> {
15192 using parent = SgExpression;
15193 using field_type = bool;
15194 static constexpr size_t position{2};
15195 static constexpr char const * const name{"global_qualified_name"};
15196 static constexpr char const * const typestr{"bool"};
15197 static constexpr bool traverse{false};
15198 static constexpr auto mbr_ptr{&SgExpression::p_global_qualified_name};
15199 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15200 using bind = Desc<SgExpression, bool SgExpression::*, &SgExpression::p_global_qualified_name>;
15201};
15202template <> struct describe_field_t<SgExpression,Sg_File_Info*,&SgExpression::p_operatorPosition> {
15203 using parent = SgExpression;
15204 using field_type = Sg_File_Info*;
15205 static constexpr size_t position{3};
15206 static constexpr char const * const name{"operatorPosition"};
15207 static constexpr char const * const typestr{"Sg_File_Info*"};
15208 static constexpr bool traverse{false};
15209 static constexpr auto mbr_ptr{&SgExpression::p_operatorPosition};
15210 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15211 using bind = Desc<SgExpression, Sg_File_Info* SgExpression::*, &SgExpression::p_operatorPosition>;
15212};
15213template <> struct describe_node_t<SgExpression> {
15214 using node = SgExpression;
15215 using base = SgLocatedNode;
15216 static constexpr char const * const name{"Expression"};
15217 static constexpr unsigned long variant{414};
15218 static constexpr bool concrete{false};
15221};
15222template <> struct node_from_variant_t<414> { using type = SgExpression; };
15223
15224// Class: ExpressionRoot
15226 using node = SgExpressionRoot;
15227 using base = SgUnaryOp;
15228 static constexpr char const * const name{"ExpressionRoot"};
15229 static constexpr unsigned long variant{415};
15230 static constexpr bool concrete{true};
15231 using subclasses_t = mp::List<>;
15232 using fields_t = mp::List<>;
15233};
15234template <> struct node_from_variant_t<415> { using type = SgExpressionRoot; };
15235
15236// Class: File
15237template <> struct describe_field_t<SgFile,Sg_File_Info*,&SgFile::p_startOfConstruct> {
15238 using parent = SgFile;
15239 using field_type = Sg_File_Info*;
15240 static constexpr size_t position{0};
15241 static constexpr char const * const name{"startOfConstruct"};
15242 static constexpr char const * const typestr{"Sg_File_Info*"};
15243 static constexpr bool traverse{false};
15244 static constexpr auto mbr_ptr{&SgFile::p_startOfConstruct};
15245 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15246 using bind = Desc<SgFile, Sg_File_Info* SgFile::*, &SgFile::p_startOfConstruct>;
15247};
15249 using parent = SgFile;
15250 using field_type = SgStringList;
15251 static constexpr size_t position{1};
15252 static constexpr char const * const name{"originalCommandLineArgumentList"};
15253 static constexpr char const * const typestr{"SgStringList"};
15254 static constexpr bool traverse{false};
15255 static constexpr auto mbr_ptr{&SgFile::p_originalCommandLineArgumentList};
15256 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15257 using bind = Desc<SgFile, SgStringList SgFile::*, &SgFile::p_originalCommandLineArgumentList>;
15258};
15259template <> struct describe_field_t<SgFile,int,&SgFile::p_verbose> {
15260 using parent = SgFile;
15261 using field_type = int;
15262 static constexpr size_t position{2};
15263 static constexpr char const * const name{"verbose"};
15264 static constexpr char const * const typestr{"int"};
15265 static constexpr bool traverse{false};
15266 static constexpr auto mbr_ptr{&SgFile::p_verbose};
15267 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15268 using bind = Desc<SgFile, int SgFile::*, &SgFile::p_verbose>;
15269};
15270template <> struct describe_field_t<SgFile,bool,&SgFile::p_output_warnings> {
15271 using parent = SgFile;
15272 using field_type = bool;
15273 static constexpr size_t position{3};
15274 static constexpr char const * const name{"output_warnings"};
15275 static constexpr char const * const typestr{"bool"};
15276 static constexpr bool traverse{false};
15277 static constexpr auto mbr_ptr{&SgFile::p_output_warnings};
15278 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15279 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_output_warnings>;
15280};
15281template <> struct describe_field_t<SgFile,bool,&SgFile::p_C_only> {
15282 using parent = SgFile;
15283 using field_type = bool;
15284 static constexpr size_t position{4};
15285 static constexpr char const * const name{"C_only"};
15286 static constexpr char const * const typestr{"bool"};
15287 static constexpr bool traverse{false};
15288 static constexpr auto mbr_ptr{&SgFile::p_C_only};
15289 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15290 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_C_only>;
15291};
15292template <> struct describe_field_t<SgFile,bool,&SgFile::p_Cxx_only> {
15293 using parent = SgFile;
15294 using field_type = bool;
15295 static constexpr size_t position{5};
15296 static constexpr char const * const name{"Cxx_only"};
15297 static constexpr char const * const typestr{"bool"};
15298 static constexpr bool traverse{false};
15299 static constexpr auto mbr_ptr{&SgFile::p_Cxx_only};
15300 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15301 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_Cxx_only>;
15302};
15303template <> struct describe_field_t<SgFile,bool,&SgFile::p_Fortran_only> {
15304 using parent = SgFile;
15305 using field_type = bool;
15306 static constexpr size_t position{6};
15307 static constexpr char const * const name{"Fortran_only"};
15308 static constexpr char const * const typestr{"bool"};
15309 static constexpr bool traverse{false};
15310 static constexpr auto mbr_ptr{&SgFile::p_Fortran_only};
15311 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15312 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_Fortran_only>;
15313};
15314template <> struct describe_field_t<SgFile,bool,&SgFile::p_CoArrayFortran_only> {
15315 using parent = SgFile;
15316 using field_type = bool;
15317 static constexpr size_t position{7};
15318 static constexpr char const * const name{"CoArrayFortran_only"};
15319 static constexpr char const * const typestr{"bool"};
15320 static constexpr bool traverse{false};
15321 static constexpr auto mbr_ptr{&SgFile::p_CoArrayFortran_only};
15322 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15323 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_CoArrayFortran_only>;
15324};
15325template <> struct describe_field_t<SgFile,int,&SgFile::p_upc_threads> {
15326 using parent = SgFile;
15327 using field_type = int;
15328 static constexpr size_t position{8};
15329 static constexpr char const * const name{"upc_threads"};
15330 static constexpr char const * const typestr{"int"};
15331 static constexpr bool traverse{false};
15332 static constexpr auto mbr_ptr{&SgFile::p_upc_threads};
15333 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15334 using bind = Desc<SgFile, int SgFile::*, &SgFile::p_upc_threads>;
15335};
15336template <> struct describe_field_t<SgFile,bool,&SgFile::p_Java_only> {
15337 using parent = SgFile;
15338 using field_type = bool;
15339 static constexpr size_t position{9};
15340 static constexpr char const * const name{"Java_only"};
15341 static constexpr char const * const typestr{"bool"};
15342 static constexpr bool traverse{false};
15343 static constexpr auto mbr_ptr{&SgFile::p_Java_only};
15344 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15345 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_Java_only>;
15346};
15347template <> struct describe_field_t<SgFile,bool,&SgFile::p_Jvm_only> {
15348 using parent = SgFile;
15349 using field_type = bool;
15350 static constexpr size_t position{10};
15351 static constexpr char const * const name{"Jvm_only"};
15352 static constexpr char const * const typestr{"bool"};
15353 static constexpr bool traverse{false};
15354 static constexpr auto mbr_ptr{&SgFile::p_Jvm_only};
15355 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15356 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_Jvm_only>;
15357};
15358template <> struct describe_field_t<SgFile,bool,&SgFile::p_Jovial_only> {
15359 using parent = SgFile;
15360 using field_type = bool;
15361 static constexpr size_t position{11};
15362 static constexpr char const * const name{"Jovial_only"};
15363 static constexpr char const * const typestr{"bool"};
15364 static constexpr bool traverse{false};
15365 static constexpr auto mbr_ptr{&SgFile::p_Jovial_only};
15366 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15367 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_Jovial_only>;
15368};
15369template <> struct describe_field_t<SgFile,bool,&SgFile::p_PHP_only> {
15370 using parent = SgFile;
15371 using field_type = bool;
15372 static constexpr size_t position{12};
15373 static constexpr char const * const name{"PHP_only"};
15374 static constexpr char const * const typestr{"bool"};
15375 static constexpr bool traverse{false};
15376 static constexpr auto mbr_ptr{&SgFile::p_PHP_only};
15377 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15378 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_PHP_only>;
15379};
15380template <> struct describe_field_t<SgFile,bool,&SgFile::p_Python_only> {
15381 using parent = SgFile;
15382 using field_type = bool;
15383 static constexpr size_t position{13};
15384 static constexpr char const * const name{"Python_only"};
15385 static constexpr char const * const typestr{"bool"};
15386 static constexpr bool traverse{false};
15387 static constexpr auto mbr_ptr{&SgFile::p_Python_only};
15388 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15389 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_Python_only>;
15390};
15391template <> struct describe_field_t<SgFile,bool,&SgFile::p_Cuda_only> {
15392 using parent = SgFile;
15393 using field_type = bool;
15394 static constexpr size_t position{14};
15395 static constexpr char const * const name{"Cuda_only"};
15396 static constexpr char const * const typestr{"bool"};
15397 static constexpr bool traverse{false};
15398 static constexpr auto mbr_ptr{&SgFile::p_Cuda_only};
15399 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15400 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_Cuda_only>;
15401};
15402template <> struct describe_field_t<SgFile,bool,&SgFile::p_OpenCL_only> {
15403 using parent = SgFile;
15404 using field_type = bool;
15405 static constexpr size_t position{15};
15406 static constexpr char const * const name{"OpenCL_only"};
15407 static constexpr char const * const typestr{"bool"};
15408 static constexpr bool traverse{false};
15409 static constexpr auto mbr_ptr{&SgFile::p_OpenCL_only};
15410 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15411 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_OpenCL_only>;
15412};
15413template <> struct describe_field_t<SgFile,bool,&SgFile::p_Csharp_only> {
15414 using parent = SgFile;
15415 using field_type = bool;
15416 static constexpr size_t position{16};
15417 static constexpr char const * const name{"Csharp_only"};
15418 static constexpr char const * const typestr{"bool"};
15419 static constexpr bool traverse{false};
15420 static constexpr auto mbr_ptr{&SgFile::p_Csharp_only};
15421 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15422 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_Csharp_only>;
15423};
15424template <> struct describe_field_t<SgFile,bool,&SgFile::p_Ada_only> {
15425 using parent = SgFile;
15426 using field_type = bool;
15427 static constexpr size_t position{17};
15428 static constexpr char const * const name{"Ada_only"};
15429 static constexpr char const * const typestr{"bool"};
15430 static constexpr bool traverse{false};
15431 static constexpr auto mbr_ptr{&SgFile::p_Ada_only};
15432 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15433 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_Ada_only>;
15434};
15435template <> struct describe_field_t<SgFile,bool,&SgFile::p_requires_C_preprocessor> {
15436 using parent = SgFile;
15437 using field_type = bool;
15438 static constexpr size_t position{18};
15439 static constexpr char const * const name{"requires_C_preprocessor"};
15440 static constexpr char const * const typestr{"bool"};
15441 static constexpr bool traverse{false};
15442 static constexpr auto mbr_ptr{&SgFile::p_requires_C_preprocessor};
15443 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15444 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_requires_C_preprocessor>;
15445};
15446template <> struct describe_field_t<SgFile,bool,&SgFile::p_binary_only> {
15447 using parent = SgFile;
15448 using field_type = bool;
15449 static constexpr size_t position{19};
15450 static constexpr char const * const name{"binary_only"};
15451 static constexpr char const * const typestr{"bool"};
15452 static constexpr bool traverse{false};
15453 static constexpr auto mbr_ptr{&SgFile::p_binary_only};
15454 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15455 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_binary_only>;
15456};
15457template <> struct describe_field_t<SgFile,SgFile::outputFormatOption_enum,&SgFile::p_inputFormat> {
15458 using parent = SgFile;
15460 static constexpr size_t position{20};
15461 static constexpr char const * const name{"inputFormat"};
15462 static constexpr char const * const typestr{"SgFile::outputFormatOption_enum"};
15463 static constexpr bool traverse{false};
15464 static constexpr auto mbr_ptr{&SgFile::p_inputFormat};
15465 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15466 using bind = Desc<SgFile, SgFile::outputFormatOption_enum SgFile::*, &SgFile::p_inputFormat>;
15467};
15468template <> struct describe_field_t<SgFile,SgFile::outputFormatOption_enum,&SgFile::p_outputFormat> {
15469 using parent = SgFile;
15471 static constexpr size_t position{21};
15472 static constexpr char const * const name{"outputFormat"};
15473 static constexpr char const * const typestr{"SgFile::outputFormatOption_enum"};
15474 static constexpr bool traverse{false};
15475 static constexpr auto mbr_ptr{&SgFile::p_outputFormat};
15476 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15477 using bind = Desc<SgFile, SgFile::outputFormatOption_enum SgFile::*, &SgFile::p_outputFormat>;
15478};
15479template <> struct describe_field_t<SgFile,SgFile::outputFormatOption_enum,&SgFile::p_backendCompileFormat> {
15480 using parent = SgFile;
15482 static constexpr size_t position{22};
15483 static constexpr char const * const name{"backendCompileFormat"};
15484 static constexpr char const * const typestr{"SgFile::outputFormatOption_enum"};
15485 static constexpr bool traverse{false};
15486 static constexpr auto mbr_ptr{&SgFile::p_backendCompileFormat};
15487 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15488 using bind = Desc<SgFile, SgFile::outputFormatOption_enum SgFile::*, &SgFile::p_backendCompileFormat>;
15489};
15490template <> struct describe_field_t<SgFile,bool,&SgFile::p_fortran_implicit_none> {
15491 using parent = SgFile;
15492 using field_type = bool;
15493 static constexpr size_t position{23};
15494 static constexpr char const * const name{"fortran_implicit_none"};
15495 static constexpr char const * const typestr{"bool"};
15496 static constexpr bool traverse{false};
15497 static constexpr auto mbr_ptr{&SgFile::p_fortran_implicit_none};
15498 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15499 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_fortran_implicit_none>;
15500};
15501template <> struct describe_field_t<SgFile,bool,&SgFile::p_openmp> {
15502 using parent = SgFile;
15503 using field_type = bool;
15504 static constexpr size_t position{24};
15505 static constexpr char const * const name{"openmp"};
15506 static constexpr char const * const typestr{"bool"};
15507 static constexpr bool traverse{false};
15508 static constexpr auto mbr_ptr{&SgFile::p_openmp};
15509 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15510 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_openmp>;
15511};
15512template <> struct describe_field_t<SgFile,bool,&SgFile::p_openmp_parse_only> {
15513 using parent = SgFile;
15514 using field_type = bool;
15515 static constexpr size_t position{25};
15516 static constexpr char const * const name{"openmp_parse_only"};
15517 static constexpr char const * const typestr{"bool"};
15518 static constexpr bool traverse{false};
15519 static constexpr auto mbr_ptr{&SgFile::p_openmp_parse_only};
15520 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15521 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_openmp_parse_only>;
15522};
15523template <> struct describe_field_t<SgFile,bool,&SgFile::p_openmp_ast_only> {
15524 using parent = SgFile;
15525 using field_type = bool;
15526 static constexpr size_t position{26};
15527 static constexpr char const * const name{"openmp_ast_only"};
15528 static constexpr char const * const typestr{"bool"};
15529 static constexpr bool traverse{false};
15530 static constexpr auto mbr_ptr{&SgFile::p_openmp_ast_only};
15531 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15532 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_openmp_ast_only>;
15533};
15534template <> struct describe_field_t<SgFile,bool,&SgFile::p_openmp_lowering> {
15535 using parent = SgFile;
15536 using field_type = bool;
15537 static constexpr size_t position{27};
15538 static constexpr char const * const name{"openmp_lowering"};
15539 static constexpr char const * const typestr{"bool"};
15540 static constexpr bool traverse{false};
15541 static constexpr auto mbr_ptr{&SgFile::p_openmp_lowering};
15542 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15543 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_openmp_lowering>;
15544};
15545template <> struct describe_field_t<SgFile,bool,&SgFile::p_openacc> {
15546 using parent = SgFile;
15547 using field_type = bool;
15548 static constexpr size_t position{28};
15549 static constexpr char const * const name{"openacc"};
15550 static constexpr char const * const typestr{"bool"};
15551 static constexpr bool traverse{false};
15552 static constexpr auto mbr_ptr{&SgFile::p_openacc};
15553 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15554 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_openacc>;
15555};
15556template <> struct describe_field_t<SgFile,bool,&SgFile::p_openacc_parse_only> {
15557 using parent = SgFile;
15558 using field_type = bool;
15559 static constexpr size_t position{29};
15560 static constexpr char const * const name{"openacc_parse_only"};
15561 static constexpr char const * const typestr{"bool"};
15562 static constexpr bool traverse{false};
15563 static constexpr auto mbr_ptr{&SgFile::p_openacc_parse_only};
15564 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15565 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_openacc_parse_only>;
15566};
15567template <> struct describe_field_t<SgFile,bool,&SgFile::p_openacc_ast_only> {
15568 using parent = SgFile;
15569 using field_type = bool;
15570 static constexpr size_t position{30};
15571 static constexpr char const * const name{"openacc_ast_only"};
15572 static constexpr char const * const typestr{"bool"};
15573 static constexpr bool traverse{false};
15574 static constexpr auto mbr_ptr{&SgFile::p_openacc_ast_only};
15575 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15576 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_openacc_ast_only>;
15577};
15578template <> struct describe_field_t<SgFile,bool,&SgFile::p_cray_pointer_support> {
15579 using parent = SgFile;
15580 using field_type = bool;
15581 static constexpr size_t position{31};
15582 static constexpr char const * const name{"cray_pointer_support"};
15583 static constexpr char const * const typestr{"bool"};
15584 static constexpr bool traverse{false};
15585 static constexpr auto mbr_ptr{&SgFile::p_cray_pointer_support};
15586 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15587 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_cray_pointer_support>;
15588};
15589template <> struct describe_field_t<SgFile,bool,&SgFile::p_failsafe> {
15590 using parent = SgFile;
15591 using field_type = bool;
15592 static constexpr size_t position{32};
15593 static constexpr char const * const name{"failsafe"};
15594 static constexpr char const * const typestr{"bool"};
15595 static constexpr bool traverse{false};
15596 static constexpr auto mbr_ptr{&SgFile::p_failsafe};
15597 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15598 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_failsafe>;
15599};
15600template <> struct describe_field_t<SgFile,bool,&SgFile::p_output_parser_actions> {
15601 using parent = SgFile;
15602 using field_type = bool;
15603 static constexpr size_t position{33};
15604 static constexpr char const * const name{"output_parser_actions"};
15605 static constexpr char const * const typestr{"bool"};
15606 static constexpr bool traverse{false};
15607 static constexpr auto mbr_ptr{&SgFile::p_output_parser_actions};
15608 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15609 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_output_parser_actions>;
15610};
15611template <> struct describe_field_t<SgFile,bool,&SgFile::p_exit_after_parser> {
15612 using parent = SgFile;
15613 using field_type = bool;
15614 static constexpr size_t position{34};
15615 static constexpr char const * const name{"exit_after_parser"};
15616 static constexpr char const * const typestr{"bool"};
15617 static constexpr bool traverse{false};
15618 static constexpr auto mbr_ptr{&SgFile::p_exit_after_parser};
15619 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15620 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_exit_after_parser>;
15621};
15622template <> struct describe_field_t<SgFile,bool,&SgFile::p_skip_syntax_check> {
15623 using parent = SgFile;
15624 using field_type = bool;
15625 static constexpr size_t position{35};
15626 static constexpr char const * const name{"skip_syntax_check"};
15627 static constexpr char const * const typestr{"bool"};
15628 static constexpr bool traverse{false};
15629 static constexpr auto mbr_ptr{&SgFile::p_skip_syntax_check};
15630 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15631 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_skip_syntax_check>;
15632};
15633template <> struct describe_field_t<SgFile,bool,&SgFile::p_skip_parser> {
15634 using parent = SgFile;
15635 using field_type = bool;
15636 static constexpr size_t position{36};
15637 static constexpr char const * const name{"skip_parser"};
15638 static constexpr char const * const typestr{"bool"};
15639 static constexpr bool traverse{false};
15640 static constexpr auto mbr_ptr{&SgFile::p_skip_parser};
15641 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15642 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_skip_parser>;
15643};
15644template <> struct describe_field_t<SgFile,bool,&SgFile::p_relax_syntax_check> {
15645 using parent = SgFile;
15646 using field_type = bool;
15647 static constexpr size_t position{37};
15648 static constexpr char const * const name{"relax_syntax_check"};
15649 static constexpr char const * const typestr{"bool"};
15650 static constexpr bool traverse{false};
15651 static constexpr auto mbr_ptr{&SgFile::p_relax_syntax_check};
15652 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15653 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_relax_syntax_check>;
15654};
15655template <> struct describe_field_t<SgFile,bool,&SgFile::p_skip_translation_from_edg_ast_to_rose_ast> {
15656 using parent = SgFile;
15657 using field_type = bool;
15658 static constexpr size_t position{38};
15659 static constexpr char const * const name{"skip_translation_from_edg_ast_to_rose_ast"};
15660 static constexpr char const * const typestr{"bool"};
15661 static constexpr bool traverse{false};
15662 static constexpr auto mbr_ptr{&SgFile::p_skip_translation_from_edg_ast_to_rose_ast};
15663 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15664 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_skip_translation_from_edg_ast_to_rose_ast>;
15665};
15666template <> struct describe_field_t<SgFile,bool,&SgFile::p_skip_transformation> {
15667 using parent = SgFile;
15668 using field_type = bool;
15669 static constexpr size_t position{39};
15670 static constexpr char const * const name{"skip_transformation"};
15671 static constexpr char const * const typestr{"bool"};
15672 static constexpr bool traverse{false};
15673 static constexpr auto mbr_ptr{&SgFile::p_skip_transformation};
15674 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15675 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_skip_transformation>;
15676};
15677template <> struct describe_field_t<SgFile,bool,&SgFile::p_skip_unparse> {
15678 using parent = SgFile;
15679 using field_type = bool;
15680 static constexpr size_t position{40};
15681 static constexpr char const * const name{"skip_unparse"};
15682 static constexpr char const * const typestr{"bool"};
15683 static constexpr bool traverse{false};
15684 static constexpr auto mbr_ptr{&SgFile::p_skip_unparse};
15685 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15686 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_skip_unparse>;
15687};
15688template <> struct describe_field_t<SgFile,bool,&SgFile::p_skipfinalCompileStep> {
15689 using parent = SgFile;
15690 using field_type = bool;
15691 static constexpr size_t position{41};
15692 static constexpr char const * const name{"skipfinalCompileStep"};
15693 static constexpr char const * const typestr{"bool"};
15694 static constexpr bool traverse{false};
15695 static constexpr auto mbr_ptr{&SgFile::p_skipfinalCompileStep};
15696 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15697 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_skipfinalCompileStep>;
15698};
15699template <> struct describe_field_t<SgFile,bool,&SgFile::p_unparse_includes> {
15700 using parent = SgFile;
15701 using field_type = bool;
15702 static constexpr size_t position{42};
15703 static constexpr char const * const name{"unparse_includes"};
15704 static constexpr char const * const typestr{"bool"};
15705 static constexpr bool traverse{false};
15706 static constexpr auto mbr_ptr{&SgFile::p_unparse_includes};
15707 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15708 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_unparse_includes>;
15709};
15710template <> struct describe_field_t<SgFile,bool,&SgFile::p_unparse_line_directives> {
15711 using parent = SgFile;
15712 using field_type = bool;
15713 static constexpr size_t position{43};
15714 static constexpr char const * const name{"unparse_line_directives"};
15715 static constexpr char const * const typestr{"bool"};
15716 static constexpr bool traverse{false};
15717 static constexpr auto mbr_ptr{&SgFile::p_unparse_line_directives};
15718 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15719 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_unparse_line_directives>;
15720};
15721template <> struct describe_field_t<SgFile,bool,&SgFile::p_unparse_function_calls_using_operator_syntax> {
15722 using parent = SgFile;
15723 using field_type = bool;
15724 static constexpr size_t position{44};
15725 static constexpr char const * const name{"unparse_function_calls_using_operator_syntax"};
15726 static constexpr char const * const typestr{"bool"};
15727 static constexpr bool traverse{false};
15728 static constexpr auto mbr_ptr{&SgFile::p_unparse_function_calls_using_operator_syntax};
15729 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15730 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_unparse_function_calls_using_operator_syntax>;
15731};
15732template <> struct describe_field_t<SgFile,bool,&SgFile::p_unparse_function_calls_using_operator_names> {
15733 using parent = SgFile;
15734 using field_type = bool;
15735 static constexpr size_t position{45};
15736 static constexpr char const * const name{"unparse_function_calls_using_operator_names"};
15737 static constexpr char const * const typestr{"bool"};
15738 static constexpr bool traverse{false};
15739 static constexpr auto mbr_ptr{&SgFile::p_unparse_function_calls_using_operator_names};
15740 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15741 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_unparse_function_calls_using_operator_names>;
15742};
15743template <> struct describe_field_t<SgFile,bool,&SgFile::p_unparse_instruction_addresses> {
15744 using parent = SgFile;
15745 using field_type = bool;
15746 static constexpr size_t position{46};
15747 static constexpr char const * const name{"unparse_instruction_addresses"};
15748 static constexpr char const * const typestr{"bool"};
15749 static constexpr bool traverse{false};
15750 static constexpr auto mbr_ptr{&SgFile::p_unparse_instruction_addresses};
15751 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15752 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_unparse_instruction_addresses>;
15753};
15754template <> struct describe_field_t<SgFile,bool,&SgFile::p_unparse_raw_memory_contents> {
15755 using parent = SgFile;
15756 using field_type = bool;
15757 static constexpr size_t position{47};
15758 static constexpr char const * const name{"unparse_raw_memory_contents"};
15759 static constexpr char const * const typestr{"bool"};
15760 static constexpr bool traverse{false};
15761 static constexpr auto mbr_ptr{&SgFile::p_unparse_raw_memory_contents};
15762 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15763 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_unparse_raw_memory_contents>;
15764};
15765template <> struct describe_field_t<SgFile,bool,&SgFile::p_unparse_binary_file_format> {
15766 using parent = SgFile;
15767 using field_type = bool;
15768 static constexpr size_t position{48};
15769 static constexpr char const * const name{"unparse_binary_file_format"};
15770 static constexpr char const * const typestr{"bool"};
15771 static constexpr bool traverse{false};
15772 static constexpr auto mbr_ptr{&SgFile::p_unparse_binary_file_format};
15773 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15774 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_unparse_binary_file_format>;
15775};
15776template <> struct describe_field_t<SgFile,SgFile::languageOption_enum,&SgFile::p_outputLanguage> {
15777 using parent = SgFile;
15779 static constexpr size_t position{49};
15780 static constexpr char const * const name{"outputLanguage"};
15781 static constexpr char const * const typestr{"SgFile::languageOption_enum"};
15782 static constexpr bool traverse{false};
15783 static constexpr auto mbr_ptr{&SgFile::p_outputLanguage};
15784 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15785 using bind = Desc<SgFile, SgFile::languageOption_enum SgFile::*, &SgFile::p_outputLanguage>;
15786};
15787template <> struct describe_field_t<SgFile,SgFile::languageOption_enum,&SgFile::p_inputLanguage> {
15788 using parent = SgFile;
15790 static constexpr size_t position{50};
15791 static constexpr char const * const name{"inputLanguage"};
15792 static constexpr char const * const typestr{"SgFile::languageOption_enum"};
15793 static constexpr bool traverse{false};
15794 static constexpr auto mbr_ptr{&SgFile::p_inputLanguage};
15795 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15796 using bind = Desc<SgFile, SgFile::languageOption_enum SgFile::*, &SgFile::p_inputLanguage>;
15797};
15798template <> struct describe_field_t<SgFile,std::string,&SgFile::p_sourceFileNameWithPath> {
15799 using parent = SgFile;
15800 using field_type = std::string;
15801 static constexpr size_t position{51};
15802 static constexpr char const * const name{"sourceFileNameWithPath"};
15803 static constexpr char const * const typestr{"std::string"};
15804 static constexpr bool traverse{false};
15805 static constexpr auto mbr_ptr{&SgFile::p_sourceFileNameWithPath};
15806 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15807 using bind = Desc<SgFile, std::string SgFile::*, &SgFile::p_sourceFileNameWithPath>;
15808};
15809template <> struct describe_field_t<SgFile,std::string,&SgFile::p_sourceFileNameWithoutPath> {
15810 using parent = SgFile;
15811 using field_type = std::string;
15812 static constexpr size_t position{52};
15813 static constexpr char const * const name{"sourceFileNameWithoutPath"};
15814 static constexpr char const * const typestr{"std::string"};
15815 static constexpr bool traverse{false};
15816 static constexpr auto mbr_ptr{&SgFile::p_sourceFileNameWithoutPath};
15817 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15818 using bind = Desc<SgFile, std::string SgFile::*, &SgFile::p_sourceFileNameWithoutPath>;
15819};
15820template <> struct describe_field_t<SgFile,std::string,&SgFile::p_unparse_output_filename> {
15821 using parent = SgFile;
15822 using field_type = std::string;
15823 static constexpr size_t position{53};
15824 static constexpr char const * const name{"unparse_output_filename"};
15825 static constexpr char const * const typestr{"std::string"};
15826 static constexpr bool traverse{false};
15827 static constexpr auto mbr_ptr{&SgFile::p_unparse_output_filename};
15828 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15829 using bind = Desc<SgFile, std::string SgFile::*, &SgFile::p_unparse_output_filename>;
15830};
15831template <> struct describe_field_t<SgFile,std::string,&SgFile::p_objectFileNameWithPath> {
15832 using parent = SgFile;
15833 using field_type = std::string;
15834 static constexpr size_t position{54};
15835 static constexpr char const * const name{"objectFileNameWithPath"};
15836 static constexpr char const * const typestr{"std::string"};
15837 static constexpr bool traverse{false};
15838 static constexpr auto mbr_ptr{&SgFile::p_objectFileNameWithPath};
15839 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15840 using bind = Desc<SgFile, std::string SgFile::*, &SgFile::p_objectFileNameWithPath>;
15841};
15842template <> struct describe_field_t<SgFile,std::string,&SgFile::p_objectFileNameWithoutPath> {
15843 using parent = SgFile;
15844 using field_type = std::string;
15845 static constexpr size_t position{55};
15846 static constexpr char const * const name{"objectFileNameWithoutPath"};
15847 static constexpr char const * const typestr{"std::string"};
15848 static constexpr bool traverse{false};
15849 static constexpr auto mbr_ptr{&SgFile::p_objectFileNameWithoutPath};
15850 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15851 using bind = Desc<SgFile, std::string SgFile::*, &SgFile::p_objectFileNameWithoutPath>;
15852};
15853template <> struct describe_field_t<SgFile,bool,&SgFile::p_useBackendOnly> {
15854 using parent = SgFile;
15855 using field_type = bool;
15856 static constexpr size_t position{56};
15857 static constexpr char const * const name{"useBackendOnly"};
15858 static constexpr char const * const typestr{"bool"};
15859 static constexpr bool traverse{false};
15860 static constexpr auto mbr_ptr{&SgFile::p_useBackendOnly};
15861 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15862 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_useBackendOnly>;
15863};
15864template <> struct describe_field_t<SgFile,bool,&SgFile::p_compileOnly> {
15865 using parent = SgFile;
15866 using field_type = bool;
15867 static constexpr size_t position{57};
15868 static constexpr char const * const name{"compileOnly"};
15869 static constexpr char const * const typestr{"bool"};
15870 static constexpr bool traverse{false};
15871 static constexpr auto mbr_ptr{&SgFile::p_compileOnly};
15872 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15873 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_compileOnly>;
15874};
15875template <> struct describe_field_t<SgFile,std::string,&SgFile::p_savedFrontendCommandLine> {
15876 using parent = SgFile;
15877 using field_type = std::string;
15878 static constexpr size_t position{58};
15879 static constexpr char const * const name{"savedFrontendCommandLine"};
15880 static constexpr char const * const typestr{"std::string"};
15881 static constexpr bool traverse{false};
15882 static constexpr auto mbr_ptr{&SgFile::p_savedFrontendCommandLine};
15883 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15884 using bind = Desc<SgFile, std::string SgFile::*, &SgFile::p_savedFrontendCommandLine>;
15885};
15887 using parent = SgFile;
15888 using field_type = bool;
15889 static constexpr size_t position{59};
15890 static constexpr char const * const name{"no_implicit_templates"};
15891 static constexpr char const * const typestr{"bool"};
15892 static constexpr bool traverse{false};
15893 static constexpr auto mbr_ptr{&SgFile::p_no_implicit_templates};
15894 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15895 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_no_implicit_templates>;
15896};
15898 using parent = SgFile;
15899 using field_type = bool;
15900 static constexpr size_t position{60};
15901 static constexpr char const * const name{"no_implicit_inline_templates"};
15902 static constexpr char const * const typestr{"bool"};
15903 static constexpr bool traverse{false};
15904 static constexpr auto mbr_ptr{&SgFile::p_no_implicit_inline_templates};
15905 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15906 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_no_implicit_inline_templates>;
15907};
15908template <> struct describe_field_t<SgFile,bool,&SgFile::p_skip_commentsAndDirectives> {
15909 using parent = SgFile;
15910 using field_type = bool;
15911 static constexpr size_t position{61};
15912 static constexpr char const * const name{"skip_commentsAndDirectives"};
15913 static constexpr char const * const typestr{"bool"};
15914 static constexpr bool traverse{false};
15915 static constexpr auto mbr_ptr{&SgFile::p_skip_commentsAndDirectives};
15916 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15917 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_skip_commentsAndDirectives>;
15918};
15919template <> struct describe_field_t<SgFile,bool,&SgFile::p_collectAllCommentsAndDirectives> {
15920 using parent = SgFile;
15921 using field_type = bool;
15922 static constexpr size_t position{62};
15923 static constexpr char const * const name{"collectAllCommentsAndDirectives"};
15924 static constexpr char const * const typestr{"bool"};
15925 static constexpr bool traverse{false};
15926 static constexpr auto mbr_ptr{&SgFile::p_collectAllCommentsAndDirectives};
15927 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15928 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_collectAllCommentsAndDirectives>;
15929};
15930template <> struct describe_field_t<SgFile,bool,&SgFile::p_translateCommentsAndDirectivesIntoAST> {
15931 using parent = SgFile;
15932 using field_type = bool;
15933 static constexpr size_t position{63};
15934 static constexpr char const * const name{"translateCommentsAndDirectivesIntoAST"};
15935 static constexpr char const * const typestr{"bool"};
15936 static constexpr bool traverse{false};
15937 static constexpr auto mbr_ptr{&SgFile::p_translateCommentsAndDirectivesIntoAST};
15938 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15939 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_translateCommentsAndDirectivesIntoAST>;
15940};
15941template <> struct describe_field_t<SgFile,bool,&SgFile::p_unparseHeaderFiles> {
15942 using parent = SgFile;
15943 using field_type = bool;
15944 static constexpr size_t position{64};
15945 static constexpr char const * const name{"unparseHeaderFiles"};
15946 static constexpr char const * const typestr{"bool"};
15947 static constexpr bool traverse{false};
15948 static constexpr auto mbr_ptr{&SgFile::p_unparseHeaderFiles};
15949 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15950 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_unparseHeaderFiles>;
15951};
15953 using parent = SgFile;
15955 static constexpr size_t position{65};
15956 static constexpr char const * const name{"preprocessorDirectivesAndCommentsList"};
15957 static constexpr char const * const typestr{"ROSEAttributesListContainerPtr"};
15958 static constexpr bool traverse{false};
15959 static constexpr auto mbr_ptr{&SgFile::p_preprocessorDirectivesAndCommentsList};
15960 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15961 using bind = Desc<SgFile, ROSEAttributesListContainerPtr SgFile::*, &SgFile::p_preprocessorDirectivesAndCommentsList>;
15962};
15963template <> struct describe_field_t<SgFile,AstAttributeMechanism*,&SgFile::p_attributeMechanism> {
15964 using parent = SgFile;
15966 static constexpr size_t position{66};
15967 static constexpr char const * const name{"attributeMechanism"};
15968 static constexpr char const * const typestr{"AstAttributeMechanism*"};
15969 static constexpr bool traverse{false};
15970 static constexpr auto mbr_ptr{&SgFile::p_attributeMechanism};
15971 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15972 using bind = Desc<SgFile, AstAttributeMechanism* SgFile::*, &SgFile::p_attributeMechanism>;
15973};
15974template <> struct describe_field_t<SgFile,bool,&SgFile::p_KCC_frontend> {
15975 using parent = SgFile;
15976 using field_type = bool;
15977 static constexpr size_t position{67};
15978 static constexpr char const * const name{"KCC_frontend"};
15979 static constexpr char const * const typestr{"bool"};
15980 static constexpr bool traverse{false};
15981 static constexpr auto mbr_ptr{&SgFile::p_KCC_frontend};
15982 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15983 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_KCC_frontend>;
15984};
15985template <> struct describe_field_t<SgFile,bool,&SgFile::p_new_frontend> {
15986 using parent = SgFile;
15987 using field_type = bool;
15988 static constexpr size_t position{68};
15989 static constexpr char const * const name{"new_frontend"};
15990 static constexpr char const * const typestr{"bool"};
15991 static constexpr bool traverse{false};
15992 static constexpr auto mbr_ptr{&SgFile::p_new_frontend};
15993 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
15994 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_new_frontend>;
15995};
15996template <> struct describe_field_t<SgFile,bool,&SgFile::p_disable_edg_backend> {
15997 using parent = SgFile;
15998 using field_type = bool;
15999 static constexpr size_t position{69};
16000 static constexpr char const * const name{"disable_edg_backend"};
16001 static constexpr char const * const typestr{"bool"};
16002 static constexpr bool traverse{false};
16003 static constexpr auto mbr_ptr{&SgFile::p_disable_edg_backend};
16004 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16005 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_disable_edg_backend>;
16006};
16007template <> struct describe_field_t<SgFile,bool,&SgFile::p_disable_sage_backend> {
16008 using parent = SgFile;
16009 using field_type = bool;
16010 static constexpr size_t position{70};
16011 static constexpr char const * const name{"disable_sage_backend"};
16012 static constexpr char const * const typestr{"bool"};
16013 static constexpr bool traverse{false};
16014 static constexpr auto mbr_ptr{&SgFile::p_disable_sage_backend};
16015 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16016 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_disable_sage_backend>;
16017};
16018template <> struct describe_field_t<SgFile,int,&SgFile::p_testingLevel> {
16019 using parent = SgFile;
16020 using field_type = int;
16021 static constexpr size_t position{71};
16022 static constexpr char const * const name{"testingLevel"};
16023 static constexpr char const * const typestr{"int"};
16024 static constexpr bool traverse{false};
16025 static constexpr auto mbr_ptr{&SgFile::p_testingLevel};
16026 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16027 using bind = Desc<SgFile, int SgFile::*, &SgFile::p_testingLevel>;
16028};
16029template <> struct describe_field_t<SgFile,bool,&SgFile::p_preinit_il> {
16030 using parent = SgFile;
16031 using field_type = bool;
16032 static constexpr size_t position{72};
16033 static constexpr char const * const name{"preinit_il"};
16034 static constexpr char const * const typestr{"bool"};
16035 static constexpr bool traverse{false};
16036 static constexpr auto mbr_ptr{&SgFile::p_preinit_il};
16037 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16038 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_preinit_il>;
16039};
16040template <> struct describe_field_t<SgFile,bool,&SgFile::p_enable_cp_backend> {
16041 using parent = SgFile;
16042 using field_type = bool;
16043 static constexpr size_t position{73};
16044 static constexpr char const * const name{"enable_cp_backend"};
16045 static constexpr char const * const typestr{"bool"};
16046 static constexpr bool traverse{false};
16047 static constexpr auto mbr_ptr{&SgFile::p_enable_cp_backend};
16048 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16049 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_enable_cp_backend>;
16050};
16051template <> struct describe_field_t<SgFile,bool,&SgFile::p_markGeneratedFiles> {
16052 using parent = SgFile;
16053 using field_type = bool;
16054 static constexpr size_t position{74};
16055 static constexpr char const * const name{"markGeneratedFiles"};
16056 static constexpr char const * const typestr{"bool"};
16057 static constexpr bool traverse{false};
16058 static constexpr auto mbr_ptr{&SgFile::p_markGeneratedFiles};
16059 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16060 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_markGeneratedFiles>;
16061};
16062template <> struct describe_field_t<SgFile,bool,&SgFile::p_negative_test> {
16063 using parent = SgFile;
16064 using field_type = bool;
16065 static constexpr size_t position{75};
16066 static constexpr char const * const name{"negative_test"};
16067 static constexpr char const * const typestr{"bool"};
16068 static constexpr bool traverse{false};
16069 static constexpr auto mbr_ptr{&SgFile::p_negative_test};
16070 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16071 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_negative_test>;
16072};
16073template <> struct describe_field_t<SgFile,bool,&SgFile::p_strict_language_handling> {
16074 using parent = SgFile;
16075 using field_type = bool;
16076 static constexpr size_t position{76};
16077 static constexpr char const * const name{"strict_language_handling"};
16078 static constexpr char const * const typestr{"bool"};
16079 static constexpr bool traverse{false};
16080 static constexpr auto mbr_ptr{&SgFile::p_strict_language_handling};
16081 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16082 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_strict_language_handling>;
16083};
16084template <> struct describe_field_t<SgFile,bool,&SgFile::p_wave> {
16085 using parent = SgFile;
16086 using field_type = bool;
16087 static constexpr size_t position{77};
16088 static constexpr char const * const name{"wave"};
16089 static constexpr char const * const typestr{"bool"};
16090 static constexpr bool traverse{false};
16091 static constexpr auto mbr_ptr{&SgFile::p_wave};
16092 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16093 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_wave>;
16094};
16095template <> struct describe_field_t<SgFile,int,&SgFile::p_embedColorCodesInGeneratedCode> {
16096 using parent = SgFile;
16097 using field_type = int;
16098 static constexpr size_t position{78};
16099 static constexpr char const * const name{"embedColorCodesInGeneratedCode"};
16100 static constexpr char const * const typestr{"int"};
16101 static constexpr bool traverse{false};
16102 static constexpr auto mbr_ptr{&SgFile::p_embedColorCodesInGeneratedCode};
16103 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16104 using bind = Desc<SgFile, int SgFile::*, &SgFile::p_embedColorCodesInGeneratedCode>;
16105};
16106template <> struct describe_field_t<SgFile,int,&SgFile::p_generateSourcePositionCodes> {
16107 using parent = SgFile;
16108 using field_type = int;
16109 static constexpr size_t position{79};
16110 static constexpr char const * const name{"generateSourcePositionCodes"};
16111 static constexpr char const * const typestr{"int"};
16112 static constexpr bool traverse{false};
16113 static constexpr auto mbr_ptr{&SgFile::p_generateSourcePositionCodes};
16114 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16115 using bind = Desc<SgFile, int SgFile::*, &SgFile::p_generateSourcePositionCodes>;
16116};
16117template <> struct describe_field_t<SgFile,bool,&SgFile::p_sourceFileUsesCppFileExtension> {
16118 using parent = SgFile;
16119 using field_type = bool;
16120 static constexpr size_t position{80};
16121 static constexpr char const * const name{"sourceFileUsesCppFileExtension"};
16122 static constexpr char const * const typestr{"bool"};
16123 static constexpr bool traverse{false};
16124 static constexpr auto mbr_ptr{&SgFile::p_sourceFileUsesCppFileExtension};
16125 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16126 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_sourceFileUsesCppFileExtension>;
16127};
16128template <> struct describe_field_t<SgFile,bool,&SgFile::p_sourceFileUsesFortranFileExtension> {
16129 using parent = SgFile;
16130 using field_type = bool;
16131 static constexpr size_t position{81};
16132 static constexpr char const * const name{"sourceFileUsesFortranFileExtension"};
16133 static constexpr char const * const typestr{"bool"};
16134 static constexpr bool traverse{false};
16135 static constexpr auto mbr_ptr{&SgFile::p_sourceFileUsesFortranFileExtension};
16136 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16137 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_sourceFileUsesFortranFileExtension>;
16138};
16139template <> struct describe_field_t<SgFile,bool,&SgFile::p_sourceFileUsesFortran77FileExtension> {
16140 using parent = SgFile;
16141 using field_type = bool;
16142 static constexpr size_t position{82};
16143 static constexpr char const * const name{"sourceFileUsesFortran77FileExtension"};
16144 static constexpr char const * const typestr{"bool"};
16145 static constexpr bool traverse{false};
16146 static constexpr auto mbr_ptr{&SgFile::p_sourceFileUsesFortran77FileExtension};
16147 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16148 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_sourceFileUsesFortran77FileExtension>;
16149};
16150template <> struct describe_field_t<SgFile,bool,&SgFile::p_sourceFileUsesFortran90FileExtension> {
16151 using parent = SgFile;
16152 using field_type = bool;
16153 static constexpr size_t position{83};
16154 static constexpr char const * const name{"sourceFileUsesFortran90FileExtension"};
16155 static constexpr char const * const typestr{"bool"};
16156 static constexpr bool traverse{false};
16157 static constexpr auto mbr_ptr{&SgFile::p_sourceFileUsesFortran90FileExtension};
16158 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16159 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_sourceFileUsesFortran90FileExtension>;
16160};
16161template <> struct describe_field_t<SgFile,bool,&SgFile::p_sourceFileUsesFortran95FileExtension> {
16162 using parent = SgFile;
16163 using field_type = bool;
16164 static constexpr size_t position{84};
16165 static constexpr char const * const name{"sourceFileUsesFortran95FileExtension"};
16166 static constexpr char const * const typestr{"bool"};
16167 static constexpr bool traverse{false};
16168 static constexpr auto mbr_ptr{&SgFile::p_sourceFileUsesFortran95FileExtension};
16169 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16170 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_sourceFileUsesFortran95FileExtension>;
16171};
16172template <> struct describe_field_t<SgFile,bool,&SgFile::p_sourceFileUsesFortran2003FileExtension> {
16173 using parent = SgFile;
16174 using field_type = bool;
16175 static constexpr size_t position{85};
16176 static constexpr char const * const name{"sourceFileUsesFortran2003FileExtension"};
16177 static constexpr char const * const typestr{"bool"};
16178 static constexpr bool traverse{false};
16179 static constexpr auto mbr_ptr{&SgFile::p_sourceFileUsesFortran2003FileExtension};
16180 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16181 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_sourceFileUsesFortran2003FileExtension>;
16182};
16183template <> struct describe_field_t<SgFile,bool,&SgFile::p_sourceFileUsesFortran2008FileExtension> {
16184 using parent = SgFile;
16185 using field_type = bool;
16186 static constexpr size_t position{86};
16187 static constexpr char const * const name{"sourceFileUsesFortran2008FileExtension"};
16188 static constexpr char const * const typestr{"bool"};
16189 static constexpr bool traverse{false};
16190 static constexpr auto mbr_ptr{&SgFile::p_sourceFileUsesFortran2008FileExtension};
16191 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16192 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_sourceFileUsesFortran2008FileExtension>;
16193};
16194template <> struct describe_field_t<SgFile,bool,&SgFile::p_sourceFileUsesCoArrayFortranFileExtension> {
16195 using parent = SgFile;
16196 using field_type = bool;
16197 static constexpr size_t position{87};
16198 static constexpr char const * const name{"sourceFileUsesCoArrayFortranFileExtension"};
16199 static constexpr char const * const typestr{"bool"};
16200 static constexpr bool traverse{false};
16201 static constexpr auto mbr_ptr{&SgFile::p_sourceFileUsesCoArrayFortranFileExtension};
16202 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16203 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_sourceFileUsesCoArrayFortranFileExtension>;
16204};
16205template <> struct describe_field_t<SgFile,bool,&SgFile::p_sourceFileUsesPHPFileExtension> {
16206 using parent = SgFile;
16207 using field_type = bool;
16208 static constexpr size_t position{88};
16209 static constexpr char const * const name{"sourceFileUsesPHPFileExtension"};
16210 static constexpr char const * const typestr{"bool"};
16211 static constexpr bool traverse{false};
16212 static constexpr auto mbr_ptr{&SgFile::p_sourceFileUsesPHPFileExtension};
16213 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16214 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_sourceFileUsesPHPFileExtension>;
16215};
16216template <> struct describe_field_t<SgFile,bool,&SgFile::p_sourceFileUsesPythonFileExtension> {
16217 using parent = SgFile;
16218 using field_type = bool;
16219 static constexpr size_t position{89};
16220 static constexpr char const * const name{"sourceFileUsesPythonFileExtension"};
16221 static constexpr char const * const typestr{"bool"};
16222 static constexpr bool traverse{false};
16223 static constexpr auto mbr_ptr{&SgFile::p_sourceFileUsesPythonFileExtension};
16224 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16225 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_sourceFileUsesPythonFileExtension>;
16226};
16227template <> struct describe_field_t<SgFile,bool,&SgFile::p_sourceFileUsesJavaFileExtension> {
16228 using parent = SgFile;
16229 using field_type = bool;
16230 static constexpr size_t position{90};
16231 static constexpr char const * const name{"sourceFileUsesJavaFileExtension"};
16232 static constexpr char const * const typestr{"bool"};
16233 static constexpr bool traverse{false};
16234 static constexpr auto mbr_ptr{&SgFile::p_sourceFileUsesJavaFileExtension};
16235 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16236 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_sourceFileUsesJavaFileExtension>;
16237};
16238template <> struct describe_field_t<SgFile,bool,&SgFile::p_sourceFileUsesJvmFileExtension> {
16239 using parent = SgFile;
16240 using field_type = bool;
16241 static constexpr size_t position{91};
16242 static constexpr char const * const name{"sourceFileUsesJvmFileExtension"};
16243 static constexpr char const * const typestr{"bool"};
16244 static constexpr bool traverse{false};
16245 static constexpr auto mbr_ptr{&SgFile::p_sourceFileUsesJvmFileExtension};
16246 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16247 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_sourceFileUsesJvmFileExtension>;
16248};
16249template <> struct describe_field_t<SgFile,bool,&SgFile::p_sourceFileUsesBinaryFileExtension> {
16250 using parent = SgFile;
16251 using field_type = bool;
16252 static constexpr size_t position{92};
16253 static constexpr char const * const name{"sourceFileUsesBinaryFileExtension"};
16254 static constexpr char const * const typestr{"bool"};
16255 static constexpr bool traverse{false};
16256 static constexpr auto mbr_ptr{&SgFile::p_sourceFileUsesBinaryFileExtension};
16257 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16258 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_sourceFileUsesBinaryFileExtension>;
16259};
16260template <> struct describe_field_t<SgFile,bool,&SgFile::p_sourceFileTypeIsUnknown> {
16261 using parent = SgFile;
16262 using field_type = bool;
16263 static constexpr size_t position{93};
16264 static constexpr char const * const name{"sourceFileTypeIsUnknown"};
16265 static constexpr char const * const typestr{"bool"};
16266 static constexpr bool traverse{false};
16267 static constexpr auto mbr_ptr{&SgFile::p_sourceFileTypeIsUnknown};
16268 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16269 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_sourceFileTypeIsUnknown>;
16270};
16271template <> struct describe_field_t<SgFile,bool,&SgFile::p_sourceFileUsesCsharpFileExtension> {
16272 using parent = SgFile;
16273 using field_type = bool;
16274 static constexpr size_t position{94};
16275 static constexpr char const * const name{"sourceFileUsesCsharpFileExtension"};
16276 static constexpr char const * const typestr{"bool"};
16277 static constexpr bool traverse{false};
16278 static constexpr auto mbr_ptr{&SgFile::p_sourceFileUsesCsharpFileExtension};
16279 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16280 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_sourceFileUsesCsharpFileExtension>;
16281};
16282template <> struct describe_field_t<SgFile,bool,&SgFile::p_sourceFileUsesAdaFileExtension> {
16283 using parent = SgFile;
16284 using field_type = bool;
16285 static constexpr size_t position{95};
16286 static constexpr char const * const name{"sourceFileUsesAdaFileExtension"};
16287 static constexpr char const * const typestr{"bool"};
16288 static constexpr bool traverse{false};
16289 static constexpr auto mbr_ptr{&SgFile::p_sourceFileUsesAdaFileExtension};
16290 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16291 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_sourceFileUsesAdaFileExtension>;
16292};
16293template <> struct describe_field_t<SgFile,bool,&SgFile::p_sourceFileUsesJovialFileExtension> {
16294 using parent = SgFile;
16295 using field_type = bool;
16296 static constexpr size_t position{96};
16297 static constexpr char const * const name{"sourceFileUsesJovialFileExtension"};
16298 static constexpr char const * const typestr{"bool"};
16299 static constexpr bool traverse{false};
16300 static constexpr auto mbr_ptr{&SgFile::p_sourceFileUsesJovialFileExtension};
16301 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16302 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_sourceFileUsesJovialFileExtension>;
16303};
16304template <> struct describe_field_t<SgFile,int,&SgFile::p_detect_dangling_pointers> {
16305 using parent = SgFile;
16306 using field_type = int;
16307 static constexpr size_t position{97};
16308 static constexpr char const * const name{"detect_dangling_pointers"};
16309 static constexpr char const * const typestr{"int"};
16310 static constexpr bool traverse{false};
16311 static constexpr auto mbr_ptr{&SgFile::p_detect_dangling_pointers};
16312 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16313 using bind = Desc<SgFile, int SgFile::*, &SgFile::p_detect_dangling_pointers>;
16314};
16315template <> struct describe_field_t<SgFile,bool,&SgFile::p_experimental_flang_frontend> {
16316 using parent = SgFile;
16317 using field_type = bool;
16318 static constexpr size_t position{98};
16319 static constexpr char const * const name{"experimental_flang_frontend"};
16320 static constexpr char const * const typestr{"bool"};
16321 static constexpr bool traverse{false};
16322 static constexpr auto mbr_ptr{&SgFile::p_experimental_flang_frontend};
16323 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16324 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_experimental_flang_frontend>;
16325};
16326template <> struct describe_field_t<SgFile,bool,&SgFile::p_read_executable_file_format_only> {
16327 using parent = SgFile;
16328 using field_type = bool;
16329 static constexpr size_t position{99};
16330 static constexpr char const * const name{"read_executable_file_format_only"};
16331 static constexpr char const * const typestr{"bool"};
16332 static constexpr bool traverse{false};
16333 static constexpr auto mbr_ptr{&SgFile::p_read_executable_file_format_only};
16334 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16335 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_read_executable_file_format_only>;
16336};
16337template <> struct describe_field_t<SgFile,bool,&SgFile::p_visualize_executable_file_format_skip_symbols> {
16338 using parent = SgFile;
16339 using field_type = bool;
16340 static constexpr size_t position{100};
16341 static constexpr char const * const name{"visualize_executable_file_format_skip_symbols"};
16342 static constexpr char const * const typestr{"bool"};
16343 static constexpr bool traverse{false};
16344 static constexpr auto mbr_ptr{&SgFile::p_visualize_executable_file_format_skip_symbols};
16345 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16346 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_visualize_executable_file_format_skip_symbols>;
16347};
16348template <> struct describe_field_t<SgFile,bool,&SgFile::p_visualize_dwarf_only> {
16349 using parent = SgFile;
16350 using field_type = bool;
16351 static constexpr size_t position{101};
16352 static constexpr char const * const name{"visualize_dwarf_only"};
16353 static constexpr char const * const typestr{"bool"};
16354 static constexpr bool traverse{false};
16355 static constexpr auto mbr_ptr{&SgFile::p_visualize_dwarf_only};
16356 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16357 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_visualize_dwarf_only>;
16358};
16359template <> struct describe_field_t<SgFile,bool,&SgFile::p_read_instructions_only> {
16360 using parent = SgFile;
16361 using field_type = bool;
16362 static constexpr size_t position{102};
16363 static constexpr char const * const name{"read_instructions_only"};
16364 static constexpr char const * const typestr{"bool"};
16365 static constexpr bool traverse{false};
16366 static constexpr auto mbr_ptr{&SgFile::p_read_instructions_only};
16367 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16368 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_read_instructions_only>;
16369};
16370template <> struct describe_field_t<SgFile,SgStringList,&SgFile::p_libraryArchiveObjectFileNameList> {
16371 using parent = SgFile;
16372 using field_type = SgStringList;
16373 static constexpr size_t position{103};
16374 static constexpr char const * const name{"libraryArchiveObjectFileNameList"};
16375 static constexpr char const * const typestr{"SgStringList"};
16376 static constexpr bool traverse{false};
16377 static constexpr auto mbr_ptr{&SgFile::p_libraryArchiveObjectFileNameList};
16378 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16379 using bind = Desc<SgFile, SgStringList SgFile::*, &SgFile::p_libraryArchiveObjectFileNameList>;
16380};
16381template <> struct describe_field_t<SgFile,bool,&SgFile::p_isLibraryArchive> {
16382 using parent = SgFile;
16383 using field_type = bool;
16384 static constexpr size_t position{104};
16385 static constexpr char const * const name{"isLibraryArchive"};
16386 static constexpr char const * const typestr{"bool"};
16387 static constexpr bool traverse{false};
16388 static constexpr auto mbr_ptr{&SgFile::p_isLibraryArchive};
16389 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16390 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_isLibraryArchive>;
16391};
16392template <> struct describe_field_t<SgFile,bool,&SgFile::p_isObjectFile> {
16393 using parent = SgFile;
16394 using field_type = bool;
16395 static constexpr size_t position{105};
16396 static constexpr char const * const name{"isObjectFile"};
16397 static constexpr char const * const typestr{"bool"};
16398 static constexpr bool traverse{false};
16399 static constexpr auto mbr_ptr{&SgFile::p_isObjectFile};
16400 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16401 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_isObjectFile>;
16402};
16403template <> struct describe_field_t<SgFile,bool,&SgFile::p_unparse_tokens> {
16404 using parent = SgFile;
16405 using field_type = bool;
16406 static constexpr size_t position{106};
16407 static constexpr char const * const name{"unparse_tokens"};
16408 static constexpr char const * const typestr{"bool"};
16409 static constexpr bool traverse{false};
16410 static constexpr auto mbr_ptr{&SgFile::p_unparse_tokens};
16411 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16412 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_unparse_tokens>;
16413};
16414template <> struct describe_field_t<SgFile,int,&SgFile::p_unparse_tokens_testing> {
16415 using parent = SgFile;
16416 using field_type = int;
16417 static constexpr size_t position{107};
16418 static constexpr char const * const name{"unparse_tokens_testing"};
16419 static constexpr char const * const typestr{"int"};
16420 static constexpr bool traverse{false};
16421 static constexpr auto mbr_ptr{&SgFile::p_unparse_tokens_testing};
16422 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16423 using bind = Desc<SgFile, int SgFile::*, &SgFile::p_unparse_tokens_testing>;
16424};
16425template <> struct describe_field_t<SgFile,bool,&SgFile::p_unparse_using_leading_and_trailing_token_mappings> {
16426 using parent = SgFile;
16427 using field_type = bool;
16428 static constexpr size_t position{108};
16429 static constexpr char const * const name{"unparse_using_leading_and_trailing_token_mappings"};
16430 static constexpr char const * const typestr{"bool"};
16431 static constexpr bool traverse{false};
16432 static constexpr auto mbr_ptr{&SgFile::p_unparse_using_leading_and_trailing_token_mappings};
16433 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16434 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_unparse_using_leading_and_trailing_token_mappings>;
16435};
16436template <> struct describe_field_t<SgFile,bool,&SgFile::p_unparse_template_ast> {
16437 using parent = SgFile;
16438 using field_type = bool;
16439 static constexpr size_t position{109};
16440 static constexpr char const * const name{"unparse_template_ast"};
16441 static constexpr char const * const typestr{"bool"};
16442 static constexpr bool traverse{false};
16443 static constexpr auto mbr_ptr{&SgFile::p_unparse_template_ast};
16444 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16445 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_unparse_template_ast>;
16446};
16447template <> struct describe_field_t<SgFile,bool,&SgFile::p_skipAstConsistancyTests> {
16448 using parent = SgFile;
16449 using field_type = bool;
16450 static constexpr size_t position{110};
16451 static constexpr char const * const name{"skipAstConsistancyTests"};
16452 static constexpr char const * const typestr{"bool"};
16453 static constexpr bool traverse{false};
16454 static constexpr auto mbr_ptr{&SgFile::p_skipAstConsistancyTests};
16455 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16456 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_skipAstConsistancyTests>;
16457};
16458template <> struct describe_field_t<SgFile,bool,&SgFile::p_multifile_support> {
16459 using parent = SgFile;
16460 using field_type = bool;
16461 static constexpr size_t position{111};
16462 static constexpr char const * const name{"multifile_support"};
16463 static constexpr char const * const typestr{"bool"};
16464 static constexpr bool traverse{false};
16465 static constexpr auto mbr_ptr{&SgFile::p_multifile_support};
16466 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16467 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_multifile_support>;
16468};
16469template <> struct describe_field_t<SgFile,bool,&SgFile::p_optimization> {
16470 using parent = SgFile;
16471 using field_type = bool;
16472 static constexpr size_t position{112};
16473 static constexpr char const * const name{"optimization"};
16474 static constexpr char const * const typestr{"bool"};
16475 static constexpr bool traverse{false};
16476 static constexpr auto mbr_ptr{&SgFile::p_optimization};
16477 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16478 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_optimization>;
16479};
16480template <> struct describe_field_t<SgFile,bool,&SgFile::p_use_token_stream_to_improve_source_position_info> {
16481 using parent = SgFile;
16482 using field_type = bool;
16483 static constexpr size_t position{113};
16484 static constexpr char const * const name{"use_token_stream_to_improve_source_position_info"};
16485 static constexpr char const * const typestr{"bool"};
16486 static constexpr bool traverse{false};
16487 static constexpr auto mbr_ptr{&SgFile::p_use_token_stream_to_improve_source_position_info};
16488 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16489 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_use_token_stream_to_improve_source_position_info>;
16490};
16491template <> struct describe_field_t<SgFile,bool,&SgFile::p_suppress_variable_declaration_normalization> {
16492 using parent = SgFile;
16493 using field_type = bool;
16494 static constexpr size_t position{114};
16495 static constexpr char const * const name{"suppress_variable_declaration_normalization"};
16496 static constexpr char const * const typestr{"bool"};
16497 static constexpr bool traverse{false};
16498 static constexpr auto mbr_ptr{&SgFile::p_suppress_variable_declaration_normalization};
16499 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16500 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_suppress_variable_declaration_normalization>;
16501};
16502template <> struct describe_field_t<SgFile,bool,&SgFile::p_edg_il_to_graphviz> {
16503 using parent = SgFile;
16504 using field_type = bool;
16505 static constexpr size_t position{115};
16506 static constexpr char const * const name{"edg_il_to_graphviz"};
16507 static constexpr char const * const typestr{"bool"};
16508 static constexpr bool traverse{false};
16509 static constexpr auto mbr_ptr{&SgFile::p_edg_il_to_graphviz};
16510 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16511 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_edg_il_to_graphviz>;
16512};
16513template <> struct describe_field_t<SgFile,bool,&SgFile::p_clang_il_to_graphviz> {
16514 using parent = SgFile;
16515 using field_type = bool;
16516 static constexpr size_t position{116};
16517 static constexpr char const * const name{"clang_il_to_graphviz"};
16518 static constexpr char const * const typestr{"bool"};
16519 static constexpr bool traverse{false};
16520 static constexpr auto mbr_ptr{&SgFile::p_clang_il_to_graphviz};
16521 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16522 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_clang_il_to_graphviz>;
16523};
16524template <> struct describe_field_t<SgFile,bool,&SgFile::p_no_optimize_flag_for_frontend> {
16525 using parent = SgFile;
16526 using field_type = bool;
16527 static constexpr size_t position{117};
16528 static constexpr char const * const name{"no_optimize_flag_for_frontend"};
16529 static constexpr char const * const typestr{"bool"};
16530 static constexpr bool traverse{false};
16531 static constexpr auto mbr_ptr{&SgFile::p_no_optimize_flag_for_frontend};
16532 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16533 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_no_optimize_flag_for_frontend>;
16534};
16535template <> struct describe_field_t<SgFile,bool,&SgFile::p_unparse_edg_normalized_method_ROSE_1392> {
16536 using parent = SgFile;
16537 using field_type = bool;
16538 static constexpr size_t position{118};
16539 static constexpr char const * const name{"unparse_edg_normalized_method_ROSE_1392"};
16540 static constexpr char const * const typestr{"bool"};
16541 static constexpr bool traverse{false};
16542 static constexpr auto mbr_ptr{&SgFile::p_unparse_edg_normalized_method_ROSE_1392};
16543 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16544 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_unparse_edg_normalized_method_ROSE_1392>;
16545};
16546template <> struct describe_field_t<SgFile,SgFile::standard_enum,&SgFile::p_standard> {
16547 using parent = SgFile;
16548 using field_type = SgFile::standard_enum;
16549 static constexpr size_t position{119};
16550 static constexpr char const * const name{"standard"};
16551 static constexpr char const * const typestr{"SgFile::standard_enum"};
16552 static constexpr bool traverse{false};
16553 static constexpr auto mbr_ptr{&SgFile::p_standard};
16554 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16555 using bind = Desc<SgFile, SgFile::standard_enum SgFile::*, &SgFile::p_standard>;
16556};
16557template <> struct describe_field_t<SgFile,bool,&SgFile::p_gnu_standard> {
16558 using parent = SgFile;
16559 using field_type = bool;
16560 static constexpr size_t position{120};
16561 static constexpr char const * const name{"gnu_standard"};
16562 static constexpr char const * const typestr{"bool"};
16563 static constexpr bool traverse{false};
16564 static constexpr auto mbr_ptr{&SgFile::p_gnu_standard};
16565 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16566 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_gnu_standard>;
16567};
16568template <> struct describe_field_t<SgFile,int,&SgFile::p_frontendErrorCode> {
16569 using parent = SgFile;
16570 using field_type = int;
16571 static constexpr size_t position{121};
16572 static constexpr char const * const name{"frontendErrorCode"};
16573 static constexpr char const * const typestr{"int"};
16574 static constexpr bool traverse{false};
16575 static constexpr auto mbr_ptr{&SgFile::p_frontendErrorCode};
16576 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16577 using bind = Desc<SgFile, int SgFile::*, &SgFile::p_frontendErrorCode>;
16578};
16579template <> struct describe_field_t<SgFile,int,&SgFile::p_javacErrorCode> {
16580 using parent = SgFile;
16581 using field_type = int;
16582 static constexpr size_t position{122};
16583 static constexpr char const * const name{"javacErrorCode"};
16584 static constexpr char const * const typestr{"int"};
16585 static constexpr bool traverse{false};
16586 static constexpr auto mbr_ptr{&SgFile::p_javacErrorCode};
16587 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16588 using bind = Desc<SgFile, int SgFile::*, &SgFile::p_javacErrorCode>;
16589};
16590template <> struct describe_field_t<SgFile,int,&SgFile::p_ecjErrorCode> {
16591 using parent = SgFile;
16592 using field_type = int;
16593 static constexpr size_t position{123};
16594 static constexpr char const * const name{"ecjErrorCode"};
16595 static constexpr char const * const typestr{"int"};
16596 static constexpr bool traverse{false};
16597 static constexpr auto mbr_ptr{&SgFile::p_ecjErrorCode};
16598 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16599 using bind = Desc<SgFile, int SgFile::*, &SgFile::p_ecjErrorCode>;
16600};
16601template <> struct describe_field_t<SgFile,int,&SgFile::p_midendErrorCode> {
16602 using parent = SgFile;
16603 using field_type = int;
16604 static constexpr size_t position{124};
16605 static constexpr char const * const name{"midendErrorCode"};
16606 static constexpr char const * const typestr{"int"};
16607 static constexpr bool traverse{false};
16608 static constexpr auto mbr_ptr{&SgFile::p_midendErrorCode};
16609 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16610 using bind = Desc<SgFile, int SgFile::*, &SgFile::p_midendErrorCode>;
16611};
16612template <> struct describe_field_t<SgFile,int,&SgFile::p_unparserErrorCode> {
16613 using parent = SgFile;
16614 using field_type = int;
16615 static constexpr size_t position{125};
16616 static constexpr char const * const name{"unparserErrorCode"};
16617 static constexpr char const * const typestr{"int"};
16618 static constexpr bool traverse{false};
16619 static constexpr auto mbr_ptr{&SgFile::p_unparserErrorCode};
16620 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16621 using bind = Desc<SgFile, int SgFile::*, &SgFile::p_unparserErrorCode>;
16622};
16623template <> struct describe_field_t<SgFile,int,&SgFile::p_backendCompilerErrorCode> {
16624 using parent = SgFile;
16625 using field_type = int;
16626 static constexpr size_t position{126};
16627 static constexpr char const * const name{"backendCompilerErrorCode"};
16628 static constexpr char const * const typestr{"int"};
16629 static constexpr bool traverse{false};
16630 static constexpr auto mbr_ptr{&SgFile::p_backendCompilerErrorCode};
16631 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16632 using bind = Desc<SgFile, int SgFile::*, &SgFile::p_backendCompilerErrorCode>;
16633};
16634template <> struct describe_field_t<SgFile,bool,&SgFile::p_unparsedFileFailedCompilation> {
16635 using parent = SgFile;
16636 using field_type = bool;
16637 static constexpr size_t position{127};
16638 static constexpr char const * const name{"unparsedFileFailedCompilation"};
16639 static constexpr char const * const typestr{"bool"};
16640 static constexpr bool traverse{false};
16641 static constexpr auto mbr_ptr{&SgFile::p_unparsedFileFailedCompilation};
16642 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16643 using bind = Desc<SgFile, bool SgFile::*, &SgFile::p_unparsedFileFailedCompilation>;
16644};
16645template <> struct describe_node_t<SgFile> {
16646 using node = SgFile;
16647 using base = SgSupport;
16648 static constexpr char const * const name{"File"};
16649 static constexpr unsigned long variant{416};
16650 static constexpr bool concrete{false};
16652 using fields_t = mp::List<describe_field_t<SgFile,Sg_File_Info*,&SgFile::p_startOfConstruct>, describe_field_t<SgFile,SgStringList,&SgFile::p_originalCommandLineArgumentList>, describe_field_t<SgFile,int,&SgFile::p_verbose>, describe_field_t<SgFile,bool,&SgFile::p_output_warnings>, describe_field_t<SgFile,bool,&SgFile::p_C_only>, describe_field_t<SgFile,bool,&SgFile::p_Cxx_only>, describe_field_t<SgFile,bool,&SgFile::p_Fortran_only>, describe_field_t<SgFile,bool,&SgFile::p_CoArrayFortran_only>, describe_field_t<SgFile,int,&SgFile::p_upc_threads>, describe_field_t<SgFile,bool,&SgFile::p_Java_only>, describe_field_t<SgFile,bool,&SgFile::p_Jvm_only>, describe_field_t<SgFile,bool,&SgFile::p_Jovial_only>, describe_field_t<SgFile,bool,&SgFile::p_PHP_only>, describe_field_t<SgFile,bool,&SgFile::p_Python_only>, describe_field_t<SgFile,bool,&SgFile::p_Cuda_only>, describe_field_t<SgFile,bool,&SgFile::p_OpenCL_only>, describe_field_t<SgFile,bool,&SgFile::p_Csharp_only>, describe_field_t<SgFile,bool,&SgFile::p_Ada_only>, describe_field_t<SgFile,bool,&SgFile::p_requires_C_preprocessor>, describe_field_t<SgFile,bool,&SgFile::p_binary_only>, describe_field_t<SgFile,SgFile::outputFormatOption_enum,&SgFile::p_inputFormat>, describe_field_t<SgFile,SgFile::outputFormatOption_enum,&SgFile::p_outputFormat>, describe_field_t<SgFile,SgFile::outputFormatOption_enum,&SgFile::p_backendCompileFormat>, describe_field_t<SgFile,bool,&SgFile::p_fortran_implicit_none>, describe_field_t<SgFile,bool,&SgFile::p_openmp>, describe_field_t<SgFile,bool,&SgFile::p_openmp_parse_only>, describe_field_t<SgFile,bool,&SgFile::p_openmp_ast_only>, describe_field_t<SgFile,bool,&SgFile::p_openmp_lowering>, describe_field_t<SgFile,bool,&SgFile::p_openacc>, describe_field_t<SgFile,bool,&SgFile::p_openacc_parse_only>, describe_field_t<SgFile,bool,&SgFile::p_openacc_ast_only>, describe_field_t<SgFile,bool,&SgFile::p_cray_pointer_support>, describe_field_t<SgFile,bool,&SgFile::p_failsafe>, describe_field_t<SgFile,bool,&SgFile::p_output_parser_actions>, describe_field_t<SgFile,bool,&SgFile::p_exit_after_parser>, describe_field_t<SgFile,bool,&SgFile::p_skip_syntax_check>, describe_field_t<SgFile,bool,&SgFile::p_skip_parser>, describe_field_t<SgFile,bool,&SgFile::p_relax_syntax_check>, describe_field_t<SgFile,bool,&SgFile::p_skip_translation_from_edg_ast_to_rose_ast>, describe_field_t<SgFile,bool,&SgFile::p_skip_transformation>, describe_field_t<SgFile,bool,&SgFile::p_skip_unparse>, describe_field_t<SgFile,bool,&SgFile::p_skipfinalCompileStep>, describe_field_t<SgFile,bool,&SgFile::p_unparse_includes>, describe_field_t<SgFile,bool,&SgFile::p_unparse_line_directives>, describe_field_t<SgFile,bool,&SgFile::p_unparse_function_calls_using_operator_syntax>, describe_field_t<SgFile,bool,&SgFile::p_unparse_function_calls_using_operator_names>, describe_field_t<SgFile,bool,&SgFile::p_unparse_instruction_addresses>, describe_field_t<SgFile,bool,&SgFile::p_unparse_raw_memory_contents>, describe_field_t<SgFile,bool,&SgFile::p_unparse_binary_file_format>, describe_field_t<SgFile,SgFile::languageOption_enum,&SgFile::p_outputLanguage>, describe_field_t<SgFile,SgFile::languageOption_enum,&SgFile::p_inputLanguage>, describe_field_t<SgFile,std::string,&SgFile::p_sourceFileNameWithPath>, describe_field_t<SgFile,std::string,&SgFile::p_sourceFileNameWithoutPath>, describe_field_t<SgFile,std::string,&SgFile::p_unparse_output_filename>, describe_field_t<SgFile,std::string,&SgFile::p_objectFileNameWithPath>, describe_field_t<SgFile,std::string,&SgFile::p_objectFileNameWithoutPath>, describe_field_t<SgFile,bool,&SgFile::p_useBackendOnly>, describe_field_t<SgFile,bool,&SgFile::p_compileOnly>, describe_field_t<SgFile,std::string,&SgFile::p_savedFrontendCommandLine>, describe_field_t<SgFile,bool,&SgFile::p_no_implicit_templates>, describe_field_t<SgFile,bool,&SgFile::p_no_implicit_inline_templates>, describe_field_t<SgFile,bool,&SgFile::p_skip_commentsAndDirectives>, describe_field_t<SgFile,bool,&SgFile::p_collectAllCommentsAndDirectives>, describe_field_t<SgFile,bool,&SgFile::p_translateCommentsAndDirectivesIntoAST>, describe_field_t<SgFile,bool,&SgFile::p_unparseHeaderFiles>, describe_field_t<SgFile,ROSEAttributesListContainerPtr,&SgFile::p_preprocessorDirectivesAndCommentsList>, describe_field_t<SgFile,AstAttributeMechanism*,&SgFile::p_attributeMechanism>, describe_field_t<SgFile,bool,&SgFile::p_KCC_frontend>, describe_field_t<SgFile,bool,&SgFile::p_new_frontend>, describe_field_t<SgFile,bool,&SgFile::p_disable_edg_backend>, describe_field_t<SgFile,bool,&SgFile::p_disable_sage_backend>, describe_field_t<SgFile,int,&SgFile::p_testingLevel>, describe_field_t<SgFile,bool,&SgFile::p_preinit_il>, describe_field_t<SgFile,bool,&SgFile::p_enable_cp_backend>, describe_field_t<SgFile,bool,&SgFile::p_markGeneratedFiles>, describe_field_t<SgFile,bool,&SgFile::p_negative_test>, describe_field_t<SgFile,bool,&SgFile::p_strict_language_handling>, describe_field_t<SgFile,bool,&SgFile::p_wave>, describe_field_t<SgFile,int,&SgFile::p_embedColorCodesInGeneratedCode>, describe_field_t<SgFile,int,&SgFile::p_generateSourcePositionCodes>, describe_field_t<SgFile,bool,&SgFile::p_sourceFileUsesCppFileExtension>, describe_field_t<SgFile,bool,&SgFile::p_sourceFileUsesFortranFileExtension>, describe_field_t<SgFile,bool,&SgFile::p_sourceFileUsesFortran77FileExtension>, describe_field_t<SgFile,bool,&SgFile::p_sourceFileUsesFortran90FileExtension>, describe_field_t<SgFile,bool,&SgFile::p_sourceFileUsesFortran95FileExtension>, describe_field_t<SgFile,bool,&SgFile::p_sourceFileUsesFortran2003FileExtension>, describe_field_t<SgFile,bool,&SgFile::p_sourceFileUsesFortran2008FileExtension>, describe_field_t<SgFile,bool,&SgFile::p_sourceFileUsesCoArrayFortranFileExtension>, describe_field_t<SgFile,bool,&SgFile::p_sourceFileUsesPHPFileExtension>, describe_field_t<SgFile,bool,&SgFile::p_sourceFileUsesPythonFileExtension>, describe_field_t<SgFile,bool,&SgFile::p_sourceFileUsesJavaFileExtension>, describe_field_t<SgFile,bool,&SgFile::p_sourceFileUsesJvmFileExtension>, describe_field_t<SgFile,bool,&SgFile::p_sourceFileUsesBinaryFileExtension>, describe_field_t<SgFile,bool,&SgFile::p_sourceFileTypeIsUnknown>, describe_field_t<SgFile,bool,&SgFile::p_sourceFileUsesCsharpFileExtension>, describe_field_t<SgFile,bool,&SgFile::p_sourceFileUsesAdaFileExtension>, describe_field_t<SgFile,bool,&SgFile::p_sourceFileUsesJovialFileExtension>, describe_field_t<SgFile,int,&SgFile::p_detect_dangling_pointers>, describe_field_t<SgFile,bool,&SgFile::p_experimental_flang_frontend>, describe_field_t<SgFile,bool,&SgFile::p_read_executable_file_format_only>, describe_field_t<SgFile,bool,&SgFile::p_visualize_executable_file_format_skip_symbols>, describe_field_t<SgFile,bool,&SgFile::p_visualize_dwarf_only>, describe_field_t<SgFile,bool,&SgFile::p_read_instructions_only>, describe_field_t<SgFile,SgStringList,&SgFile::p_libraryArchiveObjectFileNameList>, describe_field_t<SgFile,bool,&SgFile::p_isLibraryArchive>, describe_field_t<SgFile,bool,&SgFile::p_isObjectFile>, describe_field_t<SgFile,bool,&SgFile::p_unparse_tokens>, describe_field_t<SgFile,int,&SgFile::p_unparse_tokens_testing>, describe_field_t<SgFile,bool,&SgFile::p_unparse_using_leading_and_trailing_token_mappings>, describe_field_t<SgFile,bool,&SgFile::p_unparse_template_ast>, describe_field_t<SgFile,bool,&SgFile::p_skipAstConsistancyTests>, describe_field_t<SgFile,bool,&SgFile::p_multifile_support>, describe_field_t<SgFile,bool,&SgFile::p_optimization>, describe_field_t<SgFile,bool,&SgFile::p_use_token_stream_to_improve_source_position_info>, describe_field_t<SgFile,bool,&SgFile::p_suppress_variable_declaration_normalization>, describe_field_t<SgFile,bool,&SgFile::p_edg_il_to_graphviz>, describe_field_t<SgFile,bool,&SgFile::p_clang_il_to_graphviz>, describe_field_t<SgFile,bool,&SgFile::p_no_optimize_flag_for_frontend>, describe_field_t<SgFile,bool,&SgFile::p_unparse_edg_normalized_method_ROSE_1392>, describe_field_t<SgFile,SgFile::standard_enum,&SgFile::p_standard>, describe_field_t<SgFile,bool,&SgFile::p_gnu_standard>, describe_field_t<SgFile,int,&SgFile::p_frontendErrorCode>, describe_field_t<SgFile,int,&SgFile::p_javacErrorCode>, describe_field_t<SgFile,int,&SgFile::p_ecjErrorCode>, describe_field_t<SgFile,int,&SgFile::p_midendErrorCode>, describe_field_t<SgFile,int,&SgFile::p_unparserErrorCode>, describe_field_t<SgFile,int,&SgFile::p_backendCompilerErrorCode>, describe_field_t<SgFile,bool,&SgFile::p_unparsedFileFailedCompilation>>;
16653};
16654template <> struct node_from_variant_t<416> { using type = SgFile; };
16655
16656// Class: FileList
16657template <> struct describe_field_t<SgFileList,SgFilePtrList,&SgFileList::p_listOfFiles> {
16658 using parent = SgFileList;
16659 using field_type = SgFilePtrList;
16660 static constexpr size_t position{0};
16661 static constexpr char const * const name{"listOfFiles"};
16662 static constexpr char const * const typestr{"SgFilePtrList"};
16663 static constexpr bool traverse{true};
16664 static constexpr auto mbr_ptr{&SgFileList::p_listOfFiles};
16665 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16666 using bind = Desc<SgFileList, SgFilePtrList SgFileList::*, &SgFileList::p_listOfFiles>;
16667};
16668template <> struct describe_field_t<SgFileList,AstAttributeMechanism*,&SgFileList::p_attributeMechanism> {
16669 using parent = SgFileList;
16671 static constexpr size_t position{1};
16672 static constexpr char const * const name{"attributeMechanism"};
16673 static constexpr char const * const typestr{"AstAttributeMechanism*"};
16674 static constexpr bool traverse{false};
16675 static constexpr auto mbr_ptr{&SgFileList::p_attributeMechanism};
16676 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16677 using bind = Desc<SgFileList, AstAttributeMechanism* SgFileList::*, &SgFileList::p_attributeMechanism>;
16678};
16679template <> struct describe_node_t<SgFileList> {
16680 using node = SgFileList;
16681 using base = SgSupport;
16682 static constexpr char const * const name{"FileList"};
16683 static constexpr unsigned long variant{417};
16684 static constexpr bool concrete{true};
16685 using subclasses_t = mp::List<>;
16687};
16688template <> struct node_from_variant_t<417> { using type = SgFileList; };
16689
16690// Class: FloatVal
16692 using parent = SgFloatVal;
16693 using field_type = float;
16694 static constexpr size_t position{0};
16695 static constexpr char const * const name{"value"};
16696 static constexpr char const * const typestr{"float"};
16697 static constexpr bool traverse{false};
16698 static constexpr auto mbr_ptr{&SgFloatVal::p_value};
16699 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16700 using bind = Desc<SgFloatVal, float SgFloatVal::*, &SgFloatVal::p_value>;
16701};
16702template <> struct describe_field_t<SgFloatVal,std::string,&SgFloatVal::p_valueString> {
16703 using parent = SgFloatVal;
16704 using field_type = std::string;
16705 static constexpr size_t position{1};
16706 static constexpr char const * const name{"valueString"};
16707 static constexpr char const * const typestr{"std::string"};
16708 static constexpr bool traverse{false};
16709 static constexpr auto mbr_ptr{&SgFloatVal::p_valueString};
16710 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16711 using bind = Desc<SgFloatVal, std::string SgFloatVal::*, &SgFloatVal::p_valueString>;
16712};
16713template <> struct describe_node_t<SgFloatVal> {
16714 using node = SgFloatVal;
16715 using base = SgValueExp;
16716 static constexpr char const * const name{"FloatVal"};
16717 static constexpr unsigned long variant{418};
16718 static constexpr bool concrete{true};
16719 using subclasses_t = mp::List<>;
16721};
16722template <> struct node_from_variant_t<418> { using type = SgFloatVal; };
16723
16724// Class: Float128Val
16725template <> struct describe_field_t<SgFloat128Val,long double,&SgFloat128Val::p_value> {
16726 using parent = SgFloat128Val;
16727 using field_type = long double;
16728 static constexpr size_t position{0};
16729 static constexpr char const * const name{"value"};
16730 static constexpr char const * const typestr{"long double"};
16731 static constexpr bool traverse{false};
16732 static constexpr auto mbr_ptr{&SgFloat128Val::p_value};
16733 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16734 using bind = Desc<SgFloat128Val, long double SgFloat128Val::*, &SgFloat128Val::p_value>;
16735};
16736template <> struct describe_field_t<SgFloat128Val,std::string,&SgFloat128Val::p_valueString> {
16737 using parent = SgFloat128Val;
16738 using field_type = std::string;
16739 static constexpr size_t position{1};
16740 static constexpr char const * const name{"valueString"};
16741 static constexpr char const * const typestr{"std::string"};
16742 static constexpr bool traverse{false};
16743 static constexpr auto mbr_ptr{&SgFloat128Val::p_valueString};
16744 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16745 using bind = Desc<SgFloat128Val, std::string SgFloat128Val::*, &SgFloat128Val::p_valueString>;
16746};
16747template <> struct describe_node_t<SgFloat128Val> {
16748 using node = SgFloat128Val;
16749 using base = SgValueExp;
16750 static constexpr char const * const name{"Float128Val"};
16751 static constexpr unsigned long variant{419};
16752 static constexpr bool concrete{true};
16753 using subclasses_t = mp::List<>;
16755};
16756template <> struct node_from_variant_t<419> { using type = SgFloat128Val; };
16757
16758// Class: Float80Val
16759template <> struct describe_field_t<SgFloat80Val,long double,&SgFloat80Val::p_value> {
16760 using parent = SgFloat80Val;
16761 using field_type = long double;
16762 static constexpr size_t position{0};
16763 static constexpr char const * const name{"value"};
16764 static constexpr char const * const typestr{"long double"};
16765 static constexpr bool traverse{false};
16766 static constexpr auto mbr_ptr{&SgFloat80Val::p_value};
16767 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16768 using bind = Desc<SgFloat80Val, long double SgFloat80Val::*, &SgFloat80Val::p_value>;
16769};
16770template <> struct describe_field_t<SgFloat80Val,std::string,&SgFloat80Val::p_valueString> {
16771 using parent = SgFloat80Val;
16772 using field_type = std::string;
16773 static constexpr size_t position{1};
16774 static constexpr char const * const name{"valueString"};
16775 static constexpr char const * const typestr{"std::string"};
16776 static constexpr bool traverse{false};
16777 static constexpr auto mbr_ptr{&SgFloat80Val::p_valueString};
16778 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16779 using bind = Desc<SgFloat80Val, std::string SgFloat80Val::*, &SgFloat80Val::p_valueString>;
16780};
16781template <> struct describe_node_t<SgFloat80Val> {
16782 using node = SgFloat80Val;
16783 using base = SgValueExp;
16784 static constexpr char const * const name{"Float80Val"};
16785 static constexpr unsigned long variant{420};
16786 static constexpr bool concrete{true};
16787 using subclasses_t = mp::List<>;
16789};
16790template <> struct node_from_variant_t<420> { using type = SgFloat80Val; };
16791
16792// Class: FoldExpression
16793template <> struct describe_field_t<SgFoldExpression,SgExpression*,&SgFoldExpression::p_operands> {
16794 using parent = SgFoldExpression;
16795 using field_type = SgExpression*;
16796 static constexpr size_t position{0};
16797 static constexpr char const * const name{"operands"};
16798 static constexpr char const * const typestr{"SgExpression*"};
16799 static constexpr bool traverse{true};
16800 static constexpr auto mbr_ptr{&SgFoldExpression::p_operands};
16801 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16802 using bind = Desc<SgFoldExpression, SgExpression* SgFoldExpression::*, &SgFoldExpression::p_operands>;
16803};
16804template <> struct describe_field_t<SgFoldExpression,std::string,&SgFoldExpression::p_operator_token> {
16805 using parent = SgFoldExpression;
16806 using field_type = std::string;
16807 static constexpr size_t position{1};
16808 static constexpr char const * const name{"operator_token"};
16809 static constexpr char const * const typestr{"std::string"};
16810 static constexpr bool traverse{false};
16811 static constexpr auto mbr_ptr{&SgFoldExpression::p_operator_token};
16812 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16813 using bind = Desc<SgFoldExpression, std::string SgFoldExpression::*, &SgFoldExpression::p_operator_token>;
16814};
16815template <> struct describe_field_t<SgFoldExpression,bool,&SgFoldExpression::p_is_left_associative> {
16816 using parent = SgFoldExpression;
16817 using field_type = bool;
16818 static constexpr size_t position{2};
16819 static constexpr char const * const name{"is_left_associative"};
16820 static constexpr char const * const typestr{"bool"};
16821 static constexpr bool traverse{false};
16822 static constexpr auto mbr_ptr{&SgFoldExpression::p_is_left_associative};
16823 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16824 using bind = Desc<SgFoldExpression, bool SgFoldExpression::*, &SgFoldExpression::p_is_left_associative>;
16825};
16827 using node = SgFoldExpression;
16828 using base = SgExpression;
16829 static constexpr char const * const name{"FoldExpression"};
16830 static constexpr unsigned long variant{421};
16831 static constexpr bool concrete{true};
16832 using subclasses_t = mp::List<>;
16834};
16835template <> struct node_from_variant_t<421> { using type = SgFoldExpression; };
16836
16837// Class: FlushStatement
16839 using node = SgFlushStatement;
16840 using base = SgIOStatement;
16841 static constexpr char const * const name{"FlushStatement"};
16842 static constexpr unsigned long variant{422};
16843 static constexpr bool concrete{true};
16844 using subclasses_t = mp::List<>;
16845 using fields_t = mp::List<>;
16846};
16847template <> struct node_from_variant_t<422> { using type = SgFlushStatement; };
16848
16849// Class: ForAllStatement
16850template <> struct describe_field_t<SgForAllStatement,SgExprListExp*,&SgForAllStatement::p_forall_header> {
16851 using parent = SgForAllStatement;
16852 using field_type = SgExprListExp*;
16853 static constexpr size_t position{0};
16854 static constexpr char const * const name{"forall_header"};
16855 static constexpr char const * const typestr{"SgExprListExp*"};
16856 static constexpr bool traverse{true};
16857 static constexpr auto mbr_ptr{&SgForAllStatement::p_forall_header};
16858 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16859 using bind = Desc<SgForAllStatement, SgExprListExp* SgForAllStatement::*, &SgForAllStatement::p_forall_header>;
16860};
16861template <> struct describe_field_t<SgForAllStatement,SgBasicBlock*,&SgForAllStatement::p_body> {
16862 using parent = SgForAllStatement;
16863 using field_type = SgBasicBlock*;
16864 static constexpr size_t position{1};
16865 static constexpr char const * const name{"body"};
16866 static constexpr char const * const typestr{"SgBasicBlock*"};
16867 static constexpr bool traverse{true};
16868 static constexpr auto mbr_ptr{&SgForAllStatement::p_body};
16869 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16870 using bind = Desc<SgForAllStatement, SgBasicBlock* SgForAllStatement::*, &SgForAllStatement::p_body>;
16871};
16872template <> struct describe_field_t<SgForAllStatement,bool,&SgForAllStatement::p_has_end_statement> {
16873 using parent = SgForAllStatement;
16874 using field_type = bool;
16875 static constexpr size_t position{2};
16876 static constexpr char const * const name{"has_end_statement"};
16877 static constexpr char const * const typestr{"bool"};
16878 static constexpr bool traverse{false};
16879 static constexpr auto mbr_ptr{&SgForAllStatement::p_has_end_statement};
16880 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16881 using bind = Desc<SgForAllStatement, bool SgForAllStatement::*, &SgForAllStatement::p_has_end_statement>;
16882};
16883template <> struct describe_field_t<SgForAllStatement,std::string,&SgForAllStatement::p_string_label> {
16884 using parent = SgForAllStatement;
16885 using field_type = std::string;
16886 static constexpr size_t position{3};
16887 static constexpr char const * const name{"string_label"};
16888 static constexpr char const * const typestr{"std::string"};
16889 static constexpr bool traverse{false};
16890 static constexpr auto mbr_ptr{&SgForAllStatement::p_string_label};
16891 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16892 using bind = Desc<SgForAllStatement, std::string SgForAllStatement::*, &SgForAllStatement::p_string_label>;
16893};
16894template <> struct describe_field_t<SgForAllStatement,SgLabelRefExp*,&SgForAllStatement::p_end_numeric_label> {
16895 using parent = SgForAllStatement;
16896 using field_type = SgLabelRefExp*;
16897 static constexpr size_t position{4};
16898 static constexpr char const * const name{"end_numeric_label"};
16899 static constexpr char const * const typestr{"SgLabelRefExp*"};
16900 static constexpr bool traverse{false};
16901 static constexpr auto mbr_ptr{&SgForAllStatement::p_end_numeric_label};
16902 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16903 using bind = Desc<SgForAllStatement, SgLabelRefExp* SgForAllStatement::*, &SgForAllStatement::p_end_numeric_label>;
16904};
16905template <> struct describe_field_t<SgForAllStatement,SgForAllStatement::forall_statement_kind_enum,&SgForAllStatement::p_forall_statement_kind> {
16906 using parent = SgForAllStatement;
16908 static constexpr size_t position{5};
16909 static constexpr char const * const name{"forall_statement_kind"};
16910 static constexpr char const * const typestr{"SgForAllStatement::forall_statement_kind_enum"};
16911 static constexpr bool traverse{false};
16912 static constexpr auto mbr_ptr{&SgForAllStatement::p_forall_statement_kind};
16913 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16914 using bind = Desc<SgForAllStatement, SgForAllStatement::forall_statement_kind_enum SgForAllStatement::*, &SgForAllStatement::p_forall_statement_kind>;
16915};
16925template <> struct node_from_variant_t<423> { using type = SgForAllStatement; };
16926
16927// Class: ForInitStatement
16929 using parent = SgForInitStatement;
16930 using field_type = SgStatementPtrList;
16931 static constexpr size_t position{0};
16932 static constexpr char const * const name{"init_stmt"};
16933 static constexpr char const * const typestr{"SgStatementPtrList"};
16934 static constexpr bool traverse{true};
16935 static constexpr auto mbr_ptr{&SgForInitStatement::p_init_stmt};
16936 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16937 using bind = Desc<SgForInitStatement, SgStatementPtrList SgForInitStatement::*, &SgForInitStatement::p_init_stmt>;
16938};
16940 using node = SgForInitStatement;
16941 using base = SgStatement;
16942 static constexpr char const * const name{"ForInitStatement"};
16943 static constexpr unsigned long variant{424};
16944 static constexpr bool concrete{true};
16945 using subclasses_t = mp::List<>;
16947};
16948template <> struct node_from_variant_t<424> { using type = SgForInitStatement; };
16949
16950// Class: ForStatement
16952 using parent = SgForStatement;
16954 static constexpr size_t position{0};
16955 static constexpr char const * const name{"for_init_stmt"};
16956 static constexpr char const * const typestr{"SgForInitStatement*"};
16957 static constexpr bool traverse{true};
16958 static constexpr auto mbr_ptr{&SgForStatement::p_for_init_stmt};
16959 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16960 using bind = Desc<SgForStatement, SgForInitStatement* SgForStatement::*, &SgForStatement::p_for_init_stmt>;
16961};
16962template <> struct describe_field_t<SgForStatement,SgStatement*,&SgForStatement::p_test> {
16963 using parent = SgForStatement;
16964 using field_type = SgStatement*;
16965 static constexpr size_t position{1};
16966 static constexpr char const * const name{"test"};
16967 static constexpr char const * const typestr{"SgStatement*"};
16968 static constexpr bool traverse{true};
16969 static constexpr auto mbr_ptr{&SgForStatement::p_test};
16970 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16971 using bind = Desc<SgForStatement, SgStatement* SgForStatement::*, &SgForStatement::p_test>;
16972};
16973template <> struct describe_field_t<SgForStatement,SgExpression*,&SgForStatement::p_increment> {
16974 using parent = SgForStatement;
16975 using field_type = SgExpression*;
16976 static constexpr size_t position{2};
16977 static constexpr char const * const name{"increment"};
16978 static constexpr char const * const typestr{"SgExpression*"};
16979 static constexpr bool traverse{true};
16980 static constexpr auto mbr_ptr{&SgForStatement::p_increment};
16981 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16982 using bind = Desc<SgForStatement, SgExpression* SgForStatement::*, &SgForStatement::p_increment>;
16983};
16985 using parent = SgForStatement;
16986 using field_type = SgStatement*;
16987 static constexpr size_t position{3};
16988 static constexpr char const * const name{"loop_body"};
16989 static constexpr char const * const typestr{"SgStatement*"};
16990 static constexpr bool traverse{true};
16991 static constexpr auto mbr_ptr{&SgForStatement::p_loop_body};
16992 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
16993 using bind = Desc<SgForStatement, SgStatement* SgForStatement::*, &SgForStatement::p_loop_body>;
16994};
16996 using parent = SgForStatement;
16997 using field_type = SgStatement*;
16998 static constexpr size_t position{4};
16999 static constexpr char const * const name{"else_body"};
17000 static constexpr char const * const typestr{"SgStatement*"};
17001 static constexpr bool traverse{true};
17002 static constexpr auto mbr_ptr{&SgForStatement::p_else_body};
17003 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
17004 using bind = Desc<SgForStatement, SgStatement* SgForStatement::*, &SgForStatement::p_else_body>;
17005};
17006template <> struct describe_field_t<SgForStatement,std::string,&SgForStatement::p_string_label> {
17007 using parent = SgForStatement;
17008 using field_type = std::string;
17009 static constexpr size_t position{5};
17010 static constexpr char const * const name{"string_label"};
17011 static constexpr char const * const typestr{"std::string"};
17012 static constexpr bool traverse{false};
17013 static constexpr auto mbr_ptr{&SgForStatement::p_string_label};
17014 template <template <typename NodeT, typename FieldT, FieldT fld_ptr> class Desc>
17015 using bind = Desc<SgForStatement, std::string SgForStatement::*, &SgForStatement::p_string_label>;
17016};
17026template <> struct node_from_variant_t<425> { using type = SgForStatement; };
17027
17028// Class: FormatItem