blob: 72aa6533be6f56b793bf65c2bb14ad435210a9f4 [file] [log] [blame]
module.exports = createParser
var initializeContent = require('./initialize/content')
var initializeDocument = require('./initialize/document')
var initializeFlow = require('./initialize/flow')
var initializeText = require('./initialize/text')
var constructs = require('./constructs')
var createTokenizer = require('./util/create-tokenizer')
var combineExtensions = require('./util/combine-extensions')
var miniflat = require('./util/miniflat')
function createParser(options) {
var settings = options || {}
var parser = {
defined: [],
constructs: combineExtensions(
[constructs].concat(miniflat(settings.extensions))
),
content: create(initializeContent),
document: create(initializeDocument),
flow: create(initializeFlow),
string: create(initializeText.string),
text: create(initializeText.text)
}
return parser
function create(initializer) {
return creator
function creator(from) {
return createTokenizer(parser, initializer, from)
}
}
}