10
0

ast.d.ts 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import { Import } from './Import';
  2. export interface AstNode<T> {
  3. readonly val: T;
  4. readonly len: number;
  5. byteLength(): number;
  6. }
  7. export declare class NullAstNode implements AstNode<null> {
  8. readonly val: null;
  9. readonly len = 1;
  10. byteLength(): number;
  11. }
  12. export declare class BoolAstNode implements AstNode<boolean> {
  13. readonly val: boolean;
  14. readonly len = 1;
  15. constructor(val: boolean);
  16. byteLength(): number;
  17. }
  18. export declare class UintAstNode implements AstNode<number> {
  19. readonly val: number;
  20. readonly len: number;
  21. constructor(val: number);
  22. byteLength(): number;
  23. }
  24. export declare class NintAstNode implements AstNode<number> {
  25. readonly val: number;
  26. readonly len: number;
  27. constructor(val: number);
  28. byteLength(): number;
  29. }
  30. export declare class FloatAstNode implements AstNode<number> {
  31. readonly val: number;
  32. readonly len: number;
  33. constructor(val: number);
  34. byteLength(): number;
  35. }
  36. export declare class StrAstNode implements AstNode<string> {
  37. readonly val: string;
  38. readonly len: number;
  39. constructor(val: string);
  40. byteLength(): number;
  41. }
  42. export declare class BinAstNode implements AstNode<Uint8Array> {
  43. readonly val: Uint8Array;
  44. readonly len: number;
  45. constructor(val: Uint8Array);
  46. byteLength(): number;
  47. }
  48. export declare class ArrAstNode implements AstNode<AstNode<unknown>[] | null> {
  49. readonly val: AstNode<unknown>[] | null;
  50. readonly len: number;
  51. constructor(val: AstNode<unknown>[] | null);
  52. byteLength(): number;
  53. }
  54. export declare class ObjAstNode implements AstNode<Map<number, AstNode<unknown>> | null> {
  55. readonly val: Map<number, AstNode<unknown>> | null;
  56. readonly len: number;
  57. constructor(val: Map<number, AstNode<unknown>> | null);
  58. byteLength(): number;
  59. }
  60. export declare class AnnotationAstNode implements AstNode<AstNode<unknown>> {
  61. readonly val: AstNode<unknown>;
  62. readonly annotations: number[];
  63. readonly len: number;
  64. readonly annotationLen: number;
  65. constructor(val: AstNode<unknown>, annotations: number[]);
  66. byteLength(): number;
  67. }
  68. export declare const toAst: (val: unknown, symbols: Import) => AstNode<unknown>;