+
Point of view
All features
class AUTOMATON [E_]
Summary
Direct parents
Insert list: ANY
Class invariant
Overview
Creation features
Features
Simple one-shot execution
{ANY}
Step-by-step execution
{ANY}
{}
{STATE}
{ANY}
{}
{}
run (start_state: ABSTRACT_STRING, e: E_)
effective procedure
{ANY}
require
  • has(start_state)
has (state_name: ABSTRACT_STRING): BOOLEAN
effective function
{ANY}
require
  • state_name /= Void
start (start_state: ABSTRACT_STRING, e: E_): AUTOMATON_CONTEXT[E_]
effective function
{ANY}
require
  • has(start_state)
ensure
  • Result.is_valid
  • Result.current_state /= Void
next (context: AUTOMATON_CONTEXT[E_])
effective procedure
{ANY}
require
  • context.is_valid
next_transition (from_state: STATE[E_], state_name: ABSTRACT_STRING, e: E_): STATE[E_]
effective function
{}
last_transition (from_state: STATE[E_], e: E_)
effective procedure
{}
require
  • from_state /= Void
call_before_guards (e: E_, state: STATE[E_])
effective procedure
call_after_guards (e: E_, state: STATE[E_])
effective procedure
set_before_guards (p: PROCEDURE[TUPLE[TUPLE 2[E_, STATE[E_]]]])
effective procedure
{ANY}
ensure
set_after_guards (p: PROCEDURE[TUPLE[TUPLE 2[E_, STATE[E_]]]])
effective procedure
{ANY}
ensure
set_transition (p: PROCEDURE[TUPLE[TUPLE 3[E_, STATE[E_], STATE[E_]]]])
effective procedure
{ANY}
ensure
states: DICTIONARY[STATE[E_], FIXED_STRING]
writable attribute
{}
A dictionary of all the states
before_guards: PROCEDURE[TUPLE[TUPLE 2[E_, STATE[E_]]]]
writable attribute
{}
That agent is called before checking guards.
The given state is the current one.
after_guards: PROCEDURE[TUPLE[TUPLE 2[E_, STATE[E_]]]]
writable attribute
{}
That agent is called after checking guards, whether a guard was raised or not.
The given state the current one.
transition: PROCEDURE[TUPLE[TUPLE 3[E_, STATE[E_], STATE[E_]]]]
writable attribute
{}
That agent is called when the next state was found.
The given states are resp. the current one (Void if first transition) and the successor (Void is last transition).
default_before_guards
effective procedure
{}
default_after_guards
effective procedure
{}
default_transition
effective procedure
{}
manifest_make (needed_capacity: INTEGER_32)
effective procedure
{}
manifest_put (index: INTEGER_32, state_name: ABSTRACT_STRING, state: STATE[E_])
effective procedure
{}
require
  • index >= 0
  • not states.fast_has(state_name.intern)
ensure
  • states.fast_has(state_name.intern)
manifest_semicolon_check: INTEGER_32
is 2
constant attribute
{}