class ABSTRACT_BACKTRACKING_CUT_POINT
Summary
Instances of that class are used by the ABSTRACT_BACKTRACKING to record "cut points" data. A cut point is an indication of up to which alternative are to be removed from the exploration.
Instances of that class are inserted in the continuation path to be retrieved by dynamic cast during calls to cut.
Direct parents
Inherit list: ABSTRACT_BACKTRACKING_SEQUENCE
Insert list: ABSTRACT_BACKTRACKING_GLOBALS
Overview
Features
{ABSTRACT_BACKTRACKING}
{ABSTRACT_BACKTRACKING_POOL, ABSTRACT_BACKTRACKING}
{ABSTRACT_BACKTRACKING}
{ANY}
  • release
    Called by ABSTRACT_BACKTRACKING to release current instance to the pool.
  • get_twin: ABSTRACT_BACKTRACKING_CUT_POINT
    Return a twin of current from the pool
  • pool: ABSTRACT_BACKTRACKING_POOL[ABSTRACT_BACKTRACKING_CUT_POINT]
    The pool that will record Current
{ABSTRACT_BACKTRACKING_POOL}
{ANY}
writable attribute
Record of what top of the stack of alternative is to restore when cut is called.
Managed by ABSTRACT_BACKTRACKING.
set_top_alternative (value: ABSTRACT_BACKTRACKING_ALTERNATIVE)
effective procedure
ensure
next_sequence (explorer: ABSTRACT_BACKTRACKING)
effective procedure
Do nothing: remove itself (as if it were the end of a sequence) and evaluate the continuation by issuing a 'continue'.
require
  • is_on_top: Current = explorer.top_sequence
For the linked stack of sequences.
Managed by ABSTRACT_BACKTRACKING.
writable attribute
The sequence to continue after a success in exploration of the current sequence.
Managed by ABSTRACT_BACKTRACKING.
set_continuation (value: ABSTRACT_BACKTRACKING_SEQUENCE)
effective procedure
ensure
release
effective procedure
{ANY}
Called by ABSTRACT_BACKTRACKING to release current instance to the pool.
require
get_twin: ABSTRACT_BACKTRACKING_CUT_POINT
effective function
{ANY}
Return a twin of current from the pool
require ensure
pool: ABSTRACT_BACKTRACKING_POOL[ABSTRACT_BACKTRACKING_CUT_POINT]
deferred function
{ANY}
The pool that will record Current
Internal link used by the pool to chain its poolable items.
Technical note: to give more freedom for further usages of 'pool_link' it is not defined with type anchorage.
set_pool_link (other: ABSTRACT_BACKTRACKING_POOLABLE)
effective procedure
Set 'pool_link' to 'other'
ensure
once function
{ANY}
Bank of cut points