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; \
}
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
||||||||||||||||||||||||
|
|
|
||||||||||||
|
|
|
|
|
|
||||||||||||||||||||||||
|
|
|
||||||||||||||||
|
|
1.4.5