@stackpress/idea-parser
Version:
Parses ideas to AST and readable JSON.
22 lines (21 loc) • 944 B
TypeScript
import type { Definition, Reader, Parser, Token } from './types.js';
export default class Lexer implements Parser {
protected _code: string;
protected _index: number;
protected _dictionary: Record<string, Definition>;
get dictionary(): {
[x: string]: Definition;
};
get index(): number;
clone(): Lexer;
define(key: string, reader: Reader): void;
expect<T = Token>(keys: string | string[]): T;
get(key: string): Definition;
load(code: string, index?: number): this;
match(code: string, start: number, keys?: string[]): import("./types.js").IdentifierToken | import("./types.js").ObjectToken | import("./types.js").ArrayToken | import("./types.js").UnknownToken | null;
next(names: string | string[]): boolean;
optional<T = Token>(names: string | string[]): T | undefined;
read(): Token | undefined;
substring(start: number, end: number): string;
nextSpace(): number;
}