1 #ifndef TYPE_DECL_H 2 #define TYPE_DECL_H 3 4 #include "../lib/mlrval.h" 5 6 // ---------------------------------------------------------------- 7 // These use the MT defines from mlrval.h, except that map-types (mlhmmv.h) 8 // are outside of mlrval.h. 9 #define TYPE_MASK_ERROR (1 << MT_ERROR) 10 #define TYPE_MASK_ABSENT (1 << MT_ABSENT) 11 #define TYPE_MASK_EMPTY (1 << MT_EMPTY) 12 #define TYPE_MASK_STRING ((1 << MT_STRING) | (1 << MT_EMPTY)) 13 #define TYPE_MASK_INT (1 << MT_INT) 14 #define TYPE_MASK_FLOAT (1 << MT_FLOAT) 15 #define TYPE_MASK_NUMERIC (TYPE_MASK_INT | TYPE_MASK_FLOAT) 16 #define TYPE_MASK_BOOLEAN (1 << MT_BOOLEAN) 17 #define TYPE_MASK_MAP (1 << MT_DIM) 18 #define TYPE_MASK_ANY (~0) 19 20 // ---------------------------------------------------------------- 21 char* type_mask_to_desc(int type_mask); type_mask_from_mv(mv_t * pmv)22static inline int type_mask_from_mv(mv_t* pmv) { 23 return 1 << pmv->type; 24 } 25 int type_mask_from_name(char* name); 26 27 #endif // TYPE_DECL_H 28