Prints a Message of a given Severity. The behavior can be
customized using the hooks
All messages from the system are printed by calling this predicate.
the same arguments. If this does not succeed, the message is
processed in the following phases:
user:generate_message_hook/3is tried, then if it does not succeed,
'SU_messages':generate_message/3is called. If that also fails or gives an exception, then the built-in default conversion is used, which gives the following result:
user:message_hook/3is tried, then, if it does not succeed, the built-in predicate
print_message_lines/3is called for the
print_message/2before processing the message. If this succeeds, it is assumed that the message has been processed and nothing further is done.
'SU_messages':generate_message/3in the message generation phase in
L0-L; this means, that
L0is the generated list with
Lappended to it. This list will be translated into format-command lines, which will be passed to the message printing phase.
print_message_lines/3in the message printing phase of
print_message/2. A way for the user to intercept the abstract message term Message of type Severity, whose translation into format-command lines is Lines, before it is actually printed.
print_message_lines/3takes the prefix as its second argument). In case of the
queryseverity no newline is written after the last line.
Annotated goals occur in most of error message terms, and
carry information on the Goal causing the error and its source
position. The SourceInfo term, retrieved by
goal_source_info/3 will be one of the following:
/Arity, calls are numbered textually and the virtual line number shows the position of the goal within the listing of the predicate MFunc, as produced by
listing/1. Such a term is returned for goals occurring in interpreted predicates, which do not have “real” line number information, e.g. because they were entered from the terminal, or created dynamically.