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