+++ /dev/null
-%{
-#include "hspincl.h"
-%}
-%{{
-module U_hpragma where
-import UgenUtil
-import Util
-
-import U_coresyn
-import U_list
-import U_literal ( U_literal ) -- ditto
-import U_ttype ( U_ttype ) -- interface only
-%}}
-type hpragma;
- no_pragma: < > ;
-
- idata_pragma: < gprag_data_constrs : list; /*of con decls*/
- gprag_data_specs : list; /*specialisations*/ >;
-
- itype_pragma: < >;
-
- iclas_pragma: < gprag_clas : list; /*of gen pragmas*/ >;
-
- iclasop_pragma: < gprag_dsel : hpragma; /* gen pragma: dict selector */
- gprag_defm : hpragma; /* gen pragma: default method */ >;
-
- iinst_simpl_pragma: < gprag_imod_simpl : stringId;
- gprag_dfun_simpl : hpragma; /* gen pragma: of dfun */ >;
-
- iinst_const_pragma: < gprag_imod_const : stringId;
- gprag_dfun_const : hpragma; /* gen pragma: of dfun */
- gprag_constms : list; /* (name, gen pragma) pairs */ >;
-
- igen_pragma: < gprag_arity : hpragma; /* arity */
- gprag_update : hpragma; /* update info */
- gprag_deforest : hpragma; /* deforest info */
- gprag_strictness : hpragma; /* strictness info */
- gprag_unfolding : hpragma; /* unfolding */
- gprag_specs : list; /* (type, gen pragma) pairs */ >;
-
- iarity_pragma: < gprag_arity_val : numId; >;
- iupdate_pragma: < gprag_update_val : stringId; >;
- ideforest_pragma: < >;
- istrictness_pragma: < gprag_strict_spec : hstring;
- gprag_strict_wrkr : hpragma; /*about worker*/ >;
- imagic_unfolding_pragma: < gprag_magic_str : stringId; >;
-
- iunfolding_pragma: < gprag_unfold_guide : hpragma; /* guidance */
- gprag_unfold_core : coresyn; >;
-
- iunfold_always: < >;
- iunfold_if_args: < gprag_unfold_if_t_args : numId;
- gprag_unfold_if_v_args : numId;
- gprag_unfold_if_con_args : stringId;
- gprag_unfold_if_size : numId; >;
-
- iname_pragma_pr: < gprag_name_pr1 : unkId;
- gprag_name_pr2 : hpragma; >;
- itype_pragma_pr: < gprag_type_pr1 : list; /* of maybe types */
- gprag_type_pr2 : numId; /* # dicts to ignore */
- gprag_type_pr3 : hpragma; >;
-
- idata_pragma_4s: < gprag_data_spec : list; /* of maybe types */ >;
-
-end;