MapHandler.d.ts 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. import { SymbolMap } from './SymbolMap.js';
  2. import { ParseInput, ParseResult, ParseMethod } from './Types.js';
  3. export declare type HandlerType = 'delimiter' | 'macro' | 'character' | 'environment';
  4. export declare type HandlerConfig = {
  5. [P in HandlerType]?: string[];
  6. };
  7. export declare type FallbackConfig = {
  8. [P in HandlerType]?: ParseMethod;
  9. };
  10. export declare namespace MapHandler {
  11. let register: (map: SymbolMap) => void;
  12. let getMap: (name: string) => SymbolMap;
  13. }
  14. export declare class SubHandler {
  15. private _configuration;
  16. private _fallback;
  17. add(maps: string[], fallback: ParseMethod, priority?: number): void;
  18. parse(input: ParseInput): ParseResult;
  19. lookup<T>(symbol: string): T;
  20. contains(symbol: string): boolean;
  21. toString(): string;
  22. applicable(symbol: string): SymbolMap;
  23. retrieve(name: string): SymbolMap;
  24. private warn;
  25. }
  26. export declare class SubHandlers {
  27. private map;
  28. add(handlers: HandlerConfig, fallbacks: FallbackConfig, priority?: number): void;
  29. set(name: HandlerType, subHandler: SubHandler): void;
  30. get(name: HandlerType): SubHandler;
  31. retrieve(name: string): SymbolMap;
  32. keys(): IterableIterator<string>;
  33. }