@guihz/trading-vue-editor-tes 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. package/README.md +30 -0
  2. package/lib/App.d.ts +3 -0
  3. package/lib/api/api.d.ts +1 -0
  4. package/lib/api/server.d.ts +8 -0
  5. package/lib/assets/parserTccWorker-CFBnUzVu.js +99 -0
  6. package/lib/assets/scriptsRunWorker-CSDMAOri.js +66 -0
  7. package/lib/components/editor/config/monarchTokens.d.ts +205 -0
  8. package/lib/components/editor/constants/contents.d.ts +40 -0
  9. package/lib/components/editor/constants/locals.d.ts +3 -0
  10. package/lib/components/editor/index.d.ts +21 -0
  11. package/lib/components/editor/parseScript/buildInConstants.d.ts +252 -0
  12. package/lib/components/editor/parseScript/buildInFuncNamespace/array.d.ts +144 -0
  13. package/lib/components/editor/parseScript/buildInFuncNamespace/color.d.ts +25 -0
  14. package/lib/components/editor/parseScript/buildInFuncNamespace/errorListener.d.ts +8 -0
  15. package/lib/components/editor/parseScript/buildInFuncNamespace/index.d.ts +12 -0
  16. package/lib/components/editor/parseScript/buildInFuncNamespace/input.d.ts +70 -0
  17. package/lib/components/editor/parseScript/buildInFuncNamespace/map.d.ts +37 -0
  18. package/lib/components/editor/parseScript/buildInFuncNamespace/math.d.ts +47 -0
  19. package/lib/components/editor/parseScript/buildInFuncNamespace/matrix.d.ts +136 -0
  20. package/lib/components/editor/parseScript/buildInFuncNamespace/string.d.ts +43 -0
  21. package/lib/components/editor/parseScript/buildInFuncNamespace/ta.d.ts +116 -0
  22. package/lib/components/editor/parseScript/buildInFuncNamespace/timeframe.d.ts +19 -0
  23. package/lib/components/editor/parseScript/buildInVariables.d.ts +122 -0
  24. package/lib/components/editor/parseScript/constants.d.ts +56 -0
  25. package/lib/components/editor/parseScript/enum.d.ts +248 -0
  26. package/lib/components/editor/parseScript/parseToJs.d.ts +44 -0
  27. package/lib/components/editor/parseScript/type.d.ts +27 -0
  28. package/lib/components/editor/parseScript/userTypeClass.d.ts +12 -0
  29. package/lib/components/editor/parseScript/utils.d.ts +8 -0
  30. package/lib/components/editor/parseScript/visitorParser.d.ts +303 -0
  31. package/lib/components/editor/parseScript/visitorUtils.d.ts +30 -0
  32. package/lib/components/editor/parseScript/workerStorage.d.ts +12 -0
  33. package/lib/components/editor/tokenizer/config.d.ts +40 -0
  34. package/lib/components/editor/tokenizer/utils.d.ts +33 -0
  35. package/lib/components/editor/type/index.d.ts +70 -0
  36. package/lib/components/editor/utils/color.d.ts +33 -0
  37. package/lib/components/editor/utils/completions.d.ts +61 -0
  38. package/lib/components/editor/utils/decorations.d.ts +23 -0
  39. package/lib/components/editor/utils/initEditor.d.ts +23 -0
  40. package/lib/components/editor/utils/overlayWidgets.d.ts +22 -0
  41. package/lib/components/editor/utils/parse.d.ts +43 -0
  42. package/lib/components/editor/utils/parserTccWorker.d.ts +25 -0
  43. package/lib/components/editor/utils/signatureHelp.d.ts +29 -0
  44. package/lib/components/editor/utils/suggestions.d.ts +18 -0
  45. package/lib/components/editor/utils/test.d.ts +22 -0
  46. package/lib/components/editor/utils/tools.d.ts +1 -0
  47. package/lib/main.d.ts +1 -0
  48. package/lib/packages/index.d.ts +5 -0
  49. package/lib/tccParser/LexerBase.d.ts +19 -0
  50. package/lib/tccParser/tccScriptParserVisitor.d.ts +486 -0
  51. package/lib/trading-vue-editor.js +64939 -0
  52. package/lib/trading-vue-editor.umd.cjs +144 -0
  53. package/package.json +53 -0
@@ -0,0 +1,248 @@
1
+ export declare enum VType {
2
+ BOOL = "bool",
3
+ INT = "int",
4
+ FLOAT = "float",
5
+ ARRAY = "array",
6
+ BOX = "box",
7
+ CHART_POINT = "chart.point",
8
+ COLOR = "color",
9
+ CONST = "const",
10
+ LABEL = "label",
11
+ LINE = "line",
12
+ LINEFILL = "linefill",
13
+ MAP = "map",
14
+ MATRIX = "matrix",
15
+ POLYLINE = "polyline",
16
+ SERIES = "series",
17
+ SIMPLE = "simple",
18
+ STRING = "string",
19
+ TABLE = "table",
20
+ UNDETERMINED = "undetermined type",
21
+ INPUT = "input",
22
+ NA = "na",
23
+ VOID = "void"
24
+ }
25
+ export declare enum VRuleType {
26
+ FlowStmt = "FlowStmt",
27
+ DeclareAssign = "DeclareAssign",
28
+ VarBlockStmt = "VarBlockStmt",
29
+ VarSingle = "VarSingle",
30
+ VarMultiple = "VarMultiple",
31
+ ParenthesizedExpression = "ParenthesizedExpression",
32
+ AdditiveExpression = "AdditiveExpression",
33
+ RelationalExpression = "RelationalExpression",
34
+ EqualityExpression = "EqualityExpression",
35
+ TernaryExpression = "TernaryExpression",
36
+ UnaryExpression = "UnaryExpression",
37
+ NotExpression = "NotExpression",
38
+ MemberIndexExpression = "MemberIndexExpression",
39
+ MethodExpression = "MethodExpression",
40
+ LogicalAndExpression = "LogicalAndExpression",
41
+ LogicalOrExpression = "LogicalOrExpression",
42
+ MultiplicativeExpression = "MultiplicativeExpression",
43
+ Brackethesized = "Brackethesized",
44
+ IfStatement = "IfStatement",
45
+ ForToStatement = "ForToStatement",
46
+ ForInStatement = "ForInStatement",
47
+ SwitchStatement = "SwitchStatement",
48
+ CaseClause = "CaseClause",
49
+ DefaultCaluse = "DefaultCaluse",
50
+ WhileStatement = "WhileStatement",
51
+ ImportElement = "ImportElement",
52
+ Literal = "Literal",
53
+ ArrowFunction = "ArrowFunction",
54
+ ArrowMethod = "ArrowMethod",
55
+ TypeStatement = "TypeStatement",
56
+ Name = "Name",
57
+ AgainAssign = "AgainAssign"
58
+ }
59
+ export declare enum VAdjustment {
60
+ dividends = "dividends",
61
+ none = "none",
62
+ splits = "splits"
63
+ }
64
+ export declare enum VAlert {
65
+ freqAll = "freq_all",
66
+ freqOncePerBar = "freq_once_per_bar",
67
+ freqOncePerBarClose = "freq_once_per_bar_close"
68
+ }
69
+ export declare enum VBarmergeGaps {
70
+ gapsOff = "gaps_off",
71
+ gapsOn = "gaps_on",
72
+ lookaheadOff = "lookahead_off",
73
+ lookaheadOn = "lookahead_on"
74
+ }
75
+ export declare enum VPlotDisplay {
76
+ all = "all",
77
+ dataWindow = "data_window",
78
+ none = "none",
79
+ pane = "pane",
80
+ priceScale = "price_scale",
81
+ statusLine = "status_line"
82
+ }
83
+ export declare enum VExtend {
84
+ both = "both",
85
+ left = "left",
86
+ none = "none",
87
+ right = "right"
88
+ }
89
+ export declare enum VFormatType {
90
+ inherit = "inherit",
91
+ mintick = "mintick",
92
+ percent = "percent",
93
+ price = "price",
94
+ volume = "volume"
95
+ }
96
+ export declare enum VHlineStyle {
97
+ styleDashed = "style_dashed",
98
+ styleDotted = "style_dotted",
99
+ styleSolid = "style_solid"
100
+ }
101
+ export declare enum VLabelStyle {
102
+ styleArrowdown = "style_arrowdown",
103
+ styleArrowup = "style_arrowup",
104
+ styleCircle = "style_circle",
105
+ styleCross = "style_cross",
106
+ styleDiamond = "style_diamond",
107
+ styleFlag = "style_flag",
108
+ styleLabelCenter = "style_label_center",
109
+ styleLabelDown = "style_label_down",
110
+ styleLabelLeft = "style_label_left",
111
+ styleLabelLowerLeft = "style_label_lower_left",
112
+ styleLabelLowerRight = "style_label_lower_right",
113
+ styleLabelRight = "style_label_right",
114
+ styleLabelUp = "style_label_up",
115
+ styleLabelUpperLeft = "style_label_upper_left",
116
+ styleLabelUpperRight = "style_label_upper_right",
117
+ styleNone = "style_none",
118
+ styleSquare = "style_square",
119
+ styleTextOutline = "style_text_outline",
120
+ styleTriangledown = "style_triangledown",
121
+ styleTriangleup = "style_triangleup",
122
+ styleXcross = "style_xcross"
123
+ }
124
+ export declare enum VLineStyle {
125
+ styleArrowBoth = "style_arrow_both",
126
+ styleArrowLeft = "style_arrow_left",
127
+ styleArrowRight = "style_arrow_right",
128
+ styleDashed = "style_dashed",
129
+ styleDotted = "style_dotted",
130
+ styleSolid = "style_solid"
131
+ }
132
+ export declare enum VLocation {
133
+ abovebar = "abovebar",
134
+ absolute = "absolute",
135
+ belowbar = "belowbar",
136
+ bottom = "bottom",
137
+ top = "top"
138
+ }
139
+ export declare enum VSortOrder {
140
+ ascending = "ascending",// 从小到大
141
+ descending = "descending"
142
+ }
143
+ export declare enum VPlotStyle {
144
+ styleArea = "Area",
145
+ styleAreabr = "Area With Breaks",
146
+ styleCircles = "Circles",
147
+ styleColumns = "Columns",
148
+ styleCross = "Cross",
149
+ styleHistogram = "Histogram",
150
+ styleLine = "Line",
151
+ styleLinebr = "Line With Breaks",
152
+ styleStepline = "Step Line",
153
+ styleSteplineDiamond = "Step Line With Diamonds",
154
+ styleSteplinebr = "Step line with Breaks"
155
+ }
156
+ export declare enum VPosition {
157
+ bottomCenter = "bottom_center",
158
+ bottomLeft = "bottom_left",
159
+ bottomRight = "bottom_right",
160
+ middleCenter = "middle_center",
161
+ middleLeft = "middle_left",
162
+ middleRight = "middle_right",
163
+ topCenter = "top_center",
164
+ topLeft = "top_left",
165
+ topRight = "top_right"
166
+ }
167
+ export declare enum VScale {
168
+ left = "left",
169
+ none = "none",
170
+ right = "right"
171
+ }
172
+ export declare enum VSession {
173
+ extended = "extended",
174
+ regular = "regular"
175
+ }
176
+ export declare enum VShape {
177
+ arrowdown = "arrowdown",
178
+ arrowup = "arrowup",
179
+ circle = "circle",
180
+ cross = "cross",
181
+ diamond = "diamond",
182
+ flag = "flag",
183
+ labeldown = "labeldown",
184
+ labelup = "labelup",
185
+ square = "square",
186
+ triangledown = "triangledown",
187
+ triangleup = "triangleup",
188
+ xcross = "xcross"
189
+ }
190
+ export declare enum VSize {
191
+ auto = "auto",
192
+ huge = "huge",
193
+ large = "large",
194
+ normal = "normal",
195
+ small = "small",
196
+ tiny = "tiny"
197
+ }
198
+ export declare enum VStrategy {
199
+ cash = "cash",
200
+ fixed = "fixed",
201
+ percentOfEquity = "percent_of_equity"
202
+ }
203
+ export declare enum VCommission {
204
+ cashPerContract = "cash_per_contract",
205
+ cashPerOrder = "cash_per_order",
206
+ percent = "percent"
207
+ }
208
+ export declare enum VDirection {
209
+ all = "all",
210
+ long = "long",
211
+ short = "short"
212
+ }
213
+ export declare enum VOca {
214
+ cancel = "cancel",
215
+ none = "none",
216
+ reduce = "reduce"
217
+ }
218
+ export declare enum VText {
219
+ alignBottom = "align_bottom",
220
+ alignCenter = "align_center",
221
+ alignLeft = "align_left",
222
+ alignRight = "align_right",
223
+ alignTop = "align_top",
224
+ wrapAuto = "wrap_auto",
225
+ wrapNone = "wrap_none"
226
+ }
227
+ export declare enum VXloc {
228
+ bar_index = "bar_index",
229
+ bar_time = "bar_time"
230
+ }
231
+ export declare enum VYloc {
232
+ abovebar = "abovebar",
233
+ belowbar = "belowbar",
234
+ price = "price"
235
+ }
236
+ export declare enum VEarnings {
237
+ actual = "actual",
238
+ estimate = "estimate",
239
+ standardized = "standardized"
240
+ }
241
+ export declare enum VPivotType {
242
+ traditional = "Traditional",
243
+ fibonacci = "Fibonacci",
244
+ woodie = "Woodie",
245
+ classic = "Classic",
246
+ dm = "DM",
247
+ camarilla = "Camarilla"
248
+ }
@@ -0,0 +1,44 @@
1
+ import { IKeyObjectValue } from "../type";
2
+ export default class ParseToJs {
3
+ private _nameMap;
4
+ private _prefixNameVar;
5
+ private _prefixNameFunc;
6
+ private _prefixNameConst;
7
+ private _userTypes;
8
+ private _memberIndexCache;
9
+ private _isInFunc;
10
+ constructor(prefix: string);
11
+ preParser(values: IKeyObjectValue[]): string | undefined;
12
+ parser(values: IKeyObjectValue[]): string | undefined;
13
+ private _parserStmt;
14
+ private _parserTypeStatement;
15
+ private _parserVarBlockStmt;
16
+ private _parserForToStatement;
17
+ private _parserForInStatement;
18
+ private _parserAgainAssign;
19
+ private _parserSwitchStatement;
20
+ private _parserCases;
21
+ private _parserDefaultCase;
22
+ private _parserCase;
23
+ private _parserWhileStatement;
24
+ private _parserIfStatement;
25
+ private _parserBlockLine;
26
+ private _parserReturnBlock;
27
+ private _parserArrowMethod;
28
+ private _parserArrowFunction;
29
+ private _parserParameters;
30
+ private _parserBlock;
31
+ private _parserDeclareAssign;
32
+ private _parserDeclareAssignNames;
33
+ private _parserSingleExpression;
34
+ private _parserAdditiveExpression;
35
+ private _parserMemberIndexExpression;
36
+ private _parseLiteral;
37
+ private _colorToRgba;
38
+ private _parserName;
39
+ private _parserMethodExpression;
40
+ private _parserMethodElement;
41
+ private _parserArguments;
42
+ private _parserBrackethesized;
43
+ private _functionalProcess;
44
+ }
@@ -0,0 +1,27 @@
1
+ interface IBase {
2
+ startColumn: number;
3
+ startLineNumber: number;
4
+ endColumn: number;
5
+ endLineNumber: number;
6
+ }
7
+ export declare enum VMarkerSeverity {
8
+ Hint = 1,
9
+ Info = 2,
10
+ Warning = 4,
11
+ Error = 8
12
+ }
13
+ export interface IPosition {
14
+ readonly lineNumber: number;
15
+ readonly column: number;
16
+ }
17
+ export interface IRange {
18
+ readonly startLineNumber: number;
19
+ readonly startColumn: number;
20
+ readonly endLineNumber: number;
21
+ readonly endColumn: number;
22
+ }
23
+ export interface IError extends IBase {
24
+ message: string;
25
+ type?: VMarkerSeverity;
26
+ }
27
+ export {};
@@ -0,0 +1,12 @@
1
+ import { IKeyObjectValue } from "../type";
2
+ declare class UserTypeClass {
3
+ private _defaultParams;
4
+ private _UserTypeFileds;
5
+ private _varipKeys;
6
+ constructor(params: IKeyObjectValue, keys: string[]);
7
+ copy(typeObject: IKeyObjectValue): IKeyObjectValue;
8
+ new(params?: IKeyObjectValue): any;
9
+ addNewMethod(name: string, func: any): void;
10
+ private _createDynamicClass;
11
+ }
12
+ export default UserTypeClass;
@@ -0,0 +1,8 @@
1
+ import { IKeyValue } from "../type";
2
+ import dayjs from "dayjs";
3
+ export declare function replaceTemplate(template: string, replacements: IKeyValue): string;
4
+ export declare function parsePerid(period: string): (string | number)[];
5
+ export declare function generateRandomId(length?: number): string;
6
+ export declare function parseTimezoneOffset(timezone: string): number;
7
+ export declare function parserTimezone(time?: number, timezone?: string): dayjs.Dayjs;
8
+ export declare function periodConvert(period: string): number;
@@ -0,0 +1,303 @@
1
+ import { IKeyObjectValue, IDocValue, IKeyValue } from '../type';
2
+ import { VRuleType } from './enum';
3
+ import { ParserUtils } from './visitorUtils';
4
+ import { IError, IPosition } from "./type";
5
+ export default class ParserVisitor extends ParserUtils {
6
+ private _loopCount;
7
+ private _errors;
8
+ private _variables;
9
+ private _functions;
10
+ private _methods;
11
+ private _types;
12
+ private _currentBlockVars;
13
+ private _currentFuncParams;
14
+ private _isNeedCalc;
15
+ private _blockCount;
16
+ private _isInFunc;
17
+ private _onlyStatementsCount;
18
+ private _blockRanges;
19
+ private _overloadsFuncs;
20
+ private _hasMemberIndex;
21
+ private _isInLocalScop;
22
+ constructor(props: IKeyObjectValue);
23
+ get overloadsFuncs(): IKeyValue[];
24
+ get errors(): IError[];
25
+ get userTypes(): Map<string, IDocValue[]>;
26
+ get userFunctions(): Map<string, IDocValue[]>;
27
+ get userVariables(): Map<string, IDocValue[]>;
28
+ get userMethods(): Map<string, IDocValue[]>;
29
+ visitProgram: (ctx: IKeyObjectValue) => any[];
30
+ visitGlobalStmt: (ctx: IKeyObjectValue) => any;
31
+ visitBlockStmt: (ctx: IKeyObjectValue) => IKeyObjectValue[];
32
+ visitStmt: (ctx: IKeyObjectValue) => any;
33
+ visitSimpleStmt: (ctx: IKeyObjectValue) => any;
34
+ visitFlowStmt: (ctx: IKeyObjectValue) => {
35
+ ruleType: VRuleType;
36
+ value: any;
37
+ };
38
+ visitBlock: (ctx: IKeyObjectValue) => any;
39
+ visitBlockLine: (ctx: IKeyObjectValue) => any[] | null;
40
+ visitDeclareAssign: (ctx: IKeyObjectValue) => IKeyObjectValue;
41
+ visitAgainAssign: (ctx: IKeyObjectValue) => {
42
+ ruleType: VRuleType;
43
+ name: IKeyObjectValue;
44
+ operator: string;
45
+ type: string;
46
+ value: IKeyObjectValue;
47
+ } | null;
48
+ visitVarModifier: (ctx: IKeyObjectValue) => any;
49
+ visitExpressionSequence: (ctx: IKeyObjectValue) => IKeyObjectValue[];
50
+ visitExpressionBlockSequence: (ctx: IKeyObjectValue) => IKeyObjectValue[];
51
+ visitBlockSequence: (ctx: IKeyObjectValue) => IKeyObjectValue[];
52
+ visitVariableDeclarationStmt: (ctx: IKeyObjectValue) => IKeyObjectValue[];
53
+ visitVarBlockStmt: (ctx: IKeyObjectValue) => IKeyObjectValue | {
54
+ ruleType: VRuleType;
55
+ name: IKeyObjectValue;
56
+ operator: string;
57
+ type: string;
58
+ value: IKeyObjectValue;
59
+ };
60
+ visitVarSingle: (ctx: IKeyObjectValue) => IKeyObjectValue;
61
+ visitVarMultiple: (ctx: IKeyObjectValue) => {
62
+ ruleType: VRuleType;
63
+ names: IKeyObjectValue[];
64
+ posList: IPosition[];
65
+ };
66
+ visitBlockExpression: (ctx: IKeyObjectValue) => any;
67
+ visitParenthesizedExpression: (ctx: IKeyObjectValue) => {
68
+ ruleType: VRuleType;
69
+ type: any;
70
+ ctx: IKeyObjectValue;
71
+ exprs: any;
72
+ };
73
+ visitAdditiveExpression: (ctx: IKeyObjectValue) => IKeyObjectValue;
74
+ visitRelationalExpression: (ctx: IKeyObjectValue) => {
75
+ ruleType: VRuleType;
76
+ operator: string;
77
+ ctx: IKeyObjectValue;
78
+ type: string;
79
+ exprs: IKeyObjectValue[];
80
+ };
81
+ visitEqualityExpression: (ctx: IKeyObjectValue) => {
82
+ ruleType: VRuleType;
83
+ operator: string;
84
+ ctx: IKeyObjectValue;
85
+ type: string;
86
+ exprs: IKeyObjectValue[];
87
+ };
88
+ visitTernaryExpression: (ctx: IKeyObjectValue) => {
89
+ ruleType: VRuleType;
90
+ type: string;
91
+ ctx: IKeyObjectValue;
92
+ exprs: IKeyObjectValue[];
93
+ };
94
+ visitNameExpression: (ctx: IKeyObjectValue) => any;
95
+ visitLiteralExpression: (ctx: IKeyObjectValue) => any;
96
+ visitUnaryExpression: (ctx: IKeyObjectValue) => {
97
+ ruleType: VRuleType;
98
+ operator: any;
99
+ type: any;
100
+ ctx: IKeyObjectValue;
101
+ exprs: IKeyObjectValue[];
102
+ };
103
+ visitNotExpression: (ctx: IKeyObjectValue) => {
104
+ ruleType: VRuleType;
105
+ ctx: IKeyObjectValue;
106
+ type: string;
107
+ exprs: IKeyObjectValue[];
108
+ };
109
+ visitMemberIndexExpression: (ctx: IKeyObjectValue) => {
110
+ ruleType: VRuleType;
111
+ type: any;
112
+ ctx: IKeyObjectValue;
113
+ isInFunc: boolean;
114
+ exprs: IKeyObjectValue[];
115
+ };
116
+ visitMethodStmt: (ctx: IKeyObjectValue) => {
117
+ ruleType: VRuleType;
118
+ types: any;
119
+ ctx: IKeyObjectValue;
120
+ type: any;
121
+ exprs: any[];
122
+ };
123
+ visitMethodExpression: (ctx: IKeyObjectValue) => any;
124
+ visitLogicalAndExpression: (ctx: IKeyObjectValue) => {
125
+ ruleType: VRuleType;
126
+ type: string;
127
+ operator: string;
128
+ ctx: IKeyObjectValue;
129
+ exprs: IKeyObjectValue[];
130
+ };
131
+ visitLogicalOrExpression: (ctx: IKeyObjectValue) => {
132
+ ruleType: VRuleType;
133
+ operator: string;
134
+ ctx: IKeyObjectValue;
135
+ type: string;
136
+ exprs: IKeyObjectValue[];
137
+ };
138
+ visitMultiplicativeExpression: (ctx: IKeyObjectValue) => {
139
+ ruleType: VRuleType;
140
+ operator: string;
141
+ ctx: IKeyObjectValue;
142
+ type: string;
143
+ exprs: IKeyObjectValue[];
144
+ };
145
+ visitBrackethesized: (ctx: IKeyObjectValue) => {
146
+ ruleType: VRuleType;
147
+ ctx: IKeyObjectValue;
148
+ exprs: any;
149
+ };
150
+ visitArguments: (ctx: IKeyObjectValue) => IKeyObjectValue;
151
+ visitArgument: (ctx: IKeyObjectValue) => any;
152
+ visitIfStatement: (ctx: IKeyObjectValue) => IKeyObjectValue;
153
+ visitForToStatement: (ctx: IKeyObjectValue) => IKeyObjectValue;
154
+ visitForInStatement: (ctx: IKeyObjectValue) => IKeyObjectValue;
155
+ visitSwitchStatement: (ctx: IKeyObjectValue) => IKeyObjectValue;
156
+ visitCaseClause: (ctx: IKeyObjectValue) => IKeyObjectValue;
157
+ visitDefaultCaluse: (ctx: IKeyObjectValue) => IKeyObjectValue;
158
+ visitWhileStatement: (ctx: IKeyObjectValue) => IKeyObjectValue;
159
+ visitImportStmt: (ctx: IKeyObjectValue) => IKeyObjectValue[];
160
+ visitImportElement: (ctx: IKeyObjectValue) => IKeyObjectValue;
161
+ visitLiteral: (ctx: IKeyObjectValue) => {
162
+ ruleType: VRuleType;
163
+ ctx: IKeyObjectValue;
164
+ type: string;
165
+ value: any;
166
+ };
167
+ visitMethodElement: (ctx: IKeyObjectValue) => {
168
+ name: any;
169
+ type: any;
170
+ args: any;
171
+ expr: any;
172
+ };
173
+ visitMethodName: (ctx: IKeyObjectValue) => any[];
174
+ visitArrowFunction: (ctx: IKeyObjectValue) => IKeyObjectValue;
175
+ visitArrowFunctionParameters: (ctx: IKeyObjectValue) => IKeyObjectValue[];
176
+ visitFormalParameterList: (ctx: IKeyObjectValue) => IKeyObjectValue[];
177
+ visitFormalParameterArg: (ctx: IKeyObjectValue) => IKeyObjectValue;
178
+ visitArrowMethod: (ctx: IKeyObjectValue) => IKeyObjectValue;
179
+ visitArrowMethodParameters: (ctx: IKeyObjectValue) => any[];
180
+ visitTypeStatement: (ctx: IKeyObjectValue) => IKeyObjectValue;
181
+ visitTypeElement: (ctx: IKeyObjectValue) => IKeyObjectValue;
182
+ visitAssignmentOperator: (ctx: IKeyObjectValue) => any;
183
+ visitTypeMap: (ctx: IKeyObjectValue) => string;
184
+ visitTypeSeries: (ctx: IKeyObjectValue) => string;
185
+ visitTypeArray: (ctx: IKeyObjectValue) => string;
186
+ visitTypeGather: (ctx: IKeyObjectValue) => any;
187
+ visitIdentifier: (ctx: IKeyObjectValue) => any;
188
+ visitTypeName: (ctx: IKeyObjectValue) => string;
189
+ visitName: (ctx: IKeyObjectValue) => IKeyObjectValue;
190
+ private _typeElementVerify;
191
+ private _memberIndexVerify;
192
+ private _setFuncParams;
193
+ private _pushBlockRanges;
194
+ private _setUserType;
195
+ private _againAssignHandle;
196
+ private _typeCheck;
197
+ private _verifyName;
198
+ private _nameCheck;
199
+ private _inBlock;
200
+ private _errorHandle;
201
+ private _boolTypeJudge;
202
+ private _calcTypeJudge;
203
+ private _typeJudge;
204
+ /**
205
+ * 判断数组中的对象类型是否一致,支持根据操作符和指定的类型集合对类型进行动态判断和调整。
206
+ * @param arr - 用于判断类型的对象数组
207
+ * @param children - 与 arr 对应的子对象数组,用于在类型不匹配时进行错误处理
208
+ * @param operator - 当前操作符,影响类型判断的逻辑
209
+ * @param supportTypes - 支持的类型数组,会根据操作符动态调整
210
+ * @returns 返回一个数组,包含每个对象根据判断逻辑确定的类型
211
+ */
212
+ private _sameTypeJudge;
213
+ private _getUserVar;
214
+ private _repeatVarJudge;
215
+ private _judgeVarBuildIn;
216
+ private _updateUserVar;
217
+ private _variablesHandle;
218
+ private _checkVarMultiple;
219
+ private _addVarToMap;
220
+ private _setVariablesMap;
221
+ private _varTypeJudge;
222
+ private _getAllowTypes;
223
+ private _setNewFunc;
224
+ private _setCopyFunc;
225
+ private _setCopyMethod;
226
+ private _setFunc;
227
+ private _setMethod;
228
+ private _getMethodTypes;
229
+ private _globalFuncVerify;
230
+ private _hasMemberIndexVerify;
231
+ private _tempFuncNameHandle;
232
+ private _getOtherNamesMethodType;
233
+ private _expandMethodHandle;
234
+ /**
235
+ * 根据函数参数和上下文获取内置返回类型。
236
+ * @param res 函数匹配结果数组,包含返回类型、语法和参数信息。
237
+ * @param args 函数调用时的实际参数对象。
238
+ * @param name 函数名,用于错误处理时的提示。
239
+ * @param ctx 函数调用的上下文对象。
240
+ * @param fArg 函数的首个特定参数,可选,用于某些特殊场景下的类型检查。
241
+ * @param type 预期的返回类型数组,可选,用于进一步筛选返回类型。
242
+ * @returns 返回可能的返回类型数组。可能是一个确定的类型数组,或者在类型不匹配时返回[VType.UNDETERMINED]。
243
+ */
244
+ private _getBuildInReturnTypes;
245
+ /**
246
+ * 根据提供的函数列表和当前参数,获取匹配的函数返回类型。
247
+ * @param funcs 函数列表,每个函数包含参数信息、返回类型、函数名和this类型。
248
+ * @param currentArgs 当前调用的参数对象。
249
+ * @param ctx 当前上下文对象,包含代码位置等信息。
250
+ * @param fArg 可选,指定的首个参数,用于重载判断。
251
+ * @returns 匹配的函数返回类型,如果没有匹配则返回'UNDETERMINED'。
252
+ */
253
+ private _overloadsFuncGetTypes;
254
+ private _funcArgsAddOriginName;
255
+ /**
256
+ * 检查函数参数数量和类型是否符合预期
257
+ * @param args 提供的参数对象,包含实际参数和参数对象
258
+ * @param originArgs 预期的参数列表
259
+ * @param name 函数名称
260
+ * @param ctx 上下文信息,用于错误定位
261
+ * @param firstArg 第一个参数的对象,用于某些特定的参数检查
262
+ * @returns 返回一个对象,包含错误信息和警告信息
263
+ */
264
+ private _overloadsCheckArgs;
265
+ /**
266
+ * 检查传入参数的数量和类型是否符合预期
267
+ * @param args 包含所有参数的对象
268
+ * @param originArgs 原始参数列表
269
+ * @param name 函数或方法的名称
270
+ * @param ctx 上下文信息,用于错误处理
271
+ * @param returnType 函数预期的返回类型
272
+ * @param firstArg 第一个参数的详细信息,可选
273
+ * @returns 返回一个对象,包含是否有错误和可能的类型信息
274
+ */
275
+ private _checkArgs;
276
+ /**
277
+ * 校验参数是否符合给定的规则。
278
+ * @param arg 需要校验的参数对象,包含参数的规则类型、表达式和名称等信息。
279
+ * @param originArg 原始参数对象,包含参数的允许类型ID、显示类型和名称等信息。
280
+ * @param name 参数的当前名称。
281
+ * @param firstArg 如果是重载函数,第一个参数的对象。
282
+ * @param ctx 参数的上下文信息,可选。
283
+ * @param isOverloads 是否为重载函数的标志,可选。
284
+ * @returns 如果参数校验通过,返回true;否则返回false。
285
+ */
286
+ private _checkArg;
287
+ /**
288
+ * 将键值对对象转换为检查对象,用于验证参数类型是否匹配
289
+ * @param arg 要检查的键值对对象,包含规则类型和表达式数组
290
+ * @param originArg 原始参数对象,包含参数名和允许的类型ID
291
+ * @param needType 需要检查的类型数组
292
+ * @param name 操作符名称
293
+ * @param type 当前参数的类型
294
+ * @returns 如果类型不匹配,返回错误提示字符串;否则,返回undefined
295
+ */
296
+ private _tupleToCheck;
297
+ /**
298
+ * 获取块的返回类型
299
+ * @param block 可以是单个对象或者对象数组,代表一个代码块
300
+ * @returns 返回一个类型数组,表示该代码块可能的返回类型
301
+ */
302
+ private _getBlockReturnTypes;
303
+ }
@@ -0,0 +1,30 @@
1
+ import { IDocValue, IKeyObjectValue } from "../type";
2
+ import TccScriptParserVisitor from '../../../tccParser/tccScriptParserVisitor';
3
+ export declare class ParserUtils extends TccScriptParserVisitor<any> {
4
+ protected _buildinVariables: Map<string, IDocValue[]>;
5
+ protected _buildinTypes: Map<string, IDocValue[]>;
6
+ protected _buildinConstants: Map<string, IDocValue[]>;
7
+ protected _buildinMethods: Map<string, IDocValue[]>;
8
+ protected _buildinFunctions: Map<string, IDocValue[]>;
9
+ constructor(buildinObj: IKeyObjectValue);
10
+ private _buildinHandle;
11
+ protected _typeHandle(types?: string[], rType?: string): string;
12
+ protected _returnTypesOtherHandle(firstArg: IKeyObjectValue, returnType: string, returnTypes: string[], name: string): string[];
13
+ protected _checkMethodThisType(thisType: string[], type: string): boolean;
14
+ protected _priorityComparison(currentType: string, targetType: string): boolean;
15
+ protected _compareType(currentType: string, targetType: string): boolean;
16
+ protected _typeAddSeries(type: string): string;
17
+ protected _typeAddConst(type: string): string;
18
+ protected _getOriginMethodName(type: string, lastName: string): string;
19
+ protected _returnedTypesParse(returnedTypes?: string[]): string[];
20
+ protected _removePrefix(type?: string): string;
21
+ protected _getPrefix(type: string): string;
22
+ protected _getArrayType(name: string): string | undefined;
23
+ protected _getMapType(name: string): "" | string[] | undefined;
24
+ protected _isMatrixType(type: string): boolean;
25
+ protected _isArrayType(type: string): boolean;
26
+ protected _isMapType(type: string): boolean;
27
+ protected _arrayTypeConvert(type: string): string;
28
+ protected _getMethodTypeName(type: string): string;
29
+ protected _typeReplace(returnType: string, type: string): string;
30
+ }
@@ -0,0 +1,12 @@
1
+ import { IKeyObjectValue } from "../type";
2
+ export declare class WorkerStorage {
3
+ private _cache;
4
+ constructor();
5
+ set(key: string, value: IKeyObjectValue): void;
6
+ setValue(mapKey: string, valKey: string, value: IKeyObjectValue): void;
7
+ updateValue(mapKey: string, valKey: string, value: IKeyObjectValue): void;
8
+ get(key: string): IKeyObjectValue | undefined;
9
+ has(key: string): boolean;
10
+ delete(key: string): void;
11
+ clear(): void;
12
+ }