diff --git a/qse/cmd/awk/awk.c b/qse/cmd/awk/awk.c index 90b17a00..b47f4455 100644 --- a/qse/cmd/awk/awk.c +++ b/qse/cmd/awk/awk.c @@ -140,7 +140,7 @@ static qse_map_walk_t print_awk_value ( qse_char_t* str; qse_size_t len; - str = qse_awk_valtostr (run, QSE_MAP_VPTR(pair), 0, QSE_NULL, &len); + str = qse_awk_rtx_valtostr (run, QSE_MAP_VPTR(pair), 0, QSE_NULL, &len); if (str == QSE_NULL) { dprint (QSE_T("***OUT OF MEMORY***\n")); @@ -170,12 +170,12 @@ static int on_run_enter (qse_awk_rtx_t* run, void* data) { qse_awk_val_t* fs; - fs = qse_awk_makestrval0 (run, ao->fs); + fs = qse_awk_rtx_makestrval0 (run, ao->fs); if (fs == QSE_NULL) return -1; - qse_awk_refupval (run, fs); + qse_awk_rtx_refupval (run, fs); qse_awk_rtx_setglobal (run, QSE_AWK_GLOBAL_FS, fs); - qse_awk_refdownval (run, fs); + qse_awk_rtx_refdownval (run, fs); } @@ -194,7 +194,7 @@ static void on_run_exit ( } else { - str = qse_awk_valtostr (run, ret, 0, QSE_NULL, &len); + str = qse_awk_rtx_valtostr (run, ret, 0, QSE_NULL, &len); if (str == QSE_NULL) { dprint (QSE_T("[RETURN] - ***OUT OF MEMORY***\n")); @@ -218,8 +218,8 @@ static void on_run_end (qse_awk_rtx_t* run, int errnum, void* data) dprint (QSE_T("[AWK ENDED WITH AN ERROR]\n")); qse_printf (QSE_T("RUN ERROR: CODE [%d] LINE [%u] %s\n"), errnum, - (unsigned int)qse_awk_getrunerrlin(run), - qse_awk_getrunerrmsg(run)); + (unsigned int)qse_awk_rtx_geterrlin(run), + qse_awk_rtx_geterrmsg(run)); } else dprint (QSE_T("[AWK ENDED SUCCESSFULLY]\n")); @@ -287,7 +287,7 @@ static int bfn_sleep ( a0 = qse_awk_rtx_getarg (run, 0); - n = qse_awk_valtonum (run, a0, &lv, &rv); + n = qse_awk_rtx_valtonum (run, a0, &lv, &rv); if (n == -1) return -1; if (n == 1) lv = (qse_long_t)rv; @@ -298,10 +298,10 @@ static int bfn_sleep ( n = sleep (lv); #endif - r = qse_awk_makeintval (run, n); + r = qse_awk_rtx_makeintval (run, n); if (r == QSE_NULL) { - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return -1; } @@ -571,7 +571,7 @@ static qse_awk_t* open_awk (void) */ /*qse_awk_setkeyword (awk, QSE_T("func"), 4, QSE_T("FX"), 2);*/ - if (qse_awk_addfunc (awk, + if (qse_awk_addfnc (awk, QSE_T("sleep"), 5, 0, 1, 1, QSE_NULL, bfn_sleep) == QSE_NULL) { diff --git a/qse/cmd/awk/x.awk b/qse/cmd/awk/x.awk index 0fcc7309..ef6f4402 100644 --- a/qse/cmd/awk/x.awk +++ b/qse/cmd/awk/x.awk @@ -28,6 +28,6 @@ BEGIN { print "wide characteter 넓은 문자"; print fflush ("abc"); - return "x.awk"; + #return "x.awk"; } diff --git a/qse/include/qse/awk/awk.h b/qse/include/qse/awk/awk.h index 1f5a8a5b..d8ec47fd 100644 --- a/qse/include/qse/awk/awk.h +++ b/qse/include/qse/awk/awk.h @@ -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, diff --git a/qse/lib/awk/Awk.cpp b/qse/lib/awk/Awk.cpp index 1c157520..a54913f8 100644 --- a/qse/lib/awk/Awk.cpp +++ b/qse/lib/awk/Awk.cpp @@ -156,12 +156,12 @@ int Awk::Console::setFNR (long_t fnr) qse_awk_val_t* tmp; int n; - tmp = qse_awk_makeintval (eio->run, fnr); + tmp = qse_awk_rtx_makeintval (eio->run, fnr); if (tmp == QSE_NULL) return -1; - qse_awk_refupval (eio->run, tmp); + qse_awk_rtx_refupval (eio->run, tmp); n = qse_awk_rtx_setglobal (eio->run, QSE_AWK_GLOBAL_FNR, tmp); - qse_awk_refdownval (eio->run, tmp); + qse_awk_rtx_refdownval (eio->run, tmp); return n; } @@ -224,7 +224,7 @@ void Awk::Argument::clear () /* when the value is a map, str.ptr and str.len are * used for index iteration in getFirstIndex & getNextIndex */ - qse_awk_refdownval (this->run->run, this->val); + qse_awk_rtx_refdownval (this->run->run, this->val); this->val = QSE_NULL; } else @@ -245,7 +245,7 @@ void Awk::Argument::clear () if (this->val != QSE_NULL) { - qse_awk_refdownval (this->run->run, this->val); + qse_awk_rtx_refdownval (this->run->run, this->val); this->val = QSE_NULL; } @@ -304,12 +304,12 @@ int Awk::Argument::init (val_t* v) QSE_ASSERT (this->val == QSE_NULL); QSE_ASSERT (v != QSE_NULL); - qse_awk_refupval (this->run->run, v); + qse_awk_rtx_refupval (this->run->run, v); this->val = v; if (QSE_AWK_VAL_TYPE(v) == QSE_AWK_VAL_STR) { - int n = qse_awk_valtonum ( + int n = qse_awk_rtx_valtonum ( this->run->run, v, &this->inum, &this->rnum); if (n == 0) { @@ -331,7 +331,7 @@ int Awk::Argument::init (val_t* v) this->inum = ((qse_awk_val_int_t*)v)->val; this->rnum = (qse_real_t)((qse_awk_val_int_t*)v)->val; - this->str.ptr = qse_awk_valtostr ( + this->str.ptr = qse_awk_rtx_valtostr ( this->run->run, v, 0, QSE_NULL, &this->str.len); if (this->str.ptr != QSE_NULL) return 0; } @@ -340,7 +340,7 @@ int Awk::Argument::init (val_t* v) this->inum = (qse_long_t)((qse_awk_val_real_t*)v)->val; this->rnum = ((qse_awk_val_real_t*)v)->val; - this->str.ptr = qse_awk_valtostr ( + this->str.ptr = qse_awk_rtx_valtostr ( this->run->run, v, 0, QSE_NULL, &this->str.len); if (this->str.ptr != QSE_NULL) return 0; } @@ -349,7 +349,7 @@ int Awk::Argument::init (val_t* v) this->inum = 0; this->rnum = 0.0; - this->str.ptr = qse_awk_valtostr ( + this->str.ptr = qse_awk_rtx_valtostr ( this->run->run, v, 0, QSE_NULL, &this->str.len); if (this->str.ptr != QSE_NULL) return 0; } @@ -363,7 +363,7 @@ int Awk::Argument::init (val_t* v) } // an error has occurred - qse_awk_refdownval (this->run->run, v); + qse_awk_rtx_refdownval (this->run->run, v); this->val = QSE_NULL; return -1; } @@ -375,7 +375,7 @@ int Awk::Argument::init (const char_t* str, size_t len) this->str.ptr = (char_t*)str; this->str.len = len; - if (qse_awk_strtonum (this->run->run, + if (qse_awk_rtx_strtonum (this->run->run, str, len, &this->inum, &this->rnum) == 0) { this->rnum = (real_t)this->inum; @@ -575,12 +575,12 @@ int Awk::Return::set (long_t v) { QSE_ASSERT (this->run != QSE_NULL); - qse_awk_val_t* x = qse_awk_makeintval (this->run->run, v); + qse_awk_val_t* x = qse_awk_rtx_makeintval (this->run->run, v); if (x == QSE_NULL) return -1; - qse_awk_refdownval (this->run->run, this->val); + qse_awk_rtx_refdownval (this->run->run, this->val); this->val = x; - qse_awk_refupval (this->run->run, this->val); + qse_awk_rtx_refupval (this->run->run, this->val); return 0; } @@ -589,12 +589,12 @@ int Awk::Return::set (real_t v) { QSE_ASSERT (this->run != QSE_NULL); - qse_awk_val_t* x = qse_awk_makerealval (this->run->run, v); + qse_awk_val_t* x = qse_awk_rtx_makerealval (this->run->run, v); if (x == QSE_NULL) return -1; - qse_awk_refdownval (this->run->run, this->val); + qse_awk_rtx_refdownval (this->run->run, this->val); this->val = x; - qse_awk_refupval (this->run->run, this->val); + qse_awk_rtx_refupval (this->run->run, this->val); return 0; } @@ -603,12 +603,12 @@ int Awk::Return::set (const char_t* ptr, size_t len) { QSE_ASSERT (this->run != QSE_NULL); - qse_awk_val_t* x = qse_awk_makestrval (this->run->run, ptr, len); + qse_awk_val_t* x = qse_awk_rtx_makestrval (this->run->run, ptr, len); if (x == QSE_NULL) return -1; - qse_awk_refdownval (this->run->run, this->val); + qse_awk_rtx_refdownval (this->run->run, this->val); this->val = x; - qse_awk_refupval (this->run->run, this->val); + qse_awk_rtx_refupval (this->run->run, this->val); return 0; } @@ -632,47 +632,47 @@ int Awk::Return::setIndexed (const char_t* idx, size_t iln, long_t v) if (QSE_AWK_VAL_TYPE(this->val) != QSE_AWK_VAL_MAP) { - qse_awk_val_t* x = qse_awk_makemapval (this->run->run); + qse_awk_val_t* x = qse_awk_rtx_makemapval (this->run->run); if (x == QSE_NULL) return -1; - qse_awk_refupval (this->run->run, x); + qse_awk_rtx_refupval (this->run->run, x); - qse_awk_val_t* x2 = qse_awk_makeintval (this->run->run, v); + qse_awk_val_t* x2 = qse_awk_rtx_makeintval (this->run->run, v); if (x2 == QSE_NULL) { - qse_awk_refdownval (this->run->run, x); + qse_awk_rtx_refdownval (this->run->run, x); return -1; } - qse_awk_refupval (this->run->run, x2); + qse_awk_rtx_refupval (this->run->run, x2); pair_t* pair = qse_map_upsert ( ((qse_awk_val_map_t*)x)->map, (char_t*)idx, iln, x2, 0); if (pair == QSE_NULL) { - qse_awk_refdownval (this->run->run, x2); - qse_awk_refdownval (this->run->run, x); + qse_awk_rtx_refdownval (this->run->run, x2); + qse_awk_rtx_refdownval (this->run->run, x); this->run->setError (ERR_NOMEM, 0, QSE_NULL, 0); return -1; } - qse_awk_refdownval (this->run->run, this->val); + qse_awk_rtx_refdownval (this->run->run, this->val); this->val = x; } else { - qse_awk_val_t* x2 = qse_awk_makeintval (this->run->run, v); + qse_awk_val_t* x2 = qse_awk_rtx_makeintval (this->run->run, v); if (x2 == QSE_NULL) return -1; - qse_awk_refupval (this->run->run, x2); + qse_awk_rtx_refupval (this->run->run, x2); pair_t* pair = qse_map_upsert ( ((qse_awk_val_map_t*)this->val)->map, (char_t*)idx, iln, x2, 0); if (pair == QSE_NULL) { - qse_awk_refdownval (this->run->run, x2); + qse_awk_rtx_refdownval (this->run->run, x2); this->run->setError (ERR_NOMEM, 0, QSE_NULL, 0); return -1; } @@ -695,47 +695,47 @@ int Awk::Return::setIndexed (const char_t* idx, size_t iln, real_t v) if (QSE_AWK_VAL_TYPE(this->val) != QSE_AWK_VAL_MAP) { - qse_awk_val_t* x = qse_awk_makemapval (this->run->run); + qse_awk_val_t* x = qse_awk_rtx_makemapval (this->run->run); if (x == QSE_NULL) return -1; - qse_awk_refupval (this->run->run, x); + qse_awk_rtx_refupval (this->run->run, x); - qse_awk_val_t* x2 = qse_awk_makerealval (this->run->run, v); + qse_awk_val_t* x2 = qse_awk_rtx_makerealval (this->run->run, v); if (x2 == QSE_NULL) { - qse_awk_refdownval (this->run->run, x); + qse_awk_rtx_refdownval (this->run->run, x); return -1; } - qse_awk_refupval (this->run->run, x2); + qse_awk_rtx_refupval (this->run->run, x2); pair_t* pair = qse_map_upsert ( ((qse_awk_val_map_t*)x)->map, (char_t*)idx, iln, x2, 0); if (pair == QSE_NULL) { - qse_awk_refdownval (this->run->run, x2); - qse_awk_refdownval (this->run->run, x); + qse_awk_rtx_refdownval (this->run->run, x2); + qse_awk_rtx_refdownval (this->run->run, x); this->run->setError (ERR_NOMEM, 0, QSE_NULL, 0); return -1; } - qse_awk_refdownval (this->run->run, this->val); + qse_awk_rtx_refdownval (this->run->run, this->val); this->val = x; } else { - qse_awk_val_t* x2 = qse_awk_makerealval (this->run->run, v); + qse_awk_val_t* x2 = qse_awk_rtx_makerealval (this->run->run, v); if (x2 == QSE_NULL) return -1; - qse_awk_refupval (this->run->run, x2); + qse_awk_rtx_refupval (this->run->run, x2); pair_t* pair = qse_map_upsert ( ((qse_awk_val_map_t*)this->val)->map, (char_t*)idx, iln, x2, 0); if (pair == QSE_NULL) { - qse_awk_refdownval (this->run->run, x2); + qse_awk_rtx_refdownval (this->run->run, x2); this->run->setError (ERR_NOMEM, 0, QSE_NULL, 0); return -1; } @@ -758,47 +758,47 @@ int Awk::Return::setIndexed (const char_t* idx, size_t iln, const char_t* str, s if (QSE_AWK_VAL_TYPE(this->val) != QSE_AWK_VAL_MAP) { - qse_awk_val_t* x = qse_awk_makemapval (this->run->run); + qse_awk_val_t* x = qse_awk_rtx_makemapval (this->run->run); if (x == QSE_NULL) return -1; - qse_awk_refupval (this->run->run, x); + qse_awk_rtx_refupval (this->run->run, x); - qse_awk_val_t* x2 = qse_awk_makestrval (this->run->run, str, sln); + qse_awk_val_t* x2 = qse_awk_rtx_makestrval (this->run->run, str, sln); if (x2 == QSE_NULL) { - qse_awk_refdownval (this->run->run, x); + qse_awk_rtx_refdownval (this->run->run, x); return -1; } - qse_awk_refupval (this->run->run, x2); + qse_awk_rtx_refupval (this->run->run, x2); pair_t* pair = qse_map_upsert ( ((qse_awk_val_map_t*)x)->map, (char_t*)idx, iln, x2, 0); if (pair == QSE_NULL) { - qse_awk_refdownval (this->run->run, x2); - qse_awk_refdownval (this->run->run, x); + qse_awk_rtx_refdownval (this->run->run, x2); + qse_awk_rtx_refdownval (this->run->run, x); this->run->setError (ERR_NOMEM, 0, QSE_NULL, 0); return -1; } - qse_awk_refdownval (this->run->run, this->val); + qse_awk_rtx_refdownval (this->run->run, this->val); this->val = x; } else { - qse_awk_val_t* x2 = qse_awk_makestrval (this->run->run, str, sln); + qse_awk_val_t* x2 = qse_awk_rtx_makestrval (this->run->run, str, sln); if (x2 == QSE_NULL) return -1; - qse_awk_refupval (this->run->run, x2); + qse_awk_rtx_refupval (this->run->run, x2); pair_t* pair = qse_map_upsert ( ((qse_awk_val_map_t*)this->val)->map, (char_t*)idx, iln, x2, 0); if (pair == QSE_NULL) { - qse_awk_refdownval (this->run->run, x2); + qse_awk_rtx_refdownval (this->run->run, x2); this->run->setError (ERR_NOMEM, 0, QSE_NULL, 0); return -1; } @@ -893,7 +893,7 @@ int Awk::Return::setIndexed (long_t idx, const char_t* str, size_t sln) void Awk::Return::clear () { - qse_awk_refdownval (this->run->run, this->val); + qse_awk_rtx_refdownval (this->run->run, this->val); this->val = qse_awk_val_nil; } @@ -947,32 +947,32 @@ Awk::ErrorCode Awk::Run::getErrorCode () const Awk::size_t Awk::Run::getErrorLine () const { QSE_ASSERT (this->run != QSE_NULL); - return qse_awk_getrunerrlin (this->run); + return qse_awk_rtx_geterrlin (this->run); } const Awk::char_t* Awk::Run::getErrorMessage () const { QSE_ASSERT (this->run != QSE_NULL); - return qse_awk_getrunerrmsg (this->run); + return qse_awk_rtx_geterrmsg (this->run); } void Awk::Run::setError (ErrorCode code) { QSE_ASSERT (this->run != QSE_NULL); - qse_awk_setrunerror (this->run, code, 0, QSE_NULL, 0); + qse_awk_rtx_seterror (this->run, code, 0, QSE_NULL, 0); } void Awk::Run::setError (ErrorCode code, size_t line) { QSE_ASSERT (this->run != QSE_NULL); - qse_awk_setrunerror (this->run, code, line, QSE_NULL, 0); + qse_awk_rtx_seterror (this->run, code, line, QSE_NULL, 0); } void Awk::Run::setError (ErrorCode code, size_t line, const char_t* arg) { QSE_ASSERT (this->run != QSE_NULL); qse_cstr_t x = { arg, qse_strlen(arg) }; - qse_awk_setrunerror (this->run, code, line, &x, 1); + qse_awk_rtx_seterror (this->run, code, line, &x, 1); } void Awk::Run::setError ( @@ -980,26 +980,26 @@ void Awk::Run::setError ( { QSE_ASSERT (this->run != QSE_NULL); qse_cstr_t x = { arg, len }; - qse_awk_setrunerror (this->run, code, line, &x, 1); + qse_awk_rtx_seterror (this->run, code, line, &x, 1); } void Awk::Run::setErrorWithMessage ( ErrorCode code, size_t line, const char_t* msg) { QSE_ASSERT (this->run != QSE_NULL); - qse_awk_setrunerrmsg (this->run, code, line, msg); + qse_awk_rtx_seterrmsg (this->run, code, line, msg); } int Awk::Run::setGlobal (int id, long_t v) { QSE_ASSERT (this->run != QSE_NULL); - qse_awk_val_t* tmp = qse_awk_makeintval (run, v); + qse_awk_val_t* tmp = qse_awk_rtx_makeintval (run, v); if (tmp == QSE_NULL) return -1; - qse_awk_refupval (run, tmp); + qse_awk_rtx_refupval (run, tmp); int n = qse_awk_rtx_setglobal (this->run, id, tmp); - qse_awk_refdownval (run, tmp); + qse_awk_rtx_refdownval (run, tmp); return n; } @@ -1007,12 +1007,12 @@ int Awk::Run::setGlobal (int id, real_t v) { QSE_ASSERT (this->run != QSE_NULL); - qse_awk_val_t* tmp = qse_awk_makerealval (run, v); + qse_awk_val_t* tmp = qse_awk_rtx_makerealval (run, v); if (tmp == QSE_NULL) return -1; - qse_awk_refupval (run, tmp); + qse_awk_rtx_refupval (run, tmp); int n = qse_awk_rtx_setglobal (this->run, id, tmp); - qse_awk_refdownval (run, tmp); + qse_awk_rtx_refdownval (run, tmp); return n; } @@ -1020,12 +1020,12 @@ int Awk::Run::setGlobal (int id, const char_t* ptr, size_t len) { QSE_ASSERT (run != QSE_NULL); - qse_awk_val_t* tmp = qse_awk_makestrval (run, ptr, len); + qse_awk_val_t* tmp = qse_awk_rtx_makestrval (run, ptr, len); if (tmp == QSE_NULL) return -1; - qse_awk_refupval (run, tmp); + qse_awk_rtx_refupval (run, tmp); int n = qse_awk_rtx_setglobal (this->run, id, tmp); - qse_awk_refdownval (run, tmp); + qse_awk_rtx_refdownval (run, tmp); return n; } @@ -1500,7 +1500,7 @@ int Awk::addFunction ( size_t nameLen = qse_strlen(name); - void* p = qse_awk_addfunc (awk, name, nameLen, + void* p = qse_awk_addfnc (awk, name, nameLen, 0, minArgs, maxArgs, QSE_NULL, functionHandler); if (p == QSE_NULL) @@ -1514,7 +1514,7 @@ int Awk::addFunction ( functionMap, (char_t*)name, nameLen, tmp, 0); if (pair == QSE_NULL) { - qse_awk_delfunc (awk, name, nameLen); + qse_awk_delfnc (awk, name, nameLen); qse_awk_free (awk, tmp); setError (ERR_NOMEM); @@ -1530,7 +1530,7 @@ int Awk::deleteFunction (const char_t* name) size_t nameLen = qse_strlen(name); - int n = qse_awk_delfunc (awk, name, nameLen); + int n = qse_awk_delfnc (awk, name, nameLen); if (n == 0) qse_map_delete (functionMap, name, nameLen); else retrieveError (); @@ -1743,7 +1743,7 @@ void Awk::onRunEnd (run_t* run, int errnum, void* data) if (errnum == ERR_NOERR && r->callbackFailed) { - qse_awk_setrunerrnum (r->run, ERR_NOMEM); + qse_awk_rtx_seterrnum (r->run, ERR_NOMEM); } r->awk->onRunEnd (*r); diff --git a/qse/lib/awk/Makefile.am b/qse/lib/awk/Makefile.am index 8a8e75c8..952aef77 100644 --- a/qse/lib/awk/Makefile.am +++ b/qse/lib/awk/Makefile.am @@ -4,7 +4,7 @@ AUTOMAKE_OPTIONS = nostdinc AM_CPPFLAGS = -I$(top_srcdir)/include lib_LTLIBRARIES = libqseawk.la -libqseawk_la_SOURCES = awk.c err.c tree.c parse.c run.c rec.c val.c func.c misc.c eio.c std.c awk.h eio.h func.h misc.h parse.h run.h tree.h +libqseawk_la_SOURCES = awk.c err.c tree.c parse.c run.c rec.c val.c fnc.c misc.c eio.c std.c awk.h eio.h val.h fnc.h misc.h parse.h run.h tree.h libqseawk_la_LDFLAGS= -L../cmn -L../utl -version-info 1:0:0 -no-undefined libqseawk_la_LIBADD= -lqsecmn -lqseutl diff --git a/qse/lib/awk/Makefile.in b/qse/lib/awk/Makefile.in index a932bd21..a61838b4 100644 --- a/qse/lib/awk/Makefile.in +++ b/qse/lib/awk/Makefile.in @@ -61,7 +61,7 @@ libqseawk___la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ @ENABLE_CXX_TRUE@am_libqseawk___la_rpath = -rpath $(libdir) libqseawk_la_DEPENDENCIES = am_libqseawk_la_OBJECTS = awk.lo err.lo tree.lo parse.lo run.lo rec.lo \ - val.lo func.lo misc.lo eio.lo std.lo + val.lo fnc.lo misc.lo eio.lo std.lo libqseawk_la_OBJECTS = $(am_libqseawk_la_OBJECTS) libqseawk_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ @@ -217,7 +217,7 @@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = nostdinc AM_CPPFLAGS = -I$(top_srcdir)/include lib_LTLIBRARIES = libqseawk.la $(am__append_1) -libqseawk_la_SOURCES = awk.c err.c tree.c parse.c run.c rec.c val.c func.c misc.c eio.c std.c awk.h eio.h func.h misc.h parse.h run.h tree.h +libqseawk_la_SOURCES = awk.c err.c tree.c parse.c run.c rec.c val.c fnc.c misc.c eio.c std.c awk.h eio.h val.h fnc.h misc.h parse.h run.h tree.h libqseawk_la_LDFLAGS = -L../cmn -L../utl -version-info 1:0:0 -no-undefined libqseawk_la_LIBADD = -lqsecmn -lqseutl @ENABLE_CXX_TRUE@libqseawk___la_SOURCES = Awk.cpp StdAwk.cpp @@ -299,7 +299,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/awk.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eio.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/err.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/func.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fnc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/misc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parse.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rec.Plo@am__quote@ diff --git a/qse/lib/awk/awk.c b/qse/lib/awk/awk.c index 8e168c0b..ae6ca1a4 100644 --- a/qse/lib/awk/awk.c +++ b/qse/lib/awk/awk.c @@ -33,10 +33,10 @@ qse_awk_seterror ((awk), (code), (line), &errarg, 1); \ } while (0) -static void free_afn (qse_map_t* map, void* vptr, qse_size_t vlen) +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_afn_t* f = (qse_awk_afn_t*)vptr; + qse_awk_fun_t* f = (qse_awk_fun_t*)vptr; /* f->name doesn't have to be freed */ /*QSE_AWK_FREE (awk, f->name);*/ @@ -45,10 +45,10 @@ static void free_afn (qse_map_t* map, void* vptr, qse_size_t vlen) QSE_AWK_FREE (awk, f); } -static void free_bfn (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_bfn_t* f = (qse_awk_bfn_t*)vptr; + qse_awk_fnc_t* f = (qse_awk_fnc_t*)vptr; QSE_AWK_FREE (awk, f); } @@ -93,19 +93,19 @@ qse_awk_t* qse_awk_open (qse_mmgr_t* mmgr, qse_size_t ext) qse_map_setscale (awk->rwtab, QSE_MAP_VAL, QSE_SIZEOF(qse_char_t)); /* TODO: initial map size?? */ - awk->tree.afns = qse_map_open (mmgr, QSE_SIZEOF(awk), 512, 70); - if (awk->tree.afns == QSE_NULL) goto oops; - *(qse_awk_t**)QSE_MAP_XTN(awk->tree.afns) = awk; - qse_map_setcopier (awk->tree.afns, QSE_MAP_KEY, QSE_MAP_COPIER_INLINE); - qse_map_setfreeer (awk->tree.afns, QSE_MAP_VAL, free_afn); - qse_map_setscale (awk->tree.afns, QSE_MAP_KEY, QSE_SIZEOF(qse_char_t)); + 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_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.afns = qse_map_open (mmgr, QSE_SIZEOF(awk), 256, 70); - if (awk->parse.afns == QSE_NULL) goto oops; - *(qse_awk_t**)QSE_MAP_XTN(awk->parse.afns) = awk; - qse_map_setcopier (awk->parse.afns, QSE_MAP_KEY, QSE_MAP_COPIER_INLINE); - qse_map_setcopier (awk->parse.afns, QSE_MAP_VAL, QSE_MAP_COPIER_INLINE); - qse_map_setscale (awk->parse.afns, 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_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; @@ -165,13 +165,13 @@ qse_awk_t* qse_awk_open (qse_mmgr_t* mmgr, qse_size_t ext) awk->src.shared.buf_pos = 0; awk->src.shared.buf_len = 0; - awk->bfn.sys = QSE_NULL; - awk->bfn.user = qse_map_open (mmgr, QSE_SIZEOF(awk), 512, 70); - if (awk->bfn.user == QSE_NULL) goto oops; - *(qse_awk_t**)QSE_MAP_XTN(awk->bfn.user) = awk; - qse_map_setcopier (awk->bfn.user, QSE_MAP_KEY, QSE_MAP_COPIER_INLINE); - qse_map_setfreeer (awk->bfn.user, QSE_MAP_VAL, free_bfn); - qse_map_setscale (awk->bfn.user, QSE_MAP_KEY, QSE_SIZEOF(qse_char_t)); + 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_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)); awk->parse.depth.cur.block = 0; awk->parse.depth.cur.loop = 0; @@ -192,13 +192,13 @@ qse_awk_t* qse_awk_open (qse_mmgr_t* mmgr, qse_size_t ext) oops: - if (awk->bfn.user) qse_map_close (awk->bfn.user); + if (awk->fnc.user) qse_map_close (awk->fnc.user); if (awk->parse.params) qse_lda_close (awk->parse.params); if (awk->parse.locals) qse_lda_close (awk->parse.locals); if (awk->parse.globals) qse_lda_close (awk->parse.globals); if (awk->parse.named) qse_map_close (awk->parse.named); - if (awk->parse.afns) qse_map_close (awk->parse.afns); - if (awk->tree.afns) qse_map_close (awk->tree.afns); + if (awk->parse.funs) qse_map_close (awk->parse.funs); + if (awk->tree.funs) qse_map_close (awk->tree.funs); if (awk->rwtab) qse_map_close (awk->rwtab); if (awk->wtab) qse_map_close (awk->wtab); if (awk->token.name) qse_str_close (awk->token.name); @@ -213,16 +213,16 @@ int qse_awk_close (qse_awk_t* awk) qse_size_t i; if (qse_awk_clear (awk) == -1) return -1; - /*qse_awk_clrbfn (awk);*/ - qse_map_close (awk->bfn.user); + /*qse_awk_clrfnc (awk);*/ + qse_map_close (awk->fnc.user); qse_lda_close (awk->parse.params); qse_lda_close (awk->parse.locals); qse_lda_close (awk->parse.globals); qse_map_close (awk->parse.named); - qse_map_close (awk->parse.afns); + qse_map_close (awk->parse.funs); - qse_map_close (awk->tree.afns); + qse_map_close (awk->tree.funs); qse_map_close (awk->rwtab); qse_map_close (awk->wtab); @@ -264,7 +264,7 @@ int qse_awk_clear (qse_awk_t* awk) qse_lda_clear (awk->parse.locals); qse_lda_clear (awk->parse.params); qse_map_clear (awk->parse.named); - qse_map_clear (awk->parse.afns); + qse_map_clear (awk->parse.funs); awk->parse.nlocals_max = 0; awk->parse.depth.cur.block = 0; @@ -277,9 +277,9 @@ int qse_awk_clear (qse_awk_t* awk) awk->tree.nglobals = 0; */ awk->tree.nglobals = awk->tree.nbglobals; - awk->tree.cur_afn.ptr = QSE_NULL; - awk->tree.cur_afn.len = 0; - qse_map_clear (awk->tree.afns); + awk->tree.cur_fun.ptr = QSE_NULL; + awk->tree.cur_fun.len = 0; + qse_map_clear (awk->tree.funs); if (awk->tree.begin != QSE_NULL) { diff --git a/qse/lib/awk/awk.h b/qse/lib/awk/awk.h index c7aee9c1..848b64b5 100644 --- a/qse/lib/awk/awk.h +++ b/qse/lib/awk/awk.h @@ -31,10 +31,11 @@ typedef struct qse_awk_tree_t qse_awk_tree_t; #include #include "tree.h" -#include "func.h" +#include "fnc.h" #include "parse.h" #include "run.h" #include "eio.h" +#include "val.h" #include "misc.h" #define QSE_AWK_MAX_GLOBALS 9999 @@ -66,8 +67,8 @@ struct qse_awk_tree_t { qse_size_t nglobals; /* total number of globals */ qse_size_t nbglobals; /* number of intrinsic globals */ - qse_cstr_t cur_afn; - qse_map_t* afns; /* awk function map */ + qse_cstr_t cur_fun; + qse_map_t* funs; /* awk function map */ qse_awk_nde_t* begin; qse_awk_nde_t* begin_tail; @@ -131,7 +132,7 @@ struct qse_awk_t } depth; /* function calls */ - qse_map_t* afns; + qse_map_t* funs; /* named variables */ qse_map_t* named; @@ -197,9 +198,9 @@ struct qse_awk_t /* intrinsic functions */ struct { - qse_awk_bfn_t* sys; + qse_awk_fnc_t* sys; qse_map_t* user; - } bfn; + } fnc; struct { diff --git a/qse/lib/awk/eio.c b/qse/lib/awk/eio.c index e2eaa6f5..a83ec91b 100644 --- a/qse/lib/awk/eio.c +++ b/qse/lib/awk/eio.c @@ -114,7 +114,7 @@ int qse_awk_readeio ( if (handler == QSE_NULL) { /* no io handler provided */ - qse_awk_setrunerrnum (run, QSE_AWK_EIOUSER); + qse_awk_rtx_seterrnum (run, QSE_AWK_EIOUSER); return -1; } @@ -134,7 +134,7 @@ int qse_awk_readeio ( run->awk, QSE_SIZEOF(qse_awk_eio_t)); if (p == QSE_NULL) { - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return -1; } @@ -142,11 +142,11 @@ int qse_awk_readeio ( if (p->name == QSE_NULL) { QSE_AWK_FREE (run->awk, p); - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return -1; } - p->run = run; + p->rtx = run; p->type = (eio_type | eio_mask); p->mode = eio_mode; p->handle = QSE_NULL; @@ -159,7 +159,7 @@ int qse_awk_readeio ( p->in.eof = QSE_FALSE; p->in.eos = QSE_FALSE; - qse_awk_setrunerrnum (run, QSE_AWK_ENOERR); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOERR); /* request to open the stream */ x = handler (QSE_AWK_IO_OPEN, p, QSE_NULL, 0); @@ -172,7 +172,7 @@ int qse_awk_readeio ( { /* if the error number has not been * set by the user handler */ - qse_awk_setrunerrnum (run, QSE_AWK_EIOIMPL); + qse_awk_rtx_seterrnum (run, QSE_AWK_EIOIMPL); } return -1; @@ -205,7 +205,7 @@ int qse_awk_readeio ( /* get the record separator */ rs = qse_awk_rtx_getglobal (run, QSE_AWK_GLOBAL_RS); - qse_awk_refupval (run, rs); + qse_awk_rtx_refupval (run, rs); if (rs->type == QSE_AWK_VAL_NIL) { @@ -219,11 +219,11 @@ int qse_awk_readeio ( } else { - rs_ptr = qse_awk_valtostr ( + rs_ptr = qse_awk_rtx_valtostr ( run, rs, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &rs_len); if (rs_ptr == QSE_NULL) { - qse_awk_refdownval (run, rs); + qse_awk_rtx_refdownval (run, rs); return -1; } } @@ -243,7 +243,7 @@ int qse_awk_readeio ( break; } - qse_awk_setrunerrnum (run, QSE_AWK_ENOERR); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOERR); n = handler (QSE_AWK_IO_READ, p, p->in.buf, QSE_COUNTOF(p->in.buf)); @@ -253,7 +253,7 @@ int qse_awk_readeio ( { /* if the error number has not been * set by the user handler */ - qse_awk_setrunerrnum (run, QSE_AWK_EIOIMPL); + qse_awk_rtx_seterrnum (run, QSE_AWK_EIOIMPL); } ret = -1; @@ -393,7 +393,7 @@ int qse_awk_readeio ( if (qse_str_ccat (buf, c) == (qse_size_t)-1) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ENOMEM, 0, QSE_NULL, 0); ret = -1; break; @@ -406,7 +406,7 @@ int qse_awk_readeio ( if (rs_ptr != QSE_NULL && rs->type != QSE_AWK_VAL_STR) QSE_AWK_FREE (run->awk, rs_ptr); - qse_awk_refdownval (run, rs); + qse_awk_rtx_refdownval (run, rs); return ret; } @@ -426,7 +426,7 @@ int qse_awk_writeeio_val ( } else { - str = qse_awk_valtostr ( + str = qse_awk_rtx_valtostr ( run, v, QSE_AWK_VALTOSTR_CLEAR | QSE_AWK_VALTOSTR_PRINT, QSE_NULL, &len); @@ -461,7 +461,7 @@ int qse_awk_writeeio_str ( if (handler == QSE_NULL) { /* no io handler provided */ - qse_awk_setrunerrnum (run, QSE_AWK_EIOUSER); + qse_awk_rtx_seterrnum (run, QSE_AWK_EIOUSER); return -1; } @@ -490,7 +490,7 @@ int qse_awk_writeeio_str ( run->awk, QSE_SIZEOF(qse_awk_eio_t)); if (p == QSE_NULL) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ENOMEM, 0, QSE_NULL, 0); return -1; } @@ -499,12 +499,12 @@ int qse_awk_writeeio_str ( if (p->name == QSE_NULL) { QSE_AWK_FREE (run->awk, p); - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ENOMEM, 0, QSE_NULL, 0); return -1; } - p->run = run; + p->rtx = run; p->type = (eio_type | eio_mask); p->mode = eio_mode; p->handle = QSE_NULL; @@ -514,7 +514,7 @@ int qse_awk_writeeio_str ( p->out.eof = QSE_FALSE; p->out.eos = QSE_FALSE; - qse_awk_setrunerrnum (run, QSE_AWK_ENOERR); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOERR); n = handler (QSE_AWK_IO_OPEN, p, QSE_NULL, 0); if (n <= -1) { @@ -522,7 +522,7 @@ int qse_awk_writeeio_str ( QSE_AWK_FREE (run->awk, p); if (run->errnum == QSE_AWK_ENOERR) - qse_awk_setrunerrnum (run, QSE_AWK_EIOIMPL); + qse_awk_rtx_seterrnum (run, QSE_AWK_EIOIMPL); return -1; } @@ -558,12 +558,12 @@ int qse_awk_writeeio_str ( while (len > 0) { - qse_awk_setrunerrnum (run, QSE_AWK_ENOERR); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOERR); n = handler (QSE_AWK_IO_WRITE, p, str, len); if (n <= -1) { if (run->errnum == QSE_AWK_ENOERR) - qse_awk_setrunerrnum (run, QSE_AWK_EIOIMPL); + qse_awk_rtx_seterrnum (run, QSE_AWK_EIOIMPL); return -1; } @@ -603,7 +603,7 @@ int qse_awk_flusheio ( if (handler == QSE_NULL) { /* no io handler provided */ - qse_awk_setrunerrnum (run, QSE_AWK_EIOUSER); + qse_awk_rtx_seterrnum (run, QSE_AWK_EIOUSER); return -1; } @@ -613,13 +613,13 @@ int qse_awk_flusheio ( if (p->type == (eio_type | eio_mask) && (name == QSE_NULL || qse_strcmp(p->name,name) == 0)) { - qse_awk_setrunerrnum (run, QSE_AWK_ENOERR); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOERR); n = handler (QSE_AWK_IO_FLUSH, p, QSE_NULL, 0); if (n <= -1) { if (run->errnum == QSE_AWK_ENOERR) - qse_awk_setrunerrnum (run, QSE_AWK_EIOIMPL); + qse_awk_rtx_seterrnum (run, QSE_AWK_EIOIMPL); return -1; } @@ -632,7 +632,7 @@ int qse_awk_flusheio ( if (ok) return 0; /* there is no corresponding eio for name */ - qse_awk_setrunerrnum (run, QSE_AWK_EIONONE); + qse_awk_rtx_seterrnum (run, QSE_AWK_EIONONE); return -1; } @@ -657,7 +657,7 @@ int qse_awk_nexteio_read ( if (handler == QSE_NULL) { /* no io handler provided */ - qse_awk_setrunerrnum (run, QSE_AWK_EIOUSER); + qse_awk_rtx_seterrnum (run, QSE_AWK_EIOUSER); return -1; } @@ -673,7 +673,7 @@ int qse_awk_nexteio_read ( /* something is totally wrong */ QSE_ASSERT ( !"should never happen - cannot find the relevant eio entry"); - qse_awk_setrunerror (run, QSE_AWK_EINTERN, 0, QSE_NULL, 0); + qse_awk_rtx_seterror (run, QSE_AWK_EINTERN, 0, QSE_NULL, 0); return -1; } @@ -683,12 +683,12 @@ int qse_awk_nexteio_read ( return 0; } - qse_awk_setrunerrnum (run, QSE_AWK_ENOERR); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOERR); n = handler (QSE_AWK_IO_NEXT, p, QSE_NULL, 0); if (n <= -1) { if (run->errnum == QSE_AWK_ENOERR) - qse_awk_setrunerrnum (run, QSE_AWK_EIOIMPL); + qse_awk_rtx_seterrnum (run, QSE_AWK_EIOIMPL); return -1; } @@ -735,7 +735,7 @@ int qse_awk_nexteio_write ( if (handler == QSE_NULL) { /* no io handler provided */ - qse_awk_setrunerrnum (run, QSE_AWK_EIOUSER); + qse_awk_rtx_seterrnum (run, QSE_AWK_EIOUSER); return -1; } @@ -751,7 +751,7 @@ int qse_awk_nexteio_write ( /* something is totally wrong */ QSE_ASSERT (!"should never happen - cannot find the relevant eio entry"); - qse_awk_setrunerror (run, QSE_AWK_EINTERN, 0, QSE_NULL, 0); + qse_awk_rtx_seterror (run, QSE_AWK_EINTERN, 0, QSE_NULL, 0); return -1; } @@ -761,12 +761,12 @@ int qse_awk_nexteio_write ( return 0; } - qse_awk_setrunerrnum (run, QSE_AWK_ENOERR); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOERR); n = handler (QSE_AWK_IO_NEXT, p, QSE_NULL, 0); if (n <= -1) { if (run->errnum == QSE_AWK_ENOERR) - qse_awk_setrunerrnum (run, QSE_AWK_EIOIMPL); + qse_awk_rtx_seterrnum (run, QSE_AWK_EIOIMPL); return -1; } @@ -807,7 +807,7 @@ int qse_awk_closeeio_read ( if (handler == QSE_NULL) { /* no io handler provided */ - qse_awk_setrunerrnum (run, QSE_AWK_EIOUSER); + qse_awk_rtx_seterrnum (run, QSE_AWK_EIOUSER); return -1; } @@ -824,7 +824,7 @@ int qse_awk_closeeio_read ( if (handler (QSE_AWK_IO_CLOSE, p, QSE_NULL, 0) <= -1) { /* this is not a run-time error.*/ - qse_awk_setrunerror (run, QSE_AWK_EIOIMPL, 0, QSE_NULL, 0); + qse_awk_rtx_seterror (run, QSE_AWK_EIOIMPL, 0, QSE_NULL, 0); return -1; } } @@ -842,7 +842,7 @@ int qse_awk_closeeio_read ( } /* the name given is not found */ - qse_awk_setrunerrnum (run, QSE_AWK_EIONONE); + qse_awk_rtx_seterrnum (run, QSE_AWK_EIONONE); return -1; } @@ -866,7 +866,7 @@ int qse_awk_closeeio_write ( if (handler == QSE_NULL) { /* no io handler provided */ - qse_awk_setrunerror (run, QSE_AWK_EIOUSER, 0, QSE_NULL, 0); + qse_awk_rtx_seterror (run, QSE_AWK_EIOUSER, 0, QSE_NULL, 0); return -1; } @@ -880,11 +880,11 @@ int qse_awk_closeeio_write ( handler = run->eio.handler[p->type & MASK_CLEAR]; if (handler != QSE_NULL) { - qse_awk_setrunerrnum (run, QSE_AWK_ENOERR); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOERR); if (handler (QSE_AWK_IO_CLOSE, p, QSE_NULL, 0) <= -1) { if (run->errnum == QSE_AWK_ENOERR) - qse_awk_setrunerrnum (run, QSE_AWK_EIOIMPL); + qse_awk_rtx_seterrnum (run, QSE_AWK_EIOIMPL); return -1; } } @@ -901,7 +901,7 @@ int qse_awk_closeeio_write ( p = p->next; } - qse_awk_setrunerrnum (run, QSE_AWK_EIONONE); + qse_awk_rtx_seterrnum (run, QSE_AWK_EIONONE); return -1; } @@ -920,12 +920,12 @@ int qse_awk_closeeio (qse_awk_rtx_t* run, const qse_char_t* name) handler = run->eio.handler[p->type & MASK_CLEAR]; if (handler != QSE_NULL) { - qse_awk_setrunerrnum (run, QSE_AWK_ENOERR); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOERR); if (handler (QSE_AWK_IO_CLOSE, p, QSE_NULL, 0) <= -1) { /* this is not a run-time error.*/ if (run->errnum == QSE_AWK_ENOERR) - qse_awk_setrunerrnum (run, QSE_AWK_EIOIMPL); + qse_awk_rtx_seterrnum (run, QSE_AWK_EIOIMPL); return -1; } } @@ -943,7 +943,7 @@ int qse_awk_closeeio (qse_awk_rtx_t* run, const qse_char_t* name) p = p->next; } - qse_awk_setrunerrnum (run, QSE_AWK_EIONONE); + qse_awk_rtx_seterrnum (run, QSE_AWK_EIONONE); return -1; } @@ -961,12 +961,12 @@ void qse_awk_cleareio (qse_awk_rtx_t* run) if (handler != QSE_NULL) { - qse_awk_setrunerrnum (run, QSE_AWK_ENOERR); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOERR); n = handler (QSE_AWK_IO_CLOSE, run->eio.chain, QSE_NULL, 0); if (n <= -1) { if (run->errnum == QSE_AWK_ENOERR) - qse_awk_setrunerrnum (run, QSE_AWK_EIOIMPL); + qse_awk_rtx_seterrnum (run, QSE_AWK_EIOIMPL); /* TODO: some warnings need to be shown??? */ } } diff --git a/qse/lib/awk/err.c b/qse/lib/awk/err.c index a4265654..6c01f2f8 100644 --- a/qse/lib/awk/err.c +++ b/qse/lib/awk/err.c @@ -350,12 +350,12 @@ int qse_awk_rtx_geterrnum (qse_awk_rtx_t* run) return run->errnum; } -qse_size_t qse_awk_getrunerrlin (qse_awk_rtx_t* run) +qse_size_t qse_awk_rtx_geterrlin (qse_awk_rtx_t* run) { return run->errlin; } -const qse_char_t* qse_awk_getrunerrmsg (qse_awk_rtx_t* run) +const qse_char_t* qse_awk_rtx_geterrmsg (qse_awk_rtx_t* run) { if (run->errmsg[0] == QSE_T('\0')) return qse_awk_geterrstr (run->awk, run->errnum); @@ -363,14 +363,14 @@ const qse_char_t* qse_awk_getrunerrmsg (qse_awk_rtx_t* run) return run->errmsg; } -void qse_awk_setrunerrnum (qse_awk_rtx_t* run, int errnum) +void qse_awk_rtx_seterrnum (qse_awk_rtx_t* run, int errnum) { run->errnum = errnum; run->errlin = 0; run->errmsg[0] = QSE_T('\0'); } -void qse_awk_setrunerrmsg (qse_awk_rtx_t* run, +void qse_awk_rtx_seterrmsg (qse_awk_rtx_t* run, int errnum, qse_size_t errlin, const qse_char_t* errmsg) { run->errnum = errnum; @@ -378,7 +378,7 @@ void qse_awk_setrunerrmsg (qse_awk_rtx_t* run, qse_strxcpy (run->errmsg, QSE_COUNTOF(run->errmsg), errmsg); } -void qse_awk_getrunerror ( +void qse_awk_rtx_geterror ( qse_awk_rtx_t* run, int* errnum, qse_size_t* errlin, const qse_char_t** errmsg) { @@ -393,7 +393,7 @@ void qse_awk_getrunerror ( } } -void qse_awk_setrunerror ( +void qse_awk_rtx_seterror ( qse_awk_rtx_t* run, int errnum, qse_size_t errlin, const qse_cstr_t* errarg, qse_size_t argcnt) { diff --git a/qse/lib/awk/func.c b/qse/lib/awk/fnc.c similarity index 80% rename from qse/lib/awk/func.c rename to qse/lib/awk/fnc.c index 9f7c6813..f3700c3f 100644 --- a/qse/lib/awk/func.c +++ b/qse/lib/awk/fnc.c @@ -18,50 +18,50 @@ #include "awk.h" -static int bfn_close (qse_awk_rtx_t*, const qse_char_t*, qse_size_t); -static int bfn_fflush (qse_awk_rtx_t*, const qse_char_t*, qse_size_t); -static int bfn_index (qse_awk_rtx_t*, const qse_char_t*, qse_size_t); -static int bfn_length (qse_awk_rtx_t*, const qse_char_t*, qse_size_t); -static int bfn_substr (qse_awk_rtx_t*, const qse_char_t*, qse_size_t); -static int bfn_split (qse_awk_rtx_t*, const qse_char_t*, qse_size_t); -static int bfn_tolower (qse_awk_rtx_t*, const qse_char_t*, qse_size_t); -static int bfn_toupper (qse_awk_rtx_t*, const qse_char_t*, qse_size_t); -static int bfn_gsub (qse_awk_rtx_t*, const qse_char_t*, qse_size_t); -static int bfn_sub (qse_awk_rtx_t*, const qse_char_t*, qse_size_t); -static int bfn_match (qse_awk_rtx_t*, const qse_char_t*, qse_size_t); -static int bfn_sprintf (qse_awk_rtx_t*, const qse_char_t*, qse_size_t); +static int fnc_close (qse_awk_rtx_t*, const qse_char_t*, qse_size_t); +static int fnc_fflush (qse_awk_rtx_t*, const qse_char_t*, qse_size_t); +static int fnc_index (qse_awk_rtx_t*, const qse_char_t*, qse_size_t); +static int fnc_length (qse_awk_rtx_t*, const qse_char_t*, qse_size_t); +static int fnc_substr (qse_awk_rtx_t*, const qse_char_t*, qse_size_t); +static int fnc_split (qse_awk_rtx_t*, const qse_char_t*, qse_size_t); +static int fnc_tolower (qse_awk_rtx_t*, const qse_char_t*, qse_size_t); +static int fnc_toupper (qse_awk_rtx_t*, const qse_char_t*, qse_size_t); +static int fnc_gsub (qse_awk_rtx_t*, const qse_char_t*, qse_size_t); +static int fnc_sub (qse_awk_rtx_t*, const qse_char_t*, qse_size_t); +static int fnc_match (qse_awk_rtx_t*, const qse_char_t*, qse_size_t); +static int fnc_sprintf (qse_awk_rtx_t*, const qse_char_t*, qse_size_t); #undef MAX #define MAX QSE_TYPE_UNSIGNED_MAX(qse_size_t) -static qse_awk_bfn_t sys_bfn[] = +static qse_awk_fnc_t sys_fnc[] = { /* io functions */ - { {QSE_T("close"), 5}, QSE_AWK_EIO, {1, 1, QSE_NULL}, bfn_close}, - { {QSE_T("fflush"), 6}, QSE_AWK_EIO, {0, 1, QSE_NULL}, bfn_fflush}, + { {QSE_T("close"), 5}, QSE_AWK_EIO, {1, 1, QSE_NULL}, fnc_close}, + { {QSE_T("fflush"), 6}, QSE_AWK_EIO, {0, 1, QSE_NULL}, fnc_fflush}, /* string functions */ - { {QSE_T("index"), 5}, 0, {2, 2, QSE_NULL}, bfn_index}, - { {QSE_T("substr"), 6}, 0, {2, 3, QSE_NULL}, bfn_substr}, - { {QSE_T("length"), 6}, 0, {1, 1, QSE_NULL}, bfn_length}, - { {QSE_T("split"), 5}, 0, {2, 3, QSE_T("vrv")}, bfn_split}, - { {QSE_T("tolower"), 7}, 0, {1, 1, QSE_NULL}, bfn_tolower}, - { {QSE_T("toupper"), 7}, 0, {1, 1, QSE_NULL}, bfn_toupper}, - { {QSE_T("gsub"), 4}, 0, {2, 3, QSE_T("xvr")}, bfn_gsub}, - { {QSE_T("sub"), 3}, 0, {2, 3, QSE_T("xvr")}, bfn_sub}, - { {QSE_T("match"), 5}, 0, {2, 2, QSE_T("vx")}, bfn_match}, - { {QSE_T("sprintf"), 7}, 0, {1, MAX, QSE_NULL}, bfn_sprintf}, + { {QSE_T("index"), 5}, 0, {2, 2, QSE_NULL}, fnc_index}, + { {QSE_T("substr"), 6}, 0, {2, 3, QSE_NULL}, fnc_substr}, + { {QSE_T("length"), 6}, 0, {1, 1, QSE_NULL}, fnc_length}, + { {QSE_T("split"), 5}, 0, {2, 3, QSE_T("vrv")}, fnc_split}, + { {QSE_T("tolower"), 7}, 0, {1, 1, QSE_NULL}, fnc_tolower}, + { {QSE_T("toupper"), 7}, 0, {1, 1, QSE_NULL}, fnc_toupper}, + { {QSE_T("gsub"), 4}, 0, {2, 3, QSE_T("xvr")}, fnc_gsub}, + { {QSE_T("sub"), 3}, 0, {2, 3, QSE_T("xvr")}, fnc_sub}, + { {QSE_T("match"), 5}, 0, {2, 2, QSE_T("vx")}, fnc_match}, + { {QSE_T("sprintf"), 7}, 0, {1, MAX, QSE_NULL}, fnc_sprintf}, { {QSE_NULL, 0}, 0, {0, 0, QSE_NULL}, QSE_NULL} }; -void* qse_awk_addfunc ( +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)) { - qse_awk_bfn_t* bfn; + qse_awk_fnc_t* fnc; qse_size_t spec_len; if (name_len <= 0) @@ -70,7 +70,7 @@ void* qse_awk_addfunc ( return QSE_NULL; } - if (qse_awk_getbfn (awk, name, name_len) != QSE_NULL) + if (qse_awk_getfnc (awk, name, name_len) != QSE_NULL) { qse_cstr_t errarg; @@ -83,48 +83,48 @@ void* qse_awk_addfunc ( spec_len = (arg_spec == QSE_NULL)? 0: qse_strlen(arg_spec); - bfn = (qse_awk_bfn_t*) QSE_AWK_ALLOC (awk, - QSE_SIZEOF(qse_awk_bfn_t) + + fnc = (qse_awk_fnc_t*) QSE_AWK_ALLOC (awk, + QSE_SIZEOF(qse_awk_fnc_t) + (name_len+1) * QSE_SIZEOF(qse_char_t) + (spec_len+1) * QSE_SIZEOF(qse_char_t)); - if (bfn == QSE_NULL) + if (fnc == QSE_NULL) { qse_awk_seterrnum (awk, QSE_AWK_ENOMEM); return QSE_NULL; } - bfn->name.ptr = (qse_char_t*)(bfn + 1); - bfn->name.len = name_len; - qse_strxncpy (bfn->name.ptr, name_len+1, name, name_len); + fnc->name.ptr = (qse_char_t*)(fnc + 1); + fnc->name.len = name_len; + qse_strxncpy (fnc->name.ptr, name_len+1, name, name_len); - bfn->valid = when_valid; - bfn->arg.min = min_args; - bfn->arg.max = max_args; + fnc->valid = when_valid; + fnc->arg.min = min_args; + fnc->arg.max = max_args; - if (arg_spec == QSE_NULL) bfn->arg.spec = QSE_NULL; + if (arg_spec == QSE_NULL) fnc->arg.spec = QSE_NULL; else { - bfn->arg.spec = bfn->name.ptr + bfn->name.len + 1; - qse_strxcpy (bfn->arg.spec, spec_len+1, arg_spec); + fnc->arg.spec = fnc->name.ptr + fnc->name.len + 1; + qse_strxcpy (fnc->arg.spec, spec_len+1, arg_spec); } - bfn->handler = handler; + fnc->handler = handler; - if (qse_map_insert (awk->bfn.user, - (qse_char_t*)name, name_len, bfn, 0) == QSE_NULL) + if (qse_map_insert (awk->fnc.user, + (qse_char_t*)name, name_len, fnc, 0) == QSE_NULL) { - QSE_AWK_FREE (awk, bfn); + QSE_AWK_FREE (awk, fnc); qse_awk_seterrnum (awk, QSE_AWK_ENOMEM); return QSE_NULL; } - return bfn; + return fnc; } -int qse_awk_delfunc ( +int qse_awk_delfnc ( qse_awk_t* awk, const qse_char_t* name, qse_size_t name_len) { - if (qse_map_delete (awk->bfn.user, name, name_len) == -1) + if (qse_map_delete (awk->fnc.user, name, name_len) == -1) { qse_cstr_t errarg; @@ -138,27 +138,27 @@ int qse_awk_delfunc ( return 0; } -void qse_awk_clrbfn (qse_awk_t* awk) +void qse_awk_clrfnc (qse_awk_t* awk) { - qse_map_clear (awk->bfn.user); + qse_map_clear (awk->fnc.user); } -qse_awk_bfn_t* qse_awk_getbfn ( +qse_awk_fnc_t* qse_awk_getfnc ( qse_awk_t* awk, const qse_char_t* name, qse_size_t len) { - qse_awk_bfn_t* bfn; + qse_awk_fnc_t* fnc; qse_map_pair_t* pair; const qse_char_t* k; qse_size_t l; /* search the system function table */ - for (bfn = sys_bfn; bfn->name.ptr != QSE_NULL; bfn++) + for (fnc = sys_fnc; fnc->name.ptr != QSE_NULL; fnc++) { - if (bfn->valid != 0 && - (awk->option & bfn->valid) != bfn->valid) continue; + if (fnc->valid != 0 && + (awk->option & fnc->valid) != fnc->valid) continue; pair = qse_map_search ( - awk->wtab, bfn->name.ptr, bfn->name.len); + awk->wtab, fnc->name.ptr, fnc->name.len); if (pair != QSE_NULL) { /* found in the customized word table */ @@ -167,11 +167,11 @@ qse_awk_bfn_t* qse_awk_getbfn ( } else { - k = bfn->name.ptr; - l = bfn->name.len; + k = fnc->name.ptr; + l = fnc->name.len; } - if (qse_strxncmp (k, l, name, len) == 0) return bfn; + if (qse_strxncmp (k, l, name, len) == 0) return fnc; } /* NOTE: I suspect this block of code might be very fragile. @@ -216,16 +216,16 @@ qse_awk_bfn_t* qse_awk_getbfn ( } /* END NOTE */ - pair = qse_map_search (awk->bfn.user, k, l); + pair = qse_map_search (awk->fnc.user, k, l); if (pair == QSE_NULL) return QSE_NULL; - bfn = (qse_awk_bfn_t*)QSE_MAP_VPTR(pair); - if (bfn->valid != 0 && (awk->option & bfn->valid) == 0) return QSE_NULL; + fnc = (qse_awk_fnc_t*)QSE_MAP_VPTR(pair); + if (fnc->valid != 0 && (awk->option & fnc->valid) == 0) return QSE_NULL; - return bfn; + return fnc; } -static int bfn_close ( +static int fnc_close ( qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) { qse_size_t nargs; @@ -249,7 +249,7 @@ static int bfn_close ( } else { - name = qse_awk_valtostr ( + name = qse_awk_rtx_valtostr ( run, a0, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &len); if (name == QSE_NULL) return -1; } @@ -292,10 +292,10 @@ static int bfn_close ( skip_close: if (a0->type != QSE_AWK_VAL_STR) QSE_AWK_FREE (run->awk, name); - v = qse_awk_makeintval (run, (qse_long_t)n); + v = qse_awk_rtx_makeintval (run, (qse_long_t)n); if (v == QSE_NULL) { - /*qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM);*/ + /*qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM);*/ return -1; } @@ -333,7 +333,7 @@ static int flush_eio ( return n; } -static int bfn_fflush ( +static int fnc_fflush ( qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) { qse_size_t nargs; @@ -363,7 +363,7 @@ static int bfn_fflush ( } else { - str0 = qse_awk_valtostr ( + str0 = qse_awk_rtx_valtostr ( run, a0, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &len0); if (str0 == QSE_NULL) return -1; @@ -403,10 +403,10 @@ static int bfn_fflush ( if (a0->type != QSE_AWK_VAL_STR) QSE_AWK_FREE (run->awk, str0); } - a0 = qse_awk_makeintval (run, (qse_long_t)n); + a0 = qse_awk_rtx_makeintval (run, (qse_long_t)n); if (a0 == QSE_NULL) { - /*qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM);*/ + /*qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM);*/ return -1; } @@ -414,7 +414,7 @@ static int bfn_fflush ( return 0; } -static int bfn_index ( +static int fnc_index ( qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) { qse_size_t nargs; @@ -436,7 +436,7 @@ static int bfn_index ( } else { - str0 = qse_awk_valtostr ( + str0 = qse_awk_rtx_valtostr ( run, a0, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &len0); if (str0 == QSE_NULL) return -1; } @@ -448,7 +448,7 @@ static int bfn_index ( } else { - str1 = qse_awk_valtostr ( + str1 = qse_awk_rtx_valtostr ( run, a1, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &len1); if (str1 == QSE_NULL) { @@ -466,10 +466,10 @@ static int bfn_index ( if (a0->type != QSE_AWK_VAL_STR) QSE_AWK_FREE (run->awk, str0); if (a1->type != QSE_AWK_VAL_STR) QSE_AWK_FREE (run->awk, str1); - a0 = qse_awk_makeintval (run, idx); + a0 = qse_awk_rtx_makeintval (run, idx); if (a0 == QSE_NULL) { - /*qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM);*/ + /*qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM);*/ return -1; } @@ -477,7 +477,7 @@ static int bfn_index ( return 0; } -static int bfn_length ( +static int fnc_length ( qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) { qse_size_t nargs; @@ -495,16 +495,16 @@ static int bfn_length ( } else { - str = qse_awk_valtostr ( + str = qse_awk_rtx_valtostr ( run, v, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &len); if (str == QSE_NULL) return -1; QSE_AWK_FREE (run->awk, str); } - v = qse_awk_makeintval (run, len); + v = qse_awk_rtx_makeintval (run, len); if (v == QSE_NULL) { - /*qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM);*/ + /*qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM);*/ return -1; } @@ -512,7 +512,7 @@ static int bfn_length ( return 0; } -static int bfn_substr ( +static int fnc_substr ( qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) { qse_size_t nargs; @@ -537,12 +537,12 @@ static int bfn_substr ( } else { - str = qse_awk_valtostr ( + str = qse_awk_rtx_valtostr ( run, a0, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &len); if (str == QSE_NULL) return -1; } - n = qse_awk_valtonum (run, a1, &lindex, &rindex); + n = qse_awk_rtx_valtonum (run, a1, &lindex, &rindex); if (n == -1) { if (a0->type != QSE_AWK_VAL_STR) QSE_AWK_FREE (run->awk, str); @@ -553,7 +553,7 @@ static int bfn_substr ( if (a2 == QSE_NULL) lcount = (qse_long_t)len; else { - n = qse_awk_valtonum (run, a2, &lcount, &rcount); + n = qse_awk_rtx_valtonum (run, a2, &lcount, &rcount); if (n == -1) { if (a0->type != QSE_AWK_VAL_STR) @@ -573,11 +573,11 @@ static int bfn_substr ( lcount = (qse_long_t)len - lindex; } - r = qse_awk_makestrval (run, &str[lindex], (qse_size_t)lcount); + r = qse_awk_rtx_makestrval (run, &str[lindex], (qse_size_t)lcount); if (r == QSE_NULL) { if (a0->type != QSE_AWK_VAL_STR) QSE_AWK_FREE (run->awk, str); - /*qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM);*/ + /*qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM);*/ return -1; } @@ -586,7 +586,7 @@ static int bfn_substr ( return 0; } -static int bfn_split ( +static int fnc_split ( qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) { qse_size_t nargs; @@ -615,14 +615,14 @@ static int bfn_split ( ((qse_awk_val_ref_t*)a1)->id <= QSE_AWK_VAL_REF_ARGIDX) { /* an indexed value should not be assigned another map */ - qse_awk_setrunerrnum (run, QSE_AWK_EIDXVALASSMAP); + qse_awk_rtx_seterrnum (run, QSE_AWK_EIDXVALASSMAP); return -1; } if (((qse_awk_val_ref_t*)a1)->id == QSE_AWK_VAL_REF_POS) { /* a positional should not be assigned a map */ - qse_awk_setrunerrnum (run, QSE_AWK_EPOSVALASSMAP); + qse_awk_rtx_seterrnum (run, QSE_AWK_EPOSVALASSMAP); return -1; } @@ -631,7 +631,7 @@ static int bfn_split ( (*a1_ref)->type != QSE_AWK_VAL_MAP) { /* cannot change a scalar value to a map */ - qse_awk_setrunerrnum (run, QSE_AWK_ESCALARTOMAP); + qse_awk_rtx_seterrnum (run, QSE_AWK_ESCALARTOMAP); return -1; } @@ -643,7 +643,7 @@ static int bfn_split ( } else { - str = qse_awk_valtostr ( + str = qse_awk_rtx_valtostr ( run, a0, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &str_len); if (str == QSE_NULL) return -1; str_free = str; @@ -667,7 +667,7 @@ static int bfn_split ( } else { - fs_ptr = qse_awk_valtostr ( + fs_ptr = qse_awk_rtx_valtostr ( run, t1, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &fs_len); if (fs_ptr == QSE_NULL) { @@ -694,7 +694,7 @@ static int bfn_split ( } else { - fs_ptr = qse_awk_valtostr ( + fs_ptr = qse_awk_rtx_valtostr ( run, a2, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &fs_len); if (fs_ptr == QSE_NULL) { @@ -715,14 +715,14 @@ static int bfn_split ( QSE_AWK_FREE (run->awk, str_free); if (fs_free != QSE_NULL) QSE_AWK_FREE (run->awk, fs_free); - qse_awk_setrunerrnum (run, errnum); + qse_awk_rtx_seterrnum (run, errnum); return -1; } fs_rex_free = fs_rex; } } - t1 = qse_awk_makemapval (run); + t1 = qse_awk_rtx_makemapval (run); if (t1 == QSE_NULL) { if (str_free != QSE_NULL) @@ -731,13 +731,13 @@ static int bfn_split ( QSE_AWK_FREE (run->awk, fs_free); if (fs_rex_free != QSE_NULL) QSE_AWK_FREEREX (run->awk, fs_rex_free); - /*qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM);*/ + /*qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM);*/ return -1; } - qse_awk_refdownval (run, *a1_ref); + qse_awk_rtx_refdownval (run, *a1_ref); *a1_ref = t1; - qse_awk_refupval (run, *a1_ref); + qse_awk_rtx_refupval (run, *a1_ref); p = str; str_left = str_len; sta = (qse_awk_getoption(run->awk) & QSE_AWK_BASEONE)? 1: 0; @@ -762,7 +762,7 @@ static int bfn_split ( QSE_AWK_FREE (run->awk, fs_free); if (fs_rex_free != QSE_NULL) QSE_AWK_FREEREX (run->awk, fs_rex_free); - qse_awk_setrunerrnum (run, errnum); + qse_awk_rtx_seterrnum (run, errnum); return -1; } } @@ -777,7 +777,7 @@ static int bfn_split ( (tok != QSE_NULL && tok_len > 0) || tok_len == 0); /* create the field string */ - t2 = qse_awk_makestrval (run, tok, tok_len); + t2 = qse_awk_rtx_makestrval (run, tok, tok_len); if (t2 == QSE_NULL) { if (str_free != QSE_NULL) @@ -786,7 +786,7 @@ static int bfn_split ( QSE_AWK_FREE (run->awk, fs_free); if (fs_rex_free != QSE_NULL) QSE_AWK_FREEREX (run->awk, fs_rex_free); - /*qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM);*/ + /*qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM);*/ return -1; } @@ -799,14 +799,14 @@ static int bfn_split ( * handle the assignment-like situation. anyway, it is * incremented in advance as if the assignment was successful. * it is decremented if the assignement fails. */ - qse_awk_refupval (run, t2); + qse_awk_rtx_refupval (run, t2); if (qse_map_insert ( ((qse_awk_val_map_t*)t1)->map, key, key_len, t2, 0) == QSE_NULL) { /* assignment failed. restore the reference counter */ - qse_awk_refdownval (run, t2); + qse_awk_rtx_refdownval (run, t2); if (str_free != QSE_NULL) QSE_AWK_FREE (run->awk, str_free); @@ -818,7 +818,7 @@ static int bfn_split ( /* qse_map_insert() fails if the key exists. * that can't happen here. so set the error code * to ENOMEM */ - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return -1; } @@ -832,10 +832,10 @@ static int bfn_split ( if (sta == 1) num--; - t1 = qse_awk_makeintval (run, num); + t1 = qse_awk_rtx_makeintval (run, num); if (t1 == QSE_NULL) { - /*qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM);*/ + /*qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM);*/ return -1; } @@ -843,7 +843,7 @@ static int bfn_split ( return 0; } -static int bfn_tolower ( +static int fnc_tolower ( qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) { qse_size_t nargs; @@ -863,18 +863,18 @@ static int bfn_tolower ( } else { - str = qse_awk_valtostr ( + str = qse_awk_rtx_valtostr ( run, a0, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &len); if (str == QSE_NULL) return -1; } for (i = 0; i < len; i++) str[i] = QSE_AWK_TOLOWER (run->awk, str[i]); - r = qse_awk_makestrval (run, str, len); + r = qse_awk_rtx_makestrval (run, str, len); if (r == QSE_NULL) { if (a0->type != QSE_AWK_VAL_STR) QSE_AWK_FREE (run->awk, str); - /*qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM);*/ + /*qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM);*/ return -1; } @@ -883,7 +883,7 @@ static int bfn_tolower ( return 0; } -static int bfn_toupper ( +static int fnc_toupper ( qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) { qse_size_t nargs; @@ -903,18 +903,18 @@ static int bfn_toupper ( } else { - str = qse_awk_valtostr ( + str = qse_awk_rtx_valtostr ( run, a0, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &len); if (str == QSE_NULL) return -1; } for (i = 0; i < len; i++) str[i] = QSE_AWK_TOUPPER (run->awk, str[i]); - r = qse_awk_makestrval (run, str, len); + r = qse_awk_rtx_makestrval (run, str, len); if (r == QSE_NULL) { if (a0->type != QSE_AWK_VAL_STR) QSE_AWK_FREE (run->awk, str); - /*qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM);*/ + /*qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM);*/ return -1; } @@ -970,7 +970,7 @@ static int __substitute (qse_awk_rtx_t* run, qse_long_t max_count) } else { - a0_ptr = qse_awk_valtostr ( + a0_ptr = qse_awk_rtx_valtostr ( run, a0, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &a0_len); if (a0_ptr == QSE_NULL) { @@ -987,7 +987,7 @@ static int __substitute (qse_awk_rtx_t* run, qse_long_t max_count) } else { - a1_ptr = qse_awk_valtostr ( + a1_ptr = qse_awk_rtx_valtostr ( run, a1, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &a1_len); if (a1_ptr == QSE_NULL) { @@ -1032,7 +1032,7 @@ static int __substitute (qse_awk_rtx_t* run, qse_long_t max_count) { FREE_A_PTRS (run->awk); /* a map is not allowed as the third parameter */ - qse_awk_setrunerrnum (run, QSE_AWK_EMAPNOTALLOWED); + qse_awk_rtx_seterrnum (run, QSE_AWK_EMAPNOTALLOWED); return -1; } @@ -1043,7 +1043,7 @@ static int __substitute (qse_awk_rtx_t* run, qse_long_t max_count) } else { - a2_ptr = qse_awk_valtostr ( + a2_ptr = qse_awk_rtx_valtostr ( run, *a2_ref, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &a2_len); if (a2_ptr == QSE_NULL) { @@ -1057,7 +1057,7 @@ static int __substitute (qse_awk_rtx_t* run, qse_long_t max_count) if (qse_str_init (&new, run->awk->mmgr, a2_len) == QSE_NULL) { FREE_A_PTRS (run->awk); - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return -1; } @@ -1156,7 +1156,7 @@ static int __substitute (qse_awk_rtx_t* run, qse_long_t max_count) { if (a2 == QSE_NULL) { - if (qse_awk_setrec (run, 0, + if (qse_awk_rtx_setrec (run, 0, QSE_STR_PTR(&new), QSE_STR_LEN(&new)) == -1) { qse_str_fini (&new); @@ -1168,7 +1168,7 @@ static int __substitute (qse_awk_rtx_t* run, qse_long_t max_count) { int n; - n = qse_awk_setrec ( + n = qse_awk_rtx_setrec ( run, (qse_size_t)((qse_awk_val_ref_t*)a2)->adr, QSE_STR_PTR(&new), QSE_STR_LEN(&new)); @@ -1181,19 +1181,19 @@ static int __substitute (qse_awk_rtx_t* run, qse_long_t max_count) } else { - v = qse_awk_makestrval (run, + v = qse_awk_rtx_makestrval (run, QSE_STR_PTR(&new), QSE_STR_LEN(&new)); if (v == QSE_NULL) { qse_str_fini (&new); FREE_A_PTRS (run->awk); - /*qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM);*/ + /*qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM);*/ return -1; } - qse_awk_refdownval (run, *a2_ref); + qse_awk_rtx_refdownval (run, *a2_ref); *a2_ref = v; - qse_awk_refupval (run, *a2_ref); + qse_awk_rtx_refupval (run, *a2_ref); } } @@ -1203,10 +1203,10 @@ static int __substitute (qse_awk_rtx_t* run, qse_long_t max_count) #undef FREE_A0_REX #undef FREE_A_PTRS - v = qse_awk_makeintval (run, sub_count); + v = qse_awk_rtx_makeintval (run, sub_count); if (v == QSE_NULL) { - /*qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM);*/ + /*qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM);*/ return -1; } @@ -1214,19 +1214,19 @@ static int __substitute (qse_awk_rtx_t* run, qse_long_t max_count) return 0; } -static int bfn_gsub ( +static int fnc_gsub ( qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) { return __substitute (run, 0); } -static int bfn_sub ( +static int fnc_sub ( qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) { return __substitute (run, 1); } -static int bfn_match ( +static int fnc_match ( qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) { qse_size_t nargs; @@ -1252,7 +1252,7 @@ static int bfn_match ( } else { - str0 = qse_awk_valtostr ( + str0 = qse_awk_rtx_valtostr ( run, a0, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &len0); if (str0 == QSE_NULL) return -1; } @@ -1270,7 +1270,7 @@ static int bfn_match ( } else { - str1 = qse_awk_valtostr ( + str1 = qse_awk_rtx_valtostr ( run, a1, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &len1); if (str1 == QSE_NULL) { @@ -1304,48 +1304,48 @@ static int bfn_match ( idx = (n == 0)? -1: (qse_long_t)(mat_ptr - str0); if (qse_awk_getoption(run->awk) & QSE_AWK_BASEONE) idx = idx + 1; - a0 = qse_awk_makeintval (run, idx); + a0 = qse_awk_rtx_makeintval (run, idx); if (a0 == QSE_NULL) { - /*qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM);*/ + /*qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM);*/ return -1; } - qse_awk_refupval (run, a0); + qse_awk_rtx_refupval (run, a0); - a1 = qse_awk_makeintval (run, + a1 = qse_awk_rtx_makeintval (run, ((n == 0)? (qse_long_t)-1: (qse_long_t)mat_len)); if (a1 == QSE_NULL) { - qse_awk_refdownval (run, a0); - /*qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM);*/ + qse_awk_rtx_refdownval (run, a0); + /*qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM);*/ return -1; } - qse_awk_refupval (run, a1); + qse_awk_rtx_refupval (run, a1); if (qse_awk_rtx_setglobal (run, QSE_AWK_GLOBAL_RSTART, a0) == -1) { - qse_awk_refdownval (run, a1); - qse_awk_refdownval (run, a0); + qse_awk_rtx_refdownval (run, a1); + qse_awk_rtx_refdownval (run, a0); return -1; } if (qse_awk_rtx_setglobal (run, QSE_AWK_GLOBAL_RLENGTH, a1) == -1) { - qse_awk_refdownval (run, a1); - qse_awk_refdownval (run, a0); + qse_awk_rtx_refdownval (run, a1); + qse_awk_rtx_refdownval (run, a0); return -1; } qse_awk_rtx_setretval (run, a0); - qse_awk_refdownval (run, a1); - qse_awk_refdownval (run, a0); + qse_awk_rtx_refdownval (run, a1); + qse_awk_rtx_refdownval (run, a0); return 0; } -static int bfn_sprintf ( +static int fnc_sprintf ( qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) { qse_size_t nargs; @@ -1359,13 +1359,13 @@ static int bfn_sprintf ( if (qse_str_init (&out, run->awk->mmgr, 256) == QSE_NULL) { - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return -1; } if (qse_str_init (&fbu, run->awk->mmgr, 256) == QSE_NULL) { qse_str_fini (&out); - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return -1; } @@ -1377,7 +1377,7 @@ static int bfn_sprintf ( } else { - cs0.ptr = qse_awk_valtostr ( + cs0.ptr = qse_awk_rtx_valtostr ( run, a0, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &cs0.len); if (cs0.ptr == QSE_NULL) { @@ -1397,13 +1397,13 @@ static int bfn_sprintf ( return -1; } - /*a0 = qse_awk_makestrval_nodup (run, x.ptr, x.len);*/ - a0 = qse_awk_makestrval (run, x.ptr, x.len); + /*a0 = qse_awk_rtx_makestrval_nodup (run, x.ptr, x.len);*/ + a0 = qse_awk_rtx_makestrval (run, x.ptr, x.len); if (a0 == QSE_NULL) { qse_str_fini (&fbu); qse_str_fini (&out); - /*qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM);*/ + /*qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM);*/ return -1; } diff --git a/qse/lib/awk/func.h b/qse/lib/awk/fnc.h similarity index 85% rename from qse/lib/awk/func.h rename to qse/lib/awk/fnc.h index 607a23fa..ee599041 100644 --- a/qse/lib/awk/func.h +++ b/qse/lib/awk/fnc.h @@ -16,12 +16,12 @@ limitations under the License. */ -#ifndef _QSE_LIB_AWK_FUNC_H_ -#define _QSE_LIB_AWK_FUNC_H_ +#ifndef _QSE_LIB_AWK_FNC_H_ +#define _QSE_LIB_AWK_FNC_H_ -typedef struct qse_awk_bfn_t qse_awk_bfn_t; +typedef struct qse_awk_fnc_t qse_awk_fnc_t; -struct qse_awk_bfn_t +struct qse_awk_fnc_t { struct { @@ -40,14 +40,14 @@ struct qse_awk_bfn_t int (*handler) (qse_awk_rtx_t*, const qse_char_t*, qse_size_t); - /*qse_awk_bfn_t* next;*/ + /*qse_awk_fnc_t* next;*/ }; #ifdef __cplusplus extern "C" { #endif -qse_awk_bfn_t* qse_awk_getbfn ( +qse_awk_fnc_t* qse_awk_getfnc ( qse_awk_t* awk, const qse_char_t* name, qse_size_t len); #ifdef __cplusplus diff --git a/qse/lib/awk/parse.c b/qse/lib/awk/parse.c index a2d9263f..c899c924 100644 --- a/qse/lib/awk/parse.c +++ b/qse/lib/awk/parse.c @@ -205,7 +205,7 @@ static qse_awk_nde_t* parse_hashidx ( qse_size_t line); static qse_awk_nde_t* parse_fncall ( qse_awk_t* awk, qse_char_t* name, qse_size_t name_len, - qse_awk_bfn_t* bfn, qse_size_t line); + qse_awk_fnc_t* fnc, qse_size_t line); static qse_awk_nde_t* parse_if (qse_awk_t* awk, qse_size_t line); static qse_awk_nde_t* parse_while (qse_awk_t* awk, qse_size_t line); static qse_awk_nde_t* parse_for (qse_awk_t* awk, qse_size_t line); @@ -560,10 +560,10 @@ static int parse (qse_awk_t* awk) qse_map_pair_t* p; qse_size_t buckno; - p = qse_map_getfirstpair (awk->parse.afns, &buckno); + p = qse_map_getfirstpair (awk->parse.funs, &buckno); while (p != QSE_NULL) { - if (qse_map_search (awk->tree.afns, + if (qse_map_search (awk->tree.funs, QSE_MAP_KPTR(p), QSE_MAP_KLEN(p)) == QSE_NULL) { /* TODO: set better error no & line */ @@ -574,7 +574,7 @@ static int parse (qse_awk_t* awk) EXIT_PARSE(-1); } - p = qse_map_getnextpair (awk->parse.afns, p, &buckno); + p = qse_map_getnextpair (awk->parse.funs, p, &buckno); } } @@ -834,7 +834,7 @@ static qse_awk_nde_t* parse_function (qse_awk_t* awk) qse_char_t* name_dup; qse_size_t name_len; qse_awk_nde_t* body; - qse_awk_afn_t* afn; + qse_awk_fun_t* fun; qse_size_t nargs, g; qse_map_pair_t* pair; @@ -854,13 +854,13 @@ static qse_awk_nde_t* parse_function (qse_awk_t* awk) name_len = QSE_STR_LEN(awk->token.name); /* check if it is a builtin function */ - if (qse_awk_getbfn (awk, name, name_len) != QSE_NULL) + if (qse_awk_getfnc (awk, name, name_len) != QSE_NULL) { SETERRARG (awk, QSE_AWK_EBFNRED, awk->token.line, name, name_len); return QSE_NULL; } - if (qse_map_search (awk->tree.afns, name, name_len) != QSE_NULL) + if (qse_map_search (awk->tree.funs, name, name_len) != QSE_NULL) { /* the function is defined previously */ SETERRARG ( @@ -1052,15 +1052,15 @@ static qse_awk_nde_t* parse_function (qse_awk_t* awk) /* remember the current function name so that the body parser * can know the name of the current function being parsed */ - awk->tree.cur_afn.ptr = name_dup; - awk->tree.cur_afn.len = name_len; + awk->tree.cur_fun.ptr = name_dup; + awk->tree.cur_fun.len = name_len; /* actual function body */ body = awk->parse.parse_block (awk, awk->token.prev.line, QSE_TRUE); /* clear the current function name remembered */ - awk->tree.cur_afn.ptr = QSE_NULL; - awk->tree.cur_afn.len = 0; + awk->tree.cur_fun.ptr = QSE_NULL; + awk->tree.cur_fun.len = 0; if (body == QSE_NULL) { @@ -1075,8 +1075,8 @@ static qse_awk_nde_t* parse_function (qse_awk_t* awk) /* parameter names are not required anymore. clear them */ qse_lda_clear (awk->parse.params); - afn = (qse_awk_afn_t*) QSE_AWK_ALLOC (awk, QSE_SIZEOF(qse_awk_afn_t)); - if (afn == QSE_NULL) + fun = (qse_awk_fun_t*) QSE_AWK_ALLOC (awk, QSE_SIZEOF(qse_awk_fun_t)); + if (fun == QSE_NULL) { QSE_AWK_FREE (awk, name_dup); qse_awk_clrpt (awk, body); @@ -1085,12 +1085,12 @@ static qse_awk_nde_t* parse_function (qse_awk_t* awk) return QSE_NULL; } - afn->name.ptr = QSE_NULL; /* function name is set below */ - afn->name.len = 0; - afn->nargs = nargs; - afn->body = body; + fun->name.ptr = QSE_NULL; /* function name is set below */ + fun->name.len = 0; + fun->nargs = nargs; + fun->body = body; - pair = qse_map_insert (awk->tree.afns, name_dup, name_len, afn, 0); + pair = qse_map_insert (awk->tree.funs, name_dup, name_len, fun, 0); if (pair == QSE_NULL) { /* if qse_map_insert() fails for other reasons than memory @@ -1098,7 +1098,7 @@ static qse_awk_nde_t* parse_function (qse_awk_t* awk) * functions are detected earlier in this function */ QSE_AWK_FREE (awk, name_dup); qse_awk_clrpt (awk, body); - QSE_AWK_FREE (awk, afn); + QSE_AWK_FREE (awk, fun); SETERRLIN (awk, QSE_AWK_ENOMEM, awk->token.line); return QSE_NULL; @@ -1106,12 +1106,12 @@ static qse_awk_nde_t* parse_function (qse_awk_t* awk) /* do some trick to save a string. make it back-point at the key part * of the pair */ - afn->name.ptr = QSE_MAP_KPTR(pair); - afn->name.len = QSE_MAP_KLEN(pair); + fun->name.ptr = QSE_MAP_KPTR(pair); + fun->name.len = QSE_MAP_KLEN(pair); QSE_AWK_FREE (awk, name_dup); - /* remove an undefined function call entry from the parse.afn table */ - qse_map_delete (awk->parse.afns, afn->name.ptr, name_len); + /* remove an undefined function call entry from the parse.fun table */ + qse_map_delete (awk->parse.funs, fun->name.ptr, name_len); return body; } @@ -1517,7 +1517,7 @@ static int add_global ( { #endif /* check if it conflict with a builtin function name */ - if (qse_awk_getbfn (awk, name, len) != QSE_NULL) + if (qse_awk_getfnc (awk, name, len) != QSE_NULL) { SETERRARG ( awk, QSE_AWK_EBFNRED, awk->token.line, @@ -1526,7 +1526,7 @@ static int add_global ( } /* check if it conflict with a function name */ - if (qse_map_search (awk->tree.afns, name, len) != QSE_NULL) + if (qse_map_search (awk->tree.funs, name, len) != QSE_NULL) { SETERRARG ( awk, QSE_AWK_EAFNRED, line, @@ -1536,7 +1536,7 @@ static int add_global ( /* check if it conflict with a function name * caught in the function call table */ - if (qse_map_search (awk->parse.afns, name, len) != QSE_NULL) + if (qse_map_search (awk->parse.funs, name, len) != QSE_NULL) { SETERRARG ( awk, QSE_AWK_EAFNRED, line, @@ -1706,7 +1706,7 @@ static qse_awk_t* collect_locals ( /* check if it conflict with a builtin function name * function f() { local length; } */ - if (qse_awk_getbfn (awk, local.ptr, local.len) != QSE_NULL) + if (qse_awk_getfnc (awk, local.ptr, local.len) != QSE_NULL) { SETERRARG ( awk, QSE_AWK_EBFNRED, awk->token.line, @@ -1716,14 +1716,14 @@ static qse_awk_t* collect_locals ( #if 0 /* check if it conflict with a function name */ - if (awk->tree.cur_afn.ptr != QSE_NULL) + if (awk->tree.cur_fun.ptr != QSE_NULL) { iscur = (qse_strxncmp ( - awk->tree.cur_afn.ptr, awk->tree.cur_afn.len, + awk->tree.cur_fun.ptr, awk->tree.cur_fun.len, local.ptr, local.len) == 0); } - if (iscur || qse_map_search (awk->tree.afns, local.ptr, local.len) != QSE_NULL) + if (iscur || qse_map_search (awk->tree.funs, local.ptr, local.len) != QSE_NULL) { SETERRARG ( awk, QSE_AWK_EAFNRED, awk->token.line, @@ -1733,7 +1733,7 @@ static qse_awk_t* collect_locals ( /* check if it conflict with a function name * caught in the function call table */ - if (qse_map_search (awk->parse.afns, + if (qse_map_search (awk->parse.funs, local.ptr, local.len) != QSE_NULL) { SETERRARG ( @@ -3247,7 +3247,7 @@ static qse_awk_nde_t* parse_primary_ident (qse_awk_t* awk, qse_size_t line) { qse_char_t* name_dup; qse_size_t name_len; - qse_awk_bfn_t* bfn; + qse_awk_fnc_t* fnc; qse_size_t idxa; QSE_ASSERT (MATCH(awk,TOKEN_IDENT)); @@ -3269,8 +3269,8 @@ static qse_awk_nde_t* parse_primary_ident (qse_awk_t* awk, qse_size_t line) } /* check if name_dup is an intrinsic function name */ - bfn = qse_awk_getbfn (awk, name_dup, name_len); - if (bfn != QSE_NULL) + fnc = qse_awk_getfnc (awk, name_dup, name_len); + if (fnc != QSE_NULL) { qse_awk_nde_t* nde; @@ -3283,7 +3283,7 @@ static qse_awk_nde_t* parse_primary_ident (qse_awk_t* awk, qse_size_t line) return QSE_NULL; } - nde = parse_fncall (awk, name_dup, name_len, bfn, line); + nde = parse_fncall (awk, name_dup, name_len, fnc, line); if (nde == QSE_NULL) QSE_AWK_FREE (awk, name_dup); return (qse_awk_nde_t*)nde; } @@ -3443,28 +3443,28 @@ static qse_awk_nde_t* parse_primary_ident (qse_awk_t* awk, qse_size_t line) /* the name should not conflict with a function name */ /* check if it is a builtin function */ - if (qse_awk_getbfn (awk, name_dup, name_len) != QSE_NULL) + if (qse_awk_getfnc (awk, name_dup, name_len) != QSE_NULL) { SETERRARG (awk, QSE_AWK_EBFNRED, line, name_dup, name_len); goto exit_func; } /* check if it is an AWK function */ - if (awk->tree.cur_afn.ptr != QSE_NULL) + if (awk->tree.cur_fun.ptr != QSE_NULL) { iscur = (qse_strxncmp ( - awk->tree.cur_afn.ptr, awk->tree.cur_afn.len, + awk->tree.cur_fun.ptr, awk->tree.cur_fun.len, name_dup, name_len) == 0); } - if (iscur || qse_map_search (awk->tree.afns, name_dup, name_len) != QSE_NULL) + if (iscur || qse_map_search (awk->tree.funs, name_dup, name_len) != QSE_NULL) { /* the function is defined previously */ SETERRARG (awk, QSE_AWK_EAFNRED, line, name_dup, name_len); goto exit_func; } - if (qse_map_search (awk->parse.afns, + if (qse_map_search (awk->parse.funs, name_dup, name_len) != QSE_NULL) { /* is it one of the function calls found so far? */ @@ -3626,21 +3626,21 @@ static qse_awk_nde_t* parse_hashidx ( qse_bool_t iscur = QSE_FALSE; /* check if it is a builtin function */ - if (qse_awk_getbfn (awk, name, name_len) != QSE_NULL) + if (qse_awk_getfnc (awk, name, name_len) != QSE_NULL) { SETERRARG (awk, QSE_AWK_EBFNRED, line, name, name_len); goto exit_func; } /* check if it is an AWK function */ - if (awk->tree.cur_afn.ptr != QSE_NULL) + if (awk->tree.cur_fun.ptr != QSE_NULL) { iscur = (qse_strxncmp ( - awk->tree.cur_afn.ptr, awk->tree.cur_afn.len, + awk->tree.cur_fun.ptr, awk->tree.cur_fun.len, name, name_len) == 0); } - if (iscur || qse_map_search (awk->tree.afns, name, name_len) != QSE_NULL) + if (iscur || qse_map_search (awk->tree.funs, name, name_len) != QSE_NULL) { /* the function is defined previously */ SETERRARG (awk, QSE_AWK_EAFNRED, line, name, name_len); @@ -3648,7 +3648,7 @@ static qse_awk_nde_t* parse_hashidx ( } if (qse_map_search ( - awk->parse.afns, name, name_len) != QSE_NULL) + awk->parse.funs, name, name_len) != QSE_NULL) { /* is it one of the function calls found so far? */ SETERRARG (awk, QSE_AWK_EAFNRED, line, name, name_len); @@ -3682,7 +3682,7 @@ exit_func: static qse_awk_nde_t* parse_fncall ( qse_awk_t* awk, qse_char_t* name, qse_size_t name_len, - qse_awk_bfn_t* bfn, qse_size_t line) + qse_awk_fnc_t* fnc, qse_size_t line) { qse_awk_nde_t* head, * curr, * nde; qse_awk_nde_call_t* call; @@ -3755,28 +3755,28 @@ static qse_awk_nde_t* parse_fncall ( return QSE_NULL; } - if (bfn != QSE_NULL) + if (fnc != QSE_NULL) { call->type = QSE_AWK_NDE_BFN; call->line = line; call->next = QSE_NULL; - /*call->what.bfn = bfn; */ - call->what.bfn.name.ptr = name; - call->what.bfn.name.len = name_len; + /*call->what.fnc = fnc; */ + call->what.fnc.name.ptr = name; + call->what.fnc.name.len = name_len; - /* NOTE: oname is the original as in the bfn table. + /* NOTE: oname is the original as in the fnc table. * it would not duplicated here and not freed in - * qse_awk_clrpt either. so qse_awk_delfunc between + * qse_awk_clrpt either. so qse_awk_delfnc between * qse_awk_parse and qse_awk_run may cause the program * to fail. */ - call->what.bfn.oname.ptr = bfn->name.ptr; - call->what.bfn.oname.len = bfn->name.len; + call->what.fnc.oname.ptr = fnc->name.ptr; + call->what.fnc.oname.len = fnc->name.len; - call->what.bfn.arg.min = bfn->arg.min; - call->what.bfn.arg.max = bfn->arg.max; - call->what.bfn.arg.spec = bfn->arg.spec; - call->what.bfn.handler = bfn->handler; + call->what.fnc.arg.min = fnc->arg.min; + call->what.fnc.arg.max = fnc->arg.max; + call->what.fnc.arg.spec = fnc->arg.spec; + call->what.fnc.handler = fnc->handler; call->args = head; call->nargs = nargs; @@ -3786,8 +3786,8 @@ static qse_awk_nde_t* parse_fncall ( call->type = QSE_AWK_NDE_AFN; call->line = line; call->next = QSE_NULL; - call->what.afn.name.ptr = name; - call->what.afn.name.len = name_len; + call->what.fun.name.ptr = name; + call->what.fun.name.len = name_len; call->args = head; call->nargs = nargs; @@ -3798,9 +3798,9 @@ static qse_awk_nde_t* parse_fncall ( { #endif - /* store a non-builtin function call into the parse.afns table */ + /* store a non-builtin function call into the parse.funs table */ if (qse_map_upsert ( - awk->parse.afns, name, name_len, + awk->parse.funs, name, name_len, &line, QSE_SIZEOF(line)) == QSE_NULL) { QSE_AWK_FREE (awk, call); @@ -5753,7 +5753,7 @@ static int deparse (qse_awk_t* awk) df.tmp_len = QSE_COUNTOF(tmp); df.ret = 0; - qse_map_walk (awk->tree.afns, deparse_func, &df); + qse_map_walk (awk->tree.funs, deparse_func, &df); if (df.ret == -1) { EXIT_DEPARSE (); @@ -5864,11 +5864,11 @@ static qse_map_walk_t deparse_func (qse_map_t* map, qse_map_pair_t* pair, void* { struct deparse_func_t* df = (struct deparse_func_t*)arg; /* CHECK: */ - qse_awk_afn_t* afn = (qse_awk_afn_t*)QSE_MAP_VPTR(pair); + qse_awk_fun_t* fun = (qse_awk_fun_t*)QSE_MAP_VPTR(pair); qse_size_t i, n; qse_cstr_t kw; - QSE_ASSERT (qse_strxncmp (QSE_MAP_KPTR(pair), QSE_MAP_KLEN(pair), afn->name.ptr, afn->name.len) == 0); + QSE_ASSERT (qse_strxncmp (QSE_MAP_KPTR(pair), QSE_MAP_KLEN(pair), fun->name.ptr, fun->name.len) == 0); #define PUT_C(x,c) \ if (put_char(x->awk,c)==-1) { \ @@ -5889,17 +5889,17 @@ static qse_map_walk_t deparse_func (qse_map_t* map, qse_map_pair_t* pair, void* PUT_SX (df, kw.ptr, kw.len); PUT_C (df, QSE_T(' ')); - PUT_SX (df, afn->name.ptr, afn->name.len); + PUT_SX (df, fun->name.ptr, fun->name.len); PUT_S (df, QSE_T(" (")); - for (i = 0; i < afn->nargs; ) + for (i = 0; i < fun->nargs; ) { n = qse_awk_longtostr (i++, 10, QSE_T("__p"), df->tmp, df->tmp_len); QSE_ASSERT (n != (qse_size_t)-1); PUT_SX (df, df->tmp, n); - if (i >= afn->nargs) break; + if (i >= fun->nargs) break; PUT_S (df, QSE_T(", ")); } @@ -5908,7 +5908,7 @@ static qse_map_walk_t deparse_func (qse_map_t* map, qse_map_pair_t* pair, void* PUT_C (df, QSE_T('\n')); - if (qse_awk_prnpt (df->awk, afn->body) == -1) return -1; + if (qse_awk_prnpt (df->awk, fun->body) == -1) return -1; if (df->awk->option & QSE_AWK_CRLF) { PUT_C (df, QSE_T('\r')); diff --git a/qse/lib/awk/rec.c b/qse/lib/awk/rec.c index e244167b..1e72d7d8 100644 --- a/qse/lib/awk/rec.c +++ b/qse/lib/awk/rec.c @@ -23,7 +23,7 @@ static int recomp_record_fields ( qse_awk_rtx_t* run, qse_size_t lv, const qse_char_t* str, qse_size_t len); -int qse_awk_setrec ( +int qse_awk_rtx_setrec ( qse_awk_rtx_t* run, qse_size_t idx, const qse_char_t* str, qse_size_t len) { @@ -34,37 +34,37 @@ int qse_awk_setrec ( if (str == QSE_STR_PTR(&run->inrec.line) && len == QSE_STR_LEN(&run->inrec.line)) { - if (qse_awk_clrrec (run, QSE_TRUE) == -1) return -1; + if (qse_awk_rtx_clrrec (run, QSE_TRUE) == -1) return -1; } else { - if (qse_awk_clrrec (run, QSE_FALSE) == -1) return -1; + if (qse_awk_rtx_clrrec (run, QSE_FALSE) == -1) return -1; if (qse_str_ncpy (&run->inrec.line, str, len) == (qse_size_t)-1) { - qse_awk_clrrec (run, QSE_FALSE); - qse_awk_setrunerror ( + qse_awk_rtx_clrrec (run, QSE_FALSE); + qse_awk_rtx_seterror ( run, QSE_AWK_ENOMEM, 0, QSE_NULL, 0); return -1; } } - v = qse_awk_makestrval (run, str, len); + v = qse_awk_rtx_makestrval (run, str, len); if (v == QSE_NULL) { - qse_awk_clrrec (run, QSE_FALSE); + qse_awk_rtx_clrrec (run, QSE_FALSE); return -1; } QSE_ASSERT (run->inrec.d0->type == QSE_AWK_VAL_NIL); /* d0 should be cleared before the next line is reached - * as it doesn't call qse_awk_refdownval on run->inrec.d0 */ + * as it doesn't call qse_awk_rtx_refdownval on run->inrec.d0 */ run->inrec.d0 = v; - qse_awk_refupval (run, v); + qse_awk_rtx_refupval (run, v); if (split_record (run) == -1) { - qse_awk_clrrec (run, QSE_FALSE); + qse_awk_rtx_clrrec (run, QSE_FALSE); return -1; } } @@ -72,23 +72,23 @@ int qse_awk_setrec ( { if (recomp_record_fields (run, idx, str, len) == -1) { - qse_awk_clrrec (run, QSE_FALSE); + qse_awk_rtx_clrrec (run, QSE_FALSE); return -1; } /* recompose $0 */ - v = qse_awk_makestrval (run, + v = qse_awk_rtx_makestrval (run, QSE_STR_PTR(&run->inrec.line), QSE_STR_LEN(&run->inrec.line)); if (v == QSE_NULL) { - qse_awk_clrrec (run, QSE_FALSE); + qse_awk_rtx_clrrec (run, QSE_FALSE); return -1; } - qse_awk_refdownval (run, run->inrec.d0); + qse_awk_rtx_refdownval (run, run->inrec.d0); run->inrec.d0 = v; - qse_awk_refupval (run, v); + qse_awk_rtx_refupval (run, v); } return 0; @@ -122,7 +122,7 @@ static int split_record (qse_awk_rtx_t* run) } else { - fs_ptr = qse_awk_valtostr ( + fs_ptr = qse_awk_rtx_valtostr ( run, fs, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &fs_len); if (fs_ptr == QSE_NULL) return -1; fs_free = fs_ptr; @@ -148,7 +148,7 @@ static int split_record (qse_awk_rtx_t* run) { if (fs_free != QSE_NULL) QSE_AWK_FREE (run->awk, fs_free); - qse_awk_setrunerror (run, errnum, 0, QSE_NULL, 0); + qse_awk_rtx_seterror (run, errnum, 0, QSE_NULL, 0); return -1; } } @@ -156,7 +156,7 @@ static int split_record (qse_awk_rtx_t* run) if (nflds == 0 && p == QSE_NULL && tok_len == 0) { /* there are no fields. it can just return here - * as qse_awk_clrrec has been called before this */ + * as qse_awk_rtx_clrrec has been called before this */ if (fs_free != QSE_NULL) QSE_AWK_FREE (run->awk, fs_free); return 0; } @@ -176,7 +176,7 @@ static int split_record (qse_awk_rtx_t* run) if (tmp == QSE_NULL) { if (fs_free != QSE_NULL) QSE_AWK_FREE (run->awk, fs_free); - qse_awk_setrunerror (run, QSE_AWK_ENOMEM, 0, QSE_NULL, 0); + qse_awk_rtx_seterror (run, QSE_AWK_ENOMEM, 0, QSE_NULL, 0); return -1; } @@ -205,7 +205,7 @@ static int split_record (qse_awk_rtx_t* run) { if (fs_free != QSE_NULL) QSE_AWK_FREE (run->awk, fs_free); - qse_awk_setrunerror (run, errnum, 0, QSE_NULL, 0); + qse_awk_rtx_seterror (run, errnum, 0, QSE_NULL, 0); return -1; } } @@ -215,7 +215,7 @@ static int split_record (qse_awk_rtx_t* run) run->inrec.flds[run->inrec.nflds].ptr = tok; run->inrec.flds[run->inrec.nflds].len = tok_len; run->inrec.flds[run->inrec.nflds].val = - qse_awk_makestrval (run, tok, tok_len); + qse_awk_rtx_makestrval (run, tok, tok_len); if (run->inrec.flds[run->inrec.nflds].val == QSE_NULL) { @@ -223,7 +223,7 @@ static int split_record (qse_awk_rtx_t* run) return -1; } - qse_awk_refupval (run, run->inrec.flds[run->inrec.nflds].val); + qse_awk_rtx_refupval (run, run->inrec.flds[run->inrec.nflds].val); run->inrec.nflds++; len = QSE_STR_LEN(&run->inrec.line) - @@ -233,29 +233,29 @@ static int split_record (qse_awk_rtx_t* run) if (fs_free != QSE_NULL) QSE_AWK_FREE (run->awk, fs_free); /* set the number of fields */ - v = qse_awk_makeintval (run, (qse_long_t)nflds); + v = qse_awk_rtx_makeintval (run, (qse_long_t)nflds); if (v == QSE_NULL) return -1; - qse_awk_refupval (run, v); + qse_awk_rtx_refupval (run, v); if (qse_awk_rtx_setglobal (run, QSE_AWK_GLOBAL_NF, v) == -1) { - qse_awk_refdownval (run, v); + qse_awk_rtx_refdownval (run, v); return -1; } - qse_awk_refdownval (run, v); + qse_awk_rtx_refdownval (run, v); QSE_ASSERT (nflds == run->inrec.nflds); return 0; } -int qse_awk_clrrec (qse_awk_rtx_t* run, qse_bool_t skip_inrec_line) +int qse_awk_rtx_clrrec (qse_awk_rtx_t* run, qse_bool_t skip_inrec_line) { qse_size_t i; int n = 0; if (run->inrec.d0 != qse_awk_val_nil) { - qse_awk_refdownval (run, run->inrec.d0); + qse_awk_rtx_refdownval (run, run->inrec.d0); run->inrec.d0 = qse_awk_val_nil; } @@ -266,7 +266,7 @@ int qse_awk_clrrec (qse_awk_rtx_t* run, qse_bool_t skip_inrec_line) for (i = 0; i < run->inrec.nflds; i++) { QSE_ASSERT (run->inrec.flds[i].val != QSE_NULL); - qse_awk_refdownval (run, run->inrec.flds[i].val); + qse_awk_rtx_refdownval (run, run->inrec.flds[i].val); } run->inrec.nflds = 0; @@ -315,7 +315,7 @@ static int recomp_record_fields ( QSE_SIZEOF(*run->inrec.flds) * max); if (tmp == QSE_NULL) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ENOMEM, 0, QSE_NULL, 0); return -1; } @@ -326,7 +326,7 @@ static int recomp_record_fields ( run->awk, QSE_SIZEOF(*run->inrec.flds) * max); if (tmp == QSE_NULL) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ENOMEM, 0, QSE_NULL, 0); return -1; } @@ -355,7 +355,7 @@ static int recomp_record_fields ( run->global.ofs.ptr, run->global.ofs.len) == (qse_size_t)-1) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ENOMEM, 0, QSE_NULL, 0); return -1; } @@ -373,20 +373,20 @@ static int recomp_record_fields ( if (qse_str_ncat ( &run->inrec.line, str, len) == (qse_size_t)-1) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ENOMEM, 0, QSE_NULL, 0); return -1; } - tmp = qse_awk_makestrval (run, str,len); + tmp = qse_awk_rtx_makestrval (run, str,len); if (tmp == QSE_NULL) return -1; if (i < nflds) - qse_awk_refdownval (run, run->inrec.flds[i].val); + qse_awk_rtx_refdownval (run, run->inrec.flds[i].val); else run->inrec.nflds++; run->inrec.flds[i].val = tmp; - qse_awk_refupval (run, tmp); + qse_awk_rtx_refupval (run, tmp); } else if (i >= nflds) { @@ -398,17 +398,17 @@ static int recomp_record_fields ( if (qse_str_cat ( &run->inrec.line, QSE_T("")) == (qse_size_t)-1) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ENOMEM, 0, QSE_NULL, 0); return -1; } - /* qse_awk_refdownval should not be called over + /* qse_awk_rtx_refdownval should not be called over * run->inrec.flds[i].val as it is not initialized * to any valid values */ - /*qse_awk_refdownval (run, run->inrec.flds[i].val);*/ + /*qse_awk_rtx_refdownval (run, run->inrec.flds[i].val);*/ run->inrec.flds[i].val = qse_awk_val_zls; - qse_awk_refupval (run, qse_awk_val_zls); + qse_awk_rtx_refupval (run, qse_awk_val_zls); run->inrec.nflds++; } else @@ -425,7 +425,7 @@ static int recomp_record_fields ( if (qse_str_ncat (&run->inrec.line, tmp->ptr, tmp->len) == (qse_size_t)-1) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ENOMEM, 0, QSE_NULL, 0); return -1; } @@ -437,16 +437,16 @@ static int recomp_record_fields ( if (((qse_awk_val_int_t*)v)->val != max) { - v = qse_awk_makeintval (run, (qse_long_t)max); + v = qse_awk_rtx_makeintval (run, (qse_long_t)max); if (v == QSE_NULL) return -1; - qse_awk_refupval (run, v); + qse_awk_rtx_refupval (run, v); if (qse_awk_rtx_setglobal (run, QSE_AWK_GLOBAL_NF, v) == -1) { - qse_awk_refdownval (run, v); + qse_awk_rtx_refdownval (run, v); return -1; } - qse_awk_refdownval (run, v); + qse_awk_rtx_refdownval (run, v); } return 0; diff --git a/qse/lib/awk/run.c b/qse/lib/awk/run.c index 3abfa9c8..76038778 100644 --- a/qse/lib/awk/run.c +++ b/qse/lib/awk/run.c @@ -183,15 +183,15 @@ static qse_awk_val_t* eval_incpre (qse_awk_rtx_t* run, qse_awk_nde_t* nde); static qse_awk_val_t* eval_incpst (qse_awk_rtx_t* run, qse_awk_nde_t* nde); static qse_awk_val_t* eval_cnd (qse_awk_rtx_t* run, qse_awk_nde_t* nde); -static qse_awk_val_t* eval_afn_intrinsic ( +static qse_awk_val_t* eval_fun_intrinsic ( qse_awk_rtx_t* run, qse_awk_nde_t* nde, void(*errhandler)(void*), void* eharg); -static qse_awk_val_t* eval_bfn (qse_awk_rtx_t* run, qse_awk_nde_t* nde); -static qse_awk_val_t* eval_afn (qse_awk_rtx_t* run, qse_awk_nde_t* nde); +static qse_awk_val_t* eval_fnc (qse_awk_rtx_t* run, qse_awk_nde_t* nde); +static qse_awk_val_t* eval_fun (qse_awk_rtx_t* run, qse_awk_nde_t* nde); static qse_awk_val_t* eval_call ( qse_awk_rtx_t* run, qse_awk_nde_t* nde, - const qse_char_t* bfn_arg_spec, qse_awk_afn_t* afn, + const qse_char_t* fnc_arg_spec, qse_awk_fun_t* fun, void(*errhandler)(void*), void* eharg); static int get_reference ( @@ -273,7 +273,7 @@ static int set_global ( errarg.ptr = var->id.name.ptr; errarg.len = var->id.name.len; - qse_awk_setrunerror (run, + qse_awk_rtx_seterror (run, QSE_AWK_EMAPTOSCALAR, var->line, &errarg, 1); } else @@ -283,7 +283,7 @@ static int set_global ( errarg.ptr = qse_awk_rtx_getglobalname ( run->awk, idx, &errarg.len); - qse_awk_setrunerror (run, + qse_awk_rtx_seterror (run, QSE_AWK_EMAPTOSCALAR, 0, &errarg, 1); } @@ -296,7 +296,7 @@ static int set_global ( idx != QSE_AWK_GLOBAL_ARGV) { /* TODO: better error code */ - qse_awk_setrunerrnum (run, QSE_AWK_ESCALARTOMAP); + qse_awk_rtx_seterrnum (run, QSE_AWK_ESCALARTOMAP); return -1; } @@ -305,7 +305,7 @@ static int set_global ( qse_char_t* convfmt_ptr; qse_size_t convfmt_len, i; - convfmt_ptr = qse_awk_valtostr (run, + convfmt_ptr = qse_awk_rtx_valtostr (run, val, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &convfmt_len); if (convfmt_ptr == QSE_NULL) return -1; @@ -314,7 +314,7 @@ static int set_global ( if (convfmt_ptr[i] == QSE_T('\0')) { QSE_AWK_FREE (run->awk, convfmt_ptr); - qse_awk_setrunerrnum (run, QSE_AWK_ECONVFMTCHR); + qse_awk_rtx_seterrnum (run, QSE_AWK_ECONVFMTCHR); return -1; } } @@ -330,7 +330,7 @@ static int set_global ( qse_long_t lv; qse_real_t rv; - n = qse_awk_valtonum (run, val, &lv, &rv); + n = qse_awk_rtx_valtonum (run, val, &lv, &rv); if (n == -1) return -1; if (n == 1) lv = (qse_long_t)rv; @@ -352,7 +352,7 @@ static int set_global ( * regular expression can not be an assigned value */ QSE_ASSERT (val->type != QSE_AWK_VAL_REX); - fs_ptr = qse_awk_valtostr ( + fs_ptr = qse_awk_rtx_valtostr ( run, val, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &fs_len); if (fs_ptr == QSE_NULL) return -1; } @@ -402,7 +402,7 @@ static int set_global ( qse_long_t lv; qse_real_t rv; - n = qse_awk_valtonum (run, val, &lv, &rv); + n = qse_awk_rtx_valtonum (run, val, &lv, &rv); if (n == -1) return -1; if (n == 1) lv = (qse_long_t)rv; @@ -422,7 +422,7 @@ static int set_global ( qse_long_t lv; qse_real_t rv; - n = qse_awk_valtonum (run, val, &lv, &rv); + n = qse_awk_rtx_valtonum (run, val, &lv, &rv); if (n == -1) return -1; if (n == 1) lv = (qse_long_t)rv; @@ -433,7 +433,7 @@ static int set_global ( qse_char_t* ofmt_ptr; qse_size_t ofmt_len, i; - ofmt_ptr = qse_awk_valtostr ( + ofmt_ptr = qse_awk_rtx_valtostr ( run, val, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &ofmt_len); if (ofmt_ptr == QSE_NULL) return -1; @@ -442,7 +442,7 @@ static int set_global ( if (ofmt_ptr[i] == QSE_T('\0')) { QSE_AWK_FREE (run->awk, ofmt_ptr); - qse_awk_setrunerrnum (run, QSE_AWK_EOFMTCHR); + qse_awk_rtx_seterrnum (run, QSE_AWK_EOFMTCHR); return -1; } } @@ -457,7 +457,7 @@ static int set_global ( qse_char_t* ofs_ptr; qse_size_t ofs_len; - ofs_ptr = qse_awk_valtostr ( + ofs_ptr = qse_awk_rtx_valtostr ( run, val, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &ofs_len); if (ofs_ptr == QSE_NULL) return -1; @@ -471,7 +471,7 @@ static int set_global ( qse_char_t* ors_ptr; qse_size_t ors_len; - ors_ptr = qse_awk_valtostr ( + ors_ptr = qse_awk_rtx_valtostr ( run, val, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &ors_len); if (ors_ptr == QSE_NULL) return -1; @@ -496,7 +496,7 @@ static int set_global ( * regular expression can not be an assigned value */ QSE_ASSERT (val->type != QSE_AWK_VAL_REX); - rs_ptr = qse_awk_valtostr ( + rs_ptr = qse_awk_rtx_valtostr ( run, val, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &rs_len); if (rs_ptr == QSE_NULL) return -1; } @@ -530,7 +530,7 @@ static int set_global ( qse_char_t* subsep_ptr; qse_size_t subsep_len; - subsep_ptr = qse_awk_valtostr ( + subsep_ptr = qse_awk_rtx_valtostr ( run, val, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &subsep_len); if (subsep_ptr == QSE_NULL) return -1; @@ -540,19 +540,19 @@ static int set_global ( run->global.subsep.len = subsep_len; } - qse_awk_refdownval (run, old); + qse_awk_rtx_refdownval (run, old); STACK_GLOBAL(run,idx) = val; - qse_awk_refupval (run, val); + qse_awk_rtx_refupval (run, val); return 0; } void qse_awk_rtx_setretval (qse_awk_rtx_t* run, qse_awk_val_t* val) { - qse_awk_refdownval (run, STACK_RETVAL(run)); + qse_awk_rtx_refdownval (run, STACK_RETVAL(run)); STACK_RETVAL(run) = val; /* should use the same trick as run_return */ - qse_awk_refupval (run, val); + qse_awk_rtx_refupval (run, val); } int qse_awk_rtx_setfilename ( @@ -564,13 +564,13 @@ int qse_awk_rtx_setfilename ( if (len == 0) tmp = qse_awk_val_zls; else { - tmp = qse_awk_makestrval (run, name, len); + tmp = qse_awk_rtx_makestrval (run, name, len); if (tmp == QSE_NULL) return -1; } - qse_awk_refupval (run, tmp); + qse_awk_rtx_refupval (run, tmp); n = qse_awk_rtx_setglobal (run, QSE_AWK_GLOBAL_FILENAME, tmp); - qse_awk_refdownval (run, tmp); + qse_awk_rtx_refdownval (run, tmp); return n; } @@ -586,13 +586,13 @@ int qse_awk_rtx_setofilename ( if (len == 0) tmp = qse_awk_val_zls; else { - tmp = qse_awk_makestrval (run, name, len); + tmp = qse_awk_rtx_makestrval (run, name, len); if (tmp == QSE_NULL) return -1; } - qse_awk_refupval (run, tmp); + qse_awk_rtx_refupval (run, tmp); n = qse_awk_rtx_setglobal (run, QSE_AWK_GLOBAL_OFILENAME, tmp); - qse_awk_refdownval (run, tmp); + qse_awk_rtx_refdownval (run, tmp); } else n = 0; @@ -640,7 +640,7 @@ int qse_awk_run (qse_awk_t* awk, awk->tree.begin == QSE_NULL && awk->tree.end == QSE_NULL && awk->tree.chain_size == 0 && - qse_map_getsize(awk->tree.afns) == 0) + qse_map_getsize(awk->tree.funs) == 0) { /* if not, deny the run */ qse_awk_seterror (awk, QSE_AWK_ENOPER, 0, QSE_NULL, 0); @@ -708,7 +708,7 @@ int qse_awk_run (qse_awk_t* awk, if (n == 0) { /* clear error if run is successful just in case */ - qse_awk_setrunerrnum (run, QSE_AWK_ENOERR); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOERR); } runcbs->on_end (run, @@ -739,13 +739,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_refdownval ( + qse_awk_rtx_refdownval ( *(qse_awk_rtx_t**)QSE_MAP_XTN(map), dptr); } static void same_namedval (qse_map_t* map, void* dptr, qse_size_t dlen) { - qse_awk_refdownval_nofree ( + qse_awk_rtx_refdownval_nofree ( *(qse_awk_rtx_t**)QSE_MAP_XTN(map), dptr); } @@ -943,10 +943,10 @@ static void deinit_run (qse_awk_rtx_t* run) qse_str_fini (&run->format.fmt); qse_str_fini (&run->format.out); - /* destroy input record. qse_awk_clrrec should be called + /* destroy input record. qse_awk_rtx_clrrec should be called * before the run stack has been destroyed because it may try * to change the value to QSE_AWK_GLOBAL_NF. */ - qse_awk_clrrec (run, QSE_FALSE); + qse_awk_rtx_clrrec (run, QSE_FALSE); if (run->inrec.flds != QSE_NULL) { QSE_AWK_FREE (run->awk, run->inrec.flds); @@ -974,23 +974,23 @@ static void deinit_run (qse_awk_rtx_t* run) while (run->fcache_count > 0) { qse_awk_val_ref_t* tmp = run->fcache[--run->fcache_count]; - qse_awk_freeval (run, (qse_awk_val_t*)tmp, QSE_FALSE); + qse_awk_rtx_freeval (run, (qse_awk_val_t*)tmp, QSE_FALSE); } /*while (run->scache32_count > 0) { qse_awk_val_str_t* tmp = run->scache32[--run->scache32_count]; - qse_awk_freeval (run, (qse_awk_val_t*)tmp, QSE_FALSE); + qse_awk_rtx_freeval (run, (qse_awk_val_t*)tmp, QSE_FALSE); } while (run->scache64_count > 0) { qse_awk_val_str_t* tmp = run->scache64[--run->scache64_count]; - qse_awk_freeval (run, (qse_awk_val_t*)tmp, QSE_FALSE); + qse_awk_rtx_freeval (run, (qse_awk_val_t*)tmp, QSE_FALSE); }*/ - qse_awk_freevalchunk (run, run->vmgr.ichunk); - qse_awk_freevalchunk (run, run->vmgr.rchunk); + qse_awk_rtx_freevalchunk (run, run->vmgr.ichunk); + qse_awk_rtx_freevalchunk (run, run->vmgr.rchunk); run->vmgr.ichunk = QSE_NULL; run->vmgr.rchunk = QSE_NULL; } @@ -1006,20 +1006,20 @@ static int build_runarg ( qse_char_t key[QSE_SIZEOF(qse_long_t)*8+2]; qse_size_t key_len; - v_argv = qse_awk_makemapval (run); + v_argv = qse_awk_rtx_makemapval (run); if (v_argv == QSE_NULL) return -1; - qse_awk_refupval (run, v_argv); + qse_awk_rtx_refupval (run, v_argv); if (runarg == QSE_NULL) argc = 0; else { for (argc = 0, p = runarg; p->ptr != QSE_NULL; argc++, p++) { - v_tmp = qse_awk_makestrval (run, p->ptr, p->len); + v_tmp = qse_awk_rtx_makestrval (run, p->ptr, p->len); if (v_tmp == QSE_NULL) { - qse_awk_refdownval (run, v_argv); + qse_awk_rtx_refdownval (run, v_argv); return -1; } @@ -1037,7 +1037,7 @@ static int build_runarg ( /* increment reference count of v_tmp in advance as if * it has successfully been assigned into ARGV. */ - qse_awk_refupval (run, v_tmp); + qse_awk_rtx_refupval (run, v_tmp); if (qse_map_upsert ( ((qse_awk_val_map_t*)v_argv)->map, @@ -1045,34 +1045,34 @@ static int build_runarg ( { /* if the assignment operation fails, decrements * the reference of v_tmp to free it */ - qse_awk_refdownval (run, v_tmp); + qse_awk_rtx_refdownval (run, v_tmp); /* the values previously assigned into the * map will be freeed when v_argv is freed */ - qse_awk_refdownval (run, v_argv); + qse_awk_rtx_refdownval (run, v_argv); - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return -1; } } } - v_argc = qse_awk_makeintval (run, (qse_long_t)argc); + v_argc = qse_awk_rtx_makeintval (run, (qse_long_t)argc); if (v_argc == QSE_NULL) { - qse_awk_refdownval (run, v_argv); + qse_awk_rtx_refdownval (run, v_argv); return -1; } - qse_awk_refupval (run, v_argc); + qse_awk_rtx_refupval (run, v_argc); QSE_ASSERT ( STACK_GLOBAL(run,QSE_AWK_GLOBAL_ARGC) == qse_awk_val_nil); if (qse_awk_rtx_setglobal (run, QSE_AWK_GLOBAL_ARGC, v_argc) == -1) { - qse_awk_refdownval (run, v_argc); - qse_awk_refdownval (run, v_argv); + qse_awk_rtx_refdownval (run, v_argc); + qse_awk_rtx_refdownval (run, v_argv); return -1; } @@ -1085,13 +1085,13 @@ static int build_runarg ( * 2. ARGC should be nil before build_runarg is called * If the restoration fails, nothing can salvage it. */ qse_awk_rtx_setglobal (run, QSE_AWK_GLOBAL_ARGC, qse_awk_val_nil); - qse_awk_refdownval (run, v_argc); - qse_awk_refdownval (run, v_argv); + qse_awk_rtx_refdownval (run, v_argc); + qse_awk_rtx_refdownval (run, v_argv); return -1; } - qse_awk_refdownval (run, v_argc); - qse_awk_refdownval (run, v_argv); + qse_awk_rtx_refdownval (run, v_argc); + qse_awk_rtx_refdownval (run, v_argv); *nargs = argc; return 0; @@ -1102,41 +1102,41 @@ static int update_fnr (qse_awk_rtx_t* run, qse_long_t fnr, qse_long_t nr) { qse_awk_val_t* tmp1, * tmp2; - tmp1 = qse_awk_makeintval (run, fnr); + tmp1 = qse_awk_rtx_makeintval (run, fnr); if (tmp1 == QSE_NULL) return -1; - qse_awk_refupval (run, tmp1); + qse_awk_rtx_refupval (run, tmp1); if (nr == fnr) tmp2 = tmp1; else { - tmp2 = qse_awk_makeintval (run, nr); + tmp2 = qse_awk_rtx_makeintval (run, nr); if (tmp2 == QSE_NULL) { - qse_awk_refdownval (run, tmp1); + qse_awk_rtx_refdownval (run, tmp1); return -1; } - qse_awk_refupval (run, tmp2); + qse_awk_rtx_refupval (run, tmp2); } if (qse_awk_rtx_setglobal (run, QSE_AWK_GLOBAL_FNR, tmp1) == -1) { - if (nr != fnr) qse_awk_refdownval (run, tmp2); - qse_awk_refdownval (run, tmp1); + if (nr != fnr) qse_awk_rtx_refdownval (run, tmp2); + qse_awk_rtx_refdownval (run, tmp1); return -1; } if (qse_awk_rtx_setglobal (run, QSE_AWK_GLOBAL_NR, tmp2) == -1) { - if (nr != fnr) qse_awk_refdownval (run, tmp2); - qse_awk_refdownval (run, tmp1); + if (nr != fnr) qse_awk_rtx_refdownval (run, tmp2); + qse_awk_rtx_refdownval (run, tmp1); return -1; } - if (nr != fnr) qse_awk_refdownval (run, tmp2); - qse_awk_refdownval (run, tmp1); + if (nr != fnr) qse_awk_rtx_refdownval (run, tmp2); + qse_awk_rtx_refdownval (run, tmp1); return 0; } @@ -1174,11 +1174,11 @@ static int set_globals_to_default (qse_awk_rtx_t* run) } else { - tmp = qse_awk_makestrval0 (run, gtab[i].str); + tmp = qse_awk_rtx_makestrval0 (run, gtab[i].str); if (tmp == QSE_NULL) return -1; } - qse_awk_refupval (run, tmp); + qse_awk_rtx_refupval (run, tmp); QSE_ASSERT ( STACK_GLOBAL(run,gtab[i].idx) == qse_awk_val_nil); @@ -1191,11 +1191,11 @@ static int set_globals_to_default (qse_awk_rtx_t* run) run, gtab[i].idx, qse_awk_val_nil); } - qse_awk_refdownval (run, tmp); + qse_awk_rtx_refdownval (run, tmp); return -1; } - qse_awk_refdownval (run, tmp); + qse_awk_rtx_refdownval (run, tmp); } return 0; @@ -1213,7 +1213,7 @@ static void capture_retval_on_exit (void* arg) data = (struct capture_retval_data_t*)arg; data->val = STACK_RETVAL(data->run); - qse_awk_refupval (data->run, data->val); + qse_awk_rtx_refupval (data->run, data->val); } static int prepare_globals (qse_awk_rtx_t* run, const qse_cstr_t* runarg) @@ -1231,7 +1231,7 @@ static int prepare_globals (qse_awk_rtx_t* run, const qse_cstr_t* runarg) --nglobals; if (__raw_push(run,qse_awk_val_nil) == -1) { - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); goto oops; } } @@ -1263,7 +1263,7 @@ static void refdown_globals (qse_awk_rtx_t* run, int pop) while (nglobals > 0) { --nglobals; - qse_awk_refdownval (run, STACK_GLOBAL(run,nglobals)); + qse_awk_rtx_refdownval (run, STACK_GLOBAL(run,nglobals)); if (pop) __raw_pop (run); else STACK_GLOBAL(run,nglobals) = qse_awk_val_nil; } @@ -1297,7 +1297,7 @@ oops: * it is ok to do so as the values pushed are * nils and binary numbers. */ run->stack_top = saved_stack_top; - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return -1; } @@ -1413,7 +1413,7 @@ static int run_bpae_loop (qse_awk_rtx_t* run) * for BEGIN/pattern action/END block execution.*/ nargs = (qse_size_t)STACK_NARGS(run); QSE_ASSERT (nargs == 0); - for (i = 0; i < nargs; i++) qse_awk_refdownval (run, STACK_ARG(run,i)); + for (i = 0; i < nargs; i++) qse_awk_rtx_refdownval (run, STACK_ARG(run,i)); /* get the return value in the current stack frame */ v = STACK_RETVAL(run); @@ -1425,7 +1425,7 @@ static int run_bpae_loop (qse_awk_rtx_t* run) } } /* end the life of the global return value */ - qse_awk_refdownval (run, v); + qse_awk_rtx_refdownval (run, v); return ret; } @@ -1485,8 +1485,8 @@ static int qse_awk_runfunc (qse_awk_rtx_t* run, const qse_char_t* name) nde.type = QSE_AWK_NDE_AFN; nde.line = 0; nde.next = QSE_NULL; - nde.what.afn.name.ptr = (qse_char_t*)name; - nde.what.afn.name.len = qse_strlen(name); + nde.what.fun.name.ptr = (qse_char_t*)name; + nde.what.fun.name.len = qse_strlen(name); nde.args = QSE_NULL; nde.nargs = 0; @@ -1515,7 +1515,7 @@ static int qse_awk_runfunc (qse_awk_rtx_t* run, const qse_char_t* name) refdown_globals (run, 0); run->stack_top = saved_stack_top; - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return -1; } @@ -1536,7 +1536,7 @@ static int qse_awk_runfunc (qse_awk_rtx_t* run, const qse_char_t* name) refdown_globals (run, 0); run->stack_top = saved_stack_top; - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return -1; } @@ -1552,7 +1552,7 @@ static int qse_awk_runfunc (qse_awk_rtx_t* run, const qse_char_t* name) crdata.run = run; crdata.val = QSE_NULL; - v = eval_afn_intrinsic (run, (qse_awk_nde_t*)&nde, + v = eval_fun_intrinsic (run, (qse_awk_nde_t*)&nde, capture_retval_on_exit, &crdata); if (v == QSE_NULL) { @@ -1572,19 +1572,19 @@ static int qse_awk_runfunc (qse_awk_rtx_t* run, const qse_char_t* name) } else ret = -1; - qse_awk_refdownval(run, crdata.val); + qse_awk_rtx_refdownval(run, crdata.val); } } else { - qse_awk_refupval (run, v); + qse_awk_rtx_refupval (run, v); if (run->cbs != QSE_NULL && run->cbs->on_exit != QSE_NULL) { run->cbs->on_exit (run, v, run->cbs->data); } - qse_awk_refdownval (run, v); + qse_awk_rtx_refdownval (run, v); } if (nde.args != QSE_NULL) qse_awk_clrpt (run->awk, nde.args); @@ -1658,7 +1658,7 @@ static int ____run_main_to_be_removed____ ( * the successful __raw_push. it is ok because * the values pushed so far are all qse_awk_val_nil */ run->stack_top = saved_stack_top; - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return -1; } } @@ -1696,8 +1696,8 @@ static int ____run_main_to_be_removed____ ( nde.type = QSE_AWK_NDE_AFN; nde.line = 0; nde.next = QSE_NULL; - nde.what.afn.name.ptr = (qse_char_t*)main; - nde.what.afn.name.len = qse_strlen(main); + nde.what.fun.name.ptr = (qse_char_t*)main; + nde.what.fun.name.len = qse_strlen(main); nde.args = QSE_NULL; nde.nargs = 0; @@ -1734,7 +1734,7 @@ static int ____run_main_to_be_removed____ ( refdown_globals (run, 0); run->stack_top = saved_stack_top; - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return -1; } @@ -1755,7 +1755,7 @@ static int ____run_main_to_be_removed____ ( refdown_globals (run, 0); run->stack_top = saved_stack_top; - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return -1; } @@ -1770,7 +1770,7 @@ static int ____run_main_to_be_removed____ ( crdata.run = run; crdata.val = QSE_NULL; - v = eval_afn_intrinsic (run, (qse_awk_nde_t*)&nde, + v = eval_fun_intrinsic (run, (qse_awk_nde_t*)&nde, capture_retval_on_exit, &crdata); if (v == QSE_NULL) { @@ -1790,19 +1790,19 @@ static int ____run_main_to_be_removed____ ( } else n = -1; - qse_awk_refdownval(run, crdata.val); + qse_awk_rtx_refdownval(run, crdata.val); } } else { - qse_awk_refupval (run, v); + qse_awk_rtx_refupval (run, v); if (run->cbs != QSE_NULL && run->cbs->on_exit != QSE_NULL) { run->cbs->on_exit (run, v, run->cbs->data); } - qse_awk_refdownval (run, v); + qse_awk_rtx_refdownval (run, v); } if (nde.args != QSE_NULL) qse_awk_clrpt (run->awk, nde.args); @@ -1824,7 +1824,7 @@ static int ____run_main_to_be_removed____ ( __raw_pop_times (run, run->awk->tree.nglobals);*/ refdown_globals (run, 1); - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return -1; } @@ -1835,7 +1835,7 @@ static int ____run_main_to_be_removed____ ( __raw_pop_times (run, run->awk->tree.nglobals); */ refdown_globals (run, 1); - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return -1; } @@ -1847,7 +1847,7 @@ static int ____run_main_to_be_removed____ ( __raw_pop_times (run, run->awk->tree.nglobals);*/ refdown_globals (run, 1); - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return -1; } @@ -1859,7 +1859,7 @@ static int ____run_main_to_be_removed____ ( __raw_pop_times (run, run->awk->tree.nglobals);*/ refdown_globals (run, 1); - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return -1; } @@ -1952,7 +1952,7 @@ static int ____run_main_to_be_removed____ ( QSE_ASSERT (nargs == 0); for (i = 0; i < nargs; i++) { - qse_awk_refdownval (run, STACK_ARG(run,i)); + qse_awk_rtx_refdownval (run, STACK_ARG(run,i)); } v = STACK_RETVAL(run); @@ -1964,7 +1964,7 @@ static int ____run_main_to_be_removed____ ( } } /* end the life of the global return value */ - qse_awk_refdownval (run, v); + qse_awk_rtx_refdownval (run, v); run->stack_top = (qse_size_t)run->stack[run->stack_base+1]; @@ -1977,7 +1977,7 @@ static int ____run_main_to_be_removed____ ( while (nglobals > 0) { --nglobals; - qse_awk_refdownval (run, STACK_GLOBAL(run,nglobals)); + qse_awk_rtx_refdownval (run, STACK_GLOBAL(run,nglobals)); __raw_pop (run); } @@ -2084,19 +2084,19 @@ static int run_pattern_block ( v1 = eval_expression (run, ptn); if (v1 == QSE_NULL) return -1; - qse_awk_refupval (run, v1); + qse_awk_rtx_refupval (run, v1); - if (qse_awk_valtobool (run, v1)) + if (qse_awk_rtx_valtobool (run, v1)) { run->active_block = blk; if (run_block (run, blk) == -1) { - qse_awk_refdownval (run, v1); + qse_awk_rtx_refdownval (run, v1); return -1; } } - qse_awk_refdownval (run, v1); + qse_awk_rtx_refdownval (run, v1); } else { @@ -2110,21 +2110,21 @@ static int run_pattern_block ( v1 = eval_expression (run, ptn); if (v1 == QSE_NULL) return -1; - qse_awk_refupval (run, v1); + qse_awk_rtx_refupval (run, v1); - if (qse_awk_valtobool (run, v1)) + if (qse_awk_rtx_valtobool (run, v1)) { run->active_block = blk; if (run_block (run, blk) == -1) { - qse_awk_refdownval (run, v1); + qse_awk_rtx_refdownval (run, v1); return -1; } run->pattern_range_state[block_no] = 1; } - qse_awk_refdownval (run, v1); + qse_awk_rtx_refdownval (run, v1); } else if (run->pattern_range_state[block_no] == 1) { @@ -2132,19 +2132,19 @@ static int run_pattern_block ( v2 = eval_expression (run, ptn->next); if (v2 == QSE_NULL) return -1; - qse_awk_refupval (run, v2); + qse_awk_rtx_refupval (run, v2); run->active_block = blk; if (run_block (run, blk) == -1) { - qse_awk_refdownval (run, v2); + qse_awk_rtx_refdownval (run, v2); return -1; } - if (qse_awk_valtobool (run, v2)) + if (qse_awk_rtx_valtobool (run, v2)) run->pattern_range_state[block_no] = 0; - qse_awk_refdownval (run, v2); + qse_awk_rtx_refdownval (run, v2); } } } @@ -2159,7 +2159,7 @@ static int run_block (qse_awk_rtx_t* run, qse_awk_nde_blk_t* nde) if (run->depth.max.block > 0 && run->depth.cur.block >= run->depth.max.block) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_EBLKNST, nde->line, QSE_NULL, 0); return -1;; } @@ -2181,7 +2181,7 @@ static int run_block0 (qse_awk_rtx_t* run, qse_awk_nde_blk_t* nde) if (nde == QSE_NULL) { /* blockless pattern - execute print $0*/ - qse_awk_refupval (run, run->inrec.d0); + qse_awk_rtx_refupval (run, run->inrec.d0); n = qse_awk_writeeio_str (run, QSE_AWK_OUT_CONSOLE, QSE_T(""), @@ -2189,7 +2189,7 @@ static int run_block0 (qse_awk_rtx_t* run, qse_awk_nde_blk_t* nde) QSE_STR_LEN(&run->inrec.line)); if (n == -1) { - qse_awk_refdownval (run, run->inrec.d0); + qse_awk_rtx_refdownval (run, run->inrec.d0); /* adjust the error line */ run->errlin = nde->line; @@ -2201,14 +2201,14 @@ static int run_block0 (qse_awk_rtx_t* run, qse_awk_nde_blk_t* nde) run->global.ors.ptr, run->global.ors.len); if (n == -1) { - qse_awk_refdownval (run, run->inrec.d0); + qse_awk_rtx_refdownval (run, run->inrec.d0); /* adjust the error line */ run->errlin = nde->line; return -1; } - qse_awk_refdownval (run, run->inrec.d0); + qse_awk_rtx_refdownval (run, run->inrec.d0); return 0; } @@ -2261,7 +2261,7 @@ static int run_block0 (qse_awk_rtx_t* run, qse_awk_nde_blk_t* nde) while (nlocals > 0) { --nlocals; - qse_awk_refdownval (run, STACK_LOCAL(run,nlocals)); + qse_awk_rtx_refdownval (run, STACK_LOCAL(run,nlocals)); __raw_pop (run); } @@ -2403,8 +2403,8 @@ static int run_statement (qse_awk_rtx_t* run, qse_awk_nde_t* nde) if (v == QSE_NULL) return -1; /* destroy the value if not referenced */ - qse_awk_refupval (run, v); - qse_awk_refdownval (run, v); + qse_awk_rtx_refupval (run, v); + qse_awk_rtx_refdownval (run, v); break; } @@ -2426,8 +2426,8 @@ static int run_if (qse_awk_rtx_t* run, qse_awk_nde_if_t* nde) test = eval_expression (run, nde->test); if (test == QSE_NULL) return -1; - qse_awk_refupval (run, test); - if (qse_awk_valtobool (run, test)) + qse_awk_rtx_refupval (run, test); + if (qse_awk_rtx_valtobool (run, test)) { n = run_statement (run, nde->then_part); } @@ -2436,7 +2436,7 @@ static int run_if (qse_awk_rtx_t* run, qse_awk_nde_if_t* nde) n = run_statement (run, nde->else_part); } - qse_awk_refdownval (run, test); /* TODO: is this correct?*/ + qse_awk_rtx_refdownval (run, test); /* TODO: is this correct?*/ return n; } @@ -2457,23 +2457,23 @@ static int run_while (qse_awk_rtx_t* run, qse_awk_nde_while_t* nde) test = eval_expression (run, nde->test); if (test == QSE_NULL) return -1; - qse_awk_refupval (run, test); + qse_awk_rtx_refupval (run, test); - if (qse_awk_valtobool (run, test)) + if (qse_awk_rtx_valtobool (run, test)) { if (run_statement(run,nde->body) == -1) { - qse_awk_refdownval (run, test); + qse_awk_rtx_refdownval (run, test); return -1; } } else { - qse_awk_refdownval (run, test); + qse_awk_rtx_refdownval (run, test); break; } - qse_awk_refdownval (run, test); + qse_awk_rtx_refdownval (run, test); if (run->exit_level == EXIT_BREAK) { @@ -2514,15 +2514,15 @@ static int run_while (qse_awk_rtx_t* run, qse_awk_nde_while_t* nde) test = eval_expression (run, nde->test); if (test == QSE_NULL) return -1; - qse_awk_refupval (run, test); + qse_awk_rtx_refupval (run, test); - if (!qse_awk_valtobool (run, test)) + if (!qse_awk_rtx_valtobool (run, test)) { - qse_awk_refdownval (run, test); + qse_awk_rtx_refdownval (run, test); break; } - qse_awk_refdownval (run, test); + qse_awk_rtx_refdownval (run, test); } while (1); } @@ -2542,8 +2542,8 @@ static int run_for (qse_awk_rtx_t* run, qse_awk_nde_for_t* nde) val = eval_expression(run,nde->init); if (val == QSE_NULL) return -1; - qse_awk_refupval (run, val); - qse_awk_refdownval (run, val); + qse_awk_rtx_refupval (run, val); + qse_awk_rtx_refdownval (run, val); } while (1) @@ -2560,22 +2560,22 @@ static int run_for (qse_awk_rtx_t* run, qse_awk_nde_for_t* nde) test = eval_expression (run, nde->test); if (test == QSE_NULL) return -1; - qse_awk_refupval (run, test); - if (qse_awk_valtobool (run, test)) + qse_awk_rtx_refupval (run, test); + if (qse_awk_rtx_valtobool (run, test)) { if (run_statement(run,nde->body) == -1) { - qse_awk_refdownval (run, test); + qse_awk_rtx_refdownval (run, test); return -1; } } else { - qse_awk_refdownval (run, test); + qse_awk_rtx_refdownval (run, test); break; } - qse_awk_refdownval (run, test); + qse_awk_rtx_refdownval (run, test); } else { @@ -2601,8 +2601,8 @@ static int run_for (qse_awk_rtx_t* run, qse_awk_nde_for_t* nde) val = eval_expression (run, nde->incr); if (val == QSE_NULL) return -1; - qse_awk_refupval (run, val); - qse_awk_refdownval (run, val); + qse_awk_rtx_refupval (run, val); + qse_awk_rtx_refdownval (run, val); } } @@ -2623,7 +2623,7 @@ static qse_map_walk_t walk_foreach ( struct foreach_walker_t* w = (struct foreach_walker_t*)arg; qse_awk_val_t* str; - str = (qse_awk_val_t*) qse_awk_makestrval ( + str = (qse_awk_val_t*) qse_awk_rtx_makestrval ( w->run, QSE_MAP_KPTR(pair), QSE_MAP_KLEN(pair)); if (str == QSE_NULL) { @@ -2633,22 +2633,22 @@ static qse_map_walk_t walk_foreach ( return QSE_MAP_WALK_STOP; } - qse_awk_refupval (w->run, str); + qse_awk_rtx_refupval (w->run, str); if (do_assignment (w->run, w->var, str) == QSE_NULL) { - qse_awk_refdownval (w->run, str); + qse_awk_rtx_refdownval (w->run, str); w->ret = -1; return QSE_MAP_WALK_STOP; } if (run_statement (w->run, w->body) == -1) { - qse_awk_refdownval (w->run, str); + qse_awk_rtx_refdownval (w->run, str); w->ret = -1; return QSE_MAP_WALK_STOP; } - qse_awk_refdownval (w->run, str); + qse_awk_rtx_refdownval (w->run, str); return QSE_MAP_WALK_FORWARD; } @@ -2671,12 +2671,12 @@ static int run_foreach (qse_awk_rtx_t* run, qse_awk_nde_foreach_t* nde) rv = eval_expression (run, test->right); if (rv == QSE_NULL) return -1; - qse_awk_refupval (run, rv); + qse_awk_rtx_refupval (run, rv); if (rv->type != QSE_AWK_VAL_MAP) { - qse_awk_refdownval (run, rv); + qse_awk_rtx_refdownval (run, rv); - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ENOTMAPIN, test->right->line, QSE_NULL, 0); return -1; } @@ -2688,7 +2688,7 @@ static int run_foreach (qse_awk_rtx_t* run, qse_awk_nde_foreach_t* nde) walker.ret = 0; qse_map_walk (map, walk_foreach, &walker); - qse_awk_refdownval (run, rv); + qse_awk_rtx_refdownval (run, rv); return walker.ret; } @@ -2722,19 +2722,19 @@ static int run_return (qse_awk_rtx_t* run, qse_awk_nde_return_t* nde) if (val->type == QSE_AWK_VAL_MAP) { /* cannot return a map */ - qse_awk_refupval (run, val); - qse_awk_refdownval (run, val); + qse_awk_rtx_refupval (run, val); + qse_awk_rtx_refdownval (run, val); - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_EMAPNOTALLOWED, nde->line, QSE_NULL, 0); return -1; } } - qse_awk_refdownval (run, STACK_RETVAL(run)); + qse_awk_rtx_refdownval (run, STACK_RETVAL(run)); STACK_RETVAL(run) = val; - qse_awk_refupval (run, val); /* see eval_call for the trick */ + qse_awk_rtx_refupval (run, val); /* see eval_call for the trick */ } run->exit_level = EXIT_FUNCTION; @@ -2754,10 +2754,10 @@ static int run_exit (qse_awk_rtx_t* run, qse_awk_nde_exit_t* nde) val = eval_expression (run, nde->val); if (val == QSE_NULL) return -1; - qse_awk_refdownval (run, STACK_RETVAL_GLOBAL(run)); + qse_awk_rtx_refdownval (run, STACK_RETVAL_GLOBAL(run)); STACK_RETVAL_GLOBAL(run) = val; /* global return value */ - qse_awk_refupval (run, val); + qse_awk_rtx_refupval (run, val); } run->exit_level = EXIT_GLOBAL; @@ -2771,13 +2771,13 @@ static int run_next (qse_awk_rtx_t* run, qse_awk_nde_next_t* nde) * check that explicitly */ if (run->active_block == (qse_awk_nde_blk_t*)run->awk->tree.begin) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ERNEXTBEG, nde->line, QSE_NULL, 0); return -1; } else if (run->active_block == (qse_awk_nde_blk_t*)run->awk->tree.end) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ERNEXTEND, nde->line, QSE_NULL, 0); return -1; } @@ -2793,13 +2793,13 @@ static int run_nextinfile (qse_awk_rtx_t* run, qse_awk_nde_nextfile_t* nde) /* normal nextfile statement */ if (run->active_block == (qse_awk_nde_blk_t*)run->awk->tree.begin) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ERNEXTFBEG, nde->line, QSE_NULL, 0); return -1; } else if (run->active_block == (qse_awk_nde_blk_t*)run->awk->tree.end) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ERNEXTFEND, nde->line, QSE_NULL, 0); return -1; } @@ -2889,7 +2889,7 @@ static int run_delete (qse_awk_rtx_t* run, qse_awk_nde_delete_t* nde) /* value not set for the named variable. * create a map and assign it to the variable */ - tmp = qse_awk_makemapval (run); + tmp = qse_awk_rtx_makemapval (run); if (tmp == QSE_NULL) { /* adjust error line */ @@ -2901,10 +2901,10 @@ static int run_delete (qse_awk_rtx_t* run, qse_awk_nde_delete_t* nde) var->id.name.ptr, var->id.name.len, tmp, 0); if (pair == QSE_NULL) { - qse_awk_refupval (run, tmp); - qse_awk_refdownval (run, tmp); + qse_awk_rtx_refupval (run, tmp); + qse_awk_rtx_refdownval (run, tmp); - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ENOMEM, var->line, QSE_NULL, 0); return -1; @@ -2912,7 +2912,7 @@ static int run_delete (qse_awk_rtx_t* run, qse_awk_nde_delete_t* nde) /* as this is the assignment, it needs to update * the reference count of the target value. */ - qse_awk_refupval (run, tmp); + qse_awk_rtx_refupval (run, tmp); } else { @@ -2929,7 +2929,7 @@ static int run_delete (qse_awk_rtx_t* run, qse_awk_nde_delete_t* nde) errarg.ptr = var->id.name.ptr; errarg.len = var->id.name.len; - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ENOTDEL, var->line, &errarg, 1); return -1; @@ -2948,22 +2948,22 @@ static int run_delete (qse_awk_rtx_t* run, qse_awk_nde_delete_t* nde) idx = eval_expression (run, var->idx); if (idx == QSE_NULL) return -1; - qse_awk_refupval (run, idx); + qse_awk_rtx_refupval (run, idx); /* try with a fixed-size buffer */ keylen = QSE_COUNTOF(buf); - key = qse_awk_valtostr ( + key = qse_awk_rtx_valtostr ( run, idx, QSE_AWK_VALTOSTR_FIXED, (qse_str_t*)buf, &keylen); if (key == QSE_NULL) { /* if it doesn't work, switch to dynamic mode */ - key = qse_awk_valtostr ( + key = qse_awk_rtx_valtostr ( run, idx, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &keylen); } - qse_awk_refdownval (run, idx); + qse_awk_rtx_refdownval (run, idx); if (key == QSE_NULL) { @@ -3007,7 +3007,7 @@ static int run_delete (qse_awk_rtx_t* run, qse_awk_nde_delete_t* nde) /* value not set. * create a map and assign it to the variable */ - tmp = qse_awk_makemapval (run); + tmp = qse_awk_rtx_makemapval (run); if (tmp == QSE_NULL) { /* adjust error line */ @@ -3023,8 +3023,8 @@ static int run_delete (qse_awk_rtx_t* run, qse_awk_nde_delete_t* nde) if (qse_awk_rtx_setglobal ( run, (int)var->id.idxa, tmp) == -1) { - qse_awk_refupval (run, tmp); - qse_awk_refdownval (run, tmp); + qse_awk_rtx_refupval (run, tmp); + qse_awk_rtx_refdownval (run, tmp); run->errlin = var->line; return -1; @@ -3034,12 +3034,12 @@ static int run_delete (qse_awk_rtx_t* run, qse_awk_nde_delete_t* nde) var->type == QSE_AWK_NDE_LOCALIDX) { STACK_LOCAL(run,var->id.idxa) = tmp; - qse_awk_refupval (run, tmp); + qse_awk_rtx_refupval (run, tmp); } else { STACK_ARG(run,var->id.idxa) = tmp; - qse_awk_refupval (run, tmp); + qse_awk_rtx_refupval (run, tmp); } } else @@ -3053,7 +3053,7 @@ static int run_delete (qse_awk_rtx_t* run, qse_awk_nde_delete_t* nde) errarg.ptr = var->id.name.ptr; errarg.len = var->id.name.len; - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ENOTDEL, var->line, &errarg, 1); return -1; @@ -3074,22 +3074,22 @@ static int run_delete (qse_awk_rtx_t* run, qse_awk_nde_delete_t* nde) idx = eval_expression (run, var->idx); if (idx == QSE_NULL) return -1; - qse_awk_refupval (run, idx); + qse_awk_rtx_refupval (run, idx); /* try with a fixed-size buffer */ keylen = QSE_COUNTOF(buf); - key = qse_awk_valtostr ( + key = qse_awk_rtx_valtostr ( run, idx, QSE_AWK_VALTOSTR_FIXED, (qse_str_t*)buf, &keylen); if (key == QSE_NULL) { /* if it doesn't work, switch to dynamic mode */ - key = qse_awk_valtostr ( + key = qse_awk_rtx_valtostr ( run, idx, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &keylen); } - qse_awk_refdownval (run, idx); + qse_awk_rtx_refdownval (run, idx); if (key == QSE_NULL) { @@ -3111,7 +3111,7 @@ static int run_delete (qse_awk_rtx_t* run, qse_awk_nde_delete_t* nde) !"should never happen - wrong target for delete", "the delete statement cannot be called with other nodes than the variables such as a named variable, a named indexed variable, etc"); - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ERDELETE, var->line, QSE_NULL, 0); return -1; } @@ -3151,7 +3151,7 @@ static int run_reset (qse_awk_rtx_t* run, qse_awk_nde_reset_t* nde) if (val->type != QSE_AWK_VAL_NIL) { - qse_awk_refdownval (run, val); + qse_awk_rtx_refdownval (run, val); if (var->type == QSE_AWK_NDE_GLOBAL) STACK_GLOBAL(run,var->id.idxa) = qse_awk_val_nil; else if (var->type == QSE_AWK_NDE_LOCAL) @@ -3166,7 +3166,7 @@ static int run_reset (qse_awk_rtx_t* run, qse_awk_nde_reset_t* nde) !"should never happen - wrong target for reset", "the reset statement can only be called with plain variables"); - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ERRESET, var->line, QSE_NULL, 0); return -1; } @@ -3197,24 +3197,24 @@ static int run_print (qse_awk_rtx_t* run, qse_awk_nde_print_t* nde) v = eval_expression (run, nde->out); if (v == QSE_NULL) return -1; - qse_awk_refupval (run, v); - out = qse_awk_valtostr ( + qse_awk_rtx_refupval (run, v); + out = qse_awk_rtx_valtostr ( run, v, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &len); if (out == QSE_NULL) { - qse_awk_refdownval (run, v); + qse_awk_rtx_refdownval (run, v); /* change the error line */ run->errlin = nde->line; return -1; } - qse_awk_refdownval (run, v); + qse_awk_rtx_refdownval (run, v); if (len <= 0) { /* the destination name is empty */ QSE_AWK_FREE (run->awk, out); - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_EIONMEM, nde->line, QSE_NULL, 0); return -1; } @@ -3227,7 +3227,7 @@ static int run_print (qse_awk_rtx_t* run, qse_awk_nde_print_t* nde) { /* if so, it skips writing */ QSE_AWK_FREE (run->awk, out); - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_EIONMNL, nde->line, QSE_NULL, 0); return -1; @@ -3297,7 +3297,7 @@ static int run_print (qse_awk_rtx_t* run, qse_awk_nde_print_t* nde) QSE_AWK_FREE (run->awk, out); return -1; } - qse_awk_refupval (run, v); + qse_awk_rtx_refupval (run, v); n = qse_awk_writeeio_val (run, nde->out_type, dst, v); if (n <= -1 /*&& run->errnum != QSE_AWK_EIOIMPL*/) @@ -3305,13 +3305,13 @@ static int run_print (qse_awk_rtx_t* run, qse_awk_nde_print_t* nde) if (out != QSE_NULL) QSE_AWK_FREE (run->awk, out); - qse_awk_refdownval (run, v); + qse_awk_rtx_refdownval (run, v); /* adjust the error line */ run->errlin = nde->line; return -1; } - qse_awk_refdownval (run, v); + qse_awk_rtx_refdownval (run, v); } } @@ -3356,24 +3356,24 @@ static int run_printf (qse_awk_rtx_t* run, qse_awk_nde_print_t* nde) v = eval_expression (run, nde->out); if (v == QSE_NULL) return -1; - qse_awk_refupval (run, v); - out = qse_awk_valtostr ( + qse_awk_rtx_refupval (run, v); + out = qse_awk_rtx_valtostr ( run, v, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &len); if (out == QSE_NULL) { - qse_awk_refdownval (run, v); + qse_awk_rtx_refdownval (run, v); /* change the error line */ run->errlin = nde->line; return -1; } - qse_awk_refdownval (run, v); + qse_awk_rtx_refdownval (run, v); if (len <= 0) { /* the output destination name is empty. */ QSE_AWK_FREE (run->awk, out); - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_EIONMEM, nde->line, QSE_NULL, 0); return -1; } @@ -3385,7 +3385,7 @@ static int run_printf (qse_awk_rtx_t* run, qse_awk_nde_print_t* nde) /* the output destination name contains a null * character. */ QSE_AWK_FREE (run->awk, out); - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_EIONMNL, nde->line, QSE_NULL, 0); return -1; @@ -3416,7 +3416,7 @@ static int run_printf (qse_awk_rtx_t* run, qse_awk_nde_print_t* nde) return -1; } - qse_awk_refupval (run, v); + qse_awk_rtx_refupval (run, v); if (v->type != QSE_AWK_VAL_STR) { /* the remaining arguments are ignored as the format cannot @@ -3425,7 +3425,7 @@ static int run_printf (qse_awk_rtx_t* run, qse_awk_nde_print_t* nde) if (n <= -1 /*&& run->errnum != QSE_AWK_EIOIMPL*/) { if (out != QSE_NULL) QSE_AWK_FREE (run->awk, out); - qse_awk_refdownval (run, v); + qse_awk_rtx_refdownval (run, v); /* change the error line */ run->errlin = nde->line; @@ -3442,14 +3442,14 @@ static int run_printf (qse_awk_rtx_t* run, qse_awk_nde_print_t* nde) head->next) == -1) { if (out != QSE_NULL) QSE_AWK_FREE (run->awk, out); - qse_awk_refdownval (run, v); + qse_awk_rtx_refdownval (run, v); /* adjust the error line */ run->errlin = nde->line; return -1; } } - qse_awk_refdownval (run, v); + qse_awk_rtx_refdownval (run, v); if (out != QSE_NULL) QSE_AWK_FREE (run->awk, out); @@ -3497,7 +3497,7 @@ static qse_awk_val_t* eval_expression (qse_awk_rtx_t* run, qse_awk_nde_t* nde) if (v->type == QSE_AWK_VAL_REX) { - qse_awk_refupval (run, v); + qse_awk_rtx_refupval (run, v); if (run->inrec.d0->type == QSE_AWK_VAL_NIL) { @@ -3522,21 +3522,21 @@ static qse_awk_val_t* eval_expression (qse_awk_rtx_t* run, qse_awk_nde_t* nde) if (n == -1) { - qse_awk_refdownval (run, v); + qse_awk_rtx_refdownval (run, v); /* matchrex should never set the error number * whose message contains a formatting * character. otherwise, the following way of * setting the error information may not work */ - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, errnum, nde->line, QSE_NULL, 0); return QSE_NULL; } } - qse_awk_refdownval (run, v); + qse_awk_rtx_refdownval (run, v); - v = qse_awk_makeintval (run, (n != 0)); + v = qse_awk_rtx_makeintval (run, (n != 0)); if (v == QSE_NULL) { /* adjust error line */ @@ -3561,8 +3561,8 @@ static qse_awk_val_t* eval_expression0 (qse_awk_rtx_t* run, qse_awk_nde_t* nde) eval_incpre, eval_incpst, eval_cnd, - eval_bfn, - eval_afn, + eval_fnc, + eval_fun, eval_int, eval_real, eval_str, @@ -3589,8 +3589,8 @@ static qse_awk_val_t* eval_expression0 (qse_awk_rtx_t* run, qse_awk_nde_t* nde) if (v != QSE_NULL && run->exit_level >= EXIT_GLOBAL) { - qse_awk_refupval (run, v); - qse_awk_refdownval (run, v); + qse_awk_rtx_refupval (run, v); + qse_awk_rtx_refdownval (run, v); /* returns QSE_NULL as if an error occurred but * clears the error number. run_main will @@ -3608,7 +3608,7 @@ static qse_awk_val_t* eval_group (qse_awk_rtx_t* run, qse_awk_nde_t* nde) /* eval_binop_in evaluates the QSE_AWK_NDE_GRP specially. * so this function should never be reached. */ QSE_ASSERT (!"should never happen - NDE_GRP only for in"); - qse_awk_setrunerror (run, QSE_AWK_EINTERN, nde->line, QSE_NULL, 0); + qse_awk_rtx_seterror (run, QSE_AWK_EINTERN, nde->line, QSE_NULL, 0); return QSE_NULL; } @@ -3624,7 +3624,7 @@ static qse_awk_val_t* eval_assignment (qse_awk_rtx_t* run, qse_awk_nde_t* nde) val = eval_expression (run, ass->right); if (val == QSE_NULL) return QSE_NULL; - qse_awk_refupval (run, val); + qse_awk_rtx_refupval (run, val); if (ass->opcode != QSE_AWK_ASSOP_NONE) { @@ -3650,11 +3650,11 @@ static qse_awk_val_t* eval_assignment (qse_awk_rtx_t* run, qse_awk_nde_t* nde) val2 = eval_expression (run, ass->left); if (val2 == QSE_NULL) { - qse_awk_refdownval (run, val); + qse_awk_rtx_refdownval (run, val); return QSE_NULL; } - qse_awk_refupval (run, val2); + qse_awk_rtx_refupval (run, val2); QSE_ASSERT (ass->opcode >= 0); QSE_ASSERT (ass->opcode < QSE_COUNTOF(binop_func)); @@ -3663,20 +3663,20 @@ static qse_awk_val_t* eval_assignment (qse_awk_rtx_t* run, qse_awk_nde_t* nde) tmp = binop_func[ass->opcode] (run, val2, val); if (tmp == QSE_NULL) { - qse_awk_refdownval (run, val2); - qse_awk_refdownval (run, val); + qse_awk_rtx_refdownval (run, val2); + qse_awk_rtx_refdownval (run, val); return QSE_NULL; } - qse_awk_refdownval (run, val2); - qse_awk_refdownval (run, val); + qse_awk_rtx_refdownval (run, val2); + qse_awk_rtx_refdownval (run, val); val = tmp; - qse_awk_refupval (run, val); + qse_awk_rtx_refupval (run, val); } ret = do_assignment (run, ass->left, val); - qse_awk_refdownval (run, val); + qse_awk_rtx_refdownval (run, val); return ret; } @@ -3737,7 +3737,7 @@ static qse_awk_val_t* do_assignment ( return ret; exit_on_error: - qse_awk_setrunerror (run, errnum, var->line, QSE_NULL, 0); + qse_awk_rtx_seterror (run, errnum, var->line, QSE_NULL, 0); return QSE_NULL; } @@ -3770,7 +3770,7 @@ static qse_awk_val_t* do_assignment_scalar ( errarg.ptr = var->id.name.ptr; errarg.len = var->id.name.len; - qse_awk_setrunerror (run, + qse_awk_rtx_seterror (run, QSE_AWK_EMAPTOSCALAR, var->line, &errarg, 1); return QSE_NULL; } @@ -3778,12 +3778,12 @@ static qse_awk_val_t* do_assignment_scalar ( if (qse_map_upsert (run->named, var->id.name.ptr, var->id.name.len, val, 0) == QSE_NULL) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ENOMEM, var->line, QSE_NULL, 0); return QSE_NULL; } - qse_awk_refupval (run, val); + qse_awk_rtx_refupval (run, val); } else if (var->type == QSE_AWK_NDE_GLOBAL) { @@ -3806,14 +3806,14 @@ static qse_awk_val_t* do_assignment_scalar ( errarg.ptr = var->id.name.ptr; errarg.len = var->id.name.len; - qse_awk_setrunerror (run, + qse_awk_rtx_seterror (run, QSE_AWK_EMAPTOSCALAR, var->line, &errarg, 1); return QSE_NULL; } - qse_awk_refdownval (run, old); + qse_awk_rtx_refdownval (run, old); STACK_LOCAL(run,var->id.idxa) = val; - qse_awk_refupval (run, val); + qse_awk_rtx_refupval (run, val); } else /* if (var->type == QSE_AWK_NDE_ARG) */ { @@ -3827,14 +3827,14 @@ static qse_awk_val_t* do_assignment_scalar ( errarg.ptr = var->id.name.ptr; errarg.len = var->id.name.len; - qse_awk_setrunerror (run, + qse_awk_rtx_seterror (run, QSE_AWK_EMAPTOSCALAR, var->line, &errarg, 1); return QSE_NULL; } - qse_awk_refdownval (run, old); + qse_awk_rtx_refdownval (run, old); STACK_ARG(run,var->id.idxa) = val; - qse_awk_refupval (run, val); + qse_awk_rtx_refupval (run, val); } return val; @@ -3878,7 +3878,7 @@ static qse_awk_val_t* do_assignment_map ( /* the map is not initialized yet */ qse_awk_val_t* tmp; - tmp = qse_awk_makemapval (run); + tmp = qse_awk_rtx_makemapval (run); if (tmp == QSE_NULL) { /* adjust error line */ @@ -3898,40 +3898,40 @@ static qse_awk_val_t* do_assignment_map ( tmp, 0) == QSE_NULL) { - qse_awk_refupval (run, tmp); - qse_awk_refdownval (run, tmp); + qse_awk_rtx_refupval (run, tmp); + qse_awk_rtx_refdownval (run, tmp); - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ENOMEM, var->line, QSE_NULL, 0); return QSE_NULL; } - qse_awk_refupval (run, tmp); + qse_awk_rtx_refupval (run, tmp); } else if (var->type == QSE_AWK_NDE_GLOBALIDX) { - qse_awk_refupval (run, tmp); + qse_awk_rtx_refupval (run, tmp); if (qse_awk_rtx_setglobal (run, (int)var->id.idxa, tmp) == -1) { - qse_awk_refdownval (run, tmp); + qse_awk_rtx_refdownval (run, tmp); /* change error line */ run->errlin = var->line; return QSE_NULL; } - qse_awk_refdownval (run, tmp); + qse_awk_rtx_refdownval (run, tmp); } else if (var->type == QSE_AWK_NDE_LOCALIDX) { - qse_awk_refdownval (run, (qse_awk_val_t*)map); + qse_awk_rtx_refdownval (run, (qse_awk_val_t*)map); STACK_LOCAL(run,var->id.idxa) = tmp; - qse_awk_refupval (run, tmp); + qse_awk_rtx_refupval (run, tmp); } else /* if (var->type == QSE_AWK_NDE_ARGIDX) */ { - qse_awk_refdownval (run, (qse_awk_val_t*)map); + qse_awk_rtx_refdownval (run, (qse_awk_val_t*)map); STACK_ARG(run,var->id.idxa) = tmp; - qse_awk_refupval (run, tmp); + qse_awk_rtx_refupval (run, tmp); } map = (qse_awk_val_map_t*) tmp; @@ -3939,7 +3939,7 @@ static qse_awk_val_t* do_assignment_map ( else if (map->type != QSE_AWK_VAL_MAP) { /* variable assigned is not a map */ - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ENOTIDX, var->line, QSE_NULL, 0); return QSE_NULL; } @@ -3960,12 +3960,12 @@ static qse_awk_val_t* do_assignment_map ( if (qse_map_upsert (map->map, str, len, val, 0) == QSE_NULL) { if (str != idxbuf) QSE_AWK_FREE (run->awk, str); - qse_awk_setrunerror (run, QSE_AWK_ENOMEM, var->line, QSE_NULL, 0); + qse_awk_rtx_seterror (run, QSE_AWK_ENOMEM, var->line, QSE_NULL, 0); return QSE_NULL; } if (str != idxbuf) QSE_AWK_FREE (run->awk, str); - qse_awk_refupval (run, val); + qse_awk_rtx_refupval (run, val); return val; } @@ -3982,20 +3982,20 @@ static qse_awk_val_t* do_assignment_pos ( v = eval_expression (run, pos->val); if (v == QSE_NULL) return QSE_NULL; - qse_awk_refupval (run, v); - n = qse_awk_valtonum (run, v, &lv, &rv); - qse_awk_refdownval (run, v); + qse_awk_rtx_refupval (run, v); + n = qse_awk_rtx_valtonum (run, v, &lv, &rv); + qse_awk_rtx_refdownval (run, v); if (n == -1) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_EPOSIDX, pos->line, QSE_NULL, 0); return QSE_NULL; } if (n == 1) lv = (qse_long_t)rv; if (!IS_VALID_POSIDX(lv)) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_EPOSIDX, pos->line, QSE_NULL, 0); return QSE_NULL; } @@ -4007,7 +4007,7 @@ static qse_awk_val_t* do_assignment_pos ( } else { - str = qse_awk_valtostr ( + str = qse_awk_rtx_valtostr ( run, val, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &len); if (str == QSE_NULL) { @@ -4017,7 +4017,7 @@ static qse_awk_val_t* do_assignment_pos ( } } - n = qse_awk_setrec (run, (qse_size_t)lv, str, len); + n = qse_awk_rtx_setrec (run, (qse_size_t)lv, str, len); if (val->type != QSE_AWK_VAL_STR) QSE_AWK_FREE (run->awk, str); @@ -4095,17 +4095,17 @@ static qse_awk_val_t* eval_binary (qse_awk_rtx_t* run, qse_awk_nde_t* nde) left = eval_expression (run, exp->left); if (left == QSE_NULL) return QSE_NULL; - qse_awk_refupval (run, left); + qse_awk_rtx_refupval (run, left); QSE_ASSERT (exp->right->next == QSE_NULL); right = eval_expression (run, exp->right); if (right == QSE_NULL) { - qse_awk_refdownval (run, left); + qse_awk_rtx_refdownval (run, left); return QSE_NULL; } - qse_awk_refupval (run, right); + qse_awk_rtx_refupval (run, right); QSE_ASSERT (exp->opcode >= 0 && exp->opcode < QSE_COUNTOF(binop_func)); @@ -4118,8 +4118,8 @@ static qse_awk_val_t* eval_binary (qse_awk_rtx_t* run, qse_awk_nde_t* nde) run->errlin = nde->line; } - qse_awk_refdownval (run, left); - qse_awk_refdownval (run, right); + qse_awk_rtx_refdownval (run, left); + qse_awk_rtx_refdownval (run, right); } return res; @@ -4131,8 +4131,8 @@ static qse_awk_val_t* eval_binop_lor ( /* qse_awk_val_t* res = QSE_NULL; - res = qse_awk_makeintval (run, - qse_awk_valtobool(run left) || qse_awk_valtobool(run,right)); + res = qse_awk_rtx_makeintval (run, + qse_awk_rtx_valtobool(run left) || qse_awk_rtx_valtobool(run,right)); if (res == QSE_NULL) { run->errlin = left->line; @@ -4149,8 +4149,8 @@ static qse_awk_val_t* eval_binop_lor ( lv = eval_expression (run, left); if (lv == QSE_NULL) return QSE_NULL; - qse_awk_refupval (run, lv); - if (qse_awk_valtobool (run, lv)) + qse_awk_rtx_refupval (run, lv); + if (qse_awk_rtx_valtobool (run, lv)) { res = qse_awk_val_one; } @@ -4160,16 +4160,16 @@ static qse_awk_val_t* eval_binop_lor ( rv = eval_expression (run, right); if (rv == QSE_NULL) { - qse_awk_refdownval (run, lv); + qse_awk_rtx_refdownval (run, lv); return QSE_NULL; } - qse_awk_refupval (run, rv); + qse_awk_rtx_refupval (run, rv); - res = qse_awk_valtobool(run,rv)? qse_awk_val_one: qse_awk_val_zero; - qse_awk_refdownval (run, rv); + res = qse_awk_rtx_valtobool(run,rv)? qse_awk_val_one: qse_awk_val_zero; + qse_awk_rtx_refdownval (run, rv); } - qse_awk_refdownval (run, lv); + qse_awk_rtx_refdownval (run, lv); return res; } @@ -4180,8 +4180,8 @@ static qse_awk_val_t* eval_binop_land ( /* qse_awk_val_t* res = QSE_NULL; - res = qse_awk_makeintval (run, - qse_awk_valtobool(run,left) && qse_awk_valtobool(run,right)); + res = qse_awk_rtx_makeintval (run, + qse_awk_rtx_valtobool(run,left) && qse_awk_rtx_valtobool(run,right)); if (res == QSE_NULL) { run->errlin = left->line; @@ -4198,8 +4198,8 @@ static qse_awk_val_t* eval_binop_land ( lv = eval_expression (run, left); if (lv == QSE_NULL) return QSE_NULL; - qse_awk_refupval (run, lv); - if (!qse_awk_valtobool (run, lv)) + qse_awk_rtx_refupval (run, lv); + if (!qse_awk_rtx_valtobool (run, lv)) { res = qse_awk_val_zero; } @@ -4209,16 +4209,16 @@ static qse_awk_val_t* eval_binop_land ( rv = eval_expression (run, right); if (rv == QSE_NULL) { - qse_awk_refdownval (run, lv); + qse_awk_rtx_refdownval (run, lv); return QSE_NULL; } - qse_awk_refupval (run, rv); + qse_awk_rtx_refupval (run, rv); - res = qse_awk_valtobool(run,rv)? qse_awk_val_one: qse_awk_val_zero; - qse_awk_refdownval (run, rv); + res = qse_awk_rtx_valtobool(run,rv)? qse_awk_val_one: qse_awk_val_zero; + qse_awk_rtx_refdownval (run, rv); } - qse_awk_refdownval (run, lv); + qse_awk_rtx_refdownval (run, lv); return res; } @@ -4240,7 +4240,7 @@ static qse_awk_val_t* eval_binop_in ( QSE_ASSERT ( !"should never happen - in needs a plain variable"); - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_EINTERN, right->line, QSE_NULL, 0); return QSE_NULL; } @@ -4267,12 +4267,12 @@ static qse_awk_val_t* eval_binop_in ( return QSE_NULL; } - qse_awk_refupval (run, rv); + qse_awk_rtx_refupval (run, rv); if (rv->type == QSE_AWK_VAL_NIL) { if (str != idxbuf) QSE_AWK_FREE (run->awk, str); - qse_awk_refdownval (run, rv); + qse_awk_rtx_refdownval (run, rv); return qse_awk_val_zero; } else if (rv->type == QSE_AWK_VAL_MAP) @@ -4285,15 +4285,15 @@ static qse_awk_val_t* eval_binop_in ( qse_awk_val_zero: qse_awk_val_one; if (str != idxbuf) QSE_AWK_FREE (run->awk, str); - qse_awk_refdownval (run, rv); + qse_awk_rtx_refdownval (run, rv); return res; } /* need a map */ if (str != idxbuf) QSE_AWK_FREE (run->awk, str); - qse_awk_refdownval (run, rv); + qse_awk_rtx_refdownval (run, rv); - qse_awk_setrunerror (run, QSE_AWK_ENOTMAPNILIN, right->line, QSE_NULL, 0); + qse_awk_rtx_seterror (run, QSE_AWK_ENOTMAPNILIN, right->line, QSE_NULL, 0); return QSE_NULL; } @@ -4304,21 +4304,21 @@ static qse_awk_val_t* eval_binop_bor ( qse_long_t l1, l2; qse_real_t r1, r2; - n1 = qse_awk_valtonum (run, left, &l1, &r1); - n2 = qse_awk_valtonum (run, right, &l2, &r2); + n1 = qse_awk_rtx_valtonum (run, left, &l1, &r1); + n2 = qse_awk_rtx_valtonum (run, right, &l2, &r2); if (n1 == -1 || n2 == -1) { - qse_awk_setrunerrnum (run, QSE_AWK_EOPERAND); + qse_awk_rtx_seterrnum (run, QSE_AWK_EOPERAND); return QSE_NULL; } n3 = n1 + (n2 << 1); QSE_ASSERT (n3 >= 0 && n3 <= 3); - return (n3 == 0)? qse_awk_makeintval(run,(qse_long_t)l1|(qse_long_t)l2): - (n3 == 1)? qse_awk_makeintval(run,(qse_long_t)r1|(qse_long_t)l2): - (n3 == 2)? qse_awk_makeintval(run,(qse_long_t)l1|(qse_long_t)r2): - qse_awk_makeintval(run,(qse_long_t)r1|(qse_long_t)r2); + return (n3 == 0)? qse_awk_rtx_makeintval(run,(qse_long_t)l1|(qse_long_t)l2): + (n3 == 1)? qse_awk_rtx_makeintval(run,(qse_long_t)r1|(qse_long_t)l2): + (n3 == 2)? qse_awk_rtx_makeintval(run,(qse_long_t)l1|(qse_long_t)r2): + qse_awk_rtx_makeintval(run,(qse_long_t)r1|(qse_long_t)r2); } static qse_awk_val_t* eval_binop_bxor ( @@ -4328,21 +4328,21 @@ static qse_awk_val_t* eval_binop_bxor ( qse_long_t l1, l2; qse_real_t r1, r2; - n1 = qse_awk_valtonum (run, left, &l1, &r1); - n2 = qse_awk_valtonum (run, right, &l2, &r2); + n1 = qse_awk_rtx_valtonum (run, left, &l1, &r1); + n2 = qse_awk_rtx_valtonum (run, right, &l2, &r2); if (n1 == -1 || n2 == -1) { - qse_awk_setrunerrnum (run, QSE_AWK_EOPERAND); + qse_awk_rtx_seterrnum (run, QSE_AWK_EOPERAND); return QSE_NULL; } n3 = n1 + (n2 << 1); QSE_ASSERT (n3 >= 0 && n3 <= 3); - return (n3 == 0)? qse_awk_makeintval(run,(qse_long_t)l1^(qse_long_t)l2): - (n3 == 1)? qse_awk_makeintval(run,(qse_long_t)r1^(qse_long_t)l2): - (n3 == 2)? qse_awk_makeintval(run,(qse_long_t)l1^(qse_long_t)r2): - qse_awk_makeintval(run,(qse_long_t)r1^(qse_long_t)r2); + return (n3 == 0)? qse_awk_rtx_makeintval(run,(qse_long_t)l1^(qse_long_t)l2): + (n3 == 1)? qse_awk_rtx_makeintval(run,(qse_long_t)r1^(qse_long_t)l2): + (n3 == 2)? qse_awk_rtx_makeintval(run,(qse_long_t)l1^(qse_long_t)r2): + qse_awk_rtx_makeintval(run,(qse_long_t)r1^(qse_long_t)r2); } static qse_awk_val_t* eval_binop_band ( @@ -4352,21 +4352,21 @@ static qse_awk_val_t* eval_binop_band ( qse_long_t l1, l2; qse_real_t r1, r2; - n1 = qse_awk_valtonum (run, left, &l1, &r1); - n2 = qse_awk_valtonum (run, right, &l2, &r2); + n1 = qse_awk_rtx_valtonum (run, left, &l1, &r1); + n2 = qse_awk_rtx_valtonum (run, right, &l2, &r2); if (n1 == -1 || n2 == -1) { - qse_awk_setrunerrnum (run, QSE_AWK_EOPERAND); + qse_awk_rtx_seterrnum (run, QSE_AWK_EOPERAND); return QSE_NULL; } n3 = n1 + (n2 << 1); QSE_ASSERT (n3 >= 0 && n3 <= 3); - return (n3 == 0)? qse_awk_makeintval(run,(qse_long_t)l1&(qse_long_t)l2): - (n3 == 1)? qse_awk_makeintval(run,(qse_long_t)r1&(qse_long_t)l2): - (n3 == 2)? qse_awk_makeintval(run,(qse_long_t)l1&(qse_long_t)r2): - qse_awk_makeintval(run,(qse_long_t)r1&(qse_long_t)r2); + return (n3 == 0)? qse_awk_rtx_makeintval(run,(qse_long_t)l1&(qse_long_t)l2): + (n3 == 1)? qse_awk_rtx_makeintval(run,(qse_long_t)r1&(qse_long_t)l2): + (n3 == 2)? qse_awk_rtx_makeintval(run,(qse_long_t)l1&(qse_long_t)r2): + qse_awk_rtx_makeintval(run,(qse_long_t)r1&(qse_long_t)r2); } static int __cmp_nil_nil ( @@ -4460,7 +4460,7 @@ static int __cmp_int_str ( } } - str = qse_awk_valtostr ( + str = qse_awk_rtx_valtostr ( run, left, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &len); if (str == QSE_NULL) return CMP_ERROR; @@ -4532,7 +4532,7 @@ static int __cmp_real_str ( return 0; } - str = qse_awk_valtostr ( + str = qse_awk_rtx_valtostr ( run, left, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &len); if (str == QSE_NULL) return CMP_ERROR; @@ -4615,7 +4615,7 @@ static int __cmp_val ( if (left->type == QSE_AWK_VAL_MAP || right->type == QSE_AWK_VAL_MAP) { /* a map can't be compared againt other values */ - qse_awk_setrunerrnum (run, QSE_AWK_EOPERAND); + qse_awk_rtx_seterrnum (run, QSE_AWK_EOPERAND); return CMP_ERROR; } @@ -4684,23 +4684,23 @@ static qse_awk_val_t* eval_binop_lshift ( qse_long_t l1, l2; qse_real_t r1, r2; - n1 = qse_awk_valtonum (run, left, &l1, &r1); - n2 = qse_awk_valtonum (run, right, &l2, &r2); + n1 = qse_awk_rtx_valtonum (run, left, &l1, &r1); + n2 = qse_awk_rtx_valtonum (run, right, &l2, &r2); if (n1 == -1 || n2 == -1) { - qse_awk_setrunerrnum (run, QSE_AWK_EOPERAND); + qse_awk_rtx_seterrnum (run, QSE_AWK_EOPERAND); return QSE_NULL; } n3 = n1 + (n2 << 1); if (n3 == 0) { - return qse_awk_makeintval (run, (qse_long_t)l1<<(qse_long_t)l2); + return qse_awk_rtx_makeintval (run, (qse_long_t)l1<<(qse_long_t)l2); } else { - qse_awk_setrunerrnum (run, QSE_AWK_EOPERAND); + qse_awk_rtx_seterrnum (run, QSE_AWK_EOPERAND); return QSE_NULL; } } @@ -4712,24 +4712,24 @@ static qse_awk_val_t* eval_binop_rshift ( qse_long_t l1, l2; qse_real_t r1, r2; - n1 = qse_awk_valtonum (run, left, &l1, &r1); - n2 = qse_awk_valtonum (run, right, &l2, &r2); + n1 = qse_awk_rtx_valtonum (run, left, &l1, &r1); + n2 = qse_awk_rtx_valtonum (run, right, &l2, &r2); if (n1 == -1 || n2 == -1) { - qse_awk_setrunerrnum (run, QSE_AWK_EOPERAND); + qse_awk_rtx_seterrnum (run, QSE_AWK_EOPERAND); return QSE_NULL; } n3 = n1 + (n2 << 1); if (n3 == 0) { - return qse_awk_makeintval ( + return qse_awk_rtx_makeintval ( run, (qse_long_t)l1>>(qse_long_t)l2); } else { - qse_awk_setrunerrnum (run, QSE_AWK_EOPERAND); + qse_awk_rtx_seterrnum (run, QSE_AWK_EOPERAND); return QSE_NULL; } } @@ -4741,12 +4741,12 @@ static qse_awk_val_t* eval_binop_plus ( qse_long_t l1, l2; qse_real_t r1, r2; - n1 = qse_awk_valtonum (run, left, &l1, &r1); - n2 = qse_awk_valtonum (run, right, &l2, &r2); + n1 = qse_awk_rtx_valtonum (run, left, &l1, &r1); + n2 = qse_awk_rtx_valtonum (run, right, &l2, &r2); if (n1 == -1 || n2 == -1) { - qse_awk_setrunerrnum (run, QSE_AWK_EOPERAND); + qse_awk_rtx_seterrnum (run, QSE_AWK_EOPERAND); return QSE_NULL; } /* @@ -4759,10 +4759,10 @@ static qse_awk_val_t* eval_binop_plus ( n3 = n1 + (n2 << 1); QSE_ASSERT (n3 >= 0 && n3 <= 3); - return (n3 == 0)? qse_awk_makeintval(run,(qse_long_t)l1+(qse_long_t)l2): - (n3 == 1)? qse_awk_makerealval(run,(qse_real_t)r1+(qse_real_t)l2): - (n3 == 2)? qse_awk_makerealval(run,(qse_real_t)l1+(qse_real_t)r2): - qse_awk_makerealval(run,(qse_real_t)r1+(qse_real_t)r2); + return (n3 == 0)? qse_awk_rtx_makeintval(run,(qse_long_t)l1+(qse_long_t)l2): + (n3 == 1)? qse_awk_rtx_makerealval(run,(qse_real_t)r1+(qse_real_t)l2): + (n3 == 2)? qse_awk_rtx_makerealval(run,(qse_real_t)l1+(qse_real_t)r2): + qse_awk_rtx_makerealval(run,(qse_real_t)r1+(qse_real_t)r2); } static qse_awk_val_t* eval_binop_minus ( @@ -4772,21 +4772,21 @@ static qse_awk_val_t* eval_binop_minus ( qse_long_t l1, l2; qse_real_t r1, r2; - n1 = qse_awk_valtonum (run, left, &l1, &r1); - n2 = qse_awk_valtonum (run, right, &l2, &r2); + n1 = qse_awk_rtx_valtonum (run, left, &l1, &r1); + n2 = qse_awk_rtx_valtonum (run, right, &l2, &r2); if (n1 == -1 || n2 == -1) { - qse_awk_setrunerrnum (run, QSE_AWK_EOPERAND); + qse_awk_rtx_seterrnum (run, QSE_AWK_EOPERAND); return QSE_NULL; } n3 = n1 + (n2 << 1); QSE_ASSERT (n3 >= 0 && n3 <= 3); - return (n3 == 0)? qse_awk_makeintval(run,(qse_long_t)l1-(qse_long_t)l2): - (n3 == 1)? qse_awk_makerealval(run,(qse_real_t)r1-(qse_real_t)l2): - (n3 == 2)? qse_awk_makerealval(run,(qse_real_t)l1-(qse_real_t)r2): - qse_awk_makerealval(run,(qse_real_t)r1-(qse_real_t)r2); + return (n3 == 0)? qse_awk_rtx_makeintval(run,(qse_long_t)l1-(qse_long_t)l2): + (n3 == 1)? qse_awk_rtx_makerealval(run,(qse_real_t)r1-(qse_real_t)l2): + (n3 == 2)? qse_awk_rtx_makerealval(run,(qse_real_t)l1-(qse_real_t)r2): + qse_awk_rtx_makerealval(run,(qse_real_t)r1-(qse_real_t)r2); } static qse_awk_val_t* eval_binop_mul ( @@ -4796,21 +4796,21 @@ static qse_awk_val_t* eval_binop_mul ( qse_long_t l1, l2; qse_real_t r1, r2; - n1 = qse_awk_valtonum (run, left, &l1, &r1); - n2 = qse_awk_valtonum (run, right, &l2, &r2); + n1 = qse_awk_rtx_valtonum (run, left, &l1, &r1); + n2 = qse_awk_rtx_valtonum (run, right, &l2, &r2); if (n1 == -1 || n2 == -1) { - qse_awk_setrunerrnum (run, QSE_AWK_EOPERAND); + qse_awk_rtx_seterrnum (run, QSE_AWK_EOPERAND); return QSE_NULL; } n3 = n1 + (n2 << 1); QSE_ASSERT (n3 >= 0 && n3 <= 3); - return (n3 == 0)? qse_awk_makeintval(run,(qse_long_t)l1*(qse_long_t)l2): - (n3 == 1)? qse_awk_makerealval(run,(qse_real_t)r1*(qse_real_t)l2): - (n3 == 2)? qse_awk_makerealval(run,(qse_real_t)l1*(qse_real_t)r2): - qse_awk_makerealval(run,(qse_real_t)r1*(qse_real_t)r2); + return (n3 == 0)? qse_awk_rtx_makeintval(run,(qse_long_t)l1*(qse_long_t)l2): + (n3 == 1)? qse_awk_rtx_makerealval(run,(qse_real_t)r1*(qse_real_t)l2): + (n3 == 2)? qse_awk_rtx_makerealval(run,(qse_real_t)l1*(qse_real_t)r2): + qse_awk_rtx_makerealval(run,(qse_real_t)r1*(qse_real_t)r2); } static qse_awk_val_t* eval_binop_div ( @@ -4821,12 +4821,12 @@ static qse_awk_val_t* eval_binop_div ( qse_real_t r1, r2; qse_awk_val_t* res; - n1 = qse_awk_valtonum (run, left, &l1, &r1); - n2 = qse_awk_valtonum (run, right, &l2, &r2); + n1 = qse_awk_rtx_valtonum (run, left, &l1, &r1); + n2 = qse_awk_rtx_valtonum (run, right, &l2, &r2); if (n1 == -1 || n2 == -1) { - qse_awk_setrunerrnum (run, QSE_AWK_EOPERAND); + qse_awk_rtx_seterrnum (run, QSE_AWK_EOPERAND); return QSE_NULL; } @@ -4835,35 +4835,35 @@ static qse_awk_val_t* eval_binop_div ( { if (l2 == 0) { - qse_awk_setrunerrnum (run, QSE_AWK_EDIVBY0); + qse_awk_rtx_seterrnum (run, QSE_AWK_EDIVBY0); return QSE_NULL; } if (((qse_long_t)l1 % (qse_long_t)l2) == 0) { - res = qse_awk_makeintval ( + res = qse_awk_rtx_makeintval ( run, (qse_long_t)l1 / (qse_long_t)l2); } else { - res = qse_awk_makerealval ( + res = qse_awk_rtx_makerealval ( run, (qse_real_t)l1 / (qse_real_t)l2); } } else if (n3 == 1) { - res = qse_awk_makerealval ( + res = qse_awk_rtx_makerealval ( run, (qse_real_t)r1 / (qse_real_t)l2); } else if (n3 == 2) { - res = qse_awk_makerealval ( + res = qse_awk_rtx_makerealval ( run, (qse_real_t)l1 / (qse_real_t)r2); } else { QSE_ASSERT (n3 == 3); - res = qse_awk_makerealval ( + res = qse_awk_rtx_makerealval ( run, (qse_real_t)r1 / (qse_real_t)r2); } @@ -4878,12 +4878,12 @@ static qse_awk_val_t* eval_binop_idiv ( qse_real_t r1, r2, quo; qse_awk_val_t* res; - n1 = qse_awk_valtonum (run, left, &l1, &r1); - n2 = qse_awk_valtonum (run, right, &l2, &r2); + n1 = qse_awk_rtx_valtonum (run, left, &l1, &r1); + n2 = qse_awk_rtx_valtonum (run, right, &l2, &r2); if (n1 == -1 || n2 == -1) { - qse_awk_setrunerrnum (run, QSE_AWK_EOPERAND); + qse_awk_rtx_seterrnum (run, QSE_AWK_EOPERAND); return QSE_NULL; } @@ -4892,28 +4892,28 @@ static qse_awk_val_t* eval_binop_idiv ( { if (l2 == 0) { - qse_awk_setrunerrnum (run, QSE_AWK_EDIVBY0); + qse_awk_rtx_seterrnum (run, QSE_AWK_EDIVBY0); return QSE_NULL; } - res = qse_awk_makeintval ( + res = qse_awk_rtx_makeintval ( run, (qse_long_t)l1 / (qse_long_t)l2); } else if (n3 == 1) { quo = (qse_real_t)r1 / (qse_real_t)l2; - res = qse_awk_makeintval (run, (qse_long_t)quo); + res = qse_awk_rtx_makeintval (run, (qse_long_t)quo); } else if (n3 == 2) { quo = (qse_real_t)l1 / (qse_real_t)r2; - res = qse_awk_makeintval (run, (qse_long_t)quo); + res = qse_awk_rtx_makeintval (run, (qse_long_t)quo); } else { QSE_ASSERT (n3 == 3); quo = (qse_real_t)r1 / (qse_real_t)r2; - res = qse_awk_makeintval (run, (qse_long_t)quo); + res = qse_awk_rtx_makeintval (run, (qse_long_t)quo); } return res; @@ -4927,12 +4927,12 @@ static qse_awk_val_t* eval_binop_mod ( qse_real_t r1, r2; qse_awk_val_t* res; - n1 = qse_awk_valtonum (run, left, &l1, &r1); - n2 = qse_awk_valtonum (run, right, &l2, &r2); + n1 = qse_awk_rtx_valtonum (run, left, &l1, &r1); + n2 = qse_awk_rtx_valtonum (run, right, &l2, &r2); if (n1 == -1 || n2 == -1) { - qse_awk_setrunerrnum (run, QSE_AWK_EOPERAND); + qse_awk_rtx_seterrnum (run, QSE_AWK_EOPERAND); return QSE_NULL; } @@ -4941,15 +4941,15 @@ static qse_awk_val_t* eval_binop_mod ( { if (l2 == 0) { - qse_awk_setrunerrnum (run, QSE_AWK_EDIVBY0); + qse_awk_rtx_seterrnum (run, QSE_AWK_EDIVBY0); return QSE_NULL; } - res = qse_awk_makeintval ( + res = qse_awk_rtx_makeintval ( run, (qse_long_t)l1 % (qse_long_t)l2); } else { - qse_awk_setrunerrnum (run, QSE_AWK_EOPERAND); + qse_awk_rtx_seterrnum (run, QSE_AWK_EOPERAND); return QSE_NULL; } @@ -4967,12 +4967,12 @@ static qse_awk_val_t* eval_binop_exp ( QSE_ASSERTX (run->awk->prmfns->pow != QSE_NULL, "the pow function should be provided when the awk object is created to make the exponentiation work properly."); - n1 = qse_awk_valtonum (run, left, &l1, &r1); - n2 = qse_awk_valtonum (run, right, &l2, &r2); + n1 = qse_awk_rtx_valtonum (run, left, &l1, &r1); + n2 = qse_awk_rtx_valtonum (run, right, &l2, &r2); if (n1 == -1 || n2 == -1) { - qse_awk_setrunerrnum (run, QSE_AWK_EOPERAND); + qse_awk_rtx_seterrnum (run, QSE_AWK_EOPERAND); return QSE_NULL; } @@ -4984,11 +4984,11 @@ static qse_awk_val_t* eval_binop_exp ( { qse_long_t v = 1; while (l2-- > 0) v *= l1; - res = qse_awk_makeintval (run, v); + res = qse_awk_rtx_makeintval (run, v); } else if (l1 == 0) { - qse_awk_setrunerrnum (run, QSE_AWK_EDIVBY0); + qse_awk_rtx_seterrnum (run, QSE_AWK_EDIVBY0); return QSE_NULL; } else @@ -4996,7 +4996,7 @@ static qse_awk_val_t* eval_binop_exp ( qse_real_t v = 1.0; l2 *= -1; while (l2-- > 0) v /= l1; - res = qse_awk_makerealval (run, v); + res = qse_awk_rtx_makerealval (run, v); } } else if (n3 == 1) @@ -5006,11 +5006,11 @@ static qse_awk_val_t* eval_binop_exp ( { qse_real_t v = 1.0; while (l2-- > 0) v *= r1; - res = qse_awk_makerealval (run, v); + res = qse_awk_rtx_makerealval (run, v); } else if (r1 == 0.0) { - qse_awk_setrunerrnum (run, QSE_AWK_EDIVBY0); + qse_awk_rtx_seterrnum (run, QSE_AWK_EDIVBY0); return QSE_NULL; } else @@ -5018,13 +5018,13 @@ static qse_awk_val_t* eval_binop_exp ( qse_real_t v = 1.0; l2 *= -1; while (l2-- > 0) v /= r1; - res = qse_awk_makerealval (run, v); + res = qse_awk_rtx_makerealval (run, v); } } else if (n3 == 2) { /* left - int, right - real */ - res = qse_awk_makerealval (run, + res = qse_awk_rtx_makerealval (run, run->awk->prmfns->pow ( run->awk->prmfns->data, (qse_real_t)l1,(qse_real_t)r2)); @@ -5033,7 +5033,7 @@ static qse_awk_val_t* eval_binop_exp ( { /* left - real, right - real */ QSE_ASSERT (n3 == 3); - res = qse_awk_makerealval (run, + res = qse_awk_rtx_makerealval (run, run->awk->prmfns->pow( run->awk->prmfns->data, (qse_real_t)r1,(qse_real_t)r2)); @@ -5049,11 +5049,11 @@ static qse_awk_val_t* eval_binop_concat ( qse_size_t strl_len, strr_len; qse_awk_val_t* res; - strl = qse_awk_valtostr ( + strl = qse_awk_rtx_valtostr ( run, left, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &strl_len); if (strl == QSE_NULL) return QSE_NULL; - strr = qse_awk_valtostr ( + strr = qse_awk_rtx_valtostr ( run, right, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &strr_len); if (strr == QSE_NULL) { @@ -5061,7 +5061,7 @@ static qse_awk_val_t* eval_binop_concat ( return QSE_NULL; } - res = qse_awk_makestrval2 (run, strl, strl_len, strr, strr_len); + res = qse_awk_rtx_makestrval2 (run, strl, strl_len, strr, strr_len); QSE_AWK_FREE (run->awk, strl); QSE_AWK_FREE (run->awk, strr); @@ -5080,21 +5080,21 @@ static qse_awk_val_t* eval_binop_ma ( lv = eval_expression (run, left); if (lv == QSE_NULL) return QSE_NULL; - qse_awk_refupval (run, lv); + qse_awk_rtx_refupval (run, lv); rv = eval_expression0 (run, right); if (rv == QSE_NULL) { - qse_awk_refdownval (run, lv); + qse_awk_rtx_refdownval (run, lv); return QSE_NULL; } - qse_awk_refupval (run, rv); + qse_awk_rtx_refupval (run, rv); res = eval_binop_match0 (run, lv, rv, left->line, right->line, 1); - qse_awk_refdownval (run, rv); - qse_awk_refdownval (run, lv); + qse_awk_rtx_refdownval (run, rv); + qse_awk_rtx_refdownval (run, lv); return res; } @@ -5110,22 +5110,22 @@ static qse_awk_val_t* eval_binop_nm ( lv = eval_expression (run, left); if (lv == QSE_NULL) return QSE_NULL; - qse_awk_refupval (run, lv); + qse_awk_rtx_refupval (run, lv); rv = eval_expression0 (run, right); if (rv == QSE_NULL) { - qse_awk_refdownval (run, lv); + qse_awk_rtx_refdownval (run, lv); return QSE_NULL; } - qse_awk_refupval (run, rv); + qse_awk_rtx_refupval (run, rv); res = eval_binop_match0 ( run, lv, rv, left->line, right->line, 0); - qse_awk_refdownval (run, rv); - qse_awk_refdownval (run, lv); + qse_awk_rtx_refdownval (run, rv); + qse_awk_rtx_refdownval (run, lv); return res; } @@ -5152,13 +5152,13 @@ static qse_awk_val_t* eval_binop_match0 ( ((qse_awk_val_str_t*)right)->len, &errnum); if (rex_code == QSE_NULL) { - qse_awk_setrunerror (run, errnum, rline, QSE_NULL, 0); + qse_awk_rtx_seterror (run, errnum, rline, QSE_NULL, 0); return QSE_NULL; } } else { - str = qse_awk_valtostr ( + str = qse_awk_rtx_valtostr ( run, right, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &len); if (str == QSE_NULL) return QSE_NULL; @@ -5167,7 +5167,7 @@ static qse_awk_val_t* eval_binop_match0 ( { QSE_AWK_FREE (run->awk, str); - qse_awk_setrunerror (run, errnum, rline, QSE_NULL, 0); + qse_awk_rtx_seterror (run, errnum, rline, QSE_NULL, 0); return QSE_NULL; } @@ -5187,11 +5187,11 @@ static qse_awk_val_t* eval_binop_match0 ( if (right->type != QSE_AWK_VAL_REX) QSE_AWK_FREE (run->awk, rex_code); - qse_awk_setrunerror (run, errnum, lline, QSE_NULL, 0); + qse_awk_rtx_seterror (run, errnum, lline, QSE_NULL, 0); return QSE_NULL; } - res = qse_awk_makeintval (run, (n == ret)); + res = qse_awk_rtx_makeintval (run, (n == ret)); if (res == QSE_NULL) { if (right->type != QSE_AWK_VAL_REX) @@ -5204,7 +5204,7 @@ static qse_awk_val_t* eval_binop_match0 ( } else { - str = qse_awk_valtostr ( + str = qse_awk_rtx_valtostr ( run, left, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &len); if (str == QSE_NULL) { @@ -5223,11 +5223,11 @@ static qse_awk_val_t* eval_binop_match0 ( if (right->type != QSE_AWK_VAL_REX) QSE_AWK_FREE (run->awk, rex_code); - qse_awk_setrunerror (run, errnum, lline, QSE_NULL, 0); + qse_awk_rtx_seterror (run, errnum, lline, QSE_NULL, 0); return QSE_NULL; } - res = qse_awk_makeintval (run, (n == ret)); + res = qse_awk_rtx_makeintval (run, (n == ret)); if (res == QSE_NULL) { QSE_AWK_FREE (run->awk, str); @@ -5268,51 +5268,51 @@ static qse_awk_val_t* eval_unary (qse_awk_rtx_t* run, qse_awk_nde_t* nde) left = eval_expression (run, exp->left); if (left == QSE_NULL) return QSE_NULL; - qse_awk_refupval (run, left); + qse_awk_rtx_refupval (run, left); if (exp->opcode == QSE_AWK_UNROP_MINUS) { - n = qse_awk_valtonum (run, left, &l, &r); + n = qse_awk_rtx_valtonum (run, left, &l, &r); if (n == -1) goto exit_func; - res = (n == 0)? qse_awk_makeintval (run, -l): - qse_awk_makerealval (run, -r); + res = (n == 0)? qse_awk_rtx_makeintval (run, -l): + qse_awk_rtx_makerealval (run, -r); } else if (exp->opcode == QSE_AWK_UNROP_LNOT) { if (left->type == QSE_AWK_VAL_STR) { - res = qse_awk_makeintval ( + res = qse_awk_rtx_makeintval ( run, !(((qse_awk_val_str_t*)left)->len > 0)); } else { - n = qse_awk_valtonum (run, left, &l, &r); + n = qse_awk_rtx_valtonum (run, left, &l, &r); if (n == -1) goto exit_func; - res = (n == 0)? qse_awk_makeintval (run, !l): - qse_awk_makerealval (run, !r); + res = (n == 0)? qse_awk_rtx_makeintval (run, !l): + qse_awk_rtx_makerealval (run, !r); } } else if (exp->opcode == QSE_AWK_UNROP_BNOT) { - n = qse_awk_valtonum (run, left, &l, &r); + n = qse_awk_rtx_valtonum (run, left, &l, &r); if (n == -1) goto exit_func; if (n == 1) l = (qse_long_t)r; - res = qse_awk_makeintval (run, ~l); + res = qse_awk_rtx_makeintval (run, ~l); } else if (exp->opcode == QSE_AWK_UNROP_PLUS) { - n = qse_awk_valtonum (run, left, &l, &r); + n = qse_awk_rtx_valtonum (run, left, &l, &r); if (n == -1) goto exit_func; - res = (n == 0)? qse_awk_makeintval (run, l): - qse_awk_makerealval (run, r); + res = (n == 0)? qse_awk_rtx_makeintval (run, l): + qse_awk_rtx_makerealval (run, r); } exit_func: - qse_awk_refdownval (run, left); + qse_awk_rtx_refdownval (run, left); if (res == QSE_NULL) run->errlin = nde->line; return res; } @@ -5332,7 +5332,7 @@ static qse_awk_val_t* eval_incpre (qse_awk_rtx_t* run, qse_awk_nde_t* nde) /*exp->left->type > QSE_AWK_NDE_ARGIDX) XXX */ exp->left->type > QSE_AWK_NDE_POS) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_EOPERAND, nde->line, QSE_NULL, 0); return QSE_NULL; } @@ -5341,17 +5341,17 @@ static qse_awk_val_t* eval_incpre (qse_awk_rtx_t* run, qse_awk_nde_t* nde) left = eval_expression (run, exp->left); if (left == QSE_NULL) return QSE_NULL; - qse_awk_refupval (run, left); + qse_awk_rtx_refupval (run, left); if (exp->opcode == QSE_AWK_INCOP_PLUS) { if (left->type == QSE_AWK_VAL_INT) { qse_long_t r = ((qse_awk_val_int_t*)left)->val; - res = qse_awk_makeintval (run, r + 1); + res = qse_awk_rtx_makeintval (run, r + 1); if (res == QSE_NULL) { - qse_awk_refdownval (run, left); + qse_awk_rtx_refdownval (run, left); /* adjust error line */ run->errlin = nde->line; return QSE_NULL; @@ -5360,10 +5360,10 @@ static qse_awk_val_t* eval_incpre (qse_awk_rtx_t* run, qse_awk_nde_t* nde) else if (left->type == QSE_AWK_VAL_REAL) { qse_real_t r = ((qse_awk_val_real_t*)left)->val; - res = qse_awk_makerealval (run, r + 1.0); + res = qse_awk_rtx_makerealval (run, r + 1.0); if (res == QSE_NULL) { - qse_awk_refdownval (run, left); + qse_awk_rtx_refdownval (run, left); /* adjust error line */ run->errlin = nde->line; return QSE_NULL; @@ -5375,12 +5375,12 @@ static qse_awk_val_t* eval_incpre (qse_awk_rtx_t* run, qse_awk_nde_t* nde) qse_real_t v2; int n; - n = qse_awk_valtonum (run, left, &v1, &v2); + n = qse_awk_rtx_valtonum (run, left, &v1, &v2); if (n == -1) { - qse_awk_refdownval (run, left); + qse_awk_rtx_refdownval (run, left); /* - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_EOPERAND, nde->line, QSE_NULL, 0); */ @@ -5390,17 +5390,17 @@ static qse_awk_val_t* eval_incpre (qse_awk_rtx_t* run, qse_awk_nde_t* nde) if (n == 0) { - res = qse_awk_makeintval (run, v1 + 1); + res = qse_awk_rtx_makeintval (run, v1 + 1); } else /* if (n == 1) */ { QSE_ASSERT (n == 1); - res = qse_awk_makerealval (run, v2 + 1.0); + res = qse_awk_rtx_makerealval (run, v2 + 1.0); } if (res == QSE_NULL) { - qse_awk_refdownval (run, left); + qse_awk_rtx_refdownval (run, left); /* adjust error line */ run->errlin = nde->line; return QSE_NULL; @@ -5412,10 +5412,10 @@ static qse_awk_val_t* eval_incpre (qse_awk_rtx_t* run, qse_awk_nde_t* nde) if (left->type == QSE_AWK_VAL_INT) { qse_long_t r = ((qse_awk_val_int_t*)left)->val; - res = qse_awk_makeintval (run, r - 1); + res = qse_awk_rtx_makeintval (run, r - 1); if (res == QSE_NULL) { - qse_awk_refdownval (run, left); + qse_awk_rtx_refdownval (run, left); /* adjust error line */ run->errlin = nde->line; return QSE_NULL; @@ -5424,10 +5424,10 @@ static qse_awk_val_t* eval_incpre (qse_awk_rtx_t* run, qse_awk_nde_t* nde) else if (left->type == QSE_AWK_VAL_REAL) { qse_real_t r = ((qse_awk_val_real_t*)left)->val; - res = qse_awk_makerealval (run, r - 1.0); + res = qse_awk_rtx_makerealval (run, r - 1.0); if (res == QSE_NULL) { - qse_awk_refdownval (run, left); + qse_awk_rtx_refdownval (run, left); /* adjust error line */ run->errlin = nde->line; return QSE_NULL; @@ -5439,12 +5439,12 @@ static qse_awk_val_t* eval_incpre (qse_awk_rtx_t* run, qse_awk_nde_t* nde) qse_real_t v2; int n; - n = qse_awk_valtonum (run, left, &v1, &v2); + n = qse_awk_rtx_valtonum (run, left, &v1, &v2); if (n == -1) { - qse_awk_refdownval (run, left); + qse_awk_rtx_refdownval (run, left); /* - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_EOPERAND, nde->line, QSE_NULL, 0); */ @@ -5454,17 +5454,17 @@ static qse_awk_val_t* eval_incpre (qse_awk_rtx_t* run, qse_awk_nde_t* nde) if (n == 0) { - res = qse_awk_makeintval (run, v1 - 1); + res = qse_awk_rtx_makeintval (run, v1 - 1); } else /* if (n == 1) */ { QSE_ASSERT (n == 1); - res = qse_awk_makerealval (run, v2 - 1.0); + res = qse_awk_rtx_makerealval (run, v2 - 1.0); } if (res == QSE_NULL) { - qse_awk_refdownval (run, left); + qse_awk_rtx_refdownval (run, left); /* adjust error line */ run->errlin = nde->line; return QSE_NULL; @@ -5475,20 +5475,20 @@ static qse_awk_val_t* eval_incpre (qse_awk_rtx_t* run, qse_awk_nde_t* nde) { QSE_ASSERT ( !"should never happen - invalid opcode"); - qse_awk_refdownval (run, left); + qse_awk_rtx_refdownval (run, left); - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_EINTERN, nde->line, QSE_NULL, 0); return QSE_NULL; } if (do_assignment (run, exp->left, res) == QSE_NULL) { - qse_awk_refdownval (run, left); + qse_awk_rtx_refdownval (run, left); return QSE_NULL; } - qse_awk_refdownval (run, left); + qse_awk_rtx_refdownval (run, left); return res; } @@ -5507,7 +5507,7 @@ static qse_awk_val_t* eval_incpst (qse_awk_rtx_t* run, qse_awk_nde_t* nde) /*exp->left->type > QSE_AWK_NDE_ARGIDX) XXX */ exp->left->type > QSE_AWK_NDE_POS) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_EOPERAND, nde->line, QSE_NULL, 0); return QSE_NULL; } @@ -5516,27 +5516,27 @@ static qse_awk_val_t* eval_incpst (qse_awk_rtx_t* run, qse_awk_nde_t* nde) left = eval_expression (run, exp->left); if (left == QSE_NULL) return QSE_NULL; - qse_awk_refupval (run, left); + qse_awk_rtx_refupval (run, left); if (exp->opcode == QSE_AWK_INCOP_PLUS) { if (left->type == QSE_AWK_VAL_INT) { qse_long_t r = ((qse_awk_val_int_t*)left)->val; - res = qse_awk_makeintval (run, r); + res = qse_awk_rtx_makeintval (run, r); if (res == QSE_NULL) { - qse_awk_refdownval (run, left); + qse_awk_rtx_refdownval (run, left); /* adjust error line */ run->errlin = nde->line; return QSE_NULL; } - res2 = qse_awk_makeintval (run, r + 1); + res2 = qse_awk_rtx_makeintval (run, r + 1); if (res2 == QSE_NULL) { - qse_awk_refdownval (run, left); - qse_awk_freeval (run, res, QSE_TRUE); + qse_awk_rtx_refdownval (run, left); + qse_awk_rtx_freeval (run, res, QSE_TRUE); /* adjust error line */ run->errlin = nde->line; return QSE_NULL; @@ -5545,20 +5545,20 @@ static qse_awk_val_t* eval_incpst (qse_awk_rtx_t* run, qse_awk_nde_t* nde) else if (left->type == QSE_AWK_VAL_REAL) { qse_real_t r = ((qse_awk_val_real_t*)left)->val; - res = qse_awk_makerealval (run, r); + res = qse_awk_rtx_makerealval (run, r); if (res == QSE_NULL) { - qse_awk_refdownval (run, left); + qse_awk_rtx_refdownval (run, left); /* adjust error line */ run->errlin = nde->line; return QSE_NULL; } - res2 = qse_awk_makerealval (run, r + 1.0); + res2 = qse_awk_rtx_makerealval (run, r + 1.0); if (res2 == QSE_NULL) { - qse_awk_refdownval (run, left); - qse_awk_freeval (run, res, QSE_TRUE); + qse_awk_rtx_refdownval (run, left); + qse_awk_rtx_freeval (run, res, QSE_TRUE); /* adjust error line */ run->errlin = nde->line; return QSE_NULL; @@ -5570,12 +5570,12 @@ static qse_awk_val_t* eval_incpst (qse_awk_rtx_t* run, qse_awk_nde_t* nde) qse_real_t v2; int n; - n = qse_awk_valtonum (run, left, &v1, &v2); + n = qse_awk_rtx_valtonum (run, left, &v1, &v2); if (n == -1) { - qse_awk_refdownval (run, left); + qse_awk_rtx_refdownval (run, left); /* - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_EOPERAND, nde->line, QSE_NULL, 0); */ @@ -5585,20 +5585,20 @@ static qse_awk_val_t* eval_incpst (qse_awk_rtx_t* run, qse_awk_nde_t* nde) if (n == 0) { - res = qse_awk_makeintval (run, v1); + res = qse_awk_rtx_makeintval (run, v1); if (res == QSE_NULL) { - qse_awk_refdownval (run, left); + qse_awk_rtx_refdownval (run, left); /* adjust error line */ run->errlin = nde->line; return QSE_NULL; } - res2 = qse_awk_makeintval (run, v1 + 1); + res2 = qse_awk_rtx_makeintval (run, v1 + 1); if (res2 == QSE_NULL) { - qse_awk_refdownval (run, left); - qse_awk_freeval (run, res, QSE_TRUE); + qse_awk_rtx_refdownval (run, left); + qse_awk_rtx_freeval (run, res, QSE_TRUE); /* adjust error line */ run->errlin = nde->line; return QSE_NULL; @@ -5607,20 +5607,20 @@ static qse_awk_val_t* eval_incpst (qse_awk_rtx_t* run, qse_awk_nde_t* nde) else /* if (n == 1) */ { QSE_ASSERT (n == 1); - res = qse_awk_makerealval (run, v2); + res = qse_awk_rtx_makerealval (run, v2); if (res == QSE_NULL) { - qse_awk_refdownval (run, left); + qse_awk_rtx_refdownval (run, left); /* adjust error line */ run->errlin = nde->line; return QSE_NULL; } - res2 = qse_awk_makerealval (run, v2 + 1.0); + res2 = qse_awk_rtx_makerealval (run, v2 + 1.0); if (res2 == QSE_NULL) { - qse_awk_refdownval (run, left); - qse_awk_freeval (run, res, QSE_TRUE); + qse_awk_rtx_refdownval (run, left); + qse_awk_rtx_freeval (run, res, QSE_TRUE); /* adjust error line */ run->errlin = nde->line; return QSE_NULL; @@ -5633,20 +5633,20 @@ static qse_awk_val_t* eval_incpst (qse_awk_rtx_t* run, qse_awk_nde_t* nde) if (left->type == QSE_AWK_VAL_INT) { qse_long_t r = ((qse_awk_val_int_t*)left)->val; - res = qse_awk_makeintval (run, r); + res = qse_awk_rtx_makeintval (run, r); if (res == QSE_NULL) { - qse_awk_refdownval (run, left); + qse_awk_rtx_refdownval (run, left); /* adjust error line */ run->errlin = nde->line; return QSE_NULL; } - res2 = qse_awk_makeintval (run, r - 1); + res2 = qse_awk_rtx_makeintval (run, r - 1); if (res2 == QSE_NULL) { - qse_awk_refdownval (run, left); - qse_awk_freeval (run, res, QSE_TRUE); + qse_awk_rtx_refdownval (run, left); + qse_awk_rtx_freeval (run, res, QSE_TRUE); /* adjust error line */ run->errlin = nde->line; return QSE_NULL; @@ -5655,20 +5655,20 @@ static qse_awk_val_t* eval_incpst (qse_awk_rtx_t* run, qse_awk_nde_t* nde) else if (left->type == QSE_AWK_VAL_REAL) { qse_real_t r = ((qse_awk_val_real_t*)left)->val; - res = qse_awk_makerealval (run, r); + res = qse_awk_rtx_makerealval (run, r); if (res == QSE_NULL) { - qse_awk_refdownval (run, left); + qse_awk_rtx_refdownval (run, left); /* adjust error line */ run->errlin = nde->line; return QSE_NULL; } - res2 = qse_awk_makerealval (run, r - 1.0); + res2 = qse_awk_rtx_makerealval (run, r - 1.0); if (res2 == QSE_NULL) { - qse_awk_refdownval (run, left); - qse_awk_freeval (run, res, QSE_TRUE); + qse_awk_rtx_refdownval (run, left); + qse_awk_rtx_freeval (run, res, QSE_TRUE); /* adjust error line */ run->errlin = nde->line; return QSE_NULL; @@ -5680,12 +5680,12 @@ static qse_awk_val_t* eval_incpst (qse_awk_rtx_t* run, qse_awk_nde_t* nde) qse_real_t v2; int n; - n = qse_awk_valtonum (run, left, &v1, &v2); + n = qse_awk_rtx_valtonum (run, left, &v1, &v2); if (n == -1) { - qse_awk_refdownval (run, left); + qse_awk_rtx_refdownval (run, left); /* - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_EOPERAND, nde->line, QSE_NULL, 0); */ @@ -5695,20 +5695,20 @@ static qse_awk_val_t* eval_incpst (qse_awk_rtx_t* run, qse_awk_nde_t* nde) if (n == 0) { - res = qse_awk_makeintval (run, v1); + res = qse_awk_rtx_makeintval (run, v1); if (res == QSE_NULL) { - qse_awk_refdownval (run, left); + qse_awk_rtx_refdownval (run, left); /* adjust error line */ run->errlin = nde->line; return QSE_NULL; } - res2 = qse_awk_makeintval (run, v1 - 1); + res2 = qse_awk_rtx_makeintval (run, v1 - 1); if (res2 == QSE_NULL) { - qse_awk_refdownval (run, left); - qse_awk_freeval (run, res, QSE_TRUE); + qse_awk_rtx_refdownval (run, left); + qse_awk_rtx_freeval (run, res, QSE_TRUE); /* adjust error line */ run->errlin = nde->line; return QSE_NULL; @@ -5717,20 +5717,20 @@ static qse_awk_val_t* eval_incpst (qse_awk_rtx_t* run, qse_awk_nde_t* nde) else /* if (n == 1) */ { QSE_ASSERT (n == 1); - res = qse_awk_makerealval (run, v2); + res = qse_awk_rtx_makerealval (run, v2); if (res == QSE_NULL) { - qse_awk_refdownval (run, left); + qse_awk_rtx_refdownval (run, left); /* adjust error line */ run->errlin = nde->line; return QSE_NULL; } - res2 = qse_awk_makerealval (run, v2 - 1.0); + res2 = qse_awk_rtx_makerealval (run, v2 - 1.0); if (res2 == QSE_NULL) { - qse_awk_refdownval (run, left); - qse_awk_freeval (run, res, QSE_TRUE); + qse_awk_rtx_refdownval (run, left); + qse_awk_rtx_freeval (run, res, QSE_TRUE); /* adjust error line */ run->errlin = nde->line; return QSE_NULL; @@ -5742,20 +5742,20 @@ static qse_awk_val_t* eval_incpst (qse_awk_rtx_t* run, qse_awk_nde_t* nde) { QSE_ASSERT ( !"should never happen - invalid opcode"); - qse_awk_refdownval (run, left); + qse_awk_rtx_refdownval (run, left); - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_EINTERN, nde->line, QSE_NULL, 0); return QSE_NULL; } if (do_assignment (run, exp->left, res2) == QSE_NULL) { - qse_awk_refdownval (run, left); + qse_awk_rtx_refdownval (run, left); return QSE_NULL; } - qse_awk_refdownval (run, left); + qse_awk_rtx_refdownval (run, left); return res; } @@ -5769,94 +5769,94 @@ static qse_awk_val_t* eval_cnd (qse_awk_rtx_t* run, qse_awk_nde_t* nde) tv = eval_expression (run, cnd->test); if (tv == QSE_NULL) return QSE_NULL; - qse_awk_refupval (run, tv); + qse_awk_rtx_refupval (run, tv); QSE_ASSERT ( cnd->left->next == QSE_NULL && cnd->right->next == QSE_NULL); - v = (qse_awk_valtobool (run, tv))? + v = (qse_awk_rtx_valtobool (run, tv))? eval_expression (run, cnd->left): eval_expression (run, cnd->right); - qse_awk_refdownval (run, tv); + qse_awk_rtx_refdownval (run, tv); return v; } -static qse_awk_val_t* eval_bfn (qse_awk_rtx_t* run, qse_awk_nde_t* nde) +static qse_awk_val_t* eval_fnc (qse_awk_rtx_t* run, qse_awk_nde_t* nde) { qse_awk_nde_call_t* call = (qse_awk_nde_call_t*)nde; /* intrinsic function */ - if (call->nargs < call->what.bfn.arg.min) + if (call->nargs < call->what.fnc.arg.min) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_EARGTF, nde->line, QSE_NULL, 0); return QSE_NULL; } - if (call->nargs > call->what.bfn.arg.max) + if (call->nargs > call->what.fnc.arg.max) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_EARGTM, nde->line, QSE_NULL, 0); return QSE_NULL; } return eval_call ( - run, nde, call->what.bfn.arg.spec, + run, nde, call->what.fnc.arg.spec, QSE_NULL, QSE_NULL, QSE_NULL); } -static qse_awk_val_t* eval_afn_intrinsic ( +static qse_awk_val_t* eval_fun_intrinsic ( qse_awk_rtx_t* run, qse_awk_nde_t* nde, void(*errhandler)(void*), void* eharg) { qse_awk_nde_call_t* call = (qse_awk_nde_call_t*)nde; - qse_awk_afn_t* afn; + qse_awk_fun_t* fun; qse_map_pair_t* pair; - pair = qse_map_search (run->awk->tree.afns, - call->what.afn.name.ptr, call->what.afn.name.len); + pair = qse_map_search (run->awk->tree.funs, + call->what.fun.name.ptr, call->what.fun.name.len); if (pair == QSE_NULL) { qse_cstr_t errarg; - errarg.ptr = call->what.afn.name.ptr; - errarg.len = call->what.afn.name.len, + errarg.ptr = call->what.fun.name.ptr; + errarg.len = call->what.fun.name.len, - qse_awk_setrunerror (run, + qse_awk_rtx_seterror (run, QSE_AWK_EFNNONE, nde->line, &errarg, 1); return QSE_NULL; } - afn = (qse_awk_afn_t*)QSE_MAP_VPTR(pair); - QSE_ASSERT (afn != QSE_NULL); + fun = (qse_awk_fun_t*)QSE_MAP_VPTR(pair); + QSE_ASSERT (fun != QSE_NULL); - if (call->nargs > afn->nargs) + if (call->nargs > fun->nargs) { /* TODO: is this correct? what if i want to * allow arbitarary numbers of arguments? */ - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_EARGTM, nde->line, QSE_NULL, 0); return QSE_NULL; } - return eval_call (run, nde, QSE_NULL, afn, errhandler, eharg); + return eval_call (run, nde, QSE_NULL, fun, errhandler, eharg); } -static qse_awk_val_t* eval_afn (qse_awk_rtx_t* run, qse_awk_nde_t* nde) +static qse_awk_val_t* eval_fun (qse_awk_rtx_t* run, qse_awk_nde_t* nde) { - return eval_afn_intrinsic (run, nde, QSE_NULL, QSE_NULL); + return eval_fun_intrinsic (run, nde, QSE_NULL, QSE_NULL); } /* run->stack_base has not been set for this * stack frame. so the STACK_ARG macro cannot be used as in - * qse_awk_refdownval (run, STACK_ARG(run,nargs));*/ + * qse_awk_rtx_refdownval (run, STACK_ARG(run,nargs));*/ #define UNWIND_RUN_STACK(run,nargs) \ do { \ while ((nargs) > 0) \ { \ --(nargs); \ - qse_awk_refdownval ((run), \ + qse_awk_rtx_refdownval ((run), \ (run)->stack[(run)->stack_top-1]); \ __raw_pop (run); \ } \ @@ -5868,7 +5868,7 @@ static qse_awk_val_t* eval_afn (qse_awk_rtx_t* run, qse_awk_nde_t* nde) static qse_awk_val_t* eval_call ( qse_awk_rtx_t* run, qse_awk_nde_t* nde, - const qse_char_t* bfn_arg_spec, qse_awk_afn_t* afn, + const qse_char_t* fnc_arg_spec, qse_awk_fun_t* fun, void(*errhandler)(void*), void* eharg) { qse_awk_nde_call_t* call = (qse_awk_nde_call_t*)nde; @@ -5931,7 +5931,7 @@ static qse_awk_val_t* eval_call ( #endif if (__raw_push(run,(void*)run->stack_base) == -1) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ENOMEM, nde->line, QSE_NULL, 0); return QSE_NULL; } @@ -5939,7 +5939,7 @@ static qse_awk_val_t* eval_call ( if (__raw_push(run,(void*)saved_stack_top) == -1) { __raw_pop (run); - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ENOMEM, nde->line, QSE_NULL, 0); return QSE_NULL; } @@ -5949,7 +5949,7 @@ static qse_awk_val_t* eval_call ( { __raw_pop (run); __raw_pop (run); - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ENOMEM, nde->line, QSE_NULL, 0); return QSE_NULL; } @@ -5960,7 +5960,7 @@ static qse_awk_val_t* eval_call ( __raw_pop (run); __raw_pop (run); __raw_pop (run); - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ENOMEM, nde->line, QSE_NULL, 0); return QSE_NULL; } @@ -5968,12 +5968,12 @@ static qse_awk_val_t* eval_call ( for (p = call->args, nargs = 0; p != QSE_NULL; p = p->next, nargs++) { QSE_ASSERT ( - bfn_arg_spec == QSE_NULL || - (bfn_arg_spec != QSE_NULL && - qse_strlen(bfn_arg_spec) > nargs)); + fnc_arg_spec == QSE_NULL || + (fnc_arg_spec != QSE_NULL && + qse_strlen(fnc_arg_spec) > nargs)); - if (bfn_arg_spec != QSE_NULL && - bfn_arg_spec[nargs] == QSE_T('r')) + if (fnc_arg_spec != QSE_NULL && + fnc_arg_spec[nargs] == QSE_T('r')) { qse_awk_val_t** ref; @@ -5985,11 +5985,11 @@ static qse_awk_val_t* eval_call ( /* p->type-QSE_AWK_NDE_NAMED assumes that the * derived value matches QSE_AWK_VAL_REF_XXX */ - v = qse_awk_makerefval ( + v = qse_awk_rtx_makerefval ( run, p->type-QSE_AWK_NDE_NAMED, ref); } - else if (bfn_arg_spec != QSE_NULL && - bfn_arg_spec[nargs] == QSE_T('x')) + else if (fnc_arg_spec != QSE_NULL && + fnc_arg_spec[nargs] == QSE_T('x')) { /* a regular expression is passed to * the function as it is */ @@ -6012,32 +6012,32 @@ static qse_awk_val_t* eval_call ( * updated yet as it is carried out after the * successful stack push. so it adds up a reference * and dereferences it */ - qse_awk_refupval (run, v); - qse_awk_refdownval (run, v); + qse_awk_rtx_refupval (run, v); + qse_awk_rtx_refdownval (run, v); UNWIND_RUN_STACK (run, nargs); - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ENOMEM, nde->line, QSE_NULL, 0); return QSE_NULL; } - qse_awk_refupval (run, v); + qse_awk_rtx_refupval (run, v); /*nargs++; p = p->next;*/ } QSE_ASSERT (nargs == call->nargs); - if (afn != QSE_NULL) + if (fun != QSE_NULL) { /* extra step for normal awk functions */ - while (nargs < afn->nargs) + while (nargs < fun->nargs) { /* push as many nils as the number of missing actual arguments */ if (__raw_push(run,qse_awk_val_nil) == -1) { UNWIND_RUN_STACK (run, nargs); - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ENOMEM, nde->line, QSE_NULL, 0); return QSE_NULL; @@ -6054,11 +6054,11 @@ static qse_awk_val_t* eval_call ( qse_dprintf (QSE_T("running function body\n")); #endif - if (afn != QSE_NULL) + if (fun != QSE_NULL) { /* normal awk function */ - QSE_ASSERT (afn->body->type == QSE_AWK_NDE_BLK); - n = run_block(run,(qse_awk_nde_blk_t*)afn->body); + QSE_ASSERT (fun->body->type == QSE_AWK_NDE_BLK); + n = run_block(run,(qse_awk_nde_blk_t*)fun->body); } else { @@ -6066,20 +6066,20 @@ static qse_awk_val_t* eval_call ( /* intrinsic function */ QSE_ASSERT ( - call->nargs >= call->what.bfn.arg.min && - call->nargs <= call->what.bfn.arg.max); + call->nargs >= call->what.fnc.arg.min && + call->nargs <= call->what.fnc.arg.max); - if (call->what.bfn.handler != QSE_NULL) + if (call->what.fnc.handler != QSE_NULL) { run->errnum = QSE_AWK_ENOERR; /* NOTE: oname is used when the handler is invoked. * name might be differnt from oname if * qse_awk_setword has been used */ - n = call->what.bfn.handler ( + n = call->what.fnc.handler ( run, - call->what.bfn.oname.ptr, - call->what.bfn.oname.len); + call->what.fnc.oname.ptr, + call->what.fnc.oname.len); if (n <= -1) { @@ -6087,7 +6087,7 @@ static qse_awk_val_t* eval_call ( { /* the handler has not set the error. * fix it */ - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_EBFNIMPL, nde->line, QSE_NULL, 0); } @@ -6110,7 +6110,7 @@ static qse_awk_val_t* eval_call ( #endif for (i = 0; i < nargs; i++) { - qse_awk_refdownval (run, STACK_ARG(run,i)); + qse_awk_rtx_refdownval (run, STACK_ARG(run,i)); } #ifdef DEBUG_RUN @@ -6131,7 +6131,7 @@ static qse_awk_val_t* eval_call ( /* if the earlier operations failed and this function * has to return a error, the return value is just * destroyed and replaced by nil */ - qse_awk_refdownval (run, v); + qse_awk_rtx_refdownval (run, v); STACK_RETVAL(run) = qse_awk_val_nil; } else @@ -6142,7 +6142,7 @@ static qse_awk_val_t* eval_call ( * reached zero because its reference has been incremented * in run_return or directly by qse_awk_rtx_setretval * regardless of its reference count. */ - qse_awk_refdownval_nofree (run, v); + qse_awk_rtx_refdownval_nofree (run, v); } run->stack_top = (qse_size_t)run->stack[run->stack_base+1]; @@ -6181,7 +6181,7 @@ static int get_reference ( tgt->id.name.len, qse_awk_val_nil, 0); if (pair == QSE_NULL) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ENOMEM, nde->line, QSE_NULL, 0); return -1; @@ -6223,7 +6223,7 @@ static int get_reference ( tgt->id.name.len, qse_awk_val_nil, 0); if (pair == QSE_NULL) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ENOMEM, nde->line, QSE_NULL, 0); return -1; @@ -6272,20 +6272,20 @@ static int get_reference ( v = eval_expression (run, ((qse_awk_nde_pos_t*)nde)->val); if (v == QSE_NULL) return -1; - qse_awk_refupval (run, v); - n = qse_awk_valtonum (run, v, &lv, &rv); - qse_awk_refdownval (run, v); + qse_awk_rtx_refupval (run, v); + n = qse_awk_rtx_valtonum (run, v, &lv, &rv); + qse_awk_rtx_refdownval (run, v); if (n == -1) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_EPOSIDX, nde->line, QSE_NULL, 0); return -1; } if (n == 1) lv = (qse_long_t)rv; if (!IS_VALID_POSIDX(lv)) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_EPOSIDX, nde->line, QSE_NULL, 0); return -1; } @@ -6294,7 +6294,7 @@ static int get_reference ( return 0; } - qse_awk_setrunerror (run, QSE_AWK_ENOTREF, nde->line, QSE_NULL, 0); + qse_awk_rtx_seterror (run, QSE_AWK_ENOTREF, nde->line, QSE_NULL, 0); return -1; } @@ -6312,20 +6312,20 @@ static qse_awk_val_t** get_reference_indexed ( { qse_awk_val_t* tmp; - tmp = qse_awk_makemapval (run); + tmp = qse_awk_rtx_makemapval (run); if (tmp == QSE_NULL) { run->errlin = nde->line; return QSE_NULL; } - qse_awk_refdownval (run, *val); + qse_awk_rtx_refdownval (run, *val); *val = tmp; - qse_awk_refupval (run, (qse_awk_val_t*)*val); + qse_awk_rtx_refupval (run, (qse_awk_val_t*)*val); } else if ((*val)->type != QSE_AWK_VAL_MAP) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ENOTMAP, nde->line, QSE_NULL, 0); return QSE_NULL; } @@ -6349,12 +6349,12 @@ static qse_awk_val_t** get_reference_indexed ( if (pair == QSE_NULL) { if (str != idxbuf) QSE_AWK_FREE (run->awk, str); - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ENOMEM, nde->line, QSE_NULL, 0); return QSE_NULL; } - qse_awk_refupval (run, QSE_MAP_VPTR(pair)); + qse_awk_rtx_refupval (run, QSE_MAP_VPTR(pair)); } if (str != idxbuf) QSE_AWK_FREE (run->awk, str); @@ -6365,7 +6365,7 @@ static qse_awk_val_t* eval_int (qse_awk_rtx_t* run, qse_awk_nde_t* nde) { qse_awk_val_t* val; - val = qse_awk_makeintval (run, ((qse_awk_nde_int_t*)nde)->val); + val = qse_awk_rtx_makeintval (run, ((qse_awk_nde_int_t*)nde)->val); if (val == QSE_NULL) { run->errlin = nde->line; @@ -6380,7 +6380,7 @@ static qse_awk_val_t* eval_real (qse_awk_rtx_t* run, qse_awk_nde_t* nde) { qse_awk_val_t* val; - val = qse_awk_makerealval (run, ((qse_awk_nde_real_t*)nde)->val); + val = qse_awk_rtx_makerealval (run, ((qse_awk_nde_real_t*)nde)->val); if (val == QSE_NULL) { run->errlin = nde->line; @@ -6395,7 +6395,7 @@ static qse_awk_val_t* eval_str (qse_awk_rtx_t* run, qse_awk_nde_t* nde) { qse_awk_val_t* val; - val = qse_awk_makestrval (run, + val = qse_awk_rtx_makestrval (run, ((qse_awk_nde_str_t*)nde)->ptr, ((qse_awk_nde_str_t*)nde)->len); if (val == QSE_NULL) @@ -6411,7 +6411,7 @@ static qse_awk_val_t* eval_rex (qse_awk_rtx_t* run, qse_awk_nde_t* nde) { qse_awk_val_t* val; - val = qse_awk_makerexval (run, + val = qse_awk_rtx_makerexval (run, ((qse_awk_nde_rex_t*)nde)->ptr, ((qse_awk_nde_rex_t*)nde)->len, ((qse_awk_nde_rex_t*)nde)->code); @@ -6464,20 +6464,20 @@ static qse_awk_val_t* eval_indexed ( { qse_awk_val_t* tmp; - tmp = qse_awk_makemapval (run); + tmp = qse_awk_rtx_makemapval (run); if (tmp == QSE_NULL) { run->errlin = nde->line; return QSE_NULL; } - qse_awk_refdownval (run, *val); + qse_awk_rtx_refdownval (run, *val); *val = tmp; - qse_awk_refupval (run, (qse_awk_val_t*)*val); + qse_awk_rtx_refupval (run, (qse_awk_val_t*)*val); } else if ((*val)->type != QSE_AWK_VAL_MAP) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ENOTMAP, nde->line, QSE_NULL, 0); return QSE_NULL; } @@ -6511,12 +6511,12 @@ static qse_awk_val_t* eval_namedidx (qse_awk_rtx_t* run, qse_awk_nde_t* nde) tgt->id.name.ptr, tgt->id.name.len, qse_awk_val_nil, 0); if (pair == QSE_NULL) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ENOMEM, nde->line, QSE_NULL, 0); return QSE_NULL; } - qse_awk_refupval (run, QSE_MAP_VPTR(pair)); + qse_awk_rtx_refupval (run, QSE_MAP_VPTR(pair)); } return eval_indexed (run, tgt, (qse_awk_val_t**)&QSE_MAP_VPTR(pair)); @@ -6551,12 +6551,12 @@ static qse_awk_val_t* eval_pos (qse_awk_rtx_t* run, qse_awk_nde_t* nde) v = eval_expression (run, pos->val); if (v == QSE_NULL) return QSE_NULL; - qse_awk_refupval (run, v); - n = qse_awk_valtonum (run, v, &lv, &rv); - qse_awk_refdownval (run, v); + qse_awk_rtx_refupval (run, v); + n = qse_awk_rtx_valtonum (run, v, &lv, &rv); + qse_awk_rtx_refdownval (run, v); if (n == -1) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_EPOSIDX, nde->line, QSE_NULL, 0); return QSE_NULL; } @@ -6564,7 +6564,7 @@ static qse_awk_val_t* eval_pos (qse_awk_rtx_t* run, qse_awk_nde_t* nde) if (lv < 0) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_EPOSIDX, nde->line, QSE_NULL, 0); return QSE_NULL; } @@ -6603,17 +6603,17 @@ static qse_awk_val_t* eval_getline (qse_awk_rtx_t* run, qse_awk_nde_t* nde) /* TODO: distinction between v->type == QSE_AWK_VAL_STR * and v->type != QSE_AWK_VAL_STR * if you use the buffer the v directly when - * v->type == QSE_AWK_VAL_STR, qse_awk_refdownval(v) + * v->type == QSE_AWK_VAL_STR, qse_awk_rtx_refdownval(v) * should not be called immediately below */ - qse_awk_refupval (run, v); - in = qse_awk_valtostr ( + qse_awk_rtx_refupval (run, v); + in = qse_awk_rtx_valtostr ( run, v, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &len); if (in == QSE_NULL) { - qse_awk_refdownval (run, v); + qse_awk_rtx_refdownval (run, v); return QSE_NULL; } - qse_awk_refdownval (run, v); + qse_awk_rtx_refdownval (run, v); if (len <= 0) { @@ -6643,7 +6643,7 @@ static qse_awk_val_t* eval_getline (qse_awk_rtx_t* run, qse_awk_nde_t* nde) if (qse_str_init (&buf, MMGR(run), DEF_BUF_CAPA) == QSE_NULL) { if (in != QSE_NULL) QSE_AWK_FREE (run->awk, in); - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ENOMEM, nde->line, QSE_NULL, 0); return QSE_NULL; } @@ -6662,7 +6662,7 @@ static qse_awk_val_t* eval_getline (qse_awk_rtx_t* run, qse_awk_nde_t* nde) if (p->var == QSE_NULL) { /* set $0 with the input value */ - if (qse_awk_setrec (run, 0, + if (qse_awk_rtx_setrec (run, 0, QSE_STR_PTR(&buf), QSE_STR_LEN(&buf)) == -1) { @@ -6676,7 +6676,7 @@ static qse_awk_val_t* eval_getline (qse_awk_rtx_t* run, qse_awk_nde_t* nde) { qse_awk_val_t* v; - v = qse_awk_makestrval (run, + v = qse_awk_rtx_makestrval (run, QSE_STR_PTR(&buf), QSE_STR_LEN(&buf)); qse_str_fini (&buf); if (v == QSE_NULL) @@ -6685,13 +6685,13 @@ static qse_awk_val_t* eval_getline (qse_awk_rtx_t* run, qse_awk_nde_t* nde) return QSE_NULL; } - qse_awk_refupval (run, v); + qse_awk_rtx_refupval (run, v); if (do_assignment(run, p->var, v) == QSE_NULL) { - qse_awk_refdownval (run, v); + qse_awk_rtx_refdownval (run, v); return QSE_NULL; } - qse_awk_refdownval (run, v); + qse_awk_rtx_refdownval (run, v); } } else @@ -6700,7 +6700,7 @@ static qse_awk_val_t* eval_getline (qse_awk_rtx_t* run, qse_awk_nde_t* nde) } skip_read: - res = qse_awk_makeintval (run, n); + res = qse_awk_rtx_makeintval (run, n); if (res == QSE_NULL) run->errlin = nde->line; return res; } @@ -6745,13 +6745,13 @@ static int read_record (qse_awk_rtx_t* run) { qse_ssize_t n; - if (qse_awk_clrrec (run, QSE_FALSE) == -1) return -1; + if (qse_awk_rtx_clrrec (run, QSE_FALSE) == -1) return -1; n = qse_awk_readeio ( run, QSE_AWK_IN_CONSOLE, QSE_T(""), &run->inrec.line); if (n <= -1) { - qse_awk_clrrec (run, QSE_FALSE); + qse_awk_rtx_clrrec (run, QSE_FALSE); return -1; } @@ -6767,7 +6767,7 @@ static int read_record (qse_awk_rtx_t* run) return 0; } - if (qse_awk_setrec (run, 0, + if (qse_awk_rtx_setrec (run, 0, QSE_STR_PTR(&run->inrec.line), QSE_STR_LEN(&run->inrec.line)) == -1) return -1; @@ -6786,7 +6786,7 @@ static int shorten_record (qse_awk_rtx_t* run, qse_size_t nflds) if (nflds > 1) { v = STACK_GLOBAL(run, QSE_AWK_GLOBAL_OFS); - qse_awk_refupval (run, v); + qse_awk_rtx_refupval (run, v); if (v->type == QSE_AWK_VAL_NIL) { @@ -6801,7 +6801,7 @@ static int shorten_record (qse_awk_rtx_t* run, qse_size_t nflds) } else { - ofs = qse_awk_valtostr ( + ofs = qse_awk_rtx_valtostr ( run, v, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &ofs_len); if (ofs == QSE_NULL) return -1; @@ -6813,7 +6813,7 @@ static int shorten_record (qse_awk_rtx_t* run, qse_size_t nflds) if (qse_str_init ( &tmp, MMGR(run), QSE_STR_LEN(&run->inrec.line)) == QSE_NULL) { - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return -1; } @@ -6823,8 +6823,8 @@ static int shorten_record (qse_awk_rtx_t* run, qse_size_t nflds) { if (ofs_free != QSE_NULL) QSE_AWK_FREE (run->awk, ofs_free); - if (nflds > 1) qse_awk_refdownval (run, v); - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + if (nflds > 1) qse_awk_rtx_refdownval (run, v); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return -1; } @@ -6834,30 +6834,30 @@ static int shorten_record (qse_awk_rtx_t* run, qse_size_t nflds) { if (ofs_free != QSE_NULL) QSE_AWK_FREE (run->awk, ofs_free); - if (nflds > 1) qse_awk_refdownval (run, v); + if (nflds > 1) qse_awk_rtx_refdownval (run, v); - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return -1; } } if (ofs_free != QSE_NULL) QSE_AWK_FREE (run->awk, ofs_free); - if (nflds > 1) qse_awk_refdownval (run, v); + if (nflds > 1) qse_awk_rtx_refdownval (run, v); - v = (qse_awk_val_t*) qse_awk_makestrval ( + v = (qse_awk_val_t*) qse_awk_rtx_makestrval ( run, QSE_STR_PTR(&tmp), QSE_STR_LEN(&tmp)); if (v == QSE_NULL) return -1; - qse_awk_refdownval (run, run->inrec.d0); + qse_awk_rtx_refdownval (run, run->inrec.d0); run->inrec.d0 = v; - qse_awk_refupval (run, run->inrec.d0); + qse_awk_rtx_refupval (run, run->inrec.d0); qse_str_swap (&tmp, &run->inrec.line); qse_str_fini (&tmp); for (i = nflds; i < run->inrec.nflds; i++) { - qse_awk_refdownval (run, run->inrec.flds[i].val); + qse_awk_rtx_refdownval (run, run->inrec.flds[i].val); } run->inrec.nflds = nflds; @@ -6878,33 +6878,33 @@ static qse_char_t* idxnde_to_str ( idx = eval_expression (run, nde); if (idx == QSE_NULL) return QSE_NULL; - qse_awk_refupval (run, idx); + qse_awk_rtx_refupval (run, idx); str = QSE_NULL; if (buf != QSE_NULL) { /* try with a fixed-size buffer */ - str = qse_awk_valtostr ( + str = qse_awk_rtx_valtostr ( run, idx, QSE_AWK_VALTOSTR_FIXED, (qse_str_t*)buf, len); } if (str == QSE_NULL) { /* if it doen't work, switch to the dynamic mode */ - str = qse_awk_valtostr ( + str = qse_awk_rtx_valtostr ( run, idx, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, len); if (str == QSE_NULL) { - qse_awk_refdownval (run, idx); + qse_awk_rtx_refdownval (run, idx); /* change error line */ run->errlin = nde->line; return QSE_NULL; } } - qse_awk_refdownval (run, idx); + qse_awk_rtx_refdownval (run, idx); } else { @@ -6914,7 +6914,7 @@ static qse_char_t* idxnde_to_str ( if (qse_str_init (&idxstr, MMGR(run), DEF_BUF_CAPA) == QSE_NULL) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ENOMEM, nde->line, QSE_NULL, 0); return QSE_NULL; } @@ -6928,32 +6928,32 @@ static qse_char_t* idxnde_to_str ( return QSE_NULL; } - qse_awk_refupval (run, idx); + qse_awk_rtx_refupval (run, idx); if (QSE_STR_LEN(&idxstr) > 0 && qse_str_ncat (&idxstr, run->global.subsep.ptr, run->global.subsep.len) == (qse_size_t)-1) { - qse_awk_refdownval (run, idx); + qse_awk_rtx_refdownval (run, idx); qse_str_fini (&idxstr); - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ENOMEM, nde->line, QSE_NULL, 0); return QSE_NULL; } - if (qse_awk_valtostr ( + if (qse_awk_rtx_valtostr ( run, idx, 0, &idxstr, QSE_NULL) == QSE_NULL) { - qse_awk_refdownval (run, idx); + qse_awk_rtx_refdownval (run, idx); qse_str_fini (&idxstr); return QSE_NULL; } - qse_awk_refdownval (run, idx); + qse_awk_rtx_refdownval (run, idx); nde = nde->next; } @@ -6980,7 +6980,7 @@ qse_char_t* qse_awk_format ( do { \ if (qse_str_ccat (out, (c)) == -1) \ { \ - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); \ + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); \ return QSE_NULL; \ } \ } while (0) @@ -6989,7 +6989,7 @@ qse_char_t* qse_awk_format ( do { \ if (qse_str_ccat (fbu, (c)) == -1) \ { \ - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); \ + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); \ return QSE_NULL; \ } \ } while (0) @@ -7058,7 +7058,7 @@ qse_char_t* qse_awk_format ( { if (stack_arg_idx >= nargs_on_stack) { - qse_awk_setrunerrnum (run, QSE_AWK_EFMTARG); + qse_awk_rtx_seterrnum (run, QSE_AWK_EFMTARG); return QSE_NULL; } v = qse_awk_rtx_getarg (run, stack_arg_idx); @@ -7069,7 +7069,7 @@ qse_char_t* qse_awk_format ( { if (stack_arg_idx >= nargs_on_stack) { - qse_awk_setrunerrnum (run, QSE_AWK_EFMTARG); + qse_awk_rtx_seterrnum (run, QSE_AWK_EFMTARG); return QSE_NULL; } v = val; @@ -7081,9 +7081,9 @@ qse_char_t* qse_awk_format ( } } - qse_awk_refupval (run, v); - n = qse_awk_valtonum (run, v, &width, &r); - qse_awk_refdownval (run, v); + qse_awk_rtx_refupval (run, v); + n = qse_awk_rtx_valtonum (run, v, &width, &r); + qse_awk_rtx_refdownval (run, v); if (n == -1) return QSE_NULL; if (n == 1) width = (qse_long_t)r; @@ -7111,7 +7111,7 @@ qse_char_t* qse_awk_format ( GROW (&run->format.tmp); if (run->format.tmp.ptr == QSE_NULL) { - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return QSE_NULL; } @@ -7164,7 +7164,7 @@ qse_char_t* qse_awk_format ( { if (stack_arg_idx >= nargs_on_stack) { - qse_awk_setrunerrnum (run, QSE_AWK_EFMTARG); + qse_awk_rtx_seterrnum (run, QSE_AWK_EFMTARG); return QSE_NULL; } v = qse_awk_rtx_getarg (run, stack_arg_idx); @@ -7175,7 +7175,7 @@ qse_char_t* qse_awk_format ( { if (stack_arg_idx >= nargs_on_stack) { - qse_awk_setrunerrnum (run, QSE_AWK_EFMTARG); + qse_awk_rtx_seterrnum (run, QSE_AWK_EFMTARG); return QSE_NULL; } v = val; @@ -7187,9 +7187,9 @@ qse_char_t* qse_awk_format ( } } - qse_awk_refupval (run, v); - n = qse_awk_valtonum (run, v, &prec, &r); - qse_awk_refdownval (run, v); + qse_awk_rtx_refupval (run, v); + n = qse_awk_rtx_valtonum (run, v, &prec, &r); + qse_awk_rtx_refdownval (run, v); if (n == -1) return QSE_NULL; if (n == 1) prec = (qse_long_t)r; @@ -7215,7 +7215,7 @@ qse_char_t* qse_awk_format ( GROW (&run->format.tmp); if (run->format.tmp.ptr == QSE_NULL) { - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return QSE_NULL; } @@ -7285,7 +7285,7 @@ qse_char_t* qse_awk_format ( { if (stack_arg_idx >= nargs_on_stack) { - qse_awk_setrunerrnum (run, QSE_AWK_EFMTARG); + qse_awk_rtx_seterrnum (run, QSE_AWK_EFMTARG); return QSE_NULL; } v = qse_awk_rtx_getarg (run, stack_arg_idx); @@ -7296,7 +7296,7 @@ qse_char_t* qse_awk_format ( { if (stack_arg_idx >= nargs_on_stack) { - qse_awk_setrunerrnum (run, QSE_AWK_EFMTARG); + qse_awk_rtx_seterrnum (run, QSE_AWK_EFMTARG); return QSE_NULL; } v = val; @@ -7308,9 +7308,9 @@ qse_char_t* qse_awk_format ( } } - qse_awk_refupval (run, v); - n = qse_awk_valtonum (run, v, &l, &r); - qse_awk_refdownval (run, v); + qse_awk_rtx_refupval (run, v); + n = qse_awk_rtx_valtonum (run, v, &l, &r); + qse_awk_rtx_refdownval (run, v); if (n == -1) return QSE_NULL; if (n == 1) l = (qse_long_t)r; @@ -7338,7 +7338,7 @@ qse_char_t* qse_awk_format ( GROW (&run->format.tmp); if (run->format.tmp.ptr == QSE_NULL) { - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return QSE_NULL; } @@ -7373,7 +7373,7 @@ qse_char_t* qse_awk_format ( { if (stack_arg_idx >= nargs_on_stack) { - qse_awk_setrunerrnum (run, QSE_AWK_EFMTARG); + qse_awk_rtx_seterrnum (run, QSE_AWK_EFMTARG); return QSE_NULL; } v = qse_awk_rtx_getarg (run, stack_arg_idx); @@ -7384,7 +7384,7 @@ qse_char_t* qse_awk_format ( { if (stack_arg_idx >= nargs_on_stack) { - qse_awk_setrunerrnum (run, QSE_AWK_EFMTARG); + qse_awk_rtx_seterrnum (run, QSE_AWK_EFMTARG); return QSE_NULL; } v = val; @@ -7396,9 +7396,9 @@ qse_char_t* qse_awk_format ( } } - qse_awk_refupval (run, v); - n = qse_awk_valtonum (run, v, &l, &r); - qse_awk_refdownval (run, v); + qse_awk_rtx_refupval (run, v); + n = qse_awk_rtx_valtonum (run, v, &l, &r); + qse_awk_rtx_refdownval (run, v); if (n == -1) return QSE_NULL; if (n == 0) r = (qse_real_t)l; @@ -7422,7 +7422,7 @@ qse_char_t* qse_awk_format ( GROW (&run->format.tmp); if (run->format.tmp.ptr == QSE_NULL) { - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return QSE_NULL; } @@ -7450,7 +7450,7 @@ qse_char_t* qse_awk_format ( { if (stack_arg_idx >= nargs_on_stack) { - qse_awk_setrunerrnum (run, QSE_AWK_EFMTARG); + qse_awk_rtx_seterrnum (run, QSE_AWK_EFMTARG); return QSE_NULL; } v = qse_awk_rtx_getarg (run, stack_arg_idx); @@ -7461,7 +7461,7 @@ qse_char_t* qse_awk_format ( { if (stack_arg_idx >= nargs_on_stack) { - qse_awk_setrunerrnum (run, QSE_AWK_EFMTARG); + qse_awk_rtx_seterrnum (run, QSE_AWK_EFMTARG); return QSE_NULL; } v = val; @@ -7473,7 +7473,7 @@ qse_char_t* qse_awk_format ( } } - qse_awk_refupval (run, v); + qse_awk_rtx_refupval (run, v); if (v->type == QSE_AWK_VAL_NIL) { ch = QSE_T('\0'); @@ -7501,8 +7501,8 @@ qse_char_t* qse_awk_format ( } else { - qse_awk_refdownval (run, v); - qse_awk_setrunerrnum (run, QSE_AWK_EVALTYPE); + qse_awk_rtx_refdownval (run, v); + qse_awk_rtx_seterrnum (run, QSE_AWK_EVALTYPE); return QSE_NULL; } @@ -7515,8 +7515,8 @@ qse_char_t* qse_awk_format ( { if (qse_str_ccat (out, QSE_T(' ')) == -1) { - qse_awk_refdownval (run, v); - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_refdownval (run, v); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return QSE_NULL; } width--; @@ -7527,8 +7527,8 @@ qse_char_t* qse_awk_format ( { if (qse_str_ccat (out, ch) == -1) { - qse_awk_refdownval (run, v); - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_refdownval (run, v); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return QSE_NULL; } } @@ -7539,15 +7539,15 @@ qse_char_t* qse_awk_format ( { if (qse_str_ccat (out, QSE_T(' ')) == -1) { - qse_awk_refdownval (run, v); - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_refdownval (run, v); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return QSE_NULL; } width--; } } - qse_awk_refdownval (run, v); + qse_awk_rtx_refdownval (run, v); } else if (fmt[i] == QSE_T('s')) { @@ -7560,7 +7560,7 @@ qse_char_t* qse_awk_format ( { if (stack_arg_idx >= nargs_on_stack) { - qse_awk_setrunerrnum (run, QSE_AWK_EFMTARG); + qse_awk_rtx_seterrnum (run, QSE_AWK_EFMTARG); return QSE_NULL; } v = qse_awk_rtx_getarg (run, stack_arg_idx); @@ -7571,7 +7571,7 @@ qse_char_t* qse_awk_format ( { if (stack_arg_idx >= nargs_on_stack) { - qse_awk_setrunerrnum (run, QSE_AWK_EFMTARG); + qse_awk_rtx_seterrnum (run, QSE_AWK_EFMTARG); return QSE_NULL; } v = val; @@ -7583,7 +7583,7 @@ qse_char_t* qse_awk_format ( } } - qse_awk_refupval (run, v); + qse_awk_rtx_refupval (run, v); if (v->type == QSE_AWK_VAL_NIL) { str = QSE_T(""); @@ -7598,16 +7598,16 @@ qse_char_t* qse_awk_format ( { if (v == val) { - qse_awk_refdownval (run, v); - qse_awk_setrunerrnum (run, QSE_AWK_EFMTCNV); + qse_awk_rtx_refdownval (run, v); + qse_awk_rtx_seterrnum (run, QSE_AWK_EFMTCNV); return QSE_NULL; } - str = qse_awk_valtostr (run, v, + str = qse_awk_rtx_valtostr (run, v, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &str_len); if (str == QSE_NULL) { - qse_awk_refdownval (run, v); + qse_awk_rtx_refdownval (run, v); return QSE_NULL; } @@ -7625,8 +7625,8 @@ qse_char_t* qse_awk_format ( { if (str_free != QSE_NULL) QSE_AWK_FREE (run->awk, str_free); - qse_awk_refdownval (run, v); - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_refdownval (run, v); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return QSE_NULL; } width--; @@ -7639,8 +7639,8 @@ qse_char_t* qse_awk_format ( { if (str_free != QSE_NULL) QSE_AWK_FREE (run->awk, str_free); - qse_awk_refdownval (run, v); - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_refdownval (run, v); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return QSE_NULL; } } @@ -7653,15 +7653,15 @@ qse_char_t* qse_awk_format ( { if (qse_str_ccat (out, QSE_T(' ')) == -1) { - qse_awk_refdownval (run, v); - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_refdownval (run, v); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return QSE_NULL; } width--; } } - qse_awk_refdownval (run, v); + qse_awk_rtx_refdownval (run, v); } else /*if (fmt[i] == QSE_T('%'))*/ { diff --git a/qse/lib/awk/std.c b/qse/lib/awk/std.c index a8b93287..a934d2f6 100644 --- a/qse/lib/awk/std.c +++ b/qse/lib/awk/std.c @@ -369,7 +369,7 @@ static qse_ssize_t awk_eio_pipe ( /*dprint (QSE_T("opening %s of type %d (pipe)\n"), epa->name, epa->type);*/ handle = qse_pio_open ( - qse_awk_rtx_getmmgr(epa->run), + qse_awk_rtx_getmmgr(epa->rtx), 0, epa->name, flags|QSE_PIO_SHELL|QSE_PIO_TEXT @@ -454,7 +454,7 @@ static qse_ssize_t awk_eio_file ( /*dprint (QSE_T("opening %s of type %d (file)\n"), epa->name, epa->type);*/ handle = qse_fio_open ( - qse_awk_rtx_getmmgr(epa->run), + qse_awk_rtx_getmmgr(epa->rtx), 0, epa->name, flags | QSE_FIO_TEXT, @@ -468,7 +468,7 @@ static qse_ssize_t awk_eio_file ( errarg.ptr = epa->name; errarg.len = qse_strlen(epa->name); - qse_awk_setrunerror (epa->run, QSE_AWK_EOPEN, 0, &errarg, 1); + qse_awk_rtx_seterror (epa->rtx, QSE_AWK_EOPEN, 0, &errarg, 1); return -1; } @@ -544,7 +544,7 @@ static int open_eio_console (qse_awk_eio_t* epa) qse_sio_t* fp; fp = qse_sio_open ( - qse_awk_rtx_getmmgr(epa->run), + qse_awk_rtx_getmmgr(epa->rtx), 0, rd->ic.files[rd->ic.index], QSE_SIO_READ @@ -556,13 +556,13 @@ static int open_eio_console (qse_awk_eio_t* epa) errarg.ptr = rd->ic.files[rd->ic.index]; errarg.len = qse_strlen(rd->ic.files[rd->ic.index]); - qse_awk_setrunerror (epa->run, QSE_AWK_EOPEN, 0, &errarg, 1); + qse_awk_rtx_seterror (epa->rtx, QSE_AWK_EOPEN, 0, &errarg, 1); return -1; } /*dprint (QSE_T(" console(r) - %s\n"), rd->ic.files[rd->ic.index]);*/ if (qse_awk_rtx_setfilename ( - epa->run, rd->ic.files[rd->ic.index], + epa->rtx, rd->ic.files[rd->ic.index], qse_strlen(rd->ic.files[rd->ic.index])) == -1) { qse_sio_close (fp); @@ -579,7 +579,7 @@ static int open_eio_console (qse_awk_eio_t* epa) { /*dprint (QSE_T(" console(w) - \n"));*/ - if (qse_awk_rtx_setofilename (epa->run, QSE_T(""), 0) == -1) + if (qse_awk_rtx_setofilename (epa->rtx, QSE_T(""), 0) == -1) { return -1; } @@ -646,7 +646,7 @@ static qse_ssize_t awk_eio_console ( qse_sio_t* fp; fp = qse_sio_open ( - qse_awk_rtx_getmmgr(epa->run), + qse_awk_rtx_getmmgr(epa->rtx), 0, rd->ic.files[rd->ic.index], QSE_SIO_READ @@ -659,12 +659,12 @@ static qse_ssize_t awk_eio_console ( errarg.ptr = rd->ic.files[rd->ic.index]; errarg.len = qse_strlen(rd->ic.files[rd->ic.index]); - qse_awk_setrunerror (epa->run, QSE_AWK_EOPEN, 0, &errarg, 1); + qse_awk_rtx_seterror (epa->rtx, QSE_AWK_EOPEN, 0, &errarg, 1); return -1; } if (qse_awk_rtx_setfilename ( - epa->run, rd->ic.files[rd->ic.index], + epa->rtx, rd->ic.files[rd->ic.index], qse_strlen(rd->ic.files[rd->ic.index])) == -1) { qse_sio_close (fp); @@ -672,7 +672,7 @@ static qse_ssize_t awk_eio_console ( } if (qse_awk_rtx_setglobal ( - epa->run, QSE_AWK_GLOBAL_FNR, qse_awk_val_zero) == -1) + epa->rtx, QSE_AWK_GLOBAL_FNR, qse_awk_val_zero) == -1) { /* need to reset FNR */ qse_sio_close (fp); @@ -776,7 +776,7 @@ enum BFN_MATH_F }; -static int bfn_math_1 ( +static int fnc_math_1 ( qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl, int type, void* f) { qse_size_t nargs; @@ -791,7 +791,7 @@ static int bfn_math_1 ( a0 = qse_awk_rtx_getarg (run, 0); - n = qse_awk_valtonum (run, a0, &lv, &rv); + n = qse_awk_rtx_valtonum (run, a0, &lv, &rv); if (n == -1) return -1; if (n == 0) rv = (qse_real_t)lv; @@ -799,23 +799,23 @@ static int bfn_math_1 ( { long double (*rf) (long double) = (long double(*)(long double))f; - r = qse_awk_makerealval (run, rf(rv)); + r = qse_awk_rtx_makerealval (run, rf(rv)); } else if (type == BFN_MATH_D) { double (*rf) (double) = (double(*)(double))f; - r = qse_awk_makerealval (run, rf(rv)); + r = qse_awk_rtx_makerealval (run, rf(rv)); } else { QSE_ASSERT (type == BFN_MATH_F); float (*rf) (float) = (float(*)(float))f; - r = qse_awk_makerealval (run, rf(rv)); + r = qse_awk_rtx_makerealval (run, rf(rv)); } if (r == QSE_NULL) { - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return -1; } @@ -823,7 +823,7 @@ static int bfn_math_1 ( return 0; } -static int bfn_math_2 ( +static int fnc_math_2 ( qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl, int type, void* f) { qse_size_t nargs; @@ -839,11 +839,11 @@ static int bfn_math_2 ( a0 = qse_awk_rtx_getarg (run, 0); a1 = qse_awk_rtx_getarg (run, 1); - n = qse_awk_valtonum (run, a0, &lv0, &rv0); + n = qse_awk_rtx_valtonum (run, a0, &lv0, &rv0); if (n == -1) return -1; if (n == 0) rv0 = (qse_real_t)lv0; - n = qse_awk_valtonum (run, a1, &lv1, &rv1); + n = qse_awk_rtx_valtonum (run, a1, &lv1, &rv1); if (n == -1) return -1; if (n == 0) rv1 = (qse_real_t)lv1; @@ -851,23 +851,23 @@ static int bfn_math_2 ( { long double (*rf) (long double,long double) = (long double(*)(long double,long double))f; - r = qse_awk_makerealval (run, rf(rv0,rv1)); + r = qse_awk_rtx_makerealval (run, rf(rv0,rv1)); } else if (type == BFN_MATH_D) { double (*rf) (double,double) = (double(*)(double,double))f; - r = qse_awk_makerealval (run, rf(rv0,rv1)); + r = qse_awk_rtx_makerealval (run, rf(rv0,rv1)); } else { QSE_ASSERT (type == BFN_MATH_F); float (*rf) (float,float) = (float(*)(float,float))f; - r = qse_awk_makerealval (run, rf(rv0,rv1)); + r = qse_awk_rtx_makerealval (run, rf(rv0,rv1)); } if (r == QSE_NULL) { - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return -1; } @@ -875,9 +875,9 @@ static int bfn_math_2 ( return 0; } -static int bfn_sin (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) +static int fnc_sin (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) { - return bfn_math_1 ( + return fnc_math_1 ( run, fnm, fnl, #if defined(HAVE_SINL) BFN_MATH_LD, (void*)sinl @@ -891,9 +891,9 @@ static int bfn_sin (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) ); } -static int bfn_cos (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) +static int fnc_cos (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) { - return bfn_math_1 ( + return fnc_math_1 ( run, fnm, fnl, #if defined(HAVE_COSL) BFN_MATH_LD, (void*)cosl @@ -907,9 +907,9 @@ static int bfn_cos (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) ); } -static int bfn_tan (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) +static int fnc_tan (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) { - return bfn_math_1 ( + return fnc_math_1 ( run, fnm, fnl, #if defined(HAVE_TANL) BFN_MATH_LD, (void*)tanl @@ -923,9 +923,9 @@ static int bfn_tan (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) ); } -static int bfn_atan (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) +static int fnc_atan (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) { - return bfn_math_1 ( + return fnc_math_1 ( run, fnm, fnl, #if defined(HAVE_ATANL) BFN_MATH_LD, (void*)atanl @@ -939,9 +939,9 @@ static int bfn_atan (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) ); } -static int bfn_atan2 (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) +static int fnc_atan2 (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) { - return bfn_math_2 ( + return fnc_math_2 ( run, fnm, fnl, #if defined(HAVE_ATAN2L) BFN_MATH_LD, (void*)atan2l @@ -955,9 +955,9 @@ static int bfn_atan2 (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) ); } -static int bfn_log (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) +static int fnc_log (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) { - return bfn_math_1 ( + return fnc_math_1 ( run, fnm, fnl, #if defined(HAVE_LOGL) BFN_MATH_LD, (void*)logl @@ -971,9 +971,9 @@ static int bfn_log (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) ); } -static int bfn_exp (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) +static int fnc_exp (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) { - return bfn_math_1 ( + return fnc_math_1 ( run, fnm, fnl, #if defined(HAVE_EXPL) BFN_MATH_LD, (void*)expl @@ -987,9 +987,9 @@ static int bfn_exp (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) ); } -static int bfn_sqrt (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) +static int fnc_sqrt (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) { - return bfn_math_1 ( + return fnc_math_1 ( run, fnm, fnl, #if defined(HAVE_SQRTL) BFN_MATH_LD, (void*)sqrtl @@ -1003,7 +1003,7 @@ static int bfn_sqrt (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) ); } -static int bfn_int (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) +static int fnc_int (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) { qse_size_t nargs; qse_awk_val_t* a0; @@ -1017,14 +1017,14 @@ static int bfn_int (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) a0 = qse_awk_rtx_getarg (run, 0); - n = qse_awk_valtonum (run, a0, &lv, &rv); + n = qse_awk_rtx_valtonum (run, a0, &lv, &rv); if (n == -1) return -1; if (n == 1) lv = (qse_long_t)rv; - r = qse_awk_makeintval (run, lv); + r = qse_awk_rtx_makeintval (run, lv); if (r == QSE_NULL) { - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return -1; } @@ -1032,14 +1032,14 @@ static int bfn_int (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) return 0; } -static int bfn_rand (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) +static int fnc_rand (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) { qse_awk_val_t* r; - r = qse_awk_makeintval (run, rand()); + r = qse_awk_rtx_makeintval (run, rand()); if (r == QSE_NULL) { - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return -1; } @@ -1047,7 +1047,7 @@ static int bfn_rand (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) return 0; } -static int bfn_srand (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) +static int fnc_srand (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) { qse_size_t nargs; qse_awk_val_t* a0; @@ -1068,7 +1068,7 @@ static int bfn_srand (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) { a0 = qse_awk_rtx_getarg (run, 0); - n = qse_awk_valtonum (run, a0, &lv, &rv); + n = qse_awk_rtx_valtonum (run, a0, &lv, &rv); if (n == -1) return -1; if (n == 1) lv = (qse_long_t)rv; @@ -1084,10 +1084,10 @@ static int bfn_srand (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) srand (rxtn->seed); - r = qse_awk_makeintval (run, prev); + r = qse_awk_rtx_makeintval (run, prev); if (r == QSE_NULL) { - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return -1; } @@ -1095,7 +1095,7 @@ static int bfn_srand (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) return 0; } -static int bfn_system (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) +static int fnc_system (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl) { qse_size_t nargs; qse_awk_val_t* v; @@ -1114,7 +1114,7 @@ static int bfn_system (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl } else { - str = qse_awk_valtostr ( + str = qse_awk_rtx_valtostr ( run, v, QSE_AWK_VALTOSTR_CLEAR, QSE_NULL, &len); if (str == QSE_NULL) return -1; } @@ -1173,10 +1173,10 @@ static int bfn_system (qse_awk_rtx_t* run, const qse_char_t* fnm, qse_size_t fnl skip_system: if (v->type != QSE_AWK_VAL_STR) QSE_AWK_FREE (run->awk, str); - v = qse_awk_makeintval (run, (qse_long_t)n); + v = qse_awk_rtx_makeintval (run, (qse_long_t)n); if (v == QSE_NULL) { - /*qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM);*/ + /*qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM);*/ return -1; } @@ -1184,24 +1184,24 @@ skip_system: return 0; } -#define ADD_FUNC(awk,name,min,max,bfn) \ - if (qse_awk_addfunc (\ +#define ADD_FUNC(awk,name,min,max,fnc) \ + if (qse_awk_addfnc (\ (awk), (name), qse_strlen(name), \ - 0, (min), (max), QSE_NULL, (bfn)) == QSE_NULL) return -1; + 0, (min), (max), QSE_NULL, (fnc)) == QSE_NULL) return -1; static int add_functions (qse_awk_t* awk) { - ADD_FUNC (awk, QSE_T("sin"), 1, 1, bfn_sin); - ADD_FUNC (awk, QSE_T("cos"), 1, 1, bfn_cos); - ADD_FUNC (awk, QSE_T("tan"), 1, 1, bfn_tan); - ADD_FUNC (awk, QSE_T("atan"), 1, 1, bfn_atan); - ADD_FUNC (awk, QSE_T("atan2"), 2, 2, bfn_atan2); - ADD_FUNC (awk, QSE_T("log"), 1, 1, bfn_log); - ADD_FUNC (awk, QSE_T("exp"), 1, 1, bfn_exp); - ADD_FUNC (awk, QSE_T("sqrt"), 1, 1, bfn_sqrt); - ADD_FUNC (awk, QSE_T("int"), 1, 1, bfn_int); - ADD_FUNC (awk, QSE_T("rand"), 0, 0, bfn_rand); - ADD_FUNC (awk, QSE_T("srand"), 0, 1, bfn_srand); - ADD_FUNC (awk, QSE_T("system"), 1, 1, bfn_system); + ADD_FUNC (awk, QSE_T("sin"), 1, 1, fnc_sin); + ADD_FUNC (awk, QSE_T("cos"), 1, 1, fnc_cos); + ADD_FUNC (awk, QSE_T("tan"), 1, 1, fnc_tan); + ADD_FUNC (awk, QSE_T("atan"), 1, 1, fnc_atan); + ADD_FUNC (awk, QSE_T("atan2"), 2, 2, fnc_atan2); + ADD_FUNC (awk, QSE_T("log"), 1, 1, fnc_log); + ADD_FUNC (awk, QSE_T("exp"), 1, 1, fnc_exp); + ADD_FUNC (awk, QSE_T("sqrt"), 1, 1, fnc_sqrt); + ADD_FUNC (awk, QSE_T("int"), 1, 1, fnc_int); + ADD_FUNC (awk, QSE_T("rand"), 0, 0, fnc_rand); + ADD_FUNC (awk, QSE_T("srand"), 0, 1, fnc_srand); + ADD_FUNC (awk, QSE_T("system"), 1, 1, fnc_system); return 0; } diff --git a/qse/lib/awk/tree.c b/qse/lib/awk/tree.c index 1cc5852d..4fecc37a 100644 --- a/qse/lib/awk/tree.c +++ b/qse/lib/awk/tree.c @@ -539,7 +539,7 @@ static int print_expression (qse_awk_t* awk, qse_awk_nde_t* nde) { qse_awk_nde_call_t* px = (qse_awk_nde_call_t*)nde; PUT_SRCSTRX (awk, - px->what.bfn.name.ptr, px->what.bfn.name.len); + px->what.fnc.name.ptr, px->what.fnc.name.len); PUT_SRCSTR (awk, QSE_T(" (")); PRINT_EXPRESSION_LIST (awk, px->args); PUT_SRCSTR (awk, QSE_T(")")); @@ -550,7 +550,7 @@ static int print_expression (qse_awk_t* awk, qse_awk_nde_t* nde) { qse_awk_nde_call_t* px = (qse_awk_nde_call_t*)nde; PUT_SRCSTRX (awk, - px->what.afn.name.ptr, px->what.afn.name.len); + px->what.fun.name.ptr, px->what.fun.name.len); PUT_SRCSTR (awk, QSE_T(" (")); PRINT_EXPRESSION_LIST (awk, px->args); PUT_SRCSTR (awk, QSE_T(")")); @@ -1259,8 +1259,8 @@ void qse_awk_clrpt (qse_awk_t* awk, qse_awk_nde_t* tree) case QSE_AWK_NDE_BFN: { qse_awk_nde_call_t* px = (qse_awk_nde_call_t*)p; - /* QSE_AWK_FREE (awk, px->what.bfn); */ - QSE_AWK_FREE (awk, px->what.bfn.name.ptr); + /* QSE_AWK_FREE (awk, px->what.fnc); */ + QSE_AWK_FREE (awk, px->what.fnc.name.ptr); qse_awk_clrpt (awk, px->args); QSE_AWK_FREE (awk, p); break; @@ -1269,7 +1269,7 @@ void qse_awk_clrpt (qse_awk_t* awk, qse_awk_nde_t* tree) case QSE_AWK_NDE_AFN: { qse_awk_nde_call_t* px = (qse_awk_nde_call_t*)p; - QSE_AWK_FREE (awk, px->what.afn.name.ptr); + QSE_AWK_FREE (awk, px->what.fun.name.ptr); qse_awk_clrpt (awk, px->args); QSE_AWK_FREE (awk, p); break; diff --git a/qse/lib/awk/tree.h b/qse/lib/awk/tree.h index 0f3157ca..e4dbe9fb 100644 --- a/qse/lib/awk/tree.h +++ b/qse/lib/awk/tree.h @@ -99,8 +99,10 @@ enum qse_awk_out_type_t QSE_AWK_OUT_CONSOLE }; -/* afn (awk function defined with the keyword function) */ -typedef struct qse_awk_afn_t qse_awk_afn_t; +/* AWK function defined with the keyword function. + * note it is different from qse_awk_fnc_t */ +typedef struct qse_awk_fun_t qse_awk_fun_t; + typedef struct qse_awk_nde_t qse_awk_nde_t; typedef struct qse_awk_nde_blk_t qse_awk_nde_blk_t; typedef struct qse_awk_nde_grp_t qse_awk_nde_grp_t; @@ -139,10 +141,10 @@ typedef struct qse_awk_nde_delete_t qse_awk_nde_delete_t; typedef struct qse_awk_nde_reset_t qse_awk_nde_reset_t; typedef struct qse_awk_nde_print_t qse_awk_nde_print_t; -struct qse_awk_afn_t +struct qse_awk_fun_t { - qse_xstr_t name; - qse_size_t nargs; + qse_xstr_t name; + qse_size_t nargs; qse_awk_nde_t* body; }; @@ -265,7 +267,7 @@ struct qse_awk_nde_call_t struct { qse_xstr_t name; - } afn; + } fun; /* minimum information of a intrinsic function * needed during run-time. */ @@ -286,7 +288,7 @@ struct qse_awk_nde_call_t int (*handler) ( qse_awk_rtx_t*, const qse_char_t*, qse_size_t); - } bfn; + } fnc; } what; qse_awk_nde_t* args; qse_size_t nargs; diff --git a/qse/lib/awk/val.c b/qse/lib/awk/val.c index db72f4db..229fb515 100644 --- a/qse/lib/awk/val.c +++ b/qse/lib/awk/val.c @@ -98,7 +98,7 @@ qse_awk_val_t* qse_awk_val_negone = (qse_awk_val_t*)&awk_int[0]; qse_awk_val_t* qse_awk_val_zero = (qse_awk_val_t*)&awk_int[1]; qse_awk_val_t* qse_awk_val_one = (qse_awk_val_t*)&awk_int[2]; -qse_awk_val_t* qse_awk_makeintval (qse_awk_rtx_t* run, qse_long_t v) +qse_awk_val_t* qse_awk_rtx_makeintval (qse_awk_rtx_t* run, qse_long_t v) { qse_awk_val_int_t* val; @@ -119,7 +119,7 @@ qse_awk_val_t* qse_awk_makeintval (qse_awk_rtx_t* run, qse_long_t v) run->awk, QSE_SIZEOF(qse_awk_val_int_t)); if (val == QSE_NULL) { - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return QSE_NULL; } } @@ -142,7 +142,7 @@ qse_awk_val_t* qse_awk_makeintval (qse_awk_rtx_t* run, qse_long_t v) c = QSE_AWK_ALLOC (run->awk, QSE_SIZEOF(qse_awk_val_ichunk_t)); if (c == QSE_NULL) { - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return QSE_NULL; } @@ -179,7 +179,7 @@ qse_awk_val_t* qse_awk_makeintval (qse_awk_rtx_t* run, qse_long_t v) return (qse_awk_val_t*)val; } -qse_awk_val_t* qse_awk_makerealval (qse_awk_rtx_t* run, qse_real_t v) +qse_awk_val_t* qse_awk_rtx_makerealval (qse_awk_rtx_t* run, qse_real_t v) { qse_awk_val_real_t* val; @@ -194,7 +194,7 @@ qse_awk_val_t* qse_awk_makerealval (qse_awk_rtx_t* run, qse_real_t v) run->awk, QSE_SIZEOF(qse_awk_val_real_t)); if (val == QSE_NULL) { - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return QSE_NULL; } } @@ -212,7 +212,7 @@ qse_awk_val_t* qse_awk_makerealval (qse_awk_rtx_t* run, qse_real_t v) c = QSE_AWK_ALLOC (run->awk, QSE_SIZEOF(qse_awk_val_rchunk_t)); if (c == QSE_NULL) { - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return QSE_NULL; } @@ -250,12 +250,12 @@ qse_awk_val_t* qse_awk_makerealval (qse_awk_rtx_t* run, qse_real_t v) return (qse_awk_val_t*)val; } -qse_awk_val_t* qse_awk_makestrval0 (qse_awk_rtx_t* run, const qse_char_t* str) +qse_awk_val_t* qse_awk_rtx_makestrval0 (qse_awk_rtx_t* run, const qse_char_t* str) { - return qse_awk_makestrval (run, str, qse_strlen(str)); + return qse_awk_rtx_makestrval (run, str, qse_strlen(str)); } -qse_awk_val_t* qse_awk_makestrval ( +qse_awk_val_t* qse_awk_rtx_makestrval ( qse_awk_rtx_t* run, const qse_char_t* str, qse_size_t len) { qse_awk_val_str_t* val; @@ -286,7 +286,7 @@ qse_awk_val_t* qse_awk_makestrval ( (rlen+1)*QSE_SIZEOF(qse_char_t)); if (val == QSE_NULL) { - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return QSE_NULL; } /* @@ -305,7 +305,7 @@ init: return (qse_awk_val_t*)val; } -qse_awk_val_t* qse_awk_makestrval_nodup ( +qse_awk_val_t* qse_awk_rtx_makestrval_nodup ( qse_awk_rtx_t* run, qse_char_t* str, qse_size_t len) { qse_awk_val_str_t* val; @@ -314,7 +314,7 @@ qse_awk_val_t* qse_awk_makestrval_nodup ( run->awk, QSE_SIZEOF(qse_awk_val_str_t)); if (val == QSE_NULL) { - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return QSE_NULL; } @@ -325,7 +325,7 @@ qse_awk_val_t* qse_awk_makestrval_nodup ( return (qse_awk_val_t*)val; } -qse_awk_val_t* qse_awk_makestrval2 ( +qse_awk_val_t* qse_awk_rtx_makestrval2 ( qse_awk_rtx_t* run, const qse_char_t* str1, qse_size_t len1, const qse_char_t* str2, qse_size_t len2) @@ -358,7 +358,7 @@ qse_awk_val_t* qse_awk_makestrval2 ( (rlen+1)*QSE_SIZEOF(qse_char_t)); if (val == QSE_NULL) { - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return QSE_NULL; } @@ -380,7 +380,7 @@ init: return (qse_awk_val_t*)val; } -qse_awk_val_t* qse_awk_makerexval ( +qse_awk_val_t* qse_awk_rtx_makerexval ( qse_awk_rtx_t* run, const qse_char_t* buf, qse_size_t len, void* code) { qse_awk_val_rex_t* val; @@ -398,7 +398,7 @@ qse_awk_val_t* qse_awk_makerexval ( if (val->ptr == QSE_NULL) { QSE_AWK_FREE (run->awk, val); - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return QSE_NULL; }*/ val->ptr = (qse_char_t*)(val + 1); @@ -410,7 +410,7 @@ qse_awk_val_t* qse_awk_makerexval ( { QSE_AWK_FREE (run->awk, val->ptr); QSE_AWK_FREE (run->awk, val); - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return QSE_NULL; } */ @@ -430,7 +430,7 @@ static void free_mapval (void* run, void* v) qse_dprintf (QSE_T("\n")); #endif - qse_awk_refdownval (run, v); + qse_awk_rtx_refdownval (run, v); } static void same_mapval (void* run, void* v) @@ -440,7 +440,7 @@ static void same_mapval (void* run, void* v) qse_awk_dprintval (run, v); qse_dprintf (QSE_T("\n")); #endif - qse_awk_refdownval_nofree (run, v); + qse_awk_rtx_refdownval_nofree (run, v); } */ static void free_mapval (qse_map_t* map, void* dptr, qse_size_t dlen) @@ -453,7 +453,7 @@ static void free_mapval (qse_map_t* map, void* dptr, qse_size_t dlen) qse_dprintf (QSE_T("\n")); #endif - qse_awk_refdownval (run, dptr); + qse_awk_rtx_refdownval (run, dptr); } static void same_mapval (qse_map_t* map, void* dptr, qse_size_t dlen) @@ -464,11 +464,11 @@ static void same_mapval (qse_map_t* map, void* dptr, qse_size_t dlen) qse_awk_dprintval (run, dptr); qse_dprintf (QSE_T("\n")); #endif - qse_awk_refdownval_nofree (run, dptr); + qse_awk_rtx_refdownval_nofree (run, dptr); } /* END CHECK */ -qse_awk_val_t* qse_awk_makemapval (qse_awk_rtx_t* run) +qse_awk_val_t* qse_awk_rtx_makemapval (qse_awk_rtx_t* run) { qse_awk_val_map_t* val; @@ -478,7 +478,7 @@ qse_awk_val_t* qse_awk_makemapval (qse_awk_rtx_t* run) run->awk, QSE_SIZEOF(qse_awk_val_map_t) ); if (val == QSE_NULL) { - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return QSE_NULL; } @@ -489,7 +489,7 @@ qse_awk_val_t* qse_awk_makemapval (qse_awk_rtx_t* run) if (val->map == QSE_NULL) { QSE_AWK_FREE (run->awk, val); - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return QSE_NULL; } */ @@ -501,7 +501,7 @@ qse_awk_val_t* qse_awk_makemapval (qse_awk_rtx_t* run) QSE_SIZEOF(run)); if (val == QSE_NULL) { - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return QSE_NULL; } @@ -513,7 +513,7 @@ qse_awk_val_t* qse_awk_makemapval (qse_awk_rtx_t* run) if (val->map == QSE_NULL) { QSE_AWK_FREE (run->awk, val); - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return QSE_NULL; } *(qse_awk_rtx_t**)QSE_MAP_XTN(val->map) = run; @@ -533,7 +533,7 @@ qse_awk_val_t* qse_awk_makemapval (qse_awk_rtx_t* run) return (qse_awk_val_t*)val; } -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_makerefval (qse_awk_rtx_t* run, int id, qse_awk_val_t** adr) { qse_awk_val_ref_t* val; @@ -547,7 +547,7 @@ qse_awk_val_t* qse_awk_makerefval (qse_awk_rtx_t* run, int id, qse_awk_val_t** a run->awk, QSE_SIZEOF(qse_awk_val_ref_t)); if (val == QSE_NULL) { - qse_awk_setrunerrnum (run, QSE_AWK_ENOMEM); + qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM); return QSE_NULL; } } @@ -569,51 +569,51 @@ qse_awk_val_t* qse_awk_makerefval (qse_awk_rtx_t* run, int id, qse_awk_val_t** a ((val) >= (qse_awk_val_t*)&awk_int[0] && \ (val) <= (qse_awk_val_t*)&awk_int[QSE_COUNTOF(awk_int)-1])) -qse_bool_t qse_awk_isstaticval (qse_awk_val_t* val) +qse_bool_t qse_awk_isstaticval (qse_awk_rtx_t* rtx, qse_awk_val_t* val) { return IS_STATICVAL(val); } -void qse_awk_freeval (qse_awk_rtx_t* run, qse_awk_val_t* val, qse_bool_t cache) +void qse_awk_rtx_freeval (qse_awk_rtx_t* rtx, qse_awk_val_t* val, qse_bool_t cache) { if (IS_STATICVAL(val)) return; #ifdef DEBUG_VAL qse_dprintf (QSE_T("freeing [cache=%d] ... "), cache); - qse_awk_dprintval (run, val); + qse_awk_dprintval (rtx, val); qse_dprintf (QSE_T("\n")); #endif if (val->type == QSE_AWK_VAL_NIL) { - QSE_AWK_FREE (run->awk, val); + QSE_AWK_FREE (rtx->awk, val); } else if (val->type == QSE_AWK_VAL_INT) { /* - if (cache && run->icache_count < QSE_COUNTOF(run->icache)) + if (cache && rtx->icache_count < QSE_COUNTOF(rtx->icache)) { - run->icache[run->icache_count++] = + rtx->icache[rtx->icache_count++] = (qse_awk_val_int_t*)val; } - else QSE_AWK_FREE (run->awk, val); + else QSE_AWK_FREE (rtx->awk, val); */ - ((qse_awk_val_int_t*)val)->nde = (qse_awk_nde_int_t*)run->vmgr.ifree; - run->vmgr.ifree = (qse_awk_val_int_t*)val; + ((qse_awk_val_int_t*)val)->nde = (qse_awk_nde_int_t*)rtx->vmgr.ifree; + rtx->vmgr.ifree = (qse_awk_val_int_t*)val; } else if (val->type == QSE_AWK_VAL_REAL) { /* - if (cache && run->rcache_count < QSE_COUNTOF(run->rcache)) + if (cache && rtx->rcache_count < QSE_COUNTOF(rtx->rcache)) { - run->rcache[run->rcache_count++] = + rtx->rcache[rtx->rcache_count++] = (qse_awk_val_real_t*)val; } - else QSE_AWK_FREE (run->awk, val); + else QSE_AWK_FREE (rtx->awk, val); */ - ((qse_awk_val_real_t*)val)->nde = (qse_awk_nde_real_t*)run->vmgr.rfree; - run->vmgr.rfree = (qse_awk_val_real_t*)val; + ((qse_awk_val_real_t*)val)->nde = (qse_awk_nde_real_t*)rtx->vmgr.rfree; + rtx->vmgr.rfree = (qse_awk_val_real_t*)val; } else if (val->type == QSE_AWK_VAL_STR) { @@ -622,26 +622,26 @@ void qse_awk_freeval (qse_awk_rtx_t* run, qse_awk_val_t* val, qse_bool_t cache) { qse_awk_val_str_t* v = (qse_awk_val_str_t*)val; if (v->len <= 32 && - run->scache32_countscache32)) + rtx->scache32_countscache32)) { - run->scache32[run->scache32_count++] = v; + rtx->scache32[rtx->scache32_count++] = v; } else if (v->len <= 64 && - run->scache64_countscache64)) + rtx->scache64_countscache64)) { - run->scache64[run->scache64_count++] = v; + rtx->scache64[rtx->scache64_count++] = v; } - else QSE_AWK_FREE (run->awk, val); + else QSE_AWK_FREE (rtx->awk, val); } - else*/ QSE_AWK_FREE (run->awk, val); + else*/ QSE_AWK_FREE (rtx->awk, val); } else if (val->type == QSE_AWK_VAL_REX) { /* - QSE_AWK_FREE (run->awk, ((qse_awk_val_rex_t*)val)->ptr); - QSE_AWK_FREEREX (run->awk, ((qse_awk_val_rex_t*)val)->code); + QSE_AWK_FREE (rtx->awk, ((qse_awk_val_rex_t*)val)->ptr); + QSE_AWK_FREEREX (rtx->awk, ((qse_awk_val_rex_t*)val)->code); */ - QSE_AWK_FREE (run->awk, val); + QSE_AWK_FREE (rtx->awk, val); } else if (val->type == QSE_AWK_VAL_MAP) { @@ -649,16 +649,16 @@ void qse_awk_freeval (qse_awk_rtx_t* run, qse_awk_val_t* val, qse_bool_t cache) /* qse_map_close (((qse_awk_val_map_t*)val)->map);*/ qse_map_fini (((qse_awk_val_map_t*)val)->map); /* END CHECK */ - QSE_AWK_FREE (run->awk, val); + QSE_AWK_FREE (rtx->awk, val); } else if (val->type == QSE_AWK_VAL_REF) { - if (cache && run->fcache_count < QSE_COUNTOF(run->fcache)) + if (cache && rtx->fcache_count < QSE_COUNTOF(rtx->fcache)) { - run->fcache[run->fcache_count++] = + rtx->fcache[rtx->fcache_count++] = (qse_awk_val_ref_t*)val; } - else QSE_AWK_FREE (run->awk, val); + else QSE_AWK_FREE (rtx->awk, val); } else { @@ -668,26 +668,26 @@ void qse_awk_freeval (qse_awk_rtx_t* run, qse_awk_val_t* val, qse_bool_t cache) } } -void qse_awk_refupval (qse_awk_rtx_t* run, qse_awk_val_t* val) +void qse_awk_rtx_refupval (qse_awk_rtx_t* rtx, qse_awk_val_t* val) { if (IS_STATICVAL(val)) return; #ifdef DEBUG_VAL qse_dprintf (QSE_T("ref up [ptr=%p] [count=%d] "), val, (int)val->ref); - qse_awk_dprintval (run, val); + qse_awk_dprintval (rtx, val); qse_dprintf (QSE_T("\n")); #endif val->ref++; } -void qse_awk_refdownval (qse_awk_rtx_t* run, qse_awk_val_t* val) +void qse_awk_rtx_refdownval (qse_awk_rtx_t* rtx, qse_awk_val_t* val) { if (IS_STATICVAL(val)) return; #ifdef DEBUG_VAL qse_dprintf (QSE_T("ref down [ptr=%p] [count=%d]\n"), val, (int)val->ref); - qse_awk_dprintval (run, val); + qse_awk_dprintval (rtx, val); qse_dprintf (QSE_T("\n")); #endif @@ -697,11 +697,11 @@ void qse_awk_refdownval (qse_awk_rtx_t* run, qse_awk_val_t* val) val->ref--; if (val->ref <= 0) { - qse_awk_freeval(run, val, QSE_TRUE); + qse_awk_rtx_freeval(rtx, val, QSE_TRUE); } } -void qse_awk_refdownval_nofree (qse_awk_rtx_t* run, qse_awk_val_t* val) +void qse_awk_rtx_refdownval_nofree (qse_awk_rtx_t* rtx, qse_awk_val_t* val) { if (IS_STATICVAL(val)) return; @@ -710,17 +710,17 @@ void qse_awk_refdownval_nofree (qse_awk_rtx_t* run, qse_awk_val_t* val) val->ref--; } -void qse_awk_freevalchunk (qse_awk_rtx_t* run, qse_awk_val_chunk_t* chunk) +void qse_awk_rtx_freevalchunk (qse_awk_rtx_t* rtx, qse_awk_val_chunk_t* chunk) { while (chunk != QSE_NULL) { qse_awk_val_chunk_t* next = chunk->next; - QSE_AWK_FREE (run->awk, chunk); + QSE_AWK_FREE (rtx->awk, chunk); chunk = next; } } -qse_bool_t qse_awk_valtobool (qse_awk_rtx_t* run, qse_awk_val_t* val) +qse_bool_t qse_awk_rtx_valtobool (qse_awk_rtx_t* run, qse_awk_val_t* val) { if (val == QSE_NULL) return QSE_FALSE; @@ -748,7 +748,7 @@ qse_bool_t qse_awk_valtobool (qse_awk_rtx_t* run, qse_awk_val_t* val) return QSE_FALSE; } -qse_char_t* qse_awk_valtostr ( +qse_char_t* qse_awk_rtx_valtostr ( qse_awk_rtx_t* run, qse_awk_val_t* v, int opt, qse_str_t* buf, qse_size_t* len) { @@ -801,11 +801,11 @@ qse_char_t* qse_awk_valtostr ( #ifdef DEBUG_VAL qse_dprintf ( - QSE_T("ERROR: WRONG VALUE TYPE [%d] in qse_awk_valtostr\n"), + QSE_T("ERROR: WRONG VALUE TYPE [%d] in qse_awk_rtx_valtostr\n"), v->type); #endif - qse_awk_setrunerror (run, QSE_AWK_EVALTYPE, 0, QSE_NULL, 0); + qse_awk_rtx_seterror (run, QSE_AWK_EVALTYPE, 0, QSE_NULL, 0); return QSE_NULL; } @@ -819,7 +819,7 @@ static qse_char_t* str_to_str ( tmp = QSE_AWK_STRXDUP (run->awk, str, str_len); if (tmp == QSE_NULL) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ENOMEM, 0, QSE_NULL, 0); return QSE_NULL; } @@ -833,7 +833,7 @@ static qse_char_t* str_to_str ( if (str_len >= *len) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_EINVAL, 0, QSE_NULL, 0); *len = str_len + 1; return QSE_NULL; @@ -850,7 +850,7 @@ static qse_char_t* str_to_str ( n = qse_str_ncat (buf, str, str_len); if (n == (qse_size_t)-1) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ENOMEM, 0, QSE_NULL, 0); return QSE_NULL; } @@ -878,7 +878,7 @@ static qse_char_t* val_int_to_str ( run->awk, 2 * QSE_SIZEOF(qse_char_t)); if (tmp == QSE_NULL) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ENOMEM, 0, QSE_NULL, 0); return QSE_NULL; } @@ -894,7 +894,7 @@ static qse_char_t* val_int_to_str ( if (1 >= *len) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_EINVAL, 0, QSE_NULL, 0); *len = 2; /* buffer size required */ return QSE_NULL; @@ -911,7 +911,7 @@ static qse_char_t* val_int_to_str ( if (opt & QSE_AWK_VALTOSTR_CLEAR) qse_str_clear (buf); if (qse_str_cat (buf, QSE_T("0")) == (qse_size_t)-1) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ENOMEM, 0, QSE_NULL, 0); return QSE_NULL; } @@ -931,7 +931,7 @@ static qse_char_t* val_int_to_str ( run->awk, (rlen + 1) * QSE_SIZEOF(qse_char_t)); if (tmp == QSE_NULL) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ENOMEM, 0, QSE_NULL, 0); return QSE_NULL; } @@ -945,7 +945,7 @@ static qse_char_t* val_int_to_str ( if (rlen >= *len) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_EINVAL, 0, QSE_NULL, 0); *len = rlen + 1; /* buffer size required */ return QSE_NULL; @@ -966,7 +966,7 @@ static qse_char_t* val_int_to_str ( if (qse_str_nccat ( buf, QSE_T(' '), rlen) == (qse_size_t)-1) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ENOMEM, 0, QSE_NULL, 0); return QSE_NULL; } @@ -1013,14 +1013,14 @@ static qse_char_t* val_real_to_str ( if (qse_str_init (&out, run->awk->mmgr, 256) == QSE_NULL) { - qse_awk_setrunerror (run, QSE_AWK_ENOMEM, 0, QSE_NULL, 0); + qse_awk_rtx_seterror (run, QSE_AWK_ENOMEM, 0, QSE_NULL, 0); return QSE_NULL; } if (qse_str_init (&fbu, run->awk->mmgr, 256) == QSE_NULL) { qse_str_fini (&out); - qse_awk_setrunerror (run, QSE_AWK_ENOMEM, 0, QSE_NULL, 0); + qse_awk_rtx_seterror (run, QSE_AWK_ENOMEM, 0, QSE_NULL, 0); return QSE_NULL; } @@ -1048,7 +1048,7 @@ static qse_char_t* val_real_to_str ( if (tmp_len >= *len) { - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_EINVAL, 0, QSE_NULL, 0); *len = tmp_len + 1; /* buffer size required */ qse_str_close (&fbu); @@ -1071,7 +1071,7 @@ static qse_char_t* val_real_to_str ( { qse_str_fini (&fbu); qse_str_fini (&out); - qse_awk_setrunerror ( + qse_awk_rtx_seterror ( run, QSE_AWK_ENOMEM, 0, QSE_NULL, 0); return QSE_NULL; } @@ -1086,7 +1086,7 @@ static qse_char_t* val_real_to_str ( return tmp; } -int qse_awk_valtonum ( +int qse_awk_rtx_valtonum ( qse_awk_rtx_t* run, qse_awk_val_t* v, qse_long_t* l, qse_real_t* r) { if (v->type == QSE_AWK_VAL_NIL) @@ -1109,22 +1109,22 @@ int qse_awk_valtonum ( if (v->type == QSE_AWK_VAL_STR) { - return qse_awk_strtonum (run, + return qse_awk_rtx_strtonum (run, ((qse_awk_val_str_t*)v)->ptr, ((qse_awk_val_str_t*)v)->len, l, r); } #ifdef DEBUG_VAL qse_dprintf ( - QSE_T("ERROR: WRONG VALUE TYPE [%d] in qse_awk_valtonum\n"), + QSE_T("ERROR: WRONG VALUE TYPE [%d] in qse_awk_rtx_valtonum\n"), v->type); #endif - qse_awk_setrunerror (run, QSE_AWK_EVALTYPE, 0, QSE_NULL, 0); + qse_awk_rtx_seterror (run, QSE_AWK_EVALTYPE, 0, QSE_NULL, 0); return -1; /* error */ } -int qse_awk_strtonum ( +int qse_awk_rtx_strtonum ( qse_awk_rtx_t* run, const qse_char_t* ptr, qse_size_t len, qse_long_t* l, qse_real_t* r) { diff --git a/qse/lib/awk/val.h b/qse/lib/awk/val.h new file mode 100644 index 00000000..a2c017b7 --- /dev/null +++ b/qse/lib/awk/val.h @@ -0,0 +1,35 @@ +/* + * $Id: eio.h 363 2008-09-04 10:58:08Z baconevi $ + * + Copyright 2006-2008 Chung, Hyung-Hwan. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + */ + +#ifndef _QSE_LIB_AWK_VAL_H_ +#define _QSE_LIB_AWK_VAL_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +void qse_awk_rtx_freevalchunk ( + qse_awk_rtx_t* rtx, + qse_awk_val_chunk_t* chunk +); + +#ifdef __cplusplus +} +#endif + +#endif