'use strict' Object.defineProperty(exports, '__esModule', {value: true}) var content = require('../tokenize/content.js') var factorySpace = require('../tokenize/factory-space.js') var partialBlankLine = require('../tokenize/partial-blank-line.js') var tokenize = initializeFlow function initializeFlow(effects) { var self = this var initial = effects.attempt( // Try to parse a blank line. partialBlankLine, atBlankEnding, // Try to parse initial flow (essentially, only code). effects.attempt( this.parser.constructs.flowInitial, afterConstruct, factorySpace( effects, effects.attempt( this.parser.constructs.flow, afterConstruct, effects.attempt(content, afterConstruct) ), 'linePrefix' ) ) ) return initial function atBlankEnding(code) { if (code === null) { effects.consume(code) return } effects.enter('lineEndingBlank') effects.consume(code) effects.exit('lineEndingBlank') self.currentConstruct = undefined return initial } function afterConstruct(code) { if (code === null) { effects.consume(code) return } effects.enter('lineEnding') effects.consume(code) effects.exit('lineEnding') self.currentConstruct = undefined return initial } } exports.tokenize = tokenize