import { ExprGrammar } from "./expr_grammar.js"; import { Sym } from "./grammar_symbols.js"; import { TextLines } from "../textlines.js"; import { Parser, Result } from "../parser.js"; export type TerminalParsers = (terminals: Set) => (state: State, lines: TextLines, line: number, column: number) => { sym: Sym | null; state: State; result: Result; }[]; export declare function mkTerminalParsers(parsers: [Sym, Parser][]): TerminalParsers; export declare function orTerminalParsers(parsers: TerminalParsers[]): TerminalParsers; export declare function orGreedyTerminalParsers(parsers: TerminalParsers[]): TerminalParsers; export declare function lrP(exprGrammar: ExprGrammar, nonterminal_labels: [Sym, T][], terminal_parsers: TerminalParsers, invalid?: T | null): { maximum_valid: Parser; maximum_invalid: Parser; conflicts: Set; };