added more documentation

This commit is contained in:
2009-02-02 04:12:49 +00:00
parent 6affaf4d37
commit 0836d3e319
26 changed files with 520 additions and 631 deletions

View File

@ -92,7 +92,7 @@ Awk::EIO::operator Awk::eio_t* () const
Awk::EIO::operator Awk::run_t* () const
{
return eio->run;
return eio->rtx;
}
//////////////////////////////////////////////////////////////////
@ -142,12 +142,12 @@ int Awk::Console::setFileName (const char_t* name)
if (eio->mode == READ)
{
return qse_awk_rtx_setfilename (
eio->run, name, qse_strlen(name));
eio->rtx, name, qse_strlen(name));
}
else
{
return qse_awk_rtx_setofilename (
eio->run, name, qse_strlen(name));
eio->rtx, name, qse_strlen(name));
}
}
@ -156,12 +156,12 @@ int Awk::Console::setFNR (long_t fnr)
qse_awk_val_t* tmp;
int n;
tmp = qse_awk_rtx_makeintval (eio->run, fnr);
tmp = qse_awk_rtx_makeintval (eio->rtx, fnr);
if (tmp == QSE_NULL) return -1;
qse_awk_rtx_refupval (eio->run, tmp);
n = qse_awk_rtx_setglobal (eio->run, QSE_AWK_GLOBAL_FNR, tmp);
qse_awk_rtx_refdownval (eio->run, tmp);
qse_awk_rtx_refupval (eio->rtx, tmp);
n = qse_awk_rtx_setglobal (eio->rtx, QSE_AWK_GLOBAL_FNR, tmp);
qse_awk_rtx_refdownval (eio->rtx, tmp);
return n;
}
@ -1204,7 +1204,7 @@ int Awk::open ()
return -1;
}
*(Awk**)QSE_MAP_XTN(functionMap) = this;
*(Awk**)qse_map_getxtn(functionMap) = this;
qse_map_setcopier (functionMap, QSE_MAP_KEY, QSE_MAP_COPIER_INLINE);
qse_map_setfreeer (functionMap, QSE_MAP_VAL, freeFunctionMapValue);
qse_map_setscale (functionMap, QSE_MAP_KEY, QSE_SIZEOF(qse_char_t));
@ -1402,7 +1402,7 @@ int Awk::run (const char_t* main, const char_t** args, size_t nargs)
void Awk::stop ()
{
QSE_ASSERT (awk != QSE_NULL);
qse_awk_rtx_stopall (awk);
qse_awk_stopall (awk);
}
int Awk::dispatchFunction (Run* run, const char_t* name, size_t len)
@ -1717,7 +1717,7 @@ int Awk::functionHandler (
void Awk::freeFunctionMapValue (map_t* map, void* dptr, size_t dlen)
{
//Awk* awk = (Awk*)owner;
Awk* awk = *(Awk**)QSE_MAP_XTN(map);
Awk* awk = *(Awk**)qse_map_getxtn(map);
qse_awk_free (awk->awk, dptr);
}

View File

@ -35,7 +35,7 @@
static void free_fun (qse_map_t* map, void* vptr, qse_size_t vlen)
{
qse_awk_t* awk = *(qse_awk_t**)QSE_MAP_XTN(map);
qse_awk_t* awk = *(qse_awk_t**)qse_map_getxtn(map);
qse_awk_fun_t* f = (qse_awk_fun_t*)vptr;
/* f->name doesn't have to be freed */
@ -47,7 +47,7 @@ static void free_fun (qse_map_t* map, void* vptr, qse_size_t vlen)
static void free_fnc (qse_map_t* map, void* vptr, qse_size_t vlen)
{
qse_awk_t* awk = *(qse_awk_t**)QSE_MAP_XTN(map);
qse_awk_t* awk = *(qse_awk_t**)qse_map_getxtn(map);
qse_awk_fnc_t* f = (qse_awk_fnc_t*)vptr;
QSE_AWK_FREE (awk, f);
@ -78,7 +78,7 @@ qse_awk_t* qse_awk_open (qse_mmgr_t* mmgr, qse_size_t ext)
awk->wtab = qse_map_open (mmgr, QSE_SIZEOF(awk), 512, 70);
if (awk->wtab == QSE_NULL) goto oops;
*(qse_awk_t**)QSE_MAP_XTN(awk->wtab) = awk;
*(qse_awk_t**)qse_map_getxtn(awk->wtab) = awk;
qse_map_setcopier (awk->wtab, QSE_MAP_KEY, QSE_MAP_COPIER_INLINE);
qse_map_setcopier (awk->wtab, QSE_MAP_VAL, QSE_MAP_COPIER_INLINE);
qse_map_setscale (awk->wtab, QSE_MAP_KEY, QSE_SIZEOF(qse_char_t));
@ -86,7 +86,7 @@ qse_awk_t* qse_awk_open (qse_mmgr_t* mmgr, qse_size_t ext)
awk->rwtab = qse_map_open (mmgr, QSE_SIZEOF(awk), 512, 70);
if (awk->rwtab == QSE_NULL) goto oops;
*(qse_awk_t**)QSE_MAP_XTN(awk->rwtab) = awk;
*(qse_awk_t**)qse_map_getxtn(awk->rwtab) = awk;
qse_map_setcopier (awk->rwtab, QSE_MAP_KEY, QSE_MAP_COPIER_INLINE);
qse_map_setcopier (awk->rwtab, QSE_MAP_VAL, QSE_MAP_COPIER_INLINE);
qse_map_setscale (awk->rwtab, QSE_MAP_KEY, QSE_SIZEOF(qse_char_t));
@ -95,21 +95,21 @@ qse_awk_t* qse_awk_open (qse_mmgr_t* mmgr, qse_size_t ext)
/* TODO: initial map size?? */
awk->tree.funs = qse_map_open (mmgr, QSE_SIZEOF(awk), 512, 70);
if (awk->tree.funs == QSE_NULL) goto oops;
*(qse_awk_t**)QSE_MAP_XTN(awk->tree.funs) = awk;
*(qse_awk_t**)qse_map_getxtn(awk->tree.funs) = awk;
qse_map_setcopier (awk->tree.funs, QSE_MAP_KEY, QSE_MAP_COPIER_INLINE);
qse_map_setfreeer (awk->tree.funs, QSE_MAP_VAL, free_fun);
qse_map_setscale (awk->tree.funs, QSE_MAP_KEY, QSE_SIZEOF(qse_char_t));
awk->parse.funs = qse_map_open (mmgr, QSE_SIZEOF(awk), 256, 70);
if (awk->parse.funs == QSE_NULL) goto oops;
*(qse_awk_t**)QSE_MAP_XTN(awk->parse.funs) = awk;
*(qse_awk_t**)qse_map_getxtn(awk->parse.funs) = awk;
qse_map_setcopier (awk->parse.funs, QSE_MAP_KEY, QSE_MAP_COPIER_INLINE);
qse_map_setcopier (awk->parse.funs, QSE_MAP_VAL, QSE_MAP_COPIER_INLINE);
qse_map_setscale (awk->parse.funs, QSE_MAP_KEY, QSE_SIZEOF(qse_char_t));
awk->parse.named = qse_map_open (mmgr, QSE_SIZEOF(awk), 256, 70);
if (awk->parse.named == QSE_NULL) goto oops;
*(qse_awk_t**)QSE_MAP_XTN(awk->parse.named) = awk;
*(qse_awk_t**)qse_map_getxtn(awk->parse.named) = awk;
qse_map_setcopier (awk->parse.named, QSE_MAP_KEY, QSE_MAP_COPIER_INLINE);
qse_map_setcopier (awk->parse.named, QSE_MAP_VAL, QSE_MAP_COPIER_INLINE);
qse_map_setscale (awk->parse.named, QSE_MAP_KEY, QSE_SIZEOF(qse_char_t));
@ -122,15 +122,15 @@ qse_awk_t* qse_awk_open (qse_mmgr_t* mmgr, qse_size_t ext)
awk->parse.locals == QSE_NULL ||
awk->parse.params == QSE_NULL) goto oops;
*(qse_awk_t**)QSE_LDA_XTN(awk->parse.globals) = awk;
*(qse_awk_t**)qse_lda_getxtn(awk->parse.globals) = awk;
qse_lda_setcopier (awk->parse.globals, QSE_LDA_COPIER_INLINE);
qse_lda_setscale (awk->parse.globals, QSE_SIZEOF(qse_char_t));
*(qse_awk_t**)QSE_LDA_XTN(awk->parse.locals) = awk;
*(qse_awk_t**)qse_lda_getxtn(awk->parse.locals) = awk;
qse_lda_setcopier (awk->parse.locals, QSE_LDA_COPIER_INLINE);
qse_lda_setscale (awk->parse.locals, QSE_SIZEOF(qse_char_t));
*(qse_awk_t**)QSE_LDA_XTN(awk->parse.params) = awk;
*(qse_awk_t**)qse_lda_getxtn(awk->parse.params) = awk;
qse_lda_setcopier (awk->parse.params, QSE_LDA_COPIER_INLINE);
qse_lda_setscale (awk->parse.params, QSE_SIZEOF(qse_char_t));
@ -168,7 +168,7 @@ qse_awk_t* qse_awk_open (qse_mmgr_t* mmgr, qse_size_t ext)
awk->fnc.sys = QSE_NULL;
awk->fnc.user = qse_map_open (mmgr, QSE_SIZEOF(awk), 512, 70);
if (awk->fnc.user == QSE_NULL) goto oops;
*(qse_awk_t**)QSE_MAP_XTN(awk->fnc.user) = awk;
*(qse_awk_t**)qse_map_getxtn(awk->fnc.user) = awk;
qse_map_setcopier (awk->fnc.user, QSE_MAP_KEY, QSE_MAP_COPIER_INLINE);
qse_map_setfreeer (awk->fnc.user, QSE_MAP_VAL, free_fnc);
qse_map_setscale (awk->fnc.user, QSE_MAP_KEY, QSE_SIZEOF(qse_char_t));
@ -366,7 +366,7 @@ void qse_awk_setoption (qse_awk_t* awk, int opt)
}
void qse_awk_rtx_stopall (qse_awk_t* awk)
void qse_awk_stopall (qse_awk_t* awk)
{
awk->stopall = QSE_TRUE;
}
@ -448,7 +448,8 @@ int qse_awk_setword (qse_awk_t* awk,
return 0;
}
/* TODO: XXXX */
#if 0
/* TODO: qse_awk_setrexfns... */
int qse_awk_setrexfns (qse_awk_t* awk, qse_awk_rexfns_t* rexfns)
{
if (rexfns->build == QSE_NULL ||
@ -463,3 +464,4 @@ int qse_awk_setrexfns (qse_awk_t* awk, qse_awk_rexfns_t* rexfns)
awk->rexfns = rexfns;
return 0;
}
#endif

View File

@ -1445,7 +1445,7 @@ struct check_global_t
static qse_lda_walk_t check_global (qse_lda_t* lda, qse_size_t index, void* arg)
{
qse_cstr_t tmp;
qse_awk_t* awk = *(qse_awk_t**)QSE_LDA_XTN(lda);
qse_awk_t* awk = *(qse_awk_t**)qse_lda_getxtn(lda);
check_global_t* cg = (check_global_t*)arg;
tmp.ptr = QSE_LDA_DPTR(lda,index);

View File

@ -740,13 +740,13 @@ qse_bool_t qse_awk_rtx_shouldstop (qse_awk_rtx_t* run)
static void free_namedval (qse_map_t* map, void* dptr, qse_size_t dlen)
{
qse_awk_rtx_refdownval (
*(qse_awk_rtx_t**)QSE_MAP_XTN(map), dptr);
*(qse_awk_rtx_t**)qse_map_getxtn(map), dptr);
}
static void same_namedval (qse_map_t* map, void* dptr, qse_size_t dlen)
{
qse_awk_rtx_refdownval_nofree (
*(qse_awk_rtx_t**)QSE_MAP_XTN(map), dptr);
*(qse_awk_rtx_t**)qse_map_getxtn(map), dptr);
}
static int init_run (
@ -813,7 +813,7 @@ static int init_run (
qse_awk_seterror (awk, QSE_AWK_ENOMEM, 0, QSE_NULL, 0);
return -1;
}
*(qse_awk_rtx_t**)QSE_MAP_XTN(run->named) = run;
*(qse_awk_rtx_t**)qse_map_getxtn(run->named) = run;
qse_map_setcopier (run->named, QSE_MAP_KEY, QSE_MAP_COPIER_INLINE);
qse_map_setfreeer (run->named, QSE_MAP_VAL, free_namedval);
qse_map_setkeeper (run->named, same_namedval);

View File

@ -445,7 +445,7 @@ static void same_mapval (void* run, void* v)
*/
static void free_mapval (qse_map_t* map, void* dptr, qse_size_t dlen)
{
qse_awk_rtx_t* run = *(qse_awk_rtx_t**)QSE_MAP_XTN(map);
qse_awk_rtx_t* run = *(qse_awk_rtx_t**)qse_map_getxtn(map);
#ifdef DEBUG_VAL
qse_dprintf (QSE_T("refdown in map free..."));
@ -458,7 +458,7 @@ static void free_mapval (qse_map_t* map, void* dptr, qse_size_t dlen)
static void same_mapval (qse_map_t* map, void* dptr, qse_size_t dlen)
{
qse_awk_rtx_t* run = *(qse_awk_rtx_t**)QSE_MAP_XTN(map);
qse_awk_rtx_t* run = *(qse_awk_rtx_t**)qse_map_getxtn(map);
#ifdef DEBUG_VAL
qse_dprintf (QSE_T("refdown nofree in map free..."));
qse_awk_dprintval (run, dptr);
@ -516,7 +516,7 @@ qse_awk_val_t* qse_awk_rtx_makemapval (qse_awk_rtx_t* run)
qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM);
return QSE_NULL;
}
*(qse_awk_rtx_t**)QSE_MAP_XTN(val->map) = run;
*(qse_awk_rtx_t**)qse_map_getxtn(val->map) = run;
/* the key is copied inline into a pair and is freed when the pair
* is destroyed */
@ -1156,7 +1156,7 @@ static qse_map_walk_t print_pair (
{
qse_awk_rtx_t* run = (qse_awk_rtx_t*)arg;
QSE_ASSERT (run == *(qse_awk_rtx_t**)QSE_MAP_XTN(map));
QSE_ASSERT (run == *(qse_awk_rtx_t**)qse_map_getxtn(map));
DPRINTF (DCUSTOM, QSE_T(" %.*s=>"),
(int)QSE_MAP_KLEN(pair), QSE_MAP_KPTR(pair));

View File

@ -31,7 +31,7 @@
# include <limits.h>
#endif
QSE_IMPLEMENT_STD_FUNCTIONS (fio)
QSE_IMPLEMENT_COMMON_FUNCTIONS (fio)
static qse_ssize_t fio_input (int cmd, void* arg, void* buf, qse_size_t size);
static qse_ssize_t fio_output (int cmd, void* arg, void* buf, qse_size_t size);

View File

@ -19,6 +19,8 @@
#include <qse/cmn/lda.h>
#include "mem.h"
QSE_IMPLEMENT_COMMON_FUNCTIONS (lda)
#define lda_t qse_lda_t
#define node_t qse_lda_node_t
#define copier_t qse_lda_copier_t
@ -150,21 +152,6 @@ void qse_lda_fini (lda_t* lda)
}
}
void* qse_lda_getxtn (lda_t* lda)
{
return lda + 1;
}
mmgr_t* qse_lda_getmmgr (lda_t* lda)
{
return lda->mmgr;
}
void qse_lda_setmmgr (lda_t* lda, mmgr_t* mmgr)
{
lda->mmgr = mmgr;
}
int qse_lda_getscale (lda_t* lda)
{
return lda->scale;

View File

@ -19,6 +19,8 @@
#include <qse/cmn/map.h>
#include "mem.h"
QSE_IMPLEMENT_COMMON_FUNCTIONS (map)
#define map_t qse_map_t
#define pair_t qse_map_pair_t
#define copier_t qse_map_copier_t
@ -286,21 +288,6 @@ void qse_map_fini (map_t* map)
QSE_MMGR_FREE (map->mmgr, map->bucket);
}
void* qse_map_getxtn (map_t* map)
{
return map + 1;
}
mmgr_t* qse_map_getmmgr (map_t* map)
{
return map->mmgr;
}
void qse_map_setmmgr (map_t* map, mmgr_t* mmgr)
{
map->mmgr = mmgr;
}
int qse_map_getscale (map_t* map, qse_map_id_t id)
{
QSE_ASSERTX (id == QSE_MAP_KEY || id == QSE_MAP_VAL,
@ -424,7 +411,7 @@ pair_t* qse_map_search (map_t* map, const void* kptr, size_t klen)
return QSE_NULL;
}
int qse_map_put (
static int map_put (
map_t* map, void* kptr, size_t klen,
void* vptr, size_t vlen, pair_t** px)
{
@ -487,7 +474,7 @@ pair_t* qse_map_upsert (
int n;
pair_t* px;
n = qse_map_put (map, kptr, klen, vptr, vlen, &px);
n = map_put (map, kptr, klen, vptr, vlen, &px);
if (n < 0) return QSE_NULL;
return px;
}

View File

@ -29,7 +29,7 @@
# include <sys/wait.h>
#endif
QSE_IMPLEMENT_STD_FUNCTIONS (pio)
QSE_IMPLEMENT_COMMON_FUNCTIONS (pio)
static qse_ssize_t pio_input (int cmd, void* arg, void* buf, qse_size_t size);
static qse_ssize_t pio_output (int cmd, void* arg, void* buf, qse_size_t size);
@ -420,6 +420,8 @@ qse_pio_err_t qse_pio_geterrnum (qse_pio_t* pio)
return pio->errnum;
}
/* TODO: qse_pio_geterrmsg (qse_pio_t* pio) */
const qse_char_t* qse_pio_geterrstr (qse_pio_t* pio)
{
static const qse_char_t* __errstr[] =

View File

@ -19,6 +19,8 @@
#include <qse/cmn/sll.h>
#include "mem.h"
QSE_IMPLEMENT_COMMON_FUNCTIONS (sll)
#define sll_t qse_sll_t
#define node_t qse_sll_node_t
#define copier_t qse_sll_copier_t
@ -137,21 +139,6 @@ void qse_sll_fini (sll_t* sll)
qse_sll_clear (sll);
}
void* qse_sll_getxtn (sll_t* sll)
{
return sll + 1;
}
mmgr_t* qse_sll_getmmgr (sll_t* sll)
{
return sll->mmgr;
}
void qse_sll_setmmgr (sll_t* sll, mmgr_t* mmgr)
{
sll->mmgr = mmgr;
}
int qse_sll_getscale (sll_t* sll)
{
return sll->scale;

View File

@ -19,6 +19,8 @@
#include <qse/cmn/str.h>
#include "mem.h"
QSE_IMPLEMENT_COMMON_FUNCTIONS (str)
qse_str_t* qse_str_open (qse_mmgr_t* mmgr, qse_size_t ext, qse_size_t capa)
{
qse_str_t* str;
@ -104,21 +106,6 @@ int qse_str_yield (qse_str_t* str, qse_xstr_t* buf, int new_capa)
return 0;
}
void* qse_str_getxtn (qse_str_t* str)
{
return str + 1;
}
qse_mmgr_t* qse_str_getmmgr (qse_str_t* str)
{
return str->mmgr;
}
void qse_str_setmmgr (qse_str_t* str, qse_mmgr_t* mmgr)
{
str->mmgr = mmgr;
}
qse_str_sizer_t qse_str_getsizer (qse_str_t* str)
{
return str->sizer;

View File

@ -19,7 +19,7 @@
#include <qse/cmn/tio.h>
#include "mem.h"
QSE_IMPLEMENT_STD_FUNCTIONS (tio)
QSE_IMPLEMENT_COMMON_FUNCTIONS (tio)
qse_tio_t* qse_tio_open (qse_mmgr_t* mmgr, qse_size_t ext)
{
@ -90,9 +90,9 @@ qse_tio_err_t qse_tio_geterrnum (qse_tio_t* tio)
return tio->errnum;
}
const qse_char_t* qse_tio_geterrstr (qse_tio_t* tio)
const qse_char_t* qse_tio_geterrmsg (qse_tio_t* tio)
{
static const qse_char_t* __errstr[] =
static const qse_char_t* __errmsg[] =
{
QSE_T("no error"),
QSE_T("out of memory"),
@ -111,9 +111,9 @@ const qse_char_t* qse_tio_geterrstr (qse_tio_t* tio)
QSE_T("unknown error")
};
return __errstr[
(tio->errnum < 0 || tio->errnum >= QSE_COUNTOF(__errstr))?
QSE_COUNTOF(__errstr) - 1: tio->errnum];
return __errmsg[
(tio->errnum < 0 || tio->errnum >= QSE_COUNTOF(__errmsg))?
QSE_COUNTOF(__errmsg) - 1: tio->errnum];
}
int qse_tio_attachin (qse_tio_t* tio, qse_tio_io_t input, void* arg)