@thi.ng/parse
Version:
Purely functional parser combinators & AST generation for generic inputs
27 lines (26 loc) • 503 B
JavaScript
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
};