版博士V2.0程序
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 
 
 

201 wiersze
5.2 KiB

  1. import { RawSourceMap } from 'source-map';
  2. export declare function baseCompile(source: string, options?: CompileOptions): CodeGenResult;
  3. export declare interface CodeGenOptions {
  4. mode?: 'normal' | 'arrow';
  5. breakLineCode?: '\n' | ';';
  6. needIndent?: boolean;
  7. onError?: CompileErrorHandler;
  8. sourceMap?: boolean;
  9. filename?: string;
  10. }
  11. declare interface CodeGenResult {
  12. code: string;
  13. ast: ResourceNode;
  14. map?: RawSourceMap;
  15. }
  16. export declare type CompileCacheKeyHandler = (source: string) => string;
  17. export declare type CompileDomain = 'tokenizer' | 'parser' | 'generator' | 'transformer' | 'compiler';
  18. export declare interface CompileError extends SyntaxError {
  19. code: number;
  20. domain?: CompileDomain;
  21. location?: SourceLocation;
  22. }
  23. export declare const CompileErrorCodes: {
  24. readonly EXPECTED_TOKEN: 1;
  25. readonly INVALID_TOKEN_IN_PLACEHOLDER: 2;
  26. readonly UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER: 3;
  27. readonly UNKNOWN_ESCAPE_SEQUENCE: 4;
  28. readonly INVALID_UNICODE_ESCAPE_SEQUENCE: 5;
  29. readonly UNBALANCED_CLOSING_BRACE: 6;
  30. readonly UNTERMINATED_CLOSING_BRACE: 7;
  31. readonly EMPTY_PLACEHOLDER: 8;
  32. readonly NOT_ALLOW_NEST_PLACEHOLDER: 9;
  33. readonly INVALID_LINKED_FORMAT: 10;
  34. readonly MUST_HAVE_MESSAGES_IN_PLURAL: 11;
  35. readonly UNEXPECTED_EMPTY_LINKED_MODIFIER: 12;
  36. readonly UNEXPECTED_EMPTY_LINKED_KEY: 13;
  37. readonly UNEXPECTED_LEXICAL_ANALYSIS: 14;
  38. readonly __EXTEND_POINT__: 15;
  39. };
  40. export declare type CompileErrorCodes = (typeof CompileErrorCodes)[keyof typeof CompileErrorCodes];
  41. export declare type CompileErrorHandler = (error: CompileError) => void;
  42. export declare type CompileOptions = {
  43. onCacheKey?: CompileCacheKeyHandler;
  44. } & TransformOptions & CodeGenOptions & ParserOptions & TokenizeOptions;
  45. export declare function createCompileError<T extends number>(code: T, loc: SourceLocation | null, options?: CreateCompileErrorOptions): CompileError;
  46. export declare interface CreateCompileErrorOptions {
  47. domain?: CompileDomain;
  48. messages?: {
  49. [code: number]: string;
  50. };
  51. args?: unknown[];
  52. }
  53. export declare function createLocation(start: Position, end: Position, source?: string): SourceLocation;
  54. export declare function createParser(options?: ParserOptions): Parser;
  55. export declare function createPosition(line: number, column: number, offset: number): Position;
  56. /* Excluded from this release type: defaultOnError */
  57. export declare const detectHtmlTag: (source: string) => boolean;
  58. export declare const ERROR_DOMAIN = "parser";
  59. /* Excluded from this release type: errorMessages */
  60. export declare const enum HelperNameMap {
  61. LIST = "list",
  62. NAMED = "named",
  63. PLURAL = "plural",
  64. LINKED = "linked",
  65. MESSAGE = "message",
  66. TYPE = "type",
  67. INTERPOLATE = "interpolate",
  68. NORMALIZE = "normalize"
  69. }
  70. export declare type Identifier = string;
  71. export declare interface LinkedKeyNode extends Node_2 {
  72. type: NodeTypes.LinkedKey;
  73. value: string;
  74. }
  75. export declare interface LinkedModifierNode extends Node_2 {
  76. type: NodeTypes.LinkedModifier;
  77. value: Identifier;
  78. }
  79. export declare interface LinkedNode extends Node_2 {
  80. type: NodeTypes.Linked;
  81. modifier?: LinkedModifierNode;
  82. key: LinkedKeyNode | NamedNode | ListNode | LiteralNode;
  83. }
  84. export declare interface ListNode extends Node_2 {
  85. type: NodeTypes.List;
  86. index: number;
  87. }
  88. export declare interface LiteralNode extends Node_2 {
  89. type: NodeTypes.Literal;
  90. value: string;
  91. }
  92. export declare const LocationStub: SourceLocation;
  93. declare type MessageElementNode = TextNode | NamedNode | ListNode | LiteralNode | LinkedNode;
  94. export declare interface MessageNode extends Node_2 {
  95. type: NodeTypes.Message;
  96. items: MessageElementNode[];
  97. }
  98. export declare interface NamedNode extends Node_2 {
  99. type: NodeTypes.Named;
  100. key: Identifier;
  101. }
  102. declare interface Node_2 {
  103. type: NodeTypes;
  104. start: number;
  105. end: number;
  106. loc?: SourceLocation;
  107. }
  108. export { Node_2 as Node }
  109. export declare const enum NodeTypes {
  110. Resource = 0,
  111. Plural = 1,
  112. Message = 2,
  113. Text = 3,
  114. Named = 4,
  115. List = 5,
  116. Linked = 6,
  117. LinkedKey = 7,
  118. LinkedModifier = 8,
  119. Literal = 9
  120. }
  121. export declare interface Parser {
  122. parse(source: string): ResourceNode;
  123. }
  124. export declare interface ParserOptions {
  125. location?: boolean;
  126. onError?: CompileErrorHandler;
  127. }
  128. export declare interface PluralNode extends Node_2 {
  129. type: NodeTypes.Plural;
  130. cases: MessageNode[];
  131. }
  132. export declare interface Position {
  133. offset: number;
  134. line: number;
  135. column: number;
  136. }
  137. export declare interface ResourceNode extends Node_2 {
  138. type: NodeTypes.Resource;
  139. body: MessageNode | PluralNode;
  140. helpers?: string[];
  141. }
  142. export declare interface SourceLocation {
  143. start: Position;
  144. end: Position;
  145. source?: string;
  146. }
  147. export declare interface TextNode extends Node_2 {
  148. type: NodeTypes.Text;
  149. value: string;
  150. }
  151. export declare interface TokenizeOptions {
  152. location?: boolean;
  153. onError?: CompileErrorHandler;
  154. }
  155. export declare interface TransformOptions {
  156. onError?: CompileErrorHandler;
  157. }
  158. export { }