clarity-pattern-parser
Version:
Parsing Library for Typescript and Javascript.
67 lines (66 loc) • 2.18 kB
TypeScript
import { Node } from "../ast/Node";
import { Cursor } from "./Cursor";
import { ParseResult } from "./ParseResult";
import { Pattern } from "./Pattern";
export declare class ExpressionPattern implements Pattern {
private _id;
private _type;
private _name;
private _parent;
private _firstIndex;
private _originalPatterns;
private _patterns;
private _atomPatterns;
private _prefixPatterns;
private _prefixNames;
private _postfixPatterns;
private _postfixNames;
private _binaryPatterns;
private _binaryNames;
private _associationMap;
private _precedenceMap;
private _shouldStopParsing;
private _precedenceTree;
get id(): string;
get type(): string;
get name(): string;
get parent(): Pattern | null;
set parent(pattern: Pattern | null);
get children(): Pattern[];
get prefixPatterns(): readonly Pattern[];
get atomPatterns(): readonly Pattern[];
get postfixPatterns(): readonly Pattern[];
get binaryPatterns(): readonly Pattern[];
get startedOnIndex(): number;
constructor(name: string, patterns: Pattern[]);
private _organizePatterns;
private _extractName;
private _isPrefix;
private _extractPrefix;
private _isAtom;
private _isPostfix;
private _extractPostfix;
private _isBinary;
private _extractBinary;
private _unwrapAssociationIfNecessary;
private _referenceCount;
private _isRecursiveReference;
parse(cursor: Cursor): Node | null;
private _tryToParse;
private _tryToMatchPrefix;
private _tryToMatchAtom;
private _tryToMatchPostfix;
private _tryToMatchBinary;
private _isBeyondRecursiveAllowance;
test(text: string, record?: boolean): boolean;
exec(text: string, record?: boolean): ParseResult;
getTokens(): string[];
getTokensAfter(childReference: Pattern): string[];
getNextTokens(): string[];
getPatterns(): Pattern[];
getPatternsAfter(childReference: Pattern): Pattern[];
getNextPatterns(): Pattern[];
find(predicate: (p: Pattern) => boolean): Pattern | null;
clone(name?: string): Pattern;
isEqual(pattern: ExpressionPattern): boolean;
}