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