documenetation .

This commit is contained in:
Vítor Santos Costa 2014-05-14 10:01:11 +01:00
parent 503b2b93f9
commit 596768a56b
8 changed files with 434 additions and 355 deletions

View File

@ -191,11 +191,7 @@ BEAM_is(void)
#endif #endif
/** /**
@class is_2 @pred is( X:number, + Y:ground) is det
@anchor is_2
@brief evaluation of arithmetic expressions
<b>? _X_:number is + _Y_:ground is det</b>
This predicate succeeds iff the result of evaluating the expression This predicate succeeds iff the result of evaluating the expression
_Y_ unifies with _X_. This is the predicate normally used to _Y_ unifies with _X_. This is the predicate normally used to
@ -228,11 +224,7 @@ p_is( USES_REGS1 )
} }
/** /**
@class isnan_1 @pred isnan(? X:float) is det
@anchor isnan_1
@brief True if _X_ is not a number
<b> isnan(? _X_:float) is det</b>
Interface to the IEE754 `isnan` test. Interface to the IEE754 `isnan` test.
*/ */
@ -266,11 +258,7 @@ p_isnan( USES_REGS1 )
} }
/** /**
@class isinf_1 @pred isinf(? X:float) is det</b>
@anchor isinf_1
@brief True if _X_ is infinity
<b> isnan(? _X_:float) is det</b>
Interface to the IEE754 `isinf` test. Interface to the IEE754 `isinf` test.
*/ */
@ -305,11 +293,7 @@ p_isinf( USES_REGS1 )
} }
/** /**
@class logsum_3 @pred logsum(+ Log1:float, + Log2:float, - Out:float ) is det
@anchor logsum_3
@brief sum of two logarithms
<b> logsum(+ _Log1_, + _Log2_, - _Out_ ) is det </b>
True if _Log1_ is the logarithm of the positive number _A1_, True if _Log1_ is the logarithm of the positive number _A1_,
_Log2_ is the logarithm of the positive number _A2_, and _Log2_ is the logarithm of the positive number _A2_, and
@ -413,6 +397,22 @@ Yap_ArithError(yap_error_number type, Term where, char *format,...)
return 0L; return 0L;
} }
/**
@{
@pred between(+ Low:int, + High:int, ? Value:int) is nondet
_Low_ and _High_ are integers, _High_ \>= _Low_. If
_Value_ is an integer, _Low_ =\< _Value_
=\< _High_. When _Value_ is a variable it is successively
bound to all integers between _Low_ and _High_. If
_High_ is inf or infinite between/3 is true iff
_Value_ \>= _Low_, a feature that is particularly interesting
for generating integers from a certain value.
*/
static Int cont_between( USES_REGS1 ) static Int cont_between( USES_REGS1 )
{ {
Term t1 = EXTRA_CBACK_ARG(3,1); Term t1 = EXTRA_CBACK_ARG(3,1);
@ -447,25 +447,6 @@ static Int cont_between( USES_REGS1 )
} }
} }
/**
@class between_3
@anchor between_3
@brief sequence of numbers
between(+ _Low_:int, + _High_:int, ? _Value_:int) is nondet
_Low_ and _High_ are integers, _High_ \>= _Low_. If
_Value_ is an integer, _Low_ =\< _Value_
=\< _High_. When _Value_ is a variable it is successively
bound to all integers between _Low_ and _High_. If
_High_ is inf or infinite [between/3](@ref between_3) is true iff
_Value_ \>= _Low_, a feature that is particularly interesting
for generating integers from a certain value.
@}
*/
static Int static Int
init_between( USES_REGS1 ) init_between( USES_REGS1 )
{ {
@ -561,6 +542,12 @@ init_between( USES_REGS1 )
return cont_between( PASS_REGS1 ); return cont_between( PASS_REGS1 );
} }
/**
*
* @}
*
* @}
*/
void void
Yap_InitEval(void) Yap_InitEval(void)
{ {

View File

@ -367,9 +367,8 @@ class YAPParams;
*/ */
class YAPEngine { class YAPEngine {
public: public:
YAPEngine(YAPParams const& params); YAPEngine(YAPParams const& params); /// construct a new engine
query( char *s ) { return new Query( s ); } YAPQuery *query( char *s ) { return new YAPQuery( s ); } /// build a query on the engine
atom( char *s ) { return new Query( s ); }
}; };
/** /**

View File

@ -1,4 +1,4 @@
# Doxyfile 1.8.6 # Doxyfile 1.8.7
# This file describes the settings to be used by the documentation system # This file describes the settings to be used by the documentation system
# doxygen (www.doxygen.org) for a project. # doxygen (www.doxygen.org) for a project.
@ -70,6 +70,14 @@ OUTPUT_DIRECTORY = doxout
CREATE_SUBDIRS = YES CREATE_SUBDIRS = YES
# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
# characters to appear in the names of generated files. If set to NO, non-ASCII
# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
# U+3044.
# The default value is: NO.
ALLOW_UNICODE_NAMES = NO
# The OUTPUT_LANGUAGE tag is used to specify the language in which all # The OUTPUT_LANGUAGE tag is used to specify the language in which all
# documentation generated by doxygen is written. Doxygen will use this # documentation generated by doxygen is written. Doxygen will use this
# information to generate all constant output in the proper language. # information to generate all constant output in the proper language.
@ -110,7 +118,17 @@ REPEAT_BRIEF = YES
# the entity):The $name class, The $name widget, The $name file, is, provides, # the entity):The $name class, The $name widget, The $name file, is, provides,
# specifies, contains, represents, a, an and the. # specifies, contains, represents, a, an and the.
ABBREVIATE_BRIEF = "The $name class" "The $name widget" "The $name file" is provides specifies contains represents a an the ABBREVIATE_BRIEF = "The $name class" \
"The $name widget" \
"The $name file" \
is \
provides \
specifies \
contains \
represents \
a \
an \
the
# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
# doxygen will generate a detailed section even if there is only a brief # doxygen will generate a detailed section even if there is only a brief
@ -220,8 +238,11 @@ TAB_SIZE = 4
# "Side Effects:". You can put \n's in the value part of an alias to insert # "Side Effects:". You can put \n's in the value part of an alias to insert
# newlines. # newlines.
ALIASES = "predicate=@brief" "doxygen=\if english" "endenglish=\endif" "dutch=\if dutch" "enddutch=\endif" ALIASES = "predicate=@brief" \
"doxygen=\if english" \
"endenglish=\endif" \
"dutch=\if dutch" \
"enddutch=\endif"
# This tag can be used to specify a number of word-keyword mappings (TCL only). # This tag can be used to specify a number of word-keyword mappings (TCL only).
# A mapping has the form "name=value". For example adding "class=itcl::class" # A mapping has the form "name=value". For example adding "class=itcl::class"
@ -237,8 +258,6 @@ TCL_SUBST =
OPTIMIZE_OUTPUT_FOR_C = NO OPTIMIZE_OUTPUT_FOR_C = NO
OPTIMIZE_OUTPUT_FOR_PROLOG = YES
# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
# Python sources only. Doxygen will then generate output that is more tailored # Python sources only. Doxygen will then generate output that is more tailored
# for that language. For instance, namespaces will be presented as packages, # for that language. For instance, namespaces will be presented as packages,
@ -259,21 +278,31 @@ OPTIMIZE_FOR_FORTRAN = NO
OPTIMIZE_OUTPUT_VHDL = NO OPTIMIZE_OUTPUT_VHDL = NO
# Set the OPTIMIZE_OUTPUT_PROLOG tag to YES if your project consists of Prolog
# sources. Doxygen will then generate output that is tailored for Prolog.
# The default value is: NO.
OPTIMIZE_OUTPUT_FOR_PROLOG = YES
# Doxygen selects the parser to use depending on the extension of the files it # Doxygen selects the parser to use depending on the extension of the files it
# parses. With this tag you can assign which parser to use for a given # parses. With this tag you can assign which parser to use for a given
# extension. Doxygen has a built-in mapping, but you can override or extend it # extension. Doxygen has a built-in mapping, but you can override or extend it
# using this tag. The format is ext=language, where ext is a file extension, and # using this tag. The format is ext=language, where ext is a file extension, and
# language is one of the parsers supported by doxygen: IDL, Java, Javascript, # language is one of the parsers supported by doxygen: IDL, Java, Javascript,
# C#, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL. For instance to make # C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C # FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
# (default is Fortran), use: inc=Fortran f=C. # Fortran. In the later case the parser tries to guess whether the code is fixed
# or free formatted code, this is the default for Fortran type files), VHDL. For
# instance to make doxygen treat .inc files as Fortran files (default is PHP),
# and .f files as C (default is Fortran), use: inc=Fortran f=C.
# #
# Note For files without extension you can use no_extension as a placeholder. # Note For files without extension you can use no_extension as a placeholder.
# #
# Note that for custom extensions you also need to set FILE_PATTERNS otherwise # Note that for custom extensions you also need to set FILE_PATTERNS otherwise
# the files are not read by doxygen. # the files are not read by doxygen.
EXTENSION_MAPPING = md pl=Prolog EXTENSION_MAPPING = md \
pl=Prolog
# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
# according to the Markdown format, which allows for more readable # according to the Markdown format, which allows for more readable
@ -746,7 +775,15 @@ WARN_LOGFILE =
# spaces. # spaces.
# Note: If this tag is empty the current directory is searched. # Note: If this tag is empty the current directory is searched.
INPUT = docs/yap.md pl/absf.yap C/cmppreds.c C/eval.c H/eval.h C/arith0.c C/arith1.c C/arith2.c pl/arithpreds.yap CXX packages/real library/dialect/swi/fli/ INPUT = docs/yap.md \
pl \
C \
H \
include \
os \
packages \
library \
CXX
# This tag can be used to specify the character encoding of the source files # This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
@ -766,7 +803,51 @@ INPUT_ENCODING = UTF-8
# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, # *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf,
# *.qsf, *.as and *.js. # *.qsf, *.as and *.js.
FILE_PATTERNS = *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.idl *.ddl *.odl *.h *.h.in *.hh *.hxx *.hpp *.h++ *.cs *.d *.php *.php4 *.php5 *.phtml *.inc *.m *.markdown *.md *.mm *.dox *.py *.f90 *.f *.for *.tcl *.vhd *.vhdl *.ucf *.qsf *.as *.js *.pl *.yap FILE_PATTERNS = *.c \
*.cc \
*.cxx \
*.cpp \
*.c++ \
*.java \
*.ii \
*.ixx \
*.ipp \
*.i++ \
*.inl \
*.idl \
*.ddl \
*.odl \
*.h \
*.h.in \
*.hh \
*.hxx \
*.hpp \
*.h++ \
*.cs \
*.d \
*.php \
*.php4 \
*.php5 \
*.phtml \
*.inc \
*.m \
*.markdown \
*.md \
*.mm \
*.dox \
*.py \
*.f90 \
*.f \
*.for \
*.tcl \
*.vhd \
*.vhdl \
*.ucf \
*.qsf \
*.as \
*.js \
*.pl \
*.yap
# The RECURSIVE tag can be used to specify whether or not subdirectories should # The RECURSIVE tag can be used to specify whether or not subdirectories should
# be searched for input files as well. # be searched for input files as well.
@ -970,25 +1051,6 @@ USE_HTAGS = NO
VERBATIM_HEADERS = YES VERBATIM_HEADERS = YES
# If the CLANG_ASSISTED_PARSING tag is set to YES, then doxygen will use the
# clang parser (see: http://clang.llvm.org/) for more acurate parsing at the
# cost of reduced performance. This can be particularly helpful with template
# rich C++ code for which doxygen's built-in parser lacks the necessary type
# information.
# Note: The availability of this option depends on whether or not doxygen was
# compiled with the --with-libclang option.
# The default value is: NO.
CLANG_ASSISTED_PARSING = NO
# If clang assisted parsing is enabled you can provide the compiler with command
# line options that you would normally use when invoking the compiler. Note that
# the include paths will already be set by doxygen for the files and directories
# specified with INPUT and INCLUDE_PATH.
# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES.
CLANG_OPTIONS =
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# Configuration options related to the alphabetical class index # Configuration options related to the alphabetical class index
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
@ -1252,7 +1314,8 @@ GENERATE_CHI = NO
CHM_INDEX_ENCODING = CHM_INDEX_ENCODING =
# The BINARY_TOC flag controls whether a binary table of contents is generated ( # The BINARY_TOC flag controls whether a binary table of contents is generated (
# YES) or a normal table of contents ( NO) in the .chm file. # YES) or a normal table of contents ( NO) in the .chm file. Furthermore it
# enables the Previous and Next buttons.
# The default value is: NO. # The default value is: NO.
# This tag requires that the tag GENERATE_HTMLHELP is set to YES. # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
@ -1492,11 +1555,11 @@ SEARCHENGINE = YES
# When the SERVER_BASED_SEARCH tag is enabled the search engine will be # When the SERVER_BASED_SEARCH tag is enabled the search engine will be
# implemented using a web server instead of a web client using Javascript. There # implemented using a web server instead of a web client using Javascript. There
# are two flavours of web server based searching depending on the # are two flavors of web server based searching depending on the EXTERNAL_SEARCH
# EXTERNAL_SEARCH setting. When disabled, doxygen will generate a PHP script for # setting. When disabled, doxygen will generate a PHP script for searching and
# searching and an index file used by the script. When EXTERNAL_SEARCH is # an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
# enabled the indexing and searching needs to be provided by external tools. See # and searching needs to be provided by external tools. See the section
# the section "External Indexing and Searching" for details. # "External Indexing and Searching" for details.
# The default value is: NO. # The default value is: NO.
# This tag requires that the tag SEARCHENGINE is set to YES. # This tag requires that the tag SEARCHENGINE is set to YES.
@ -1624,17 +1687,19 @@ EXTRA_PACKAGES =
# #
# Note: Only use a user-defined header if you know what you are doing! The # Note: Only use a user-defined header if you know what you are doing! The
# following commands have a special meaning inside the header: $title, # following commands have a special meaning inside the header: $title,
# $datetime, $date, $doxygenversion, $projectname, $projectnumber. Doxygen will # $datetime, $date, $doxygenversion, $projectname, $projectnumber,
# replace them by respectively the title of the page, the current date and time, # $projectbrief, $projectlogo. Doxygen will replace $title with the empy string,
# only the current date, the version number of doxygen, the project name (see # for the replacement values of the other commands the user is refered to
# PROJECT_NAME), or the project number (see PROJECT_NUMBER). # HTML_HEADER.
# This tag requires that the tag GENERATE_LATEX is set to YES. # This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_HEADER = LATEX_HEADER =
# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the # The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
# generated LaTeX document. The footer should contain everything after the last # generated LaTeX document. The footer should contain everything after the last
# chapter. If it is left blank doxygen will generate a standard footer. # chapter. If it is left blank doxygen will generate a standard footer. See
# LATEX_HEADER for more information on how to generate a default footer and what
# special commands can be used inside the footer.
# #
# Note: Only use a user-defined footer if you know what you are doing! # Note: Only use a user-defined footer if you know what you are doing!
# This tag requires that the tag GENERATE_LATEX is set to YES. # This tag requires that the tag GENERATE_LATEX is set to YES.
@ -1784,6 +1849,13 @@ MAN_OUTPUT = man
MAN_EXTENSION = .3 MAN_EXTENSION = .3
# The MAN_SUBDIR tag determines the name of the directory created within
# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by
# MAN_EXTENSION with the initial . removed.
# This tag requires that the tag GENERATE_MAN is set to YES.
MAN_SUBDIR =
# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it # If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
# will generate one additional man file for each entity documented in the real # will generate one additional man file for each entity documented in the real
# man page(s). These additional files only source the real man page, but without # man page(s). These additional files only source the real man page, but without
@ -1811,18 +1883,6 @@ GENERATE_XML = YES
XML_OUTPUT = xml XML_OUTPUT = xml
# The XML_SCHEMA tag can be used to specify a XML schema, which can be used by a
# validating XML parser to check the syntax of the XML files.
# This tag requires that the tag GENERATE_XML is set to YES.
XML_SCHEMA =
# The XML_DTD tag can be used to specify a XML DTD, which can be used by a
# validating XML parser to check the syntax of the XML files.
# This tag requires that the tag GENERATE_XML is set to YES.
XML_DTD =
# If the XML_PROGRAMLISTING tag is set to YES doxygen will dump the program # If the XML_PROGRAMLISTING tag is set to YES doxygen will dump the program
# listings (including syntax highlighting and cross-referencing information) to # listings (including syntax highlighting and cross-referencing information) to
# the XML output. Note that enabling this will significantly increase the size # the XML output. Note that enabling this will significantly increase the size
@ -1969,9 +2029,9 @@ PREDEFINED =
EXPAND_AS_DEFINED = EXPAND_AS_DEFINED =
# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will # If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
# remove all refrences to function-like macros that are alone on a line, have an # remove all references to function-like macros that are alone on a line, have
# all uppercase name, and do not end with a semicolon. Such function macros are # an all uppercase name, and do not end with a semicolon. Such function macros
# typically used for boiler-plate code, and will confuse the parser if not # are typically used for boiler-plate code, and will confuse the parser if not
# removed. # removed.
# The default value is: YES. # The default value is: YES.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
@ -1991,7 +2051,7 @@ SKIP_FUNCTION_MACROS = YES
# where loc1 and loc2 can be relative or absolute paths or URLs. See the # where loc1 and loc2 can be relative or absolute paths or URLs. See the
# section "Linking to external documentation" for more information about the use # section "Linking to external documentation" for more information about the use
# of tag files. # of tag files.
# Note: Each tag file must have an unique name (where the name does NOT include # Note: Each tag file must have a unique name (where the name does NOT include
# the path). If a tag file is not located in the directory in which doxygen is # the path). If a tag file is not located in the directory in which doxygen is
# run, you must also specify the path to the tagfile here. # run, you must also specify the path to the tagfile here.
@ -2071,7 +2131,7 @@ HIDE_UNDOC_RELATIONS = YES
# set to NO # set to NO
# The default value is: NO. # The default value is: NO.
HAVE_DOT = YES HAVE_DOT = NO
# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
# to run in parallel. When set to 0 doxygen will base this on the number of # to run in parallel. When set to 0 doxygen will base this on the number of

View File

@ -10,7 +10,7 @@
:- initialization(main). :- initialization(main).
:- dynamic val/2, item/2, last_node/2, indent/1. :- dynamic val/2, item/2, last_node/2, indent/1, pred/4.
get_arg( Inp, Out ) :- get_arg( Inp, Out ) :-
unix( argv( [Inp, Out] ) ), !. unix( argv( [Inp, Out] ) ), !.
@ -69,7 +69,8 @@ scan_file( Inp ) :-
item( Item0 , ItLines ), item( Item0 , ItLines ),
atom_string(A2, Item0), atom_string(A2, Item0),
cvt_slash( Pred, Key ), cvt_slash( Pred, Key ),
assert_static( pred( A1, Key, A2, Inp:ItLines ) ), \+ pred(_, Key, _, _ ),
assert( pred( A1, Key, A2, Inp:ItLines ) ),
fail fail
; ;
% look for predicates % look for predicates
@ -601,8 +602,8 @@ simplify( [0'q,0'Q|L]) --> "=", !,
simplify(L). simplify(L).
simplify( [0'q,0'U|L]) --> "?", !, simplify( [0'q,0'U|L]) --> "?", !,
simplify(L). simplify(L).
simplify( [] ) --> "/", !. simplify( [] ) --> "/",
% simplify(L). number, !.
simplify( [0's,0'S|L]) --> "<", !, simplify( [0's,0'S|L]) --> "<", !,
simplify(L). simplify(L).
simplify( [0'u,0'U|L]) --> "\v", !, simplify( [0'u,0'U|L]) --> "\v", !,
@ -627,6 +628,11 @@ simplify( L) --> [_], !,
simplify(L). simplify(L).
simplify( []) --> []. simplify( []) --> [].
number --> [].
number --> [C],
{ C >= "0" , C =< "9" },
number.
first_word(Line, Word, Rest) :- first_word(Line, Word, Rest) :-
jmp_blanks( Line, Line2 ), jmp_blanks( Line, Line2 ),

View File

@ -7615,8 +7615,6 @@ You can see the available SQL Modes at the MySQL homepage at
@ifplaintext @ifplaintext
Please have a look at @subpage RealPage
@copydoc real @copydoc real
@end ifplaintext @end ifplaintext

View File

@ -14,6 +14,14 @@
* * * *
* * * *
*************************************************************************/ *************************************************************************/
/**
*
* @file blobs.c
*
* @addtogroup swi-c-interface
*
* @{
*/
#include <Yap.h> #include <Yap.h>
#include <Yatom.h> #include <Yatom.h>
@ -248,3 +256,7 @@ Yap_install_blobs(void)
{ {
} }
/**
* @}
*/

View File

@ -5,13 +5,15 @@
* Email: steve.moyle@comlab.ox.ac.uk * Email: steve.moyle@comlab.ox.ac.uk
* Date: 21 January 2002 * Date: 21 January 2002
* Copyright (c) 2002 Steve Moyle. All rights reserved. * Copyright (c) 2002-2014 Vitor Santos Costa from an original version by Steve Moyle. All rights reserved.
*/ */
/** /**
* *
* @daddtogroup swi-c-interface * @file swi.c
*
* @addtogroup swi-c-interface
* *
* @{ * @{
*/ */
@ -3254,6 +3256,7 @@ int WINAPI win_yap2swi(HANDLE hinst, DWORD reason, LPVOID reserved)
#endif #endif
/** /**
* @{ * @}
* @}
*/ */

View File

@ -13,11 +13,21 @@
@defgroup swi-c-interface SWI-Prolog Foreign Language Interface @defgroup swi-c-interface SWI-Prolog Foreign Language Interface
Support for file name resolution through absolute_file_name/3 and *
friends. These utility built-ins describe a list of directories that * @tableofcontents
are used by load_files/2 to search. They include pre-compiled paths *
plus user-defined directories, directories based on environment * A reimplementation of Jan Wielemaker's SWI-Prolog C-language interface, it supports
variables and registry information to search for files. * most of the functionality in the original implementation. It allows for:
*
* - Term Construction, Access, and Unification
* - Manipulation of Atoms, Strings, Lists of Codes and Lists of Atoms
* - Query evaluation
* - Thread and Prolog engine management
* - Data-Base Access
*
* In this interface, all Prolog data known by C is referenced through term references (term_t), hence
* Prolog has all the information necessary to perform its memory management without special precautions
* from the C programmer.
@{ @{
@ -85,3 +95,7 @@ FunctorToSWIFunctor(Functor at)
} }
#define isDefinedProcedure(pred) TRUE // TBD #define isDefinedProcedure(pred) TRUE // TBD
/**
@}
*/