Low-level support for Attributed

Variables.

Implementation of Attribute Declarations

Functions:

1. void Yap_wakeup_goal(Term tg USES_REGS):

1. void AddToQueue(attvar_record *attv USES_REGS):

1. void AddCompareToQueue(Term Cmp, Term t1, Term t2 USES_REGS):

1. void AddUnifToQueue(Term t1, Term t2 USES_REGS):

1. static attvar_record * BuildNewAttVar(USES_REGS1):

1. static attvar_record * SetNewAttVar(Term t USES_REGS):

1. static int CopyAttVar(CELL orig, void tvp, CELL *res USES_REGS):

1. static Term AttVarToTerm(CELL *orig):

1. static int IsEmptyWakeUp(Term atts):

1. void Yap_MkEmptyWakeUp(Atom mod):

1. static int TermToAttVar(Term attvar, Term to USES_REGS):

1. static void WakeAttVar(CELL *pt1, CELL reg2 USES_REGS):

1. void Yap_WakeUp(CELL *pt0):

1. static void mark_attvar(CELL *orig):

1. static Term BuildAttTerm(Functor mfun, UInt ar USES_REGS):

1. static Term SearchAttsForModule(Term start, Functor mfun):

1. static Term SearchAttsForModuleFunctorName(Term start, Atom mname):

1. static Term SearchAttsForModuleName(Term start, Atom mname):

1. static void AddNewModule(attvar_record *attv, Term t, int new, int do_it USES_REGS): : SICStus add new set of constraints.

1. static void DelAllAtts(attvar_record *attv USES_REGS):

1. static void DelAtts(attvar_record *attv, Term oatt USES_REGS):

1. static void PutAtt(Int pos, Term atts, Term att USES_REGS):

1. static Int BindAttVar(attvar_record *attv USES_REGS):

1. static Int UnBindAttVar(attvar_record *attv):

1. static Term GetAllAtts(attvar_record *attv):

Typedef:

1. typedef struct cp_frame copy_frame: