changed Awk::parse() to accept a reference type instead of a pointer type
This commit is contained in:
@ -52,7 +52,7 @@ static int run_awk (QSE::StdAwk& awk)
|
||||
QSE::StdAwk::SourceFile out (QSE_T("awk05.out"));
|
||||
|
||||
// parse the script string and deparse it to awk05.out.
|
||||
if (awk.parse (&in, &out) == QSE_NULL) return -1;
|
||||
if (awk.parse (in, out) == QSE_NULL) return -1;
|
||||
|
||||
// execute the BEGIN, pattern-action, END blocks.
|
||||
return awk.loop ();
|
||||
|
@ -43,7 +43,7 @@ static int run_awk (QSE::StdAwk& awk)
|
||||
QSE::StdAwk::SourceFile out (QSE_T("awk06.out"));
|
||||
|
||||
// parse the script and deparse it to awk06.out
|
||||
run = awk.parse (&in, &out);
|
||||
run = awk.parse (in, out);
|
||||
if (run == QSE_NULL) return -1;
|
||||
|
||||
QSE::StdAwk::Value arg[2];
|
||||
@ -52,16 +52,16 @@ static int run_awk (QSE::StdAwk& awk)
|
||||
|
||||
// ret = add (-20, 51)
|
||||
QSE::StdAwk::Value ret;
|
||||
if (awk.call (QSE_T("add"), &ret, arg, 2) <= -1) return -1;
|
||||
if (awk.call (QSE_T("add"), &ret, arg, QSE_COUNTOF(arg)) <= -1) return -1;
|
||||
|
||||
// ret = mul (ret, 51);
|
||||
arg[0] = ret;
|
||||
if (awk.call (QSE_T("mul"), &ret, arg, 2) <= -1) return -1;
|
||||
if (awk.call (QSE_T("mul"), &ret, arg, QSE_COUNTOF(arg)) <= -1) return -1;
|
||||
|
||||
// ret = div (ret, 2);
|
||||
arg[0] = ret;
|
||||
if (arg[1].setReal (run, 2) <= -1) return -1;
|
||||
if (awk.call (QSE_T("div"), &ret, arg, 2) <= -1) return -1;
|
||||
if (awk.call (QSE_T("div"), &ret, arg, QSE_COUNTOF(arg)) <= -1) return -1;
|
||||
|
||||
// output the result in various types
|
||||
qse_printf (QSE_T("RESULT: (int) [%lld]\n"), (long long)ret.toInt());
|
||||
|
@ -33,7 +33,7 @@ static int run_awk (QSE::StdAwk& awk)
|
||||
{
|
||||
QSE::StdAwk::Run* run;
|
||||
|
||||
const qse_char_t* script = QSE_T(
|
||||
QSE::StdAwk::SourceString in (QSE_T(
|
||||
"function pa (x) {\n"
|
||||
" reset ret;\n"
|
||||
" for (i in x) { print i, \"=>\", x[i]; ret += x[i]; }\n"
|
||||
@ -44,15 +44,13 @@ static int run_awk (QSE::StdAwk& awk)
|
||||
" for (i in x) { ret[-i] = -x[i]; }\n"
|
||||
" return ret;\n"
|
||||
"}"
|
||||
);
|
||||
));
|
||||
|
||||
QSE::StdAwk::SourceString in (script);
|
||||
QSE::StdAwk::SourceFile out (QSE_T("awk07.out"));
|
||||
|
||||
// parse the script and deparse it to awk07.out
|
||||
run = awk.parse (&in, &out);
|
||||
// parse the script and perform no deparsing
|
||||
run = awk.parse (in, QSE::StdAwk::Source::NONE);
|
||||
if (run == QSE_NULL) return -1;
|
||||
|
||||
// prepare an indexed parameter
|
||||
QSE::StdAwk::Value arg[1];
|
||||
|
||||
for (int i = 1; i <= 5; i++)
|
||||
|
Reference in New Issue
Block a user