import factory from "../factory"; import $blankLine from "./$blankLine"; import $tocHeadLine from "./$tocHeadLine"; import $articleGroupHeadLine from "./$articleGroupHeadLine"; import $appdxItemHeadLine from "./$appdxItemHeadLine"; import $supplProvisionAppdxItemHeadLine from "./$supplProvisionAppdxItemHeadLine"; import $supplProvisionHeadLine from "./$supplProvisionHeadLine"; import $articleLine from "./$articleLine"; import $paragraphItemLine from "./$paragraphItemLine"; import $tableColumnLine from "./$tableColumnLine"; import $otherLine from "./$otherLine"; import type { WithErrorRule } from "../util"; import type { Line } from "../../../node/cst/line"; export const $lines: WithErrorRule = factory.withName("lines") .sequence(s => s .and(r => r .zeroOrMore(r => r .choice(c => c .or(() => $blankLine) .or(() => $tableColumnLine) .or(() => $tocHeadLine) .or(() => $articleGroupHeadLine) .or(() => $paragraphItemLine) .or(() => $supplProvisionHeadLine) .or(() => $supplProvisionAppdxItemHeadLine) .or(() => $appdxItemHeadLine) .or(() => $articleLine) .or(() => $otherLine) ) ) , "lines") .action(({ lines }) => { return { value: lines.map(line => line.value), errors: lines.map(line => line.errors).flat(), }; }) ) ; export default $lines;