changed the way to set error information in run.c

This commit is contained in:
hyung-hwan 2020-01-03 07:11:32 +00:00
parent 0fa5af5614
commit f4650746bb
4 changed files with 186 additions and 214 deletions

View File

@ -135,22 +135,20 @@ const hawk_ooch_t* hawk_dflerrstr (hawk_t* awk, hawk_errnum_t errnum)
HAWK_T("wrong position index"),
HAWK_T("too few arguments"),
HAWK_T("too many arguments"),
HAWK_T("function '${0}' not found"),
HAWK_T("non-function value in '${0}'"),
HAWK_T("'${0}' not deletable"),
HAWK_T("function not found"),
HAWK_T("non-function value"),
HAWK_T("not deletable"),
HAWK_T("value not a map"),
HAWK_T("right-hand side of the 'in' operator not a map"),
HAWK_T("right-hand side of the 'in' operator not a map nor nil"),
HAWK_T("value not referenceable"),
HAWK_T("cannot return a map"), /* EMAPRET */
HAWK_T("cannot assign a map to a positional"), /* EMAPTOPOS */
HAWK_T("cannot return a map"), /* EMAPRET */
HAWK_T("cannot assign a map to a positional"), /* EMAPTOPOS */
HAWK_T("cannot assign a map to an indexed variable"),/* EMAPTOIDX */
HAWK_T("cannot assign a map to a variable '${0}'"), /* EMAPTONVAR */
HAWK_T("cannot change a map to a scalar"), /* EMAPTOSCALAR */
HAWK_T("cannot change a scalar to a map"), /* ESCALARTOMAP */
HAWK_T("cannot change a map '${0}' to another map"),/* ENMAPTOMAP */
HAWK_T("cannot change a map '${0}' to a scalar"), /* ENMAPTOSCALAR */
HAWK_T("cannot change a scalar '${0}' to a map"), /* ENSCALARTOMAP */
HAWK_T("cannot assign a map to a variable"), /* EMAPTOVAR */
HAWK_T("cannot change a map to a scalar"), /* EMAPTOSCALAR */
HAWK_T("cannot change a map to another map"), /* EMAPTOMAP */
HAWK_T("cannot change a scalar to a map"), /* ESCALARTOMAP */
HAWK_T("invalid value to convert to a string"),
HAWK_T("invalid value to convert to a number"),
HAWK_T("invalid value to a character"),
@ -159,12 +157,11 @@ const hawk_ooch_t* hawk_dflerrstr (hawk_t* awk, hawk_errnum_t errnum)
HAWK_T("'next' called from END block"),
HAWK_T("'nextfile' called from BEGIN block"),
HAWK_T("'nextfile' called from END block"),
HAWK_T("intrinsic function handler for '${0}' failed"),
HAWK_T("wrong implementation of user-defined I/O handler"),
HAWK_T("I/O handler returned an error"),
HAWK_T("no such I/O name found"),
HAWK_T("I/O name empty"),
HAWK_T("I/O name '${0}' containing '\\0'"),
HAWK_T("I/O name containing '\\0'"),
HAWK_T("not sufficient arguments to formatting sequence"),
HAWK_T("recursion detected in format conversion"),
HAWK_T("invalid character in CONVFMT"),
@ -552,6 +549,7 @@ void hawk_rtx_seterror (hawk_rtx_t* rtx, hawk_errnum_t errnum, const hawk_oocs_t
void hawk_rtx_errortohawk (hawk_rtx_t* rtx, hawk_t* hawk)
{
/* copy error information in 'rtx' to the 'hawk' object */
hawk->_gem.errnum = rtx->_gem.errnum;
hawk->_gem.errloc = rtx->_gem.errloc;
hawk_copy_oocstr (hawk->_gem.errmsg, HAWK_COUNTOF(hawk->_gem.errmsg), rtx->_gem.errmsg);

View File

@ -773,8 +773,8 @@ enum hawk_errnum_t
HAWK_EBUSY, /**< system busy */
HAWK_EPERM, /**< operation not permitted */
HAWK_ENOSUP, /**< not supported */
HAWK_ENOENT, /**< '${0} not found */
HAWK_EEXIST, /**< '${0}' already exists */
HAWK_ENOENT, /**< not found */
HAWK_EEXIST, /**< already exists */
HAWK_EIOERR, /**< I/O error */
HAWK_EBUFFULL,/**< buffer full */
HAWK_EECERR, /**< encoding conversion error */
@ -866,9 +866,9 @@ enum hawk_errnum_t
HAWK_EPOSIDX, /**< wrong position index */
HAWK_EARGTF, /**< too few arguments */
HAWK_EARGTM, /**< too many arguments */
HAWK_EFUNNF, /**< function '${0}' not found */
HAWK_ENOTFUN, /**< non-function value in '%{0}' */
HAWK_ENOTDEL, /**< '${0}' not deletable */
HAWK_EFUNNF, /**< function not found */
HAWK_ENOTFUN, /**< non-function value */
HAWK_ENOTDEL, /**< not deletable */
HAWK_ENOTMAP, /**< value not a map */
HAWK_ENOTMAPIN, /**< right-hand side of 'in' not a map */
HAWK_ENOTMAPNILIN, /**< right-hand side of 'in' not a map nor nil */
@ -876,12 +876,10 @@ enum hawk_errnum_t
HAWK_EMAPRET, /**< map cannot be returned */
HAWK_EMAPTOPOS, /**< map cannot be assigned to a positional */
HAWK_EMAPTOIDX, /**< map cannot be assigned to an indexed variable */
HAWK_EMAPTONVAR, /**< map cannot be assigned to an variable '${0}' */
HAWK_EMAPTOVAR, /**< map cannot be assigned to a variable */
HAWK_EMAPTOSCALAR, /**< cannot change a map to a scalar value */
HAWK_EMAPTOMAP, /**< cannot change a map to another map */
HAWK_ESCALARTOMAP, /**< cannot change a scalar to a map */
HAWK_ENMAPTOMAP, /**< cannot change a map '${0}' to another map */
HAWK_ENMAPTOSCALAR, /**< cannot change a map '${0}' to a scalar */
HAWK_ENSCALARTOMAP, /**< cannot change a scalar '${0}' to a map */
HAWK_EVALTOSTR, /**< invalid value to convert to a string */
HAWK_EVALTONUM, /**< invalid value to convert to a number */
HAWK_EVALTOCHR, /**< invalid value to convert to a character */
@ -890,12 +888,11 @@ enum hawk_errnum_t
HAWK_ERNEXTEND, /**< 'next' called from END block */
HAWK_ERNEXTFBEG, /**< 'nextfile' called from BEGIN block */
HAWK_ERNEXTFEND, /**< 'nextfile' called from END block */
HAWK_EFNCIMPL, /**< intrinsic function handler for '${0}' failed */
HAWK_EIOUSER, /**< wrong user io handler implementation */
HAWK_EIOIMPL, /**< I/O callback returned an error */
HAWK_EIONMNF, /**< no such I/O name found */
HAWK_EIONMEM, /**< I/O name empty */
HAWK_EIONMNL, /**< I/O name '${0}' containing '\\0' */
HAWK_EIONMNL, /**< I/O name containing '\\0' */
HAWK_EFMTARG, /**< not sufficient arguments to formatting sequence */
HAWK_EFMTCNV, /**< recursion detected in format conversion */
HAWK_ECONVFMTCHR, /**< invalid character in CONVFMT */

View File

@ -571,7 +571,7 @@ static int parse (hawk_t* awk)
/* see parse_fncall() for what is
* stored into awk->tree.funs */
nde = (hawk_nde_t*)HAWK_HTB_VPTR(p);
SETERR_ARG_LOC (awk, HAWK_EFUNNF, HAWK_HTB_KPTR(p), HAWK_HTB_KLEN(p), &nde->loc);
hawk_seterrfmt (awk, &nde->loc, HAWK_EFUNNF, HAWK_T("function '%.*js' not defined"), HAWK_HTB_KLEN(p), HAWK_HTB_KPTR(p));
goto oops;
}

File diff suppressed because it is too large Load Diff