class BACKTRACKING_ALTERNATIVE
Summary
A single node alternative.
Direct parents
Inherit list: ABSTRACT_BACKTRACKING_ALTERNATIVE
Insert list: BACKTRACKING_GLOBALS
Overview
Features
{BACKTRACKING}
{ABSTRACT_BACKTRACKING}
{ABSTRACT_BACKTRACKING_POOL, ABSTRACT_BACKTRACKING}
{ABSTRACT_BACKTRACKING}
{ANY}
  • release
    Called by ABSTRACT_BACKTRACKING to release current instance to the pool.
  • get_twin: BACKTRACKING_ALTERNATIVE
    Return a twin of current from the pool
  • pool: ABSTRACT_BACKTRACKING_POOL[BACKTRACKING_ALTERNATIVE]
    The pool that will record Current
{ABSTRACT_BACKTRACKING_POOL}
the pools
{ANY}
writable attribute
next alternate node
set_next (value: BACKTRACKING_NODE)
effective procedure
require
  • value_not_void: value /= Void
ensure
  • definition: next = value
next_alternative (explorer: BACKTRACKING)
effective procedure
Called by ABSTRACT_BACKTRACKING to let the current object switch to the next alternative to explore.
Two actions must be performed by that feature:
  - make iteration actions and then call
     'continue_alternative' if iteration is not ended
     and that current object must be called again to
     switch to an other alternative or else call
     'pop_alternative' if this is the last alternative
     to be explored.
  - select the state to be evaluated or
     call 'continue' or call 'backtrack'.
require
  • is_on_top: Current = explorer.top_alternative
For the linked stack of alternatives.
Managed by ABSTRACT_BACKTRACKING.
writable attribute
The sequence to continue after a success in exploration of the current alternative.
Managed by ABSTRACT_BACKTRACKING.
set_continuation (value: ABSTRACT_BACKTRACKING_SEQUENCE)
effective procedure
ensure
writable attribute
Record of the top of the stack of sequence to restore the state of the exploration after that all alternatives were explored.
Managed by ABSTRACT_BACKTRACKING.
set_top_sequence (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: BACKTRACKING_ALTERNATIVE
effective function
{ANY}
Return a twin of current from the pool
require ensure
pool: ABSTRACT_BACKTRACKING_POOL[BACKTRACKING_ALTERNATIVE]
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}
pool_of_sequence_list: BACKTRACKING_POOL_OF_SEQUENCE_LIST
once function
{ANY}
pool_of_alternative: BACKTRACKING_POOL_OF_ALTERNATIVE
once function
{ANY}
pool_of_alternative_list: BACKTRACKING_POOL_OF_ALTERNATIVE_LIST
once function
{ANY}