[project @ 1996-01-18 16:33:17 by partain]
[ghc-hetmet.git] / ghc / compiler / yaccParser / hpragma.h
1 #ifndef hpragma_defined
2 #define hpragma_defined
3
4 #include <stdio.h>
5
6 #ifndef PROTO
7 #ifdef __STDC__
8 #define PROTO(x) x
9 #else
10 #define PROTO(x) /**/
11 #endif
12 #endif
13
14 typedef enum {
15         no_pragma,
16         idata_pragma,
17         itype_pragma,
18         iclas_pragma,
19         iclasop_pragma,
20         iinst_simpl_pragma,
21         iinst_const_pragma,
22         igen_pragma,
23         iarity_pragma,
24         iupdate_pragma,
25         ideforest_pragma,
26         istrictness_pragma,
27         imagic_unfolding_pragma,
28         iunfolding_pragma,
29         iunfold_always,
30         iunfold_if_args,
31         iname_pragma_pr,
32         itype_pragma_pr,
33         idata_pragma_4s
34 } Thpragma;
35
36 typedef struct { Thpragma tag; } *hpragma;
37
38 #ifdef __GNUC__
39 Thpragma thpragma(hpragma t);
40 extern __inline__ Thpragma thpragma(hpragma t)
41 {
42         return(t -> tag);
43 }
44 #else  /* ! __GNUC__ */
45 extern Thpragma thpragma PROTO((hpragma));
46 #endif /* ! __GNUC__ */
47
48 struct Sno_pragma {
49         Thpragma tag;
50 };
51
52 struct Sidata_pragma {
53         Thpragma tag;
54         list Xgprag_data_constrs;
55         list Xgprag_data_specs;
56 };
57
58 struct Sitype_pragma {
59         Thpragma tag;
60 };
61
62 struct Siclas_pragma {
63         Thpragma tag;
64         list Xgprag_clas;
65 };
66
67 struct Siclasop_pragma {
68         Thpragma tag;
69         hpragma Xgprag_dsel;
70         hpragma Xgprag_defm;
71 };
72
73 struct Siinst_simpl_pragma {
74         Thpragma tag;
75         stringId Xgprag_imod_simpl;
76         hpragma Xgprag_dfun_simpl;
77 };
78
79 struct Siinst_const_pragma {
80         Thpragma tag;
81         stringId Xgprag_imod_const;
82         hpragma Xgprag_dfun_const;
83         list Xgprag_constms;
84 };
85
86 struct Sigen_pragma {
87         Thpragma tag;
88         hpragma Xgprag_arity;
89         hpragma Xgprag_update;
90         hpragma Xgprag_deforest;
91         hpragma Xgprag_strictness;
92         hpragma Xgprag_unfolding;
93         list Xgprag_specs;
94 };
95
96 struct Siarity_pragma {
97         Thpragma tag;
98         numId Xgprag_arity_val;
99 };
100
101 struct Siupdate_pragma {
102         Thpragma tag;
103         stringId Xgprag_update_val;
104 };
105
106 struct Sideforest_pragma {
107         Thpragma tag;
108 };
109
110 struct Sistrictness_pragma {
111         Thpragma tag;
112         hstring Xgprag_strict_spec;
113         hpragma Xgprag_strict_wrkr;
114 };
115
116 struct Simagic_unfolding_pragma {
117         Thpragma tag;
118         stringId Xgprag_magic_str;
119 };
120
121 struct Siunfolding_pragma {
122         Thpragma tag;
123         hpragma Xgprag_unfold_guide;
124         coresyn Xgprag_unfold_core;
125 };
126
127 struct Siunfold_always {
128         Thpragma tag;
129 };
130
131 struct Siunfold_if_args {
132         Thpragma tag;
133         numId Xgprag_unfold_if_t_args;
134         numId Xgprag_unfold_if_v_args;
135         stringId Xgprag_unfold_if_con_args;
136         numId Xgprag_unfold_if_size;
137 };
138
139 struct Siname_pragma_pr {
140         Thpragma tag;
141         unkId Xgprag_name_pr1;
142         hpragma Xgprag_name_pr2;
143 };
144
145 struct Sitype_pragma_pr {
146         Thpragma tag;
147         list Xgprag_type_pr1;
148         numId Xgprag_type_pr2;
149         hpragma Xgprag_type_pr3;
150 };
151
152 struct Sidata_pragma_4s {
153         Thpragma tag;
154         list Xgprag_data_spec;
155 };
156
157 extern hpragma mkno_pragma PROTO((void));
158
159 extern hpragma mkidata_pragma PROTO((list, list));
160 #ifdef __GNUC__
161
162 list *Rgprag_data_constrs PROTO((struct Sidata_pragma *));
163
164 extern __inline__ list *Rgprag_data_constrs(struct Sidata_pragma *t)
165 {
166 #ifdef UGEN_DEBUG
167         if(t -> tag != idata_pragma)
168                 fprintf(stderr,"gprag_data_constrs: illegal selection; was %d\n", t -> tag);
169 #endif /* UGEN_DEBUG */
170         return(& t -> Xgprag_data_constrs);
171 }
172 #else  /* ! __GNUC__ */
173 extern list *Rgprag_data_constrs PROTO((struct Sidata_pragma *));
174 #endif /* ! __GNUC__ */
175
176 #define gprag_data_constrs(xyzxyz) (*Rgprag_data_constrs((struct Sidata_pragma *) (xyzxyz)))
177 #ifdef __GNUC__
178
179 list *Rgprag_data_specs PROTO((struct Sidata_pragma *));
180
181 extern __inline__ list *Rgprag_data_specs(struct Sidata_pragma *t)
182 {
183 #ifdef UGEN_DEBUG
184         if(t -> tag != idata_pragma)
185                 fprintf(stderr,"gprag_data_specs: illegal selection; was %d\n", t -> tag);
186 #endif /* UGEN_DEBUG */
187         return(& t -> Xgprag_data_specs);
188 }
189 #else  /* ! __GNUC__ */
190 extern list *Rgprag_data_specs PROTO((struct Sidata_pragma *));
191 #endif /* ! __GNUC__ */
192
193 #define gprag_data_specs(xyzxyz) (*Rgprag_data_specs((struct Sidata_pragma *) (xyzxyz)))
194
195 extern hpragma mkitype_pragma PROTO((void));
196
197 extern hpragma mkiclas_pragma PROTO((list));
198 #ifdef __GNUC__
199
200 list *Rgprag_clas PROTO((struct Siclas_pragma *));
201
202 extern __inline__ list *Rgprag_clas(struct Siclas_pragma *t)
203 {
204 #ifdef UGEN_DEBUG
205         if(t -> tag != iclas_pragma)
206                 fprintf(stderr,"gprag_clas: illegal selection; was %d\n", t -> tag);
207 #endif /* UGEN_DEBUG */
208         return(& t -> Xgprag_clas);
209 }
210 #else  /* ! __GNUC__ */
211 extern list *Rgprag_clas PROTO((struct Siclas_pragma *));
212 #endif /* ! __GNUC__ */
213
214 #define gprag_clas(xyzxyz) (*Rgprag_clas((struct Siclas_pragma *) (xyzxyz)))
215
216 extern hpragma mkiclasop_pragma PROTO((hpragma, hpragma));
217 #ifdef __GNUC__
218
219 hpragma *Rgprag_dsel PROTO((struct Siclasop_pragma *));
220
221 extern __inline__ hpragma *Rgprag_dsel(struct Siclasop_pragma *t)
222 {
223 #ifdef UGEN_DEBUG
224         if(t -> tag != iclasop_pragma)
225                 fprintf(stderr,"gprag_dsel: illegal selection; was %d\n", t -> tag);
226 #endif /* UGEN_DEBUG */
227         return(& t -> Xgprag_dsel);
228 }
229 #else  /* ! __GNUC__ */
230 extern hpragma *Rgprag_dsel PROTO((struct Siclasop_pragma *));
231 #endif /* ! __GNUC__ */
232
233 #define gprag_dsel(xyzxyz) (*Rgprag_dsel((struct Siclasop_pragma *) (xyzxyz)))
234 #ifdef __GNUC__
235
236 hpragma *Rgprag_defm PROTO((struct Siclasop_pragma *));
237
238 extern __inline__ hpragma *Rgprag_defm(struct Siclasop_pragma *t)
239 {
240 #ifdef UGEN_DEBUG
241         if(t -> tag != iclasop_pragma)
242                 fprintf(stderr,"gprag_defm: illegal selection; was %d\n", t -> tag);
243 #endif /* UGEN_DEBUG */
244         return(& t -> Xgprag_defm);
245 }
246 #else  /* ! __GNUC__ */
247 extern hpragma *Rgprag_defm PROTO((struct Siclasop_pragma *));
248 #endif /* ! __GNUC__ */
249
250 #define gprag_defm(xyzxyz) (*Rgprag_defm((struct Siclasop_pragma *) (xyzxyz)))
251
252 extern hpragma mkiinst_simpl_pragma PROTO((stringId, hpragma));
253 #ifdef __GNUC__
254
255 stringId *Rgprag_imod_simpl PROTO((struct Siinst_simpl_pragma *));
256
257 extern __inline__ stringId *Rgprag_imod_simpl(struct Siinst_simpl_pragma *t)
258 {
259 #ifdef UGEN_DEBUG
260         if(t -> tag != iinst_simpl_pragma)
261                 fprintf(stderr,"gprag_imod_simpl: illegal selection; was %d\n", t -> tag);
262 #endif /* UGEN_DEBUG */
263         return(& t -> Xgprag_imod_simpl);
264 }
265 #else  /* ! __GNUC__ */
266 extern stringId *Rgprag_imod_simpl PROTO((struct Siinst_simpl_pragma *));
267 #endif /* ! __GNUC__ */
268
269 #define gprag_imod_simpl(xyzxyz) (*Rgprag_imod_simpl((struct Siinst_simpl_pragma *) (xyzxyz)))
270 #ifdef __GNUC__
271
272 hpragma *Rgprag_dfun_simpl PROTO((struct Siinst_simpl_pragma *));
273
274 extern __inline__ hpragma *Rgprag_dfun_simpl(struct Siinst_simpl_pragma *t)
275 {
276 #ifdef UGEN_DEBUG
277         if(t -> tag != iinst_simpl_pragma)
278                 fprintf(stderr,"gprag_dfun_simpl: illegal selection; was %d\n", t -> tag);
279 #endif /* UGEN_DEBUG */
280         return(& t -> Xgprag_dfun_simpl);
281 }
282 #else  /* ! __GNUC__ */
283 extern hpragma *Rgprag_dfun_simpl PROTO((struct Siinst_simpl_pragma *));
284 #endif /* ! __GNUC__ */
285
286 #define gprag_dfun_simpl(xyzxyz) (*Rgprag_dfun_simpl((struct Siinst_simpl_pragma *) (xyzxyz)))
287
288 extern hpragma mkiinst_const_pragma PROTO((stringId, hpragma, list));
289 #ifdef __GNUC__
290
291 stringId *Rgprag_imod_const PROTO((struct Siinst_const_pragma *));
292
293 extern __inline__ stringId *Rgprag_imod_const(struct Siinst_const_pragma *t)
294 {
295 #ifdef UGEN_DEBUG
296         if(t -> tag != iinst_const_pragma)
297                 fprintf(stderr,"gprag_imod_const: illegal selection; was %d\n", t -> tag);
298 #endif /* UGEN_DEBUG */
299         return(& t -> Xgprag_imod_const);
300 }
301 #else  /* ! __GNUC__ */
302 extern stringId *Rgprag_imod_const PROTO((struct Siinst_const_pragma *));
303 #endif /* ! __GNUC__ */
304
305 #define gprag_imod_const(xyzxyz) (*Rgprag_imod_const((struct Siinst_const_pragma *) (xyzxyz)))
306 #ifdef __GNUC__
307
308 hpragma *Rgprag_dfun_const PROTO((struct Siinst_const_pragma *));
309
310 extern __inline__ hpragma *Rgprag_dfun_const(struct Siinst_const_pragma *t)
311 {
312 #ifdef UGEN_DEBUG
313         if(t -> tag != iinst_const_pragma)
314                 fprintf(stderr,"gprag_dfun_const: illegal selection; was %d\n", t -> tag);
315 #endif /* UGEN_DEBUG */
316         return(& t -> Xgprag_dfun_const);
317 }
318 #else  /* ! __GNUC__ */
319 extern hpragma *Rgprag_dfun_const PROTO((struct Siinst_const_pragma *));
320 #endif /* ! __GNUC__ */
321
322 #define gprag_dfun_const(xyzxyz) (*Rgprag_dfun_const((struct Siinst_const_pragma *) (xyzxyz)))
323 #ifdef __GNUC__
324
325 list *Rgprag_constms PROTO((struct Siinst_const_pragma *));
326
327 extern __inline__ list *Rgprag_constms(struct Siinst_const_pragma *t)
328 {
329 #ifdef UGEN_DEBUG
330         if(t -> tag != iinst_const_pragma)
331                 fprintf(stderr,"gprag_constms: illegal selection; was %d\n", t -> tag);
332 #endif /* UGEN_DEBUG */
333         return(& t -> Xgprag_constms);
334 }
335 #else  /* ! __GNUC__ */
336 extern list *Rgprag_constms PROTO((struct Siinst_const_pragma *));
337 #endif /* ! __GNUC__ */
338
339 #define gprag_constms(xyzxyz) (*Rgprag_constms((struct Siinst_const_pragma *) (xyzxyz)))
340
341 extern hpragma mkigen_pragma PROTO((hpragma, hpragma, hpragma, hpragma, hpragma, list));
342 #ifdef __GNUC__
343
344 hpragma *Rgprag_arity PROTO((struct Sigen_pragma *));
345
346 extern __inline__ hpragma *Rgprag_arity(struct Sigen_pragma *t)
347 {
348 #ifdef UGEN_DEBUG
349         if(t -> tag != igen_pragma)
350                 fprintf(stderr,"gprag_arity: illegal selection; was %d\n", t -> tag);
351 #endif /* UGEN_DEBUG */
352         return(& t -> Xgprag_arity);
353 }
354 #else  /* ! __GNUC__ */
355 extern hpragma *Rgprag_arity PROTO((struct Sigen_pragma *));
356 #endif /* ! __GNUC__ */
357
358 #define gprag_arity(xyzxyz) (*Rgprag_arity((struct Sigen_pragma *) (xyzxyz)))
359 #ifdef __GNUC__
360
361 hpragma *Rgprag_update PROTO((struct Sigen_pragma *));
362
363 extern __inline__ hpragma *Rgprag_update(struct Sigen_pragma *t)
364 {
365 #ifdef UGEN_DEBUG
366         if(t -> tag != igen_pragma)
367                 fprintf(stderr,"gprag_update: illegal selection; was %d\n", t -> tag);
368 #endif /* UGEN_DEBUG */
369         return(& t -> Xgprag_update);
370 }
371 #else  /* ! __GNUC__ */
372 extern hpragma *Rgprag_update PROTO((struct Sigen_pragma *));
373 #endif /* ! __GNUC__ */
374
375 #define gprag_update(xyzxyz) (*Rgprag_update((struct Sigen_pragma *) (xyzxyz)))
376 #ifdef __GNUC__
377
378 hpragma *Rgprag_deforest PROTO((struct Sigen_pragma *));
379
380 extern __inline__ hpragma *Rgprag_deforest(struct Sigen_pragma *t)
381 {
382 #ifdef UGEN_DEBUG
383         if(t -> tag != igen_pragma)
384                 fprintf(stderr,"gprag_deforest: illegal selection; was %d\n", t -> tag);
385 #endif /* UGEN_DEBUG */
386         return(& t -> Xgprag_deforest);
387 }
388 #else  /* ! __GNUC__ */
389 extern hpragma *Rgprag_deforest PROTO((struct Sigen_pragma *));
390 #endif /* ! __GNUC__ */
391
392 #define gprag_deforest(xyzxyz) (*Rgprag_deforest((struct Sigen_pragma *) (xyzxyz)))
393 #ifdef __GNUC__
394
395 hpragma *Rgprag_strictness PROTO((struct Sigen_pragma *));
396
397 extern __inline__ hpragma *Rgprag_strictness(struct Sigen_pragma *t)
398 {
399 #ifdef UGEN_DEBUG
400         if(t -> tag != igen_pragma)
401                 fprintf(stderr,"gprag_strictness: illegal selection; was %d\n", t -> tag);
402 #endif /* UGEN_DEBUG */
403         return(& t -> Xgprag_strictness);
404 }
405 #else  /* ! __GNUC__ */
406 extern hpragma *Rgprag_strictness PROTO((struct Sigen_pragma *));
407 #endif /* ! __GNUC__ */
408
409 #define gprag_strictness(xyzxyz) (*Rgprag_strictness((struct Sigen_pragma *) (xyzxyz)))
410 #ifdef __GNUC__
411
412 hpragma *Rgprag_unfolding PROTO((struct Sigen_pragma *));
413
414 extern __inline__ hpragma *Rgprag_unfolding(struct Sigen_pragma *t)
415 {
416 #ifdef UGEN_DEBUG
417         if(t -> tag != igen_pragma)
418                 fprintf(stderr,"gprag_unfolding: illegal selection; was %d\n", t -> tag);
419 #endif /* UGEN_DEBUG */
420         return(& t -> Xgprag_unfolding);
421 }
422 #else  /* ! __GNUC__ */
423 extern hpragma *Rgprag_unfolding PROTO((struct Sigen_pragma *));
424 #endif /* ! __GNUC__ */
425
426 #define gprag_unfolding(xyzxyz) (*Rgprag_unfolding((struct Sigen_pragma *) (xyzxyz)))
427 #ifdef __GNUC__
428
429 list *Rgprag_specs PROTO((struct Sigen_pragma *));
430
431 extern __inline__ list *Rgprag_specs(struct Sigen_pragma *t)
432 {
433 #ifdef UGEN_DEBUG
434         if(t -> tag != igen_pragma)
435                 fprintf(stderr,"gprag_specs: illegal selection; was %d\n", t -> tag);
436 #endif /* UGEN_DEBUG */
437         return(& t -> Xgprag_specs);
438 }
439 #else  /* ! __GNUC__ */
440 extern list *Rgprag_specs PROTO((struct Sigen_pragma *));
441 #endif /* ! __GNUC__ */
442
443 #define gprag_specs(xyzxyz) (*Rgprag_specs((struct Sigen_pragma *) (xyzxyz)))
444
445 extern hpragma mkiarity_pragma PROTO((numId));
446 #ifdef __GNUC__
447
448 numId *Rgprag_arity_val PROTO((struct Siarity_pragma *));
449
450 extern __inline__ numId *Rgprag_arity_val(struct Siarity_pragma *t)
451 {
452 #ifdef UGEN_DEBUG
453         if(t -> tag != iarity_pragma)
454                 fprintf(stderr,"gprag_arity_val: illegal selection; was %d\n", t -> tag);
455 #endif /* UGEN_DEBUG */
456         return(& t -> Xgprag_arity_val);
457 }
458 #else  /* ! __GNUC__ */
459 extern numId *Rgprag_arity_val PROTO((struct Siarity_pragma *));
460 #endif /* ! __GNUC__ */
461
462 #define gprag_arity_val(xyzxyz) (*Rgprag_arity_val((struct Siarity_pragma *) (xyzxyz)))
463
464 extern hpragma mkiupdate_pragma PROTO((stringId));
465 #ifdef __GNUC__
466
467 stringId *Rgprag_update_val PROTO((struct Siupdate_pragma *));
468
469 extern __inline__ stringId *Rgprag_update_val(struct Siupdate_pragma *t)
470 {
471 #ifdef UGEN_DEBUG
472         if(t -> tag != iupdate_pragma)
473                 fprintf(stderr,"gprag_update_val: illegal selection; was %d\n", t -> tag);
474 #endif /* UGEN_DEBUG */
475         return(& t -> Xgprag_update_val);
476 }
477 #else  /* ! __GNUC__ */
478 extern stringId *Rgprag_update_val PROTO((struct Siupdate_pragma *));
479 #endif /* ! __GNUC__ */
480
481 #define gprag_update_val(xyzxyz) (*Rgprag_update_val((struct Siupdate_pragma *) (xyzxyz)))
482
483 extern hpragma mkideforest_pragma PROTO((void));
484
485 extern hpragma mkistrictness_pragma PROTO((hstring, hpragma));
486 #ifdef __GNUC__
487
488 hstring *Rgprag_strict_spec PROTO((struct Sistrictness_pragma *));
489
490 extern __inline__ hstring *Rgprag_strict_spec(struct Sistrictness_pragma *t)
491 {
492 #ifdef UGEN_DEBUG
493         if(t -> tag != istrictness_pragma)
494                 fprintf(stderr,"gprag_strict_spec: illegal selection; was %d\n", t -> tag);
495 #endif /* UGEN_DEBUG */
496         return(& t -> Xgprag_strict_spec);
497 }
498 #else  /* ! __GNUC__ */
499 extern hstring *Rgprag_strict_spec PROTO((struct Sistrictness_pragma *));
500 #endif /* ! __GNUC__ */
501
502 #define gprag_strict_spec(xyzxyz) (*Rgprag_strict_spec((struct Sistrictness_pragma *) (xyzxyz)))
503 #ifdef __GNUC__
504
505 hpragma *Rgprag_strict_wrkr PROTO((struct Sistrictness_pragma *));
506
507 extern __inline__ hpragma *Rgprag_strict_wrkr(struct Sistrictness_pragma *t)
508 {
509 #ifdef UGEN_DEBUG
510         if(t -> tag != istrictness_pragma)
511                 fprintf(stderr,"gprag_strict_wrkr: illegal selection; was %d\n", t -> tag);
512 #endif /* UGEN_DEBUG */
513         return(& t -> Xgprag_strict_wrkr);
514 }
515 #else  /* ! __GNUC__ */
516 extern hpragma *Rgprag_strict_wrkr PROTO((struct Sistrictness_pragma *));
517 #endif /* ! __GNUC__ */
518
519 #define gprag_strict_wrkr(xyzxyz) (*Rgprag_strict_wrkr((struct Sistrictness_pragma *) (xyzxyz)))
520
521 extern hpragma mkimagic_unfolding_pragma PROTO((stringId));
522 #ifdef __GNUC__
523
524 stringId *Rgprag_magic_str PROTO((struct Simagic_unfolding_pragma *));
525
526 extern __inline__ stringId *Rgprag_magic_str(struct Simagic_unfolding_pragma *t)
527 {
528 #ifdef UGEN_DEBUG
529         if(t -> tag != imagic_unfolding_pragma)
530                 fprintf(stderr,"gprag_magic_str: illegal selection; was %d\n", t -> tag);
531 #endif /* UGEN_DEBUG */
532         return(& t -> Xgprag_magic_str);
533 }
534 #else  /* ! __GNUC__ */
535 extern stringId *Rgprag_magic_str PROTO((struct Simagic_unfolding_pragma *));
536 #endif /* ! __GNUC__ */
537
538 #define gprag_magic_str(xyzxyz) (*Rgprag_magic_str((struct Simagic_unfolding_pragma *) (xyzxyz)))
539
540 extern hpragma mkiunfolding_pragma PROTO((hpragma, coresyn));
541 #ifdef __GNUC__
542
543 hpragma *Rgprag_unfold_guide PROTO((struct Siunfolding_pragma *));
544
545 extern __inline__ hpragma *Rgprag_unfold_guide(struct Siunfolding_pragma *t)
546 {
547 #ifdef UGEN_DEBUG
548         if(t -> tag != iunfolding_pragma)
549                 fprintf(stderr,"gprag_unfold_guide: illegal selection; was %d\n", t -> tag);
550 #endif /* UGEN_DEBUG */
551         return(& t -> Xgprag_unfold_guide);
552 }
553 #else  /* ! __GNUC__ */
554 extern hpragma *Rgprag_unfold_guide PROTO((struct Siunfolding_pragma *));
555 #endif /* ! __GNUC__ */
556
557 #define gprag_unfold_guide(xyzxyz) (*Rgprag_unfold_guide((struct Siunfolding_pragma *) (xyzxyz)))
558 #ifdef __GNUC__
559
560 coresyn *Rgprag_unfold_core PROTO((struct Siunfolding_pragma *));
561
562 extern __inline__ coresyn *Rgprag_unfold_core(struct Siunfolding_pragma *t)
563 {
564 #ifdef UGEN_DEBUG
565         if(t -> tag != iunfolding_pragma)
566                 fprintf(stderr,"gprag_unfold_core: illegal selection; was %d\n", t -> tag);
567 #endif /* UGEN_DEBUG */
568         return(& t -> Xgprag_unfold_core);
569 }
570 #else  /* ! __GNUC__ */
571 extern coresyn *Rgprag_unfold_core PROTO((struct Siunfolding_pragma *));
572 #endif /* ! __GNUC__ */
573
574 #define gprag_unfold_core(xyzxyz) (*Rgprag_unfold_core((struct Siunfolding_pragma *) (xyzxyz)))
575
576 extern hpragma mkiunfold_always PROTO((void));
577
578 extern hpragma mkiunfold_if_args PROTO((numId, numId, stringId, numId));
579 #ifdef __GNUC__
580
581 numId *Rgprag_unfold_if_t_args PROTO((struct Siunfold_if_args *));
582
583 extern __inline__ numId *Rgprag_unfold_if_t_args(struct Siunfold_if_args *t)
584 {
585 #ifdef UGEN_DEBUG
586         if(t -> tag != iunfold_if_args)
587                 fprintf(stderr,"gprag_unfold_if_t_args: illegal selection; was %d\n", t -> tag);
588 #endif /* UGEN_DEBUG */
589         return(& t -> Xgprag_unfold_if_t_args);
590 }
591 #else  /* ! __GNUC__ */
592 extern numId *Rgprag_unfold_if_t_args PROTO((struct Siunfold_if_args *));
593 #endif /* ! __GNUC__ */
594
595 #define gprag_unfold_if_t_args(xyzxyz) (*Rgprag_unfold_if_t_args((struct Siunfold_if_args *) (xyzxyz)))
596 #ifdef __GNUC__
597
598 numId *Rgprag_unfold_if_v_args PROTO((struct Siunfold_if_args *));
599
600 extern __inline__ numId *Rgprag_unfold_if_v_args(struct Siunfold_if_args *t)
601 {
602 #ifdef UGEN_DEBUG
603         if(t -> tag != iunfold_if_args)
604                 fprintf(stderr,"gprag_unfold_if_v_args: illegal selection; was %d\n", t -> tag);
605 #endif /* UGEN_DEBUG */
606         return(& t -> Xgprag_unfold_if_v_args);
607 }
608 #else  /* ! __GNUC__ */
609 extern numId *Rgprag_unfold_if_v_args PROTO((struct Siunfold_if_args *));
610 #endif /* ! __GNUC__ */
611
612 #define gprag_unfold_if_v_args(xyzxyz) (*Rgprag_unfold_if_v_args((struct Siunfold_if_args *) (xyzxyz)))
613 #ifdef __GNUC__
614
615 stringId *Rgprag_unfold_if_con_args PROTO((struct Siunfold_if_args *));
616
617 extern __inline__ stringId *Rgprag_unfold_if_con_args(struct Siunfold_if_args *t)
618 {
619 #ifdef UGEN_DEBUG
620         if(t -> tag != iunfold_if_args)
621                 fprintf(stderr,"gprag_unfold_if_con_args: illegal selection; was %d\n", t -> tag);
622 #endif /* UGEN_DEBUG */
623         return(& t -> Xgprag_unfold_if_con_args);
624 }
625 #else  /* ! __GNUC__ */
626 extern stringId *Rgprag_unfold_if_con_args PROTO((struct Siunfold_if_args *));
627 #endif /* ! __GNUC__ */
628
629 #define gprag_unfold_if_con_args(xyzxyz) (*Rgprag_unfold_if_con_args((struct Siunfold_if_args *) (xyzxyz)))
630 #ifdef __GNUC__
631
632 numId *Rgprag_unfold_if_size PROTO((struct Siunfold_if_args *));
633
634 extern __inline__ numId *Rgprag_unfold_if_size(struct Siunfold_if_args *t)
635 {
636 #ifdef UGEN_DEBUG
637         if(t -> tag != iunfold_if_args)
638                 fprintf(stderr,"gprag_unfold_if_size: illegal selection; was %d\n", t -> tag);
639 #endif /* UGEN_DEBUG */
640         return(& t -> Xgprag_unfold_if_size);
641 }
642 #else  /* ! __GNUC__ */
643 extern numId *Rgprag_unfold_if_size PROTO((struct Siunfold_if_args *));
644 #endif /* ! __GNUC__ */
645
646 #define gprag_unfold_if_size(xyzxyz) (*Rgprag_unfold_if_size((struct Siunfold_if_args *) (xyzxyz)))
647
648 extern hpragma mkiname_pragma_pr PROTO((unkId, hpragma));
649 #ifdef __GNUC__
650
651 unkId *Rgprag_name_pr1 PROTO((struct Siname_pragma_pr *));
652
653 extern __inline__ unkId *Rgprag_name_pr1(struct Siname_pragma_pr *t)
654 {
655 #ifdef UGEN_DEBUG
656         if(t -> tag != iname_pragma_pr)
657                 fprintf(stderr,"gprag_name_pr1: illegal selection; was %d\n", t -> tag);
658 #endif /* UGEN_DEBUG */
659         return(& t -> Xgprag_name_pr1);
660 }
661 #else  /* ! __GNUC__ */
662 extern unkId *Rgprag_name_pr1 PROTO((struct Siname_pragma_pr *));
663 #endif /* ! __GNUC__ */
664
665 #define gprag_name_pr1(xyzxyz) (*Rgprag_name_pr1((struct Siname_pragma_pr *) (xyzxyz)))
666 #ifdef __GNUC__
667
668 hpragma *Rgprag_name_pr2 PROTO((struct Siname_pragma_pr *));
669
670 extern __inline__ hpragma *Rgprag_name_pr2(struct Siname_pragma_pr *t)
671 {
672 #ifdef UGEN_DEBUG
673         if(t -> tag != iname_pragma_pr)
674                 fprintf(stderr,"gprag_name_pr2: illegal selection; was %d\n", t -> tag);
675 #endif /* UGEN_DEBUG */
676         return(& t -> Xgprag_name_pr2);
677 }
678 #else  /* ! __GNUC__ */
679 extern hpragma *Rgprag_name_pr2 PROTO((struct Siname_pragma_pr *));
680 #endif /* ! __GNUC__ */
681
682 #define gprag_name_pr2(xyzxyz) (*Rgprag_name_pr2((struct Siname_pragma_pr *) (xyzxyz)))
683
684 extern hpragma mkitype_pragma_pr PROTO((list, numId, hpragma));
685 #ifdef __GNUC__
686
687 list *Rgprag_type_pr1 PROTO((struct Sitype_pragma_pr *));
688
689 extern __inline__ list *Rgprag_type_pr1(struct Sitype_pragma_pr *t)
690 {
691 #ifdef UGEN_DEBUG
692         if(t -> tag != itype_pragma_pr)
693                 fprintf(stderr,"gprag_type_pr1: illegal selection; was %d\n", t -> tag);
694 #endif /* UGEN_DEBUG */
695         return(& t -> Xgprag_type_pr1);
696 }
697 #else  /* ! __GNUC__ */
698 extern list *Rgprag_type_pr1 PROTO((struct Sitype_pragma_pr *));
699 #endif /* ! __GNUC__ */
700
701 #define gprag_type_pr1(xyzxyz) (*Rgprag_type_pr1((struct Sitype_pragma_pr *) (xyzxyz)))
702 #ifdef __GNUC__
703
704 numId *Rgprag_type_pr2 PROTO((struct Sitype_pragma_pr *));
705
706 extern __inline__ numId *Rgprag_type_pr2(struct Sitype_pragma_pr *t)
707 {
708 #ifdef UGEN_DEBUG
709         if(t -> tag != itype_pragma_pr)
710                 fprintf(stderr,"gprag_type_pr2: illegal selection; was %d\n", t -> tag);
711 #endif /* UGEN_DEBUG */
712         return(& t -> Xgprag_type_pr2);
713 }
714 #else  /* ! __GNUC__ */
715 extern numId *Rgprag_type_pr2 PROTO((struct Sitype_pragma_pr *));
716 #endif /* ! __GNUC__ */
717
718 #define gprag_type_pr2(xyzxyz) (*Rgprag_type_pr2((struct Sitype_pragma_pr *) (xyzxyz)))
719 #ifdef __GNUC__
720
721 hpragma *Rgprag_type_pr3 PROTO((struct Sitype_pragma_pr *));
722
723 extern __inline__ hpragma *Rgprag_type_pr3(struct Sitype_pragma_pr *t)
724 {
725 #ifdef UGEN_DEBUG
726         if(t -> tag != itype_pragma_pr)
727                 fprintf(stderr,"gprag_type_pr3: illegal selection; was %d\n", t -> tag);
728 #endif /* UGEN_DEBUG */
729         return(& t -> Xgprag_type_pr3);
730 }
731 #else  /* ! __GNUC__ */
732 extern hpragma *Rgprag_type_pr3 PROTO((struct Sitype_pragma_pr *));
733 #endif /* ! __GNUC__ */
734
735 #define gprag_type_pr3(xyzxyz) (*Rgprag_type_pr3((struct Sitype_pragma_pr *) (xyzxyz)))
736
737 extern hpragma mkidata_pragma_4s PROTO((list));
738 #ifdef __GNUC__
739
740 list *Rgprag_data_spec PROTO((struct Sidata_pragma_4s *));
741
742 extern __inline__ list *Rgprag_data_spec(struct Sidata_pragma_4s *t)
743 {
744 #ifdef UGEN_DEBUG
745         if(t -> tag != idata_pragma_4s)
746                 fprintf(stderr,"gprag_data_spec: illegal selection; was %d\n", t -> tag);
747 #endif /* UGEN_DEBUG */
748         return(& t -> Xgprag_data_spec);
749 }
750 #else  /* ! __GNUC__ */
751 extern list *Rgprag_data_spec PROTO((struct Sidata_pragma_4s *));
752 #endif /* ! __GNUC__ */
753
754 #define gprag_data_spec(xyzxyz) (*Rgprag_data_spec((struct Sidata_pragma_4s *) (xyzxyz)))
755
756 #endif