added QSE_AWK_STRIPSTRSPC

This commit is contained in:
2009-07-17 06:43:47 +00:00
parent 6b31c85427
commit 602a14a54e
6 changed files with 68 additions and 47 deletions

View File

@ -37,7 +37,7 @@ static int run_awk (QSE::StdAwk& awk)
"function pa (x) {\n"
" reset ret;\n"
" for (i in x) { print i, \"=>\", x[i]; ret += x[i]; }\n"
" return ret + DAMN++;\n"
" return ret + FOO++;\n"
"}\n"
"function pb (x) {\n"
" reset ret;\n"
@ -46,43 +46,43 @@ static int run_awk (QSE::StdAwk& awk)
"}"
));
// add a global variable 'DAMN'
int damn = awk.addGlobal (QSE_T("DAMN"));
if (damn <= -1) return -1;
// add a global variable 'FOO'
int foo = awk.addGlobal (QSE_T("FOO"));
if (foo <= -1) return -1;
// parse the script and perform no deparsing
run = awk.parse (in, QSE::StdAwk::Source::NONE);
if (run == QSE_NULL) return -1;
// set 'FOO' to 100000
QSE::StdAwk::Value foov (run);
if (foov.setInt (100000) <= -1) return -1;
if (awk.setGlobal (foo, foov) <= -1) return -1;
// prepare an indexed parameter
QSE::StdAwk::Value arg[1];
for (int i = 1; i <= 5; i++)
{
if (arg[0].setIndexedInt (
run, QSE::StdAwk::Value::IntIndex(i), i*20) <= -1) return -1;
if (arg[0].setIndexedInt (run,
QSE::StdAwk::Value::IntIndex(i), i*20) <= -1) return -1;
}
// set 'DAMN' to 100000
QSE::StdAwk::Value damnv (run);
if (damnv.setInt (100000) <= -1) return -1;
if (awk.setGlobal (damn, damnv) <= -1) return -1;
// prepare a variable to hold the return value
QSE::StdAwk::Value r;
// call the 'pa' function
if (awk.call (QSE_T("pa"), &r, arg, QSE_COUNTOF(arg)) <= -1) return -1;
if (awk.call (QSE_T("pa"), &r, arg, 1) <= -1) return -1;
// output the result in various types
qse_printf (QSE_T("RESULT: (int) [%lld]\n"), (long long)r.toInt());
qse_printf (QSE_T(" (real) [%Lf]\n"), (long double)r.toReal());
qse_printf (QSE_T(" (real)[%Lf]\n"), (long double)r.toReal());
qse_printf (QSE_T(" (str) [%s]\n"), r.toStr(QSE_NULL));
// get the value of 'DAMN'
if (awk.getGlobal (damn, damnv) <= -1) return -1;
qse_printf (QSE_T("DAMN: (int) [%lld]\n"), (long long)damnv.toInt());
qse_printf (QSE_T(" (real) [%Lf]\n"), (long double)damnv.toReal());
qse_printf (QSE_T(" (str) [%s]\n"), damnv.toStr(QSE_NULL));
// get the value of 'FOO'
if (awk.getGlobal (foo, foov) <= -1) return -1;
qse_printf (QSE_T("FOO: (int) [%lld]\n"), (long long)foov.toInt());
qse_printf (QSE_T(" (real)[%Lf]\n"), (long double)foov.toReal());
qse_printf (QSE_T(" (str) [%s]\n"), foov.toStr(QSE_NULL));
// call the 'pb' function
if (awk.call (QSE_T("pb"), &r, arg, QSE_COUNTOF(arg)) <= -1) return -1;