|
|
|
@ -1,5 +1,5 @@
|
|
|
|
|
/*
|
|
|
|
|
* $Id: awk.h 277 2009-09-02 12:55:55Z hyunghwan.chung $
|
|
|
|
|
* $Id: awk.h 286 2009-09-14 13:29:55Z hyunghwan.chung $
|
|
|
|
|
*
|
|
|
|
|
Copyright 2006-2009 Chung, Hyung-Hwan.
|
|
|
|
|
|
|
|
|
@ -819,7 +819,7 @@ typedef struct qse_awk_errinf_t qse_awk_errinf_t;
|
|
|
|
|
* object with the qse_awk_seterrstr() function to customize an error string.
|
|
|
|
|
*/
|
|
|
|
|
typedef const qse_char_t* (*qse_awk_errstr_t) (
|
|
|
|
|
qse_awk_t* awk, /**< awk object */
|
|
|
|
|
qse_awk_t* awk, /**< awk */
|
|
|
|
|
qse_awk_errnum_t num /**< error number */
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
@ -834,6 +834,7 @@ enum qse_awk_depth_t
|
|
|
|
|
QSE_AWK_DEPTH_REX_MATCH = (1 << 5),
|
|
|
|
|
QSE_AWK_DEPTH_INCLUDE = (1 << 6)
|
|
|
|
|
};
|
|
|
|
|
typedef enum qse_awk_depth_t qse_awk_depth_t;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The qse_awk_gbl_id_t type defines intrinsic globals variable IDs.
|
|
|
|
@ -979,9 +980,9 @@ extern qse_awk_val_t* qse_awk_val_one;
|
|
|
|
|
* @return a pointer to a qse_awk_t object on success, #QSE_NULL on failure.
|
|
|
|
|
*/
|
|
|
|
|
qse_awk_t* qse_awk_open (
|
|
|
|
|
qse_mmgr_t* mmgr, /**< a memory manager */
|
|
|
|
|
qse_mmgr_t* mmgr, /**< memory manager */
|
|
|
|
|
qse_size_t xtn, /**< extension size in bytes */
|
|
|
|
|
qse_awk_prm_t* prm /**< a pointer to a primitive function structure */
|
|
|
|
|
qse_awk_prm_t* prm /**< pointer to a primitive function structure */
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -989,7 +990,7 @@ qse_awk_t* qse_awk_open (
|
|
|
|
|
* @return 0 on success, -1 on failure
|
|
|
|
|
*/
|
|
|
|
|
int qse_awk_close (
|
|
|
|
|
qse_awk_t* awk /**< awk object */
|
|
|
|
|
qse_awk_t* awk /**< awk */
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -1015,7 +1016,7 @@ int qse_awk_clear (
|
|
|
|
|
* The qse_awk_geterrstr() gets an error string getter.
|
|
|
|
|
*/
|
|
|
|
|
qse_awk_errstr_t qse_awk_geterrstr (
|
|
|
|
|
qse_awk_t* awk /**< awk object */
|
|
|
|
|
qse_awk_t* awk /**< awk */
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -1043,7 +1044,7 @@ qse_awk_errstr_t qse_awk_geterrstr (
|
|
|
|
|
* @endcode
|
|
|
|
|
*/
|
|
|
|
|
void qse_awk_seterrstr (
|
|
|
|
|
qse_awk_t* awk, /**< awk object */
|
|
|
|
|
qse_awk_t* awk, /**< awk */
|
|
|
|
|
qse_awk_errstr_t errstr /**< error string getter */
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
@ -1053,7 +1054,7 @@ void qse_awk_seterrstr (
|
|
|
|
|
* @return error number
|
|
|
|
|
*/
|
|
|
|
|
qse_awk_errnum_t qse_awk_geterrnum (
|
|
|
|
|
qse_awk_t* awk /**< awk object */
|
|
|
|
|
qse_awk_t* awk /**< awk */
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -1061,16 +1062,17 @@ qse_awk_errnum_t qse_awk_geterrnum (
|
|
|
|
|
* last error has occurred.
|
|
|
|
|
*/
|
|
|
|
|
const qse_awk_loc_t* qse_awk_geterrloc (
|
|
|
|
|
qse_awk_t* awk /**< awk object */
|
|
|
|
|
qse_awk_t* awk /**< awk */
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The qse_awk_geterrmsg() function returns the error message describing
|
|
|
|
|
* the last error occurred.
|
|
|
|
|
* the last error occurred. The @b fil field of the location returned is
|
|
|
|
|
* #QSE_NULL if the error occurred in the main script.
|
|
|
|
|
* @return error message
|
|
|
|
|
*/
|
|
|
|
|
const qse_char_t* qse_awk_geterrmsg (
|
|
|
|
|
qse_awk_t* awk /**< awk object */
|
|
|
|
|
qse_awk_t* awk /**< awk */
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -1078,7 +1080,7 @@ const qse_char_t* qse_awk_geterrmsg (
|
|
|
|
|
* pointed to by @a errinf from @a awk.
|
|
|
|
|
*/
|
|
|
|
|
void qse_awk_geterrinf (
|
|
|
|
|
qse_awk_t* awk, /**< awk object */
|
|
|
|
|
qse_awk_t* awk, /**< awk */
|
|
|
|
|
qse_awk_errinf_t* errinf /**< error information buffer */
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
@ -1089,53 +1091,78 @@ void qse_awk_geterrinf (
|
|
|
|
|
* error message.
|
|
|
|
|
*/
|
|
|
|
|
void qse_awk_seterrnum (
|
|
|
|
|
qse_awk_t* awk, /**< awk object */
|
|
|
|
|
qse_awk_t* awk, /**< awk */
|
|
|
|
|
qse_awk_errnum_t errnum, /**< error number */
|
|
|
|
|
const qse_cstr_t* errarg /**< argument array for formatting
|
|
|
|
|
* an error message */
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The qse_awk_seterrinf() function sets the error information. This function
|
|
|
|
|
* may be useful if you want to set a custom error message rather than letting
|
|
|
|
|
* it automatically formatted.
|
|
|
|
|
*/
|
|
|
|
|
void qse_awk_seterrinf (
|
|
|
|
|
qse_awk_t* awk,
|
|
|
|
|
const qse_awk_errinf_t* errinf
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
void qse_awk_geterror (
|
|
|
|
|
qse_awk_t* awk,
|
|
|
|
|
qse_awk_errnum_t* errnum,
|
|
|
|
|
const qse_char_t** errmsg,
|
|
|
|
|
qse_awk_loc_t* errloc
|
|
|
|
|
qse_awk_t* awk, /**< awk */
|
|
|
|
|
const qse_awk_errinf_t* errinf /**< error information */
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The qse_awk_seterror() functon sets error information.
|
|
|
|
|
* The qse_awk_geterror() function gets error information via parameters.
|
|
|
|
|
*/
|
|
|
|
|
void qse_awk_geterror (
|
|
|
|
|
qse_awk_t* awk, /**< awk */
|
|
|
|
|
qse_awk_errnum_t* errnum, /**< error number */
|
|
|
|
|
const qse_char_t** errmsg, /**< error message */
|
|
|
|
|
qse_awk_loc_t* errloc /**< error location */
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The qse_awk_seterror() function sets error information.
|
|
|
|
|
*/
|
|
|
|
|
void qse_awk_seterror (
|
|
|
|
|
qse_awk_t* awk, /**< awk object */
|
|
|
|
|
qse_awk_t* awk, /**< awk */
|
|
|
|
|
qse_awk_errnum_t errnum, /**< error number */
|
|
|
|
|
const qse_cstr_t* errarg, /**< argument array for formatting
|
|
|
|
|
* an error message */
|
|
|
|
|
const qse_awk_loc_t* errloc /**< error location */
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The qse_awk_getoption() function gets the current options set.
|
|
|
|
|
* @return 0 or a number ORed of #qse_awk_option_t enumerators.
|
|
|
|
|
*/
|
|
|
|
|
int qse_awk_getoption (
|
|
|
|
|
qse_awk_t* awk
|
|
|
|
|
qse_awk_t* awk /**< awk */
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The qse_awk_setoption() function sets the options.
|
|
|
|
|
*/
|
|
|
|
|
void qse_awk_setoption (
|
|
|
|
|
qse_awk_t* awk,
|
|
|
|
|
int opt
|
|
|
|
|
qse_awk_t* awk, /**< awk */
|
|
|
|
|
int opt /**< 0 or a number ORed of
|
|
|
|
|
* #qse_awk_option_t enumerators */
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The qse_awk_getmaxdepth() function gets the current maximum recursing depth
|
|
|
|
|
* for a specified operation @a type.
|
|
|
|
|
* @return maximum depth
|
|
|
|
|
*/
|
|
|
|
|
qse_size_t qse_awk_getmaxdepth (
|
|
|
|
|
qse_awk_t* awk,
|
|
|
|
|
int type
|
|
|
|
|
qse_awk_t* awk, /**< awk */
|
|
|
|
|
qse_awk_depth_t type /**< operation type */
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The qse_awk_setmaxdepth() function sets the maximum recursing depth for
|
|
|
|
|
* operations indicated by @a types.
|
|
|
|
|
*/
|
|
|
|
|
void qse_awk_setmaxdepth (
|
|
|
|
|
qse_awk_t* awk,
|
|
|
|
|
int types,
|
|
|
|
|
qse_size_t depth
|
|
|
|
|
qse_awk_t* awk, /**< awk */
|
|
|
|
|
int types, /**< number ORed of #qse_awk_depth_t enumerators */
|
|
|
|
|
qse_size_t depth /**< maximum depth */
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
int qse_awk_getword (
|
|
|
|
@ -1166,7 +1193,7 @@ void qse_awk_unsetallwords (
|
|
|
|
|
* @return 0 on success, -1 on failure
|
|
|
|
|
*/
|
|
|
|
|
int qse_awk_setword (
|
|
|
|
|
qse_awk_t* awk, /**< awk object */
|
|
|
|
|
qse_awk_t* awk, /**< awk */
|
|
|
|
|
const qse_cstr_t* okw, /**< old keyword */
|
|
|
|
|
const qse_cstr_t* nkw /**< new keyword */
|
|
|
|
|
);
|
|
|
|
@ -1176,7 +1203,7 @@ int qse_awk_setword (
|
|
|
|
|
* @return the ID of the global variable added on success, -1 on failure.
|
|
|
|
|
*/
|
|
|
|
|
int qse_awk_addgbl (
|
|
|
|
|
qse_awk_t* awk, /**< awk object */
|
|
|
|
|
qse_awk_t* awk, /**< awk */
|
|
|
|
|
const qse_char_t* name, /**< variable name */
|
|
|
|
|
qse_size_t len /**< name length */
|
|
|
|
|
);
|
|
|
|
@ -1186,7 +1213,7 @@ int qse_awk_addgbl (
|
|
|
|
|
* @return 0 on success, -1 on failure
|
|
|
|
|
*/
|
|
|
|
|
int qse_awk_delgbl (
|
|
|
|
|
qse_awk_t* awk, /**< awk object */
|
|
|
|
|
qse_awk_t* awk, /**< awk */
|
|
|
|
|
const qse_char_t* name, /**< variable name */
|
|
|
|
|
qse_size_t len /**< name length */
|
|
|
|
|
);
|
|
|
|
@ -1210,7 +1237,7 @@ void* qse_awk_addfnc (
|
|
|
|
|
* @return 0 on success, -1 on failure
|
|
|
|
|
*/
|
|
|
|
|
int qse_awk_delfnc (
|
|
|
|
|
qse_awk_t* awk, /**< awk object */
|
|
|
|
|
qse_awk_t* awk, /**< awk */
|
|
|
|
|
const qse_char_t* name, /**< function name */
|
|
|
|
|
qse_size_t len /**< name length */
|
|
|
|
|
);
|
|
|
|
@ -1219,7 +1246,7 @@ int qse_awk_delfnc (
|
|
|
|
|
* The qse_awk_clrfnc() function deletes all intrinsic functions
|
|
|
|
|
*/
|
|
|
|
|
void qse_awk_clrfnc (
|
|
|
|
|
qse_awk_t* awk /**< awk object */
|
|
|
|
|
qse_awk_t* awk /**< awk */
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -1264,7 +1291,7 @@ void qse_awk_clrfnc (
|
|
|
|
|
* @return 0 on success, -1 on failure.
|
|
|
|
|
*/
|
|
|
|
|
int qse_awk_parse (
|
|
|
|
|
qse_awk_t* awk, /**< awk object */
|
|
|
|
|
qse_awk_t* awk, /**< awk */
|
|
|
|
|
qse_awk_sio_t* sio /**< source script I/O handler */
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
@ -1273,7 +1300,7 @@ int qse_awk_parse (
|
|
|
|
|
* @return a pointer to a memory block on success, #QSE_NULL on failure
|
|
|
|
|
*/
|
|
|
|
|
void* qse_awk_alloc (
|
|
|
|
|
qse_awk_t* awk, /**< awk object */
|
|
|
|
|
qse_awk_t* awk, /**< awk */
|
|
|
|
|
qse_size_t size /**< size of memory to allocate in bytes */
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
@ -1282,17 +1309,16 @@ void* qse_awk_alloc (
|
|
|
|
|
* @return a pointer to a memory block on success, #QSE_NULL on failure
|
|
|
|
|
*/
|
|
|
|
|
void* qse_awk_realloc (
|
|
|
|
|
qse_awk_t* awk, /**< awk object */
|
|
|
|
|
qse_awk_t* awk, /**< awk */
|
|
|
|
|
void* ptr, /**< memory block */
|
|
|
|
|
qse_size_t size /**< new block size in bytes */
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The qse_awk_free() function frees dynamic memory allocated.
|
|
|
|
|
*/
|
|
|
|
|
void qse_awk_free (
|
|
|
|
|
qse_awk_t* awk, /**< awk object */
|
|
|
|
|
qse_awk_t* awk, /**< awk */
|
|
|
|
|
void* ptr /**< memory block to free */
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
@ -1305,7 +1331,7 @@ void qse_awk_free (
|
|
|
|
|
* #QSE_NULL on failure.
|
|
|
|
|
*/
|
|
|
|
|
qse_char_t* qse_awk_strdup (
|
|
|
|
|
qse_awk_t* awk, /**< awk object */
|
|
|
|
|
qse_awk_t* awk, /**< awk */
|
|
|
|
|
const qse_char_t* str /**< string pointer */
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
@ -1319,11 +1345,14 @@ qse_char_t* qse_awk_strdup (
|
|
|
|
|
* #QSE_NULL on failure.
|
|
|
|
|
*/
|
|
|
|
|
qse_char_t* qse_awk_strxdup (
|
|
|
|
|
qse_awk_t* awk, /**< awk object */
|
|
|
|
|
qse_awk_t* awk, /**< awk */
|
|
|
|
|
const qse_char_t* str, /**< string pointer */
|
|
|
|
|
qse_size_t len /**< string length */
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The qse_awk_strxtolong() function converts a string to an integer.
|
|
|
|
|
*/
|
|
|
|
|
qse_long_t qse_awk_strxtolong (
|
|
|
|
|
qse_awk_t* awk,
|
|
|
|
|
const qse_char_t* str,
|
|
|
|
@ -1332,6 +1361,10 @@ qse_long_t qse_awk_strxtolong (
|
|
|
|
|
const qse_char_t** endptr
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The qse_awk_strxtoreal() function converts a string to a floating-point
|
|
|
|
|
* number.
|
|
|
|
|
*/
|
|
|
|
|
qse_real_t qse_awk_strxtoreal (
|
|
|
|
|
qse_awk_t* awk,
|
|
|
|
|
const qse_char_t* str,
|
|
|
|
@ -1339,6 +1372,9 @@ qse_real_t qse_awk_strxtoreal (
|
|
|
|
|
const qse_char_t** endptr
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The qse_awk_longtostr() functon convers an integer to a string.
|
|
|
|
|
*/
|
|
|
|
|
qse_size_t qse_awk_longtostr (
|
|
|
|
|
qse_awk_t* awk,
|
|
|
|
|
qse_long_t value,
|
|
|
|
@ -1360,7 +1396,7 @@ qse_size_t qse_awk_longtostr (
|
|
|
|
|
* @return new runtime context on success, #QSE_NULL on failure
|
|
|
|
|
*/
|
|
|
|
|
qse_awk_rtx_t* qse_awk_rtx_open (
|
|
|
|
|
qse_awk_t* awk, /**< awk object */
|
|
|
|
|
qse_awk_t* awk, /**< awk */
|
|
|
|
|
qse_size_t xtn, /**< size of extension in bytes */
|
|
|
|
|
qse_awk_rio_t* rio, /**< runtime IO handlers */
|
|
|
|
|
const qse_cstr_t* arg /**< argument array to set ARGV */
|
|
|
|
@ -1430,7 +1466,7 @@ qse_awk_val_t* qse_awk_rtx_call (
|
|
|
|
|
* invoked with the awk parameter.
|
|
|
|
|
*/
|
|
|
|
|
void qse_awk_stopall (
|
|
|
|
|
qse_awk_t* awk /**< awk object */
|
|
|
|
|
qse_awk_t* awk /**< awk */
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -1466,8 +1502,8 @@ void qse_awk_rtx_setrcb (
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The qse_awk_rtx_getnargs() gets the number of arguments passed to
|
|
|
|
|
* qse_awk_run().
|
|
|
|
|
* The qse_awk_rtx_getnargs() gets the number of arguments passed to an
|
|
|
|
|
* intrinsic functon.
|
|
|
|
|
*/
|
|
|
|
|
qse_size_t qse_awk_rtx_getnargs (
|
|
|
|
|
qse_awk_rtx_t* rtx
|
|
|
|
@ -1492,7 +1528,7 @@ qse_awk_val_t* qse_awk_rtx_getarg (
|
|
|
|
|
*/
|
|
|
|
|
qse_awk_val_t* qse_awk_rtx_getgbl (
|
|
|
|
|
qse_awk_rtx_t* rtx, /**< runtime context */
|
|
|
|
|
int id /**< a global variable ID */
|
|
|
|
|
int id /**< global variable ID */
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -1566,17 +1602,27 @@ qse_map_t* qse_awk_rtx_getnvmap (
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The qse_awk_rtx_geterrnum() function gets the number of the last error
|
|
|
|
|
* occurred in a runtime context.
|
|
|
|
|
* occurred during runtime.
|
|
|
|
|
* @return error number
|
|
|
|
|
*/
|
|
|
|
|
qse_awk_errnum_t qse_awk_rtx_geterrnum (
|
|
|
|
|
qse_awk_rtx_t* rtx /**< runtime context */
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The qse_awk_rtx_geterrloc() function gets the location of the last error
|
|
|
|
|
* occurred during runtime. The
|
|
|
|
|
* @return error location
|
|
|
|
|
*/
|
|
|
|
|
const qse_awk_loc_t* qse_awk_rtx_geterrloc (
|
|
|
|
|
qse_awk_rtx_t* rtx /**< runtime context */
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The qse_awk_rtx_geterrmsg() function gets the string describing the last
|
|
|
|
|
* error occurred during runtime.
|
|
|
|
|
* @return error message
|
|
|
|
|
*/
|
|
|
|
|
const qse_char_t* qse_awk_rtx_geterrmsg (
|
|
|
|
|
qse_awk_rtx_t* rtx /**< runtime context */
|
|
|
|
|
);
|
|
|
|
@ -1603,17 +1649,27 @@ void qse_awk_rtx_geterror (
|
|
|
|
|
qse_awk_loc_t* errloc /**< error location */
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The qse_awk_rtx_seterrnum() function sets the error information omitting
|
|
|
|
|
* the error location.
|
|
|
|
|
*/
|
|
|
|
|
void qse_awk_rtx_seterrnum (
|
|
|
|
|
qse_awk_rtx_t* rtx, /**< runtime context */
|
|
|
|
|
qse_awk_errnum_t errnum, /**< error number */
|
|
|
|
|
const qse_cstr_t* errarg /**< arguments to format error message */
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The qse_awk_rtx_seterrinf() function sets error information.
|
|
|
|
|
*/
|
|
|
|
|
void qse_awk_rtx_seterrinf (
|
|
|
|
|
qse_awk_rtx_t* rtx, /**< runtime context */
|
|
|
|
|
const qse_awk_errinf_t* errinf /**< error information */
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The qse_awk_rtx_seterror() function sets error information.
|
|
|
|
|
*/
|
|
|
|
|
void qse_awk_rtx_seterror (
|
|
|
|
|
qse_awk_rtx_t* rtx, /**< runtime context */
|
|
|
|
|
qse_awk_errnum_t errnum, /**< error number */
|
|
|
|
@ -1627,44 +1683,75 @@ void qse_awk_rtx_seterror (
|
|
|
|
|
* and fields ($1 to $N).
|
|
|
|
|
*/
|
|
|
|
|
int qse_awk_rtx_clrrec (
|
|
|
|
|
qse_awk_rtx_t* rtx,
|
|
|
|
|
qse_awk_rtx_t* rtx, /** runtime context */
|
|
|
|
|
qse_bool_t skip_inrec_line
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The qse_awk_rtx_setrec() function sets the input record ($0) or
|
|
|
|
|
* input fields ($1 to $N).
|
|
|
|
|
*/
|
|
|
|
|
int qse_awk_rtx_setrec (
|
|
|
|
|
qse_awk_rtx_t* rtx,
|
|
|
|
|
qse_size_t idx,
|
|
|
|
|
const qse_char_t* str,
|
|
|
|
|
qse_size_t len
|
|
|
|
|
qse_awk_rtx_t* rtx, /**< runtime context */
|
|
|
|
|
qse_size_t idx, /**< 0 for $0, N for $N */
|
|
|
|
|
const qse_char_t* str, /**< string pointer */
|
|
|
|
|
qse_size_t len /**< string length */
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/* value manipulation functions */
|
|
|
|
|
/**
|
|
|
|
|
* The qse_awk_rtx_makeintval() function creates an integer value.
|
|
|
|
|
* @return value on success, QSE_NULL on failure
|
|
|
|
|
*/
|
|
|
|
|
qse_awk_val_t* qse_awk_rtx_makeintval (
|
|
|
|
|
qse_awk_rtx_t* rtx,
|
|
|
|
|
qse_long_t v
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The qse_awk_rtx_makerealval() function creates a floating-point value.
|
|
|
|
|
* @return value on success, QSE_NULL on failure
|
|
|
|
|
*/
|
|
|
|
|
qse_awk_val_t* qse_awk_rtx_makerealval (
|
|
|
|
|
qse_awk_rtx_t* rtx,
|
|
|
|
|
qse_real_t v
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The qse_awk_rtx_makestrval0() function creates a string value.
|
|
|
|
|
* @return value on success, QSE_NULL on failure
|
|
|
|
|
*/
|
|
|
|
|
qse_awk_val_t* qse_awk_rtx_makestrval0 (
|
|
|
|
|
qse_awk_rtx_t* rtx,
|
|
|
|
|
const qse_char_t* str
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The qse_awk_rtx_makestrval() function creates a string value.
|
|
|
|
|
* @return value on success, QSE_NULL on failure
|
|
|
|
|
*/
|
|
|
|
|
qse_awk_val_t* qse_awk_rtx_makestrval (
|
|
|
|
|
qse_awk_rtx_t* rtx,
|
|
|
|
|
const qse_char_t* str,
|
|
|
|
|
qse_size_t len
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The qse_awk_rtx_makestrval_nodup() function creates a string value.
|
|
|
|
|
* The @a len character array pointed to by @a str is not duplicated.
|
|
|
|
|
* Instead the pointer and the lengh are just reused.
|
|
|
|
|
* @return value on success, QSE_NULL on failure
|
|
|
|
|
*/
|
|
|
|
|
qse_awk_val_t* qse_awk_rtx_makestrval_nodup (
|
|
|
|
|
qse_awk_rtx_t* rtx,
|
|
|
|
|
qse_char_t* str,
|
|
|
|
|
qse_size_t len
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The qse_awk_rtx_makestrval2() function creates a string value combining
|
|
|
|
|
* two strings.
|
|
|
|
|
* @return value on success, QSE_NULL on failure
|
|
|
|
|
*/
|
|
|
|
|
qse_awk_val_t* qse_awk_rtx_makestrval2 (
|
|
|
|
|
qse_awk_rtx_t* rtx,
|
|
|
|
|
const qse_char_t* str1,
|
|
|
|
@ -1673,12 +1760,22 @@ qse_awk_val_t* qse_awk_rtx_makestrval2 (
|
|
|
|
|
qse_size_t len2
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The qse_awk_rtx_makenstrval() function creates a numeric string value.
|
|
|
|
|
* A numeric string is a string value whose one of the header fields @b nstr
|
|
|
|
|
* is 1.
|
|
|
|
|
* @return value on success, QSE_NULL on failure
|
|
|
|
|
*/
|
|
|
|
|
qse_awk_val_t* qse_awk_rtx_makenstrval (
|
|
|
|
|
qse_awk_rtx_t* rtx,
|
|
|
|
|
const qse_char_t* str,
|
|
|
|
|
qse_size_t len
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The qse_awk_rtx_makerexval() function creates a regular expression value.
|
|
|
|
|
* @return value on success, QSE_NULL on failure
|
|
|
|
|
*/
|
|
|
|
|
qse_awk_val_t* qse_awk_rtx_makerexval (
|
|
|
|
|
qse_awk_rtx_t* rtx,
|
|
|
|
|
const qse_char_t* buf,
|
|
|
|
@ -1686,19 +1783,33 @@ qse_awk_val_t* qse_awk_rtx_makerexval (
|
|
|
|
|
void* code
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The qse_awk_rtx_makemapval() function creates an empty map value.
|
|
|
|
|
* @return value on success, QSE_NULL on failure
|
|
|
|
|
*/
|
|
|
|
|
qse_awk_val_t* qse_awk_rtx_makemapval (
|
|
|
|
|
qse_awk_rtx_t* rtx
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The qse_awk_rtx_makerefval() function creates a reference value.
|
|
|
|
|
* @return value on success, QSE_NULL on failure
|
|
|
|
|
*/
|
|
|
|
|
qse_awk_val_t* qse_awk_rtx_makerefval (
|
|
|
|
|
qse_awk_rtx_t* rtx,
|
|
|
|
|
int id,
|
|
|
|
|
qse_awk_val_t** adr
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The qse_awk_rtx_isstaticval() function determines if a value is static.
|
|
|
|
|
* A static value is allocated once and reused until a runtime context @ rtx
|
|
|
|
|
* is closed.
|
|
|
|
|
* @return QSE_TRUE if @a val is static, QSE_FALSE if @a val is false
|
|
|
|
|
*/
|
|
|
|
|
qse_bool_t qse_awk_rtx_isstaticval (
|
|
|
|
|
qse_awk_rtx_t* rtx,
|
|
|
|
|
qse_awk_val_t* val
|
|
|
|
|
qse_awk_rtx_t* rtx, /**< runtime context */
|
|
|
|
|
qse_awk_val_t* val /**< value to check */
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -1707,7 +1818,7 @@ qse_bool_t qse_awk_rtx_isstaticval (
|
|
|
|
|
*/
|
|
|
|
|
void qse_awk_rtx_refupval (
|
|
|
|
|
qse_awk_rtx_t* rtx, /**< runtime context */
|
|
|
|
|
qse_awk_val_t* val /**< a value */
|
|
|
|
|
qse_awk_val_t* val /**< value */
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|