C:/Users/Dennis/src/lang/Life_start/Life/life-1.02/source/lefun.h

Go to the documentation of this file.
00001 /* Copyright 1991 Digital Equipment Corporation.
00002 ** All Rights Reserved.
00003 *****************************************************************/
00004 /*      $Id: lefun.h,v 1.2 1994/12/08 23:26:31 duchier Exp $     */
00005 
00006 extern long match_aim();
00007 extern long eval_aim();
00008 
00009 extern void residuate_double();
00010 extern void residuate();
00011 extern void residuate2();
00012 extern void residuate3();
00013 extern void curry();
00014 extern long residuateGoalOnVar();
00015 
00016 extern long do_residuation(); /* For C built-ins */
00017 extern long do_residuation_user(); /* For LIFE-defined routines */
00018 extern void do_currying();
00019 
00020 extern void release_resid();
00021 extern void release_resid_notrail();
00022 
00023 #define deref(P)         {deref_ptr(P);if (deref_eval(P)) return TRUE;}
00024 #define deref_void(P)    {deref_ptr(P);deref_eval(P);}
00025 #define deref_rec(P)     {deref_ptr(P);if (deref_rec_eval(P)) return TRUE;}
00026 #define deref_args(P,S)  {deref_ptr(P);if (deref_args_eval(P,S)) return TRUE;}
00027 #define deref_args_void(P)  {deref_ptr(P);deref_args_eval(P);}
00028 
00029 /* Checking out functions */
00030 extern void check_func();
00031 extern long deref_eval();
00032 extern long deref_rec_eval();
00033 extern long deref_args_eval();
00034 extern void deref2_eval();
00035 extern void deref2_rec_eval();
00036 
00037 /* External check out (i_ routines do not check out functions) */
00038 extern long f_check_out();
00039 extern long i_check_out();
00040 extern long i_eval_args();
00041 
00042 /* Set constants for deref_args */
00043 #define set_empty    0
00044 #define set_1        1
00045 #define set_2        2
00046 #define set_1_2      3
00047 #define set_1_2_3    7
00048 #define set_1_2_3_4 15
00049 
00050 extern ptr_goal resid_aim;
00051 extern ptr_resid_list resid_vars; /* 21.9 */
00052 extern ptr_goal resid_limit;
00053 extern long curried;
00054 extern long can_curry;
00055 
00056 /* Residuation block state handling */
00057 extern void save_resid();
00058 extern void restore_resid();
00059 
00060 typedef struct wl_resid_block *ptr_resid_block;
00061 
00062 typedef struct wl_resid_block {
00063    long cc_cr; /* 11.9 */
00064    ptr_goal ra;
00065    /* long cc; 11.9 */
00066    /* long cr; 11.9 */
00067    ptr_resid_list rv; /* 21.9 */
00068    ptr_psi_term md;
00069 } resid_block;

Generated on Sat Jan 26 08:48:06 2008 for WildLife by  doxygen 1.5.4