enhanced module handling

This commit is contained in:
2012-11-02 14:08:46 +00:00
parent 86463296e4
commit 7557b22cb8
14 changed files with 193 additions and 113 deletions

View File

@ -84,6 +84,8 @@ public:
typedef qse_awk_fnc_info_t fnc_info_t;
typedef qse_awk_mod_info_t mod_info_t;
class Run;
friend class Run;
@ -1224,7 +1226,7 @@ protected:
virtual flt_t exp (flt_t x) = 0;
virtual flt_t sqrt (flt_t x) = 0;
virtual void* modopen (const char_t* dir, const char_t* name) = 0;
virtual void* modopen (const mod_info_t* info) = 0;
virtual void modclose (void* handle) = 0;
virtual void* modsym (void* handle, const char_t* name) = 0;
@ -1263,7 +1265,7 @@ protected:
static flt_t exp (awk_t* awk, flt_t x);
static flt_t sqrt (awk_t* awk, flt_t x);
static void* modopen (awk_t* awk, const char_t* dir, const char_t* name);
static void* modopen (awk_t* awk, const mod_info_t* info);
static void modclose (awk_t* awk, void* handle);
static void* modsym (awk_t* awk, void* handle, const char_t* name);

View File

@ -200,7 +200,7 @@ protected:
flt_t exp (flt_t x);
flt_t sqrt (flt_t x);
void* modopen (const char_t* dir, const char_t* name);
void* modopen (const mod_info_t* info);
void modclose (void* handle);
void* modsym (void* handle, const char_t* name);

View File

@ -414,10 +414,18 @@ typedef qse_flt_t (*qse_awk_math2_t) (
qse_flt_t y
);
typedef struct qse_awk_mod_info_t qse_awk_mod_info_t;
struct qse_awk_mod_info_t
{
const qse_char_t* prefix;
const qse_char_t* postfix;
const qse_char_t* name;
};
typedef void* (*qse_awk_modopen_t) (
qse_awk_t* awk,
const qse_char_t* dir,
const qse_char_t* name
qse_awk_t* awk,
const qse_awk_mod_info_t* info
);
typedef void* (*qse_awk_modsym_t) (
@ -821,6 +829,7 @@ struct qse_awk_mod_sym_t
} u;
};
/* ------------------------------------------------------------------------ */
/**
@ -911,7 +920,9 @@ struct qse_awk_rtx_ecb_t
enum qse_awk_opt_t
{
QSE_AWK_TRAIT = 0,
QSE_AWK_MODDIR,
QSE_AWK_MODPREFIX,
QSE_AWK_MODPOSTFIX,
QSE_AWK_DEPTH_INCLUDE,
QSE_AWK_DEPTH_BLOCK_PARSE,