[project @ 1996-01-11 14:06:51 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 /*OLD:95/08:
33         lbind   : < glbindfst   : binding;
34                     glbindsnd   : binding; >;
35 */
36 /*OLD:95/08:    ebind   : < gebindl     : list;
37                     gebind      : binding;
38                     geline      : long; >;
39 */
40 /*OLD: 95/08:   hbind   : < ghbindl     : list;
41                     ghbind      : binding;
42                     ghline      : long; >;
43 */
44         ibind   : < gibindc     : list;
45                     gibindid    : unkId;
46                     gibindi     : ttype;
47                     gibindw     : binding;
48                     giline      : long;
49                     gipragma    : hpragma; >;
50         dbind   : < gdbindts    : list;
51                     gdline      : long; >;
52         cbind   : < gcbindc     : list;
53                     gcbindid    : ttype;
54                     gcbindw     : binding;
55                     gcline      : long;
56                     gcpragma    : hpragma; >;
57         sbind   : < gsbindids   : list;
58                     gsbindid    : ttype;
59                     gsline      : long;
60                     gspragma    : hpragma; >;
61         mbind   : < gmbindmodn  : stringId;
62                     gmbindimp   : list;
63                     gmbindren   : list;
64                     gmline      : long; >;
65         nullbind : < >;
66         import  : < giebindmod  : stringId;
67                     giebindexp  : list;
68                     giebindren  : list;
69                     giebinddef  : binding;
70                     giebindfile : stringId;
71                     giebindline : long; >;
72 /* "hiding" is used in a funny way:
73    it has to have the *exact* same structure as "import";
74    because what we do is: create an "import" then change
75    its tag to "hiding".  Yeeps. (WDP 95/08)
76 */
77         hiding  : < gihbindmod  : stringId;
78                     gihbindexp  : list;
79                     gihbindren  : list;
80                     gihbinddef  : binding;
81                     gihbindfile : stringId;
82                     gihbindline : long; >;
83
84         /* user-specified pragmas:XXXX */
85
86         vspec_uprag : < gvspec_id   : unkId;
87                         gvspec_tys  : list;
88                         gvspec_line : long; >;
89
90         vspec_ty_and_id : < gvspec_ty : ttype;
91                         gvspec_tyid : list; /* nil or singleton */ >;
92
93         ispec_uprag : < gispec_clas : unkId;
94                         gispec_ty   : ttype;
95                         gispec_line : long; >;
96
97         inline_uprag: < ginline_id   : unkId;
98                         ginline_howto: list;
99                         ginline_line : long; >;
100
101         deforest_uprag: < gdeforest_id : unkId;
102                         gdeforest_line : long; >;
103
104         magicuf_uprag:< gmagicuf_id   : unkId;
105                         gmagicuf_str  : stringId;
106                         gmagicuf_line : long; >;
107
108         abstract_uprag:<gabstract_id   : unkId;
109                         gabstract_line : long; >;
110
111         dspec_uprag : < gdspec_id   : unkId;
112                         gdspec_tys  : list;
113                         gdspec_line : long; >;
114
115 end;