UNPKG

parser-combinator

Version:
43 lines (31 loc) 1.21 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _index = require('../../parsec/index'); var _index2 = require('../../stream/index'); var _index3 = _interopRequireDefault(_index2); var _token = require('./token'); var _token2 = _interopRequireDefault(_token); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /* TODO mix spaces & tab bug " \t " will not be accepted known issue: non-breakable spaces are not recognised */ function codeLine() { return _index.C.char('\n').optrep().thenRight(_token2.default.fourSpacesBlock()).thenRight(_token2.default.fourSpacesBlock()).thenRight(_token2.default.rawTextUntilChar('\n', true)).map(function (text) { return { code: text }; }); } /** * Created by Simon on 03/01/2017. */ function parseCodeLine(line) { var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; return codeLine().parse(_index3.default.ofString(line), offset); } exports.default = { codeLine: codeLine, parse: function parse(line) { return parseCodeLine(line, 0); } }; //# sourceMappingURL=code-line-parser.js.map