renamed many functions, typedefs, and variables.

This commit is contained in:
2009-02-01 03:59:46 +00:00
parent b9c02b48bc
commit 4f968e7f11
20 changed files with 1597 additions and 1433 deletions

View File

@ -54,7 +54,7 @@ typedef qse_ssize_t (*qse_awk_io_t) (
struct qse_awk_eio_t
{
qse_awk_rtx_t* run; /* [IN] */
qse_awk_rtx_t* rtx; /* [IN] */
int type; /* [IN] console, file, coproc, pipe */
int mode; /* [IN] read, write, etc */
qse_char_t* name; /* [IN] */
@ -109,19 +109,19 @@ struct qse_awk_runios_t
struct qse_awk_runcbs_t
{
int (*on_start) (
qse_awk_rtx_t* run, void* data);
qse_awk_rtx_t* rtx, void* data);
int (*on_enter) (
qse_awk_rtx_t* run, void* data);
qse_awk_rtx_t* rtx, void* data);
void (*on_statement) (
qse_awk_rtx_t* run, qse_size_t line, void* data);
qse_awk_rtx_t* rtx, qse_size_t line, void* data);
void (*on_exit) (
qse_awk_rtx_t* run, qse_awk_val_t* ret, void* data);
qse_awk_rtx_t* rtx, qse_awk_val_t* ret, void* data);
void (*on_end) (
qse_awk_rtx_t* run, int errnum, void* data);
qse_awk_rtx_t* rtx, int errnum, void* data);
void* data;
};
@ -468,7 +468,7 @@ enum qse_awk_val_ref_id_t
QSE_AWK_VAL_REF_POS
};
enum qse_awk_valtostr_opt_t
enum qse_awk_rtx_valtostr_opt_t
{
QSE_AWK_VALTOSTR_CLEAR = (1 << 0),
QSE_AWK_VALTOSTR_FIXED = (1 << 1),/* this overrides CLEAR */
@ -694,38 +694,90 @@ void qse_awk_setprmfns (
qse_awk_prmfns_t* prmfns
);
/*
* clear an qse_awk_t instance
*
* If you want to reuse an qse_awk_t instance that finished being used,
* you may call qse_awk_close instead of destroying and creating a new
* qse_awk_t instance using qse_awk_close() and qse_awk_open().
*
* RETURN 0 on success, -1 on failure
/****f* qse.awk/qse_awk_clear
* NAME
* qse_awk_clear - clear a qse_awk_t object
* DESCRIPTION
* If you want to reuse an qse_awk_t instance that finished being used,
* you may call qse_awk_close instead of destroying and creating a new
* qse_awk_t instance using qse_awk_close() and qse_awk_open().
* RETURN
* 0 on success, -1 on failure
* SYNOPSIS
*/
int qse_awk_clear (
/* the pointer to an qse_awk_t instance */
qse_awk_t* awk
);
/******/
const qse_char_t* qse_awk_geterrstr (qse_awk_t* awk, int num);
int qse_awk_seterrstr (qse_awk_t* awk, int num, const qse_char_t* str);
/****f* qse.awk/qse_awk_geterrstr
* NAME
* qse_awk_geterrstr - get a format string for an error
* DESCRIPTION
* The qse_awk_geterrstr() function returns a pointer to a format string for
* the error number num.
* SYNOPSIS
*/
const qse_char_t* qse_awk_geterrstr (
qse_awk_t* awk,
int num
);
/******/
int qse_awk_geterrnum (qse_awk_t* awk);
qse_size_t qse_awk_geterrlin (qse_awk_t* awk);
const qse_char_t* qse_awk_geterrmsg (qse_awk_t* awk);
/****f* qse.awk/qse_awk_seterrstr
* NAME
* qse_awk_geterrstr - set a format string for an error
* DESCRIPTION
* The qse_awk_seterrstr() function sets a format string for an error. The
* format string is used to compose an actual error message to be returned
* by qse_awk_geterrmsg() and qse_awk_geterror().
* SYNOPSIS
*/
int qse_awk_seterrstr (
qse_awk_t* awk,
int num,
const qse_char_t* str
);
/******/
void qse_awk_seterrnum (qse_awk_t* awk, int errnum);
void qse_awk_seterrmsg (qse_awk_t* awk,
int errnum, qse_size_t errlin, const qse_char_t* errmsg);
int qse_awk_geterrnum (
qse_awk_t* awk
);
qse_size_t qse_awk_geterrlin (
qse_awk_t* awk
);
const qse_char_t* qse_awk_geterrmsg (
qse_awk_t* awk
);
void qse_awk_seterrnum (
qse_awk_t* awk,
int errnum
);
void qse_awk_seterrmsg (
qse_awk_t* awk,
int errnum,
qse_size_t errlin,
const qse_char_t* errmsg
);
void qse_awk_geterror (
qse_awk_t* awk, int* errnum,
qse_size_t* errlin, const qse_char_t** errmsg);
qse_awk_t* awk,
int* errnum,
qse_size_t* errlin,
const qse_char_t** errmsg
);
void qse_awk_seterror (
qse_awk_t* awk, int errnum, qse_size_t errlin,
const qse_cstr_t* errarg, qse_size_t argcnt);
qse_awk_t* awk,
int errnum,
qse_size_t errlin,
const qse_cstr_t* errarg,
qse_size_t argcnt
);
int qse_awk_getoption (qse_awk_t* awk);
void qse_awk_setoption (qse_awk_t* awk, int opt);
@ -893,6 +945,41 @@ int qse_awk_run (
);
/******/
/* functions to manipulate intrinsic functions */
void* qse_awk_addfnc (
qse_awk_t* awk,
const qse_char_t* name,
qse_size_t name_len,
int when_valid,
qse_size_t min_args,
qse_size_t max_args,
const qse_char_t* arg_spec,
int (*handler)(qse_awk_rtx_t*,const qse_char_t*,qse_size_t)
);
int qse_awk_delfnc (
qse_awk_t* awk,
const qse_char_t* name,
qse_size_t len
);
void qse_awk_clrfnc (
qse_awk_t* awk
);
/****f* qse.awk/qse_awk_rtx_stopall
* NAME
* qse_awk_rtx_stop - stop all runtime contexts
* DESCRIPTION
* The qse_awk_rtx_stopall() function aborts all active qse_awk_run() functions
* invoked with the awk parameter.
* SYNOPSIS
*/
void qse_awk_rtx_stopall (
qse_awk_t* awk
);
/******/
/****f* qse.awk/qse_awk_shouldstop
* NAME
* qse_awk_rtx_stop - test if qse_awk_rtx_stop() is called
@ -916,19 +1003,6 @@ void qse_awk_rtx_stop (
);
/******/
/****f* qse.awk/qse_awk_rtx_stopall
* NAME
* qse_awk_rtx_stop - stop all runtime contexts
* DESCRIPTION
* The qse_awk_rtx_stopall() function aborts all active qse_awk_run() functions
* invoked with the awk parameter.
* SYNOPSIS
*/
void qse_awk_rtx_stopall (
qse_awk_t* awk
);
/******/
/****f* qse.awk/qse_awk_rtx_getnargs
* NAME
* qse_awk_rtx_getnargs - get the number of arguments passed to qse_awk_run()
@ -989,7 +1063,7 @@ int qse_awk_rtx_setglobal (
* DESCRIPTION
* The qse_awk_rtx_setretval() sets the return value of a function
* when called from within a function handlers. The caller doesn't
* have to invoke qse_awk_refupval() and qse_awk_refdownval()
* have to invoke qse_awk_rtx_refupval() and qse_awk_rtx_refdownval()
* with the value to be passed to qse_awk_rtx_setretval().
* The qse_awk_rtx_setretval() will update its reference count properly
* once the return value is set.
@ -1075,61 +1149,54 @@ int qse_awk_rtx_geterrnum (
);
/******/
qse_size_t qse_awk_getrunerrlin (
qse_size_t qse_awk_rtx_geterrlin (
qse_awk_rtx_t* rtx
);
const qse_char_t* qse_awk_getrunerrmsg (
const qse_char_t* qse_awk_rtx_geterrmsg (
qse_awk_rtx_t* rtx
);
void qse_awk_setrunerrnum (
void qse_awk_rtx_seterrnum (
qse_awk_rtx_t* rtx,
int errnum
int errnum
);
void qse_awk_setrunerrmsg (
qse_awk_rtx_t* run,
int errnum,
qse_size_t errlin,
void qse_awk_rtx_seterrmsg (
qse_awk_rtx_t* rtx,
int errnum,
qse_size_t errlin,
const qse_char_t* errmsg
);
void qse_awk_getrunerror (
qse_awk_rtx_t* run,
int* errnum,
qse_size_t* errlin,
void qse_awk_rtx_geterror (
qse_awk_rtx_t* rtx,
int* errnum,
qse_size_t* errlin,
const qse_char_t** errmsg
);
void qse_awk_setrunerror (
qse_awk_rtx_t* run,
int errnum,
qse_size_t errlin,
void qse_awk_rtx_seterror (
qse_awk_rtx_t* rtx,
int errnum,
qse_size_t errlin,
const qse_cstr_t* errarg,
qse_size_t argcnt
qse_size_t argcnt
);
/* functions to manipulate intrinsic functions */
void* qse_awk_addfunc (
qse_awk_t* awk,
const qse_char_t* name,
qse_size_t name_len,
int when_valid,
qse_size_t min_args,
qse_size_t max_args,
const qse_char_t* arg_spec,
int (*handler)(qse_awk_rtx_t*,const qse_char_t*,qse_size_t)
);
int qse_awk_delfunc (
qse_awk_t* awk,
const qse_char_t* name,
qse_size_t len
);
void qse_awk_clrbfn (qse_awk_t* awk);
/* record and field functions */
int qse_awk_clrrec (qse_awk_rtx_t* run, qse_bool_t skip_inrec_line);
int qse_awk_setrec (qse_awk_rtx_t* run, qse_size_t idx, const qse_char_t* str, qse_size_t len);
int qse_awk_rtx_clrrec (
qse_awk_rtx_t* rtx,
qse_bool_t skip_inrec_line
);
int qse_awk_rtx_setrec (
qse_awk_rtx_t* rtx,
qse_size_t idx,
const qse_char_t* str,
qse_size_t len
);
/****f* qse.awk/qse_awk_alloc
* NAME
@ -1147,8 +1214,7 @@ void* qse_awk_alloc (
/****f* qse.awk/qse_awk_free
* NAME
* qse_awk_free - free dynamic memory
*
* SYNOSPSIS
* SYNOPSIS
*/
void qse_awk_free (
qse_awk_t* awk /* the pointer to an qse_awk_t instance */,
@ -1156,134 +1222,194 @@ void qse_awk_free (
);
/******/
/*
* NAME duplicate a string
*
/****f* qse.awk/qse_awk_strdup
* NAME
* qse_awk_strdup - duplicate a null-terminated string
* DESCRIPTION
* The qse_awk_strdup() function is used to duplicate a string using
* the memory manager used by the associated qse_awk_t instance.
* The new string should be freed using the qse_awk_free() function.
*
* RETURNS
* The pointer to a new string which is a duplicate of the string s.
* The qse_awk_strdup() function returns the pointer to a new string which
* is a duplicate of the string s. It returns QSE_NULL on failure.
* SYNOPSIS
*/
qse_char_t* qse_awk_strdup (
/* the pointer to an qse_awk_t instance */
qse_awk_t* awk,
/* the pointer to a string */
const qse_char_t* s
qse_awk_t* awk /* the pointer to an qse_awk_t instance */,
const qse_char_t* str /* the pointer to a string */
);
/******/
/*
* NAME duplicate a string of a length given
*
/****f* qse.awk/qse_awk_strxdup
* NAME
* qse_awk_strxdup - duplicate a length-delimited string
* DESCRIPTION
* The qse_awk_strdup() function is used to duplicate a string whose length
* is as long as l characters using the memory manager used by the associated
* The qse_awk_strxdup() function is used to duplicate a string whose length
* is as long as len characters using the memory manager used by the
* qse_awk_t instance. The new string should be freed using the qse_awk_free()
* function.
*
* RETURNS
* The pointer to a new string which is a duplicate of the string s.
* The qse_awk_strxdup() function returns the pointer to a new string which
* is a duplicate of the string s on success. It returns QSE_NULL on failure.
* SYNOPSIS
*/
qse_char_t* qse_awk_strxdup (qse_awk_t* awk, const qse_char_t* s, qse_size_t l);
qse_char_t* qse_awk_strxdup (
qse_awk_t* awk,
const qse_char_t* str,
qse_size_t len
);
/******/
qse_long_t qse_awk_strxtolong (
qse_awk_t* awk, const qse_char_t* str, qse_size_t len,
int base, const qse_char_t** endptr);
qse_awk_t* awk,
const qse_char_t* str,
qse_size_t len,
int base,
const qse_char_t** endptr
);
qse_real_t qse_awk_strxtoreal (
qse_awk_t* awk, const qse_char_t* str, qse_size_t len,
const qse_char_t** endptr);
qse_awk_t* awk,
const qse_char_t* str,
qse_size_t len,
const qse_char_t** endptr
);
qse_size_t qse_awk_longtostr (
qse_long_t value, int radix, const qse_char_t* prefix,
qse_char_t* buf, qse_size_t size);
qse_long_t value,
int radix,
const qse_char_t* prefix,
qse_char_t* buf,
qse_size_t size
);
/* value manipulation functions */
qse_awk_val_t* qse_awk_makeintval (qse_awk_rtx_t* run, qse_long_t v);
qse_awk_val_t* qse_awk_makerealval (qse_awk_rtx_t* run, qse_real_t v);
qse_awk_val_t* qse_awk_rtx_makeintval (
qse_awk_rtx_t* rtx,
qse_long_t v
);
qse_awk_val_t* qse_awk_rtx_makerealval (
qse_awk_rtx_t* rtx,
qse_real_t v
);
qse_awk_val_t* qse_awk_makestrval0 (
qse_awk_rtx_t* run, const qse_char_t* str);
qse_awk_val_t* qse_awk_makestrval (
qse_awk_rtx_t* run, const qse_char_t* str, qse_size_t len);
qse_awk_val_t* qse_awk_makestrval_nodup (
qse_awk_rtx_t* run, qse_char_t* str, qse_size_t len);
qse_awk_val_t* qse_awk_makestrval2 (
qse_awk_rtx_t* run,
const qse_char_t* str1, qse_size_t len1,
const qse_char_t* str2, qse_size_t len2);
qse_awk_val_t* qse_awk_rtx_makestrval0 (
qse_awk_rtx_t* rtx,
const qse_char_t* str
);
qse_awk_val_t* qse_awk_makerexval (
qse_awk_rtx_t* run, const qse_char_t* buf, qse_size_t len, void* code);
qse_awk_val_t* qse_awk_makemapval (qse_awk_rtx_t* run);
qse_awk_val_t* qse_awk_makerefval (
qse_awk_rtx_t* run, int id, qse_awk_val_t** adr);
qse_awk_val_t* qse_awk_rtx_makestrval (
qse_awk_rtx_t* rtx,
const qse_char_t* str,
qse_size_t len
);
qse_bool_t qse_awk_isstaticval (qse_awk_val_t* val);
qse_awk_val_t* qse_awk_rtx_makestrval_nodup (
qse_awk_rtx_t* rtx,
qse_char_t* str,
qse_size_t len
);
void qse_awk_freeval (qse_awk_rtx_t* run, qse_awk_val_t* val, qse_bool_t cache);
qse_awk_val_t* qse_awk_rtx_makestrval2 (
qse_awk_rtx_t* rtx,
const qse_char_t* str1,
qse_size_t len1,
const qse_char_t* str2,
qse_size_t len2
);
void qse_awk_refupval (qse_awk_rtx_t* run, qse_awk_val_t* val);
void qse_awk_refdownval (qse_awk_rtx_t* run, qse_awk_val_t* val);
void qse_awk_refdownval_nofree (qse_awk_rtx_t* run, qse_awk_val_t* val);
qse_awk_val_t* qse_awk_rtx_makerexval (
qse_awk_rtx_t* rtx,
const qse_char_t* buf,
qse_size_t len,
void* code
);
void qse_awk_freevalchunk (qse_awk_rtx_t* run, qse_awk_val_chunk_t* chunk);
qse_awk_val_t* qse_awk_rtx_makemapval (
qse_awk_rtx_t* rtx
);
qse_bool_t qse_awk_valtobool (
qse_awk_rtx_t* run,
qse_awk_val_t* qse_awk_rtx_makerefval (
qse_awk_rtx_t* rtx,
int id,
qse_awk_val_t** adr
);
qse_bool_t qse_awk_isstaticval (
qse_awk_rtx_t* rtx,
qse_awk_val_t* val
);
qse_char_t* qse_awk_valtostr (
qse_awk_rtx_t* run,
void qse_awk_rtx_freeval (
qse_awk_rtx_t* rtx,
qse_awk_val_t* val,
qse_bool_t cache
);
void qse_awk_rtx_refupval (
qse_awk_rtx_t* rtx,
qse_awk_val_t* val
);
void qse_awk_rtx_refdownval (
qse_awk_rtx_t* rtx,
qse_awk_val_t* val
);
void qse_awk_rtx_refdownval_nofree (
qse_awk_rtx_t* rtx,
qse_awk_val_t* val
);
qse_bool_t qse_awk_rtx_valtobool (
qse_awk_rtx_t* rtx,
qse_awk_val_t* val
);
qse_char_t* qse_awk_rtx_valtostr (
qse_awk_rtx_t* rtx,
qse_awk_val_t* val,
int opt,
qse_str_t* buf,
qse_size_t* len
);
/****f* qse.awk/qse_awk_valtonum
/****f* qse.awk/qse_awk_rtx_valtonum
* NAME
* qse_awk_valtonum - convert a value to a number
*
* qse_awk_rtx_valtonum - convert a value to a number
* DESCRIPTION
* The qse_awk_valtonum() function converts a value to a number.
* The qse_awk_rtx_valtonum() function converts a value to a number.
* If the value is converted to a long number, it is stored in the memory
* pointed to by l and 0 is returned. If the value is converted to a real
* number, it is stored in the memory pointed to by r and 1 is returned.
*
* RETURN
* The qse_awk_valtonum() function returns -1 on error, 0 if the converted
* The qse_awk_rtx_valtonum() function returns -1 on error, 0 if the converted
* number is a long number and 1 if it is a real number.
*
* EXAMPLES
* qse_long_t l;
* qse_real_t r;
* int n;
*
* n = qse_awk_valtonum (v, &l, &r);
* n = qse_awk_rtx_valtonum (v, &l, &r);
* if (n == -1) error ();
* else if (n == 0) do_long (l);
* else if (n == 1) do_real (r);
*
* SYNOPSIS
*/
int qse_awk_valtonum (
qse_awk_rtx_t* run,
int qse_awk_rtx_valtonum (
qse_awk_rtx_t* rtx,
qse_awk_val_t* v /* the value to convert to a number */,
qse_long_t* l /* a pointer to a long number */,
qse_real_t* r /* a pointer to a qse_real_t */
);
/******/
/****f* qse.awk/qse_awk_strtonum
/****f* qse.awk/qse_awk_rtx_strtonum
* NAME
* qse_awk_strtonum - convert a string to a number
*
* qse_awk_rtx_strtonum - convert a string to a number
* SYNOPSIS
*/
int qse_awk_strtonum (
int qse_awk_rtx_strtonum (
qse_awk_rtx_t* run,
const qse_char_t* ptr,
qse_size_t len,