UNPKG

mlld

Version:

mlld: llm scripting language

77 lines (75 loc) 2.34 kB
import { isBuiltinEffect } from './chunk-6WXCVSUP.mjs'; import { __name } from './chunk-NJQWMXLH.mjs'; // interpreter/eval/pipeline/effects-attachment.ts function attachBuiltinEffects(pipeline) { const functional = []; const pendingLeadingEffects = []; let hadLeadingEffects = false; for (const stage of pipeline) { if (Array.isArray(stage)) { const { functionalPipeline: group, hadLeadingEffects: inner } = attachBuiltinEffects(stage); if (pendingLeadingEffects.length > 0 && group.length > 0) { for (const cmd2 of group) { const command = cmd2; command.effects = [ ...command.effects || [], ...pendingLeadingEffects ]; } pendingLeadingEffects.length = 0; } if (group.length > 0) { functional.push(group); } hadLeadingEffects = hadLeadingEffects || inner; continue; } const name = stage.rawIdentifier; if (isBuiltinEffect(name)) { if (functional.length > 0) { const prev = functional[functional.length - 1]; if (Array.isArray(prev)) { for (const pcmd of prev) { const command = pcmd; command.effects = [ ...command.effects || [], stage ]; } } else { const prevCmd = prev; prevCmd.effects = [ ...prevCmd.effects || [], stage ]; } } else { pendingLeadingEffects.push(stage); hadLeadingEffects = true; } continue; } const cmd = { ...stage }; if (pendingLeadingEffects.length > 0) { cmd.effects = [...cmd.effects || [], ...pendingLeadingEffects]; pendingLeadingEffects.length = 0; } functional.push(cmd); } if (functional.length === 0 && pendingLeadingEffects.length > 0) { functional.push({ rawIdentifier: "__identity__", identifier: [], args: [], fields: [], rawArgs: [], effects: [...pendingLeadingEffects] }); pendingLeadingEffects.length = 0; } return { functionalPipeline: functional, hadLeadingEffects }; } __name(attachBuiltinEffects, "attachBuiltinEffects"); export { attachBuiltinEffects }; //# sourceMappingURL=chunk-MOU2QELE.mjs.map //# sourceMappingURL=chunk-MOU2QELE.mjs.map