UNPKG

chevrotain

Version:

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

37 lines (32 loc) 895 B
import { Rule, IParserConfig, TokenVocabulary, BaseParser } from "../../api" import { genUmdModule, genWrapperFunction } from "./generate" export function generateParserFactory<T extends BaseParser>(options: { name: string rules: Rule[] tokenVocabulary: TokenVocabulary }): (config?: IParserConfig) => T { const wrapperText = genWrapperFunction({ name: options.name, rules: options.rules }) const constructorWrapper = new Function( "tokenVocabulary", "config", "chevrotain", wrapperText ) return function (config) { return constructorWrapper( options.tokenVocabulary, config, // TODO: check how the require is transpiled/webpacked require("../api") ) } } export function generateParserModule(options: { name: string rules: Rule[] }): string { return genUmdModule({ name: options.name, rules: options.rules }) }