数通智联化工云平台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

200 lines
5.0 KiB

2 years ago
import { RawSourceMap } from 'source-map';
export declare function baseCompile(source: string, options?: CompileOptions): CodeGenResult;
export declare interface CodeGenOptions {
mode?: 'normal' | 'arrow';
breakLineCode?: '\n' | ';';
needIndent?: boolean;
onError?: CompileErrorHandler;
sourceMap?: boolean;
filename?: string;
}
declare interface CodeGenResult {
code: string;
ast: ResourceNode;
map?: RawSourceMap;
}
export declare type CompileCacheKeyHandler = (source: string) => string;
export declare type CompileDomain = 'tokenizer' | 'parser' | 'generator' | 'transformer' | 'compiler';
export declare interface CompileError extends SyntaxError {
code: number;
domain?: CompileDomain;
location?: SourceLocation;
}
export declare const CompileErrorCodes: {
readonly EXPECTED_TOKEN: 1;
readonly INVALID_TOKEN_IN_PLACEHOLDER: 2;
readonly UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER: 3;
readonly UNKNOWN_ESCAPE_SEQUENCE: 4;
readonly INVALID_UNICODE_ESCAPE_SEQUENCE: 5;
readonly UNBALANCED_CLOSING_BRACE: 6;
readonly UNTERMINATED_CLOSING_BRACE: 7;
readonly EMPTY_PLACEHOLDER: 8;
readonly NOT_ALLOW_NEST_PLACEHOLDER: 9;
readonly INVALID_LINKED_FORMAT: 10;
readonly MUST_HAVE_MESSAGES_IN_PLURAL: 11;
readonly UNEXPECTED_EMPTY_LINKED_MODIFIER: 12;
readonly UNEXPECTED_EMPTY_LINKED_KEY: 13;
readonly UNEXPECTED_LEXICAL_ANALYSIS: 14;
readonly __EXTEND_POINT__: 15;
};
export declare type CompileErrorCodes = typeof CompileErrorCodes[keyof typeof CompileErrorCodes];
export declare type CompileErrorHandler = (error: CompileError) => void;
export declare type CompileOptions = {
warnHtmlMessage?: boolean;
onCacheKey?: CompileCacheKeyHandler;
} & TransformOptions & CodeGenOptions & ParserOptions & TokenizeOptions;
export declare function createCompileError<T extends number>(code: T, loc: SourceLocation | null, options?: CreateCompileErrorOptions): CompileError;
export declare interface CreateCompileErrorOptions {
domain?: CompileDomain;
messages?: {
[code: number]: string;
};
args?: unknown[];
}
export declare function createLocation(start: Position, end: Position, source?: string): SourceLocation;
export declare function createParser(options?: ParserOptions): Parser;
export declare function createPosition(line: number, column: number, offset: number): Position;
/* Excluded from this release type: defaultOnError */
export declare const ERROR_DOMAIN = "parser";
/* Excluded from this release type: errorMessages */
export declare const enum HelperNameMap {
LIST = "list",
NAMED = "named",
PLURAL = "plural",
LINKED = "linked",
MESSAGE = "message",
TYPE = "type",
INTERPOLATE = "interpolate",
NORMALIZE = "normalize"
}
export declare type Identifier = string;
export declare interface LinkedKeyNode extends Node_2 {
type: NodeTypes.LinkedKey;
value: string;
}
export declare interface LinkedModifierNode extends Node_2 {
type: NodeTypes.LinkedModifier;
value: Identifier;
}
export declare interface LinkedNode extends Node_2 {
type: NodeTypes.Linked;
modifier?: LinkedModifierNode;
key: LinkedKeyNode | NamedNode | ListNode | LiteralNode;
}
export declare interface ListNode extends Node_2 {
type: NodeTypes.List;
index: number;
}
export declare interface LiteralNode extends Node_2 {
type: NodeTypes.Literal;
value: string;
}
export declare const LocationStub: SourceLocation;
declare type MessageElementNode = TextNode | NamedNode | ListNode | LiteralNode | LinkedNode;
export declare interface MessageNode extends Node_2 {
type: NodeTypes.Message;
items: MessageElementNode[];
}
export declare interface NamedNode extends Node_2 {
type: NodeTypes.Named;
key: Identifier;
}
declare interface Node_2 {
type: NodeTypes;
start: number;
end: number;
loc?: SourceLocation;
}
export { Node_2 as Node }
export declare const enum NodeTypes {
Resource = 0,
Plural = 1,
Message = 2,
Text = 3,
Named = 4,
List = 5,
Linked = 6,
LinkedKey = 7,
LinkedModifier = 8,
Literal = 9
}
export declare interface Parser {
parse(source: string): ResourceNode;
}
export declare interface ParserOptions {
location?: boolean;
onError?: CompileErrorHandler;
}
export declare interface PluralNode extends Node_2 {
type: NodeTypes.Plural;
cases: MessageNode[];
}
export declare interface Position {
offset: number;
line: number;
column: number;
}
export declare interface ResourceNode extends Node_2 {
type: NodeTypes.Resource;
body: MessageNode | PluralNode;
helpers?: string[];
}
export declare interface SourceLocation {
start: Position;
end: Position;
source?: string;
}
export declare interface TextNode extends Node_2 {
type: NodeTypes.Text;
value: string;
}
export declare interface TokenizeOptions {
location?: boolean;
onError?: CompileErrorHandler;
}
export declare interface TransformOptions {
onError?: CompileErrorHandler;
}
export { }