All loading of source files is achieved by load_files/2. The hook prolog_load_file/2 can be used to load Prolog code from non-files or even load entirely different information, such as foreign files.
stream(Input)
option. The hook must be
defined in the module user
.
This can be used to load from unusual places as well as dealing with
Prolog code that is not represented as a Prolog source text (for example
some binary representation). For example, library library(http/http_load)
loads Prolog directly from an HTTP server. See also
prolog:open_source_hook/3,
which merely allows for changing how a physical file is opened.
open(Path, read, Stream)
. Options provide the
options as provided to load_files/2.
If the hook succeeds compilation continues by loading from the returned
(input) stream. This hook is particularly suited to support running the
code to a preprocessor. See also
prolog_load_file/2.comments(Comments)
. If the list of comments returned by
read_term/2
is not empty it calls this comment hook with the following arguments.
This hook is exploited by the documentation system. See stream_position_data/3. See also read_term/3.