collapse.d.ts 1.5 KB

123456789101112131415161718192021222324252627282930313233
  1. import { MmlNode } from '../../core/MmlTree/MmlNode.js';
  2. import { ComplexityVisitor } from './visitor.js';
  3. export declare type CollapseFunction = (node: MmlNode, complexity: number) => number;
  4. export declare type CollapseFunctionMap = Map<string, CollapseFunction>;
  5. export declare type TypeRole<T> = {
  6. [type: string]: T | {
  7. [role: string]: T;
  8. };
  9. };
  10. export declare class Collapse {
  11. static NOCOLLAPSE: number;
  12. complexity: ComplexityVisitor;
  13. cutoff: TypeRole<number>;
  14. marker: TypeRole<string>;
  15. collapse: CollapseFunctionMap;
  16. private idCount;
  17. constructor(visitor: ComplexityVisitor);
  18. check(node: MmlNode, complexity: number): number;
  19. protected defaultCheck(node: MmlNode, complexity: number, type: string): number;
  20. protected recordCollapse(node: MmlNode, complexity: number, text: string): number;
  21. protected unrecordCollapse(node: MmlNode): void;
  22. protected canUncollapse(node: MmlNode, n: number, m?: number): MmlNode | null;
  23. protected uncollapseChild(complexity: number, node: MmlNode, n: number, m?: number): number;
  24. protected splitAttribute(node: MmlNode, id: string): string[];
  25. protected getText(node: MmlNode): string;
  26. protected findChildText(node: MmlNode, id: string): string;
  27. protected findChild(node: MmlNode, id: string): MmlNode | null;
  28. makeCollapse(node: MmlNode): void;
  29. makeActions(nodes: MmlNode[]): void;
  30. private makeId;
  31. makeAction(node: MmlNode): void;
  32. addMrow(node: MmlNode): MmlNode;
  33. }