cleaned up code a little
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: Awk.cpp 232 2009-07-14 08:06:14Z hyunghwan.chung $
|
||||
* $Id: Awk.cpp 234 2009-07-14 14:08:48Z hyunghwan.chung $
|
||||
*
|
||||
Copyright 2006-2009 Chung, Hyung-Hwan.
|
||||
|
||||
@ -375,7 +375,7 @@ int Awk::Value::getInt (long_t* v) const
|
||||
int n = qse_awk_rtx_valtonum (run->rtx, val, &lv, &rv);
|
||||
if (n <= -1)
|
||||
{
|
||||
run->awk->retrieveError (run->rtx);
|
||||
run->awk->retrieveError (run);
|
||||
return -1;
|
||||
}
|
||||
if (n >= 1) lv = rv;
|
||||
@ -399,7 +399,7 @@ int Awk::Value::getReal (real_t* v) const
|
||||
int n = qse_awk_rtx_valtonum (run->rtx, val, &lv, &rv);
|
||||
if (n <= -1)
|
||||
{
|
||||
run->awk->retrieveError (run->rtx);
|
||||
run->awk->retrieveError (run);
|
||||
return -1;
|
||||
}
|
||||
if (n == 0) rv = lv;
|
||||
@ -434,7 +434,7 @@ int Awk::Value::getStr (const char_t** str, size_t* len) const
|
||||
if (qse_awk_rtx_valtostr (
|
||||
run->rtx, val, &out) == QSE_NULL)
|
||||
{
|
||||
run->awk->retrieveError (run->rtx);
|
||||
run->awk->retrieveError (run);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -498,7 +498,7 @@ int Awk::Value::setInt (Run* r, long_t v)
|
||||
tmp = qse_awk_rtx_makeintval (r->rtx, v);
|
||||
if (tmp == QSE_NULL)
|
||||
{
|
||||
r->awk->retrieveError (r->rtx);
|
||||
r->awk->retrieveError (r);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -519,7 +519,7 @@ int Awk::Value::setReal (Run* r, real_t v)
|
||||
tmp = qse_awk_rtx_makerealval (r->rtx, v);
|
||||
if (tmp == QSE_NULL)
|
||||
{
|
||||
r->awk->retrieveError (r->rtx);
|
||||
r->awk->retrieveError (r);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -540,7 +540,7 @@ int Awk::Value::setStr (Run* r, const char_t* str, size_t len)
|
||||
tmp = qse_awk_rtx_makestrval (r->rtx, str, len);
|
||||
if (tmp == QSE_NULL)
|
||||
{
|
||||
r->awk->retrieveError (r->rtx);
|
||||
r->awk->retrieveError (r);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -561,7 +561,7 @@ int Awk::Value::setStr (Run* r, const char_t* str)
|
||||
tmp = qse_awk_rtx_makestrval0 (r->rtx, str);
|
||||
if (tmp == QSE_NULL)
|
||||
{
|
||||
r->awk->retrieveError (r->rtx);
|
||||
r->awk->retrieveError (r);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -587,7 +587,7 @@ int Awk::Value::setIndexedVal (Run* r, const Index& idx, val_t* v)
|
||||
val_t* map = qse_awk_rtx_makemapval (r->rtx);
|
||||
if (map == QSE_NULL)
|
||||
{
|
||||
r->awk->retrieveError (r->rtx);
|
||||
r->awk->retrieveError (r);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -603,7 +603,7 @@ int Awk::Value::setIndexedVal (Run* r, const Index& idx, val_t* v)
|
||||
qse_awk_rtx_refdownval (r->rtx, v);
|
||||
qse_awk_rtx_refdownval (r->rtx, map);
|
||||
r->setError (ERR_NOMEM, 0, QSE_NULL, 0);
|
||||
r->awk->retrieveError (r->rtx);
|
||||
r->awk->retrieveError (r);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -624,7 +624,7 @@ int Awk::Value::setIndexedVal (Run* r, const Index& idx, val_t* v)
|
||||
{
|
||||
// it can't span across multiple runtime contexts
|
||||
run->setError (ERR_INVAL);
|
||||
run->awk->retrieveError (run->rtx);
|
||||
run->awk->retrieveError (run);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -637,7 +637,7 @@ int Awk::Value::setIndexedVal (Run* r, const Index& idx, val_t* v)
|
||||
{
|
||||
qse_awk_rtx_refdownval (r->rtx, v);
|
||||
run->setError (ERR_NOMEM);
|
||||
run->awk->retrieveError (run->rtx);
|
||||
run->awk->retrieveError (run);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@ -657,7 +657,7 @@ int Awk::Value::setIndexedInt (Run* r, const Index& idx, long_t v)
|
||||
tmp = qse_awk_rtx_makeintval (r->rtx, v);
|
||||
if (tmp == QSE_NULL)
|
||||
{
|
||||
r->awk->retrieveError (r->rtx);
|
||||
r->awk->retrieveError (r);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -680,7 +680,7 @@ int Awk::Value::setIndexedReal (Run* r, const Index& idx, real_t v)
|
||||
tmp = qse_awk_rtx_makerealval (r->rtx, v);
|
||||
if (tmp == QSE_NULL)
|
||||
{
|
||||
r->awk->retrieveError (r->rtx);
|
||||
r->awk->retrieveError (r);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -704,7 +704,7 @@ int Awk::Value::setIndexedStr (
|
||||
tmp = qse_awk_rtx_makestrval (r->rtx, str, len);
|
||||
if (tmp == QSE_NULL)
|
||||
{
|
||||
r->awk->retrieveError (r->rtx);
|
||||
r->awk->retrieveError (r);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -727,7 +727,7 @@ int Awk::Value::setIndexedStr (Run* r, const Index& idx, const char_t* str)
|
||||
tmp = qse_awk_rtx_makestrval0 (r->rtx, str);
|
||||
if (tmp == QSE_NULL)
|
||||
{
|
||||
r->awk->retrieveError (r->rtx);
|
||||
r->awk->retrieveError (r);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -899,19 +899,19 @@ bool Awk::Run::isStop () const
|
||||
return qse_awk_rtx_shouldstop (this->rtx)? true: false;
|
||||
}
|
||||
|
||||
Awk::ErrorNumber Awk::Run::getErrorNumber () const
|
||||
Awk::ErrorNumber Awk::Run::errorNumber () const throw ()
|
||||
{
|
||||
QSE_ASSERT (this->rtx != QSE_NULL);
|
||||
return (ErrorNumber)qse_awk_rtx_geterrnum (this->rtx);
|
||||
}
|
||||
|
||||
Awk::size_t Awk::Run::getErrorLine () const
|
||||
Awk::size_t Awk::Run::errorLine () const throw ()
|
||||
{
|
||||
QSE_ASSERT (this->rtx != QSE_NULL);
|
||||
return qse_awk_rtx_geterrlin (this->rtx);
|
||||
}
|
||||
|
||||
const Awk::char_t* Awk::Run::getErrorMessage () const
|
||||
const Awk::char_t* Awk::Run::errorMessage () const throw ()
|
||||
{
|
||||
QSE_ASSERT (this->rtx != QSE_NULL);
|
||||
return qse_awk_rtx_geterrmsg (this->rtx);
|
||||
@ -1027,17 +1027,31 @@ Awk::operator Awk::awk_t* () const
|
||||
return this->awk;
|
||||
}
|
||||
|
||||
Awk::ErrorNumber Awk::getErrorNumber () const
|
||||
const Awk::char_t* Awk::errorString (ErrorNumber num) const throw ()
|
||||
{
|
||||
QSE_ASSERT (awk != QSE_NULL);
|
||||
QSE_ASSERT (dflerrstr != QSE_NULL);
|
||||
return dflerrstr (awk, (errnum_t)num);
|
||||
}
|
||||
|
||||
const Awk::char_t* Awk::xerrstr (awk_t* a, errnum_t num) throw ()
|
||||
{
|
||||
Awk* awk = *(Awk**)QSE_XTN(a);
|
||||
return awk->errorString ((ErrorNumber)num);
|
||||
}
|
||||
|
||||
|
||||
Awk::ErrorNumber Awk::errorNumber () const throw ()
|
||||
{
|
||||
return this->errnum;
|
||||
}
|
||||
|
||||
Awk::size_t Awk::getErrorLine () const
|
||||
Awk::size_t Awk::errorLine () const throw ()
|
||||
{
|
||||
return this->errlin;
|
||||
}
|
||||
|
||||
const Awk::char_t* Awk::getErrorMessage () const
|
||||
const Awk::char_t* Awk::errorMessage () const throw ()
|
||||
{
|
||||
return this->errmsg;
|
||||
}
|
||||
@ -1119,12 +1133,15 @@ void Awk::retrieveError ()
|
||||
}
|
||||
}
|
||||
|
||||
void Awk::retrieveError (rtx_t* rtx)
|
||||
void Awk::retrieveError (Run* run)
|
||||
{
|
||||
errnum_t num;
|
||||
const char_t* msg;
|
||||
|
||||
qse_awk_rtx_geterror (rtx, &num, &this->errlin, &msg);
|
||||
QSE_ASSERT (run != QSE_NULL);
|
||||
if (run->rtx == QSE_NULL) return;
|
||||
|
||||
qse_awk_rtx_geterror (run->rtx, &num, &this->errlin, &msg);
|
||||
this->errnum = (ErrorNumber)num;
|
||||
qse_strxcpy (this->errmsg, QSE_COUNTOF(this->errmsg), msg);
|
||||
}
|
||||
@ -1137,7 +1154,7 @@ int Awk::open ()
|
||||
prm.pow = pow;
|
||||
prm.sprintf = sprintf;
|
||||
|
||||
awk = qse_awk_open (this, QSE_SIZEOF(xtn_t), &prm);
|
||||
awk = qse_awk_open ((qse_mmgr_t*)this, QSE_SIZEOF(xtn_t), &prm);
|
||||
if (awk == QSE_NULL)
|
||||
{
|
||||
setError (ERR_NOMEM);
|
||||
@ -1151,9 +1168,6 @@ int Awk::open ()
|
||||
dflerrstr = qse_awk_geterrstr (awk);
|
||||
qse_awk_seterrstr (awk, xerrstr);
|
||||
|
||||
//functionMap = qse_map_open (
|
||||
// this, 512, 70, freeFunctionMapValue, QSE_NULL,
|
||||
// qse_awk_getmmgr(awk));
|
||||
functionMap = qse_map_open (
|
||||
qse_awk_getmmgr(awk), QSE_SIZEOF(this), 512, 70);
|
||||
if (functionMap == QSE_NULL)
|
||||
@ -1219,63 +1233,6 @@ Awk::size_t Awk::getMaxDepth (int id) const
|
||||
return qse_awk_getmaxdepth (awk, id);
|
||||
}
|
||||
|
||||
const Awk::char_t* Awk::getErrorString (ErrorNumber num) const
|
||||
{
|
||||
QSE_ASSERT (dflerrstr != QSE_NULL);
|
||||
return dflerrstr (awk, (errnum_t)num);
|
||||
}
|
||||
|
||||
const Awk::char_t* Awk::xerrstr (awk_t* a, errnum_t num) throw ()
|
||||
{
|
||||
Awk* awk = *(Awk**)QSE_XTN(a);
|
||||
try
|
||||
{
|
||||
return awk->getErrorString ((ErrorNumber)num);
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
return awk->dflerrstr (a, num);
|
||||
}
|
||||
}
|
||||
|
||||
int Awk::getWord (
|
||||
const char_t* ow, qse_size_t owl,
|
||||
const char_t** nw, qse_size_t* nwl)
|
||||
{
|
||||
QSE_ASSERT (awk != QSE_NULL);
|
||||
return qse_awk_getword (awk, ow, owl, nw, nwl);
|
||||
}
|
||||
|
||||
int Awk::setWord (const char_t* ow, const char_t* nw)
|
||||
{
|
||||
return setWord (ow, qse_strlen(ow), nw, qse_strlen(nw));
|
||||
}
|
||||
|
||||
int Awk::setWord (
|
||||
const char_t* ow, qse_size_t owl,
|
||||
const char_t* nw, qse_size_t nwl)
|
||||
{
|
||||
QSE_ASSERT (awk != QSE_NULL);
|
||||
return qse_awk_setword (awk, ow, owl, nw, nwl);
|
||||
}
|
||||
|
||||
int Awk::unsetWord (const char_t* ow)
|
||||
{
|
||||
return unsetWord (ow, qse_strlen(ow));
|
||||
}
|
||||
|
||||
int Awk::unsetWord (const char_t* ow, qse_size_t owl)
|
||||
{
|
||||
QSE_ASSERT (awk != QSE_NULL);
|
||||
return qse_awk_setword (awk, ow, owl, QSE_NULL, 0);
|
||||
}
|
||||
|
||||
int Awk::unsetAllWords ()
|
||||
{
|
||||
QSE_ASSERT (awk != QSE_NULL);
|
||||
return qse_awk_setword (awk, QSE_NULL, 0, QSE_NULL, 0);
|
||||
}
|
||||
|
||||
Awk::Run* Awk::parse (Source& in, Source& out)
|
||||
{
|
||||
QSE_ASSERT (awk != QSE_NULL);
|
||||
@ -1358,7 +1315,7 @@ int Awk::loop ()
|
||||
QSE_ASSERT (runctx.rtx != QSE_NULL);
|
||||
|
||||
int n = qse_awk_rtx_loop (runctx.rtx);
|
||||
if (n <= -1) retrieveError (runctx.rtx);
|
||||
if (n <= -1) retrieveError (&runctx);
|
||||
return n;
|
||||
}
|
||||
|
||||
@ -1380,7 +1337,7 @@ int Awk::call (const char_t* name, Value* ret, const Value* args, size_t nargs)
|
||||
if (ptr == QSE_NULL)
|
||||
{
|
||||
runctx.setError (ERR_NOMEM);
|
||||
retrieveError (runctx.rtx);
|
||||
retrieveError (&runctx);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@ -1394,7 +1351,7 @@ int Awk::call (const char_t* name, Value* ret, const Value* args, size_t nargs)
|
||||
|
||||
if (rv == QSE_NULL)
|
||||
{
|
||||
retrieveError (runctx.rtx);
|
||||
retrieveError (&runctx);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -1634,6 +1591,45 @@ void Awk::disableRunCallback ()
|
||||
runCallback = false;
|
||||
}
|
||||
|
||||
int Awk::getWord (
|
||||
const char_t* ow, qse_size_t owl,
|
||||
const char_t** nw, qse_size_t* nwl) throw ()
|
||||
{
|
||||
QSE_ASSERT (awk != QSE_NULL);
|
||||
return qse_awk_getword (awk, ow, owl, nw, nwl);
|
||||
}
|
||||
|
||||
int Awk::setWord (const char_t* ow, const char_t* nw) throw ()
|
||||
{
|
||||
return setWord (ow, qse_strlen(ow), nw, qse_strlen(nw));
|
||||
}
|
||||
|
||||
int Awk::setWord (
|
||||
const char_t* ow, qse_size_t owl,
|
||||
const char_t* nw, qse_size_t nwl) throw ()
|
||||
{
|
||||
QSE_ASSERT (awk != QSE_NULL);
|
||||
return qse_awk_setword (awk, ow, owl, nw, nwl);
|
||||
}
|
||||
|
||||
int Awk::unsetWord (const char_t* ow) throw ()
|
||||
{
|
||||
return unsetWord (ow, qse_strlen(ow));
|
||||
}
|
||||
|
||||
int Awk::unsetWord (const char_t* ow, qse_size_t owl) throw ()
|
||||
{
|
||||
QSE_ASSERT (awk != QSE_NULL);
|
||||
return qse_awk_setword (awk, ow, owl, QSE_NULL, 0);
|
||||
}
|
||||
|
||||
int Awk::unsetAllWords () throw ()
|
||||
{
|
||||
QSE_ASSERT (awk != QSE_NULL);
|
||||
return qse_awk_setword (awk, QSE_NULL, 0, QSE_NULL, 0);
|
||||
}
|
||||
|
||||
|
||||
bool Awk::onLoopEnter (Run& run)
|
||||
{
|
||||
return true;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: StdAwk.cpp 229 2009-07-12 13:06:01Z hyunghwan.chung $
|
||||
* $Id: StdAwk.cpp 234 2009-07-14 14:08:48Z hyunghwan.chung $
|
||||
*
|
||||
Copyright 2006-2009 Chung, Hyung-Hwan.
|
||||
|
||||
@ -302,7 +302,7 @@ int StdAwk::openPipe (Pipe& io)
|
||||
}
|
||||
|
||||
pio = qse_pio_open (
|
||||
((Awk*)io)->getMmgr(),
|
||||
(qse_mmgr_t*)this,
|
||||
0,
|
||||
io.getName(),
|
||||
flags
|
||||
@ -357,7 +357,7 @@ int StdAwk::openFile (File& io)
|
||||
}
|
||||
|
||||
fio = qse_fio_open (
|
||||
((Awk*)io)->getMmgr(),
|
||||
(qse_mmgr_t*)this,
|
||||
0,
|
||||
io.getName(),
|
||||
flags,
|
||||
|
Reference in New Issue
Block a user