Defines | |
#define | table_pending_answer(OldAnswerContinuation,NewAnswerContinuation,NextAnswer,Consumer,Producer,AnswerTemplate,PreIdentificationOp,PostIdentificationOp) |
#define | TPA_NoOp |
#define | MoreAnswersAreAvailable(ConsSF, ProdSF) |
Functions | |
void | table_call_search (CTXTdeclc TabledCallInfo *, CallLookupResults *) |
BTNptr | table_answer_search (CTXTdeclc VariantSF, int, int, CPtr, xsbBool *) |
void | table_consume_answer (CTXTdeclc BTNptr, int, int, CPtr, TIFptr) |
ALNptr | table_identify_relevant_answers (CTXTdeclc SubProdSF, SubConsSF, CPtr) |
void | table_complete_entry (CTXTdeclc VariantSF) |
void | release_all_tabling_resources (CTXTdecl) |
VariantSF | NewProducerSF (CTXTdeclc BTNptr, TIFptr) |
|
Value: ( IsNonNULL(subg_ans_root_ptr(ProdSF)) && \ (TSTN_TimeStamp((TSTNptr)subg_ans_root_ptr(ProdSF)) > \ conssf_timestamp(ConsSF)) ) |
|
Value: { \ \ NewAnswerContinuation = ALN_Next(OldAnswerContinuation); \ \ if ( IsNULL(NewAnswerContinuation) && IsProperlySubsumed(Consumer) ) \ if ( MoreAnswersAreAvailable(Consumer,Producer) ) { \ /* printf("make ans list for :"); sfPrintGoal(CTXTdeclc stddbg, Consumer, FALSE); */ \ PreIdentificationOp; \ NewAnswerContinuation = \ table_identify_relevant_answers(CTXTc Producer, Consumer, \ AnswerTemplate); \ PostIdentificationOp; \ } \ if ( IsNonNULL(NewAnswerContinuation) ) \ NextAnswer = ALN_Answer(NewAnswerContinuation); \ else \ NextAnswer = NULL; \ } |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|