UNPKG

@flowscripter/mpeg-sdl-parser

Version:

ISO/IEC 14496-34 Syntactic Description Language (MPEG SDL) parser implemented in TypeScript

26 lines (22 loc) 877 B
import { AstPath, type Doc, doc } from "prettier"; import { getDocWithTrivia } from "./print_utils"; import type { AbstractNode } from "../ast/node/AbstractNode"; import type { DoStatement } from "../ast/node/DoStatement"; const { join } = doc.builders; export function printDoStatement( path: AstPath<DoStatement>, print: (path: AstPath<AbstractNode>) => Doc, ): Doc { const doStatement = path.node; const elements = []; elements.push(getDocWithTrivia(doStatement.doKeyword)); elements.push(path.call(print, "compoundStatement")); elements.push(getDocWithTrivia(doStatement.whileKeyword)); elements.push([ getDocWithTrivia(doStatement.openParenthesisPunctuator), path.call(print, "condition"), getDocWithTrivia(doStatement.closeParenthesisPunctuator), getDocWithTrivia(doStatement.semicolonPunctuator), ]); return join(" ", elements); }