UNPKG

chevrotain

Version:

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

35 lines 1.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var utils_1 = require("../../../utils/utils"); var lang_extensions_1 = require("../../../lang/lang_extensions"); 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) { var topRulesTable = new lang_extensions_1.HashTable(); utils_1.forEach(options.rules, function (rule) { topRulesTable.put(rule.name, rule); }); return resolver_1.resolveGrammar(topRulesTable); } exports.resolveGrammar = resolveGrammar; function validateGrammar(options) { return checks_1.validateGrammar(options.rules, options.maxLookahead, options.tokenTypes, options.ignoredIssues, options.errMsgProvider ? options.errMsgProvider : errors_public_1.defaultGrammarValidatorErrorProvider, 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