# Functions
Canonicalize is ..
Gensym makes a random string of the given length.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
NewTraces creates an initialized Traces.
NewUpdatableSpec makes one with the given initial spec, which can be changed later via SetSpec.
Timestamp returns a string representing the current time in RFC3339Nano.
TurnstileSpec makes an example Spec that's useful to have around.
Unquestion removes (so to speak) a leading question mark (if any).
# Constants
During a Walk.
Went as far as the Spec allowed.
What else to do?.
Too many steps.
# Variables
DefaultBranchType is used for Branches.Type when Branches.Type is zero.
DefaultControl will be used by Spec.Step (and therefore Spec.Walk) if the given control is nil.
DefaultInterpreters will be used in ActionSource.Compile if the given nil interpreters.
DefaultPatternParser is used during Spec.Compile if the given Spec has no PatternParser.
EmittedMessagesInitialCap is the initial capacity for slices of emitted messages.
Exp_BranchTargetVariables is a switch that enables a branch target to be a reference to a binding.
Exp_PermanentBindings is a switch to enable an experiment that makes a binding key ending in "!" a permament binding in the sense that an Action cannot remove that binding.
InterpreterNotFound occurs when you try to Compile an ActionSource, and the required interpreter isn't in the given map of interpreters.
TooManyBindingss occurs when a guard returns more than one set of bindings.
TracesInitialCap is the initial capacity for Traces buffers.
# Structs
ActionSource can be compiled to an Action.
BadBranching occurs when somebody the a Spec.Branches isn't right.
Branch is a possible transition to the next state.
Branches represents the possible transitions to next states.
Control influences how Walk() operates.
Events contains emitted messages and Traces.
No description provided by the author
FuncAction is currently a wrapper around a Go function, but an Action will eventually be a specification for generating an outbound message.
Node represents the structure of something like a state in a state machine.
ParamSpec is a strawman struct to represent data about required and optional Machine parameters (which are just initial bindings).
Spec is a specification used to build a machine.
SpecNotCompiled occurs when a Spec is used (say via Step()) before it has been Compile()ed.
State represents the current state of a machine given a specification.
Stride represents a step that Walk has taken or attempted.
Traces holds trace messages.
UncompiledAction occurs when an ActionSource execution is attempted but that ActionSource hasn't been Compile()ed.
UnknownNode occurs when a branch is followed and its target node is not in the Spec.
UpdatableSpec is a scary yet handy Specter with an underlying Spec that can be changed at any time.
Walked represents a sequence of strides taken by a Walk().
# Interfaces
Action returns Bindings based on the given (current) Bindings.
Context is a copy of context.Context.
Interpreter can optionally compile and execute code for Actions and guards.
Interpreters resolves an interpreter name (like "ecmascript") to an Interpreter.
Specter enables other things to manifest themselves as Specs.
# Type aliases
Breakpoint is a *State predicate.
InterpretersMap is a simple implementation of Interpreters.
No description provided by the author
StopReason represents the possible reasons for a Walk to terminate.