@fauton/cfg
Version:
A package to work with context free grammars and LL1 parsers
18 lines (17 loc) • 724 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.convertGrammarToString = void 0;
/**
* Convert a cfg to its string representation
* @param productionRules Production rules record
* @returns A string corresponding to the cfg rules
*/
function convertGrammarToString(productionRules) {
const grammarStringLines = [];
const productionRulesEntries = Object.entries(productionRules);
productionRulesEntries.forEach(([variable, rules]) => {
grammarStringLines.push(`${variable} -> ${rules.map((rule) => (rule.length === 0 ? 'ϵ' : rule)).join(' | ')}`);
});
return grammarStringLines;
}
exports.convertGrammarToString = convertGrammarToString;