版博士V2.0程序
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

ast.d.ts 3.7 KiB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. import type { Token, Comment } from "../types";
  2. export interface Locations {
  3. loc: SourceLocation;
  4. range: [number, number];
  5. }
  6. interface BaseJSONNode extends Locations {
  7. type: string;
  8. }
  9. export interface SourceLocation {
  10. start: Position;
  11. end: Position;
  12. }
  13. export interface Position {
  14. line: number;
  15. column: number;
  16. }
  17. export declare type JSONNode = JSONProgram | JSONExpressionStatement | JSONExpression | JSONProperty | JSONIdentifier | JSONTemplateLiteral | JSONTemplateElement;
  18. export interface JSONProgram extends BaseJSONNode {
  19. type: "Program";
  20. body: [JSONExpressionStatement];
  21. comments: Comment[];
  22. tokens: Token[];
  23. parent: null;
  24. }
  25. export interface JSONExpressionStatement extends BaseJSONNode {
  26. type: "JSONExpressionStatement";
  27. expression: JSONExpression;
  28. parent: JSONProgram;
  29. }
  30. export declare type JSONExpression = JSONArrayExpression | JSONObjectExpression | JSONLiteral | JSONUnaryExpression | JSONNumberIdentifier | JSONUndefinedIdentifier | JSONTemplateLiteral;
  31. export interface JSONArrayExpression extends BaseJSONNode {
  32. type: "JSONArrayExpression";
  33. elements: (JSONExpression | null)[];
  34. parent: JSONArrayExpression | JSONProperty | JSONExpressionStatement;
  35. }
  36. export interface JSONObjectExpression extends BaseJSONNode {
  37. type: "JSONObjectExpression";
  38. properties: JSONProperty[];
  39. parent: JSONArrayExpression | JSONProperty | JSONExpressionStatement;
  40. }
  41. export interface JSONProperty extends BaseJSONNode {
  42. type: "JSONProperty";
  43. key: JSONIdentifier | JSONStringLiteral | JSONNumberLiteral;
  44. value: JSONExpression;
  45. kind: "init";
  46. method: false;
  47. shorthand: false;
  48. computed: false;
  49. parent: JSONObjectExpression;
  50. }
  51. export interface JSONIdentifier extends BaseJSONNode {
  52. type: "JSONIdentifier";
  53. name: string;
  54. parent?: JSONArrayExpression | JSONProperty | JSONExpressionStatement | JSONUnaryExpression;
  55. }
  56. export interface JSONNumberIdentifier extends JSONIdentifier {
  57. name: "Infinity" | "NaN";
  58. }
  59. export interface JSONUndefinedIdentifier extends JSONIdentifier {
  60. name: "undefined";
  61. }
  62. interface JSONLiteralBase extends BaseJSONNode {
  63. type: "JSONLiteral";
  64. raw: string;
  65. parent?: JSONArrayExpression | JSONProperty | JSONExpressionStatement | JSONUnaryExpression;
  66. }
  67. export interface JSONStringLiteral extends JSONLiteralBase {
  68. value: string;
  69. regex: null;
  70. bigint: null;
  71. }
  72. export interface JSONNumberLiteral extends JSONLiteralBase {
  73. value: number;
  74. regex: null;
  75. bigint: null;
  76. }
  77. export interface JSONKeywordLiteral extends JSONLiteralBase {
  78. value: boolean | null;
  79. regex: null;
  80. bigint: null;
  81. }
  82. export interface JSONRegExpLiteral extends JSONLiteralBase {
  83. value: null;
  84. regex: {
  85. pattern: string;
  86. flags: string;
  87. };
  88. bigint: null;
  89. }
  90. export interface JSONBigIntLiteral extends JSONLiteralBase {
  91. value: null;
  92. regex: null;
  93. bigint: string;
  94. }
  95. export declare type JSONLiteral = JSONStringLiteral | JSONNumberLiteral | JSONKeywordLiteral | JSONRegExpLiteral | JSONBigIntLiteral;
  96. export interface JSONUnaryExpression extends BaseJSONNode {
  97. type: "JSONUnaryExpression";
  98. operator: "-" | "+";
  99. prefix: true;
  100. argument: JSONNumberLiteral | JSONNumberIdentifier;
  101. parent: JSONArrayExpression | JSONProperty | JSONExpressionStatement;
  102. }
  103. export interface JSONTemplateLiteral extends BaseJSONNode {
  104. type: "JSONTemplateLiteral";
  105. quasis: [JSONTemplateElement];
  106. expressions: [];
  107. parent: JSONArrayExpression | JSONProperty | JSONExpressionStatement;
  108. }
  109. export interface JSONTemplateElement extends BaseJSONNode {
  110. type: "JSONTemplateElement";
  111. tail: boolean;
  112. value: {
  113. cooked: string;
  114. raw: string;
  115. };
  116. parent: JSONTemplateLiteral;
  117. }
  118. export {};