Main Page   Modules   Alphabetical List   Data Structures   File List   Data Fields   Globals  

type.h File Reference

plint variable type engine. More...

#include "data/type.h"
#include "data/gc.h"

Include dependency graph for prog/type.h:

Include dependency graph

This graph shows which files directly or indirectly include this file:

Included by dependency graph

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_hookplint_hook_t
 actually a pointer to a _plint_hook structure.

typedef _plint_typeplint_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_tplint_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)


Detailed Description

plint variable type engine.

Author:
Sebastian Glita

Definition in file prog/type.h.


Generated on Thu Jan 9 19:02:56 2003 for plint by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002