updating Hawk and StdHawk classes for hawk
This commit is contained in:
parent
b610816366
commit
0e4cdc0f04
@ -64,7 +64,7 @@ Hawk::RIOBase::RIOBase (Run* run, rio_arg_t* riod): run (run), riod (riod)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
const Hawk::char_t* Hawk::RIOBase::getName () const
|
const hawk_ooch_t* Hawk::RIOBase::getName () const
|
||||||
{
|
{
|
||||||
return this->riod->name;
|
return this->riod->name;
|
||||||
}
|
}
|
||||||
@ -163,17 +163,15 @@ Hawk::Console::~Console ()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int Hawk::Console::setFileName (const char_t* name)
|
int Hawk::Console::setFileName (const hawk_ooch_t* name)
|
||||||
{
|
{
|
||||||
if (this->getMode() == READ)
|
if (this->getMode() == READ)
|
||||||
{
|
{
|
||||||
return hawk_rtx_setfilename (
|
return hawk_rtx_setfilename(this->run->rtx, name, hawk_count_oocstr(name));
|
||||||
this->run->rtx, name, hawk_strlen(name));
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return hawk_rtx_setofilename (
|
return hawk_rtx_setofilename(this->run->rtx, name, hawk_count_oocstr(name));
|
||||||
this->run->rtx, name, hawk_strlen(name));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -203,9 +201,9 @@ Hawk::Console::Mode Hawk::Console::getMode () const
|
|||||||
|
|
||||||
Hawk::Value::IndexIterator Hawk::Value::IndexIterator::END;
|
Hawk::Value::IndexIterator Hawk::Value::IndexIterator::END;
|
||||||
|
|
||||||
const Hawk::char_t* Hawk::Value::getEmptyStr()
|
const hawk_ooch_t* Hawk::Value::getEmptyStr()
|
||||||
{
|
{
|
||||||
static const Hawk::char_t* EMPTY_STRING = HAWK_T("");
|
static const hawk_ooch_t* EMPTY_STRING = HAWK_T("");
|
||||||
return EMPTY_STRING;
|
return EMPTY_STRING;
|
||||||
}
|
}
|
||||||
const hawk_bch_t* Hawk::Value::getEmptyMbs()
|
const hawk_bch_t* Hawk::Value::getEmptyMbs()
|
||||||
@ -259,7 +257,7 @@ Hawk::Value::IntIndex::IntIndex (int_t x)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if defined(HAWK_VALUE_USE_IN_CLASS_PLACEMENT_NEW)
|
#if defined(HAWK_VALUE_USE_IN_CLASS_PLACEMENT_NEW)
|
||||||
void* Hawk::Value::operator new (size_t n, Run* run) throw ()
|
void* Hawk::Value::operator new (hawk_oow_t n, Run* run) throw ()
|
||||||
{
|
{
|
||||||
void* ptr = hawk_rtx_allocmem (run->rtx, HAWK_SIZEOF(run) + n);
|
void* ptr = hawk_rtx_allocmem (run->rtx, HAWK_SIZEOF(run) + n);
|
||||||
if (ptr == HAWK_NULL) return HAWK_NULL;
|
if (ptr == HAWK_NULL) return HAWK_NULL;
|
||||||
@ -268,7 +266,7 @@ void* Hawk::Value::operator new (size_t n, Run* run) throw ()
|
|||||||
return (char*)ptr + HAWK_SIZEOF(run);
|
return (char*)ptr + HAWK_SIZEOF(run);
|
||||||
}
|
}
|
||||||
|
|
||||||
void* Hawk::Value::operator new[] (size_t n, Run* run) throw ()
|
void* Hawk::Value::operator new[] (hawk_oow_t n, Run* run) throw ()
|
||||||
{
|
{
|
||||||
void* ptr = hawk_rtx_allocmem (run->rtx, HAWK_SIZEOF(run) + n);
|
void* ptr = hawk_rtx_allocmem (run->rtx, HAWK_SIZEOF(run) + n);
|
||||||
if (ptr == HAWK_NULL) return HAWK_NULL;
|
if (ptr == HAWK_NULL) return HAWK_NULL;
|
||||||
@ -419,10 +417,10 @@ Hawk::Value::operator Hawk::flt_t () const
|
|||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
|
|
||||||
Hawk::Value::operator const Hawk::char_t* () const
|
Hawk::Value::operator const hawk_ooch_t* () const
|
||||||
{
|
{
|
||||||
const Hawk::char_t* ptr;
|
const hawk_ooch_t* ptr;
|
||||||
size_t len;
|
hawk_oow_t len;
|
||||||
if (Hawk::Value::getStr(&ptr, &len) <= -1) ptr = getEmptyStr();
|
if (Hawk::Value::getStr(&ptr, &len) <= -1) ptr = getEmptyStr();
|
||||||
return ptr;
|
return ptr;
|
||||||
}
|
}
|
||||||
@ -431,7 +429,7 @@ Hawk::Value::operator const Hawk::char_t* () const
|
|||||||
Hawk::Value::operator const hawk_bch_t* () const
|
Hawk::Value::operator const hawk_bch_t* () const
|
||||||
{
|
{
|
||||||
const hawk_bch_t* ptr;
|
const hawk_bch_t* ptr;
|
||||||
size_t len;
|
hawk_oow_t len;
|
||||||
if (Hawk::Value::getMbs(&ptr, &len) <= -1) ptr = getEmptyMbs();
|
if (Hawk::Value::getMbs(&ptr, &len) <= -1) ptr = getEmptyMbs();
|
||||||
return ptr;
|
return ptr;
|
||||||
}
|
}
|
||||||
@ -496,10 +494,10 @@ int Hawk::Value::getNum (int_t* lv, flt_t* fv) const
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Hawk::Value::getStr (const char_t** str, size_t* len) const
|
int Hawk::Value::getStr (const hawk_ooch_t** str, hawk_oow_t* len) const
|
||||||
{
|
{
|
||||||
const char_t* p = getEmptyStr();
|
const hawk_ooch_t* p = getEmptyStr();
|
||||||
size_t l = 0;
|
hawk_oow_t l = 0;
|
||||||
|
|
||||||
HAWK_ASSERT (this->val != HAWK_NULL);
|
HAWK_ASSERT (this->val != HAWK_NULL);
|
||||||
|
|
||||||
@ -542,10 +540,10 @@ int Hawk::Value::getStr (const char_t** str, size_t* len) const
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Hawk::Value::getMbs (const hawk_bch_t** str, size_t* len) const
|
int Hawk::Value::getMbs (const hawk_bch_t** str, hawk_oow_t* len) const
|
||||||
{
|
{
|
||||||
const hawk_bch_t* p = getEmptyMbs();
|
const hawk_bch_t* p = getEmptyMbs();
|
||||||
size_t l = 0;
|
hawk_oow_t l = 0;
|
||||||
|
|
||||||
HAWK_ASSERT (this->val != HAWK_NULL);
|
HAWK_ASSERT (this->val != HAWK_NULL);
|
||||||
|
|
||||||
@ -676,7 +674,7 @@ int Hawk::Value::setFlt (Run* r, flt_t v)
|
|||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Hawk::Value::setStr (const char_t* str, size_t len, bool numeric)
|
int Hawk::Value::setStr (const hawk_ooch_t* str, hawk_oow_t len, bool numeric)
|
||||||
{
|
{
|
||||||
if (this->run == HAWK_NULL)
|
if (this->run == HAWK_NULL)
|
||||||
{
|
{
|
||||||
@ -687,12 +685,12 @@ int Hawk::Value::setStr (const char_t* str, size_t len, bool numeric)
|
|||||||
return this->setStr(this->run, str, len, numeric);
|
return this->setStr(this->run, str, len, numeric);
|
||||||
}
|
}
|
||||||
|
|
||||||
int Hawk::Value::setStr (Run* r, const char_t* str, size_t len, bool numeric)
|
int Hawk::Value::setStr (Run* r, const hawk_ooch_t* str, hawk_oow_t len, bool numeric)
|
||||||
{
|
{
|
||||||
val_t* tmp;
|
val_t* tmp;
|
||||||
|
|
||||||
oocs_t oocs;
|
hawk_oocs_t oocs;
|
||||||
oocs.ptr = (char_t*)str;
|
oocs.ptr = (hawk_ooch_t*)str;
|
||||||
oocs.len = len;
|
oocs.len = len;
|
||||||
|
|
||||||
tmp = numeric? hawk_rtx_makenstrvalwithoocs(r->rtx, &oocs):
|
tmp = numeric? hawk_rtx_makenstrvalwithoocs(r->rtx, &oocs):
|
||||||
@ -708,13 +706,13 @@ int Hawk::Value::setStr (Run* r, const char_t* str, size_t len, bool numeric)
|
|||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Hawk::Value::setStr (const char_t* str, bool numeric)
|
int Hawk::Value::setStr (const hawk_ooch_t* str, bool numeric)
|
||||||
{
|
{
|
||||||
if (this->run == HAWK_NULL) return -1;
|
if (this->run == HAWK_NULL) return -1;
|
||||||
return this->setStr(this->run, str, numeric);
|
return this->setStr(this->run, str, numeric);
|
||||||
}
|
}
|
||||||
|
|
||||||
int Hawk::Value::setStr (Run* r, const char_t* str, bool numeric)
|
int Hawk::Value::setStr (Run* r, const hawk_ooch_t* str, bool numeric)
|
||||||
{
|
{
|
||||||
val_t* tmp;
|
val_t* tmp;
|
||||||
tmp = numeric? hawk_rtx_makenstrvalwithoocstr(r->rtx, str):
|
tmp = numeric? hawk_rtx_makenstrvalwithoocstr(r->rtx, str):
|
||||||
@ -731,7 +729,7 @@ int Hawk::Value::setStr (Run* r, const char_t* str, bool numeric)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int Hawk::Value::setMbs (const hawk_bch_t* str, size_t len)
|
int Hawk::Value::setMbs (const hawk_bch_t* str, hawk_oow_t len)
|
||||||
{
|
{
|
||||||
if (this->run == HAWK_NULL)
|
if (this->run == HAWK_NULL)
|
||||||
{
|
{
|
||||||
@ -742,7 +740,7 @@ int Hawk::Value::setMbs (const hawk_bch_t* str, size_t len)
|
|||||||
return this->setMbs(this->run, str, len);
|
return this->setMbs(this->run, str, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
int Hawk::Value::setMbs (Run* r, const hawk_bch_t* str, size_t len)
|
int Hawk::Value::setMbs (Run* r, const hawk_bch_t* str, hawk_oow_t len)
|
||||||
{
|
{
|
||||||
val_t* tmp;
|
val_t* tmp;
|
||||||
|
|
||||||
@ -771,7 +769,7 @@ int Hawk::Value::setMbs (const hawk_bch_t* str)
|
|||||||
int Hawk::Value::setMbs (Run* r, const hawk_bch_t* str)
|
int Hawk::Value::setMbs (Run* r, const hawk_bch_t* str)
|
||||||
{
|
{
|
||||||
val_t* tmp;
|
val_t* tmp;
|
||||||
tmp = hawk_rtx_makembsval(r->rtx, str, hawk_mbslen(str));
|
tmp = hawk_rtx_makembsval(r->rtx, str, hawk_count_bcstr(str));
|
||||||
if (!tmp)
|
if (!tmp)
|
||||||
{
|
{
|
||||||
r->awk->retrieveError (r);
|
r->awk->retrieveError (r);
|
||||||
@ -894,19 +892,19 @@ int Hawk::Value::setIndexedFlt (Run* r, const Index& idx, flt_t v)
|
|||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Hawk::Value::setIndexedStr (const Index& idx, const char_t* str, size_t len, bool numeric)
|
int Hawk::Value::setIndexedStr (const Index& idx, const hawk_ooch_t* str, hawk_oow_t len, bool numeric)
|
||||||
{
|
{
|
||||||
if (run == HAWK_NULL) return -1;
|
if (run == HAWK_NULL) return -1;
|
||||||
return this->setIndexedStr(run, idx, str, len, numeric);
|
return this->setIndexedStr(run, idx, str, len, numeric);
|
||||||
}
|
}
|
||||||
|
|
||||||
int Hawk::Value::setIndexedStr (
|
int Hawk::Value::setIndexedStr (
|
||||||
Run* r, const Index& idx, const char_t* str, size_t len, bool numeric)
|
Run* r, const Index& idx, const hawk_ooch_t* str, hawk_oow_t len, bool numeric)
|
||||||
{
|
{
|
||||||
val_t* tmp;
|
val_t* tmp;
|
||||||
|
|
||||||
oocs_t oocs;
|
hawk_oocs_t oocs;
|
||||||
oocs.ptr = (char_t*)str;
|
oocs.ptr = (hawk_ooch_t*)str;
|
||||||
oocs.len = len;
|
oocs.len = len;
|
||||||
|
|
||||||
tmp = numeric? hawk_rtx_makenstrvalwithoocs(r->rtx, &oocs):
|
tmp = numeric? hawk_rtx_makenstrvalwithoocs(r->rtx, &oocs):
|
||||||
@ -924,13 +922,13 @@ int Hawk::Value::setIndexedStr (
|
|||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Hawk::Value::setIndexedStr (const Index& idx, const char_t* str, bool numeric)
|
int Hawk::Value::setIndexedStr (const Index& idx, const hawk_ooch_t* str, bool numeric)
|
||||||
{
|
{
|
||||||
if (run == HAWK_NULL) return -1;
|
if (run == HAWK_NULL) return -1;
|
||||||
return this->setIndexedStr(run, idx, str, numeric);
|
return this->setIndexedStr(run, idx, str, numeric);
|
||||||
}
|
}
|
||||||
|
|
||||||
int Hawk::Value::setIndexedStr (Run* r, const Index& idx, const char_t* str, bool numeric)
|
int Hawk::Value::setIndexedStr (Run* r, const Index& idx, const hawk_ooch_t* str, bool numeric)
|
||||||
{
|
{
|
||||||
val_t* tmp;
|
val_t* tmp;
|
||||||
tmp = numeric? hawk_rtx_makenstrvalwithoocstr(r->rtx, str):
|
tmp = numeric? hawk_rtx_makenstrvalwithoocstr(r->rtx, str):
|
||||||
@ -948,13 +946,13 @@ int Hawk::Value::setIndexedStr (Run* r, const Index& idx, const char_t* str, boo
|
|||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Hawk::Value::setIndexedMbs (const Index& idx, const hawk_bch_t* str, size_t len)
|
int Hawk::Value::setIndexedMbs (const Index& idx, const hawk_bch_t* str, hawk_oow_t len)
|
||||||
{
|
{
|
||||||
if (run == HAWK_NULL) return -1;
|
if (run == HAWK_NULL) return -1;
|
||||||
return this->setIndexedMbs(run, idx, str, len);
|
return this->setIndexedMbs(run, idx, str, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
int Hawk::Value::setIndexedMbs (Run* r, const Index& idx, const hawk_bch_t* str, size_t len)
|
int Hawk::Value::setIndexedMbs (Run* r, const Index& idx, const hawk_bch_t* str, hawk_oow_t len)
|
||||||
{
|
{
|
||||||
val_t* tmp;
|
val_t* tmp;
|
||||||
|
|
||||||
@ -985,7 +983,7 @@ int Hawk::Value::setIndexedMbs (const Index& idx, const hawk_bch_t* str)
|
|||||||
int Hawk::Value::setIndexedMbs (Run* r, const Index& idx, const hawk_bch_t* str)
|
int Hawk::Value::setIndexedMbs (Run* r, const Index& idx, const hawk_bch_t* str)
|
||||||
{
|
{
|
||||||
val_t* tmp;
|
val_t* tmp;
|
||||||
tmp = hawk_rtx_makembsval(r->rtx, str, hawk_mbslen(str));
|
tmp = hawk_rtx_makembsval(r->rtx, str, hawk_count_bcstr(str));
|
||||||
if (tmp == HAWK_NULL)
|
if (tmp == HAWK_NULL)
|
||||||
{
|
{
|
||||||
r->awk->retrieveError (r);
|
r->awk->retrieveError (r);
|
||||||
@ -1018,7 +1016,7 @@ int Hawk::Value::getIndexed (const Index& idx, Value* v) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
// get the value from the map.
|
// get the value from the map.
|
||||||
val_t* fv = hawk_rtx_getmapvalfld(this->run->rtx, val, (char_t*)idx.ptr, idx.len);
|
val_t* fv = hawk_rtx_getmapvalfld(this->run->rtx, val, (hawk_ooch_t*)idx.ptr, idx.len);
|
||||||
|
|
||||||
// the key is not found. it is not an error. v is just nil
|
// the key is not found. it is not an error. v is just nil
|
||||||
if (fv == HAWK_NULL)
|
if (fv == HAWK_NULL)
|
||||||
@ -1121,20 +1119,20 @@ Hawk::loc_t Hawk::Run::getErrorLocation () const
|
|||||||
return *hawk_rtx_geterrloc (this->rtx);
|
return *hawk_rtx_geterrloc (this->rtx);
|
||||||
}
|
}
|
||||||
|
|
||||||
const Hawk::char_t* Hawk::Run::getErrorMessage () const
|
const hawk_ooch_t* Hawk::Run::getErrorMessage () const
|
||||||
{
|
{
|
||||||
HAWK_ASSERT (this->rtx != HAWK_NULL);
|
HAWK_ASSERT (this->rtx != HAWK_NULL);
|
||||||
return hawk_rtx_geterrmsg (this->rtx);
|
return hawk_rtx_geterrmsg (this->rtx);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Hawk::Run::setError (errnum_t code, const oocs_t* args, const loc_t* loc)
|
void Hawk::Run::setError (errnum_t code, const hawk_oocs_t* args, const loc_t* loc)
|
||||||
{
|
{
|
||||||
HAWK_ASSERT (this->rtx != HAWK_NULL);
|
HAWK_ASSERT (this->rtx != HAWK_NULL);
|
||||||
hawk_rtx_seterror (this->rtx, code, args, loc);
|
hawk_rtx_seterror (this->rtx, code, args, loc);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Hawk::Run::setErrorWithMessage (
|
void Hawk::Run::setErrorWithMessage (
|
||||||
errnum_t code, const char_t* msg, const loc_t* loc)
|
errnum_t code, const hawk_ooch_t* msg, const loc_t* loc)
|
||||||
{
|
{
|
||||||
HAWK_ASSERT (this->rtx != HAWK_NULL);
|
HAWK_ASSERT (this->rtx != HAWK_NULL);
|
||||||
|
|
||||||
@ -1174,7 +1172,7 @@ int Hawk::Run::setGlobal (int id, flt_t v)
|
|||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Hawk::Run::setGlobal (int id, const char_t* ptr, size_t len)
|
int Hawk::Run::setGlobal (int id, const hawk_ooch_t* ptr, hawk_oow_t len)
|
||||||
{
|
{
|
||||||
HAWK_ASSERT (this->rtx != HAWK_NULL);
|
HAWK_ASSERT (this->rtx != HAWK_NULL);
|
||||||
|
|
||||||
@ -1224,14 +1222,14 @@ Hawk::operator Hawk::awk_t* () const
|
|||||||
return this->awk;
|
return this->awk;
|
||||||
}
|
}
|
||||||
|
|
||||||
const Hawk::char_t* Hawk::getErrorString (errnum_t num) const
|
const hawk_ooch_t* Hawk::getErrorString (errnum_t num) const
|
||||||
{
|
{
|
||||||
HAWK_ASSERT (awk != HAWK_NULL);
|
HAWK_ASSERT (awk != HAWK_NULL);
|
||||||
HAWK_ASSERT (dflerrstr != HAWK_NULL);
|
HAWK_ASSERT (dflerrstr != HAWK_NULL);
|
||||||
return dflerrstr (awk, num);
|
return dflerrstr (awk, num);
|
||||||
}
|
}
|
||||||
|
|
||||||
const Hawk::char_t* Hawk::xerrstr (awk_t* a, errnum_t num)
|
const hawk_ooch_t* Hawk::xerrstr (awk_t* a, errnum_t num)
|
||||||
{
|
{
|
||||||
Hawk* awk = *(Hawk**)GET_XTN(a);
|
Hawk* awk = *(Hawk**)GET_XTN(a);
|
||||||
return awk->getErrorString (num);
|
return awk->getErrorString (num);
|
||||||
@ -1248,12 +1246,12 @@ Hawk::loc_t Hawk::getErrorLocation () const
|
|||||||
return this->errinf.loc;
|
return this->errinf.loc;
|
||||||
}
|
}
|
||||||
|
|
||||||
const Hawk::char_t* Hawk::getErrorMessage () const
|
const hawk_ooch_t* Hawk::getErrorMessage () const
|
||||||
{
|
{
|
||||||
return this->errinf.msg;
|
return this->errinf.msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Hawk::setError (errnum_t code, const oocs_t* args, const loc_t* loc)
|
void Hawk::setError (errnum_t code, const hawk_oocs_t* args, const loc_t* loc)
|
||||||
{
|
{
|
||||||
if (awk != HAWK_NULL)
|
if (awk != HAWK_NULL)
|
||||||
{
|
{
|
||||||
@ -1270,7 +1268,7 @@ void Hawk::setError (errnum_t code, const oocs_t* args, const loc_t* loc)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Hawk::setErrorWithMessage (errnum_t code, const char_t* msg, const loc_t* loc)
|
void Hawk::setErrorWithMessage (errnum_t code, const hawk_ooch_t* msg, const loc_t* loc)
|
||||||
{
|
{
|
||||||
HAWK_MEMSET (&errinf, 0, HAWK_SIZEOF(errinf));
|
HAWK_MEMSET (&errinf, 0, HAWK_SIZEOF(errinf));
|
||||||
|
|
||||||
@ -1332,7 +1330,7 @@ int Hawk::open ()
|
|||||||
prm.math.mod = mod;
|
prm.math.mod = mod;
|
||||||
prm.modopen = modopen;
|
prm.modopen = modopen;
|
||||||
prm.modclose = modclose;
|
prm.modclose = modclose;
|
||||||
prm.modsym = modsym;
|
prm.modgetsym = modgetsym;
|
||||||
|
|
||||||
hawk_errnum_t errnum;
|
hawk_errnum_t errnum;
|
||||||
this->awk = hawk_open(this->getMmgr(), HAWK_SIZEOF(xtn_t), &prm, &errnum);
|
this->awk = hawk_open(this->getMmgr(), HAWK_SIZEOF(xtn_t), &prm, &errnum);
|
||||||
@ -1492,7 +1490,7 @@ int Hawk::loop (Value* ret)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Hawk::call (const hawk_bch_t* name, Value* ret, const Value* args, size_t nargs)
|
int Hawk::call (const hawk_bch_t* name, Value* ret, const Value* args, hawk_oow_t nargs)
|
||||||
{
|
{
|
||||||
HAWK_ASSERT (this->awk != HAWK_NULL);
|
HAWK_ASSERT (this->awk != HAWK_NULL);
|
||||||
HAWK_ASSERT (this->runctx.rtx != HAWK_NULL);
|
HAWK_ASSERT (this->runctx.rtx != HAWK_NULL);
|
||||||
@ -1514,7 +1512,7 @@ int Hawk::call (const hawk_bch_t* name, Value* ret, const Value* args, size_t na
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (size_t i = 0; i < nargs; i++) ptr[i] = (val_t*)args[i];
|
for (hawk_oow_t i = 0; i < nargs; i++) ptr[i] = (val_t*)args[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
val_t* rv = hawk_rtx_callwithbcstr(this->runctx.rtx, name, ptr, nargs);
|
val_t* rv = hawk_rtx_callwithbcstr(this->runctx.rtx, name, ptr, nargs);
|
||||||
@ -1533,7 +1531,7 @@ int Hawk::call (const hawk_bch_t* name, Value* ret, const Value* args, size_t na
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Hawk::call (const hawk_uch_t* name, Value* ret, const Value* args, size_t nargs)
|
int Hawk::call (const hawk_uch_t* name, Value* ret, const Value* args, hawk_oow_t nargs)
|
||||||
{
|
{
|
||||||
HAWK_ASSERT (this->awk != HAWK_NULL);
|
HAWK_ASSERT (this->awk != HAWK_NULL);
|
||||||
HAWK_ASSERT (this->runctx.rtx != HAWK_NULL);
|
HAWK_ASSERT (this->runctx.rtx != HAWK_NULL);
|
||||||
@ -1555,7 +1553,7 @@ int Hawk::call (const hawk_uch_t* name, Value* ret, const Value* args, size_t na
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (size_t i = 0; i < nargs; i++) ptr[i] = (val_t*)args[i];
|
for (hawk_oow_t i = 0; i < nargs; i++) ptr[i] = (val_t*)args[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
val_t* rv = hawk_rtx_callwithucstr(this->runctx.rtx, name, ptr, nargs);
|
val_t* rv = hawk_rtx_callwithucstr(this->runctx.rtx, name, ptr, nargs);
|
||||||
@ -1584,7 +1582,7 @@ int Hawk::init_runctx ()
|
|||||||
{
|
{
|
||||||
if (this->runctx.rtx) return 0;
|
if (this->runctx.rtx) return 0;
|
||||||
|
|
||||||
hawk_rio_t rio;
|
hawk_rio_cbs_t rio;
|
||||||
|
|
||||||
rio.pipe = pipeHandler;
|
rio.pipe = pipeHandler;
|
||||||
rio.file = fileHandler;
|
rio.file = fileHandler;
|
||||||
@ -1629,16 +1627,16 @@ void Hawk::setTrait (int trait)
|
|||||||
hawk_setopt (awk, HAWK_TRAIT, &trait);
|
hawk_setopt (awk, HAWK_TRAIT, &trait);
|
||||||
}
|
}
|
||||||
|
|
||||||
Hawk::size_t Hawk::getMaxDepth (depth_t id) const
|
hawk_oow_t Hawk::getMaxDepth (depth_t id) const
|
||||||
{
|
{
|
||||||
HAWK_ASSERT (awk != HAWK_NULL);
|
HAWK_ASSERT (awk != HAWK_NULL);
|
||||||
|
|
||||||
size_t depth;
|
hawk_oow_t depth;
|
||||||
hawk_getopt (awk, (hawk_opt_t)id, &depth);
|
hawk_getopt (awk, (hawk_opt_t)id, &depth);
|
||||||
return depth;
|
return depth;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Hawk::setMaxDepth (depth_t id, size_t depth)
|
void Hawk::setMaxDepth (depth_t id, hawk_oow_t depth)
|
||||||
{
|
{
|
||||||
HAWK_ASSERT (awk != HAWK_NULL);
|
HAWK_ASSERT (awk != HAWK_NULL);
|
||||||
hawk_setopt (awk, (hawk_opt_t)id, &depth);
|
hawk_setopt (awk, (hawk_opt_t)id, &depth);
|
||||||
@ -1671,7 +1669,7 @@ int Hawk::dispatch_function (Run* run, const fnc_info_t* fi)
|
|||||||
handler = pair->value;
|
handler = pair->value;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
size_t i, nargs = hawk_rtx_getnargs(run->rtx);
|
hawk_oow_t i, nargs = hawk_rtx_getnargs(run->rtx);
|
||||||
|
|
||||||
Value buf[16];
|
Value buf[16];
|
||||||
Value* args;
|
Value* args;
|
||||||
@ -1724,9 +1722,7 @@ int Hawk::dispatch_function (Run* run, const fnc_info_t* fi)
|
|||||||
|
|
||||||
if (idx == 0)
|
if (idx == 0)
|
||||||
{
|
{
|
||||||
xx = args[i].setStr (run,
|
xx = args[i].setStr(run, HAWK_OOECS_PTR(&run->rtx->inrec.line), HAWK_OOECS_LEN(&run->rtx->inrec.line));
|
||||||
HAWK_STR_PTR(&run->rtx->inrec.line),
|
|
||||||
HAWK_STR_LEN(&run->rtx->inrec.line));
|
|
||||||
}
|
}
|
||||||
else if (idx <= run->rtx->inrec.nflds)
|
else if (idx <= run->rtx->inrec.nflds)
|
||||||
{
|
{
|
||||||
@ -1736,7 +1732,7 @@ int Hawk::dispatch_function (Run* run, const fnc_info_t* fi)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
xx = args[i].setStr (run, HAWK_T(""), (size_t)0);
|
xx = args[i].setStr (run, HAWK_T(""), (hawk_oow_t)0);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1779,8 +1775,8 @@ int Hawk::dispatch_function (Run* run, const fnc_info_t* fi)
|
|||||||
{
|
{
|
||||||
for (i = 0; i < nargs; i++)
|
for (i = 0; i < nargs; i++)
|
||||||
{
|
{
|
||||||
HAWK_ASSERTX (args[i].run == run,
|
// Do NOT change the run field from function handler
|
||||||
"Do NOT change the run field from function handler");
|
HAWK_ASSERT (args[i].run == run);
|
||||||
|
|
||||||
val_t* v = hawk_rtx_getarg(run->rtx, i);
|
val_t* v = hawk_rtx_getarg(run->rtx, i);
|
||||||
if (HAWK_RTX_GETVALTYPE(run->rtx, v) == HAWK_VAL_REF)
|
if (HAWK_RTX_GETVALTYPE(run->rtx, v) == HAWK_VAL_REF)
|
||||||
@ -1821,12 +1817,12 @@ int Hawk::dispatch_function (Run* run, const fnc_info_t* fi)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Hawk::xstrs_t::add (awk_t* awk, const char_t* arg, size_t len)
|
int Hawk::xstrs_t::add (awk_t* awk, const hawk_ooch_t* arg, hawk_oow_t len)
|
||||||
{
|
{
|
||||||
if (this->len >= this->capa)
|
if (this->len >= this->capa)
|
||||||
{
|
{
|
||||||
hawk_oocs_t* ptr;
|
hawk_oocs_t* ptr;
|
||||||
size_t capa = this->capa;
|
hawk_oow_t capa = this->capa;
|
||||||
|
|
||||||
capa += 64;
|
capa += 64;
|
||||||
ptr = (hawk_oocs_t*)hawk_reallocmem(awk, this->ptr, HAWK_SIZEOF(hawk_oocs_t)*(capa+1));
|
ptr = (hawk_oocs_t*)hawk_reallocmem(awk, this->ptr, HAWK_SIZEOF(hawk_oocs_t)*(capa+1));
|
||||||
@ -1837,7 +1833,7 @@ int Hawk::xstrs_t::add (awk_t* awk, const char_t* arg, size_t len)
|
|||||||
}
|
}
|
||||||
|
|
||||||
this->ptr[this->len].len = len;
|
this->ptr[this->len].len = len;
|
||||||
this->ptr[this->len].ptr = hawk_strxdup(awk, arg, len);
|
this->ptr[this->len].ptr = hawk_dupoochars(awk, arg, len);
|
||||||
if (this->ptr[this->len].ptr == HAWK_NULL) return -1;
|
if (this->ptr[this->len].ptr == HAWK_NULL) return -1;
|
||||||
|
|
||||||
this->len++;
|
this->len++;
|
||||||
@ -1860,7 +1856,7 @@ void Hawk::xstrs_t::clear (awk_t* awk)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int Hawk::addArgument (const char_t* arg, size_t len)
|
int Hawk::addArgument (const hawk_ooch_t* arg, hawk_oow_t len)
|
||||||
{
|
{
|
||||||
HAWK_ASSERT (awk != HAWK_NULL);
|
HAWK_ASSERT (awk != HAWK_NULL);
|
||||||
int n = runarg.add(awk, arg, len);
|
int n = runarg.add(awk, arg, len);
|
||||||
@ -1868,9 +1864,9 @@ int Hawk::addArgument (const char_t* arg, size_t len)
|
|||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Hawk::addArgument (const char_t* arg)
|
int Hawk::addArgument (const hawk_ooch_t* arg)
|
||||||
{
|
{
|
||||||
return addArgument(arg, hawk_strlen(arg));
|
return addArgument(arg, hawk_count_oocstr(arg));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Hawk::clearArguments ()
|
void Hawk::clearArguments ()
|
||||||
@ -1954,7 +1950,7 @@ int Hawk::getGlobal (int id, Value& v)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int Hawk::addFunction (
|
int Hawk::addFunction (
|
||||||
const hawk_bch_t* name, size_t minArgs, size_t maxArgs,
|
const hawk_bch_t* name, hawk_oow_t minArgs, hawk_oow_t maxArgs,
|
||||||
const hawk_bch_t* argSpec, FunctionHandler handler, int validOpts)
|
const hawk_bch_t* argSpec, FunctionHandler handler, int validOpts)
|
||||||
{
|
{
|
||||||
HAWK_ASSERT (awk != HAWK_NULL);
|
HAWK_ASSERT (awk != HAWK_NULL);
|
||||||
@ -1982,7 +1978,7 @@ int Hawk::addFunction (
|
|||||||
//
|
//
|
||||||
// the function name exists in the underlying function table.
|
// the function name exists in the underlying function table.
|
||||||
// use the pointer to the name to maintain the hash table.
|
// use the pointer to the name to maintain the hash table.
|
||||||
hawk_htb_pair_t* pair = hawk_htb_upsert(this->functionMap, (char_t*)fnc->name.ptr, fnc->name.len, &handler, HAWK_SIZEOF(handler));
|
hawk_htb_pair_t* pair = hawk_htb_upsert(this->functionMap, (hawk_ooch_t*)fnc->name.ptr, fnc->name.len, &handler, HAWK_SIZEOF(handler));
|
||||||
#else
|
#else
|
||||||
FunctionMap::Pair* pair;
|
FunctionMap::Pair* pair;
|
||||||
try { pair = this->functionMap.upsert(Cstr(fnc->name.ptr, fnc->name.len), handler); }
|
try { pair = this->functionMap.upsert(Cstr(fnc->name.ptr, fnc->name.len), handler); }
|
||||||
@ -2000,7 +1996,7 @@ int Hawk::addFunction (
|
|||||||
}
|
}
|
||||||
|
|
||||||
int Hawk::addFunction (
|
int Hawk::addFunction (
|
||||||
const hawk_uch_t* name, size_t minArgs, size_t maxArgs,
|
const hawk_uch_t* name, hawk_oow_t minArgs, hawk_oow_t maxArgs,
|
||||||
const hawk_uch_t* argSpec, FunctionHandler handler, int validOpts)
|
const hawk_uch_t* argSpec, FunctionHandler handler, int validOpts)
|
||||||
{
|
{
|
||||||
HAWK_ASSERT (awk != HAWK_NULL);
|
HAWK_ASSERT (awk != HAWK_NULL);
|
||||||
@ -2028,7 +2024,7 @@ int Hawk::addFunction (
|
|||||||
//
|
//
|
||||||
// the function name exists in the underlying function table.
|
// the function name exists in the underlying function table.
|
||||||
// use the pointer to the name to maintain the hash table.
|
// use the pointer to the name to maintain the hash table.
|
||||||
hawk_htb_pair_t* pair = hawk_htb_upsert(this->functionMap, (char_t*)fnc->name.ptr, fnc->name.len, &handler, HAWK_SIZEOF(handler));
|
hawk_htb_pair_t* pair = hawk_htb_upsert(this->functionMap, (hawk_ooch_t*)fnc->name.ptr, fnc->name.len, &handler, HAWK_SIZEOF(handler));
|
||||||
#else
|
#else
|
||||||
FunctionMap::Pair* pair;
|
FunctionMap::Pair* pair;
|
||||||
try { pair = this->functionMap.upsert(Cstr(fnc->name.ptr, fnc->name.len), handler); }
|
try { pair = this->functionMap.upsert(Cstr(fnc->name.ptr, fnc->name.len), handler); }
|
||||||
@ -2045,7 +2041,7 @@ int Hawk::addFunction (
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Hawk::deleteFunction (const char_t* name)
|
int Hawk::deleteFunction (const hawk_ooch_t* name)
|
||||||
{
|
{
|
||||||
HAWK_ASSERT (awk != HAWK_NULL);
|
HAWK_ASSERT (awk != HAWK_NULL);
|
||||||
|
|
||||||
@ -2053,7 +2049,7 @@ int Hawk::deleteFunction (const char_t* name)
|
|||||||
if (n == 0)
|
if (n == 0)
|
||||||
{
|
{
|
||||||
#if defined(HAWK_USE_HTB_FOR_FUNCTION_MAP)
|
#if defined(HAWK_USE_HTB_FOR_FUNCTION_MAP)
|
||||||
hawk_htb_delete (this->functionMap, name, hawk_strlen(name));
|
hawk_htb_delete (this->functionMap, name, hawk_count_oocstr(name));
|
||||||
#else
|
#else
|
||||||
this->functionMap.remove (Cstr(name));
|
this->functionMap.remove (Cstr(name));
|
||||||
#endif
|
#endif
|
||||||
@ -2063,9 +2059,9 @@ int Hawk::deleteFunction (const char_t* name)
|
|||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
Hawk::ssize_t Hawk::readSource (
|
hawk_ooi_t Hawk::readSource (
|
||||||
awk_t* awk, sio_cmd_t cmd, sio_arg_t* arg,
|
awk_t* awk, sio_cmd_t cmd, sio_arg_t* arg,
|
||||||
char_t* data, size_t count)
|
hawk_ooch_t* data, hawk_oow_t count)
|
||||||
{
|
{
|
||||||
xtn_t* xtn = GET_XTN(awk);
|
xtn_t* xtn = GET_XTN(awk);
|
||||||
Source::Data sdat (xtn->awk, Source::READ, arg);
|
Source::Data sdat (xtn->awk, Source::READ, arg);
|
||||||
@ -2083,9 +2079,9 @@ Hawk::ssize_t Hawk::readSource (
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Hawk::ssize_t Hawk::writeSource (
|
hawk_ooi_t Hawk::writeSource (
|
||||||
awk_t* awk, hawk_sio_cmd_t cmd, sio_arg_t* arg,
|
awk_t* awk, hawk_sio_cmd_t cmd, sio_arg_t* arg,
|
||||||
char_t* data, size_t count)
|
hawk_ooch_t* data, hawk_oow_t count)
|
||||||
{
|
{
|
||||||
xtn_t* xtn = GET_XTN(awk);
|
xtn_t* xtn = GET_XTN(awk);
|
||||||
Source::Data sdat (xtn->awk, Source::WRITE, arg);
|
Source::Data sdat (xtn->awk, Source::WRITE, arg);
|
||||||
@ -2103,7 +2099,7 @@ Hawk::ssize_t Hawk::writeSource (
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Hawk::ssize_t Hawk::pipeHandler (rtx_t* rtx, rio_cmd_t cmd, rio_arg_t* riod, void* data, size_t count)
|
hawk_ooi_t Hawk::pipeHandler (rtx_t* rtx, rio_cmd_t cmd, rio_arg_t* riod, void* data, hawk_oow_t count)
|
||||||
{
|
{
|
||||||
rxtn_t* rxtn = GET_RXTN(rtx);
|
rxtn_t* rxtn = GET_RXTN(rtx);
|
||||||
Hawk* awk = rxtn->run->awk;
|
Hawk* awk = rxtn->run->awk;
|
||||||
@ -2167,7 +2163,7 @@ Hawk::ssize_t Hawk::pipeHandler (rtx_t* rtx, rio_cmd_t cmd, rio_arg_t* riod, voi
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Hawk::ssize_t Hawk::fileHandler (rtx_t* rtx, rio_cmd_t cmd, rio_arg_t* riod, void* data, size_t count)
|
hawk_ooi_t Hawk::fileHandler (rtx_t* rtx, rio_cmd_t cmd, rio_arg_t* riod, void* data, hawk_oow_t count)
|
||||||
{
|
{
|
||||||
rxtn_t* rxtn = GET_RXTN(rtx);
|
rxtn_t* rxtn = GET_RXTN(rtx);
|
||||||
Hawk* awk = rxtn->run->awk;
|
Hawk* awk = rxtn->run->awk;
|
||||||
@ -2231,7 +2227,7 @@ Hawk::ssize_t Hawk::fileHandler (rtx_t* rtx, rio_cmd_t cmd, rio_arg_t* riod, voi
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Hawk::ssize_t Hawk::consoleHandler (rtx_t* rtx, rio_cmd_t cmd, rio_arg_t* riod, void* data, size_t count)
|
hawk_ooi_t Hawk::consoleHandler (rtx_t* rtx, rio_cmd_t cmd, rio_arg_t* riod, void* data, hawk_oow_t count)
|
||||||
{
|
{
|
||||||
rxtn_t* rxtn = GET_RXTN(rtx);
|
rxtn_t* rxtn = GET_RXTN(rtx);
|
||||||
Hawk* awk = rxtn->run->awk;
|
Hawk* awk = rxtn->run->awk;
|
||||||
@ -2311,19 +2307,19 @@ int Hawk::closePipe (Pipe& io)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
Hawk::ssize_t Hawk::readPipe (Pipe& io, char_t* buf, size_t len)
|
hawk_ooi_t Hawk::readPipe (Pipe& io, hawk_ooch_t* buf, hawk_oow_t len)
|
||||||
{
|
{
|
||||||
((Run*)io)->setError (HAWK_ENOIMPL);
|
((Run*)io)->setError (HAWK_ENOIMPL);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
Hawk::ssize_t Hawk::writePipe (Pipe& io, const char_t* buf, size_t len)
|
hawk_ooi_t Hawk::writePipe (Pipe& io, const hawk_ooch_t* buf, hawk_oow_t len)
|
||||||
{
|
{
|
||||||
((Run*)io)->setError (HAWK_ENOIMPL);
|
((Run*)io)->setError (HAWK_ENOIMPL);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
Hawk::ssize_t Hawk::writePipeBytes (Pipe& io, const hawk_bch_t* buf, size_t len)
|
hawk_ooi_t Hawk::writePipeBytes (Pipe& io, const hawk_bch_t* buf, hawk_oow_t len)
|
||||||
{
|
{
|
||||||
((Run*)io)->setError (HAWK_ENOIMPL);
|
((Run*)io)->setError (HAWK_ENOIMPL);
|
||||||
return -1;
|
return -1;
|
||||||
@ -2347,19 +2343,19 @@ int Hawk::closeFile (File& io)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
Hawk::ssize_t Hawk::readFile (File& io, char_t* buf, size_t len)
|
hawk_ooi_t Hawk::readFile (File& io, hawk_ooch_t* buf, hawk_oow_t len)
|
||||||
{
|
{
|
||||||
((Run*)io)->setError (HAWK_ENOIMPL);
|
((Run*)io)->setError (HAWK_ENOIMPL);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
Hawk::ssize_t Hawk::writeFile (File& io, const char_t* buf, size_t len)
|
hawk_ooi_t Hawk::writeFile (File& io, const hawk_ooch_t* buf, hawk_oow_t len)
|
||||||
{
|
{
|
||||||
((Run*)io)->setError (HAWK_ENOIMPL);
|
((Run*)io)->setError (HAWK_ENOIMPL);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
Hawk::ssize_t Hawk::writeFileBytes (File& io, const hawk_bch_t* buf, size_t len)
|
hawk_ooi_t Hawk::writeFileBytes (File& io, const hawk_bch_t* buf, hawk_oow_t len)
|
||||||
{
|
{
|
||||||
((Run*)io)->setError (HAWK_ENOIMPL);
|
((Run*)io)->setError (HAWK_ENOIMPL);
|
||||||
return -1;
|
return -1;
|
||||||
@ -2383,19 +2379,19 @@ int Hawk::closeConsole (Console& io)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
Hawk::ssize_t Hawk::readConsole (Console& io, char_t* buf, size_t len)
|
hawk_ooi_t Hawk::readConsole (Console& io, hawk_ooch_t* buf, hawk_oow_t len)
|
||||||
{
|
{
|
||||||
((Run*)io)->setError (HAWK_ENOIMPL);
|
((Run*)io)->setError (HAWK_ENOIMPL);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
Hawk::ssize_t Hawk::writeConsole (Console& io, const char_t* buf, size_t len)
|
hawk_ooi_t Hawk::writeConsole (Console& io, const hawk_ooch_t* buf, hawk_oow_t len)
|
||||||
{
|
{
|
||||||
((Run*)io)->setError (HAWK_ENOIMPL);
|
((Run*)io)->setError (HAWK_ENOIMPL);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
Hawk::ssize_t Hawk::writeConsoleBytes (Console& io, const hawk_bch_t* buf, size_t len)
|
hawk_ooi_t Hawk::writeConsoleBytes (Console& io, const hawk_bch_t* buf, hawk_oow_t len)
|
||||||
{
|
{
|
||||||
((Run*)io)->setError (HAWK_ENOIMPL);
|
((Run*)io)->setError (HAWK_ENOIMPL);
|
||||||
return -1;
|
return -1;
|
||||||
@ -2443,10 +2439,10 @@ void Hawk::modclose (awk_t* awk, void* handle)
|
|||||||
xtn->awk->modclose (handle);
|
xtn->awk->modclose (handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
void* Hawk::modsym (awk_t* awk, void* handle, const char_t* name)
|
void* Hawk::modgetsym (awk_t* awk, void* handle, const hawk_ooch_t* name)
|
||||||
{
|
{
|
||||||
xtn_t* xtn = GET_XTN(awk);
|
xtn_t* xtn = GET_XTN(awk);
|
||||||
return xtn->awk->modsym (handle, name);
|
return xtn->awk->modgetsym (handle, name);
|
||||||
}
|
}
|
||||||
/////////////////////////////////
|
/////////////////////////////////
|
||||||
HAWK_END_NAMESPACE(HAWK)
|
HAWK_END_NAMESPACE(HAWK)
|
||||||
|
@ -30,10 +30,14 @@
|
|||||||
#include <hawk.h>
|
#include <hawk.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
|
||||||
//#define HAWK_AWK_USE_HTB_FOR_FUNCTION_MAP 1
|
#define HAWK_USE_HTB_FOR_FUNCTION_MAP 1
|
||||||
//#define HAWK_AWK_VALUE_USE_IN_CLASS_PLACEMENT_NEW 1
|
//#define HAWK_VALUE_USE_IN_CLASS_PLACEMENT_NEW 1
|
||||||
|
|
||||||
#if defined(HAWK_AWK_USE_HTB_FOR_FUNCTION_MAP)
|
// TOOD: redefine these NAMESPACE stuffs or move them somewhere else
|
||||||
|
#define HAWK_BEGIN_NAMESPACE(x) namespace x {
|
||||||
|
#define HAWK_END_NAMESPACE(x) }
|
||||||
|
|
||||||
|
#if defined(HAWK_USE_HTB_FOR_FUNCTION_MAP)
|
||||||
# include <hawk-htb.h>
|
# include <hawk-htb.h>
|
||||||
#else
|
#else
|
||||||
# include <hawk/HashTable.hpp>
|
# include <hawk/HashTable.hpp>
|
||||||
@ -71,13 +75,13 @@ public:
|
|||||||
|
|
||||||
enum depth_t
|
enum depth_t
|
||||||
{
|
{
|
||||||
DEPTH_INCLUDE = HAWK_AWK_DEPTH_INCLUDE,
|
DEPTH_INCLUDE = HAWK_DEPTH_INCLUDE,
|
||||||
DEPTH_BLOCK_PARSE = HAWK_AWK_DEPTH_BLOCK_PARSE,
|
DEPTH_BLOCK_PARSE = HAWK_DEPTH_BLOCK_PARSE,
|
||||||
DEPTH_BLOCK_RUN = HAWK_AWK_DEPTH_BLOCK_RUN,
|
DEPTH_BLOCK_RUN = HAWK_DEPTH_BLOCK_RUN,
|
||||||
DEPTH_EXPR_PARSE = HAWK_AWK_DEPTH_EXPR_PARSE,
|
DEPTH_EXPR_PARSE = HAWK_DEPTH_EXPR_PARSE,
|
||||||
DEPTH_EXPR_RUN = HAWK_AWK_DEPTH_EXPR_RUN,
|
DEPTH_EXPR_RUN = HAWK_DEPTH_EXPR_RUN,
|
||||||
DEPTH_REX_BUILD = HAWK_AWK_DEPTH_REX_BUILD,
|
DEPTH_REX_BUILD = HAWK_DEPTH_REX_BUILD,
|
||||||
DEPTH_REX_MATCH = HAWK_AWK_DEPTH_REX_MATCH
|
DEPTH_REX_MATCH = HAWK_DEPTH_REX_MATCH
|
||||||
};
|
};
|
||||||
|
|
||||||
/// The gbl_id_t type redefines #hawk_gbl_id_t.
|
/// The gbl_id_t type redefines #hawk_gbl_id_t.
|
||||||
@ -120,16 +124,16 @@ protected:
|
|||||||
/// to customize an error message. You must include the same numbers
|
/// to customize an error message. You must include the same numbers
|
||||||
/// of ${X}'s as the orginal formatting string. Their order may be
|
/// of ${X}'s as the orginal formatting string. Their order may be
|
||||||
/// different. The example below changes the formatting string for
|
/// different. The example below changes the formatting string for
|
||||||
/// #HAWK_AWK_ENOENT.
|
/// #HAWK_ENOENT.
|
||||||
/// \code
|
/// \code
|
||||||
/// const MyHawk::char_t* MyHawk::getErrorString (errnum_t num) const
|
/// const hawk_ooch_t* MyHawk::getErrorString (hawk_errnum_t num) const
|
||||||
/// {
|
/// {
|
||||||
/// if (num == HAWK_AWK_ENOENT) return HAWK_T("cannot find '${0}'");
|
/// if (num == HAWK_ENOENT) return HAWK_T("cannot find '${0}'");
|
||||||
/// return Hawk::getErrorString (num);
|
/// return Hawk::getErrorString (num);
|
||||||
/// }
|
/// }
|
||||||
/// \endcode
|
/// \endcode
|
||||||
///
|
///
|
||||||
virtual const char_t* getErrorString (
|
virtual const hawk_ooch_t* getErrorString (
|
||||||
errnum_t num
|
errnum_t num
|
||||||
) const;
|
) const;
|
||||||
|
|
||||||
@ -150,14 +154,14 @@ public:
|
|||||||
/// The Hawk::getErrorMessage() function returns a message describing
|
/// The Hawk::getErrorMessage() function returns a message describing
|
||||||
/// the last error occurred.
|
/// the last error occurred.
|
||||||
///
|
///
|
||||||
const char_t* getErrorMessage () const;
|
const hawk_ooch_t* getErrorMessage () const;
|
||||||
|
|
||||||
///
|
///
|
||||||
/// The setError() function sets error information.
|
/// The setError() function sets error information.
|
||||||
///
|
///
|
||||||
void setError (
|
void setError (
|
||||||
errnum_t code, ///< error code
|
errnum_t code, ///< error code
|
||||||
const oocs_t* args = HAWK_NULL, ///< message formatting
|
const hawk_oocs_t* args = HAWK_NULL, ///< message formatting
|
||||||
/// argument array
|
/// argument array
|
||||||
const loc_t* loc = HAWK_NULL ///< error location
|
const loc_t* loc = HAWK_NULL ///< error location
|
||||||
);
|
);
|
||||||
@ -168,7 +172,7 @@ public:
|
|||||||
///
|
///
|
||||||
void setErrorWithMessage (
|
void setErrorWithMessage (
|
||||||
errnum_t code, ///< error code
|
errnum_t code, ///< error code
|
||||||
const char_t* msg, ///< error message
|
const hawk_ooch_t* msg, ///< error message
|
||||||
const loc_t* loc ///< error location
|
const loc_t* loc ///< error location
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -229,19 +233,19 @@ public:
|
|||||||
return this->arg->prev == HAWK_NULL;
|
return this->arg->prev == HAWK_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char_t* getName() const
|
const hawk_ooch_t* getName() const
|
||||||
{
|
{
|
||||||
return this->arg->name;
|
return this->arg->name;
|
||||||
}
|
}
|
||||||
|
|
||||||
// since it doesn't copy the contents,
|
// since it doesn't copy the contents,
|
||||||
// it should point to something that outlives this object.
|
// it should point to something that outlives this object.
|
||||||
void setName (const char_t* name)
|
void setName (const hawk_ooch_t* name)
|
||||||
{
|
{
|
||||||
this->arg->name = name;
|
this->arg->name = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char_t* getPrevName() const
|
const hawk_ooch_t* getPrevName() const
|
||||||
{
|
{
|
||||||
return this->arg->prev->name;
|
return this->arg->prev->name;
|
||||||
}
|
}
|
||||||
@ -282,8 +286,8 @@ public:
|
|||||||
|
|
||||||
virtual int open (Data& io) = 0;
|
virtual int open (Data& io) = 0;
|
||||||
virtual int close (Data& io) = 0;
|
virtual int close (Data& io) = 0;
|
||||||
virtual ssize_t read (Data& io, char_t* buf, size_t len) = 0;
|
virtual hawk_ooi_t read (Data& io, hawk_ooch_t* buf, hawk_oow_t len) = 0;
|
||||||
virtual ssize_t write (Data& io, const char_t* buf, size_t len) = 0;
|
virtual hawk_ooi_t write (Data& io, const hawk_ooch_t* buf, hawk_oow_t len) = 0;
|
||||||
|
|
||||||
///
|
///
|
||||||
/// The NONE object indicates no source.
|
/// The NONE object indicates no source.
|
||||||
@ -301,8 +305,8 @@ protected:
|
|||||||
public:
|
public:
|
||||||
int open (Data& io) { return -1; }
|
int open (Data& io) { return -1; }
|
||||||
int close (Data& io) { return 0; }
|
int close (Data& io) { return 0; }
|
||||||
ssize_t read (Data& io, char_t* buf, size_t len) { return 0; }
|
hawk_ooi_t read (Data& io, hawk_ooch_t* buf, hawk_oow_t len) { return 0; }
|
||||||
ssize_t write (Data& io, const char_t* buf, size_t len) { return 0; }
|
hawk_ooi_t write (Data& io, const hawk_ooch_t* buf, hawk_oow_t len) { return 0; }
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -317,7 +321,7 @@ public:
|
|||||||
RIOBase (Run* run, rio_arg_t* riod);
|
RIOBase (Run* run, rio_arg_t* riod);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
const char_t* getName() const;
|
const hawk_ooch_t* getName() const;
|
||||||
|
|
||||||
const void* getHandle () const;
|
const void* getHandle () const;
|
||||||
void setHandle (void* handle);
|
void setHandle (void* handle);
|
||||||
@ -353,11 +357,11 @@ public:
|
|||||||
enum Mode
|
enum Mode
|
||||||
{
|
{
|
||||||
/// open for read-only access
|
/// open for read-only access
|
||||||
READ = HAWK_AWK_RIO_PIPE_READ,
|
READ = HAWK_RIO_PIPE_READ,
|
||||||
/// open for write-only access
|
/// open for write-only access
|
||||||
WRITE = HAWK_AWK_RIO_PIPE_WRITE,
|
WRITE = HAWK_RIO_PIPE_WRITE,
|
||||||
/// open for read and write
|
/// open for read and write
|
||||||
RW = HAWK_AWK_RIO_PIPE_RW
|
RW = HAWK_RIO_PIPE_RW
|
||||||
};
|
};
|
||||||
|
|
||||||
/// The CloseMode type defines the closing mode for a pipe
|
/// The CloseMode type defines the closing mode for a pipe
|
||||||
@ -365,11 +369,11 @@ public:
|
|||||||
enum CloseMode
|
enum CloseMode
|
||||||
{
|
{
|
||||||
/// close both read and write ends
|
/// close both read and write ends
|
||||||
CLOSE_FULL = HAWK_AWK_RIO_CLOSE_FULL,
|
CLOSE_FULL = HAWK_RIO_CMD_CLOSE_FULL,
|
||||||
/// close the read end only
|
/// close the read end only
|
||||||
CLOSE_READ = HAWK_AWK_RIO_CLOSE_READ,
|
CLOSE_READ = HAWK_RIO_CMD_CLOSE_READ,
|
||||||
/// close the write end only
|
/// close the write end only
|
||||||
CLOSE_WRITE = HAWK_AWK_RIO_CLOSE_WRITE
|
CLOSE_WRITE = HAWK_RIO_CMD_CLOSE_WRITE
|
||||||
};
|
};
|
||||||
|
|
||||||
class HAWK_EXPORT Handler
|
class HAWK_EXPORT Handler
|
||||||
@ -379,9 +383,9 @@ public:
|
|||||||
|
|
||||||
virtual int open (Pipe& io) = 0;
|
virtual int open (Pipe& io) = 0;
|
||||||
virtual int close (Pipe& io) = 0;
|
virtual int close (Pipe& io) = 0;
|
||||||
virtual ssize_t read (Pipe& io, char_t* buf, size_t len) = 0;
|
virtual hawk_ooi_t read (Pipe& io, hawk_ooch_t* buf, hawk_oow_t len) = 0;
|
||||||
virtual ssize_t write (Pipe& io, const char_t* buf, size_t len) = 0;
|
virtual hawk_ooi_t write (Pipe& io, const hawk_ooch_t* buf, hawk_oow_t len) = 0;
|
||||||
virtual ssize_t writeBytes (Pipe& io, const hawk_bch_t* buf, size_t len) = 0;
|
virtual hawk_ooi_t writeBytes (Pipe& io, const hawk_bch_t* buf, hawk_oow_t len) = 0;
|
||||||
virtual int flush (Pipe& io) = 0;
|
virtual int flush (Pipe& io) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -412,9 +416,9 @@ public:
|
|||||||
|
|
||||||
enum Mode
|
enum Mode
|
||||||
{
|
{
|
||||||
READ = HAWK_AWK_RIO_FILE_READ,
|
READ = HAWK_RIO_FILE_READ,
|
||||||
WRITE = HAWK_AWK_RIO_FILE_WRITE,
|
WRITE = HAWK_RIO_FILE_WRITE,
|
||||||
APPEND = HAWK_AWK_RIO_FILE_APPEND
|
APPEND = HAWK_RIO_FILE_APPEND
|
||||||
};
|
};
|
||||||
|
|
||||||
class HAWK_EXPORT Handler
|
class HAWK_EXPORT Handler
|
||||||
@ -424,9 +428,9 @@ public:
|
|||||||
|
|
||||||
virtual int open (File& io) = 0;
|
virtual int open (File& io) = 0;
|
||||||
virtual int close (File& io) = 0;
|
virtual int close (File& io) = 0;
|
||||||
virtual ssize_t read (File& io, char_t* buf, size_t len) = 0;
|
virtual hawk_ooi_t read (File& io, hawk_ooch_t* buf, hawk_oow_t len) = 0;
|
||||||
virtual ssize_t write (File& io, const char_t* buf, size_t len) = 0;
|
virtual hawk_ooi_t write (File& io, const hawk_ooch_t* buf, hawk_oow_t len) = 0;
|
||||||
virtual ssize_t writeBytes (File& io, const hawk_bch_t* buf, size_t len) = 0;
|
virtual hawk_ooi_t writeBytes (File& io, const hawk_bch_t* buf, hawk_oow_t len) = 0;
|
||||||
virtual int flush (File& io) = 0;
|
virtual int flush (File& io) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -449,8 +453,8 @@ public:
|
|||||||
/// Console mode enumerators
|
/// Console mode enumerators
|
||||||
enum Mode
|
enum Mode
|
||||||
{
|
{
|
||||||
READ = HAWK_AWK_RIO_CONSOLE_READ, ///< open for input
|
READ = HAWK_RIO_CONSOLE_READ, ///< open for input
|
||||||
WRITE = HAWK_AWK_RIO_CONSOLE_WRITE ///< open for output
|
WRITE = HAWK_RIO_CONSOLE_WRITE ///< open for output
|
||||||
};
|
};
|
||||||
|
|
||||||
///
|
///
|
||||||
@ -481,16 +485,16 @@ public:
|
|||||||
/// data not more than \a len characters and return the
|
/// data not more than \a len characters and return the
|
||||||
/// number of characters filled into the buufer. It can
|
/// number of characters filled into the buufer. It can
|
||||||
/// return 0 to indicate EOF and -1 for failure.
|
/// return 0 to indicate EOF and -1 for failure.
|
||||||
virtual ssize_t read (Console& io, char_t* buf, size_t len) = 0;
|
virtual hawk_ooi_t read (Console& io, hawk_ooch_t* buf, hawk_oow_t len) = 0;
|
||||||
|
|
||||||
/// The write() function is called when the console
|
/// The write() function is called when the console
|
||||||
/// is written for output. It can write upto \a len characters
|
/// is written for output. It can write upto \a len characters
|
||||||
/// available in the buffer \a buf and return the number of
|
/// available in the buffer \a buf and return the number of
|
||||||
/// characters written. It can return 0 to indicate EOF and -1
|
/// characters written. It can return 0 to indicate EOF and -1
|
||||||
/// for failure.
|
/// for failure.
|
||||||
virtual ssize_t write (Console& io, const char_t* buf, size_t len) = 0;
|
virtual hawk_ooi_t write (Console& io, const hawk_ooch_t* buf, hawk_oow_t len) = 0;
|
||||||
|
|
||||||
virtual ssize_t writeBytes (Console& io, const hawk_bch_t* buf, size_t len) = 0;
|
virtual hawk_ooi_t writeBytes (Console& io, const hawk_bch_t* buf, hawk_oow_t len) = 0;
|
||||||
|
|
||||||
/// You may choose to buffer the data passed to the write()
|
/// You may choose to buffer the data passed to the write()
|
||||||
/// function and perform actual writing when flush() is called.
|
/// function and perform actual writing when flush() is called.
|
||||||
@ -512,11 +516,11 @@ public:
|
|||||||
/// opened for reading or writing.
|
/// opened for reading or writing.
|
||||||
Mode getMode () const;
|
Mode getMode () const;
|
||||||
|
|
||||||
int setFileName (const char_t* name);
|
int setFileName (const hawk_ooch_t* name);
|
||||||
int setFNR (int_t fnr);
|
int setFNR (int_t fnr);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
char_t* filename;
|
hawk_ooch_t* filename;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -529,10 +533,10 @@ public:
|
|||||||
public:
|
public:
|
||||||
friend class Hawk;
|
friend class Hawk;
|
||||||
|
|
||||||
#if defined(HAWK_AWK_VALUE_USE_IN_CLASS_PLACEMENT_NEW)
|
#if defined(HAWK_VALUE_USE_IN_CLASS_PLACEMENT_NEW)
|
||||||
// initialization
|
// initialization
|
||||||
void* operator new (size_t n, Run* run) throw ();
|
void* operator new (hawk_oow_t n, Run* run) throw ();
|
||||||
void* operator new[] (size_t n, Run* run) throw ();
|
void* operator new[] (hawk_oow_t n, Run* run) throw ();
|
||||||
|
|
||||||
#if !defined(__BORLANDC__) && !defined(__WATCOMC__)
|
#if !defined(__BORLANDC__) && !defined(__WATCOMC__)
|
||||||
// deletion when initialization fails
|
// deletion when initialization fails
|
||||||
@ -556,14 +560,14 @@ public:
|
|||||||
/// The Index() function creates an empty array index.
|
/// The Index() function creates an empty array index.
|
||||||
Index ()
|
Index ()
|
||||||
{
|
{
|
||||||
this->ptr = (char_t*)Value::getEmptyStr();
|
this->ptr = (hawk_ooch_t*)Value::getEmptyStr();
|
||||||
this->len = 0;
|
this->len = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// The Index() function creates a string array index.
|
/// The Index() function creates a string array index.
|
||||||
Index (const char_t* ptr, size_t len)
|
Index (const hawk_ooch_t* ptr, hawk_oow_t len)
|
||||||
{
|
{
|
||||||
this->ptr = (char_t*)ptr;
|
this->ptr = (hawk_ooch_t*)ptr;
|
||||||
this->len = len;
|
this->len = len;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -579,12 +583,12 @@ public:
|
|||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char_t* pointer () const
|
const hawk_ooch_t* pointer () const
|
||||||
{
|
{
|
||||||
return this->ptr;
|
return this->ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t length () const
|
hawk_oow_t length () const
|
||||||
{
|
{
|
||||||
return this->len;
|
return this->len;
|
||||||
}
|
}
|
||||||
@ -609,11 +613,11 @@ public:
|
|||||||
# error SIZEOF(int_t) TOO LARGE.
|
# error SIZEOF(int_t) TOO LARGE.
|
||||||
# error INCREASE THE BUFFER SIZE TO SUPPORT IT.
|
# error INCREASE THE BUFFER SIZE TO SUPPORT IT.
|
||||||
#elif HAWK_SIZEOF_LONG_T == 16
|
#elif HAWK_SIZEOF_LONG_T == 16
|
||||||
char_t buf[41];
|
hawk_ooch_t buf[41];
|
||||||
#elif HAWK_SIZEOF_LONG_T == 8
|
#elif HAWK_SIZEOF_LONG_T == 8
|
||||||
char_t buf[21];
|
hawk_ooch_t buf[21];
|
||||||
#else
|
#else
|
||||||
char_t buf[12];
|
hawk_ooch_t buf[12];
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -643,7 +647,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
IndexIterator (hawk_htb_pair_t* pair, size_t buckno)
|
IndexIterator (hawk_htb_pair_t* pair, hawk_oow_t buckno)
|
||||||
{
|
{
|
||||||
this->pair = pair;
|
this->pair = pair;
|
||||||
this->buckno = buckno;
|
this->buckno = buckno;
|
||||||
@ -691,7 +695,7 @@ public:
|
|||||||
operator val_t* () const { return val; }
|
operator val_t* () const { return val; }
|
||||||
operator int_t () const;
|
operator int_t () const;
|
||||||
operator flt_t () const;
|
operator flt_t () const;
|
||||||
operator const char_t* () const;
|
operator const hawk_ooch_t* () const;
|
||||||
#if defined(HAWK_OOCH_IS_UCH)
|
#if defined(HAWK_OOCH_IS_UCH)
|
||||||
operator const hawk_bch_t* () const;
|
operator const hawk_bch_t* () const;
|
||||||
#endif
|
#endif
|
||||||
@ -711,10 +715,10 @@ public:
|
|||||||
return operator flt_t ();
|
return operator flt_t ();
|
||||||
}
|
}
|
||||||
|
|
||||||
const char_t* toStr (size_t* len) const
|
const hawk_ooch_t* toStr (hawk_oow_t* len) const
|
||||||
{
|
{
|
||||||
const char_t* p;
|
const hawk_ooch_t* p;
|
||||||
size_t l;
|
hawk_oow_t l;
|
||||||
|
|
||||||
if (this->getStr(&p, &l) <= -1)
|
if (this->getStr(&p, &l) <= -1)
|
||||||
{
|
{
|
||||||
@ -726,10 +730,10 @@ public:
|
|||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
const hawk_bch_t* toMbs (size_t* len) const
|
const hawk_bch_t* toMbs (hawk_oow_t* len) const
|
||||||
{
|
{
|
||||||
const hawk_bch_t* p;
|
const hawk_bch_t* p;
|
||||||
size_t l;
|
hawk_oow_t l;
|
||||||
|
|
||||||
if (this->getMbs(&p, &l) <= -1)
|
if (this->getMbs(&p, &l) <= -1)
|
||||||
{
|
{
|
||||||
@ -744,8 +748,8 @@ public:
|
|||||||
int getInt (int_t* v) const;
|
int getInt (int_t* v) const;
|
||||||
int getFlt (flt_t* v) const;
|
int getFlt (flt_t* v) const;
|
||||||
int getNum (int_t* lv, flt_t* fv) const;
|
int getNum (int_t* lv, flt_t* fv) const;
|
||||||
int getStr (const char_t** str, size_t* len) const;
|
int getStr (const hawk_ooch_t** str, hawk_oow_t* len) const;
|
||||||
int getMbs (const hawk_bch_t** str, size_t* len) const;
|
int getMbs (const hawk_bch_t** str, hawk_oow_t* len) const;
|
||||||
|
|
||||||
int setVal (val_t* v);
|
int setVal (val_t* v);
|
||||||
int setVal (Run* r, val_t* v);
|
int setVal (Run* r, val_t* v);
|
||||||
@ -755,13 +759,13 @@ public:
|
|||||||
int setFlt (flt_t v);
|
int setFlt (flt_t v);
|
||||||
int setFlt (Run* r, flt_t v);
|
int setFlt (Run* r, flt_t v);
|
||||||
|
|
||||||
int setStr (const char_t* str, size_t len, bool numeric = false);
|
int setStr (const hawk_ooch_t* str, hawk_oow_t len, bool numeric = false);
|
||||||
int setStr (Run* r, const char_t* str, size_t len, bool numeric = false);
|
int setStr (Run* r, const hawk_ooch_t* str, hawk_oow_t len, bool numeric = false);
|
||||||
int setStr (const char_t* str, bool numeric = false);
|
int setStr (const hawk_ooch_t* str, bool numeric = false);
|
||||||
int setStr (Run* r, const char_t* str, bool numeric = false);
|
int setStr (Run* r, const hawk_ooch_t* str, bool numeric = false);
|
||||||
|
|
||||||
int setMbs (const hawk_bch_t* str, size_t len);
|
int setMbs (const hawk_bch_t* str, hawk_oow_t len);
|
||||||
int setMbs (Run* r, const hawk_bch_t* str, size_t len);
|
int setMbs (Run* r, const hawk_bch_t* str, hawk_oow_t len);
|
||||||
int setMbs (const hawk_bch_t* str);
|
int setMbs (const hawk_bch_t* str);
|
||||||
int setMbs (Run* r, const hawk_bch_t* str);
|
int setMbs (Run* r, const hawk_bch_t* str);
|
||||||
|
|
||||||
@ -772,13 +776,13 @@ public:
|
|||||||
int setIndexedFlt (const Index& idx, flt_t v);
|
int setIndexedFlt (const Index& idx, flt_t v);
|
||||||
int setIndexedFlt (Run* r, const Index& idx, flt_t v);
|
int setIndexedFlt (Run* r, const Index& idx, flt_t v);
|
||||||
|
|
||||||
int setIndexedStr (const Index& idx, const char_t* str, size_t len, bool numeric = false);
|
int setIndexedStr (const Index& idx, const hawk_ooch_t* str, hawk_oow_t len, bool numeric = false);
|
||||||
int setIndexedStr (Run* r, const Index& idx, const char_t* str, size_t len, bool numeric = false);
|
int setIndexedStr (Run* r, const Index& idx, const hawk_ooch_t* str, hawk_oow_t len, bool numeric = false);
|
||||||
int setIndexedStr (const Index& idx, const char_t* str, bool numeric = false);
|
int setIndexedStr (const Index& idx, const hawk_ooch_t* str, bool numeric = false);
|
||||||
int setIndexedStr (Run* r, const Index& idx, const char_t* str, bool numeric = false);
|
int setIndexedStr (Run* r, const Index& idx, const hawk_ooch_t* str, bool numeric = false);
|
||||||
|
|
||||||
int setIndexedMbs (const Index& idx, const hawk_bch_t* str, size_t len);
|
int setIndexedMbs (const Index& idx, const hawk_bch_t* str, hawk_oow_t len);
|
||||||
int setIndexedMbs (Run* r, const Index& idx, const hawk_bch_t* str, size_t len);
|
int setIndexedMbs (Run* r, const Index& idx, const hawk_bch_t* str, hawk_oow_t len);
|
||||||
int setIndexedMbs (const Index& idx, const hawk_bch_t* str);
|
int setIndexedMbs (const Index& idx, const hawk_bch_t* str);
|
||||||
int setIndexedMbs (Run* r, const Index& idx, const hawk_bch_t* str);
|
int setIndexedMbs (Run* r, const Index& idx, const hawk_bch_t* str);
|
||||||
|
|
||||||
@ -831,7 +835,7 @@ public:
|
|||||||
} cached;
|
} cached;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static const char_t* getEmptyStr();
|
static const hawk_ooch_t* getEmptyStr();
|
||||||
static const hawk_bch_t* getEmptyMbs();
|
static const hawk_bch_t* getEmptyMbs();
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -861,17 +865,17 @@ public:
|
|||||||
|
|
||||||
errnum_t getErrorNumber () const;
|
errnum_t getErrorNumber () const;
|
||||||
loc_t getErrorLocation () const;
|
loc_t getErrorLocation () const;
|
||||||
const char_t* getErrorMessage () const;
|
const hawk_ooch_t* getErrorMessage () const;
|
||||||
|
|
||||||
void setError (
|
void setError (
|
||||||
errnum_t code,
|
errnum_t code,
|
||||||
const oocs_t* args = HAWK_NULL,
|
const hawk_oocs_t* args = HAWK_NULL,
|
||||||
const loc_t* loc = HAWK_NULL
|
const loc_t* loc = HAWK_NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
void setErrorWithMessage (
|
void setErrorWithMessage (
|
||||||
errnum_t code,
|
errnum_t code,
|
||||||
const char_t* msg,
|
const hawk_ooch_t* msg,
|
||||||
const loc_t* loc
|
const loc_t* loc
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -898,7 +902,7 @@ public:
|
|||||||
/// \a ptr.
|
/// \a ptr.
|
||||||
/// \return 0 on success, -1 on failure
|
/// \return 0 on success, -1 on failure
|
||||||
///
|
///
|
||||||
int setGlobal (int id, const char_t* ptr, size_t len);
|
int setGlobal (int id, const hawk_ooch_t* ptr, hawk_oow_t len);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// The setGlobal() function sets a global variable
|
/// The setGlobal() function sets a global variable
|
||||||
@ -1028,7 +1032,7 @@ public:
|
|||||||
const hawk_bch_t* name, ///< function name
|
const hawk_bch_t* name, ///< function name
|
||||||
Value* ret, ///< return value holder
|
Value* ret, ///< return value holder
|
||||||
const Value* args, ///< argument array
|
const Value* args, ///< argument array
|
||||||
size_t nargs ///< number of arguments
|
hawk_oow_t nargs ///< number of arguments
|
||||||
);
|
);
|
||||||
|
|
||||||
///
|
///
|
||||||
@ -1038,7 +1042,7 @@ public:
|
|||||||
const hawk_uch_t* name, ///< function name
|
const hawk_uch_t* name, ///< function name
|
||||||
Value* ret, ///< return value holder
|
Value* ret, ///< return value holder
|
||||||
const Value* args, ///< argument array
|
const Value* args, ///< argument array
|
||||||
size_t nargs ///< number of arguments
|
hawk_oow_t nargs ///< number of arguments
|
||||||
);
|
);
|
||||||
|
|
||||||
///
|
///
|
||||||
@ -1071,14 +1075,14 @@ public:
|
|||||||
///
|
///
|
||||||
void setMaxDepth (
|
void setMaxDepth (
|
||||||
depth_t id, ///< depth identifier
|
depth_t id, ///< depth identifier
|
||||||
size_t depth ///< new depth
|
hawk_oow_t depth ///< new depth
|
||||||
);
|
);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// The getMaxDepth() function gets the maximum depth for an operation
|
/// The getMaxDepth() function gets the maximum depth for an operation
|
||||||
/// type identified by \a id.
|
/// type identified by \a id.
|
||||||
///
|
///
|
||||||
size_t getMaxDepth (
|
hawk_oow_t getMaxDepth (
|
||||||
depth_t id ///< depth identifier
|
depth_t id ///< depth identifier
|
||||||
) const;
|
) const;
|
||||||
|
|
||||||
@ -1090,8 +1094,8 @@ public:
|
|||||||
/// \return 0 on success, -1 on failure
|
/// \return 0 on success, -1 on failure
|
||||||
///
|
///
|
||||||
int addArgument (
|
int addArgument (
|
||||||
const char_t* arg, ///< string pointer
|
const hawk_ooch_t* arg, ///< string pointer
|
||||||
size_t len ///< string length
|
hawk_oow_t len ///< string length
|
||||||
);
|
);
|
||||||
|
|
||||||
///
|
///
|
||||||
@ -1101,7 +1105,7 @@ public:
|
|||||||
/// \return 0 on success, -1 on failure
|
/// \return 0 on success, -1 on failure
|
||||||
///
|
///
|
||||||
int addArgument (
|
int addArgument (
|
||||||
const char_t* arg ///< string pointer
|
const hawk_ooch_t* arg ///< string pointer
|
||||||
);
|
);
|
||||||
|
|
||||||
///
|
///
|
||||||
@ -1177,7 +1181,7 @@ public:
|
|||||||
Run& run,
|
Run& run,
|
||||||
Value& ret,
|
Value& ret,
|
||||||
Value* args,
|
Value* args,
|
||||||
size_t nargs,
|
hawk_oow_t nargs,
|
||||||
const fnc_info_t* fi
|
const fnc_info_t* fi
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -1187,8 +1191,8 @@ public:
|
|||||||
///
|
///
|
||||||
int addFunction (
|
int addFunction (
|
||||||
const hawk_bch_t* name, ///< function name
|
const hawk_bch_t* name, ///< function name
|
||||||
size_t minArgs, ///< minimum numbers of arguments
|
hawk_oow_t minArgs, ///< minimum numbers of arguments
|
||||||
size_t maxArgs, ///< maximum numbers of arguments
|
hawk_oow_t maxArgs, ///< maximum numbers of arguments
|
||||||
const hawk_bch_t* argSpec, ///< argument specification
|
const hawk_bch_t* argSpec, ///< argument specification
|
||||||
FunctionHandler handler, ///< function handler
|
FunctionHandler handler, ///< function handler
|
||||||
int validOpts = 0 ///< valid if these options are set
|
int validOpts = 0 ///< valid if these options are set
|
||||||
@ -1196,8 +1200,8 @@ public:
|
|||||||
|
|
||||||
int addFunction (
|
int addFunction (
|
||||||
const hawk_uch_t* name, ///< function name
|
const hawk_uch_t* name, ///< function name
|
||||||
size_t minArgs, ///< minimum numbers of arguments
|
hawk_oow_t minArgs, ///< minimum numbers of arguments
|
||||||
size_t maxArgs, ///< maximum numbers of arguments
|
hawk_oow_t maxArgs, ///< maximum numbers of arguments
|
||||||
const hawk_uch_t* argSpec, ///< argument specification
|
const hawk_uch_t* argSpec, ///< argument specification
|
||||||
FunctionHandler handler, ///< function handler
|
FunctionHandler handler, ///< function handler
|
||||||
int validOpts = 0 ///< valid if these options are set
|
int validOpts = 0 ///< valid if these options are set
|
||||||
@ -1208,7 +1212,7 @@ public:
|
|||||||
/// function by name.
|
/// function by name.
|
||||||
///
|
///
|
||||||
int deleteFunction (
|
int deleteFunction (
|
||||||
const char_t* name ///< function name
|
const hawk_ooch_t* name ///< function name
|
||||||
);
|
);
|
||||||
/// \}
|
/// \}
|
||||||
|
|
||||||
@ -1295,9 +1299,9 @@ protected:
|
|||||||
/// on success and -1 on failure.
|
/// on success and -1 on failure.
|
||||||
virtual int closePipe (Pipe& io);
|
virtual int closePipe (Pipe& io);
|
||||||
|
|
||||||
virtual ssize_t readPipe (Pipe& io, char_t* buf, size_t len);
|
virtual hawk_ooi_t readPipe (Pipe& io, hawk_ooch_t* buf, hawk_oow_t len);
|
||||||
virtual ssize_t writePipe (Pipe& io, const char_t* buf, size_t len);
|
virtual hawk_ooi_t writePipe (Pipe& io, const hawk_ooch_t* buf, hawk_oow_t len);
|
||||||
virtual ssize_t writePipeBytes (Pipe& io, const hawk_bch_t* buf, size_t len);
|
virtual hawk_ooi_t writePipeBytes (Pipe& io, const hawk_bch_t* buf, hawk_oow_t len);
|
||||||
virtual int flushPipe (Pipe& io);
|
virtual int flushPipe (Pipe& io);
|
||||||
/// \}
|
/// \}
|
||||||
|
|
||||||
@ -1309,9 +1313,9 @@ protected:
|
|||||||
///
|
///
|
||||||
virtual int openFile (File& io);
|
virtual int openFile (File& io);
|
||||||
virtual int closeFile (File& io);
|
virtual int closeFile (File& io);
|
||||||
virtual ssize_t readFile (File& io, char_t* buf, size_t len);
|
virtual hawk_ooi_t readFile (File& io, hawk_ooch_t* buf, hawk_oow_t len);
|
||||||
virtual ssize_t writeFile (File& io, const char_t* buf, size_t len);
|
virtual hawk_ooi_t writeFile (File& io, const hawk_ooch_t* buf, hawk_oow_t len);
|
||||||
virtual ssize_t writeFileBytes (File& io, const hawk_bch_t* buf, size_t len);
|
virtual hawk_ooi_t writeFileBytes (File& io, const hawk_bch_t* buf, hawk_oow_t len);
|
||||||
virtual int flushFile (File& io);
|
virtual int flushFile (File& io);
|
||||||
/// \}
|
/// \}
|
||||||
|
|
||||||
@ -1323,9 +1327,9 @@ protected:
|
|||||||
///
|
///
|
||||||
virtual int openConsole (Console& io);
|
virtual int openConsole (Console& io);
|
||||||
virtual int closeConsole (Console& io);
|
virtual int closeConsole (Console& io);
|
||||||
virtual ssize_t readConsole (Console& io, char_t* buf, size_t len);
|
virtual hawk_ooi_t readConsole (Console& io, hawk_ooch_t* buf, hawk_oow_t len);
|
||||||
virtual ssize_t writeConsole (Console& io, const char_t* buf, size_t len);
|
virtual hawk_ooi_t writeConsole (Console& io, const hawk_ooch_t* buf, hawk_oow_t len);
|
||||||
virtual ssize_t writeConsoleBytes (Console& io, const hawk_bch_t* buf, size_t len);
|
virtual hawk_ooi_t writeConsoleBytes (Console& io, const hawk_bch_t* buf, hawk_oow_t len);
|
||||||
virtual int flushConsole (Console& io);
|
virtual int flushConsole (Console& io);
|
||||||
virtual int nextConsole (Console& io);
|
virtual int nextConsole (Console& io);
|
||||||
/// \}
|
/// \}
|
||||||
@ -1336,25 +1340,25 @@ protected:
|
|||||||
|
|
||||||
virtual void* modopen (const mod_spec_t* spec) = 0;
|
virtual void* modopen (const mod_spec_t* spec) = 0;
|
||||||
virtual void modclose (void* handle) = 0;
|
virtual void modclose (void* handle) = 0;
|
||||||
virtual void* modsym (void* handle, const char_t* name) = 0;
|
virtual void* modgetsym (void* handle, const hawk_ooch_t* name) = 0;
|
||||||
|
|
||||||
// static glue members for various handlers
|
// static glue members for various handlers
|
||||||
static ssize_t readSource (
|
static hawk_ooi_t readSource (
|
||||||
awk_t* awk, sio_cmd_t cmd, sio_arg_t* arg,
|
awk_t* awk, sio_cmd_t cmd, sio_arg_t* arg,
|
||||||
char_t* data, size_t count);
|
hawk_ooch_t* data, hawk_oow_t count);
|
||||||
static ssize_t writeSource (
|
static hawk_ooi_t writeSource (
|
||||||
awk_t* awk, sio_cmd_t cmd, sio_arg_t* arg,
|
awk_t* awk, sio_cmd_t cmd, sio_arg_t* arg,
|
||||||
char_t* data, size_t count);
|
hawk_ooch_t* data, hawk_oow_t count);
|
||||||
|
|
||||||
static ssize_t pipeHandler (
|
static hawk_ooi_t pipeHandler (
|
||||||
rtx_t* rtx, rio_cmd_t cmd, rio_arg_t* riod,
|
rtx_t* rtx, rio_cmd_t cmd, rio_arg_t* riod,
|
||||||
void* data, size_t count);
|
void* data, hawk_oow_t count);
|
||||||
static ssize_t fileHandler (
|
static hawk_ooi_t fileHandler (
|
||||||
rtx_t* rtx, rio_cmd_t cmd, rio_arg_t* riod,
|
rtx_t* rtx, rio_cmd_t cmd, rio_arg_t* riod,
|
||||||
void* data, size_t count);
|
void* data, hawk_oow_t count);
|
||||||
static ssize_t consoleHandler (
|
static hawk_ooi_t consoleHandler (
|
||||||
rtx_t* rtx, rio_cmd_t cmd, rio_arg_t* riod,
|
rtx_t* rtx, rio_cmd_t cmd, rio_arg_t* riod,
|
||||||
void* data, size_t count);
|
void* data, hawk_oow_t count);
|
||||||
|
|
||||||
static int functionHandler (rtx_t* rtx, const fnc_info_t* fi);
|
static int functionHandler (rtx_t* rtx, const fnc_info_t* fi);
|
||||||
|
|
||||||
@ -1364,7 +1368,7 @@ protected:
|
|||||||
|
|
||||||
static void* modopen (awk_t* awk, const mod_spec_t* spec);
|
static void* modopen (awk_t* awk, const mod_spec_t* spec);
|
||||||
static void modclose (awk_t* awk, void* handle);
|
static void modclose (awk_t* awk, void* handle);
|
||||||
static void* modsym (awk_t* awk, void* handle, const char_t* name);
|
static void* modsym (awk_t* awk, void* handle, const hawk_ooch_t* name);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// use this with care
|
// use this with care
|
||||||
@ -1376,7 +1380,7 @@ protected:
|
|||||||
errstr_t dflerrstr;
|
errstr_t dflerrstr;
|
||||||
errinf_t errinf;
|
errinf_t errinf;
|
||||||
|
|
||||||
#if defined(HAWK_AWK_USE_HTB_FOR_FUNCTION_MAP)
|
#if defined(HAWK_USE_HTB_FOR_FUNCTION_MAP)
|
||||||
hawk_htb_t* functionMap;
|
hawk_htb_t* functionMap;
|
||||||
#else
|
#else
|
||||||
|
|
||||||
@ -1403,12 +1407,12 @@ protected:
|
|||||||
{
|
{
|
||||||
xstrs_t (): ptr (HAWK_NULL), len (0), capa (0) {}
|
xstrs_t (): ptr (HAWK_NULL), len (0), capa (0) {}
|
||||||
|
|
||||||
int add (awk_t* awk, const char_t* arg, size_t len);
|
int add (awk_t* awk, const hawk_ooch_t* arg, hawk_oow_t len);
|
||||||
void clear (awk_t* awk);
|
void clear (awk_t* awk);
|
||||||
|
|
||||||
hawk_oocs_t* ptr;
|
hawk_oocs_t* ptr;
|
||||||
size_t len;
|
hawk_oow_t len;
|
||||||
size_t capa;
|
hawk_oow_t capa;
|
||||||
};
|
};
|
||||||
|
|
||||||
xstrs_t runarg;
|
xstrs_t runarg;
|
||||||
@ -1420,7 +1424,7 @@ private:
|
|||||||
void fini_runctx ();
|
void fini_runctx ();
|
||||||
int dispatch_function (Run* run, const fnc_info_t* fi);
|
int dispatch_function (Run* run, const fnc_info_t* fi);
|
||||||
|
|
||||||
static const char_t* xerrstr (awk_t* a, errnum_t num);
|
static const hawk_ooch_t* xerrstr (awk_t* a, errnum_t num);
|
||||||
};
|
};
|
||||||
|
|
||||||
/////////////////////////////////
|
/////////////////////////////////
|
||||||
|
@ -61,8 +61,8 @@ static hawk_sio_t* open_sio (Hawk* awk, StdHawk::Run* run, const hawk_ooch_t* fi
|
|||||||
if (sio == HAWK_NULL)
|
if (sio == HAWK_NULL)
|
||||||
{
|
{
|
||||||
hawk_oocs_t ea;
|
hawk_oocs_t ea;
|
||||||
ea.ptr = (StdHawk::char_t*)file;
|
ea.ptr = (hawk_ooch_t*)file;
|
||||||
ea.len = hawk_strlen (file);
|
ea.len = hawk_count_oocstr (file);
|
||||||
if (run) run->setError (HAWK_EOPEN, &ea);
|
if (run) run->setError (HAWK_EOPEN, &ea);
|
||||||
else awk->setError (HAWK_EOPEN, &ea);
|
else awk->setError (HAWK_EOPEN, &ea);
|
||||||
}
|
}
|
||||||
@ -72,7 +72,7 @@ static hawk_sio_t* open_sio (Hawk* awk, StdHawk::Run* run, const hawk_ooch_t* fi
|
|||||||
static hawk_sio_t* open_sio_std (Hawk* awk, StdHawk::Run* run, hawk_sio_std_t std, int flags)
|
static hawk_sio_t* open_sio_std (Hawk* awk, StdHawk::Run* run, hawk_sio_std_t std, int flags)
|
||||||
{
|
{
|
||||||
hawk_sio_t* sio;
|
hawk_sio_t* sio;
|
||||||
static const StdHawk::char_t* std_names[] =
|
static const hawk_ooch_t* std_names[] =
|
||||||
{
|
{
|
||||||
HAWK_T("stdin"),
|
HAWK_T("stdin"),
|
||||||
HAWK_T("stdout"),
|
HAWK_T("stdout"),
|
||||||
@ -84,8 +84,8 @@ static hawk_sio_t* open_sio_std (Hawk* awk, StdHawk::Run* run, hawk_sio_std_t st
|
|||||||
if (sio == HAWK_NULL)
|
if (sio == HAWK_NULL)
|
||||||
{
|
{
|
||||||
hawk_oocs_t ea;
|
hawk_oocs_t ea;
|
||||||
ea.ptr = (StdHawk::char_t*)std_names[std];
|
ea.ptr = (hawk_ooch_t*)std_names[std];
|
||||||
ea.len = hawk_strlen (std_names[std]);
|
ea.len = hawk_count_oocstr (std_names[std]);
|
||||||
if (run) run->setError (HAWK_EOPEN, &ea);
|
if (run) run->setError (HAWK_EOPEN, &ea);
|
||||||
else awk->setError (HAWK_EOPEN, &ea);
|
else awk->setError (HAWK_EOPEN, &ea);
|
||||||
}
|
}
|
||||||
@ -211,7 +211,7 @@ int StdHawk::build_argcv (Run* run)
|
|||||||
{
|
{
|
||||||
Value argv (run);
|
Value argv (run);
|
||||||
|
|
||||||
for (size_t i = 0; i < this->runarg.len; i++)
|
for (hawk_oow_t i = 0; i < this->runarg.len; i++)
|
||||||
{
|
{
|
||||||
if (argv.setIndexedStr (
|
if (argv.setIndexedStr (
|
||||||
Value::IntIndex(i),
|
Value::IntIndex(i),
|
||||||
@ -226,12 +226,12 @@ int StdHawk::build_argcv (Run* run)
|
|||||||
|
|
||||||
int StdHawk::__build_environ (Run* run, void* envptr)
|
int StdHawk::__build_environ (Run* run, void* envptr)
|
||||||
{
|
{
|
||||||
hawk_env_char_t** envarr = (hawk_env_char_t**)envptr;
|
hawk_env_hawk_ooch_t** envarr = (hawk_env_hawk_ooch_t**)envptr;
|
||||||
Value v_env (run);
|
Value v_env (run);
|
||||||
|
|
||||||
if (envarr)
|
if (envarr)
|
||||||
{
|
{
|
||||||
hawk_env_char_t* eq;
|
hawk_env_hawk_ooch_t* eq;
|
||||||
hawk_ooch_t* kptr, * vptr;
|
hawk_ooch_t* kptr, * vptr;
|
||||||
hawk_oow_t klen, count;
|
hawk_oow_t klen, count;
|
||||||
hawk_mmgr_t* mmgr = ((Hawk*)*run)->getMmgr();
|
hawk_mmgr_t* mmgr = ((Hawk*)*run)->getMmgr();
|
||||||
@ -332,18 +332,18 @@ int StdHawk::make_additional_globals (Run* run)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
hawk_cmgr_t* StdHawk::getiocmgr (const char_t* ioname)
|
hawk_cmgr_t* StdHawk::getiocmgr (const hawk_ooch_t* ioname)
|
||||||
{
|
{
|
||||||
HAWK_ASSERT (this->cmgrtab_inited == true);
|
HAWK_ASSERT (this->cmgrtab_inited == true);
|
||||||
|
|
||||||
#if defined(HAWK_OOCH_IS_UCH)
|
#if defined(HAWK_OOCH_IS_UCH)
|
||||||
ioattr_t* ioattr = get_ioattr(ioname, hawk_strlen(ioname));
|
ioattr_t* ioattr = get_ioattr(ioname, hawk_count_oocstr(ioname));
|
||||||
if (ioattr) return ioattr->cmgr;
|
if (ioattr) return ioattr->cmgr;
|
||||||
#endif
|
#endif
|
||||||
return HAWK_NULL;
|
return HAWK_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
StdHawk::ioattr_t* StdHawk::get_ioattr (const char_t* ptr, size_t len)
|
StdHawk::ioattr_t* StdHawk::get_ioattr (const hawk_ooch_t* ptr, hawk_oow_t len)
|
||||||
{
|
{
|
||||||
hawk_htb_pair_t* pair;
|
hawk_htb_pair_t* pair;
|
||||||
|
|
||||||
@ -353,7 +353,7 @@ StdHawk::ioattr_t* StdHawk::get_ioattr (const char_t* ptr, size_t len)
|
|||||||
return (ioattr_t*)HAWK_HTB_VPTR(pair);
|
return (ioattr_t*)HAWK_HTB_VPTR(pair);
|
||||||
}
|
}
|
||||||
|
|
||||||
StdHawk::ioattr_t* StdHawk::find_or_make_ioattr (const char_t* ptr, size_t len)
|
StdHawk::ioattr_t* StdHawk::find_or_make_ioattr (const hawk_ooch_t* ptr, hawk_oow_t len)
|
||||||
{
|
{
|
||||||
hawk_htb_pair_t* pair;
|
hawk_htb_pair_t* pair;
|
||||||
|
|
||||||
@ -384,12 +384,12 @@ static int timeout_code (const hawk_ooch_t* name)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int StdHawk::setioattr (
|
int StdHawk::setioattr (
|
||||||
Run& run, Value& ret, Value* args, size_t nargs,
|
Run& run, Value& ret, Value* args, hawk_oow_t nargs,
|
||||||
const char_t* name, size_t len)
|
const hawk_ooch_t* name, hawk_oow_t len)
|
||||||
{
|
{
|
||||||
HAWK_ASSERT (this->cmgrtab_inited == true);
|
HAWK_ASSERT (this->cmgrtab_inited == true);
|
||||||
size_t l[3];
|
hawk_oow_t l[3];
|
||||||
const char_t* ptr[3];
|
const hawk_ooch_t* ptr[3];
|
||||||
|
|
||||||
ptr[0] = args[0].toStr(&l[0]);
|
ptr[0] = args[0].toStr(&l[0]);
|
||||||
ptr[1] = args[1].toStr(&l[1]);
|
ptr[1] = args[1].toStr(&l[1]);
|
||||||
@ -459,12 +459,12 @@ int StdHawk::setioattr (
|
|||||||
}
|
}
|
||||||
|
|
||||||
int StdHawk::getioattr (
|
int StdHawk::getioattr (
|
||||||
Run& run, Value& ret, Value* args, size_t nargs,
|
Run& run, Value& ret, Value* args, hawk_oow_t nargs,
|
||||||
const char_t* name, size_t len)
|
const hawk_ooch_t* name, hawk_oow_t len)
|
||||||
{
|
{
|
||||||
HAWK_ASSERT (this->cmgrtab_inited == true);
|
HAWK_ASSERT (this->cmgrtab_inited == true);
|
||||||
size_t l[2];
|
hawk_oow_t l[2];
|
||||||
const char_t* ptr[2];
|
const hawk_ooch_t* ptr[2];
|
||||||
|
|
||||||
ptr[0] = args[0].toStr(&l[0]);
|
ptr[0] = args[0].toStr(&l[0]);
|
||||||
ptr[1] = args[1].toStr(&l[1]);
|
ptr[1] = args[1].toStr(&l[1]);
|
||||||
@ -505,7 +505,7 @@ int StdHawk::open_nwio (Pipe& io, int flags, void* nwad)
|
|||||||
hawk_nwio_tmout_t* tmout = HAWK_NULL;
|
hawk_nwio_tmout_t* tmout = HAWK_NULL;
|
||||||
|
|
||||||
const hawk_ooch_t* name = io.getName();
|
const hawk_ooch_t* name = io.getName();
|
||||||
ioattr_t* ioattr = get_ioattr (name, hawk_strlen(name));
|
ioattr_t* ioattr = get_ioattr (name, hawk_count_oocstr(name));
|
||||||
if (ioattr)
|
if (ioattr)
|
||||||
{
|
{
|
||||||
tmout = &tmout_buf;
|
tmout = &tmout_buf;
|
||||||
@ -596,7 +596,7 @@ static int parse_rwpipe_uri (const hawk_ooch_t* uri, int* flags, hawk_nwad_t* nw
|
|||||||
{ HAWK_T("tcpd://"), 7, HAWK_NWIO_TCP | HAWK_NWIO_PASSIVE },
|
{ HAWK_T("tcpd://"), 7, HAWK_NWIO_TCP | HAWK_NWIO_PASSIVE },
|
||||||
{ HAWK_T("udpd://"), 7, HAWK_NWIO_UDP | HAWK_NWIO_PASSIVE }
|
{ HAWK_T("udpd://"), 7, HAWK_NWIO_UDP | HAWK_NWIO_PASSIVE }
|
||||||
};
|
};
|
||||||
StdHawk::size_t i;
|
hawk_oow_t i;
|
||||||
|
|
||||||
for (i = 0; i < HAWK_COUNTOF(x); i++)
|
for (i = 0; i < HAWK_COUNTOF(x); i++)
|
||||||
{
|
{
|
||||||
@ -657,21 +657,21 @@ int StdHawk::closePipe (Pipe& io)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
StdHawk::ssize_t StdHawk::readPipe (Pipe& io, char_t* buf, size_t len)
|
hawk_ooi_t StdHawk::readPipe (Pipe& io, hawk_ooch_t* buf, hawk_oow_t len)
|
||||||
{
|
{
|
||||||
return (io.getUflags() > 0)?
|
return (io.getUflags() > 0)?
|
||||||
hawk_nwio_read ((hawk_nwio_t*)io.getHandle(), buf, len):
|
hawk_nwio_read ((hawk_nwio_t*)io.getHandle(), buf, len):
|
||||||
hawk_pio_read ((hawk_pio_t*)io.getHandle(), HAWK_PIO_OUT, buf, len);
|
hawk_pio_read ((hawk_pio_t*)io.getHandle(), HAWK_PIO_OUT, buf, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
StdHawk::ssize_t StdHawk::writePipe (Pipe& io, const char_t* buf, size_t len)
|
hawk_ooi_t StdHawk::writePipe (Pipe& io, const hawk_ooch_t* buf, hawk_oow_t len)
|
||||||
{
|
{
|
||||||
return (io.getUflags() > 0)?
|
return (io.getUflags() > 0)?
|
||||||
hawk_nwio_write((hawk_nwio_t*)io.getHandle(), buf, len):
|
hawk_nwio_write((hawk_nwio_t*)io.getHandle(), buf, len):
|
||||||
hawk_pio_write((hawk_pio_t*)io.getHandle(), HAWK_PIO_IN, buf, len);
|
hawk_pio_write((hawk_pio_t*)io.getHandle(), HAWK_PIO_IN, buf, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
StdHawk::ssize_t StdHawk::writePipeBytes (Pipe& io, const hawk_bch_t* buf, size_t len)
|
hawk_ooi_t StdHawk::writePipeBytes (Pipe& io, const hawk_bch_t* buf, hawk_oow_t len)
|
||||||
{
|
{
|
||||||
return (io.getUflags() > 0)?
|
return (io.getUflags() > 0)?
|
||||||
hawk_nwio_writebytes((hawk_nwio_t*)io.getHandle(), buf, len):
|
hawk_nwio_writebytes((hawk_nwio_t*)io.getHandle(), buf, len):
|
||||||
@ -724,17 +724,17 @@ int StdHawk::closeFile (File& io)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
StdHawk::ssize_t StdHawk::readFile (File& io, char_t* buf, size_t len)
|
hawk_ooi_t StdHawk::readFile (File& io, hawk_ooch_t* buf, hawk_oow_t len)
|
||||||
{
|
{
|
||||||
return hawk_sio_getoochars((hawk_sio_t*)io.getHandle(), buf, len);
|
return hawk_sio_getoochars((hawk_sio_t*)io.getHandle(), buf, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
StdHawk::ssize_t StdHawk::writeFile (File& io, const char_t* buf, size_t len)
|
hawk_ooi_t StdHawk::writeFile (File& io, const hawk_ooch_t* buf, hawk_oow_t len)
|
||||||
{
|
{
|
||||||
return hawk_sio_putoochars((hawk_sio_t*)io.getHandle(), buf, len);
|
return hawk_sio_putoochars((hawk_sio_t*)io.getHandle(), buf, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
StdHawk::ssize_t StdHawk::writeFileBytes (File& io, const hawk_bch_t* buf, size_t len)
|
hawk_ooi_t StdHawk::writeFileBytes (File& io, const hawk_bch_t* buf, hawk_oow_t len)
|
||||||
{
|
{
|
||||||
return hawk_sio_putbchars((hawk_sio_t*)io.getHandle(), buf, len);
|
return hawk_sio_putbchars((hawk_sio_t*)io.getHandle(), buf, len);
|
||||||
}
|
}
|
||||||
@ -755,7 +755,7 @@ const hawk_cmgr_t* StdHawk::getConsoleCmgr () const
|
|||||||
return this->console_cmgr;
|
return this->console_cmgr;
|
||||||
}
|
}
|
||||||
|
|
||||||
int StdHawk::addConsoleOutput (const char_t* arg, size_t len)
|
int StdHawk::addConsoleOutput (const hawk_ooch_t* arg, hawk_oow_t len)
|
||||||
{
|
{
|
||||||
HAWK_ASSERT (awk != HAWK_NULL);
|
HAWK_ASSERT (awk != HAWK_NULL);
|
||||||
int n = this->ofile.add (awk, arg, len);
|
int n = this->ofile.add (awk, arg, len);
|
||||||
@ -763,9 +763,9 @@ int StdHawk::addConsoleOutput (const char_t* arg, size_t len)
|
|||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
int StdHawk::addConsoleOutput (const char_t* arg)
|
int StdHawk::addConsoleOutput (const hawk_ooch_t* arg)
|
||||||
{
|
{
|
||||||
return addConsoleOutput (arg, hawk_strlen(arg));
|
return addConsoleOutput (arg, hawk_count_oocstr(arg));
|
||||||
}
|
}
|
||||||
|
|
||||||
void StdHawk::clearConsoleOutputs ()
|
void StdHawk::clearConsoleOutputs ()
|
||||||
@ -844,11 +844,11 @@ int StdHawk::open_console_in (Console& io)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hawk_strlen(file) != this->runarg.ptr[this->runarg_index].len)
|
if (hawk_count_oocstr(file) != this->runarg.ptr[this->runarg_index].len)
|
||||||
{
|
{
|
||||||
oocs_t arg;
|
hawk_oocs_t arg;
|
||||||
arg.ptr = (char_t*)file;
|
arg.ptr = (hawk_ooch_t*)file;
|
||||||
arg.len = hawk_strlen (arg.ptr);
|
arg.len = hawk_count_oocstr (arg.ptr);
|
||||||
((Run*)io)->setError (HAWK_EIONMNL, &arg);
|
((Run*)io)->setError (HAWK_EIONMNL, &arg);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -888,12 +888,12 @@ int StdHawk::open_console_in (Console& io)
|
|||||||
goto nextfile;
|
goto nextfile;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hawk_strlen(as.ptr) < as.len)
|
if (hawk_count_oocstr(as.ptr) < as.len)
|
||||||
{
|
{
|
||||||
/* the name contains one or more '\0' */
|
/* the name contains one or more '\0' */
|
||||||
oocs_t arg;
|
hawk_oocs_t arg;
|
||||||
arg.ptr = as.ptr;
|
arg.ptr = as.ptr;
|
||||||
arg.len = hawk_strlen (as.ptr);
|
arg.len = hawk_count_oocstr (as.ptr);
|
||||||
((Run*)io)->setError (HAWK_EIONMNL, &arg);
|
((Run*)io)->setError (HAWK_EIONMNL, &arg);
|
||||||
hawk_rtx_freevaloocstr (rtx, v, as.ptr);
|
hawk_rtx_freevaloocstr (rtx, v, as.ptr);
|
||||||
return -1;
|
return -1;
|
||||||
@ -911,7 +911,7 @@ int StdHawk::open_console_in (Console& io)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hawk_rtx_setfilename (rtx, file, hawk_strlen(file)) <= -1)
|
if (hawk_rtx_setfilename (rtx, file, hawk_count_oocstr(file)) <= -1)
|
||||||
{
|
{
|
||||||
hawk_sio_close (sio);
|
hawk_sio_close (sio);
|
||||||
hawk_rtx_freevaloocstr (rtx, v, as.ptr);
|
hawk_rtx_freevaloocstr (rtx, v, as.ptr);
|
||||||
@ -973,11 +973,11 @@ int StdHawk::open_console_out (Console& io)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hawk_strlen(file) != this->ofile.ptr[this->ofile_index].len)
|
if (hawk_count_oocstr(file) != this->ofile.ptr[this->ofile_index].len)
|
||||||
{
|
{
|
||||||
oocs_t arg;
|
hawk_oocs_t arg;
|
||||||
arg.ptr = (char_t*)file;
|
arg.ptr = (hawk_ooch_t*)file;
|
||||||
arg.len = hawk_strlen (arg.ptr);
|
arg.len = hawk_count_oocstr (arg.ptr);
|
||||||
((Run*)io)->setError (HAWK_EIONMNL, &arg);
|
((Run*)io)->setError (HAWK_EIONMNL, &arg);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -989,7 +989,7 @@ int StdHawk::open_console_out (Console& io)
|
|||||||
if (sio == HAWK_NULL) return -1;
|
if (sio == HAWK_NULL) return -1;
|
||||||
|
|
||||||
if (hawk_rtx_setofilename (
|
if (hawk_rtx_setofilename (
|
||||||
rtx, file, hawk_strlen(file)) == -1)
|
rtx, file, hawk_count_oocstr(file)) == -1)
|
||||||
{
|
{
|
||||||
hawk_sio_close (sio);
|
hawk_sio_close (sio);
|
||||||
return -1;
|
return -1;
|
||||||
@ -1036,9 +1036,9 @@ int StdHawk::closeConsole (Console& io)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
StdHawk::ssize_t StdHawk::readConsole (Console& io, char_t* data, size_t size)
|
hawk_ooi_t StdHawk::readConsole (Console& io, hawk_ooch_t* data, hawk_oow_t size)
|
||||||
{
|
{
|
||||||
hawk_ssize_t nn;
|
hawk_ooi_t nn;
|
||||||
|
|
||||||
while ((nn = hawk_sio_getoochars((hawk_sio_t*)io.getHandle(),data,size)) == 0)
|
while ((nn = hawk_sio_getoochars((hawk_sio_t*)io.getHandle(),data,size)) == 0)
|
||||||
{
|
{
|
||||||
@ -1060,12 +1060,12 @@ StdHawk::ssize_t StdHawk::readConsole (Console& io, char_t* data, size_t size)
|
|||||||
return nn;
|
return nn;
|
||||||
}
|
}
|
||||||
|
|
||||||
StdHawk::ssize_t StdHawk::writeConsole (Console& io, const char_t* data, size_t size)
|
hawk_ooi_t StdHawk::writeConsole (Console& io, const hawk_ooch_t* data, hawk_oow_t size)
|
||||||
{
|
{
|
||||||
return hawk_sio_putoochars((hawk_sio_t*)io.getHandle(), data, size);
|
return hawk_sio_putoochars((hawk_sio_t*)io.getHandle(), data, size);
|
||||||
}
|
}
|
||||||
|
|
||||||
StdHawk::ssize_t StdHawk::writeConsoleBytes (Console& io, const hawk_bch_t* data, size_t size)
|
hawk_ooi_t StdHawk::writeConsoleBytes (Console& io, const hawk_bch_t* data, hawk_oow_t size)
|
||||||
{
|
{
|
||||||
return hawk_sio_putbchars((hawk_sio_t*)io.getHandle(), data, size);
|
return hawk_sio_putbchars((hawk_sio_t*)io.getHandle(), data, size);
|
||||||
}
|
}
|
||||||
@ -1095,12 +1095,12 @@ int StdHawk::nextConsole (Console& io)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// memory allocation primitives
|
// memory allocation primitives
|
||||||
void* StdHawk::allocMem (size_t n)
|
void* StdHawk::allocMem (hawk_oow_t n)
|
||||||
{
|
{
|
||||||
return ::malloc (n);
|
return ::malloc (n);
|
||||||
}
|
}
|
||||||
|
|
||||||
void* StdHawk::reallocMem (void* ptr, size_t n)
|
void* StdHawk::reallocMem (void* ptr, hawk_oow_t n)
|
||||||
{
|
{
|
||||||
return ::realloc (ptr, n);
|
return ::realloc (ptr, n);
|
||||||
}
|
}
|
||||||
@ -1135,10 +1135,10 @@ void StdHawk::modclose (void* handle)
|
|||||||
hawk_stdmodclose (this->awk, handle);
|
hawk_stdmodclose (this->awk, handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
void* StdHawk::modsym (void* handle, const hawk_ooch_t* name)
|
void* StdHawk::modgetsym (void* handle, const hawk_ooch_t* name)
|
||||||
{
|
{
|
||||||
void* s;
|
void* s;
|
||||||
s = hawk_stdmodsym (this->awk, handle, name);
|
s = hawk_stdmodgetsym (this->awk, handle, name);
|
||||||
if (!s) this->retrieveError ();
|
if (!s) this->retrieveError ();
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
@ -1181,9 +1181,9 @@ int StdHawk::SourceFile::open (Data& io)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// open an included file
|
// open an included file
|
||||||
const char_t* ioname, * file;
|
const hawk_ooch_t* ioname, * file;
|
||||||
char_t fbuf[64];
|
hawk_ooch_t fbuf[64];
|
||||||
char_t* dbuf = HAWK_NULL;
|
hawk_ooch_t* dbuf = HAWK_NULL;
|
||||||
|
|
||||||
ioname = io.getName();
|
ioname = io.getName();
|
||||||
HAWK_ASSERT (ioname != HAWK_NULL);
|
HAWK_ASSERT (ioname != HAWK_NULL);
|
||||||
@ -1201,10 +1201,10 @@ int StdHawk::SourceFile::open (Data& io)
|
|||||||
base = hawk_basename(outer);
|
base = hawk_basename(outer);
|
||||||
if (base != outer && ioname[0] != HAWK_T('/'))
|
if (base != outer && ioname[0] != HAWK_T('/'))
|
||||||
{
|
{
|
||||||
size_t tmplen, totlen, dirlen;
|
hawk_oow_t tmplen, totlen, dirlen;
|
||||||
|
|
||||||
dirlen = base - outer;
|
dirlen = base - outer;
|
||||||
totlen = hawk_strlen(ioname) + dirlen;
|
totlen = hawk_count_oocstr(ioname) + dirlen;
|
||||||
if (totlen >= HAWK_COUNTOF(fbuf))
|
if (totlen >= HAWK_COUNTOF(fbuf))
|
||||||
{
|
{
|
||||||
dbuf = (hawk_ooch_t*) HAWK_MMGR_ALLOC (
|
dbuf = (hawk_ooch_t*) HAWK_MMGR_ALLOC (
|
||||||
@ -1221,8 +1221,8 @@ int StdHawk::SourceFile::open (Data& io)
|
|||||||
}
|
}
|
||||||
else file = fbuf;
|
else file = fbuf;
|
||||||
|
|
||||||
tmplen = hawk_copy_oochars_to_oocstr_unlimited ((char_t*)file, outer, dirlen);
|
tmplen = hawk_copy_oochars_to_oocstr_unlimited ((hawk_ooch_t*)file, outer, dirlen);
|
||||||
hawk_copy_oocstr_unlimited ((char_t*)file + tmplen, ioname);
|
hawk_copy_oocstr_unlimited ((hawk_ooch_t*)file + tmplen, ioname);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1250,12 +1250,12 @@ int StdHawk::SourceFile::close (Data& io)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
StdHawk::ssize_t StdHawk::SourceFile::read (Data& io, char_t* buf, size_t len)
|
hawk_ooi_t StdHawk::SourceFile::read (Data& io, hawk_ooch_t* buf, hawk_oow_t len)
|
||||||
{
|
{
|
||||||
return hawk_sio_getoochars ((hawk_sio_t*)io.getHandle(), buf, len);
|
return hawk_sio_getoochars ((hawk_sio_t*)io.getHandle(), buf, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
StdHawk::ssize_t StdHawk::SourceFile::write (Data& io, const char_t* buf, size_t len)
|
hawk_ooi_t StdHawk::SourceFile::write (Data& io, const hawk_ooch_t* buf, hawk_oow_t len)
|
||||||
{
|
{
|
||||||
return hawk_sio_putoochars ((hawk_sio_t*)io.getHandle(), buf, len);
|
return hawk_sio_putoochars ((hawk_sio_t*)io.getHandle(), buf, len);
|
||||||
}
|
}
|
||||||
@ -1275,9 +1275,9 @@ int StdHawk::SourceString::open (Data& io)
|
|||||||
{
|
{
|
||||||
// open an included file
|
// open an included file
|
||||||
|
|
||||||
const char_t* ioname, * file;
|
const hawk_ooch_t* ioname, * file;
|
||||||
char_t fbuf[64];
|
hawk_ooch_t fbuf[64];
|
||||||
char_t* dbuf = HAWK_NULL;
|
hawk_ooch_t* dbuf = HAWK_NULL;
|
||||||
|
|
||||||
ioname = io.getName();
|
ioname = io.getName();
|
||||||
HAWK_ASSERT (ioname != HAWK_NULL);
|
HAWK_ASSERT (ioname != HAWK_NULL);
|
||||||
@ -1295,10 +1295,10 @@ int StdHawk::SourceString::open (Data& io)
|
|||||||
base = hawk_basename(outer);
|
base = hawk_basename(outer);
|
||||||
if (base != outer && ioname[0] != HAWK_T('/'))
|
if (base != outer && ioname[0] != HAWK_T('/'))
|
||||||
{
|
{
|
||||||
size_t tmplen, totlen, dirlen;
|
hawk_oow_t tmplen, totlen, dirlen;
|
||||||
|
|
||||||
dirlen = base - outer;
|
dirlen = base - outer;
|
||||||
totlen = hawk_strlen(ioname) + dirlen;
|
totlen = hawk_count_oocstr(ioname) + dirlen;
|
||||||
if (totlen >= HAWK_COUNTOF(fbuf))
|
if (totlen >= HAWK_COUNTOF(fbuf))
|
||||||
{
|
{
|
||||||
dbuf = (hawk_ooch_t*)HAWK_MMGR_ALLOC(
|
dbuf = (hawk_ooch_t*)HAWK_MMGR_ALLOC(
|
||||||
@ -1315,8 +1315,8 @@ int StdHawk::SourceString::open (Data& io)
|
|||||||
}
|
}
|
||||||
else file = fbuf;
|
else file = fbuf;
|
||||||
|
|
||||||
tmplen = hawk_copy_oochars_to_oocstr_unlimited ((char_t*)file, outer, dirlen);
|
tmplen = hawk_copy_oochars_to_oocstr_unlimited ((hawk_ooch_t*)file, outer, dirlen);
|
||||||
hawk_copy_oocstr_unlimited ((char_t*)file + tmplen, ioname);
|
hawk_copy_oocstr_unlimited ((hawk_ooch_t*)file + tmplen, ioname);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1342,7 +1342,7 @@ int StdHawk::SourceString::close (Data& io)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
StdHawk::ssize_t StdHawk::SourceString::read (Data& io, char_t* buf, size_t len)
|
hawk_ooi_t StdHawk::SourceString::read (Data& io, hawk_ooch_t* buf, hawk_oow_t len)
|
||||||
{
|
{
|
||||||
if (io.isMaster())
|
if (io.isMaster())
|
||||||
{
|
{
|
||||||
@ -1356,7 +1356,7 @@ StdHawk::ssize_t StdHawk::SourceString::read (Data& io, char_t* buf, size_t len)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
StdHawk::ssize_t StdHawk::SourceString::write (Data& io, const char_t* buf, size_t len)
|
hawk_ooi_t StdHawk::SourceString::write (Data& io, const hawk_ooch_t* buf, hawk_oow_t len)
|
||||||
{
|
{
|
||||||
if (io.isMaster())
|
if (io.isMaster())
|
||||||
{
|
{
|
||||||
|
@ -51,7 +51,7 @@ public:
|
|||||||
class HAWK_EXPORT SourceFile: public Source
|
class HAWK_EXPORT SourceFile: public Source
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
SourceFile (const char_t* name, hawk_cmgr_t* cmgr = HAWK_NULL):
|
SourceFile (const hawk_ooch_t* name, hawk_cmgr_t* cmgr = HAWK_NULL):
|
||||||
name (name), cmgr (cmgr)
|
name (name), cmgr (cmgr)
|
||||||
{
|
{
|
||||||
dir.ptr = HAWK_NULL; dir.len = 0;
|
dir.ptr = HAWK_NULL; dir.len = 0;
|
||||||
@ -59,11 +59,11 @@ public:
|
|||||||
|
|
||||||
int open (Data& io);
|
int open (Data& io);
|
||||||
int close (Data& io);
|
int close (Data& io);
|
||||||
ssize_t read (Data& io, char_t* buf, size_t len);
|
hawk_ooi_t read (Data& io, hawk_ooch_t* buf, hawk_oow_t len);
|
||||||
ssize_t write (Data& io, const char_t* buf, size_t len);
|
hawk_ooi_t write (Data& io, const hawk_ooch_t* buf, hawk_oow_t len);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
const char_t* name;
|
const hawk_ooch_t* name;
|
||||||
hawk_oocs_t dir;
|
hawk_oocs_t dir;
|
||||||
hawk_cmgr_t* cmgr;
|
hawk_cmgr_t* cmgr;
|
||||||
};
|
};
|
||||||
@ -75,16 +75,16 @@ public:
|
|||||||
class HAWK_EXPORT SourceString: public Source
|
class HAWK_EXPORT SourceString: public Source
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
SourceString (const char_t* str): str (str) {}
|
SourceString (const hawk_ooch_t* str): str (str) {}
|
||||||
|
|
||||||
int open (Data& io);
|
int open (Data& io);
|
||||||
int close (Data& io);
|
int close (Data& io);
|
||||||
ssize_t read (Data& io, char_t* buf, size_t len);
|
hawk_ooi_t read (Data& io, hawk_ooch_t* buf, hawk_oow_t len);
|
||||||
ssize_t write (Data& io, const char_t* buf, size_t len);
|
hawk_ooi_t write (Data& io, const hawk_ooch_t* buf, hawk_oow_t len);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
const char_t* str;
|
const hawk_ooch_t* str;
|
||||||
const char_t* ptr;
|
const hawk_ooch_t* ptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
StdHawk (Mmgr* mmgr = HAWK_NULL): Hawk(mmgr), stdmod_up(false), console_cmgr(HAWK_NULL)
|
StdHawk (Mmgr* mmgr = HAWK_NULL): Hawk(mmgr), stdmod_up(false), console_cmgr(HAWK_NULL)
|
||||||
@ -110,8 +110,8 @@ public:
|
|||||||
|
|
||||||
/// The addConsoleOutput() function adds a file to form an
|
/// The addConsoleOutput() function adds a file to form an
|
||||||
/// output console stream.
|
/// output console stream.
|
||||||
int addConsoleOutput (const char_t* arg, size_t len);
|
int addConsoleOutput (const hawk_ooch_t* arg, hawk_oow_t len);
|
||||||
int addConsoleOutput (const char_t* arg);
|
int addConsoleOutput (const hawk_ooch_t* arg);
|
||||||
|
|
||||||
void clearConsoleOutputs ();
|
void clearConsoleOutputs ();
|
||||||
|
|
||||||
@ -122,39 +122,39 @@ protected:
|
|||||||
int __build_environ (Run* run, void* envptr);
|
int __build_environ (Run* run, void* envptr);
|
||||||
|
|
||||||
// intrinsic functions
|
// intrinsic functions
|
||||||
hawk_cmgr_t* getiocmgr (const char_t* ioname);
|
hawk_cmgr_t* getiocmgr (const hawk_ooch_t* ioname);
|
||||||
|
|
||||||
int setioattr (Run& run, Value& ret, Value* args, size_t nargs, const char_t* name, size_t len);
|
int setioattr (Run& run, Value& ret, Value* args, hawk_oow_t nargs, const hawk_ooch_t* name, hawk_oow_t len);
|
||||||
int getioattr (Run& run, Value& ret, Value* args, size_t nargs, const char_t* name, size_t len);
|
int getioattr (Run& run, Value& ret, Value* args, hawk_oow_t nargs, const hawk_ooch_t* name, hawk_oow_t len);
|
||||||
|
|
||||||
// pipe io handlers
|
// pipe io handlers
|
||||||
int openPipe (Pipe& io);
|
int openPipe (Pipe& io);
|
||||||
int closePipe (Pipe& io);
|
int closePipe (Pipe& io);
|
||||||
ssize_t readPipe (Pipe& io, char_t* buf, size_t len);
|
hawk_ooi_t readPipe (Pipe& io, hawk_ooch_t* buf, hawk_oow_t len);
|
||||||
ssize_t writePipe (Pipe& io, const char_t* buf, size_t len);
|
hawk_ooi_t writePipe (Pipe& io, const hawk_ooch_t* buf, hawk_oow_t len);
|
||||||
ssize_t writePipeBytes (Pipe& io, const hawk_bch_t* buf, size_t len);
|
hawk_ooi_t writePipeBytes (Pipe& io, const hawk_bch_t* buf, hawk_oow_t len);
|
||||||
int flushPipe (Pipe& io);
|
int flushPipe (Pipe& io);
|
||||||
|
|
||||||
// file io handlers
|
// file io handlers
|
||||||
int openFile (File& io);
|
int openFile (File& io);
|
||||||
int closeFile (File& io);
|
int closeFile (File& io);
|
||||||
ssize_t readFile (File& io, char_t* buf, size_t len);
|
hawk_ooi_t readFile (File& io, hawk_ooch_t* buf, hawk_oow_t len);
|
||||||
ssize_t writeFile (File& io, const char_t* buf, size_t len);
|
hawk_ooi_t writeFile (File& io, const hawk_ooch_t* buf, hawk_oow_t len);
|
||||||
ssize_t writeFileBytes (File& io, const hawk_bch_t* buf, size_t len);
|
hawk_ooi_t writeFileBytes (File& io, const hawk_bch_t* buf, hawk_oow_t len);
|
||||||
int flushFile (File& io);
|
int flushFile (File& io);
|
||||||
|
|
||||||
// console io handlers
|
// console io handlers
|
||||||
int openConsole (Console& io);
|
int openConsole (Console& io);
|
||||||
int closeConsole (Console& io);
|
int closeConsole (Console& io);
|
||||||
ssize_t readConsole (Console& io, char_t* buf, size_t len);
|
hawk_ooi_t readConsole (Console& io, hawk_ooch_t* buf, hawk_oow_t len);
|
||||||
ssize_t writeConsole (Console& io, const char_t* buf, size_t len);
|
hawk_ooi_t writeConsole (Console& io, const hawk_ooch_t* buf, hawk_oow_t len);
|
||||||
ssize_t writeConsoleBytes (Console& io, const hawk_bch_t* buf, size_t len);
|
hawk_ooi_t writeConsoleBytes (Console& io, const hawk_bch_t* buf, hawk_oow_t len);
|
||||||
int flushConsole (Console& io);
|
int flushConsole (Console& io);
|
||||||
int nextConsole (Console& io);
|
int nextConsole (Console& io);
|
||||||
|
|
||||||
// primitive handlers
|
// primitive handlers
|
||||||
void* allocMem (size_t n);
|
void* allocMem (hawk_oow_t n);
|
||||||
void* reallocMem (void* ptr, size_t n);
|
void* reallocMem (void* ptr, hawk_oow_t n);
|
||||||
void freeMem (void* ptr);
|
void freeMem (void* ptr);
|
||||||
|
|
||||||
flt_t pow (flt_t x, flt_t y);
|
flt_t pow (flt_t x, flt_t y);
|
||||||
@ -162,7 +162,7 @@ protected:
|
|||||||
|
|
||||||
void* modopen (const mod_spec_t* spec);
|
void* modopen (const mod_spec_t* spec);
|
||||||
void modclose (void* handle);
|
void modclose (void* handle);
|
||||||
void* modsym (void* handle, const char_t* name);
|
void* modsym (void* handle, const hawk_ooch_t* name);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
hawk_htb_t cmgrtab;
|
hawk_htb_t cmgrtab;
|
||||||
@ -177,25 +177,25 @@ protected:
|
|||||||
int gbl_environ;
|
int gbl_environ;
|
||||||
|
|
||||||
// standard input console - reuse runarg
|
// standard input console - reuse runarg
|
||||||
size_t runarg_index;
|
hawk_oow_t runarg_index;
|
||||||
size_t runarg_count;
|
hawk_oow_t runarg_count;
|
||||||
|
|
||||||
// standard output console
|
// standard output console
|
||||||
xstrs_t ofile;
|
xstrs_t ofile;
|
||||||
size_t ofile_index;
|
hawk_oow_t ofile_index;
|
||||||
size_t ofile_count;
|
hawk_oow_t ofile_count;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
struct ioattr_t
|
struct ioattr_t
|
||||||
{
|
{
|
||||||
hawk_cmgr_t* cmgr;
|
hawk_cmgr_t* cmgr;
|
||||||
char_t cmgr_name[64]; // i assume that the cmgr name never exceeds this length.
|
hawk_ooch_t cmgr_name[64]; // i assume that the cmgr name never exceeds this length.
|
||||||
hawk_ntime_t tmout[4];
|
hawk_ntime_t tmout[4];
|
||||||
|
|
||||||
ioattr_t (): cmgr (HAWK_NULL)
|
ioattr_t (): cmgr (HAWK_NULL)
|
||||||
{
|
{
|
||||||
this->cmgr_name[0] = HAWK_T('\0');
|
this->cmgr_name[0] = HAWK_T('\0');
|
||||||
for (size_t i = 0; i < HAWK_COUNTOF(this->tmout); i++)
|
for (hawk_oow_t i = 0; i < HAWK_COUNTOF(this->tmout); i++)
|
||||||
{
|
{
|
||||||
this->tmout[i].sec = -999;
|
this->tmout[i].sec = -999;
|
||||||
this->tmout[i].nsec = 0;
|
this->tmout[i].nsec = 0;
|
||||||
@ -206,8 +206,8 @@ public:
|
|||||||
static ioattr_t default_ioattr;
|
static ioattr_t default_ioattr;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
ioattr_t* get_ioattr (const char_t* ptr, size_t len);
|
ioattr_t* get_ioattr (const hawk_ooch_t* ptr, hawk_oow_t len);
|
||||||
ioattr_t* find_or_make_ioattr (const char_t* ptr, size_t len);
|
ioattr_t* find_or_make_ioattr (const hawk_ooch_t* ptr, hawk_oow_t len);
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user