chevrotain
Version:
Chevrotain is a high performance fault tolerant javascript parsing DSL for building recursive decent parsers
35 lines • 1.54 kB
JavaScript
;
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