[project @ 1996-06-05 06:44:31 by partain]
[ghc-hetmet.git] / ghc / compiler / parser / binding.ugn
1 %{
2 #include "hspincl.h"
3 %}
4 %{{
5 #include "HsVersions.h"
6
7 module U_binding where
8 IMP_Ubiq() --  debugging consistency check
9 import UgenUtil
10
11 import U_constr
12 import U_list
13 import U_maybe
14 import U_qid
15 import U_ttype
16 %}}
17 type binding;
18         tbind   : < gtbindc     : list;         /* [context entries] */
19                     gtbindid    : ttype;        /* applied tycon */
20                     gtbindl     : list;         /* [constr] */
21                     gtbindd     : maybe;        /* Maybe [deriving] */
22                     gtline      : long; >;
23         ntbind  : < gntbindc    : list;         /* [context entries] */
24                     gntbindid   : ttype;        /* applied tycon */
25                     gntbindcty  : list;         /* [constr]  (only 1 constrnew) */ 
26                     gntbindd    : maybe;        /* Maybe [deriving] */
27                     gntline     : long; >;
28         nbind   : < gnbindid    : ttype;
29                     gnbindas    : ttype;
30                     gnline      : long; >;
31         pbind   : < gpbindl     : list;
32                     gpline      : long; >;
33         fbind   : < gfbindl     : list;
34                     gfline      : long; >;
35         abind   : < gabindfst   : binding;
36                     gabindsnd   : binding; >;
37         ibind   : < gibindc     : list;
38                     gibindid    : qid;
39                     gibindi     : ttype;
40                     gibindw     : binding;
41                     giline      : long; >;
42         dbind   : < gdbindts    : list;
43                     gdline      : long; >;
44         cbind   : < gcbindc     : list;
45                     gcbindid    : ttype;
46                     gcbindw     : binding;
47                     gcline      : long; >;
48         sbind   : < gsbindids   : list;
49                     gsbindid    : ttype;
50                     gsline      : long; >;
51
52         nullbind : < >;
53
54         import  : < gibindimod  : stringId;
55                     gibindqual  : long;
56                     gibindas    : maybe;
57                     gibindspec  : maybe;
58                     gibindline  : long; >;
59
60         /* user-specified pragmas:XXXX */
61
62         vspec_uprag : < gvspec_id   : qid;
63                         gvspec_tys  : list;
64                         gvspec_line : long; >;
65
66         vspec_ty_and_id : < gvspec_ty : ttype;
67                         gvspec_tyid : maybe; /* nil or singleton */ >;
68
69         ispec_uprag : < gispec_clas : qid;
70                         gispec_ty   : ttype;
71                         gispec_line : long; >;
72
73         inline_uprag: < ginline_id   : qid;
74                         ginline_line : long; >;
75
76         deforest_uprag: < gdeforest_id : qid;
77                         gdeforest_line : long; >;
78
79         magicuf_uprag:< gmagicuf_id   : qid;
80                         gmagicuf_str  : stringId;
81                         gmagicuf_line : long; >;
82
83         dspec_uprag : < gdspec_id   : qid;
84                         gdspec_tys  : list;
85                         gdspec_line : long; >;
86
87 end;