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) } } }