The interpretation of the BK-class annotation has been introduced in
Section
. BK-class is used to allow intelligent
dependency-directed backtracking. Each choice point can be marked to
belong to a certain backtracking class (bk-class), and certain classes of
paths can be declared to belong to corresponding bk-classes. Upon failure,
the address of failure is checked. If it does not belong to a declared
bk-class, regular chronological backtracking is started. If it does belong
to a bk-class, then backtracking continues up to the latest choice points
that belong to the same bk-class.
When tracing this behavior, the following conditions are monitored: (1) when a special failure address is met and how high up the intelligent backtracking progresses and (2) what is the latest address of failure. The following messages are printed in each case:
>BK: Special path <path> caught by alt <alt> of class <c> after <n> frames.
|
The first message is emitted whenever intelligent backtracking occurs. The
second one is emitted whenever the current address of failure is modified
following the rules discussed on page
.