home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / lifeos2.zip / LIFE-1.02 / SOURCE / LEFUN.H < prev    next >
C/C++ Source or Header  |  1996-06-04  |  2KB  |  70 lines

  1. /* Copyright 1991 Digital Equipment Corporation.
  2. ** All Rights Reserved.
  3. *****************************************************************/
  4. /*     $Id: lefun.h,v 1.2 1994/12/08 23:26:31 duchier Exp $     */
  5.  
  6. extern long match_aim();
  7. extern long eval_aim();
  8.  
  9. extern void residuate_double();
  10. extern void residuate();
  11. extern void residuate2();
  12. extern void residuate3();
  13. extern void curry();
  14. extern long residuateGoalOnVar();
  15.  
  16. extern long do_residuation(); /* For C built-ins */
  17. extern long do_residuation_user(); /* For LIFE-defined routines */
  18. extern void do_currying();
  19.  
  20. extern void release_resid();
  21. extern void release_resid_notrail();
  22.  
  23. #define deref(P)         {deref_ptr(P);if (deref_eval(P)) return TRUE;}
  24. #define deref_void(P)    {deref_ptr(P);deref_eval(P);}
  25. #define deref_rec(P)     {deref_ptr(P);if (deref_rec_eval(P)) return TRUE;}
  26. #define deref_args(P,S)  {deref_ptr(P);if (deref_args_eval(P,S)) return TRUE;}
  27. #define deref_args_void(P)  {deref_ptr(P);deref_args_eval(P);}
  28.  
  29. /* Checking out functions */
  30. extern void check_func();
  31. extern long deref_eval();
  32. extern long deref_rec_eval();
  33. extern long deref_args_eval();
  34. extern void deref2_eval();
  35. extern void deref2_rec_eval();
  36.  
  37. /* External check out (i_ routines do not check out functions) */
  38. extern long f_check_out();
  39. extern long i_check_out();
  40. extern long i_eval_args();
  41.  
  42. /* Set constants for deref_args */
  43. #define set_empty    0
  44. #define set_1        1
  45. #define set_2        2
  46. #define set_1_2      3
  47. #define set_1_2_3    7
  48. #define set_1_2_3_4 15
  49.  
  50. extern ptr_goal resid_aim;
  51. extern ptr_resid_list resid_vars; /* 21.9 */
  52. extern ptr_goal resid_limit;
  53. extern long curried;
  54. extern long can_curry;
  55.  
  56. /* Residuation block state handling */
  57. extern void save_resid();
  58. extern void restore_resid();
  59.  
  60. typedef struct wl_resid_block *ptr_resid_block;
  61.  
  62. typedef struct wl_resid_block {
  63.    long cc_cr; /* 11.9 */
  64.    ptr_goal ra;
  65.    /* long cc; 11.9 */
  66.    /* long cr; 11.9 */
  67.    ptr_resid_list rv; /* 21.9 */
  68.    ptr_psi_term md;
  69. } resid_block;
  70.