cuex/oprdefs.h: Operator Definitions
[cuex: Expressions]

Defines

#define CUEX_OG_ALL_REL_MIN   0x0UL
#define CUEX_OG_ALL_REL_MAXP   0x10000UL
#define CUEX_OG_ALL_SHIFT   12
#define CUEX_OG_ALL_ATTRS_SHIFT   12
#define CUEX_OG_ALL_ATTRS_WIDTH   0
#define CUEX_OG_REGULAR_REL_MIN   0x0UL
#define CUEX_OG_REGULAR_REL_MAXP   0x4000UL
#define CUEX_OG_REGULAR_SHIFT   12
#define CUEX_OG_REGULAR_ATTRS_SHIFT   12
#define CUEX_OG_REGULAR_ATTRS_WIDTH   0
#define CUEX_O0_NULL   0x1UL
#define cuex_o0_null()   cuex_opn(0x1UL)
#define CUEX_O0_UNKNOWN   0x1001UL
#define cuex_o0_unknown()   cuex_opn(0x1001UL)
#define CUEX_O1_IDENT   0x41UL
#define cuex_o1_ident(e0)   cuex_opn(0x41UL, e0)
#define CUEX_O2_TUPLE   0x81UL
#define cuex_o2_tuple(e0, e1)   cuex_opn(0x81UL, e0, e1)
#define CUEX_O2_MEET   0x1081UL
#define cuex_o2_meet(e0, e1)   cuex_opn(0x1081UL, e0, e1)
#define CUEX_O2_JOIN   0x2081UL
#define cuex_o2_join(e0, e1)   cuex_opn(0x2081UL, e0, e1)
#define CUEX_O2_GPROD   0x3081UL
#define cuex_o2_gprod(e0, e1)   cuex_opn(0x3081UL, e0, e1)
#define CUEX_O2_GEXPT   0x4081UL
#define cuex_o2_gexpt(e0, e1)   cuex_opn(0x4081UL, e0, e1)
#define CUEX_O2_FARROW   0x5081UL
#define cuex_o2_farrow(e0, e1)   cuex_opn(0x5081UL, e0, e1)
#define CUEX_O2_FARROW_NATIVE   0x6081UL
#define cuex_o2_farrow_native(e0, e1)   cuex_opn(0x6081UL, e0, e1)
#define CUEX_O1_PTR_TO   0x1041UL
#define cuex_o1_ptr_to(e0)   cuex_opn(0x1041UL, e0)
#define CUEX_O2_PAIR   0x7081UL
#define cuex_o2_pair(e0, e1)   cuex_opn(0x7081UL, e0, e1)
#define CUEX_O2_APPLY   0x8081UL
#define cuex_o2_apply(e0, e1)   cuex_opn(0x8081UL, e0, e1)
#define CUEX_O3_IF   0xc1UL
#define cuex_o3_if(e0, e1, e2)   cuex_opn(0xc1UL, e0, e1, e2)
#define CUEX_OR_TUPLE(r)   (0x9001UL | (cuex_meta_t)(r) << 6)
#define CUEX_O2_RBIND   0xa081UL
#define cuex_o2_rbind(e0, e1)   cuex_opn(0xa081UL, e0, e1)
#define CUEX_O1_SINGLETON   0x2041UL
#define cuex_o1_singleton(e0)   cuex_opn(0x2041UL, e0)
#define CUEX_O1_VTABLE_SLOTS   0x3041UL
#define cuex_o1_vtable_slots(e0)   cuex_opn(0x3041UL, e0)
#define CUEX_OG_METAREGULAR_REL_MIN   0x3fe0UL
#define CUEX_OG_METAREGULAR_REL_MAXP   0x4000UL
#define CUEX_OG_METAREGULAR_SHIFT   12
#define CUEX_OG_METAREGULAR_ATTRS_SHIFT   12
#define CUEX_OG_METAREGULAR_ATTRS_WIDTH   0
#define CUEX_O1_SUBST_BLOCK   0x3fe0041UL
#define cuex_o1_subst_block(e0)   cuex_opn(0x3fe0041UL, e0)
#define CUEX_O2_INTERNAL0   0x3fe0081UL
#define cuex_o2_internal0(e0, e1)   cuex_opn(0x3fe0081UL, e0, e1)
#define CUEX_O0_METANULL   0x3fe0001UL
#define cuex_o0_metanull()   cuex_opn(0x3fe0001UL)
#define CUEX_O0_METAIDR0   0x3fe1001UL
#define cuex_o0_metaidr0()   cuex_opn(0x3fe1001UL)
#define CUEX_O1_METAIDENT   0x3fe1041UL
#define cuex_o1_metaident(e0)   cuex_opn(0x3fe1041UL, e0)
#define CUEX_O1_METATAG0   0x3fe2041UL
#define cuex_o1_metatag0(e0)   cuex_opn(0x3fe2041UL, e0)
#define CUEX_O1_METATAG1   0x3fe3041UL
#define cuex_o1_metatag1(e0)   cuex_opn(0x3fe3041UL, e0)
#define CUEX_O2_METAPAIR   0x3fe1081UL
#define cuex_o2_metapair(e0, e1)   cuex_opn(0x3fe1081UL, e0, e1)
#define CUEX_O2_METAJOIN   0x3fe2081UL
#define cuex_o2_metajoin(e0, e1)   cuex_opn(0x3fe2081UL, e0, e1)
#define CUEX_OG_SCOPING_REL_MIN   0x4200UL
#define CUEX_OG_SCOPING_REL_MAXP   0x4210UL
#define CUEX_OG_SCOPING_SHIFT   12
#define CUEX_OG_SCOPING_ATTRS_SHIFT   12
#define CUEX_OG_SCOPING_ATTRS_WIDTH   0
#define CUEX_O2_LAMBDA   0x4200081UL
#define cuex_o2_lambda(e0, e1)   cuex_opn(0x4200081UL, e0, e1)
#define CUEX_O3_LAMBDA_TA   0x42000c1UL
#define cuex_o3_lambda_ta(e0, e1, e2)   cuex_opn(0x42000c1UL, e0, e1, e2)
#define CUEX_O2_FORALL   0x4201081UL
#define cuex_o2_forall(e0, e1)   cuex_opn(0x4201081UL, e0, e1)
#define CUEX_O3_FORALL   0x42010c1UL
#define cuex_o3_forall(e0, e1, e2)   cuex_opn(0x42010c1UL, e0, e1, e2)
#define CUEX_OG_TA_REL_MIN   0x4210UL
#define CUEX_OG_TA_REL_MAXP   0x4220UL
#define CUEX_OG_TA_SHIFT   12
#define CUEX_OG_TA_ATTRS_SHIFT   12
#define CUEX_OG_TA_ATTRS_WIDTH   0
#define CUEX_O2_IDENT_TA   0x4210081UL
#define cuex_o2_ident_ta(e0, e1)   cuex_opn(0x4210081UL, e0, e1)
#define CUEX_O3_LOAD_TA   0x42100c1UL
#define cuex_o3_load_ta(e0, e1, e2)   cuex_opn(0x42100c1UL, e0, e1, e2)
#define CUEX_OR_CALL_TA(r)   (0x4211001UL | (cuex_meta_t)(r) << 6)
#define CUEXP_OG_LTREE_REL_MIN   0x6000UL
#define CUEXP_OG_LTREE_REL_MAXP   0x6200UL
#define CUEXP_OG_LTREE_SHIFT   17
#define CUEXP_OG_LTREE_ATTRS_SHIFT   12
#define CUEXP_OG_LTREE_ATTRS_WIDTH   5
#define CUEXP_OA_LTREE_DEPTH(a)   ((cuex_meta_t)(a) << 12)
#define CUEXP_OA_LTREE_DEPTH_MASK   0x1f000UL
#define CUEXP_OA_LTREE_DEPTH_WIDTH   5
#define CUEXP_OR_LTREE(r)   (0x6000001UL | (cuex_meta_t)(r) << 6)
#define CUEX_OG_SEMILATTICE_REL_MIN   0x6800UL
#define CUEX_OG_SEMILATTICE_REL_MAXP   0x7000UL
#define CUEX_OG_SEMILATTICE_SHIFT   18
#define CUEX_OG_SEMILATTICE_ATTRS_SHIFT   12
#define CUEX_OG_SEMILATTICE_ATTRS_WIDTH   6
#define CUEX_OA_SEMILATTICE_PREFIX(a)   ((cuex_meta_t)(a) << 12)
#define CUEX_OA_SEMILATTICE_PREFIX_MASK   0x3f000UL
#define CUEX_OA_SEMILATTICE_PREFIX_WIDTH   6
#define CUEX_OG_HOLE_REL_MIN   0x7000UL
#define CUEX_OG_HOLE_REL_MAXP   0x7800UL
#define CUEX_OG_HOLE_SHIFT   23
#define CUEX_OG_HOLE_ATTRS_SHIFT   12
#define CUEX_OG_HOLE_ATTRS_WIDTH   11
#define CUEX_OA_HOLE_INDEX(a)   ((cuex_meta_t)(a) << 12)
#define CUEX_OA_HOLE_INDEX_MASK   0x7ff000UL
#define CUEX_OA_HOLE_INDEX_WIDTH   11
#define CUEX_O0_HOLE   0x7000001UL
#define cuex_o0_hole()   cuex_opn(0x7000001UL)
#define CUEX_O2_MUPATH   0x7000081UL
#define cuex_o2_mupath(e0, e1)   cuex_opn(0x7000081UL, e0, e1)
#define CUEX_OG_BINDER_REL_MIN   0x7f00UL
#define CUEX_OG_BINDER_REL_MAXP   0x8000UL
#define CUEX_OG_BINDER_SHIFT   12
#define CUEX_OG_BINDER_ATTRS_SHIFT   12
#define CUEX_OG_BINDER_ATTRS_WIDTH   0
#define CUEX_O1_MU   0x7f00041UL
#define cuex_o1_mu(e0)   cuex_opn(0x7f00041UL, e0)
#define CUEX_O1_LAMBDA   0x7f01041UL
#define cuex_o1_lambda(e0)   cuex_opn(0x7f01041UL, e0)
#define CUEX_OPRDEFS_OA_COUNT_MAX   1

Functions

cu_bool_t cuex_og_all_contains (cuex_meta_t opr)
cuex_meta_t cuex_og_all_strip (cuex_meta_t opr)
cu_bool_t cuex_og_regular_contains (cuex_meta_t opr)
cuex_meta_t cuex_og_regular_strip (cuex_meta_t opr)
cu_bool_t cuex_og_metaregular_contains (cuex_meta_t opr)
cuex_meta_t cuex_og_metaregular_strip (cuex_meta_t opr)
cu_bool_t cuex_og_scoping_contains (cuex_meta_t opr)
cuex_meta_t cuex_og_scoping_strip (cuex_meta_t opr)
cu_bool_t cuex_og_ta_contains (cuex_meta_t opr)
cuex_meta_t cuex_og_ta_strip (cuex_meta_t opr)
cu_bool_t cuexP_og_ltree_contains (cuex_meta_t opr)
cuex_meta_t cuexP_og_ltree_strip (cuex_meta_t opr)
cuex_meta_t cuexP_oa_ltree_depth_set (cuex_meta_t opr, unsigned int val)
unsigned int cuexP_oa_ltree_depth (cuex_meta_t opr)
cu_bool_t cuex_og_semilattice_contains (cuex_meta_t opr)
cuex_meta_t cuex_og_semilattice_strip (cuex_meta_t opr)
cuex_meta_t cuex_oa_semilattice_prefix_set (cuex_meta_t opr, unsigned int val)
unsigned int cuex_oa_semilattice_prefix (cuex_meta_t opr)
cu_bool_t cuex_og_hole_contains (cuex_meta_t opr)
cuex_meta_t cuex_og_hole_strip (cuex_meta_t opr)
cuex_meta_t cuex_oa_hole_index_set (cuex_meta_t opr, unsigned int val)
unsigned int cuex_oa_hole_index (cuex_meta_t opr)
cu_bool_t cuex_og_binder_contains (cuex_meta_t opr)
cuex_meta_t cuex_og_binder_strip (cuex_meta_t opr)
cuex_meta_t cuex_oprdefs_decode_opr (cuex_meta_t opr, int *oa_cnt, int *oa_arr)
void cuex_oprdefs_init (void)

Define Documentation

#define CUEX_OPRDEFS_OA_COUNT_MAX   1

The maximum number of operator arguments used.


Function Documentation

cuex_meta_t cuex_oprdefs_decode_opr ( cuex_meta_t  opr,
int *  oa_cnt,
int *  oa_arr 
)

Decode operator arguments into oa_arr, set oa_cnt to the number of arguments and return the operator after stripping its arguments.

Precondition:
oa_arr must have size at least CUEX_OPRDEFS_OA_COUNT_MAX.
Generated 2009-11-23 for culibs-0.25 using Doxygen. Maintained by Petter Urkedal.