- deleted unnecessary callback functions - on_loop_enter() & on_loop_exit()

- modified qse_awk_rtx_loop() and Awk::loop() to return the return value
- deprecated the callback totally from the Awk class: may readd it in the future.
- added POC code to pass arguments by reference for intrinsic functions. POC ok. more works needed for full support. not enabled.
This commit is contained in:
2009-07-17 02:27:53 +00:00
parent f0f2db5e8a
commit 6b31c85427
11 changed files with 181 additions and 218 deletions

View File

@ -1,5 +1,5 @@
/*
* $Id: awk01.c 195 2009-06-10 13:18:25Z hyunghwan.chung $
* $Id: awk01.c 236 2009-07-16 08:27:53Z hyunghwan.chung $
*
Copyright 2006-2009 Chung, Hyung-Hwan.
@ -35,13 +35,14 @@ int main ()
{
qse_awk_t* awk = QSE_NULL;
qse_awk_rtx_t* rtx = QSE_NULL;
qse_awk_val_t* retv;
qse_awk_parsestd_in_t psin;
int ret;
awk = qse_awk_openstd (0);
if (awk == QSE_NULL)
{
qse_fprintf (QSE_STDERR, QSE_T("error: cannot open awk\n"));
qse_fprintf (QSE_STDERR, QSE_T("ERROR: cannot open awk\n"));
goto oops;
}
@ -49,11 +50,11 @@ int main ()
psin.u.cp = src;
ret = qse_awk_parsestd (awk, &psin, QSE_NULL);
if (ret == -1)
if (ret <= -1)
{
qse_fprintf (QSE_STDERR, QSE_T("error: %s\n"),
qse_fprintf (QSE_STDERR, QSE_T("ERROR: %s\n"),
qse_awk_geterrmsg(awk));
goto oops;
ret = -1; goto oops;
}
rtx = qse_awk_rtx_openstd (
@ -65,22 +66,25 @@ int main ()
);
if (rtx == QSE_NULL)
{
qse_fprintf (QSE_STDERR, QSE_T("error: %s\n"),
qse_fprintf (QSE_STDERR, QSE_T("ERROR: %s\n"),
qse_awk_geterrmsg(awk));
goto oops;
ret = -1; goto oops;
}
ret = qse_awk_rtx_loop (rtx);
if (ret == -1)
retv = qse_awk_rtx_loop (rtx);
if (retv == QSE_NULL)
{
qse_fprintf (QSE_STDERR, QSE_T("error: %s\n"),
qse_fprintf (QSE_STDERR, QSE_T("ERROR: %s\n"),
qse_awk_rtx_geterrmsg(rtx));
goto oops;
ret = -1; goto oops;
}
qse_awk_rtx_refdownval (rtx, retv);
ret = 0;
oops:
if (rtx != QSE_NULL) qse_awk_rtx_close (rtx);
if (awk != QSE_NULL) qse_awk_close (awk);
return -1;
return ret;
}