#include "data/type.h"
#include "data/gc.h"
Include dependency graph for prog/type.h:
This graph shows which files directly or indirectly include this file:
Go to the source code of this file.
Data Structures | |
struct | _plint_type |
the plint type keys. More... | |
struct | _plint_oper |
operator context triggered-action intrinsec definition. More... | |
struct | _plint_hook |
types hooks. More... | |
Defines | |
#define | plint_builtin_typkey plint_builtin_key |
#define | PLINT_TYPE_ORDERED_LIST |
#define | PLINT_TYPE_INTERFACE |
#define | PLINT_TYPE_REGISTER(__name, __hook) |
registering with no dependency but the builtin type. More... | |
#define | PLINT_TYPE_REGDEPS(__name, __hook, __deps__...) |
registering with dependencies list. More... | |
#define | PLINT_TYPE_OPUNI(__op__) void plint_type_u##__op__(plint_mem_t MEMORY, plint_ref_t REFERENCE); |
#define | PLINT_TYPE_ASSGN(__op__) void plint_type_a##__op__(plint_mem_t MEMORY, plint_ref_t DESTINATION, plint_var_t SOURCE); |
#define | PLINT_TYPE_OPCMP(__op__) void plint_type_c##__op__(plint_var_t SELF, plint_var_t OPERAND); |
#define | PLINT_TYPE_OPBIN(__op__) void plint_type_b##__op__(plint_var_t SELF, plint_var_t OPERAND); |
#define | PLINT_TYPE_OPUNI(__op__) void plint_type_u##__op__(plint_var_t SELF); |
Typedefs | |
typedef _plint_hook * | plint_hook_t |
actually a pointer to a _plint_hook structure. | |
typedef _plint_type * | plint_type_t |
actually a pointer to a _plint_type structure. | |
typedef void(* | plint_iface_t )(void *INFO) |
a hook interface callback function. More... | |
typedef _plint_oper | plint_oper_t |
operator context triggered-action intrinsec definition. | |
Enumerations | |
enum | plint_eoper_t { _PLINT_OPER = 0, _PLINT_OPER_start = _PLINT_OPER, PLINT_OPER_neu, PLINT_OPER_assgn, PLINT_OPER_meth, PLINT_OPER_call, PLINT_OPER_echo, PLINT_OPER_read, PLINT_OPER_sync, PLINT_OPER_ucni, PLINT_OPER_uced, PLINT_OPER_cast, PLINT_OPER_len, PLINT_OPER_num, PLINT_OPER_pnt, PLINT_OPER_str, PLINT_OPER_bol, PLINT_OPER_tab, PLINT_OPER_hsh, PLINT_OPER_aadd, PLINT_OPER_asub, PLINT_OPER_amul, PLINT_OPER_adiv, PLINT_OPER_arem, PLINT_OPER_apow, PLINT_OPER_aand, PLINT_OPER_aor, PLINT_OPER_anot, PLINT_OPER_cequ, PLINT_OPER_cneq, PLINT_OPER_clt, PLINT_OPER_cgt, PLINT_OPER_clte, PLINT_OPER_cgte, PLINT_OPER_badd, PLINT_OPER_bsub, PLINT_OPER_bmul, PLINT_OPER_bdiv, PLINT_OPER_brem, PLINT_OPER_bpow, PLINT_OPER_band, PLINT_OPER_bor, PLINT_OPER_bnot, PLINT_OPER_uadd, PLINT_OPER_usub, PLINT_OPER_umul, PLINT_OPER_udiv, PLINT_OPER_urem, PLINT_OPER_upow, PLINT_OPER_uand, PLINT_OPER_uor, PLINT_OPER_unot, PLINT_OPER_uinc, PLINT_OPER_udec, PLINT_OPER_range, PLINT_OPER_merge, _PLINT_OPER_stop = PLINT_OPER_merge, _PLINT_OPER_NO } |
type hook operators/actions types. More... | |
enum | plint_strat_t { PLINT_STRATEGY_DEFAULT, PLINT_STRATEGY_OWN } |
strategy type. More... | |
Functions | |
int | plint_type_once_init () |
void | plint_type_once_finish () |
void | plint_type_init () |
void | plint_type_finish () |
plint_typkey_t | plint_type_register (char const *NAME, char const *const *DEPENDENCIES, plint_hook_t HOOK) |
int | plint_type_unregister (plint_typkey_t TYPEKEY) |
void | plint_type_guard (plint_typkey_t TYPEKEY) |
void | plint_type_unguard (plint_typkey_t TYPEKEY) |
plint_typkey_t | plint_type_getkey (char const *NAME) |
char const * | plint_type_gettyp (plint_typkey_t TYPEKEY) |
int | plint_type_isa (plint_typkey_t WHO, plint_typkey_t WHAT) |
int | plint_type_msq (plint_typkey_t WHO, plint_typkey_t WHAT) |
plint_iface_t | plint_type_gethook (plint_typkey_t TYPEKEY, plint_eoper_t OPERATOR) |
void | plint_type_sethook (plint_typkey_t TYPEKEY, plint_eoper_t OPERATOR, plint_iface_t IFACEFUNC) |
void | plint_type_setlookup (plint_typkey_t TYPEKEY, plint_iface_t(*LOOKUPFUNC)(void *)) |
void * | plint_type_getinfo (plint_typkey_t TYPEKEY) |
plint_typkey_t | plint_type_setinfo (plint_typkey_t TYPEKEY, void *INFO) |
plint_strat_t | plint_type_getstrategy (plint_typkey_t TYPEKEY) |
plint_typkey_t | plint_type_setstrategy (plint_typkey_t TYPEKEY, plint_strat_t STRATEGY) |
size_t | plint_type_ndeps (plint_typkey_t TYPEKEY) |
plint_typkey_t * | plint_type_adeps (plint_typkey_t TYPEKEY) |
int | plint_type_deps (plint_typkey_t WHO, plint_typkey_t WHOM) |
char const * | plint_var_gettyp (plint_var_const_t CONST_VARIABLE) |
plint_var_t | plint_var_settyp (plint_var_t VARIABLE, char const *NAME) |
plint_typkey_t | plint_var_getkey (plint_var_const_t CONST_VARIABLE) |
plint_var_t | plint_var_setkey (plint_var_t VARIABLE, plint_typkey_t TYPEKEY) |
void * | plint_var_getinfo (plint_var_const_t CONST_VARIABLE) |
plint_var_t | plint_var_setinfo (plint_var_t VARIABLE, void *INFO) |
void | plint_type_new (char const *TYPE, plint_tab_t ARGUMENTS) |
void | plint_type_assgn (plint_mem_t MEMORY, plint_ref_t DESTINATION, plint_var_t SOURCE, plint_easg_t TYPE) |
void | plint_type_meth (plint_var_t SELF, plint_str_t METHOD) |
void | plint_type_call (plint_var_t SELF, plint_tab_t ARGUMENTS) |
void | plint_type_echo (plint_var_t SELF) |
void | plint_type_sync (plint_var_t SELF) |
void | plint_type_read (char const *TYPE, plint_tab_t ARGUMENTS) |
void | plint_type_cast (plint_var_t SELF, char const *TYPE) |
void | plint_type_len (plint_var_t SELF) |
void | plint_type2num (plint_var_t SELF) |
void | plint_type2pnt (plint_var_t SELF) |
void | plint_type2str (plint_var_t SELF) |
void | plint_type2bol (plint_var_t SELF) |
void | plint_type2tab (plint_var_t SELF) |
void | plint_type2hsh (plint_var_t SELF) |
void | plint_type_range (plint_var_t SELF, plint_range_t RANGE) |
void | plint_type_merge (plint_var_t SELF, plint_tab_t PARTS) |
void | plint_type_action_done (plint_var_t *PRESULT) |
void | plint_type_action_call (plint_var_t *PSELF, plint_str_t *PNAME, plint_tab_t *PARGUMENTS) |
void | plint_type_action_return (plint_var_t RESULT) |
void | plint_type_action_abort () |
void | plint_type_strategy_default () |
Variables | |
plint_str_t const | plint_seek_what [_PLINT_OPER_NO] |
plint_eoper_t const | plint_oper_map [5][256] |
plint_iface_t(*)(void *) | plint_type_getlookup (plint_typkey_t TYPEKEY) |
Definition in file prog/type.h.