+++ /dev/null
-%{
-#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 : <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;