Partially fixed the critical bug mentioned in the previous revision.

- runcbs->on_enter() is introduced and called when all 
  globals variables are ready.
- changed runcbs->on_start() to return an integer
- run_main() is still under reconstruction. currently it 
  only supports the BEGIN/pattern action/END block exection.
This commit is contained in:
2009-01-23 04:40:57 +00:00
parent 5686bb8ac7
commit 8150f4843d
10 changed files with 543 additions and 145 deletions

View File

@ -337,20 +337,8 @@ qse_ccls_t* qse_awk_getccls (qse_awk_t* awk)
void qse_awk_setccls (qse_awk_t* awk, qse_ccls_t* ccls)
{
QSE_ASSERT (ccls->is_upper != QSE_NULL);
QSE_ASSERT (ccls->is_lower != QSE_NULL);
QSE_ASSERT (ccls->is_alpha != QSE_NULL);
QSE_ASSERT (ccls->is_digit != QSE_NULL);
QSE_ASSERT (ccls->is_xdigit != QSE_NULL);
QSE_ASSERT (ccls->is_alnum != QSE_NULL);
QSE_ASSERT (ccls->is_space != QSE_NULL);
QSE_ASSERT (ccls->is_print != QSE_NULL);
QSE_ASSERT (ccls->is_graph != QSE_NULL);
QSE_ASSERT (ccls->is_cntrl != QSE_NULL);
QSE_ASSERT (ccls->is_punct != QSE_NULL);
QSE_ASSERT (ccls->to_upper != QSE_NULL);
QSE_ASSERT (ccls->to_lower != QSE_NULL);
QSE_ASSERT (ccls->is != QSE_NULL);
QSE_ASSERT (ccls->to != QSE_NULL);
awk->ccls = ccls;
}
@ -363,7 +351,6 @@ void qse_awk_setprmfns (qse_awk_t* awk, qse_awk_prmfns_t* prmfns)
{
QSE_ASSERT (prmfns->pow != QSE_NULL);
QSE_ASSERT (prmfns->sprintf != QSE_NULL);
QSE_ASSERT (prmfns->dprintf != QSE_NULL);
awk->prmfns = prmfns;
}