import { Lexer, LexTree, Terminal } from "./Lexer"; export declare type Rule = string[]; export interface RuleSet { [key: string]: Rule[]; } export interface ParseTree { type: string; children: (ParseTree | LexTree)[]; } export declare class Parser { static terminals(rules: RuleSet, terminals: Terminal[]): Terminal[]; private static base; private static canOmit; private static canRepeat; private static first; private static follow; private static skipOmit; private static closure; private static goto; private static buildTable; private actionTable; constructor(rules: RuleSet, start: string, version?: string); parse(lexer: Lexer, tokens: LexTree[]): ParseTree; }