@hatch:fsm v0.1.0
Harel statecharts for Wren. Hierarchical and parallel states, history, guards, entry/exit/transition actions, context, signal-based observation. Pure Wren.
$
hatch add @hatch:fsm
Harel statecharts for Wren. Hierarchical and parallel states, history, guards, entry/exit/transition actions, context, signal-based observation. Pure Wren.
StateNode_.new_(name, parent, kind, initial, entry, exit, transitions, states)
StateNode_.name
StateNode_.parent
StateNode_.kind
StateNode_.initial
StateNode_.entry
StateNode_.exit
StateNode_.transitions
StateNode_.states
StateNode_.path
StateNode_.walk(fn)
StateNode_.findTransition_(event, guardEval)
TransitionBranch_.new_(event, target, guard, actions, internal)
TransitionBranch_.event
TransitionBranch_.target
TransitionBranch_.guard
TransitionBranch_.actions
TransitionBranch_.internal
TransitionBranch_.resolveTo_(path)
TransitionBuilder_.new_(sourceName, event)
TransitionBuilder_.when(fn)
TransitionBuilder_.does(fn)
TransitionBuilder_.go(target)
TransitionBuilder_.internal()
TransitionBuilder_.finish_()
StateBuilder_.new_(name)
StateBuilder_.name
StateBuilder_.kindAccessor_
StateBuilder_.initialAccessor_
StateBuilder_.entryAccessor_
StateBuilder_.exitAccessor_
StateBuilder_.transitionsAccessor_
StateBuilder_.statesAccessor_
StateBuilder_.initial(stateName)
StateBuilder_.state(name, fn)
StateBuilder_.on(event, target)
StateBuilder_.entry(fn)
StateBuilder_.exit(fn)
StateBuilder_.final()
StateBuilder_.parallel(name, fn)
StateBuilder_.markParallel_()
ChartBuilder_.new_()
ChartBuilder_.id(name)
ChartBuilder_.context(map)
ChartBuilder_.initial(stateName)
ChartBuilder_.state(name, fn)
ChartBuilder_.parallel(name, fn)
ChartBuilder_.finish()
ChartBuilder_.static compileState_(sb, parentNode)
ChartBuilder_.static validateAndCollect_(node, ids)
ChartBuilder_.static resolveTargets_(node, ids)
ChartBuilder_.static resolveTarget_(target, sourceNode, ids)
StateChart.fromCompiled_(id, rootStates, rootInitial, ids, context)
StateChart.id
StateChart.context
StateChart.activeStates
StateChart.started
StateChart.offAll
StateChart.eventNames
StateChart.tree
StateChart.toString
StateChart.activePath
StateChart.activeLeaves_
StateChart.static build(builderFn)
StateChart.static fromMap(spec)
StateChart.static buildStateFromMap_(parentBuilder, name, spec)
StateChart.static applyStateConfig_(builder, spec)
StateChart.static applyTransitionFromMap_(builder, event, def)
StateChart.on(event, fn)
StateChart.once(event, fn)
StateChart.off(event, fn)
StateChart.offAll(event)
StateChart.listenerCount(event)
StateChart.bindEvents(emitter, eventNames)
StateChart.bindEvent(emitter, eventName)
StateChart.treeNode_(node, prefix, isLast)
StateChart.matches(pattern)
StateChart.start()
StateChart.stop()
StateChart.send(event)
StateChart.step_(event)
StateChart.stepOne_(branch, source, event)
StateChart.enterPath_(node, event)
StateChart.descendIntoInitial_(node, event)
StateChart.activeDescendantsOf_(ancestor)
StateChart.resolveTargetForStep_(targetStr)
StateChart.recordHistory_(node)
StateChart.resolveHistoryTarget_(targetStr)
StateChart.emitDoneIfApplicable_(target, event)
StateChart.allRegionsFinal_(parallelNode)
StateChart.fire_(channel, args)
StateChart.runActions_(actions, event)
StateChart.lca_(a, b)
StateChart.pathFromLcaToTarget_(lca, target)
StateChart.removeActive_(path)