ima-parse
Version:
Easy Simple Parser, that only requires a Grammar JSON to output an AST.
44 lines (43 loc) • 1.09 kB
TypeScript
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;
}