@idlizer/core 2.1.7 → 2.1.9-arktscgen-4

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.
Files changed (62) hide show
  1. package/build/lib/src/IndentedPrinter.js +2 -0
  2. package/build/lib/src/Language.d.ts +1 -0
  3. package/build/lib/src/Language.js +3 -0
  4. package/build/lib/src/LanguageWriters/ArgConvertors.d.ts +18 -3
  5. package/build/lib/src/LanguageWriters/ArgConvertors.js +154 -23
  6. package/build/lib/src/LanguageWriters/LanguageWriter.d.ts +29 -4
  7. package/build/lib/src/LanguageWriters/LanguageWriter.js +42 -0
  8. package/build/lib/src/LanguageWriters/convertors/CJConvertors.js +23 -10
  9. package/build/lib/src/LanguageWriters/convertors/KotlinConvertor.d.ts +24 -0
  10. package/build/lib/src/LanguageWriters/convertors/KotlinConvertor.js +69 -0
  11. package/build/lib/src/LanguageWriters/convertors/KotlinConvertors.d.ts +25 -0
  12. package/build/lib/src/LanguageWriters/convertors/KotlinConvertors.js +128 -0
  13. package/build/lib/src/LanguageWriters/index.js +4 -0
  14. package/build/lib/src/LanguageWriters/writers/CJLanguageWriter.d.ts +5 -5
  15. package/build/lib/src/LanguageWriters/writers/CJLanguageWriter.js +25 -23
  16. package/build/lib/src/LanguageWriters/writers/CLikeLanguageWriter.d.ts +1 -1
  17. package/build/lib/src/LanguageWriters/writers/CppLanguageWriter.d.ts +11 -2
  18. package/build/lib/src/LanguageWriters/writers/CppLanguageWriter.js +43 -10
  19. package/build/lib/src/LanguageWriters/writers/ETSLanguageWriter.d.ts +2 -2
  20. package/build/lib/src/LanguageWriters/writers/ETSLanguageWriter.js +20 -11
  21. package/build/lib/src/LanguageWriters/writers/JavaLanguageWriter.d.ts +2 -2
  22. package/build/lib/src/LanguageWriters/writers/JavaLanguageWriter.js +3 -3
  23. package/build/lib/src/LanguageWriters/writers/KotlinLanguageWriter.d.ts +149 -0
  24. package/build/lib/src/LanguageWriters/writers/KotlinLanguageWriter.js +495 -0
  25. package/build/lib/src/LanguageWriters/writers/TsLanguageWriter.d.ts +2 -2
  26. package/build/lib/src/LanguageWriters/writers/TsLanguageWriter.js +6 -4
  27. package/build/lib/src/LibraryInterface.d.ts +2 -0
  28. package/build/lib/src/config.d.ts +132 -66
  29. package/build/lib/src/config.js +4 -2
  30. package/build/lib/src/configDescriber.d.ts +1 -1
  31. package/build/lib/src/configDescriber.js +1 -1
  32. package/build/lib/src/from-idl/DtsPrinter.js +10 -7
  33. package/build/lib/src/from-idl/IDLLinter.d.ts +0 -1
  34. package/build/lib/src/from-idl/IDLLinter.js +0 -6
  35. package/build/lib/src/from-idl/deserialize.js +7 -21
  36. package/build/lib/src/idl.d.ts +4 -13
  37. package/build/lib/src/idl.js +24 -58
  38. package/build/lib/src/idlize.js +2 -0
  39. package/build/lib/src/index.d.ts +2 -0
  40. package/build/lib/src/index.js +2 -0
  41. package/build/lib/src/peer-generation/LayoutManager.d.ts +4 -1
  42. package/build/lib/src/peer-generation/LayoutManager.js +5 -1
  43. package/build/lib/src/peer-generation/Materialized.d.ts +7 -3
  44. package/build/lib/src/peer-generation/Materialized.js +17 -3
  45. package/build/lib/src/peer-generation/PeerLibrary.d.ts +5 -2
  46. package/build/lib/src/peer-generation/PeerLibrary.js +26 -6
  47. package/build/lib/src/peer-generation/PeerMethod.d.ts +1 -1
  48. package/build/lib/src/peer-generation/getSuperType.d.ts +5 -0
  49. package/build/lib/src/peer-generation/getSuperType.js +55 -0
  50. package/build/lib/src/peer-generation/idl/IdlNameConvertor.d.ts +4 -0
  51. package/build/lib/src/peer-generation/idl/IdlNameConvertor.js +7 -0
  52. package/build/lib/src/peer-generation/idl/common.js +1 -1
  53. package/build/lib/src/peer-generation/isExternalType.d.ts +4 -0
  54. package/build/lib/src/peer-generation/isExternalType.js +15 -0
  55. package/build/lib/src/peer-generation/isMaterialized.js +15 -7
  56. package/build/lib/src/util.d.ts +2 -0
  57. package/build/lib/src/util.js +17 -7
  58. package/build/lib/src/visitor.js +0 -1
  59. package/package.json +2 -2
  60. package/webidl2.js/LICENSE +0 -21
  61. package/webidl2.js/README.md +0 -827
  62. package/webidl2.js/dist/package.json +0 -3
@@ -15,7 +15,7 @@
15
15
  import { createReferenceType, forceAsNamedNode, IDLU32Type, IDLVoidType } from '../../idl';
16
16
  import { Language } from '../../Language';
17
17
  import { PrimitiveTypeList } from "../../peer-generation/PrimitiveType";
18
- import { AssignStatement, BlockStatement, FieldModifier, PrintHint, MethodModifier, NamedMethodSignature, StringExpression } from "../LanguageWriter";
18
+ import { AssignStatement, BlockStatement, FieldModifier, PrintHint, MethodModifier, NamedMethodSignature, StringExpression, MethodStaticCallExpression } from "../LanguageWriter";
19
19
  import { CDefinedExpression, CLikeExpressionStatement, CLikeLanguageWriter, CLikeLoopStatement, CLikeReturnStatement } from "./CLikeLanguageWriter";
20
20
  import { RuntimeType } from "../common";
21
21
  import { IndentedPrinter } from "../../IndentedPrinter";
@@ -66,6 +66,11 @@ export class CppPointerPropertyAccessExpression {
66
66
  return `${this.expression}->${this.name}`;
67
67
  }
68
68
  }
69
+ export class CPPMethodStaticCallExpression extends MethodStaticCallExpression {
70
+ asString() {
71
+ return `${this.receiver}::${this.name}(${this.params.map(it => it.asString()).join(', ')})`;
72
+ }
73
+ }
69
74
  ////////////////////////////////////////////////////////////////
70
75
  // STATEMENTS //
71
76
  ////////////////////////////////////////////////////////////////
@@ -162,8 +167,13 @@ export class CppLanguageWriter extends CLikeLanguageWriter {
162
167
  constructor(printer, resolver, typeConvertor, primitivesTypes) {
163
168
  super(printer, resolver, Language.CPP);
164
169
  this.primitivesTypes = primitivesTypes;
170
+ this.classMode = 'normal';
171
+ this.currentClass = [];
165
172
  this.typeConvertor = typeConvertor;
166
173
  }
174
+ changeModeTo(mode) {
175
+ this.classMode = mode;
176
+ }
167
177
  getNodeName(type) {
168
178
  return this.typeConvertor.convert(type);
169
179
  }
@@ -171,14 +181,28 @@ export class CppLanguageWriter extends CLikeLanguageWriter {
171
181
  var _a;
172
182
  return new CppLanguageWriter(new IndentedPrinter(), (_a = options === null || options === void 0 ? void 0 : options.resolver) !== null && _a !== void 0 ? _a : this.resolver, this.typeConvertor, this.primitivesTypes);
173
183
  }
184
+ writeDeclaration(name, signature, modifiers, postfix) {
185
+ const realName = this.classMode === 'normal' ? name : `${this.currentClass.at(0)}::${name}`;
186
+ const newModifiers = this.classMode === 'normal'
187
+ ? modifiers
188
+ : (modifiers !== null && modifiers !== void 0 ? modifiers : []).filter(it => it !== MethodModifier.STATIC).concat(MethodModifier.INLINE);
189
+ super.writeDeclaration(realName, signature, newModifiers, postfix);
190
+ }
174
191
  writeClass(name, op, superClass, interfaces) {
175
- const superClasses = (superClass ? [superClass] : []).concat(interfaces !== null && interfaces !== void 0 ? interfaces : []);
176
- const extendsClause = superClasses.length > 0 ? ` : ${superClasses.map(c => `public ${c}`).join(", ")}` : '';
177
- this.printer.print(`class ${name}${extendsClause} {`);
178
- this.pushIndent();
192
+ if (this.classMode === 'normal') {
193
+ const superClasses = (superClass ? [superClass] : []).concat(interfaces !== null && interfaces !== void 0 ? interfaces : []);
194
+ const extendsClause = superClasses.length > 0 ? ` : ${superClasses.map(c => `public ${c}`).join(", ")}` : '';
195
+ this.printer.print(`class ${name}${extendsClause} {`);
196
+ this.pushIndent();
197
+ }
198
+ if (this.classMode === 'detached') {
199
+ this.currentClass.push(name);
200
+ }
179
201
  op(this);
180
- this.popIndent();
181
- this.printer.print(`};`);
202
+ if (this.classMode === 'normal') {
203
+ this.popIndent();
204
+ this.printer.print(`};`);
205
+ }
182
206
  }
183
207
  writeInterface(name, op, superInterfaces, generics) {
184
208
  throw new Error("Method not implemented.");
@@ -191,6 +215,9 @@ export class CppLanguageWriter extends CLikeLanguageWriter {
191
215
  super.writeMethodCall(receiver, method, params, nullable);
192
216
  }
193
217
  }
218
+ writeStaticMethodCall(receiver, method, params, nullable) {
219
+ this.printer.print(`${receiver}::${method}(${params.join(', ')});`);
220
+ }
194
221
  writeFieldDeclaration(name, type, modifiers, optional, initExpr) {
195
222
  let filter = function (modifier_name) {
196
223
  return modifier_name !== FieldModifier.STATIC;
@@ -201,9 +228,9 @@ export class CppLanguageWriter extends CLikeLanguageWriter {
201
228
  this.printer.print(`${forceAsNamedNode(type).name} ${name};`);
202
229
  this.printer.popIndent();
203
230
  }
204
- writeConstructorImplementation(className, signature, op, superCall, modifiers) {
205
- const superInvocation = superCall
206
- ? ` : ${superCall.name}(${superCall.signature.args.map((_, i) => superCall === null || superCall === void 0 ? void 0 : superCall.signature.argName(i)).join(", ")})`
231
+ writeConstructorImplementation(className, signature, op, delegationCall, modifiers) {
232
+ const superInvocation = delegationCall
233
+ ? ` : ${delegationCall.delegationName}(${delegationCall.delegationArgs.map(it => it.asString()).join(", ")})`
207
234
  : "";
208
235
  const argList = signature.args.map((it, index) => {
209
236
  var _a;
@@ -293,6 +320,9 @@ export class CppLanguageWriter extends CLikeLanguageWriter {
293
320
  makeUnionVariantCast(value, type, convertor, index) {
294
321
  return this.makeString(`${value}.value${index}`);
295
322
  }
323
+ makeStaticMethodCall(receiver, method, params, nullable) {
324
+ return new CPPMethodStaticCallExpression(receiver, method, params, nullable);
325
+ }
296
326
  makeLoop(counter, limit, statement) {
297
327
  return new CLikeLoopStatement(counter, limit, statement);
298
328
  }
@@ -435,6 +465,9 @@ export class CppLanguageWriter extends CLikeLanguageWriter {
435
465
  case PrintHint.AsPointer:
436
466
  postfix = '*';
437
467
  break;
468
+ case PrintHint.AsReference:
469
+ postfix = '&';
470
+ break;
438
471
  case PrintHint.AsConstPointer:
439
472
  constModifier = 'const ';
440
473
  postfix = '*';
@@ -31,8 +31,8 @@ export declare class ETSLambdaExpression extends LambdaExpression {
31
31
  asString(): string;
32
32
  }
33
33
  export declare function generateTypeCheckerName(typeName: string): string;
34
- export declare function generateEnumToNumericName(typeName: string): string;
35
- export declare function generateEnumFromNumericName(typeName: string): string;
34
+ export declare function generateEnumToNumericName(entry: idl.IDLEntry): string;
35
+ export declare function generateEnumFromNumericName(entry: idl.IDLEntry): string;
36
36
  export declare function makeArrayTypeCheckCall(valueAccessor: string, typeName: string, writer: LanguageWriter): LanguageExpression;
37
37
  export declare class ETSLanguageWriter extends TSLanguageWriter {
38
38
  private arrayConvertor;
@@ -132,15 +132,15 @@ export class ETSLambdaExpression extends LambdaExpression {
132
132
  export function generateTypeCheckerName(typeName) {
133
133
  typeName = typeName
134
134
  .replaceAll('[]', 'BracketsArray')
135
- .split('.').at(-1); // Todo: hack for namespaces. Remove when ready to use FQNames
135
+ .split('.').join('_');
136
136
  return `is${typeName.replaceAll('[]', 'Brackets')}`;
137
137
  }
138
- export function generateEnumToNumericName(typeName) {
139
- typeName = typeName.split('.').at(-1); // Todo: hack for namespaces. Remove when ready to use FQNames
138
+ export function generateEnumToNumericName(entry) {
139
+ const typeName = idl.getQualifiedName(entry, "namespace.name").split('.').join('_');
140
140
  return `${typeName}_ToNumeric`;
141
141
  }
142
- export function generateEnumFromNumericName(typeName) {
143
- typeName = typeName.split('.').at(-1); // Todo: hack for namespaces. Remove when ready to use FQNames
142
+ export function generateEnumFromNumericName(entry) {
143
+ const typeName = idl.getQualifiedName(entry, "namespace.name").split('.').join('_');
144
144
  return `${typeName}_FromNumeric`;
145
145
  }
146
146
  export function makeArrayTypeCheckCall(valueAccessor, typeName, writer) {
@@ -169,7 +169,7 @@ export class ETSLanguageWriter extends TSLanguageWriter {
169
169
  return new ArkTSMapForEachStatement(map, key, value, op);
170
170
  }
171
171
  makeMapSize(map) {
172
- return this.makeString(`${super.makeMapSize(map).asString()} as int32`); // TODO: cast really needed?
172
+ return this.makeString(`${super.makeMapSize(map).asString()}`); // TODO: cast really needed?
173
173
  }
174
174
  get supportedModifiers() {
175
175
  return [MethodModifier.PUBLIC, MethodModifier.PRIVATE, MethodModifier.NATIVE, MethodModifier.STATIC];
@@ -182,8 +182,7 @@ export class ETSLanguageWriter extends TSLanguageWriter {
182
182
  }
183
183
  i32FromEnum(value, enumEntry) {
184
184
  if (ETSLanguageWriter.isUseTypeChecker) {
185
- const enumName = this.getNodeName(enumEntry);
186
- return this.makeMethodCall('TypeChecker', generateEnumToNumericName(enumName), [value]);
185
+ return this.makeMethodCall('TypeChecker', generateEnumToNumericName(enumEntry), [value]);
187
186
  }
188
187
  return idl.isStringEnum(enumEntry)
189
188
  ? this.makeMethodCall(value.asString(), 'getOrdinal', [])
@@ -192,7 +191,7 @@ export class ETSLanguageWriter extends TSLanguageWriter {
192
191
  enumFromI32(value, enumEntry) {
193
192
  const enumName = this.getNodeName(enumEntry);
194
193
  if (ETSLanguageWriter.isUseTypeChecker) {
195
- return this.makeMethodCall('TypeChecker', generateEnumFromNumericName(enumName), [value]);
194
+ return this.makeMethodCall('TypeChecker', generateEnumFromNumericName(enumEntry), [value]);
196
195
  }
197
196
  return idl.isStringEnum(enumEntry)
198
197
  ? this.makeString(`${enumName}.values()[${value.asString()}]`)
@@ -284,8 +283,8 @@ export class ETSLanguageWriter extends TSLanguageWriter {
284
283
  // The explicit cast forces ui2abc to call valueOf on an int, which fails the compilation
285
284
  // TODO Fix this cast
286
285
  if (bitness === 8)
287
- return value;
288
- return `${value} as int32`; // FIXME: is there int8 in ARKTS?
286
+ return `(${value}).toChar()`;
287
+ return `(${value}).toInt()`; // FIXME: is there int8 in ARKTS?
289
288
  }
290
289
  castToBoolean(value) { return `${value} ? 1 : 0`; }
291
290
  instanceOf(convertor, value, duplicateMembers) {
@@ -322,6 +321,16 @@ export class ETSLanguageWriter extends TSLanguageWriter {
322
321
  }
323
322
  makeCast(value, node, options) {
324
323
  var _a;
324
+ if (node === idl.IDLI64Type)
325
+ return this.makeMethodCall(value.asString(), `toLong`, []);
326
+ if (node === idl.IDLI32Type)
327
+ return this.makeMethodCall(value.asString(), `toInt`, []);
328
+ if (node === idl.IDLI8Type)
329
+ return this.makeMethodCall(value.asString(), `toByte`, []);
330
+ if (node === idl.IDLF64Type)
331
+ return this.makeMethodCall(value.asString(), `toDouble`, []);
332
+ if (node === idl.IDLF32Type)
333
+ return this.makeMethodCall(value.asString(), `toFloat`, []);
325
334
  return new TSCastExpression(value, `${this.getNodeName(node)}`, (_a = options === null || options === void 0 ? void 0 : options.unsafe) !== null && _a !== void 0 ? _a : false);
326
335
  }
327
336
  static get isUseTypeChecker() { return this._isUseTypeChecker; }
@@ -1,5 +1,5 @@
1
1
  import { IndentedPrinter } from "../../IndentedPrinter";
2
- import { AssignStatement, FieldModifier, LanguageExpression, LanguageStatement, LanguageWriter, MakeCastOptions, Method, MethodModifier, MethodSignature, ObjectArgs } from "../LanguageWriter";
2
+ import { AssignStatement, DelegationCall, FieldModifier, LanguageExpression, LanguageStatement, LanguageWriter, MakeCastOptions, Method, MethodModifier, MethodSignature, ObjectArgs } from "../LanguageWriter";
3
3
  import { CLikeLanguageWriter } from "./CLikeLanguageWriter";
4
4
  import * as idl from '../../idl';
5
5
  import { ArgConvertor, BaseArgConvertor } from "../ArgConvertors";
@@ -39,7 +39,7 @@ export declare class JavaLanguageWriter extends CLikeLanguageWriter {
39
39
  writeMethodCall(receiver: string, method: string, params: string[], nullable?: boolean): void;
40
40
  writeFieldDeclaration(name: string, type: idl.IDLType, modifiers: FieldModifier[] | undefined, optional: boolean, initExpr?: LanguageExpression): void;
41
41
  writeNativeMethodDeclaration(method: Method): void;
42
- writeConstructorImplementation(className: string, signature: MethodSignature, op: (writer: this) => void, superCall?: Method, modifiers?: MethodModifier[]): void;
42
+ writeConstructorImplementation(className: string, signature: MethodSignature, op: (writer: this) => void, delegationCall?: DelegationCall, modifiers?: MethodModifier[]): void;
43
43
  writeProperty(propName: string, propType: idl.IDLType, modifiers: FieldModifier[], getter?: {
44
44
  method: Method;
45
45
  op: () => void;
@@ -146,11 +146,11 @@ export class JavaLanguageWriter extends CLikeLanguageWriter {
146
146
  writeNativeMethodDeclaration(method) {
147
147
  this.writeMethodDeclaration(method.name, method.signature, [MethodModifier.STATIC, MethodModifier.NATIVE]);
148
148
  }
149
- writeConstructorImplementation(className, signature, op, superCall, modifiers) {
149
+ writeConstructorImplementation(className, signature, op, delegationCall, modifiers) {
150
150
  this.printer.print(`${modifiers ? modifiers.map((it) => MethodModifier[it].toLowerCase()).join(' ') : ''} ${className}(${signature.args.map((it, index) => `${this.getNodeName(it)} ${signature.argName(index)}`).join(", ")}) {`);
151
151
  this.pushIndent();
152
- if (superCall) {
153
- this.print(`super(${superCall.signature.args.map((_, i) => superCall === null || superCall === void 0 ? void 0 : superCall.signature.argName(i)).join(", ")});`);
152
+ if (delegationCall) {
153
+ this.print(`super(${delegationCall.delegationArgs.map(it => it.asString()).join(", ")});`);
154
154
  }
155
155
  op(this);
156
156
  this.popIndent();
@@ -0,0 +1,149 @@
1
+ import * as idl from '../../idl';
2
+ import { Language } from '../../Language';
3
+ import { IndentedPrinter } from "../../IndentedPrinter";
4
+ import { AssignStatement, DelegationCall, FieldModifier, LanguageExpression, LanguageStatement, LanguageWriter, MakeAssignOptions, MakeCastOptions, Method, MethodModifier, MethodSignature, ObjectArgs } from "../LanguageWriter";
5
+ import { ArgConvertor } from "../ArgConvertors";
6
+ import { IdlNameConvertor } from "../nameConvertor";
7
+ import { RuntimeType } from "../common";
8
+ import { ReferenceResolver } from "../../peer-generation/ReferenceResolver";
9
+ export declare class KotlinEnumEntityStatement implements LanguageStatement {
10
+ private readonly enumEntity;
11
+ private readonly options;
12
+ constructor(enumEntity: idl.IDLEnum, options: {
13
+ isExport: boolean;
14
+ isDeclare: boolean;
15
+ });
16
+ write(writer: LanguageWriter): void;
17
+ private maybeQuoted;
18
+ }
19
+ export declare class KotlinEnumWithGetter implements LanguageStatement {
20
+ private readonly enumEntity;
21
+ private readonly isExport;
22
+ constructor(enumEntity: idl.IDLEnum, isExport: boolean);
23
+ write(writer: LanguageWriter): void;
24
+ }
25
+ export declare class KotlinThrowErrorStatement implements LanguageStatement {
26
+ message: string;
27
+ constructor(message: string);
28
+ write(writer: LanguageWriter): void;
29
+ }
30
+ export declare class KotlinLoopStatement implements LanguageStatement {
31
+ private counter;
32
+ private limit;
33
+ private statement;
34
+ constructor(counter: string, limit: string, statement: LanguageStatement | undefined);
35
+ write(writer: LanguageWriter): void;
36
+ }
37
+ export declare class KotlinAssignStatement extends AssignStatement {
38
+ variableName: string;
39
+ type: idl.IDLType | undefined;
40
+ expression: LanguageExpression;
41
+ isDeclared: boolean;
42
+ isConst: boolean;
43
+ constructor(variableName: string, type: idl.IDLType | undefined, expression: LanguageExpression, isDeclared?: boolean, isConst?: boolean);
44
+ write(writer: LanguageWriter): void;
45
+ }
46
+ export declare class KotlinNewObjectExpression implements LanguageExpression {
47
+ private objectName;
48
+ private params;
49
+ constructor(objectName: string, params: LanguageExpression[]);
50
+ asString(): string;
51
+ }
52
+ export declare class KotlinCheckDefinedExpression implements LanguageExpression {
53
+ private value;
54
+ constructor(value: string);
55
+ asString(): string;
56
+ }
57
+ export declare class KotlinLanguageWriter extends LanguageWriter {
58
+ protected typeConvertor: IdlNameConvertor;
59
+ constructor(printer: IndentedPrinter, resolver: ReferenceResolver, typeConvertor: IdlNameConvertor, language?: Language);
60
+ fork(options?: {
61
+ resolver?: ReferenceResolver;
62
+ }): LanguageWriter;
63
+ getNodeName(type: idl.IDLNode): string;
64
+ writeClass(name: string, op: (writer: this) => void, superClass?: string, interfaces?: string[], generics?: string[], isDeclared?: boolean, isAbstract?: boolean): void;
65
+ writeInterface(name: string, op: (writer: this) => void, superInterfaces?: string[], generics?: string[], isDeclared?: boolean): void;
66
+ writeFunctionDeclaration(name: string, signature: MethodSignature, generics?: string[]): void;
67
+ writeFunctionImplementation(name: string, signature: MethodSignature, op: (writer: this) => void, generics?: string[]): void;
68
+ private generateFunctionDeclaration;
69
+ writeEnum(name: string, members: {
70
+ name: string;
71
+ alias?: string | undefined;
72
+ stringId: string | undefined;
73
+ numberId: number;
74
+ }[], options: {
75
+ isDeclare?: boolean;
76
+ isExport: boolean;
77
+ }): void;
78
+ private writeDeclaration;
79
+ writeFieldDeclaration(name: string, type: idl.IDLType, modifiers: FieldModifier[] | undefined, optional: boolean, initExpr?: LanguageExpression): void;
80
+ writeNativeMethodDeclaration(method: Method): void;
81
+ writeMethodDeclaration(name: string, signature: MethodSignature, modifiers?: MethodModifier[]): void;
82
+ writeConstructorImplementation(className: string, signature: MethodSignature, op: (writer: this) => void, delegationCall?: DelegationCall, modifiers?: MethodModifier[]): void;
83
+ writeMethodImplementation(method: Method, op: (writer: this) => void): void;
84
+ writeProperty(propName: string, propType: idl.IDLType, modifiers: FieldModifier[], getter?: {
85
+ method: Method;
86
+ op: () => void;
87
+ }, setter?: {
88
+ method: Method;
89
+ op: () => void;
90
+ }): void;
91
+ writeGetterImplementation(method: Method, op?: (writer: this) => void): void;
92
+ writeSetterImplementation(method: Method, op: (writer: this) => void): void;
93
+ writeTypeDeclaration(decl: idl.IDLTypedef): void;
94
+ writeConstant(constName: string, constType: idl.IDLType, constVal?: string): void;
95
+ makeNull(): LanguageExpression;
96
+ makeAssign(variableName: string, type: idl.IDLType | undefined, expr: LanguageExpression, isDeclared?: boolean, isConst?: boolean, options?: MakeAssignOptions): LanguageStatement;
97
+ makeLambda(signature: MethodSignature, body?: LanguageStatement[]): LanguageExpression;
98
+ makeThrowError(message: string): LanguageStatement;
99
+ makeReturn(expr: LanguageExpression): LanguageStatement;
100
+ makeCheckOptional(optional: LanguageExpression, doStatement: LanguageStatement): LanguageStatement;
101
+ makeStatement(expr: LanguageExpression): LanguageStatement;
102
+ makeLoop(counter: string, limit: string, statement?: LanguageStatement): LanguageStatement;
103
+ makeMapForEach(map: string, key: string, value: string, op: () => void): LanguageStatement;
104
+ writePrintLog(message: string): void;
105
+ makeCast(value: LanguageExpression, node: idl.IDLNode, options?: MakeCastOptions): LanguageExpression;
106
+ typeInstanceOf(type: idl.IDLEntry, value: string, members?: string[]): LanguageExpression;
107
+ getObjectAccessor(convertor: ArgConvertor, value: string, args?: ObjectArgs): string;
108
+ makeUndefined(): LanguageExpression;
109
+ makeRuntimeType(rt: RuntimeType): LanguageExpression;
110
+ makeTupleAlloc(option: string): LanguageStatement;
111
+ makeArrayInit(type: idl.IDLContainerType, size?: number): LanguageExpression;
112
+ makeArrayLength(array: string, length?: string): LanguageExpression;
113
+ makeClassInit(type: idl.IDLType, paramenters: LanguageExpression[]): LanguageExpression;
114
+ makeMapInit(type: idl.IDLType): LanguageExpression;
115
+ makeMapInsert(keyAccessor: string, key: string, valueAccessor: string, value: string): LanguageStatement;
116
+ makeUnwrapOptional(expression: LanguageExpression): LanguageExpression;
117
+ makeDefinedCheck(value: string): LanguageExpression;
118
+ makeUnionSelector(value: string, valueType: string): LanguageStatement;
119
+ makeUnionVariantCast(value: string, type: string, convertor: ArgConvertor, index: number): LanguageExpression;
120
+ makeValueFromOption(value: string, destinationConvertor: ArgConvertor): LanguageExpression;
121
+ makeUnionVariantCondition(_convertor: ArgConvertor, _valueName: string, valueType: string, type: string, _convertorIndex?: number, _runtimeTypeIndex?: number): LanguageExpression;
122
+ makeRuntimeTypeCondition(typeVarName: string, equals: boolean, type: RuntimeType, varName: string): LanguageExpression;
123
+ getTagType(): idl.IDLType;
124
+ getRuntimeType(): idl.IDLType;
125
+ makeTupleAssign(receiver: string, fields: string[]): LanguageStatement;
126
+ get supportedModifiers(): MethodModifier[];
127
+ get supportedFieldModifiers(): FieldModifier[];
128
+ enumFromI32(value: LanguageExpression, enumEntry: idl.IDLEnum): LanguageExpression;
129
+ i32FromEnum(value: LanguageExpression, enumEntry: idl.IDLEnum): LanguageExpression;
130
+ makeEnumEntity(enumEntity: idl.IDLEnum, options: {
131
+ isExport: boolean;
132
+ isDeclare?: boolean;
133
+ }): LanguageStatement;
134
+ castToBoolean(value: string): string;
135
+ castToInt(value: string, bitness: 8 | 32): string;
136
+ makeCallIsObject(value: string): LanguageExpression;
137
+ makeNewObject(objectName: string, params?: LanguageExpression[]): LanguageExpression;
138
+ escapeKeyword(keyword: string): string;
139
+ makeDiscriminatorConvertor(convertor: ArgConvertor, value: string, index: number): LanguageExpression | undefined;
140
+ makeStaticBlock(op: (writer: LanguageWriter) => void): void;
141
+ pushNamespace(namespace: string, options: {
142
+ ident: boolean;
143
+ isDeclared?: boolean;
144
+ }): void;
145
+ popNamespace(options: {
146
+ ident: boolean;
147
+ }): void;
148
+ }
149
+ //# sourceMappingURL=KotlinLanguageWriter.d.ts.map