UNPKG

chevrotain

Version:

Chevrotain is a high performance fault tolerant javascript parsing DSL for building recursive decent parsers

39 lines 1.69 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.assignOccurrenceIndices = exports.validateGrammar = exports.resolveGrammar = void 0; var utils_1 = require("../../../utils/utils"); var resolver_1 = require("../resolver"); var checks_1 = require("../checks"); var errors_public_1 = require("../../errors_public"); var gast_1 = require("./gast"); function resolveGrammar(options) { options = utils_1.defaults(options, { errMsgProvider: errors_public_1.defaultGrammarResolverErrorProvider }); var topRulesTable = {}; utils_1.forEach(options.rules, function (rule) { topRulesTable[rule.name] = rule; }); return resolver_1.resolveGrammar(topRulesTable, options.errMsgProvider); } exports.resolveGrammar = resolveGrammar; function validateGrammar(options) { options = utils_1.defaults(options, { errMsgProvider: errors_public_1.defaultGrammarValidatorErrorProvider }); return checks_1.validateGrammar(options.rules, options.maxLookahead, options.tokenTypes, options.errMsgProvider, options.grammarName); } exports.validateGrammar = validateGrammar; function assignOccurrenceIndices(options) { utils_1.forEach(options.rules, function (currRule) { var methodsCollector = new gast_1.DslMethodsCollectorVisitor(); currRule.accept(methodsCollector); utils_1.forEach(methodsCollector.dslMethods, function (methods) { utils_1.forEach(methods, function (currMethod, arrIdx) { currMethod.idx = arrIdx + 1; }); }); }); } exports.assignOccurrenceIndices = assignOccurrenceIndices; //# sourceMappingURL=gast_resolver_public.js.map