%{ #include "hspincl.h" %} %{{ module U_coresyn where import UgenUtil import Util import U_list import U_literal 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 : ; corec : ; corec_pair: ; 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;