UNPKG

@thi.ng/parse

Version:

Purely functional parser combinators & AST generation for generic inputs

27 lines (26 loc) 503 B
class ArrayReader { constructor(_src) { this._src = _src; } read(state) { return this._src[state.p]; } prev(state) { return this._src[state.p - 1]; } next(state) { if (state.done) return; state.done = ++state.p >= this._src.length; } isDone(state) { return state.done = state.p >= this._src.length; } format(state) { return `offset ${state.p}`; } } const defArrayReader = (input) => new ArrayReader(input); export { ArrayReader, defArrayReader };