@idlizer/core 2.1.2 → 2.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/lib/src/LanguageWriters/ArgConvertors.d.ts +3 -3
- package/build/lib/src/LanguageWriters/ArgConvertors.js +36 -30
- package/build/lib/src/LanguageWriters/LanguageWriter.d.ts +26 -13
- package/build/lib/src/LanguageWriters/LanguageWriter.js +26 -52
- package/build/lib/src/LanguageWriters/convertors/CJConvertors.d.ts +2 -1
- package/build/lib/src/LanguageWriters/convertors/CJConvertors.js +16 -5
- package/build/lib/src/LanguageWriters/convertors/CppConvertors.d.ts +4 -2
- package/build/lib/src/LanguageWriters/convertors/CppConvertors.js +20 -12
- package/build/lib/src/LanguageWriters/convertors/ETSConvertors.js +7 -17
- package/build/lib/src/LanguageWriters/convertors/InteropConvertors.d.ts +4 -2
- package/build/lib/src/LanguageWriters/convertors/InteropConvertors.js +9 -3
- package/build/lib/src/LanguageWriters/convertors/JavaConvertors.d.ts +2 -1
- package/build/lib/src/LanguageWriters/convertors/JavaConvertors.js +24 -4
- package/build/lib/src/LanguageWriters/convertors/TSConvertors.d.ts +4 -2
- package/build/lib/src/LanguageWriters/convertors/TSConvertors.js +47 -28
- package/build/lib/src/LanguageWriters/nameConvertor.d.ts +3 -1
- package/build/lib/src/LanguageWriters/nameConvertor.js +5 -1
- package/build/lib/src/LanguageWriters/writers/CJLanguageWriter.d.ts +12 -9
- package/build/lib/src/LanguageWriters/writers/CJLanguageWriter.js +10 -37
- package/build/lib/src/LanguageWriters/writers/CLikeLanguageWriter.d.ts +4 -1
- package/build/lib/src/LanguageWriters/writers/CLikeLanguageWriter.js +1 -1
- package/build/lib/src/LanguageWriters/writers/CppLanguageWriter.d.ts +9 -9
- package/build/lib/src/LanguageWriters/writers/CppLanguageWriter.js +15 -24
- package/build/lib/src/LanguageWriters/writers/ETSLanguageWriter.d.ts +14 -8
- package/build/lib/src/LanguageWriters/writers/ETSLanguageWriter.js +18 -18
- package/build/lib/src/LanguageWriters/writers/JavaLanguageWriter.d.ts +4 -6
- package/build/lib/src/LanguageWriters/writers/JavaLanguageWriter.js +15 -14
- package/build/lib/src/LanguageWriters/writers/TsLanguageWriter.d.ts +7 -5
- package/build/lib/src/LanguageWriters/writers/TsLanguageWriter.js +22 -43
- package/build/lib/src/LibraryInterface.d.ts +1 -4
- package/build/lib/src/config.d.ts +206 -66
- package/build/lib/src/config.js +7 -3
- package/build/lib/src/configDescriber.d.ts +30 -3
- package/build/lib/src/configDescriber.js +99 -1
- package/build/lib/src/from-idl/DtsPrinter.js +30 -18
- package/build/lib/src/from-idl/IDLLinter.d.ts +40 -7
- package/build/lib/src/from-idl/IDLLinter.js +211 -25
- package/build/lib/src/from-idl/common.js +1 -1
- package/build/lib/src/from-idl/deserialize.d.ts +4 -1
- package/build/lib/src/from-idl/deserialize.js +434 -346
- package/build/lib/src/idl.d.ts +25 -17
- package/build/lib/src/idl.js +363 -109
- package/build/lib/src/idlize.d.ts +2 -1
- package/build/lib/src/idlize.js +82 -26
- package/build/lib/src/index.d.ts +4 -3
- package/build/lib/src/index.js +3 -2
- package/build/lib/src/options.d.ts +1 -1
- package/build/lib/src/peer-generation/BuilderClass.d.ts +0 -2
- package/build/lib/src/peer-generation/BuilderClass.js +0 -8
- package/build/lib/src/peer-generation/LayoutManager.d.ts +10 -3
- package/build/lib/src/peer-generation/LayoutManager.js +3 -2
- package/build/lib/src/peer-generation/Materialized.d.ts +1 -1
- package/build/lib/src/peer-generation/Materialized.js +2 -2
- package/build/lib/src/peer-generation/PeerClass.d.ts +3 -8
- package/build/lib/src/peer-generation/PeerClass.js +0 -1
- package/build/lib/src/peer-generation/PeerFile.d.ts +1 -2
- package/build/lib/src/peer-generation/PeerFile.js +1 -1
- package/build/lib/src/peer-generation/PeerLibrary.d.ts +12 -7
- package/build/lib/src/peer-generation/PeerLibrary.js +129 -65
- package/build/lib/src/peer-generation/ReferenceResolver.d.ts +1 -1
- package/build/lib/src/peer-generation/ReferenceResolver.js +2 -2
- package/build/lib/src/peer-generation/idl/IdlNameConvertor.d.ts +1 -0
- package/build/lib/src/peer-generation/idl/IdlNameConvertor.js +6 -2
- package/build/lib/src/peer-generation/idl/common.d.ts +2 -1
- package/build/lib/src/peer-generation/idl/common.js +13 -2
- package/build/lib/src/peer-generation/isMaterialized.js +25 -8
- package/build/lib/src/peer-generation/unions.d.ts +3 -2
- package/build/lib/src/peer-generation/unions.js +6 -2
- package/build/lib/src/resolveNamedNode.d.ts +3 -0
- package/build/lib/src/resolveNamedNode.js +105 -0
- package/build/lib/src/util.d.ts +6 -0
- package/build/lib/src/util.js +33 -0
- package/build/lib/src/visitor.d.ts +0 -1
- package/build/lib/src/visitor.js +1 -7
- package/package.json +2 -2
- package/webidl2.js/LICENSE +21 -0
- package/webidl2.js/README.md +827 -0
- package/webidl2.js/dist/package.json +3 -0
- package/webidl2.js/dist/webidl2.js +35 -7
|
@@ -123,7 +123,7 @@ export declare class BigIntToU64Convertor extends BaseArgConvertor {
|
|
|
123
123
|
isPointerType(): boolean;
|
|
124
124
|
}
|
|
125
125
|
export declare class ObjectConvertor extends BaseArgConvertor {
|
|
126
|
-
constructor(param: string);
|
|
126
|
+
constructor(param: string, type: idl.IDLType);
|
|
127
127
|
convertorArg(param: string, writer: LanguageWriter): string;
|
|
128
128
|
convertorSerialize(param: string, value: string, printer: LanguageWriter): void;
|
|
129
129
|
convertorDeserialize(bufferName: string, deserializerName: string, assigneer: ExpressionAssigner, writer: LanguageWriter): LanguageStatement;
|
|
@@ -293,8 +293,7 @@ export declare class UnionConvertor extends BaseArgConvertor {
|
|
|
293
293
|
}
|
|
294
294
|
export declare class FunctionConvertor extends BaseArgConvertor {
|
|
295
295
|
private library;
|
|
296
|
-
|
|
297
|
-
constructor(library: LibraryInterface, param: string, type: idl.IDLReferenceType);
|
|
296
|
+
constructor(library: LibraryInterface, param: string);
|
|
298
297
|
convertorArg(param: string, writer: LanguageWriter): string;
|
|
299
298
|
convertorSerialize(param: string, value: string, writer: LanguageWriter): void;
|
|
300
299
|
convertorDeserialize(bufferName: string, deserializerName: string, assigneer: ExpressionAssigner, writer: LanguageWriter): LanguageStatement;
|
|
@@ -334,6 +333,7 @@ export declare class CallbackConvertor extends BaseArgConvertor {
|
|
|
334
333
|
convertorDeserialize(bufferName: string, deserializerName: string, assigneer: ExpressionAssigner, writer: LanguageWriter, useSyncVersion?: boolean): LanguageStatement;
|
|
335
334
|
nativeType(): idl.IDLType;
|
|
336
335
|
isPointerType(): boolean;
|
|
336
|
+
unionDiscriminator(value: string, index: number, writer: LanguageWriter, duplicates: Set<string>): LanguageExpression | undefined;
|
|
337
337
|
}
|
|
338
338
|
export declare const CallbackKind = "CallbackKind";
|
|
339
339
|
export declare function generateCallbackKindName(callback: idl.IDLCallback): string;
|
|
@@ -16,7 +16,7 @@ import * as idl from "../idl";
|
|
|
16
16
|
import { Language } from "../Language";
|
|
17
17
|
import { BlockStatement, PrintHint, StringExpression, MethodModifier } from "./LanguageWriter";
|
|
18
18
|
import { RuntimeType } from "./common";
|
|
19
|
-
import { generatorTypePrefix } from "../config";
|
|
19
|
+
import { generatorConfiguration, generatorTypePrefix } from "../config";
|
|
20
20
|
import { hashCodeFromString, warn } from "../util";
|
|
21
21
|
import { UnionRuntimeTypeChecker } from "../peer-generation/unions";
|
|
22
22
|
import { CppConvertor, CppNameConvertor } from "./convertors/CppConvertors";
|
|
@@ -29,9 +29,10 @@ export function isDirectConvertedType(originalType, library) {
|
|
|
29
29
|
return true; // TODO: is it correct?
|
|
30
30
|
if (debug)
|
|
31
31
|
console.log(`IDL type ${idl.DebugUtils.debugPrintType(originalType)}`);
|
|
32
|
-
if (originalType == idl.IDLInteropReturnBufferType)
|
|
32
|
+
if (originalType == idl.IDLInteropReturnBufferType)
|
|
33
33
|
return false;
|
|
34
|
-
|
|
34
|
+
if (originalType == idl.IDLThisType)
|
|
35
|
+
return true; /* Because this type for native is pointer, right? */
|
|
35
36
|
if (originalType == idl.IDLSerializerBuffer)
|
|
36
37
|
return true;
|
|
37
38
|
let convertor = library.typeConvertor("x", originalType, false);
|
|
@@ -46,7 +47,10 @@ export function isDirectConvertedType(originalType, library) {
|
|
|
46
47
|
convertor instanceof MapConvertor ||
|
|
47
48
|
convertor instanceof TupleConvertor ||
|
|
48
49
|
convertor instanceof AggregateConvertor ||
|
|
49
|
-
convertor instanceof
|
|
50
|
+
convertor instanceof UnionConvertor ||
|
|
51
|
+
convertor instanceof OptionConvertor ||
|
|
52
|
+
convertor instanceof ImportTypeConvertor) {
|
|
53
|
+
// try { console.log(`convertor is ${convertor.constructor.name} for ${JSON.stringify(originalType)}`) } catch (e) {}
|
|
50
54
|
return false;
|
|
51
55
|
}
|
|
52
56
|
let type = convertor.interopType();
|
|
@@ -71,7 +75,8 @@ export function isVMContextMethod(method) {
|
|
|
71
75
|
var _a, _b;
|
|
72
76
|
return !!idl.asPromise(method.signature.returnType) ||
|
|
73
77
|
!!((_a = method.modifiers) === null || _a === void 0 ? void 0 : _a.includes(MethodModifier.THROWS)) ||
|
|
74
|
-
!!((_b = method.modifiers) === null || _b === void 0 ? void 0 : _b.includes(MethodModifier.FORCE_CONTEXT))
|
|
78
|
+
!!((_b = method.modifiers) === null || _b === void 0 ? void 0 : _b.includes(MethodModifier.FORCE_CONTEXT)) ||
|
|
79
|
+
generatorConfiguration().forceContext.includes(method.name);
|
|
75
80
|
}
|
|
76
81
|
export function isDirectMethod(method, library) {
|
|
77
82
|
if (isVMContextMethod(method)) {
|
|
@@ -218,20 +223,18 @@ export class EnumConvertor extends BaseArgConvertor {
|
|
|
218
223
|
this.enumEntry = enumEntry;
|
|
219
224
|
}
|
|
220
225
|
convertorArg(param, writer) {
|
|
221
|
-
return writer.
|
|
226
|
+
return writer.i32FromEnum(writer.makeString(writer.escapeKeyword(param)), this.enumEntry).asString();
|
|
222
227
|
}
|
|
223
228
|
convertorSerialize(param, value, writer) {
|
|
224
|
-
writer.writeMethodCall(`${param}Serializer`, "writeInt32", [writer.
|
|
229
|
+
writer.writeMethodCall(`${param}Serializer`, "writeInt32", [writer.i32FromEnum(writer.makeString(value), this.enumEntry).asString()]);
|
|
225
230
|
}
|
|
226
231
|
convertorDeserialize(bufferName, deserializerName, assigneer, writer) {
|
|
227
232
|
const readExpr = writer.makeMethodCall(`${deserializerName}`, "readInt32", []);
|
|
228
|
-
const enumExpr =
|
|
229
|
-
? writer.enumFromOrdinal(readExpr, idl.createReferenceType(this.enumEntry))
|
|
230
|
-
: writer.makeCast(readExpr, idl.createReferenceType(this.enumEntry));
|
|
233
|
+
const enumExpr = writer.enumFromI32(readExpr, this.enumEntry);
|
|
231
234
|
return assigneer(enumExpr);
|
|
232
235
|
}
|
|
233
236
|
nativeType() {
|
|
234
|
-
return
|
|
237
|
+
return this.idlType;
|
|
235
238
|
}
|
|
236
239
|
interopType() {
|
|
237
240
|
return idl.IDLI32Type;
|
|
@@ -306,24 +309,24 @@ export class BigIntToU64Convertor extends BaseArgConvertor {
|
|
|
306
309
|
return writer.escapeKeyword(param);
|
|
307
310
|
}
|
|
308
311
|
convertorSerialize(param, value, printer) {
|
|
309
|
-
printer.writeMethodCall(`${param}Serializer`, "
|
|
312
|
+
printer.writeMethodCall(`${param}Serializer`, "writeInt64", [value]);
|
|
310
313
|
}
|
|
311
314
|
convertorDeserialize(bufferName, deserializerName, assigneer, writer) {
|
|
312
|
-
return assigneer(writer.makeCast(writer.makeString(`${deserializerName}.
|
|
315
|
+
return assigneer(writer.makeCast(writer.makeString(`${deserializerName}.readInt64()`), this.idlType, { optional: false }));
|
|
313
316
|
}
|
|
314
317
|
nativeType() {
|
|
315
|
-
return idl.
|
|
318
|
+
return idl.IDLI64Type;
|
|
316
319
|
}
|
|
317
320
|
interopType() {
|
|
318
|
-
return idl.
|
|
321
|
+
return idl.IDLI64Type;
|
|
319
322
|
}
|
|
320
323
|
isPointerType() {
|
|
321
324
|
return false;
|
|
322
325
|
}
|
|
323
326
|
}
|
|
324
327
|
export class ObjectConvertor extends BaseArgConvertor {
|
|
325
|
-
constructor(param) {
|
|
326
|
-
super(
|
|
328
|
+
constructor(param, type) {
|
|
329
|
+
super(type, [
|
|
327
330
|
RuntimeType.BIGINT,
|
|
328
331
|
RuntimeType.BOOLEAN,
|
|
329
332
|
RuntimeType.FUNCTION,
|
|
@@ -332,7 +335,6 @@ export class ObjectConvertor extends BaseArgConvertor {
|
|
|
332
335
|
RuntimeType.OBJECT,
|
|
333
336
|
RuntimeType.STRING,
|
|
334
337
|
RuntimeType.SYMBOL,
|
|
335
|
-
RuntimeType.UNDEFINED
|
|
336
338
|
], false, true, param);
|
|
337
339
|
}
|
|
338
340
|
convertorArg(param, writer) {
|
|
@@ -463,7 +465,7 @@ export class AggregateConvertor extends BaseArgConvertor {
|
|
|
463
465
|
* todo: check UnionType name creation for union of unnamed nodes (isNamedNode() == false)
|
|
464
466
|
*/
|
|
465
467
|
const memberType = prop.isOptional
|
|
466
|
-
? idl.createUnionType([idl.IDLUndefinedType, prop.type]
|
|
468
|
+
? idl.createUnionType([idl.IDLUndefinedType, prop.type])
|
|
467
469
|
: prop.type;
|
|
468
470
|
return writer.makeAssign(`${bufferName}_${prop.name}`, memberType, expr, true, true);
|
|
469
471
|
}, writer));
|
|
@@ -558,7 +560,7 @@ export class InterfaceConvertor extends BaseArgConvertor {
|
|
|
558
560
|
interopType() {
|
|
559
561
|
// Actually shouldn't be used!
|
|
560
562
|
// throw new Error("Must never be used")
|
|
561
|
-
return idl.
|
|
563
|
+
return idl.IDLSerializerBuffer;
|
|
562
564
|
}
|
|
563
565
|
isPointerType() {
|
|
564
566
|
return true;
|
|
@@ -601,7 +603,7 @@ export class ArrayConvertor extends BaseArgConvertor {
|
|
|
601
603
|
printer.writeStatement(printer.makeLoop(loopCounter, valueLength));
|
|
602
604
|
printer.pushIndent();
|
|
603
605
|
printer.writeStatement(printer.makeAssign(`${value}_element`, this.elementType, printer.makeArrayAccess(value, loopCounter), true));
|
|
604
|
-
this.elementConvertor.convertorSerialize(param,
|
|
606
|
+
this.elementConvertor.convertorSerialize(param, `${value}_element`, printer);
|
|
605
607
|
printer.popIndent();
|
|
606
608
|
printer.print(`}`);
|
|
607
609
|
}
|
|
@@ -820,7 +822,7 @@ export class OptionConvertor extends BaseArgConvertor {
|
|
|
820
822
|
throw new Error("Must never be used");
|
|
821
823
|
}
|
|
822
824
|
convertorSerialize(param, value, printer) {
|
|
823
|
-
const valueType = `${value}_type
|
|
825
|
+
const valueType = `${value}_type`.replaceAll('.', '_');
|
|
824
826
|
const serializedType = (printer.language == Language.JAVA ? undefined : idl.IDLI32Type);
|
|
825
827
|
printer.writeStatement(printer.makeAssign(valueType, serializedType, printer.makeRuntimeType(RuntimeType.UNDEFINED), true, false));
|
|
826
828
|
if (printer.language != Language.CJ) {
|
|
@@ -832,8 +834,9 @@ export class OptionConvertor extends BaseArgConvertor {
|
|
|
832
834
|
if (printer.language == Language.CJ) {
|
|
833
835
|
printer.writeMethodCall(`${param}Serializer`, "writeInt8", ["RuntimeType.OBJECT.ordinal"]); // everything is object, except None<T>
|
|
834
836
|
}
|
|
835
|
-
|
|
836
|
-
|
|
837
|
+
const valueValue = `${value}_value`.replaceAll('.', '_');
|
|
838
|
+
printer.writeStatement(printer.makeAssign(valueValue, undefined, printer.makeValueFromOption(value, this.typeConvertor), true));
|
|
839
|
+
this.typeConvertor.convertorSerialize(param, this.typeConvertor.getObjectAccessor(printer.language, valueValue), printer);
|
|
837
840
|
printer.popIndent();
|
|
838
841
|
printer.print(`}`);
|
|
839
842
|
if (printer.language == Language.CJ) {
|
|
@@ -958,11 +961,10 @@ export class UnionConvertor extends BaseArgConvertor {
|
|
|
958
961
|
}
|
|
959
962
|
}
|
|
960
963
|
export class FunctionConvertor extends BaseArgConvertor {
|
|
961
|
-
constructor(library, param
|
|
964
|
+
constructor(library, param) {
|
|
962
965
|
// TODO: pass functions as integers to native side.
|
|
963
966
|
super(idl.IDLFunctionType, [RuntimeType.FUNCTION], false, false, param);
|
|
964
967
|
this.library = library;
|
|
965
|
-
this.type = type;
|
|
966
968
|
}
|
|
967
969
|
convertorArg(param, writer) {
|
|
968
970
|
return writer.language == Language.CPP ? `makeArkFunctionFromId(${param})` : `registerCallback(${param})`;
|
|
@@ -971,7 +973,7 @@ export class FunctionConvertor extends BaseArgConvertor {
|
|
|
971
973
|
writer.writeMethodCall(`${param}Serializer`, "writeFunction", [value]);
|
|
972
974
|
}
|
|
973
975
|
convertorDeserialize(bufferName, deserializerName, assigneer, writer) {
|
|
974
|
-
return assigneer(writer.makeCast(writer.makeString(`${deserializerName}.readFunction()`),
|
|
976
|
+
return assigneer(writer.makeCast(writer.makeString(`${deserializerName}.readFunction()`), idl.IDLFunctionType, { optional: true }));
|
|
975
977
|
}
|
|
976
978
|
nativeType() {
|
|
977
979
|
return idl.IDLFunctionType;
|
|
@@ -991,7 +993,7 @@ export class MaterializedClassConvertor extends BaseArgConvertor {
|
|
|
991
993
|
convertorArg(param, writer) {
|
|
992
994
|
switch (writer.language) {
|
|
993
995
|
case Language.CPP:
|
|
994
|
-
return `static_cast<${generatorTypePrefix()}${qualifiedName(this.declaration, "_")}>(${param})`;
|
|
996
|
+
return `static_cast<${generatorTypePrefix()}${qualifiedName(this.declaration, "_", "namespace.name")}>(${param})`;
|
|
995
997
|
case Language.JAVA:
|
|
996
998
|
case Language.CJ:
|
|
997
999
|
return `MaterializedBase.toPeerPtr(${param})`;
|
|
@@ -1000,12 +1002,12 @@ export class MaterializedClassConvertor extends BaseArgConvertor {
|
|
|
1000
1002
|
}
|
|
1001
1003
|
}
|
|
1002
1004
|
convertorSerialize(param, value, printer) {
|
|
1003
|
-
printer.writeStatement(printer.makeStatement(printer.makeMethodCall(`${param}Serializer`, `write${qualifiedName(this.declaration, "_")}`, [
|
|
1005
|
+
printer.writeStatement(printer.makeStatement(printer.makeMethodCall(`${param}Serializer`, `write${qualifiedName(this.declaration, "_", "namespace.name")}`, [
|
|
1004
1006
|
printer.makeString(value)
|
|
1005
1007
|
])));
|
|
1006
1008
|
}
|
|
1007
1009
|
convertorDeserialize(bufferName, deserializerName, assigneer, writer) {
|
|
1008
|
-
const readStatement = writer.makeCast(writer.makeMethodCall(`${deserializerName}`, `read${qualifiedName(this.declaration, "_")}`, []),
|
|
1010
|
+
const readStatement = writer.makeCast(writer.makeMethodCall(`${deserializerName}`, `read${qualifiedName(this.declaration, "_", "namespace.name")}`, []), this.declaration);
|
|
1009
1011
|
return assigneer(readStatement);
|
|
1010
1012
|
}
|
|
1011
1013
|
nativeType() {
|
|
@@ -1108,6 +1110,10 @@ export class CallbackConvertor extends BaseArgConvertor {
|
|
|
1108
1110
|
isPointerType() {
|
|
1109
1111
|
return true;
|
|
1110
1112
|
}
|
|
1113
|
+
unionDiscriminator(value, index, writer, duplicates) {
|
|
1114
|
+
// We serialize callbacks as table offsets, so don't need to discriminate them. Runtime type check is enough
|
|
1115
|
+
return writer.makeUnionVariantCondition(this, value, `${value}_type`, RuntimeType[RuntimeType.FUNCTION]);
|
|
1116
|
+
}
|
|
1111
1117
|
}
|
|
1112
1118
|
////////////////////////////////////////////////////////////////////////////////
|
|
1113
1119
|
// UTILS
|
|
@@ -114,8 +114,11 @@ export declare class CheckOptionalStatement implements LanguageStatement {
|
|
|
114
114
|
}
|
|
115
115
|
export declare class TsEnumEntityStatement implements LanguageStatement {
|
|
116
116
|
private readonly enumEntity;
|
|
117
|
-
private readonly
|
|
118
|
-
constructor(enumEntity: idl.IDLEnum,
|
|
117
|
+
private readonly options;
|
|
118
|
+
constructor(enumEntity: idl.IDLEnum, options: {
|
|
119
|
+
isExport: boolean;
|
|
120
|
+
isDeclare: boolean;
|
|
121
|
+
});
|
|
119
122
|
write(writer: LanguageWriter): void;
|
|
120
123
|
private maybeQuoted;
|
|
121
124
|
}
|
|
@@ -134,6 +137,9 @@ export declare abstract class LambdaExpression implements LanguageExpression {
|
|
|
134
137
|
abstract asString(): string;
|
|
135
138
|
bodyAsString(): string;
|
|
136
139
|
}
|
|
140
|
+
export declare enum ArgumentModifier {
|
|
141
|
+
OPTIONAL = 0
|
|
142
|
+
}
|
|
137
143
|
export declare enum FieldModifier {
|
|
138
144
|
READONLY = 0,
|
|
139
145
|
PRIVATE = 1,
|
|
@@ -191,16 +197,18 @@ export declare class MethodSignature {
|
|
|
191
197
|
defaults: stringOrNone[] | undefined;
|
|
192
198
|
printHints?: MethodArgPrintHintOrNone[] | undefined;
|
|
193
199
|
argNames?: string[] | undefined;
|
|
194
|
-
|
|
200
|
+
argsModifiers: ArgumentModifier[][] | undefined;
|
|
201
|
+
constructor(returnType: idl.IDLType, args: idl.IDLType[], defaults?: stringOrNone[] | undefined, argsModifiers?: (ArgumentModifier[] | ArgumentModifier | undefined)[] | undefined, printHints?: MethodArgPrintHintOrNone[] | undefined, argNames?: string[] | undefined);
|
|
195
202
|
argName(index: number): string;
|
|
196
203
|
argDefault(index: number): string | undefined;
|
|
204
|
+
isArgOptional(index: number): boolean;
|
|
197
205
|
retHint(): PrintHint | undefined;
|
|
198
206
|
argHint(index: number): PrintHint | undefined;
|
|
199
207
|
toString(): string;
|
|
200
208
|
}
|
|
201
209
|
export declare class NamedMethodSignature extends MethodSignature {
|
|
202
210
|
argsNames: string[];
|
|
203
|
-
constructor(returnType: idl.IDLType, args?: idl.IDLType[], argsNames?: string[], defaults?: stringOrNone[] | undefined, printHints?: MethodArgPrintHintOrNone[]);
|
|
211
|
+
constructor(returnType: idl.IDLType, args?: idl.IDLType[], argsNames?: string[], defaults?: stringOrNone[] | undefined, argsModifiers?: (ArgumentModifier[] | ArgumentModifier | undefined)[] | undefined, printHints?: MethodArgPrintHintOrNone[]);
|
|
204
212
|
static make(returnType: idl.IDLType, args: {
|
|
205
213
|
name: string;
|
|
206
214
|
type: idl.IDLType;
|
|
@@ -228,7 +236,10 @@ export declare abstract class LanguageWriter {
|
|
|
228
236
|
alias?: string;
|
|
229
237
|
stringId: string | undefined;
|
|
230
238
|
numberId: number;
|
|
231
|
-
}[],
|
|
239
|
+
}[], options: {
|
|
240
|
+
isExport: boolean;
|
|
241
|
+
isDeclare?: boolean;
|
|
242
|
+
}, op?: (writer: this) => void): void;
|
|
232
243
|
abstract writeInterface(name: string, op: (writer: this) => void, superInterfaces?: string[], generics?: string[], isDeclared?: boolean): void;
|
|
233
244
|
abstract writeFieldDeclaration(name: string, type: idl.IDLType, modifiers: FieldModifier[] | undefined, optional: boolean, initExpr?: LanguageExpression): void;
|
|
234
245
|
abstract writeFunctionDeclaration(name: string, signature: MethodSignature): void;
|
|
@@ -252,7 +263,7 @@ export declare abstract class LanguageWriter {
|
|
|
252
263
|
abstract makeCheckOptional(optional: LanguageExpression, doStatement: LanguageStatement): LanguageStatement;
|
|
253
264
|
abstract makeRuntimeType(rt: RuntimeType): LanguageExpression;
|
|
254
265
|
abstract getObjectAccessor(convertor: ArgConvertor, value: string, args?: ObjectArgs): string;
|
|
255
|
-
abstract makeCast(value: LanguageExpression,
|
|
266
|
+
abstract makeCast(value: LanguageExpression, node: idl.IDLNode, options?: MakeCastOptions): LanguageExpression;
|
|
256
267
|
makeTypeCast(value: LanguageExpression, type: idl.IDLType, options?: MakeCastOptions): LanguageExpression;
|
|
257
268
|
abstract writePrintLog(message: string): void;
|
|
258
269
|
abstract makeUndefined(): LanguageExpression;
|
|
@@ -269,9 +280,8 @@ export declare abstract class LanguageWriter {
|
|
|
269
280
|
abstract makeTupleAssign(receiver: string, tupleFields: string[]): LanguageStatement;
|
|
270
281
|
abstract get supportedModifiers(): MethodModifier[];
|
|
271
282
|
abstract get supportedFieldModifiers(): FieldModifier[];
|
|
272
|
-
abstract
|
|
273
|
-
abstract
|
|
274
|
-
abstract makeEnumCast(enumEntry: idl.IDLEnum, enumName: string): string;
|
|
283
|
+
abstract enumFromI32(value: LanguageExpression, enumEntry: idl.IDLEnum): LanguageExpression;
|
|
284
|
+
abstract i32FromEnum(value: LanguageExpression, enumEntry: idl.IDLEnum): LanguageExpression;
|
|
275
285
|
abstract getNodeName(type: idl.IDLNode): string;
|
|
276
286
|
abstract fork(options?: {
|
|
277
287
|
resolver?: ReferenceResolver;
|
|
@@ -313,7 +323,6 @@ export declare abstract class LanguageWriter {
|
|
|
313
323
|
makeUnionVariantCondition(_convertor: ArgConvertor, _valueName: string, valueType: string, type: string, _convertorIndex?: number, _runtimeTypeIndex?: number): LanguageExpression;
|
|
314
324
|
makeUnionVariantCast(value: string, type: string, convertor: ArgConvertor, index?: number): LanguageExpression;
|
|
315
325
|
makeUnionTypeDefaultInitializer(): LanguageExpression;
|
|
316
|
-
makeRuntimeTypeGetterCall(value: string): LanguageExpression;
|
|
317
326
|
makeArrayResize(array: string, arrayType: string, length: string, deserializer: string): LanguageStatement;
|
|
318
327
|
makeMapResize(mapTypeName: string, keyType: idl.IDLType, valueType: idl.IDLType, map: string, size: string, deserializer: string): LanguageStatement;
|
|
319
328
|
makeMapSize(map: string): LanguageExpression;
|
|
@@ -345,7 +354,10 @@ export declare abstract class LanguageWriter {
|
|
|
345
354
|
targetType: (writer: LanguageWriter) => string;
|
|
346
355
|
}, value: string, accessors: string[], duplicates: Set<string>): LanguageExpression;
|
|
347
356
|
makeIsTypeCall(value: string, decl: idl.IDLInterface): LanguageExpression;
|
|
348
|
-
makeEnumEntity(enumEntity: idl.IDLEnum,
|
|
357
|
+
makeEnumEntity(enumEntity: idl.IDLEnum, options: {
|
|
358
|
+
isExport: boolean;
|
|
359
|
+
isDeclare?: boolean;
|
|
360
|
+
}): LanguageStatement;
|
|
349
361
|
makeFieldModifiersList(modifiers: FieldModifier[] | undefined, customFieldFilter?: (field: FieldModifier) => boolean): string;
|
|
350
362
|
escapeKeyword(keyword: string): string;
|
|
351
363
|
makeCastCustomObject(customName: string, _isGenericType: boolean): LanguageExpression;
|
|
@@ -360,8 +372,6 @@ export declare abstract class LanguageWriter {
|
|
|
360
372
|
makeCallIsObject(value: string): LanguageExpression;
|
|
361
373
|
instanceOf(convertor: ArgConvertor, value: string, _duplicateMembers?: Set<string>): LanguageExpression;
|
|
362
374
|
typeInstanceOf(type: idl.IDLEntry, value: string, members?: string[]): LanguageExpression;
|
|
363
|
-
makeLengthSerializer(serializer: string, value: string): LanguageStatement | undefined;
|
|
364
|
-
makeLengthDeserializer(deserializer: string): LanguageStatement | undefined;
|
|
365
375
|
stringifyTypeOrEmpty(type: idl.IDLType | undefined): string;
|
|
366
376
|
/**
|
|
367
377
|
* Writes `namespace <namespace> {` and adds extra indent
|
|
@@ -372,6 +382,9 @@ export declare abstract class LanguageWriter {
|
|
|
372
382
|
* Writes closing brace of namespace block and removes one level of indent
|
|
373
383
|
*/
|
|
374
384
|
popNamespace(ident?: boolean): void;
|
|
385
|
+
static _isReferenceRelativeToNamespaces: boolean;
|
|
386
|
+
static get isReferenceRelativeToNamespaces(): boolean;
|
|
387
|
+
static relativeReferences<T>(isRelative: boolean, op: () => T): T;
|
|
375
388
|
}
|
|
376
389
|
export declare function mangleMethodName(method: Method, id?: number): string;
|
|
377
390
|
export declare function printMethodDeclaration(printer: IndentedPrinter, retType: string, methodName: string, apiParameters: string[], postfix?: string): void;
|
|
@@ -231,14 +231,13 @@ export class CheckOptionalStatement {
|
|
|
231
231
|
}
|
|
232
232
|
// maybe rename or move of fix
|
|
233
233
|
export class TsEnumEntityStatement {
|
|
234
|
-
constructor(enumEntity,
|
|
234
|
+
constructor(enumEntity, options) {
|
|
235
235
|
this.enumEntity = enumEntity;
|
|
236
|
-
this.
|
|
236
|
+
this.options = options;
|
|
237
237
|
}
|
|
238
238
|
write(writer) {
|
|
239
239
|
// writer.print(this.enumEntity.comment)
|
|
240
|
-
|
|
241
|
-
writer.print(`${this.isExport ? "export " : ""}enum ${this.enumEntity.name} {`);
|
|
240
|
+
writer.print(`${this.options.isExport ? "export " : ""}${this.options.isDeclare ? "declare " : ""}enum ${this.enumEntity.name} {`);
|
|
242
241
|
writer.pushIndent();
|
|
243
242
|
this.enumEntity.elements.forEach((member, index) => {
|
|
244
243
|
// writer.print(member.comment)
|
|
@@ -253,7 +252,6 @@ export class TsEnumEntityStatement {
|
|
|
253
252
|
});
|
|
254
253
|
writer.popIndent();
|
|
255
254
|
writer.print(`}`);
|
|
256
|
-
idl.getNamespacesPathFor(this.enumEntity).forEach(it => writer.popNamespace());
|
|
257
255
|
}
|
|
258
256
|
maybeQuoted(value) {
|
|
259
257
|
if (typeof value == "string")
|
|
@@ -294,6 +292,10 @@ export class LambdaExpression {
|
|
|
294
292
|
////////////////////////////////////////////////////////////////
|
|
295
293
|
// SIGNATURES //
|
|
296
294
|
////////////////////////////////////////////////////////////////
|
|
295
|
+
export var ArgumentModifier;
|
|
296
|
+
(function (ArgumentModifier) {
|
|
297
|
+
ArgumentModifier[ArgumentModifier["OPTIONAL"] = 0] = "OPTIONAL";
|
|
298
|
+
})(ArgumentModifier || (ArgumentModifier = {}));
|
|
297
299
|
export var FieldModifier;
|
|
298
300
|
(function (FieldModifier) {
|
|
299
301
|
FieldModifier[FieldModifier["READONLY"] = 0] = "READONLY";
|
|
@@ -354,12 +356,13 @@ PrintHint.AsConstPointer = new PrintHint('AsConstPointer');
|
|
|
354
356
|
PrintHint.AsValue = new PrintHint('AsValue');
|
|
355
357
|
PrintHint.AsConstReference = new PrintHint('AsConstReference');
|
|
356
358
|
export class MethodSignature {
|
|
357
|
-
constructor(returnType, args, defaults = undefined, printHints, argNames) {
|
|
359
|
+
constructor(returnType, args, defaults = undefined, argsModifiers = undefined, printHints, argNames) {
|
|
358
360
|
this.returnType = returnType;
|
|
359
361
|
this.args = args;
|
|
360
362
|
this.defaults = defaults;
|
|
361
363
|
this.printHints = printHints;
|
|
362
364
|
this.argNames = argNames;
|
|
365
|
+
this.argsModifiers = argsModifiers === null || argsModifiers === void 0 ? void 0 : argsModifiers.map(it => it === undefined ? [] : Array.isArray(it) ? it : [it]);
|
|
363
366
|
}
|
|
364
367
|
argName(index) {
|
|
365
368
|
var _a, _b;
|
|
@@ -369,6 +372,10 @@ export class MethodSignature {
|
|
|
369
372
|
var _a;
|
|
370
373
|
return (_a = this.defaults) === null || _a === void 0 ? void 0 : _a[index];
|
|
371
374
|
}
|
|
375
|
+
isArgOptional(index) {
|
|
376
|
+
var _a, _b, _c;
|
|
377
|
+
return (_c = (_b = (_a = this.argsModifiers) === null || _a === void 0 ? void 0 : _a[index]) === null || _b === void 0 ? void 0 : _b.includes(ArgumentModifier.OPTIONAL)) !== null && _c !== void 0 ? _c : false;
|
|
378
|
+
}
|
|
372
379
|
retHint() {
|
|
373
380
|
var _a;
|
|
374
381
|
return (_a = this.printHints) === null || _a === void 0 ? void 0 : _a[0];
|
|
@@ -382,8 +389,8 @@ export class MethodSignature {
|
|
|
382
389
|
}
|
|
383
390
|
}
|
|
384
391
|
export class NamedMethodSignature extends MethodSignature {
|
|
385
|
-
constructor(returnType, args = [], argsNames = [], defaults = undefined, printHints) {
|
|
386
|
-
super(returnType, args, defaults, printHints);
|
|
392
|
+
constructor(returnType, args = [], argsNames = [], defaults = undefined, argsModifiers = undefined, printHints) {
|
|
393
|
+
super(returnType, args, defaults, argsModifiers, printHints);
|
|
387
394
|
this.argsNames = argsNames;
|
|
388
395
|
}
|
|
389
396
|
static make(returnType, args) {
|
|
@@ -538,9 +545,6 @@ export class LanguageWriter {
|
|
|
538
545
|
makeUnionTypeDefaultInitializer() {
|
|
539
546
|
return this.makeRuntimeType(RuntimeType.UNDEFINED);
|
|
540
547
|
}
|
|
541
|
-
makeRuntimeTypeGetterCall(value) {
|
|
542
|
-
return this.makeFunctionCall("runtimeType", [this.makeString(value)]);
|
|
543
|
-
}
|
|
544
548
|
makeArrayResize(array, arrayType, length, deserializer) {
|
|
545
549
|
return new ExpressionStatement(new StringExpression(""));
|
|
546
550
|
}
|
|
@@ -627,8 +631,8 @@ export class LanguageWriter {
|
|
|
627
631
|
makeIsTypeCall(value, decl) {
|
|
628
632
|
return this.makeString(`is${decl.name}(${value})`);
|
|
629
633
|
}
|
|
630
|
-
makeEnumEntity(enumEntity,
|
|
631
|
-
return new TsEnumEntityStatement(enumEntity, isExport);
|
|
634
|
+
makeEnumEntity(enumEntity, options) {
|
|
635
|
+
return new TsEnumEntityStatement(enumEntity, { isExport: options.isExport, isDeclare: !!options.isDeclare });
|
|
632
636
|
}
|
|
633
637
|
makeFieldModifiersList(modifiers, customFieldFilter) {
|
|
634
638
|
let allowedModifiers = this.supportedFieldModifiers;
|
|
@@ -681,45 +685,6 @@ export class LanguageWriter {
|
|
|
681
685
|
typeInstanceOf(type, value, members) {
|
|
682
686
|
return this.makeString(`${value} instanceof ${this.getNodeName(type)}`);
|
|
683
687
|
}
|
|
684
|
-
makeLengthSerializer(serializer, value) {
|
|
685
|
-
const valueType = "valueType";
|
|
686
|
-
return this.makeBlock([
|
|
687
|
-
this.makeAssign(valueType, undefined, this.makeFunctionCall("runtimeType", [this.makeString(value)]), true),
|
|
688
|
-
this.makeStatement(this.makeMethodCall(serializer, "writeInt8", [this.makeString(valueType)])),
|
|
689
|
-
this.makeMultiBranchCondition([
|
|
690
|
-
{
|
|
691
|
-
expr: this.makeRuntimeTypeCondition(valueType, true, RuntimeType.NUMBER),
|
|
692
|
-
stmt: this.makeStatement(this.makeMethodCall(serializer, "writeFloat32", [this.makeString(`${value} as float32`)]))
|
|
693
|
-
},
|
|
694
|
-
{
|
|
695
|
-
expr: this.makeRuntimeTypeCondition(valueType, true, RuntimeType.STRING),
|
|
696
|
-
stmt: this.makeStatement(this.makeMethodCall(serializer, "writeString", [this.makeString(`${value} as string`)]))
|
|
697
|
-
},
|
|
698
|
-
{
|
|
699
|
-
expr: this.makeRuntimeTypeCondition(valueType, true, RuntimeType.OBJECT),
|
|
700
|
-
stmt: this.makeStatement(this.makeMethodCall(serializer, "writeInt32", [this.makeString(`(${value} as Resource).id as int32`)]))
|
|
701
|
-
},
|
|
702
|
-
]),
|
|
703
|
-
], false);
|
|
704
|
-
}
|
|
705
|
-
makeLengthDeserializer(deserializer) {
|
|
706
|
-
const valueType = "valueType";
|
|
707
|
-
return this.makeBlock([
|
|
708
|
-
this.makeAssign(valueType, undefined, this.makeMethodCall(deserializer, "readInt8", []), true),
|
|
709
|
-
this.makeMultiBranchCondition([{
|
|
710
|
-
expr: this.makeRuntimeTypeCondition(valueType, true, RuntimeType.NUMBER),
|
|
711
|
-
stmt: this.makeReturn(this.makeString(`${deserializer}.readFloat32() as number`))
|
|
712
|
-
},
|
|
713
|
-
{
|
|
714
|
-
expr: this.makeRuntimeTypeCondition(valueType, true, RuntimeType.STRING),
|
|
715
|
-
stmt: this.makeReturn(this.makeMethodCall(deserializer, "readString", []))
|
|
716
|
-
},
|
|
717
|
-
{
|
|
718
|
-
expr: this.makeRuntimeTypeCondition(valueType, true, RuntimeType.OBJECT),
|
|
719
|
-
stmt: this.makeReturn(this.makeString(`({id: ${deserializer}.readInt32(), bundleName: "", moduleName: ""}) as Resource`))
|
|
720
|
-
}], this.makeReturn(this.makeUndefined())),
|
|
721
|
-
], false);
|
|
722
|
-
}
|
|
723
688
|
stringifyTypeOrEmpty(type) {
|
|
724
689
|
if (type === undefined)
|
|
725
690
|
return "";
|
|
@@ -743,7 +708,16 @@ export class LanguageWriter {
|
|
|
743
708
|
this.popIndent();
|
|
744
709
|
this.print(`}`);
|
|
745
710
|
}
|
|
711
|
+
static get isReferenceRelativeToNamespaces() { return this._isReferenceRelativeToNamespaces; }
|
|
712
|
+
static relativeReferences(isRelative, op) {
|
|
713
|
+
const prevIsRelative = this.isReferenceRelativeToNamespaces;
|
|
714
|
+
this._isReferenceRelativeToNamespaces = isRelative;
|
|
715
|
+
const result = op();
|
|
716
|
+
this._isReferenceRelativeToNamespaces = prevIsRelative;
|
|
717
|
+
return result;
|
|
718
|
+
}
|
|
746
719
|
}
|
|
720
|
+
LanguageWriter._isReferenceRelativeToNamespaces = false;
|
|
747
721
|
export function mangleMethodName(method, id) {
|
|
748
722
|
return `${method.name}${id !== null && id !== void 0 ? id : ""}`;
|
|
749
723
|
}
|
|
@@ -17,7 +17,8 @@ export declare class CJTypeNameConvertor implements NodeConvertor<string>, IdlNa
|
|
|
17
17
|
convertCallback(type: idl.IDLCallback): string;
|
|
18
18
|
convertMethod(node: idl.IDLMethod): string;
|
|
19
19
|
convertConstant(node: idl.IDLConstant): string;
|
|
20
|
-
convertImport(type: idl.
|
|
20
|
+
convertImport(type: idl.IDLImport): string;
|
|
21
|
+
convertTypeReferenceAsImport(type: idl.IDLReferenceType, importClause: string): string;
|
|
21
22
|
convertTypeReference(type: idl.IDLReferenceType): string;
|
|
22
23
|
convertTypeParameter(type: idl.IDLTypeParameterType): string;
|
|
23
24
|
convertPrimitiveType(type: idl.IDLPrimitiveType): string;
|
|
@@ -20,6 +20,11 @@ export class CJTypeNameConvertor {
|
|
|
20
20
|
this.resolver = resolver;
|
|
21
21
|
}
|
|
22
22
|
convert(node) {
|
|
23
|
+
if (idl.isType(node) && idl.isReferenceType(node)) {
|
|
24
|
+
if (node.name.startsWith('%TEXT%:')) {
|
|
25
|
+
return node.name.substring(7);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
23
28
|
return convertNode(this, node);
|
|
24
29
|
}
|
|
25
30
|
/***** TypeConvertor<string> **********************************/
|
|
@@ -35,7 +40,7 @@ export class CJTypeNameConvertor {
|
|
|
35
40
|
}
|
|
36
41
|
if (idl.IDLContainerUtils.isRecord(type)) {
|
|
37
42
|
const stringes = type.elementType.slice(0, 2).map(it => convertType(this, it));
|
|
38
|
-
return `
|
|
43
|
+
return `HashMap<${stringes[0]}, ${stringes[1]}>`;
|
|
39
44
|
}
|
|
40
45
|
if (idl.IDLContainerUtils.isPromise(type)) {
|
|
41
46
|
return `Any`;
|
|
@@ -56,7 +61,7 @@ export class CJTypeNameConvertor {
|
|
|
56
61
|
}
|
|
57
62
|
convertCallback(type) {
|
|
58
63
|
const params = type.parameters.map(it => `${it.name}: ${it.isOptional ? "?" : ""}${this.convert(it.type)}`);
|
|
59
|
-
return
|
|
64
|
+
return `(${params.join(", ")}) -> ${this.convert(type.returnType)}`;
|
|
60
65
|
}
|
|
61
66
|
convertMethod(node) {
|
|
62
67
|
throw new Error('Method not implemented.');
|
|
@@ -64,7 +69,11 @@ export class CJTypeNameConvertor {
|
|
|
64
69
|
convertConstant(node) {
|
|
65
70
|
throw new Error('Method not implemented.');
|
|
66
71
|
}
|
|
67
|
-
convertImport(type
|
|
72
|
+
convertImport(type) {
|
|
73
|
+
console.warn("Imports are not implemented yet");
|
|
74
|
+
return type.name;
|
|
75
|
+
}
|
|
76
|
+
convertTypeReferenceAsImport(type, importClause) {
|
|
68
77
|
return type.name;
|
|
69
78
|
}
|
|
70
79
|
convertTypeReference(type) {
|
|
@@ -72,7 +81,7 @@ export class CJTypeNameConvertor {
|
|
|
72
81
|
return "KPointer";
|
|
73
82
|
const importAttr = idl.getExtAttribute(type, idl.IDLExtendedAttributes.Import);
|
|
74
83
|
if (importAttr) {
|
|
75
|
-
return this.
|
|
84
|
+
return this.convertTypeReferenceAsImport(type, importAttr);
|
|
76
85
|
}
|
|
77
86
|
// resolve synthetic types
|
|
78
87
|
const decl = this.resolver.resolveTypeReference(type);
|
|
@@ -112,6 +121,8 @@ export class CJTypeNameConvertor {
|
|
|
112
121
|
case idl.IDLBufferType: return 'Array<UInt8>';
|
|
113
122
|
case idl.IDLInteropReturnBufferType: return 'Array<UInt8>';
|
|
114
123
|
case idl.IDLBigintType: return 'Int64';
|
|
124
|
+
case idl.IDLSerializerBuffer: return 'KSerializerBuffer';
|
|
125
|
+
case idl.IDLAnyType: return 'Any';
|
|
115
126
|
}
|
|
116
127
|
throw new Error(`Unsupported IDL primitive ${idl.DebugUtils.debugPrintType(type)}`);
|
|
117
128
|
}
|
|
@@ -131,6 +142,7 @@ export class CJIDLTypeToForeignStringConvertor extends CJTypeNameConvertor {
|
|
|
131
142
|
switch (type) {
|
|
132
143
|
case idl.IDLStringType: return 'CString';
|
|
133
144
|
case idl.IDLInteropReturnBufferType: return 'KInteropReturnBuffer';
|
|
145
|
+
case idl.IDLSerializerBuffer: return 'KSerializerBuffer';
|
|
134
146
|
}
|
|
135
147
|
}
|
|
136
148
|
if (idl.isContainerType(type)) {
|
|
@@ -162,7 +174,6 @@ export class CJInteropArgConvertor extends InteropArgConvertor {
|
|
|
162
174
|
convertPrimitiveType(type) {
|
|
163
175
|
switch (type) {
|
|
164
176
|
case idl.IDLNumberType: return "Float64";
|
|
165
|
-
case idl.IDLLengthType: return "Ark_Length";
|
|
166
177
|
}
|
|
167
178
|
return super.convertPrimitiveType(type);
|
|
168
179
|
}
|
|
@@ -21,7 +21,8 @@ export declare class GenericCppConvertor implements NodeConvertor<ConvertResult>
|
|
|
21
21
|
convertOptional(type: idl.IDLOptionalType): ConvertResult;
|
|
22
22
|
convertUnion(type: idl.IDLUnionType): ConvertResult;
|
|
23
23
|
convertContainer(type: idl.IDLContainerType): ConvertResult;
|
|
24
|
-
convertImport(type: idl.
|
|
24
|
+
convertImport(type: idl.IDLImport): ConvertResult;
|
|
25
|
+
convertTypeReferenceAsImport(type: idl.IDLReferenceType, _: string): ConvertResult;
|
|
25
26
|
convertTypeReference(type: idl.IDLReferenceType): ConvertResult;
|
|
26
27
|
convertTypeParameter(type: idl.IDLTypeParameterType): ConvertResult;
|
|
27
28
|
convertPrimitiveType(type: idl.IDLPrimitiveType): ConvertResult;
|
|
@@ -51,7 +52,8 @@ export declare class CppReturnTypeConvertor implements TypeConvertor<string> {
|
|
|
51
52
|
isVoid(returnType: idl.IDLType): boolean;
|
|
52
53
|
convert(type: idl.IDLType): string;
|
|
53
54
|
convertContainer(type: idl.IDLContainerType): string;
|
|
54
|
-
convertImport(type: idl.
|
|
55
|
+
convertImport(type: idl.IDLImport): string;
|
|
56
|
+
convertTypeReferenceAsImport(type: idl.IDLReferenceType, importClause: string): string;
|
|
55
57
|
convertOptional(type: idl.IDLOptionalType): string;
|
|
56
58
|
convertPrimitiveType(type: idl.IDLPrimitiveType): string;
|
|
57
59
|
convertTypeParameter(type: idl.IDLTypeParameterType): string;
|