blob: feeb5ac6a10a58ffa4fbb8ba968bed92f9ac86aa (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
%{
#include "hspincl.h"
%}
%{{
module U_coresyn where
import Ubiq -- debugging consistency check
import UgenUtil
import U_list
import U_literal
import U_qid ( U_qid ) -- for interfaces only
import U_ttype
%}}
type coresyn;
/* binders: simple Id, plus a type */
cobinder : < gcobinder_v : unkId;
gcobinder_ty : ttype; >;
/* atoms */
colit : < gcolit : literal; >;
colocal : < gcolocal_v : coresyn; >;
cononrec : <gcononrec_b : coresyn;
gcononrec_rhs : coresyn; >;
corec : <gcorec : list; >;
corec_pair: <gcorec_b : coresyn;
gcorec_rhs : coresyn; >;
covar : < gcovar : coresyn; >;
coliteral :< gcoliteral : literal; >;
cocon : < gcocon_con : coresyn;
gcocon_tys : list;
gcocon_args : list; >;
coprim : < gcoprim_op : coresyn; /* primop or something */
gcoprim_tys : list;
gcoprim_args: list; >;
colam : < gcolam_vars : list;
gcolam_body : coresyn; >;
cotylam : < gcotylam_tvs: list;
gcotylam_body : coresyn; >;
coapp : < gcoapp_fun : coresyn;
gcoapp_args : list; >;
cotyapp : < gcotyapp_e : coresyn;
gcotyapp_t : ttype; >;
cocase : < gcocase_s : coresyn;
gcocase_alts : coresyn; >;
colet : < gcolet_bind : coresyn;
gcolet_body : coresyn; >;
coscc : < gcoscc_scc : coresyn;
gcoscc_body : coresyn; >;
coalg_alts : < gcoalg_alts : list;
gcoalg_deflt : coresyn; >;
coalg_alt : < gcoalg_con : coresyn;
gcoalg_bs : list;
gcoalg_rhs : coresyn; >;
coprim_alts : < gcoprim_alts : list;
gcoprim_deflt : coresyn; >;
coprim_alt : < gcoprim_lit : literal;
gcoprim_rhs : coresyn; >;
conodeflt : < >;
cobinddeflt : < gcobinddeflt_v : coresyn;
gcobinddeflt_rhs : coresyn; >;
co_primop : < gco_primop : stringId;>;
co_ccall : < gco_ccall : stringId;
gco_ccall_may_gc : long;
gco_ccall_arg_tys : list;
gco_ccall_res_ty : ttype; >;
co_casm : < gco_casm : literal;
gco_casm_may_gc : long;
gco_casm_arg_tys : list;
gco_casm_res_ty : ttype; >;
/* various flavours of cost-centres */
co_preludedictscc : < gco_preludedictscc_dupd : coresyn; >;
co_alldictscc : < gco_alldictscc_m : hstring;
gco_alldictscc_g : hstring;
gco_alldictscc_dupd : coresyn; >;
co_usercc : < gco_usercc_n : hstring;
gco_usercc_m : hstring;
gco_usercc_g : hstring;
gco_usercc_dupd : coresyn;
gco_usercc_cafd : coresyn; >;
co_autocc : < gco_autocc_i : coresyn;
gco_autocc_m : hstring;
gco_autocc_g : hstring;
gco_autocc_dupd : coresyn;
gco_autocc_cafd : coresyn; >;
co_dictcc : < gco_dictcc_i : coresyn;
gco_dictcc_m : hstring;
gco_dictcc_g : hstring;
gco_dictcc_dupd : coresyn;
gco_dictcc_cafd : coresyn; >;
co_scc_noncaf : < >;
co_scc_caf : < >;
co_scc_nondupd : < >;
co_scc_dupd : < >;
/* various flavours of Ids */
co_id : < gco_id : stringId; >;
co_orig_id : < gco_orig_id_m : stringId;
gco_orig_id_n : stringId; >;
co_sdselid : < gco_sdselid_c : unkId;
gco_sdselid_sc : unkId; >;
co_classopid : < gco_classopid_c : unkId;
gco_classopid_o : unkId; >;
co_defmid : < gco_defmid_c : unkId;
gco_defmid_op : unkId; >;
co_dfunid : < gco_dfunid_c : unkId;
gco_dfunid_ty : ttype; >;
co_constmid : < gco_constmid_c : unkId;
gco_constmid_op : unkId;
gco_constmid_ty : ttype; >;
co_specid : < gco_specid_un : coresyn;
gco_specid_tys : list; >;
co_wrkrid : < gco_wrkrid_un : coresyn; >;
end;
|