enhanced Awk::Awk to utilize Awk::Value
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: StdAwk.cpp 226 2009-07-09 12:46:14Z hyunghwan.chung $
|
||||
* $Id: StdAwk.cpp 229 2009-07-12 13:06:01Z hyunghwan.chung $
|
||||
*
|
||||
Copyright 2006-2009 Chung, Hyung-Hwan.
|
||||
|
||||
@ -81,10 +81,10 @@ void StdAwk::close ()
|
||||
Awk::close ();
|
||||
}
|
||||
|
||||
int StdAwk::sin (Run& run, Return& ret, const Argument* args, size_t nargs,
|
||||
int StdAwk::sin (Run& run, Value& ret, const Value* args, size_t nargs,
|
||||
const char_t* name, size_t len)
|
||||
{
|
||||
return ret.set (
|
||||
return ret.setReal (
|
||||
#if defined(HAVE_SINL)
|
||||
(real_t)::sinl(args[0].toReal())
|
||||
#elif defined(HAVE_SIN)
|
||||
@ -97,10 +97,10 @@ int StdAwk::sin (Run& run, Return& ret, const Argument* args, size_t nargs,
|
||||
);
|
||||
}
|
||||
|
||||
int StdAwk::cos (Run& run, Return& ret, const Argument* args, size_t nargs,
|
||||
int StdAwk::cos (Run& run, Value& ret, const Value* args, size_t nargs,
|
||||
const char_t* name, size_t len)
|
||||
{
|
||||
return ret.set (
|
||||
return ret.setReal (
|
||||
#if defined(HAVE_COSL)
|
||||
(real_t)::cosl(args[0].toReal())
|
||||
#elif defined(HAVE_COS)
|
||||
@ -113,10 +113,10 @@ int StdAwk::cos (Run& run, Return& ret, const Argument* args, size_t nargs,
|
||||
);
|
||||
}
|
||||
|
||||
int StdAwk::tan (Run& run, Return& ret, const Argument* args, size_t nargs,
|
||||
int StdAwk::tan (Run& run, Value& ret, const Value* args, size_t nargs,
|
||||
const char_t* name, size_t len)
|
||||
{
|
||||
return ret.set (
|
||||
return ret.setReal (
|
||||
#if defined(HAVE_TANL)
|
||||
(real_t)::tanl(args[0].toReal())
|
||||
#elif defined(HAVE_TAN)
|
||||
@ -129,10 +129,10 @@ int StdAwk::tan (Run& run, Return& ret, const Argument* args, size_t nargs,
|
||||
);
|
||||
}
|
||||
|
||||
int StdAwk::atan (Run& run, Return& ret, const Argument* args, size_t nargs,
|
||||
int StdAwk::atan (Run& run, Value& ret, const Value* args, size_t nargs,
|
||||
const char_t* name, size_t len)
|
||||
{
|
||||
return ret.set (
|
||||
return ret.setReal (
|
||||
#if defined(HAVE_ATANL)
|
||||
(real_t)::atanl(args[0].toReal())
|
||||
#elif defined(HAVE_ATAN)
|
||||
@ -145,10 +145,10 @@ int StdAwk::atan (Run& run, Return& ret, const Argument* args, size_t nargs,
|
||||
);
|
||||
}
|
||||
|
||||
int StdAwk::atan2 (Run& run, Return& ret, const Argument* args, size_t nargs,
|
||||
int StdAwk::atan2 (Run& run, Value& ret, const Value* args, size_t nargs,
|
||||
const char_t* name, size_t len)
|
||||
{
|
||||
return ret.set (
|
||||
return ret.setReal (
|
||||
#if defined(HAVE_ATAN2L)
|
||||
(real_t)::atan2l(args[0].toReal(), args[1].toReal())
|
||||
#elif defined(HAVE_ATAN2)
|
||||
@ -161,10 +161,10 @@ int StdAwk::atan2 (Run& run, Return& ret, const Argument* args, size_t nargs,
|
||||
);
|
||||
}
|
||||
|
||||
int StdAwk::log (Run& run, Return& ret, const Argument* args, size_t nargs,
|
||||
int StdAwk::log (Run& run, Value& ret, const Value* args, size_t nargs,
|
||||
const char_t* name, size_t len)
|
||||
{
|
||||
return ret.set (
|
||||
return ret.setReal (
|
||||
#if defined(HAVE_LOGL)
|
||||
(real_t)::logl(args[0].toReal())
|
||||
#elif defined(HAVE_LOG)
|
||||
@ -177,10 +177,10 @@ int StdAwk::log (Run& run, Return& ret, const Argument* args, size_t nargs,
|
||||
);
|
||||
}
|
||||
|
||||
int StdAwk::exp (Run& run, Return& ret, const Argument* args, size_t nargs,
|
||||
int StdAwk::exp (Run& run, Value& ret, const Value* args, size_t nargs,
|
||||
const char_t* name, size_t len)
|
||||
{
|
||||
return ret.set (
|
||||
return ret.setReal (
|
||||
#if defined(HAVE_EXPL)
|
||||
(real_t)::expl(args[0].toReal())
|
||||
#elif defined(HAVE_EXP)
|
||||
@ -193,10 +193,10 @@ int StdAwk::exp (Run& run, Return& ret, const Argument* args, size_t nargs,
|
||||
);
|
||||
}
|
||||
|
||||
int StdAwk::sqrt (Run& run, Return& ret, const Argument* args, size_t nargs,
|
||||
int StdAwk::sqrt (Run& run, Value& ret, const Value* args, size_t nargs,
|
||||
const char_t* name, size_t len)
|
||||
{
|
||||
return ret.set (
|
||||
return ret.setReal (
|
||||
#if defined(HAVE_SQRTL)
|
||||
(real_t)::sqrtl(args[0].toReal())
|
||||
#elif defined(HAVE_SQRT)
|
||||
@ -209,19 +209,19 @@ int StdAwk::sqrt (Run& run, Return& ret, const Argument* args, size_t nargs,
|
||||
);
|
||||
}
|
||||
|
||||
int StdAwk::fnint (Run& run, Return& ret, const Argument* args, size_t nargs,
|
||||
int StdAwk::fnint (Run& run, Value& ret, const Value* args, size_t nargs,
|
||||
const char_t* name, size_t len)
|
||||
{
|
||||
return ret.set (args[0].toInt());
|
||||
return ret.setInt (args[0].toInt());
|
||||
}
|
||||
|
||||
int StdAwk::rand (Run& run, Return& ret, const Argument* args, size_t nargs,
|
||||
int StdAwk::rand (Run& run, Value& ret, const Value* args, size_t nargs,
|
||||
const char_t* name, size_t len)
|
||||
{
|
||||
return ret.set ((real_t)(::rand() % RAND_MAX) / RAND_MAX);
|
||||
return ret.setReal ((real_t)(::rand() % RAND_MAX) / RAND_MAX);
|
||||
}
|
||||
|
||||
int StdAwk::srand (Run& run, Return& ret, const Argument* args, size_t nargs,
|
||||
int StdAwk::srand (Run& run, Value& ret, const Value* args, size_t nargs,
|
||||
const char_t* name, size_t len)
|
||||
{
|
||||
unsigned int prevSeed = this->seed;
|
||||
@ -240,19 +240,19 @@ int StdAwk::srand (Run& run, Return& ret, const Argument* args, size_t nargs,
|
||||
}
|
||||
|
||||
::srand (this->seed);
|
||||
return ret.set ((long_t)prevSeed);
|
||||
return ret.setInt ((long_t)prevSeed);
|
||||
}
|
||||
|
||||
int StdAwk::system (Run& run, Return& ret, const Argument* args, size_t nargs,
|
||||
int StdAwk::system (Run& run, Value& ret, const Value* args, size_t nargs,
|
||||
const char_t* name, size_t len)
|
||||
{
|
||||
size_t l;
|
||||
const char_t* ptr = args[0].toStr(&l);
|
||||
|
||||
#ifdef _WIN32
|
||||
return ret.set ((long_t)::_tsystem(ptr));
|
||||
return ret.setInt ((long_t)::_tsystem(ptr));
|
||||
#elif defined(QSE_CHAR_IS_MCHAR)
|
||||
return ret.set ((long_t)::system(ptr));
|
||||
return ret.setInt ((long_t)::system(ptr));
|
||||
#else
|
||||
char* mbs = (char*) qse_awk_alloc ((awk_t*)(Awk*)run, l*5+1);
|
||||
if (mbs == QSE_NULL) return -1;
|
||||
@ -271,7 +271,7 @@ int StdAwk::system (Run& run, Return& ret, const Argument* args, size_t nargs,
|
||||
}
|
||||
|
||||
mbs[mbl] = '\0';
|
||||
int n = ret.set ((long_t)::system(mbs));
|
||||
int n = ret.setInt ((long_t)::system(mbs));
|
||||
|
||||
qse_awk_free ((awk_t*)(Awk*)run, mbs);
|
||||
return n;
|
||||
|
Reference in New Issue
Block a user