UNPKG

ima-parse

Version:

Easy Simple Parser, that only requires a Grammar JSON to output an AST.

44 lines (43 loc) 1.09 kB
import { RuleParser } from "./RuleParser"; import { Position } from "../helpers/helpers"; import { Grammar } from "./grammarTypes"; export type ParsePartRef = { rule: string; part?: number; }; export type ParseError = { type: "unknown_character"; } | { type: "unfinished_rule"; parsedPart: ParsePartRef; } | { type: "unexpected_phrase"; parsedPart: ParsePartRef; }; export type BrokenContent = { position: Position; content: string; reason: ParseError; parseTrail?: ParsePartRef[]; }; export declare class Parser { private grammar; private state; private topLevelParser; private currentParser; private phrase; private phraseKind; private cursor; private wordChars; private numberChars; private validChars; readonly brokenContent: BrokenContent[]; constructor(grammar: Grammar); getTopLevelParser(): RuleParser; parseText(text: string): void; private parseChar; private advanceCursor; private addCharAndAdvanceCursor; private parseCurrentPhrase; private parseChars; }