[project @ 1996-01-08 20:28:12 by partain]
[ghc-hetmet.git] / ghc / compiler / yaccParser / binding.ugn
1 %{
2 #include "hspincl.h"
3 %}
4 %{{
5 module U_binding where
6 import UgenUtil
7 import Util
8
9 import U_coresyn        ( U_coresyn ) -- for interfaces only
10 import U_hpragma
11 import U_list
12 import U_literal        ( U_literal ) -- for interfaces only
13 import U_ttype
14 %}}
15 type binding;
16         tbind   : < gtbindc     : list;
17                     gtbindid    : ttype;
18                     gtbindl     : list; 
19                     gtbindd     : list;
20                     gtline      : long;
21                     gtpragma    : hpragma; >;
22         nbind   : < gnbindid    : ttype;
23                     gnbindas    : ttype;
24                     gnline      : long;
25                     gnpragma    : hpragma; >;
26         pbind   : < gpbindl     : list;
27                     gpline      : long; >;
28         fbind   : < gfbindl     : list;
29                     gfline      : long; >;
30         abind   : < gabindfst   : binding;
31                     gabindsnd   : binding; >;
32         lbind   : < glbindfst   : binding;
33                     glbindsnd   : binding; >;
34         ebind   : < gebindl     : list;
35                     gebind      : binding;
36                     geline      : long; >;
37         hbind   : < ghbindl     : list;
38                     ghbind      : binding;
39                     ghline      : long; >;
40         ibind   : < gibindc     : list;
41                     gibindid    : unkId;
42                     gibindi     : ttype;
43                     gibindw     : binding;
44                     giline      : long;
45                     gipragma    : hpragma; >;
46         dbind   : < gdbindts    : list;
47                     gdline      : long; >;
48         cbind   : < gcbindc     : list;
49                     gcbindid    : ttype;
50                     gcbindw     : binding;
51                     gcline      : long;
52                     gcpragma    : hpragma; >;
53         sbind   : < gsbindids   : list;
54                     gsbindid    : ttype;
55                     gsline      : long;
56                     gspragma    : hpragma; >;
57         mbind   : < gmbindmodn  : stringId;
58                     gmbindimp   : list;
59                     gmbindren   : list;
60                     gmline      : long; >;
61         nullbind : < >;
62         import  : < giebindmod  : stringId;
63                     giebindexp  : list;
64                     giebindren  : list;
65                     giebinddef  : binding;
66                     giebindfile : stringId;
67                     giebindline : long; >;
68         hiding  : < gihbindmod  : stringId;
69                     gihbindexp  : list;
70                     gihbindren  : list;
71                     gihbinddef  : binding;
72                     gihbindfile : stringId;
73                     gihbindline : long; >;
74
75         /* user-specified pragmas:XXXX */
76
77         vspec_uprag : < gvspec_id   : unkId;
78                         gvspec_tys  : list;
79                         gvspec_line : long; >;
80
81         vspec_ty_and_id : < gvspec_ty : ttype;
82                         gvspec_tyid : list; /* nil or singleton */ >;
83
84         ispec_uprag : < gispec_clas : unkId;
85                         gispec_ty   : ttype;
86                         gispec_line : long; >;
87
88         inline_uprag: < ginline_id   : unkId;
89                         ginline_howto: list;
90                         ginline_line : long; >;
91
92         deforest_uprag: < gdeforest_id : unkId;
93                         gdeforest_line : long; >;
94
95         magicuf_uprag:< gmagicuf_id   : unkId;
96                         gmagicuf_str  : stringId;
97                         gmagicuf_line : long; >;
98
99         abstract_uprag:<gabstract_id   : unkId;
100                         gabstract_line : long; >;
101
102         dspec_uprag : < gdspec_id   : unkId;
103                         gdspec_tys  : list;
104                         gdspec_line : long; >;
105
106 end;