@fauton/cfg
Version:
A package to work with context free grammars and LL1 parsers
63 lines (62 loc) • 5.92 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.findFirst = exports.validateCfg = exports.simplifyCfg = exports.extractTerminalsFromCfg = exports.removeUselessProduction = exports.removeUnreachableProduction = exports.removeUnitProduction = exports.removeNullProduction = exports.removeNonTerminableProduction = exports.removeEmptyProduction = exports.generateCfgLanguage = exports.cykParse = exports.convertToCnf = exports.convertStringToGrammar = exports.convertGrammarToString = exports.findFollow = exports.generateLL1ParsingTable = exports.parseWithLL1Table = exports.removeNonDeterminism = exports.removeLeftRecursion = exports.LRO = void 0;
const convertGrammarToString_1 = require("./convertGrammarToString");
Object.defineProperty(exports, "convertGrammarToString", { enumerable: true, get: function () { return convertGrammarToString_1.convertGrammarToString; } });
const convertStringToGrammar_1 = require("./convertStringToGrammar");
Object.defineProperty(exports, "convertStringToGrammar", { enumerable: true, get: function () { return convertStringToGrammar_1.convertStringToGrammar; } });
const convertToCnf_1 = require("./convertToCnf");
Object.defineProperty(exports, "convertToCnf", { enumerable: true, get: function () { return convertToCnf_1.convertToCnf; } });
const cykParse_1 = require("./cykParse");
Object.defineProperty(exports, "cykParse", { enumerable: true, get: function () { return cykParse_1.cykParse; } });
const extractTerminalsFromCfg_1 = require("./extractTerminalsFromCfg");
Object.defineProperty(exports, "extractTerminalsFromCfg", { enumerable: true, get: function () { return extractTerminalsFromCfg_1.extractTerminalsFromCfg; } });
const findFirst_1 = require("./findFirst");
Object.defineProperty(exports, "findFirst", { enumerable: true, get: function () { return findFirst_1.findFirst; } });
const findFollow_1 = require("./findFollow");
Object.defineProperty(exports, "findFollow", { enumerable: true, get: function () { return findFollow_1.findFollow; } });
const generateCfgLanguage_1 = require("./generateCfgLanguage");
Object.defineProperty(exports, "generateCfgLanguage", { enumerable: true, get: function () { return generateCfgLanguage_1.generateCfgLanguage; } });
const generateLL1ParsingTable_1 = require("./generateLL1ParsingTable");
Object.defineProperty(exports, "generateLL1ParsingTable", { enumerable: true, get: function () { return generateLL1ParsingTable_1.generateLL1ParsingTable; } });
const generateLR0ParsingTable_1 = require("./generateLR0ParsingTable");
const parseWithLL1Table_1 = require("./parseWithLL1Table");
Object.defineProperty(exports, "parseWithLL1Table", { enumerable: true, get: function () { return parseWithLL1Table_1.parseWithLL1Table; } });
const removeEmptyProduction_1 = require("./removeEmptyProduction");
Object.defineProperty(exports, "removeEmptyProduction", { enumerable: true, get: function () { return removeEmptyProduction_1.removeEmptyProduction; } });
const removeLeftRecursion_1 = require("./removeLeftRecursion");
Object.defineProperty(exports, "removeLeftRecursion", { enumerable: true, get: function () { return removeLeftRecursion_1.removeLeftRecursion; } });
const removeNonDeterminism_1 = require("./removeNonDeterminism");
Object.defineProperty(exports, "removeNonDeterminism", { enumerable: true, get: function () { return removeNonDeterminism_1.removeNonDeterminism; } });
const removeNonTerminableProduction_1 = require("./removeNonTerminableProduction");
Object.defineProperty(exports, "removeNonTerminableProduction", { enumerable: true, get: function () { return removeNonTerminableProduction_1.removeNonTerminableProduction; } });
const removeNullProduction_1 = require("./removeNullProduction");
Object.defineProperty(exports, "removeNullProduction", { enumerable: true, get: function () { return removeNullProduction_1.removeNullProduction; } });
const removeUnitProduction_1 = require("./removeUnitProduction");
Object.defineProperty(exports, "removeUnitProduction", { enumerable: true, get: function () { return removeUnitProduction_1.removeUnitProduction; } });
const removeUnreachableProduction_1 = require("./removeUnreachableProduction");
Object.defineProperty(exports, "removeUnreachableProduction", { enumerable: true, get: function () { return removeUnreachableProduction_1.removeUnreachableProduction; } });
const removeUselessProduction_1 = require("./removeUselessProduction");
Object.defineProperty(exports, "removeUselessProduction", { enumerable: true, get: function () { return removeUselessProduction_1.removeUselessProduction; } });
const simplifyCfg_1 = require("./simplifyCfg");
Object.defineProperty(exports, "simplifyCfg", { enumerable: true, get: function () { return simplifyCfg_1.simplifyCfg; } });
const validateCfg_1 = require("./validateCfg");
Object.defineProperty(exports, "validateCfg", { enumerable: true, get: function () { return validateCfg_1.validateCfg; } });
// TODO: Create separate classes for grouping modules
// Name-spacing lr0 parser related modules
exports.LRO = {
addDotToProductionRule: generateLR0ParsingTable_1.addDotToProductionRule,
generateClosureOfLR0Item: generateLR0ParsingTable_1.generateClosureOfLR0Item,
generateLR0ParsingTable: generateLR0ParsingTable_1.generateLR0ParsingTable,
};
__exportStar(require("./types"), exports);