/** * A text reader. * * It internally holds a text pointer `pos`. It seeks for forward direction only. */ export interface TextReader { /** Return true if `pos` has reached to the end of the text. */ eof: () => boolean; /** Skip(forward) `pos` by number of `delta` characters. */ skip: (delta: number) => void; /** Skip(forward) `pos` to `newPos`. */ skipTo: (newPos: number) => void; /** Read the text partially from `pos` to `end`(`end` not included) */ readBy: (end: number) => string; } export declare function createTextReader(text: string): TextReader; /** * A text scanner. * * It internally holds a text pointer `pos`. It seeks for forward direction only. */ export interface TextScanner { /** Return true if `pos` has reached to the end of the text. */ eof: () => boolean; /** Return `pos`. */ pos: () => number; /** advance `pos` number of `delta` or one character(s). */ advance: (delta?: number) => void; /** advance `pos` to `newPos`. */ advanceTo: (newPos: number) => void; /** Read a character at `pos` in `text` */ getChar: () => string; } export declare function createTextScanner(text: string): TextScanner;