_EXP_TYPE_ _env_make_NAM_(const _STR_TYPE_ str) { _SIZ_TYPE_ idx; _EXP_TYPE_ nam; for (idx = 1; idx < DCT_top; idx++) { nam = _ag_get_TAB_EXP_(_NAMES_, idx); if (!strcmp(str, _ag_get_TXT_(nam))) return nam; } if (DCT_top > DCT_siz) _error_(_DCT_ERROR_); nam = _ag_make_TXT_(str); _ag_set_TAB_EXP_(_NAMES_, DCT_top++, nam); return nam; }
_RES_TYPE_ _PICO_ACCEPT_(const _SES_TYPE_ ses, const _STR_TYPE_ str) { if (STATUS != ENABLED) return _CTL_ERROR_; for (SES_IDX = 0 ; SES_IDX < _MAX_SES_ ; SES_IDX++) if (SES_TAB[SES_IDX].ses == ses) { if (SES_TAB[SES_IDX].res != _DO_ACCEPT_) return _CTL_ERROR_; CTX_RESTORE(SES_IDX); _stk_claim_(); _mem_claim_STR_(str); _stk_push_EXP_(_ag_make_TXT_(str)); _ESC_ = SES_TAB[SES_IDX].esc; if (setjmp(SES_TAB[SES_IDX].exi) == 0) _stk_loop_(); CTX_CAPTURE(SES_IDX); return SES_TAB[SES_IDX].res; } return _SNA_ERROR_; }