support for executing c code when a cut occurs

git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1463 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
tiagosoares
2005-11-18 18:52:41 +00:00
parent d62ec41632
commit 83b5a160f8
17 changed files with 531 additions and 19 deletions

34
C/cut_c.c Executable file
View File

@@ -0,0 +1,34 @@
#ifdef CUT_C
#include "Yap.h"
#include "cut_c.h"
#include <stdio.h>
void cut_c_initialize(void){
Yap_regp->CUT_C_TOP=(cut_c_str_ptr)Yap_LocalBase;
}
/*Removes a choice_point from the stack*/
void cut_c_pop(void){
cut_c_str_ptr to_delete = NULL;
if (((int)Yap_regp->CUT_C_TOP) == ((int)Yap_LocalBase))
{
return;
}
else
{ /* removes the top element
from the stack */
to_delete = Yap_regp->CUT_C_TOP;
Yap_regp->CUT_C_TOP = to_delete->before;
return;
}
}
/*Insert a choice_point in the stack*/
void cut_c_push(cut_c_str_ptr new_top){
new_top->before = Yap_regp->CUT_C_TOP;
Yap_regp->CUT_C_TOP=new_top;
return;
}
#endif /*CUT_C*/