This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
yap-6.3/C/cut_c.c

38 lines
729 B
C

#ifdef CUT_C
#include "Yap.h"
#include "cut_c.h"
#include <stdio.h>
void cut_c_initialize(void){
CACHE_REGS
Yap_REGS.CUT_C_TOP=(cut_c_str_ptr)LOCAL_LocalBase;
}
/*Removes a choice_point from the stack*/
void cut_c_pop(void){
CACHE_REGS
cut_c_str_ptr to_delete = NULL;
if (((CELL *)Yap_REGS.CUT_C_TOP) == ((CELL *)LOCAL_LocalBase))
{
return;
}
else
{ /* removes the top element
from the stack */
to_delete = Yap_REGS.CUT_C_TOP;
Yap_REGS.CUT_C_TOP = to_delete->before;
return;
}
}
/*Insert a choice_point in the stack*/
void cut_c_push(cut_c_str_ptr new_top){
CACHE_REGS
new_top->before = Yap_REGS.CUT_C_TOP;
Yap_REGS.CUT_C_TOP=new_top;
return;
}
#endif /*CUT_C*/