00001 /* File: table_status_defs.h 00002 ** Author(s): Ernie Johnson 00003 ** Contact: xsb-contact@cs.sunysb.edu 00004 ** 00005 ** Copyright (C) The Research Foundation of SUNY, 1986, 1993-1998 00006 ** 00007 ** XSB is free software; you can redistribute it and/or modify it under the 00008 ** terms of the GNU Library General Public License as published by the Free 00009 ** Software Foundation; either version 2 of the License, or (at your option) 00010 ** any later version. 00011 ** 00012 ** XSB is distributed in the hope that it will be useful, but WITHOUT ANY 00013 ** WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 00014 ** FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for 00015 ** more details. 00016 ** 00017 ** You should have received a copy of the GNU Library General Public License 00018 ** along with XSB; if not, write to the Free Software Foundation, 00019 ** Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00020 ** 00021 ** $Id: table_status_defs.h,v 1.3 2006/03/17 18:17:59 tswift Exp $ 00022 ** 00023 */ 00024 00025 00026 /* 00027 * Builtin codes indicating the type of tabled evaluation used for 00028 * a given predicate. These values are shared with Prolog builtins 00029 * which allow users to select and change the evaluation method. 00030 */ 00031 00032 #define UNTABLED_PREDICATE -1 00033 #define VARIANT_EVAL_METHOD 0x0 00034 #define SUBSUMPTIVE_EVAL_METHOD 0x1 00035 #define DISPATCH_BLOCK 0x3 00036 00037 00038 /* 00039 * Builtin codes indicating the type of a given tabled call. 00040 */ 00041 00042 #define UNDEFINED_CALL -1 /* due to untabled predicate or error */ 00043 #define PRODUCER_CALL 0 00044 #define SUBSUMED_CALL 1 00045 #define NO_CALL_ENTRY 2 /* for subsumptive predicates, does not 00046 necessarily mean that such a call was 00047 never made */ 00048 00049 /* 00050 * Builtin codes indicating the status of a given tabled call's answer 00051 * set. 00052 */ 00053 00054 #define UNDEFINED_ANSWER_SET -1 /* due to untabled predicate, error, 00055 or the call not having an entry 00056 AND also no subsumer in the table */ 00057 #define COMPLETED_ANSWER_SET 0 00058 #define INCOMPLETE_ANSWER_SET 1