UNPKG

@fauton/cfg

Version:

A package to work with context free grammars and LL1 parsers

18 lines (17 loc) 724 B
"use strict"; 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;