integrated Ville Laurikari's TRE

This commit is contained in:
2011-09-01 09:43:46 +00:00
parent 621eefef0c
commit 6aba3f8f89
108 changed files with 7867 additions and 437 deletions

View File

@ -1,5 +1,5 @@
/*
* $Id: Awk.cpp 518 2011-07-24 14:24:13Z hyunghwan.chung $
* $Id: Awk.cpp 556 2011-08-31 15:43:46Z hyunghwan.chung $
*
Copyright 2006-2011 Chung, Hyung-Hwan.
This file is part of QSE.
@ -1066,7 +1066,8 @@ int Awk::open ()
QSE_ASSERT (awk == QSE_NULL && functionMap == QSE_NULL);
qse_awk_prm_t prm;
memset (&prm, 0, QSE_SIZEOF(prm));
QSE_MEMSET (&prm, 0, QSE_SIZEOF(prm));
prm.sprintf = sprintf;
prm.math.pow = pow;
prm.math.mod = mod;

View File

@ -1,5 +1,5 @@
/*
* $Id: fnc.c 518 2011-07-24 14:24:13Z hyunghwan.chung $
* $Id: fnc.c 556 2011-08-31 15:43:46Z hyunghwan.chung $
*
Copyright 2006-2011 Chung, Hyung-Hwan.
This file is part of QSE.
@ -979,7 +979,7 @@ static int __substitute (qse_awk_rtx_t* run, qse_long_t max_count)
}
}
if (qse_str_init (&new, run->awk->mmgr, s2.len) == QSE_NULL)
if (qse_str_init (&new, run->awk->mmgr, s2.len) <= -1)
{
qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM, QSE_NULL);
goto oops;
@ -1343,14 +1343,14 @@ static int fnc_sprintf (qse_awk_rtx_t* run, const qse_cstr_t* fnm)
nargs = qse_awk_rtx_getnargs (run);
QSE_ASSERT (nargs > 0);
if (qse_str_init (&out, run->awk->mmgr, 256) == QSE_NULL)
if (qse_str_init (&out, run->awk->mmgr, 256) <= -1)
{
qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM, QSE_NULL);
goto oops;
}
out_inited = 1;
if (qse_str_init (&fbu, run->awk->mmgr, 256) == QSE_NULL)
if (qse_str_init (&fbu, run->awk->mmgr, 256) <= -1)
{
qse_awk_rtx_seterrnum (run, QSE_AWK_ENOMEM, QSE_NULL);
goto oops;

View File

@ -1,5 +1,5 @@
/*
* $Id: misc.c 522 2011-07-25 13:08:07Z hyunghwan.chung $
* $Id: misc.c 556 2011-08-31 15:43:46Z hyunghwan.chung $
*
Copyright 2006-2011 Chung, Hyung-Hwan.
This file is part of QSE.
@ -1071,7 +1071,7 @@ void* qse_awk_buildrex (
p = qse_buildrex (
awk->mmgr, awk->rex.depth.max.build,
((awk->option&QSE_AWK_REXBOUND)? 0:QSE_REX_NOBOUND),
((awk->option&QSE_AWK_REXBOUND)? 0: QSE_REX_NOBOUND),
ptn, len, &err
);
if (p == QSE_NULL) *errnum = QSE_AWK_REXERRTOERR(err);

View File

@ -1,5 +1,5 @@
/*
* $Id: run.c 551 2011-08-15 13:52:48Z hyunghwan.chung $
* $Id: run.c 556 2011-08-31 15:43:46Z hyunghwan.chung $
*
Copyright 2006-2011 Chung, Hyung-Hwan.
This file is part of QSE.
@ -818,21 +818,21 @@ static int init_rtx (qse_awk_rtx_t* rtx, qse_awk_t* awk, qse_awk_rio_t* rio)
rtx->inrec.maxflds = 0;
rtx->inrec.d0 = qse_awk_val_nil;
if (qse_str_init (
&rtx->inrec.line, MMGR(rtx), DEF_BUF_CAPA) == QSE_NULL)
&rtx->inrec.line, MMGR(rtx), DEF_BUF_CAPA) <= -1)
{
qse_awk_seterrnum (awk, QSE_AWK_ENOMEM, QSE_NULL);
return -1;
}
if (qse_str_init (
&rtx->inrec.linew, MMGR(rtx), DEF_BUF_CAPA) == QSE_NULL)
&rtx->inrec.linew, MMGR(rtx), DEF_BUF_CAPA) <= -1)
{
qse_str_fini (&rtx->inrec.line);
qse_awk_seterrnum (awk, QSE_AWK_ENOMEM, QSE_NULL);
return -1;
}
if (qse_str_init (&rtx->format.out, MMGR(rtx), 256) == QSE_NULL)
if (qse_str_init (&rtx->format.out, MMGR(rtx), 256) <= -1)
{
qse_str_fini (&rtx->inrec.linew);
qse_str_fini (&rtx->inrec.line);
@ -840,7 +840,7 @@ static int init_rtx (qse_awk_rtx_t* rtx, qse_awk_t* awk, qse_awk_rio_t* rio)
return -1;
}
if (qse_str_init (&rtx->format.fmt, MMGR(rtx), 256) == QSE_NULL)
if (qse_str_init (&rtx->format.fmt, MMGR(rtx), 256) <= -1)
{
qse_str_fini (&rtx->format.out);
qse_str_fini (&rtx->inrec.linew);
@ -6311,7 +6311,7 @@ static qse_awk_val_t* eval_getline (qse_awk_rtx_t* run, qse_awk_nde_t* nde)
dst = (in == QSE_NULL)? QSE_T(""): in;
/* TODO: optimize the line buffer management */
if (qse_str_init (&buf, MMGR(run), DEF_BUF_CAPA) == QSE_NULL)
if (qse_str_init (&buf, MMGR(run), DEF_BUF_CAPA) <= -1)
{
if (in != QSE_NULL) QSE_AWK_FREE (run->awk, in);
SETERR_LOC (run, QSE_AWK_ENOMEM, &nde->loc);
@ -6483,7 +6483,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)
&tmp, MMGR(run), QSE_STR_LEN(&run->inrec.line)) <= -1)
{
if (ofs_free != QSE_NULL)
QSE_AWK_FREE (run->awk, ofs_free);
@ -6607,7 +6607,7 @@ static qse_char_t* idxnde_to_str (
out.type = QSE_AWK_RTX_VALTOSTR_STRPCAT;
out.u.strpcat = &idxstr;
if (qse_str_init (&idxstr, MMGR(run), DEF_BUF_CAPA) == QSE_NULL)
if (qse_str_init (&idxstr, MMGR(run), DEF_BUF_CAPA) <= -1)
{
SETERR_LOC (run, QSE_AWK_ENOMEM, &nde->loc);
return QSE_NULL;

View File

@ -1,5 +1,5 @@
/*
* $Id: val.c 518 2011-07-24 14:24:13Z hyunghwan.chung $
* $Id: val.c 556 2011-08-31 15:43:46Z hyunghwan.chung $
*
Copyright 2006-2011 Chung, Hyung-Hwan.
This file is part of QSE.
@ -448,10 +448,9 @@ qse_awk_val_t* qse_awk_rtx_makemapval (qse_awk_rtx_t* rtx)
val->nstr = 0;
val->map = (qse_htb_t*)(val + 1);
val->map = qse_htb_init (
val->map, rtx->awk->mmgr, 256, 70, QSE_SIZEOF(qse_char_t), 1
);
if (val->map == QSE_NULL)
if (qse_htb_init (
val->map, rtx->awk->mmgr,
256, 70, QSE_SIZEOF(qse_char_t), 1) <= -1)
{
QSE_AWK_FREE (rtx->awk, val);
qse_awk_rtx_seterrnum (rtx, QSE_AWK_ENOMEM, QSE_NULL);
@ -981,14 +980,14 @@ static int val_real_to_str (
tmp_len = rtx->gbl.convfmt.len;
}
if (qse_str_init (&buf, rtx->awk->mmgr, 256) == QSE_NULL)
if (qse_str_init (&buf, rtx->awk->mmgr, 256) <= -1)
{
qse_awk_rtx_seterrnum (rtx, QSE_AWK_ENOMEM, QSE_NULL);
return -1;
}
buf_inited = 1;
if (qse_str_init (&fbu, rtx->awk->mmgr, 256) == QSE_NULL)
if (qse_str_init (&fbu, rtx->awk->mmgr, 256) <= -1)
{
qse_str_fini (&buf);
qse_awk_rtx_seterrnum (rtx, QSE_AWK_ENOMEM, QSE_NULL);