UNPKG

fauton

Version:

A library to test any finite automaton with arbitrary alphabets

20 lines (19 loc) 782 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.epsilonClosureOfState = void 0; function epsilonClosureOfState(epsilonTransitions, state) { const statesStack = []; const allEpsilonStates = new Set([state]); statesStack.push(state); while (statesStack.length !== 0) { const currentState = statesStack.pop(); epsilonTransitions[currentState]?.forEach((epsilonTransitionState) => { if (!allEpsilonStates.has(epsilonTransitionState)) { statesStack.push(epsilonTransitionState); allEpsilonStates.add(epsilonTransitionState); } }); } return Array.from(allEpsilonStates); } exports.epsilonClosureOfState = epsilonClosureOfState;