class BACKTRACKING_SEQUENCE_LIST

All features

A sequence of a list of nodes.

Direct parents

conformant parents

ABSTRACT_BACKTRACKING_SEQUENCE

non-conformant parents

BACKTRACKING_GLOBALS

Summary

exported features

the pools

Details

list: BACKTRACKING_NODE_AND_LIST

Iterator on the next item of the list.

set_list (value: BACKTRACKING_NODE_AND_LIST)

require

  • value_not_void: value /= Void

ensure

  • definition: list = value
  • list_not_void: list /= Void

next_sequence (explorer: BACKTRACKING)

Called by ABSTRACT_BACKTRACKING to let the current object switch to the next state to explore. Two actions must be performed by that feature:

  - make iteration actions and then call
     'pop_sequence' if this is the last state
     to be explored.
  - select the state to be evaluated or
     call 'continue' or call 'backtrack'.

require

  • is_on_top: Current = explorer.top_sequence

previous: ABSTRACT_BACKTRACKING_SEQUENCE

For the linked stack of sequences. Managed by ABSTRACT_BACKTRACKING.

continuation: ABSTRACT_BACKTRACKING_SEQUENCE

The sequence to continue after a success in exploration of the current sequence. Managed by ABSTRACT_BACKTRACKING.

set_continuation (value: ABSTRACT_BACKTRACKING_SEQUENCE)

ensure

  • definition: continuation = value

release

Called by ABSTRACT_BACKTRACKING to release current instance to the pool.

require

  • pool /= Void

get_twin: BACKTRACKING_SEQUENCE_LIST

Return a twin of current from the pool

require

  • pool /= Void

ensure

  • Result.is_equal(Current)

deferred pool: ABSTRACT_BACKTRACKING_POOL[BACKTRACKING_SEQUENCE_LIST]

The pool that will record Current

set_pool_link (other: ABSTRACT_BACKTRACKING_POOLABLE)

Set 'pool_link' to 'other'

ensure

  • definition: pool_link = other

pool_of_sequence: BACKTRACKING_POOL_OF_SEQUENCE
pool_of_sequence_list: BACKTRACKING_POOL_OF_SEQUENCE_LIST
pool_of_alternative: BACKTRACKING_POOL_OF_ALTERNATIVE
pool_of_alternative_list: BACKTRACKING_POOL_OF_ALTERNATIVE_LIST