@flowscripter/mpeg-sdl-parser
Version:
ISO/IEC 14496-34 Syntactic Description Language (MPEG SDL) parser implemented in TypeScript
26 lines (22 loc) • 877 B
text/typescript
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);
}