import { ParserFunction } from '../definitions/ParserFunction.js'; import { SDTFEngineDataBox } from '../definitions/parsersEngineDataBox.js'; import { ParsersPipelineState } from '../definitions/ParsersPipelineState.js'; import { ParserToolbox } from '../ParserToolbox.js'; /** * Create pipeline states from parser function signatures * @internal * @param functions */ export function createPipelineStatesFromParserFunctions( functions: Array>, ): Array { return functions.map((fn, i) => ({ fn: fn, toolbox: new ParserToolbox({ pipelineName: fn?.name ? // `executeParsersPipeline` is the func name produced in `makeParsersPipeline` fn.name === 'executeParsersPipeline' ? `#${i} Parsers Pipeline` : `#${i} Parser λ: ${fn.name}` : `#${i} Parser λ`, }), isFromRule: false, isRemotelyExecutedRule: false, status: 'pending', next: undefined, })); }