?- Goal.
or :- Goal
. Goal
is then treated as a directive. If Term2 is a list, all terms
of the list are stored in the database or called (for directives). If
Term2 is of the form below, the system will assert Clause
and record the indicated source location with it:
’$source_location'(<File>, <Line>):<Clause>
When compiling a module (see chapter
6 and the directive module/2),
expand_term/2
will first try term_expansion/2
in the module being compiled to allow for term expansion rules that are
local to a module. If there is no local definition, or the local
definition fails to translate the term, expand_term/2
will try term_expansion/2
in module
user
. For compatibility with SICStus and Quintus Prolog,
this feature should not be used. See also expand_term/2, goal_expansion/2
and
expand_goal/2.
It is possible to act on the beginning and end of a file by expanding
the terms begin_of_file
and end_of_file
. The
latter is supported by most Prolog systems that support term expansion
as
read_term/3
returns end_of_file
on reaching the end of the input.
Expanding begin_of_file
may be used to initialise the
compilation, for example base on the file name extension. It was added
in SWI-Prolog 8.1.1.