import assert from "node:assert"; import type { Done, Fail, Input, Parser, Step } from "./types.ts"; export function parseSync( parser: Parser<[Step]>, input: Input = {}, ): Done | Fail { let result = parser.parse(input); assert( !("parse" in result && typeof result.parse === "function"), "parser did not complete in a single step", ); return result; }