This module implements listing code from the internal representation in a human readable format.
- listing/0 lists a module.
- listing/1 lists a predicate or matching clause
- portray_clause/2 pretty-prints a clause-term
?- list_settings(listing). ======================================================================== Name Value (*=modified) Comment ======================================================================== listing:body_indentation 8 Indentation used goals in the body listing:tab_distance 8 Distance between tab-stops. ...
- Lists all predicates defined in the calling module. Imported
predicates are not listed. To list the content of the module
- List matching clauses. What is either a plain specification or a
list of specifications. Plain specifications are:
- Predicate indicator (Name/Arity or Name//Arity) Lists the indicated predicate. This also outputs relevant declarations, such as multifile/1 or dynamic/1.
- A Head term. In this case, only clauses whose head
unify with Head are listed. This is illustrated in the
query below that only lists the first clause of append/3.
?- listing(append(, _, _)). lists:append(, A, A).
- portray_clause(+Clause) is det
- portray_clause(+Out:stream, +Clause) is det
- portray_clause(+Out:stream, +Clause, +Options) is det
- Portray `Clause' on the current output stream. Layout of the
clause is to our best standards. As the actual variable names
are not available we use A, B, ... Deals with ';', '|', '->' and
calls via meta-call predicates as determined using the predicate
property meta_predicate. If Clause contains attributed
variables, these are treated as normal variables.
If Options is provided, the option-list is passed to write_term/3 that does the final writing of arguments.