import { Context } from "./ctx"; import { PossibleResolution, Value } from "./values"; import { EvalFn } from "./evals"; import * as Quick from "./quickevals"; import { ASTVisitor } from "./visitor"; type Acceptor = (visitor: ASTVisitor) => T; type Nullable = T | null; export interface ASTNodeIntf { kind: ASTKinds; } export declare enum ASTKinds { Program = "Program", AsgnStmt_1 = "AsgnStmt_1", AsgnStmt_2 = "AsgnStmt_2", AsgnStmt_3 = "AsgnStmt_3", AsgnStmt_4 = "AsgnStmt_4", AsgnStmt_5 = "AsgnStmt_5", AsgnStmt_6 = "AsgnStmt_6", AsgnStmt_7 = "AsgnStmt_7", AsgnStmt_8 = "AsgnStmt_8", AsgnStmt_9 = "AsgnStmt_9", AsgnStmt_10 = "AsgnStmt_10", AsgnStmt_11 = "AsgnStmt_11", AsgnStmt_12 = "AsgnStmt_12", NonAsgnStmt_1 = "NonAsgnStmt_1", NonAsgnStmt_2 = "NonAsgnStmt_2", NonAsgnStmt_3 = "NonAsgnStmt_3", NonAsgnStmt_4 = "NonAsgnStmt_4", NonAsgnStmt_5 = "NonAsgnStmt_5", NonAsgnStmt_6 = "NonAsgnStmt_6", NonAsgnStmt_7 = "NonAsgnStmt_7", NonAsgnStmt_8 = "NonAsgnStmt_8", NonAsgnStmt_9 = "NonAsgnStmt_9", IfStmt = "IfStmt", IfStmt_$0 = "IfStmt_$0", BlockStmt = "BlockStmt", NuairStmt = "NuairStmt", LeStmt = "LeStmt", LeStmt_$0 = "LeStmt_$0", DefnStmt = "DefnStmt", AssgnStmt = "AssgnStmt", GniomhStmt = "GniomhStmt", CtlchStmt = "CtlchStmt", CtlchStmt_$0 = "CtlchStmt_$0", BrisStmt = "BrisStmt", CCStmt = "CCStmt", ToradhStmt = "ToradhStmt", Expr = "Expr", And = "And", And_$0 = "And_$0", Or = "Or", Or_$0 = "Or_$0", Eq = "Eq", Eq_$0 = "Eq_$0", Comp = "Comp", Comp_$0 = "Comp_$0", Sum = "Sum", Sum_$0 = "Sum_$0", Product = "Product", Product_$0 = "Product_$0", Prefix = "Prefix", Postfix = "Postfix", ObjLookups = "ObjLookups", ObjLookups_$0 = "ObjLookups_$0", PostOp_1 = "PostOp_1", PostOp_2 = "PostOp_2", Atom_1 = "Atom_1", Atom_2 = "Atom_2", Atom_3 = "Atom_3", Atom_4 = "Atom_4", Atom_5 = "Atom_5", Atom_6 = "Atom_6", Atom_7 = "Atom_7", Atom_8 = "Atom_8", GniomhExpr = "GniomhExpr", ListLit = "ListLit", CSArgs = "CSArgs", CSArgs_$0 = "CSArgs_$0", CSIDs = "CSIDs", CSIDs_$0 = "CSIDs_$0", ID = "ID", ID_$0 = "ID_$0", Bool = "Bool", Neamhni = "Neamhni", Int = "Int", Teacs = "Teacs", Teacs_$0_1 = "Teacs_$0_1", Teacs_$0_2 = "Teacs_$0_2", _ = "_", wspace = "wspace", gap_1 = "gap_1", gap_2 = "gap_2", gap_3 = "gap_3", PlusMinus = "PlusMinus", AsgnOp = "AsgnOp", MulDiv = "MulDiv", Compare = "Compare", Keyword_1 = "Keyword_1", Keyword_2 = "Keyword_2", Keyword_3 = "Keyword_3", Keyword_4 = "Keyword_4", Keyword_5 = "Keyword_5", Keyword_6 = "Keyword_6", Keyword_7 = "Keyword_7", Keyword_8 = "Keyword_8", Keyword_9 = "Keyword_9", $EOF = "$EOF" } export interface Program { kind: ASTKinds.Program; stmts: AsgnStmt[]; } export type AsgnStmt = AsgnStmt_1 | AsgnStmt_2 | AsgnStmt_3 | AsgnStmt_4 | AsgnStmt_5 | AsgnStmt_6 | AsgnStmt_7 | AsgnStmt_8 | AsgnStmt_9 | AsgnStmt_10 | AsgnStmt_11 | AsgnStmt_12; export type AsgnStmt_1 = IfStmt; export type AsgnStmt_2 = BlockStmt; export type AsgnStmt_3 = NuairStmt; export type AsgnStmt_4 = LeStmt; export type AsgnStmt_5 = CCStmt; export type AsgnStmt_6 = BrisStmt; export type AsgnStmt_7 = CtlchStmt; export type AsgnStmt_8 = GniomhStmt; export type AsgnStmt_9 = ToradhStmt; export type AsgnStmt_10 = AssgnStmt; export type AsgnStmt_11 = DefnStmt; export type AsgnStmt_12 = Expr; export type NonAsgnStmt = NonAsgnStmt_1 | NonAsgnStmt_2 | NonAsgnStmt_3 | NonAsgnStmt_4 | NonAsgnStmt_5 | NonAsgnStmt_6 | NonAsgnStmt_7 | NonAsgnStmt_8 | NonAsgnStmt_9; export type NonAsgnStmt_1 = IfStmt; export type NonAsgnStmt_2 = NuairStmt; export type NonAsgnStmt_3 = LeStmt; export type NonAsgnStmt_4 = CCStmt; export type NonAsgnStmt_5 = BrisStmt; export type NonAsgnStmt_6 = ToradhStmt; export type NonAsgnStmt_7 = BlockStmt; export type NonAsgnStmt_8 = AssgnStmt; export type NonAsgnStmt_9 = Expr; export declare class IfStmt { kind: ASTKinds.IfStmt; expr: Expr; stmt: NonAsgnStmt; elsebranch: Nullable; accept: Acceptor; constructor(expr: Expr, stmt: NonAsgnStmt, elsebranch: Nullable); } export interface IfStmt_$0 { kind: ASTKinds.IfStmt_$0; stmt: NonAsgnStmt; } export declare class BlockStmt { kind: ASTKinds.BlockStmt; blk: AsgnStmt[]; accept: Acceptor; constructor(blk: AsgnStmt[]); } export declare class NuairStmt { kind: ASTKinds.NuairStmt; expr: Expr; stmt: NonAsgnStmt; accept: Acceptor; constructor(expr: Expr, stmt: NonAsgnStmt); } export declare class LeStmt { kind: ASTKinds.LeStmt; id: ID; strt: Expr; end: Expr; step: Nullable; stmt: NonAsgnStmt; accept: Acceptor; constructor(id: ID, strt: Expr, end: Expr, step: Nullable, stmt: NonAsgnStmt); } export interface LeStmt_$0 { kind: ASTKinds.LeStmt_$0; step: Expr; } export declare class DefnStmt { kind: ASTKinds.DefnStmt; idstart: PosInfo; id: ID; idend: PosInfo; expr: Expr; accept: Acceptor; constructor(idstart: PosInfo, id: ID, idend: PosInfo, expr: Expr); } export declare class AssgnStmt { kind: ASTKinds.AssgnStmt; lstart: PosInfo; lhs: Postfix; lend: PosInfo; op: AsgnOp; expr: Expr; accept: Acceptor; constructor(lstart: PosInfo, lhs: Postfix, lend: PosInfo, op: AsgnOp, expr: Expr); } export declare class GniomhStmt { kind: ASTKinds.GniomhStmt; id: ID; args: Nullable; stmts: AsgnStmt[]; accept: Acceptor; constructor(id: ID, args: Nullable, stmts: AsgnStmt[]); } export declare class CtlchStmt { kind: ASTKinds.CtlchStmt; id: ID; tuis: Nullable; gniomhs: GniomhStmt[]; accept: Acceptor; constructor(id: ID, tuis: Nullable, gniomhs: GniomhStmt[]); } export interface CtlchStmt_$0 { kind: ASTKinds.CtlchStmt_$0; parentstart: PosInfo; id: ID; parentend: PosInfo; } export interface BrisStmt { kind: ASTKinds.BrisStmt; } export interface CCStmt { kind: ASTKinds.CCStmt; } export declare class ToradhStmt { kind: ASTKinds.ToradhStmt; exp: Nullable; accept: Acceptor; constructor(exp: Nullable); } export type Expr = And; export declare class And { kind: ASTKinds.And; start: PosInfo; head: Or; tail: And_$0[]; end: PosInfo; evalfn: EvalFn; qeval: Quick.MaybeEv; accept: Acceptor; constructor(start: PosInfo, head: Or, tail: And_$0[], end: PosInfo); } export interface And_$0 { kind: ASTKinds.And_$0; trm: Or; } export declare class Or { kind: ASTKinds.Or; start: PosInfo; head: Eq; tail: Or_$0[]; end: PosInfo; evalfn: EvalFn; qeval: Quick.MaybeEv; accept: Acceptor; constructor(start: PosInfo, head: Eq, tail: Or_$0[], end: PosInfo); } export interface Or_$0 { kind: ASTKinds.Or_$0; trm: Eq; } export declare class Eq { kind: ASTKinds.Eq; start: PosInfo; head: Comp; tail: Eq_$0[]; end: PosInfo; evalfn: EvalFn; qeval: Quick.MaybeEv; accept: Acceptor; constructor(start: PosInfo, head: Comp, tail: Eq_$0[], end: PosInfo); } export interface Eq_$0 { kind: ASTKinds.Eq_$0; op: string; trm: Comp; } export declare class Comp { kind: ASTKinds.Comp; start: PosInfo; head: Sum; tail: Comp_$0[]; end: PosInfo; evalfn: EvalFn; qeval: Quick.MaybeEv; accept: Acceptor; constructor(start: PosInfo, head: Sum, tail: Comp_$0[], end: PosInfo); } export interface Comp_$0 { kind: ASTKinds.Comp_$0; op: Compare; trm: Sum; } export declare class Sum { kind: ASTKinds.Sum; start: PosInfo; head: Product; tail: Sum_$0[]; end: PosInfo; evalfn: EvalFn; qeval: Quick.MaybeEv; accept: Acceptor; constructor(start: PosInfo, head: Product, tail: Sum_$0[], end: PosInfo); } export interface Sum_$0 { kind: ASTKinds.Sum_$0; op: PlusMinus; trm: Product; } export declare class Product { kind: ASTKinds.Product; start: PosInfo; head: Prefix; tail: Product_$0[]; end: PosInfo; evalfn: EvalFn; qeval: Quick.MaybeEv; accept: Acceptor; constructor(start: PosInfo, head: Prefix, tail: Product_$0[], end: PosInfo); } export interface Product_$0 { kind: ASTKinds.Product_$0; op: MulDiv; trm: Prefix; } export declare class Prefix { kind: ASTKinds.Prefix; start: PosInfo; op: Nullable; pf: Postfix; end: PosInfo; evalfn: EvalFn; qeval: Quick.MaybeEv; constructor(start: PosInfo, op: Nullable, pf: Postfix, end: PosInfo); } export declare class Postfix { kind: ASTKinds.Postfix; start: PosInfo; at: ObjLookups; ops: PostOp[]; end: PosInfo; evalfn: EvalFn; qeval: Quick.MaybeEv; accept: Acceptor; constructor(start: PosInfo, at: ObjLookups, ops: PostOp[], end: PosInfo); } export declare class ObjLookups { kind: ASTKinds.ObjLookups; start: PosInfo; attrs: ObjLookups_$0[]; root: Atom; end: PosInfo; evalfn: EvalFn; qeval: Quick.MaybeEv; accept: Acceptor; constructor(start: PosInfo, attrs: ObjLookups_$0[], root: Atom, end: PosInfo); } export interface ObjLookups_$0 { kind: ASTKinds.ObjLookups_$0; id: ID; } export type PostOp = PostOp_1 | PostOp_2; export interface PostOp_1 { kind: ASTKinds.PostOp_1; args: Nullable; } export interface PostOp_2 { kind: ASTKinds.PostOp_2; expr: Expr; } export type Atom = Atom_1 | Atom_2 | Atom_3 | Atom_4 | Atom_5 | Atom_6 | Atom_7 | Atom_8; export declare class Atom_1 { kind: ASTKinds.Atom_1; trm: Expr; evalfn: EvalFn; qeval: Quick.MaybeEv; accept: Acceptor; constructor(trm: Expr); } export type Atom_2 = ID; export type Atom_3 = Teacs; export type Atom_4 = Int; export type Atom_5 = Bool; export type Atom_6 = Neamhni; export type Atom_7 = ListLit; export type Atom_8 = GniomhExpr; export declare class GniomhExpr { kind: ASTKinds.GniomhExpr; args: Nullable; stmts: AsgnStmt[]; evalfn: EvalFn; qeval: Quick.EvalFn; accept: Acceptor; constructor(args: Nullable, stmts: AsgnStmt[]); } export declare class ListLit { kind: ASTKinds.ListLit; els: Nullable; evalfn: EvalFn; qeval: Quick.MaybeEv; accept: Acceptor; constructor(els: Nullable); } export declare class CSArgs { kind: ASTKinds.CSArgs; start: PosInfo; head: Expr; tail: CSArgs_$0[]; end: PosInfo; evalfn: (env: Context) => Promise; qeval: ((env: Context) => Value[]) | null; exprs: Expr[]; constructor(start: PosInfo, head: Expr, tail: CSArgs_$0[], end: PosInfo); } export interface CSArgs_$0 { kind: ASTKinds.CSArgs_$0; exp: Expr; } export declare class CSIDs { kind: ASTKinds.CSIDs; head: ID; tail: CSIDs_$0[]; ids: ID[]; constructor(head: ID, tail: CSIDs_$0[]); } export interface CSIDs_$0 { kind: ASTKinds.CSIDs_$0; id: ID; } export declare class ID { kind: ASTKinds.ID; start: PosInfo; id: string; end: PosInfo; evalfn: EvalFn; qeval: Quick.EvalFn; accept: Acceptor; depth: PossibleResolution; constructor(start: PosInfo, id: string, end: PosInfo); } export interface ID_$0 { kind: ASTKinds.ID_$0; } export declare class Bool { kind: ASTKinds.Bool; bool: string; evalfn: EvalFn; qeval: Quick.EvalFn; constructor(bool: string); } export declare class Neamhni { kind: ASTKinds.Neamhni; evalfn: EvalFn; qeval: Quick.EvalFn; constructor(); } export declare class Int { kind: ASTKinds.Int; int: string; evalfn: EvalFn; qeval: Quick.EvalFn; constructor(int: string); } export declare class Teacs { kind: ASTKinds.Teacs; lit: Teacs_$0; evalfn: EvalFn; qeval: Quick.EvalFn; constructor(lit: Teacs_$0); } export type Teacs_$0 = Teacs_$0_1 | Teacs_$0_2; export interface Teacs_$0_1 { kind: ASTKinds.Teacs_$0_1; start: PosInfo; val: string; end: PosInfo; } export interface Teacs_$0_2 { kind: ASTKinds.Teacs_$0_2; start: PosInfo; val: string; end: PosInfo; } export type _ = wspace[]; export type wspace = string; export type gap = gap_1 | gap_2 | gap_3; export type gap_1 = wspace; export type gap_2 = string; export type gap_3 = string; export type PlusMinus = string; export type AsgnOp = string; export type MulDiv = string; export type Compare = string; export type Keyword = Keyword_1 | Keyword_2 | Keyword_3 | Keyword_4 | Keyword_5 | Keyword_6 | Keyword_7 | Keyword_8 | Keyword_9; export type Keyword_1 = string; export type Keyword_2 = string; export type Keyword_3 = string; export type Keyword_4 = string; export type Keyword_5 = string; export type Keyword_6 = string; export type Keyword_7 = string; export type Keyword_8 = string; export type Keyword_9 = string; export declare class Parser { private readonly input; private pos; private negating; private memoSafe; constructor(input: string); reset(pos: PosInfo): void; finished(): boolean; clearMemos(): void; matchProgram($$dpth: number, $$cr?: ErrorTracker): Nullable; matchAsgnStmt($$dpth: number, $$cr?: ErrorTracker): Nullable; matchAsgnStmt_1($$dpth: number, $$cr?: ErrorTracker): Nullable; matchAsgnStmt_2($$dpth: number, $$cr?: ErrorTracker): Nullable; matchAsgnStmt_3($$dpth: number, $$cr?: ErrorTracker): Nullable; matchAsgnStmt_4($$dpth: number, $$cr?: ErrorTracker): Nullable; matchAsgnStmt_5($$dpth: number, $$cr?: ErrorTracker): Nullable; matchAsgnStmt_6($$dpth: number, $$cr?: ErrorTracker): Nullable; matchAsgnStmt_7($$dpth: number, $$cr?: ErrorTracker): Nullable; matchAsgnStmt_8($$dpth: number, $$cr?: ErrorTracker): Nullable; matchAsgnStmt_9($$dpth: number, $$cr?: ErrorTracker): Nullable; matchAsgnStmt_10($$dpth: number, $$cr?: ErrorTracker): Nullable; matchAsgnStmt_11($$dpth: number, $$cr?: ErrorTracker): Nullable; matchAsgnStmt_12($$dpth: number, $$cr?: ErrorTracker): Nullable; matchNonAsgnStmt($$dpth: number, $$cr?: ErrorTracker): Nullable; matchNonAsgnStmt_1($$dpth: number, $$cr?: ErrorTracker): Nullable; matchNonAsgnStmt_2($$dpth: number, $$cr?: ErrorTracker): Nullable; matchNonAsgnStmt_3($$dpth: number, $$cr?: ErrorTracker): Nullable; matchNonAsgnStmt_4($$dpth: number, $$cr?: ErrorTracker): Nullable; matchNonAsgnStmt_5($$dpth: number, $$cr?: ErrorTracker): Nullable; matchNonAsgnStmt_6($$dpth: number, $$cr?: ErrorTracker): Nullable; matchNonAsgnStmt_7($$dpth: number, $$cr?: ErrorTracker): Nullable; matchNonAsgnStmt_8($$dpth: number, $$cr?: ErrorTracker): Nullable; matchNonAsgnStmt_9($$dpth: number, $$cr?: ErrorTracker): Nullable; matchIfStmt($$dpth: number, $$cr?: ErrorTracker): Nullable; matchIfStmt_$0($$dpth: number, $$cr?: ErrorTracker): Nullable; matchBlockStmt($$dpth: number, $$cr?: ErrorTracker): Nullable; matchNuairStmt($$dpth: number, $$cr?: ErrorTracker): Nullable; matchLeStmt($$dpth: number, $$cr?: ErrorTracker): Nullable; matchLeStmt_$0($$dpth: number, $$cr?: ErrorTracker): Nullable; matchDefnStmt($$dpth: number, $$cr?: ErrorTracker): Nullable; matchAssgnStmt($$dpth: number, $$cr?: ErrorTracker): Nullable; matchGniomhStmt($$dpth: number, $$cr?: ErrorTracker): Nullable; matchCtlchStmt($$dpth: number, $$cr?: ErrorTracker): Nullable; matchCtlchStmt_$0($$dpth: number, $$cr?: ErrorTracker): Nullable; matchBrisStmt($$dpth: number, $$cr?: ErrorTracker): Nullable; matchCCStmt($$dpth: number, $$cr?: ErrorTracker): Nullable; matchToradhStmt($$dpth: number, $$cr?: ErrorTracker): Nullable; matchExpr($$dpth: number, $$cr?: ErrorTracker): Nullable; matchAnd($$dpth: number, $$cr?: ErrorTracker): Nullable; matchAnd_$0($$dpth: number, $$cr?: ErrorTracker): Nullable; matchOr($$dpth: number, $$cr?: ErrorTracker): Nullable; matchOr_$0($$dpth: number, $$cr?: ErrorTracker): Nullable; matchEq($$dpth: number, $$cr?: ErrorTracker): Nullable; matchEq_$0($$dpth: number, $$cr?: ErrorTracker): Nullable; matchComp($$dpth: number, $$cr?: ErrorTracker): Nullable; matchComp_$0($$dpth: number, $$cr?: ErrorTracker): Nullable; matchSum($$dpth: number, $$cr?: ErrorTracker): Nullable; matchSum_$0($$dpth: number, $$cr?: ErrorTracker): Nullable; matchProduct($$dpth: number, $$cr?: ErrorTracker): Nullable; matchProduct_$0($$dpth: number, $$cr?: ErrorTracker): Nullable; matchPrefix($$dpth: number, $$cr?: ErrorTracker): Nullable; matchPostfix($$dpth: number, $$cr?: ErrorTracker): Nullable; matchObjLookups($$dpth: number, $$cr?: ErrorTracker): Nullable; matchObjLookups_$0($$dpth: number, $$cr?: ErrorTracker): Nullable; matchPostOp($$dpth: number, $$cr?: ErrorTracker): Nullable; matchPostOp_1($$dpth: number, $$cr?: ErrorTracker): Nullable; matchPostOp_2($$dpth: number, $$cr?: ErrorTracker): Nullable; matchAtom($$dpth: number, $$cr?: ErrorTracker): Nullable; matchAtom_1($$dpth: number, $$cr?: ErrorTracker): Nullable; matchAtom_2($$dpth: number, $$cr?: ErrorTracker): Nullable; matchAtom_3($$dpth: number, $$cr?: ErrorTracker): Nullable; matchAtom_4($$dpth: number, $$cr?: ErrorTracker): Nullable; matchAtom_5($$dpth: number, $$cr?: ErrorTracker): Nullable; matchAtom_6($$dpth: number, $$cr?: ErrorTracker): Nullable; matchAtom_7($$dpth: number, $$cr?: ErrorTracker): Nullable; matchAtom_8($$dpth: number, $$cr?: ErrorTracker): Nullable; matchGniomhExpr($$dpth: number, $$cr?: ErrorTracker): Nullable; matchListLit($$dpth: number, $$cr?: ErrorTracker): Nullable; matchCSArgs($$dpth: number, $$cr?: ErrorTracker): Nullable; matchCSArgs_$0($$dpth: number, $$cr?: ErrorTracker): Nullable; matchCSIDs($$dpth: number, $$cr?: ErrorTracker): Nullable; matchCSIDs_$0($$dpth: number, $$cr?: ErrorTracker): Nullable; matchID($$dpth: number, $$cr?: ErrorTracker): Nullable; matchID_$0($$dpth: number, $$cr?: ErrorTracker): Nullable; matchBool($$dpth: number, $$cr?: ErrorTracker): Nullable; matchNeamhni($$dpth: number, $$cr?: ErrorTracker): Nullable; matchInt($$dpth: number, $$cr?: ErrorTracker): Nullable; matchTeacs($$dpth: number, $$cr?: ErrorTracker): Nullable; matchTeacs_$0($$dpth: number, $$cr?: ErrorTracker): Nullable; matchTeacs_$0_1($$dpth: number, $$cr?: ErrorTracker): Nullable; matchTeacs_$0_2($$dpth: number, $$cr?: ErrorTracker): Nullable; match_($$dpth: number, $$cr?: ErrorTracker): Nullable<_>; matchwspace($$dpth: number, $$cr?: ErrorTracker): Nullable; matchgap($$dpth: number, $$cr?: ErrorTracker): Nullable; matchgap_1($$dpth: number, $$cr?: ErrorTracker): Nullable; matchgap_2($$dpth: number, $$cr?: ErrorTracker): Nullable; matchgap_3($$dpth: number, $$cr?: ErrorTracker): Nullable; matchPlusMinus($$dpth: number, $$cr?: ErrorTracker): Nullable; matchAsgnOp($$dpth: number, $$cr?: ErrorTracker): Nullable; matchMulDiv($$dpth: number, $$cr?: ErrorTracker): Nullable; matchCompare($$dpth: number, $$cr?: ErrorTracker): Nullable; matchKeyword($$dpth: number, $$cr?: ErrorTracker): Nullable; matchKeyword_1($$dpth: number, $$cr?: ErrorTracker): Nullable; matchKeyword_2($$dpth: number, $$cr?: ErrorTracker): Nullable; matchKeyword_3($$dpth: number, $$cr?: ErrorTracker): Nullable; matchKeyword_4($$dpth: number, $$cr?: ErrorTracker): Nullable; matchKeyword_5($$dpth: number, $$cr?: ErrorTracker): Nullable; matchKeyword_6($$dpth: number, $$cr?: ErrorTracker): Nullable; matchKeyword_7($$dpth: number, $$cr?: ErrorTracker): Nullable; matchKeyword_8($$dpth: number, $$cr?: ErrorTracker): Nullable; matchKeyword_9($$dpth: number, $$cr?: ErrorTracker): Nullable; test(): boolean; parse(): ParseResult; mark(): PosInfo; private loopPlus; private loop; private run; private choice; private regexAccept; private tryConsume; private noConsume; private negate; private memoise; private match$EOF; } export declare function parse(s: string): ParseResult; export interface ParseResult { ast: Nullable; errs: SyntaxErr[]; } export interface PosInfo { readonly overallPos: number; readonly line: number; readonly offset: number; } export interface RegexMatch { readonly kind: "RegexMatch"; readonly negated: boolean; readonly literal: string; } export type EOFMatch = { kind: "EOF"; negated: boolean; }; export type MatchAttempt = RegexMatch | EOFMatch; export declare class SyntaxErr { pos: PosInfo; expmatches: MatchAttempt[]; constructor(pos: PosInfo, expmatches: MatchAttempt[]); toString(): string; } declare class ErrorTracker { private mxpos; private regexset; private pmatches; record(pos: PosInfo, result: any, att: MatchAttempt): void; getErr(): SyntaxErr | null; } export {};