import type { ListTrivia } from "./dataStructures.js"; import { AgencyNode, Expression } from "../types.js"; import { BaseNode } from "./base.js"; export type ParallelBlock = BaseNode & { type: "parallelBlock"; body: AgencyNode[]; /** Optional `shared: ` opt-in from `parallel(shared: true) { ... }`. * Forwarded by `parallelDesugar` onto the synthesized `fork(arms, * shared: )` call. Absent means isolated (the default). */ shared?: Expression; /** Comments between the named arguments. */ argumentTrivia?: ListTrivia[]; }; export type SeqBlock = BaseNode & { type: "seqBlock"; body: AgencyNode[]; /** True when written as `destructive { ... }` rather than `seq { ... }`. * Marks the region destructive: parallelDesugar prepends a * `markDestructiveRan` when inlining it, and the formatter prints * `destructive {`. */ destructive?: boolean; };