langium-cli
Version:
CLI for Langium - the language engineering tool
13 lines • 736 B
JavaScript
import { joinToNode, toString } from 'langium/generate';
import { collectAst, LangiumGrammarGrammar } from 'langium/grammar';
import { collectKeywords } from './langium-util.js';
export function generateTypesFile(services, grammars) {
const { unions, interfaces } = collectAst(grammars, { services });
const reservedWords = new Set(collectKeywords(LangiumGrammarGrammar()));
const fileNode = joinToNode([
joinToNode(unions, union => union.toDeclaredTypesString(reservedWords), { appendNewLineIfNotEmpty: true }),
joinToNode(interfaces, iFace => iFace.toDeclaredTypesString(reservedWords), { appendNewLineIfNotEmpty: true })
]);
return toString(fileNode);
}
//# sourceMappingURL=types-generator.js.map