@idlizer/arktscgen 2.1.10-arktscgen-2 → 2.1.10-arktscgen-3a
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/libarkts-copy/generator/options.json5 +89 -6
- package/build/libarkts-copy/native/meson.build +1 -0
- package/build/libarkts-copy/native/src/bridges.cc +10 -4
- package/build/libarkts-copy/native/src/common.cc +0 -12
- package/build/libarkts-copy/native/src/generated/bridges.cc +416 -723
- package/build/libarkts-copy/native/src/memoryTracker.cc +178 -0
- package/build/libarkts-copy/native/src/memoryTracker.h +52 -0
- package/build/libarkts-copy/package.json +8 -8
- package/build/libarkts-copy/src/Es2pandaNativeModule.ts +14 -2
- package/build/libarkts-copy/src/arkts-api/class-by-peer.ts +2 -2
- package/build/libarkts-copy/src/arkts-api/index.ts +2 -1
- package/build/libarkts-copy/src/arkts-api/node-utilities/ScriptFunction.ts +1 -1
- package/build/libarkts-copy/src/arkts-api/peers/AstNode.ts +4 -1
- package/{templates/node-map.ts → build/libarkts-copy/src/arkts-api/peers/DiagnosticKind.ts} +8 -19
- package/build/libarkts-copy/src/arkts-api/utilities/extensions.ts +26 -9
- package/build/libarkts-copy/src/arkts-api/utilities/performance.ts +309 -0
- package/build/libarkts-copy/src/arkts-api/utilities/private.ts +7 -21
- package/build/libarkts-copy/src/arkts-api/utilities/public.ts +61 -7
- package/build/libarkts-copy/src/arkts-api/visitor.ts +21 -14
- package/build/libarkts-copy/src/generated/Es2pandaEnums.ts +1 -0
- package/build/libarkts-copy/src/generated/Es2pandaNativeModule.ts +88 -172
- package/build/libarkts-copy/src/generated/factory.ts +2 -3
- package/build/libarkts-copy/src/generated/peers/AnnotatedAstNode.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/AnnotatedExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/AnnotatedStatement.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/AnnotationDeclaration.ts +11 -13
- package/build/libarkts-copy/src/generated/peers/AnnotationUsage.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/ArkTsConfig.ts +3 -1
- package/build/libarkts-copy/src/generated/peers/ArrayExpression.ts +0 -5
- package/build/libarkts-copy/src/generated/peers/ArrowFunctionExpression.ts +12 -14
- package/build/libarkts-copy/src/generated/peers/AssertStatement.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/AssignmentExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/AstDumper.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/AstVerifier.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/AstVisitor.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/AwaitExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/BigIntLiteral.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/BinaryExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/BindingProps.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/BlockExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/BlockStatement.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/BooleanLiteral.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/BreakStatement.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/CallExpression.ts +6 -2
- package/build/libarkts-copy/src/generated/peers/CatchClause.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ChainExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/CharLiteral.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ClassDeclaration.ts +1 -24
- package/build/libarkts-copy/src/generated/peers/ClassDefinition.ts +26 -20
- package/build/libarkts-copy/src/generated/peers/ClassElement.ts +2 -30
- package/build/libarkts-copy/src/generated/peers/ClassExpression.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/ClassProperty.ts +10 -12
- package/build/libarkts-copy/src/generated/peers/ClassStaticBlock.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/CodeGen.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ConditionalExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ContinueStatement.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/DebuggerStatement.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/Declaration.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/Decorator.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/DiagnosticInfo.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/DirectEvalExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/DoWhileStatement.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/DynamicImportData.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ETSClassLiteral.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ETSFunctionType.ts +9 -3
- package/build/libarkts-copy/src/generated/peers/ETSImportDeclaration.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ETSIntrinsicNode.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ETSKeyofType.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ETSModule.ts +12 -14
- package/build/libarkts-copy/src/generated/peers/ETSNewArrayInstanceExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ETSNewClassInstanceExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ETSNewMultiDimArrayInstanceExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ETSNullType.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ETSPackageDeclaration.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ETSParameterExpression.ts +13 -15
- package/build/libarkts-copy/src/generated/peers/ETSPrimitiveType.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ETSReExportDeclaration.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/ETSStringLiteralType.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ETSStructDeclaration.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ETSTuple.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ETSTypeReference.ts +2 -3
- package/build/libarkts-copy/src/generated/peers/ETSTypeReferencePart.ts +3 -4
- package/build/libarkts-copy/src/generated/peers/ETSUndefinedType.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ETSUnionType.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ETSWildcardType.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/EmptyStatement.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ErrorLogger.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ExportAllDeclaration.ts +2 -3
- package/build/libarkts-copy/src/generated/peers/ExportDefaultDeclaration.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ExportNamedDeclaration.ts +2 -3
- package/build/libarkts-copy/src/generated/peers/ExportSpecifier.ts +2 -3
- package/build/libarkts-copy/src/generated/peers/Expression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ExpressionStatement.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ForInStatement.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ForOfStatement.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ForUpdateStatement.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/FunctionDeclaration.ts +10 -16
- package/build/libarkts-copy/src/generated/peers/FunctionExpression.ts +2 -3
- package/build/libarkts-copy/src/generated/peers/FunctionSignature.ts +2 -2
- package/build/libarkts-copy/src/generated/peers/IRNode.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/Identifier.ts +0 -10
- package/build/libarkts-copy/src/generated/peers/IfStatement.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ImportDeclaration.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/ImportDefaultSpecifier.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/ImportExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ImportNamespaceSpecifier.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/ImportSource.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ImportSpecifier.ts +2 -3
- package/build/libarkts-copy/src/generated/peers/IndexInfo.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/LabelPair.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/LabelledStatement.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/Literal.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/LoopStatement.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/MaybeOptionalExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/MemberExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/MetaProperty.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/MethodDefinition.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/NamedType.ts +2 -3
- package/build/libarkts-copy/src/generated/peers/NewExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/NullLiteral.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/NumberLiteral.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ObjectDescriptor.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ObjectExpression.ts +0 -5
- package/build/libarkts-copy/src/generated/peers/OmittedExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/OpaqueTypeNode.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/OverloadDeclaration.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/PrefixAssertionExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/Program.ts +9 -2
- package/build/libarkts-copy/src/generated/peers/Property.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/RegExpLiteral.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ReturnStatement.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ScopeFindResult.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ScriptFunction.ts +22 -19
- package/build/libarkts-copy/src/generated/peers/ScriptFunctionData.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/SequenceExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/SignatureInfo.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/SourcePosition.ts +2 -1
- package/build/libarkts-copy/src/generated/peers/SourceRange.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/SpreadElement.ts +0 -5
- package/build/libarkts-copy/src/generated/peers/SrcDumper.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/Statement.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/StringLiteral.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/SuggestionInfo.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/SuperExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/SwitchCaseStatement.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/SwitchStatement.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/TSAnyKeyword.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSArrayType.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSAsExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSBigintKeyword.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSBooleanKeyword.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSClassImplements.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/TSConditionalType.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSConstructorType.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/TSEnumDeclaration.ts +2 -25
- package/build/libarkts-copy/src/generated/peers/TSEnumMember.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSExternalModuleReference.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSFunctionType.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/TSImportEqualsDeclaration.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/TSImportType.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/TSIndexSignature.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSIndexedAccessType.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSInferType.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/TSInterfaceBody.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSInterfaceDeclaration.ts +14 -38
- package/build/libarkts-copy/src/generated/peers/TSInterfaceHeritage.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSIntersectionType.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSLiteralType.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSMappedType.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/TSMethodSignature.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/TSModuleBlock.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSModuleDeclaration.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSNamedTupleMember.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSNeverKeyword.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSNonNullExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSNullKeyword.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSNumberKeyword.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSObjectKeyword.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSParameterProperty.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSParenthesizedType.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSPropertySignature.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSQualifiedName.ts +2 -3
- package/build/libarkts-copy/src/generated/peers/TSSignatureDeclaration.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/TSStringKeyword.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSThisType.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSTupleType.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSTypeAliasDeclaration.ts +26 -40
- package/build/libarkts-copy/src/generated/peers/TSTypeAssertion.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSTypeLiteral.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSTypeOperator.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSTypeParameter.ts +11 -13
- package/build/libarkts-copy/src/generated/peers/TSTypeParameterDeclaration.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/TSTypeParameterInstantiation.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSTypePredicate.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSTypeQuery.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSTypeReference.ts +2 -3
- package/build/libarkts-copy/src/generated/peers/TSUndefinedKeyword.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSUnionType.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSUnknownKeyword.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSVoidKeyword.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TaggedTemplateExpression.ts +2 -3
- package/build/libarkts-copy/src/generated/peers/TemplateElement.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TemplateLiteral.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/ThisExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ThrowStatement.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TryStatement.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/TypeNode.ts +10 -12
- package/build/libarkts-copy/src/generated/peers/TypedAstNode.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TypedStatement.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TypeofExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/UnaryExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/UndefinedLiteral.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/UpdateExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/VReg.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ValidationInfo.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/VariableDeclaration.ts +11 -20
- package/build/libarkts-copy/src/generated/peers/VariableDeclarator.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/VerificationContext.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/VerifierMessage.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/WhileStatement.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/YieldExpression.ts +0 -1
- package/build/libarkts-copy/src/index.ts +2 -1
- package/build/libarkts-copy/src/plugin-utils.ts +0 -10
- package/build/libarkts-copy/src/reexport-for-generated.ts +1 -20
- package/lib/index.js +115 -38
- package/package.json +4 -3
- package/templates/factory.ts +0 -1
- package/templates/peer.ts +0 -1
- package/build/libarkts-copy/src/arkts-api/ChainExpressionFilter.ts +0 -79
package/lib/index.js
CHANGED
|
@@ -3834,10 +3834,13 @@ var IDLExtendedAttributes;
|
|
|
3834
3834
|
IDLExtendedAttributes["Interfaces"] = "Interfaces";
|
|
3835
3835
|
IDLExtendedAttributes["NativeModule"] = "NativeModule";
|
|
3836
3836
|
IDLExtendedAttributes["Optional"] = "Optional";
|
|
3837
|
+
IDLExtendedAttributes["UnionOnlyNull"] = "OptionalOnlyNull";
|
|
3838
|
+
IDLExtendedAttributes["UnionWithNull"] = "OptionalWithNull";
|
|
3837
3839
|
IDLExtendedAttributes["OriginalEnumMemberName"] = "OriginalEnumMemberName";
|
|
3838
3840
|
IDLExtendedAttributes["OriginalGenericName"] = "OriginalGenericName";
|
|
3839
3841
|
IDLExtendedAttributes["Predefined"] = "Predefined";
|
|
3840
3842
|
IDLExtendedAttributes["Protected"] = "Protected";
|
|
3843
|
+
IDLExtendedAttributes["Abstract"] = "Abstract";
|
|
3841
3844
|
IDLExtendedAttributes["Synthetic"] = "Synthetic";
|
|
3842
3845
|
IDLExtendedAttributes["Throws"] = "Throws";
|
|
3843
3846
|
IDLExtendedAttributes["TraceKey"] = "TraceKey";
|
|
@@ -4904,10 +4907,22 @@ function linearizeNamespaceMembers(entries) {
|
|
|
4904
4907
|
}
|
|
4905
4908
|
|
|
4906
4909
|
const modulesCache = new Map();
|
|
4910
|
+
/**
|
|
4911
|
+
* Is source submodule of target.
|
|
4912
|
+
* Every source is submodule if target is empty string
|
|
4913
|
+
* @example `isSubmodule("a.b.c", "a") === true`
|
|
4914
|
+
* @example `isSubmodule("a", "a.b.c") === false`
|
|
4915
|
+
* @example `isSubmodule("a.b.cd", "a.b.c") === false`
|
|
4916
|
+
*/
|
|
4917
|
+
function isSubmodule(source, target) {
|
|
4918
|
+
return source === target
|
|
4919
|
+
|| target === ""
|
|
4920
|
+
|| source.startsWith(target + '.');
|
|
4921
|
+
}
|
|
4907
4922
|
function isInModule(nodeOrPackage, module) {
|
|
4908
4923
|
if (typeof nodeOrPackage === 'object')
|
|
4909
4924
|
return isInModule(getPackageName(nodeOrPackage), module);
|
|
4910
|
-
return module.packages.some(modulePackage => nodeOrPackage
|
|
4925
|
+
return module.packages.some(modulePackage => isSubmodule(nodeOrPackage, modulePackage));
|
|
4911
4926
|
}
|
|
4912
4927
|
function isInExternalModule(node) {
|
|
4913
4928
|
var _a;
|
|
@@ -5410,7 +5425,9 @@ class LanguageWriter {
|
|
|
5410
5425
|
fs__namespace.writeFileSync(file, this.getOutput().join("\n"));
|
|
5411
5426
|
}
|
|
5412
5427
|
writeLines(lines) {
|
|
5413
|
-
|
|
5428
|
+
if (typeof lines === 'string')
|
|
5429
|
+
lines = lines.split("\n");
|
|
5430
|
+
lines.forEach(it => this.print(it));
|
|
5414
5431
|
}
|
|
5415
5432
|
writeGetterImplementation(method, op) {
|
|
5416
5433
|
var _a;
|
|
@@ -5456,7 +5473,7 @@ class LanguageWriter {
|
|
|
5456
5473
|
makeThis() {
|
|
5457
5474
|
return new StringExpression("this");
|
|
5458
5475
|
}
|
|
5459
|
-
makeNull(
|
|
5476
|
+
makeNull(type) {
|
|
5460
5477
|
return new StringExpression("null");
|
|
5461
5478
|
}
|
|
5462
5479
|
makeVoid() {
|
|
@@ -6155,12 +6172,12 @@ class FatalParserException extends Error {
|
|
|
6155
6172
|
}
|
|
6156
6173
|
var TokenKind;
|
|
6157
6174
|
(function (TokenKind) {
|
|
6158
|
-
TokenKind["Words"] = "Words";
|
|
6159
|
-
TokenKind["Literal"] = "Literal";
|
|
6160
|
-
TokenKind["Symbol"] = "Symbol";
|
|
6161
|
-
TokenKind["Comment"] = "Comment";
|
|
6162
|
-
TokenKind["Whitespace"] = "
|
|
6163
|
-
TokenKind["End"] = "End";
|
|
6175
|
+
TokenKind[TokenKind["Words"] = 0] = "Words";
|
|
6176
|
+
TokenKind[TokenKind["Literal"] = 1] = "Literal";
|
|
6177
|
+
TokenKind[TokenKind["Symbol"] = 2] = "Symbol";
|
|
6178
|
+
TokenKind[TokenKind["Comment"] = 3] = "Comment";
|
|
6179
|
+
TokenKind[TokenKind["Whitespace"] = 4] = "Whitespace";
|
|
6180
|
+
TokenKind[TokenKind["End"] = 5] = "End";
|
|
6164
6181
|
})(TokenKind || (TokenKind = {}));
|
|
6165
6182
|
const supportedDeclarations = new Set(["attribute", "callback", "const", "constructor", "dictionary",
|
|
6166
6183
|
"enum", "import", "interface", "namespace", "package", "typedef", "version"]);
|
|
@@ -6170,10 +6187,6 @@ const interfaceContent = new Set([IDLKind.Constructor, IDLKind.Const, IDLKind.Pr
|
|
|
6170
6187
|
const globalContent = new Set([IDLKind.Namespace, IDLKind.Interface, IDLKind.Enum, IDLKind.Method, IDLKind.Typedef, IDLKind.Callback, IDLKind.Import, IDLKind.Version, IDLKind.Const]);
|
|
6171
6188
|
const havingBlocks = new Set([IDLKind.Namespace, IDLKind.Interface, IDLKind.Enum]);
|
|
6172
6189
|
const modifierTokens = new Set(["static", "readonly", "async"]);
|
|
6173
|
-
// Uncomment in case of parser debugging
|
|
6174
|
-
function trac(s) {
|
|
6175
|
-
// console.log(s)
|
|
6176
|
-
}
|
|
6177
6190
|
class Parser {
|
|
6178
6191
|
constructor(fileName, content) {
|
|
6179
6192
|
var _a, _b;
|
|
@@ -6214,11 +6227,14 @@ class Parser {
|
|
|
6214
6227
|
var _a;
|
|
6215
6228
|
const previousDiagnosticsCount = DiagnosticMessageGroup.allGroupsEntries.length;
|
|
6216
6229
|
try {
|
|
6217
|
-
trac("parseIDL");
|
|
6218
6230
|
this._lexerNext();
|
|
6219
6231
|
this._prevToken = this._curToken;
|
|
6220
6232
|
let file = this.parseFile();
|
|
6221
6233
|
file.text = this.content;
|
|
6234
|
+
if (DiagnosticMessageGroup.allGroupsEntries.length != previousDiagnosticsCount) {
|
|
6235
|
+
// Empty for now, messages will be added in following `catch`.
|
|
6236
|
+
throw new FatalParserException();
|
|
6237
|
+
}
|
|
6222
6238
|
return file;
|
|
6223
6239
|
}
|
|
6224
6240
|
catch (e) {
|
|
@@ -7298,6 +7314,7 @@ class IDLDeserializer {
|
|
|
7298
7314
|
toIDLConstructor(file, node) {
|
|
7299
7315
|
return this.withInfo(node, createConstructor(node.arguments.map(it => this.toIDLParameter(file, it)), undefined, {
|
|
7300
7316
|
documentation: this.makeDocs(node),
|
|
7317
|
+
extendedAttributes: this.toExtendedAttributes(node.extAttrs),
|
|
7301
7318
|
}));
|
|
7302
7319
|
}
|
|
7303
7320
|
toIDLParameter(file, node) {
|
|
@@ -8224,7 +8241,7 @@ class CppLanguageWriter extends CLikeLanguageWriter {
|
|
|
8224
8241
|
writePrintLog(message) {
|
|
8225
8242
|
this.print(`printf("${message}\\n");`);
|
|
8226
8243
|
}
|
|
8227
|
-
makeDefinedCheck(value, isTag) {
|
|
8244
|
+
makeDefinedCheck(value, type, isTag) {
|
|
8228
8245
|
return this.makeString(isTag ? `${value} != ${PrimitiveTypeList.UndefinedTag}`
|
|
8229
8246
|
: `runtimeType(${value}) != ${PrimitiveTypeList.UndefinedRuntime}`);
|
|
8230
8247
|
}
|
|
@@ -8652,7 +8669,9 @@ class TSLanguageWriter extends LanguageWriter {
|
|
|
8652
8669
|
const normalizedArgs = signature.args.map((it, i) => isOptionalType(it) && signature.isArgOptional(i) ? maybeUnwrapOptionalType(it) : it);
|
|
8653
8670
|
this.printer.print(`${prefix}${name}${typeParams}(${normalizedArgs.map((it, index) => `${this.escapeKeyword(signature.argName(index))}${signature.isArgOptional(index) ? "?" : ``}: ${this.getNodeName(it)}${signature.argDefault(index) ? ' = ' + signature.argDefault(index) : ""}`).join(", ")})${needReturn ? ": " + this.getNodeName(signature.returnType) : ""}${needBracket ? " {" : ""}`);
|
|
8654
8671
|
}
|
|
8655
|
-
makeNull() {
|
|
8672
|
+
makeNull(type) {
|
|
8673
|
+
if (type && hasExtAttribute(type, IDLExtendedAttributes.UnionOnlyNull))
|
|
8674
|
+
return new StringExpression("null");
|
|
8656
8675
|
return new StringExpression("undefined");
|
|
8657
8676
|
}
|
|
8658
8677
|
makeAssign(variableName, type, expr, isDeclared = true, isConst = true, options) {
|
|
@@ -8709,7 +8728,15 @@ class TSLanguageWriter extends LanguageWriter {
|
|
|
8709
8728
|
makeRuntimeType(rt) {
|
|
8710
8729
|
return this.makeString(`RuntimeType.${RuntimeType[rt]}`);
|
|
8711
8730
|
}
|
|
8712
|
-
makeDefinedCheck(value) {
|
|
8731
|
+
makeDefinedCheck(value, type) {
|
|
8732
|
+
if (type) {
|
|
8733
|
+
if (hasExtAttribute(type, IDLExtendedAttributes.UnionWithNull)) {
|
|
8734
|
+
return this.makeString(`${value} !== undefined && ${value} !== null`);
|
|
8735
|
+
}
|
|
8736
|
+
else if (hasExtAttribute(type, IDLExtendedAttributes.UnionOnlyNull)) {
|
|
8737
|
+
return this.makeString(`${value} !== null`);
|
|
8738
|
+
}
|
|
8739
|
+
}
|
|
8713
8740
|
return this.makeString(`${value} !== undefined`);
|
|
8714
8741
|
}
|
|
8715
8742
|
makeTupleAlloc(option) {
|
|
@@ -9039,6 +9066,12 @@ class ETSLanguageWriter extends TSLanguageWriter {
|
|
|
9039
9066
|
super(printer, resolver, typeConvertor, Language.ARKTS);
|
|
9040
9067
|
this.arrayConvertor = arrayConvertor;
|
|
9041
9068
|
}
|
|
9069
|
+
pushNamespace(namespace, options) {
|
|
9070
|
+
if (options.isDefault) {
|
|
9071
|
+
this.print(`export default ${namespace}`);
|
|
9072
|
+
}
|
|
9073
|
+
super.pushNamespace(namespace, options);
|
|
9074
|
+
}
|
|
9042
9075
|
fork(options) {
|
|
9043
9076
|
var _a;
|
|
9044
9077
|
return new ETSLanguageWriter(new IndentedPrinter([], this.indentDepth()), (_a = options === null || options === void 0 ? void 0 : options.resolver) !== null && _a !== void 0 ? _a : this.resolver, this.typeConvertor, this.arrayConvertor);
|
|
@@ -9323,7 +9356,7 @@ class AggregateConvertor extends BaseArgConvertor {
|
|
|
9323
9356
|
statements.push(assigneer(writer.makeString(bufferName)));
|
|
9324
9357
|
}
|
|
9325
9358
|
else if (writer.language == Language.CJ) {
|
|
9326
|
-
const resultExpression = writer.makeString(`${writer.getNodeName(this.idlType)}(${this.decl.properties.map(prop => `${bufferName}
|
|
9359
|
+
const resultExpression = writer.makeString(`${writer.getNodeName(this.idlType)}(${this.decl.properties.map(prop => `${bufferName}${capitalize(prop.name)}`).join(", ")})`);
|
|
9327
9360
|
statements.push(assigneer(resultExpression));
|
|
9328
9361
|
}
|
|
9329
9362
|
else if (writer.language == Language.KOTLIN) {
|
|
@@ -12425,6 +12458,32 @@ class Typechecker {
|
|
|
12425
12458
|
}
|
|
12426
12459
|
return ancestor === Config.defaultAncestor;
|
|
12427
12460
|
}
|
|
12461
|
+
hasDescendants(ref) {
|
|
12462
|
+
const iface = isReferenceType(ref) ? this.resolveReference(ref) : ref;
|
|
12463
|
+
if (!iface || !isInterface$1(iface)) {
|
|
12464
|
+
return false;
|
|
12465
|
+
}
|
|
12466
|
+
const lookupScopes = [];
|
|
12467
|
+
const parent = iface.parent;
|
|
12468
|
+
if (parent && isNamespace(parent)) {
|
|
12469
|
+
lookupScopes.push(...this.namespaces.filter(ns => ns.name === parent.name));
|
|
12470
|
+
}
|
|
12471
|
+
else {
|
|
12472
|
+
lookupScopes.push(this.file);
|
|
12473
|
+
}
|
|
12474
|
+
const visitInterfaces = (node, cb) => {
|
|
12475
|
+
switch (node.kind) {
|
|
12476
|
+
case IDLKind.File:
|
|
12477
|
+
return node.entries.some((value) => visitInterfaces(value, cb));
|
|
12478
|
+
case IDLKind.Namespace:
|
|
12479
|
+
return node.members.some((value) => visitInterfaces(value, cb));
|
|
12480
|
+
case IDLKind.Interface:
|
|
12481
|
+
return cb(node);
|
|
12482
|
+
}
|
|
12483
|
+
return false;
|
|
12484
|
+
};
|
|
12485
|
+
return lookupScopes.some(scope => visitInterfaces(scope, (node) => node.name !== iface.name && this.isHeir(node, iface.name)));
|
|
12486
|
+
}
|
|
12428
12487
|
isPeer(node) {
|
|
12429
12488
|
if (node.name === Config.astNodeCommonAncestor)
|
|
12430
12489
|
return false; // TODO: is handwritten
|
|
@@ -12887,19 +12946,22 @@ class BridgesPrinter extends InteropPrinter {
|
|
|
12887
12946
|
writer.writeStatements(writer.makeStatement(nativeCall), writer.makeReturn(writer.makeString('')));
|
|
12888
12947
|
}
|
|
12889
12948
|
else {
|
|
12890
|
-
writer.writeStatements(writer.makeAssign(BridgesConstructions.result, undefined, nativeCall, true, false), writer.makeReturn(
|
|
12949
|
+
writer.writeStatements(writer.makeAssign(BridgesConstructions.result, undefined, nativeCall, true, false), writer.makeReturn(this.makeReturnExpression(node)));
|
|
12891
12950
|
}
|
|
12892
12951
|
}
|
|
12893
|
-
makeReturnExpression(
|
|
12894
|
-
|
|
12895
|
-
|
|
12896
|
-
|
|
12897
|
-
|
|
12898
|
-
|
|
12952
|
+
makeReturnExpression(node) {
|
|
12953
|
+
const makeStringCtor = () => BridgesConstructions.stringConstructor(BridgesConstructions.result);
|
|
12954
|
+
const makeSequenceCtor = () => BridgesConstructions.sequenceConstructor(BridgesConstructions.result, BridgesConstructions.sequenceLengthUsage);
|
|
12955
|
+
const expr = this.maybeDropConst(node, isSequence(node.returnType) ? makeSequenceCtor() :
|
|
12956
|
+
isString(node.returnType) ? makeStringCtor() :
|
|
12957
|
+
BridgesConstructions.result);
|
|
12958
|
+
if (isSequence(node.returnType)) {
|
|
12959
|
+
// writer.makeTernary annoys by adding the extra parentheses
|
|
12960
|
+
return this.writer.makeString(`${BridgesConstructions.sequenceLengthUsage} ? ${expr} : nullptr`);
|
|
12899
12961
|
}
|
|
12900
|
-
return
|
|
12962
|
+
return this.writer.makeString(expr);
|
|
12901
12963
|
}
|
|
12902
|
-
maybeDropConst(
|
|
12964
|
+
maybeDropConst(node, value) {
|
|
12903
12965
|
if (this.typechecker.isConstReturnValue(node)) {
|
|
12904
12966
|
return BridgesConstructions.dropConstCast(value);
|
|
12905
12967
|
}
|
|
@@ -13465,21 +13527,35 @@ class BindingParameterTypeConvertor extends TopLevelTypeConvertor {
|
|
|
13465
13527
|
* limitations under the License.
|
|
13466
13528
|
*/
|
|
13467
13529
|
class BindingReturnValueTypeConvertor extends TopLevelTypeConvertor {
|
|
13468
|
-
constructor(typechecker) {
|
|
13530
|
+
constructor(typechecker, importer) {
|
|
13469
13531
|
const plain = (type) => (writer, call) => call;
|
|
13470
|
-
const wrap = (wrapWith) => (writer, call) => writer.makeFunctionCall(wrapWith, [call]);
|
|
13532
|
+
const wrap = (wrapWith, ...args) => (writer, call) => writer.makeFunctionCall(wrapWith, [call, ...args.map(a => writer.makeString(a))]);
|
|
13533
|
+
const isAstNode = (ref) => (isReferenceType(ref) || isInterface$1(ref)) && this.typechecker.isHeir(ref, Config.astNodeCommonAncestor);
|
|
13534
|
+
const makeArgs = (type) => {
|
|
13535
|
+
const iface = isReferenceType(type)
|
|
13536
|
+
? this.typechecker.resolveReference(type)
|
|
13537
|
+
: undefined;
|
|
13538
|
+
if (iface && isAstNode(iface) && !this.typechecker.hasDescendants(iface)) {
|
|
13539
|
+
const astNodeTypeName = this.typechecker.nodeTypeName(iface);
|
|
13540
|
+
if (astNodeTypeName) {
|
|
13541
|
+
importer.withEnumImport(Config.nodeTypeAttribute);
|
|
13542
|
+
return [astNodeTypeName];
|
|
13543
|
+
}
|
|
13544
|
+
}
|
|
13545
|
+
return [];
|
|
13546
|
+
};
|
|
13471
13547
|
super(typechecker, {
|
|
13472
|
-
sequence: (type) => wrap(PeersConstructions.arrayOfPointersToArrayOfPeers),
|
|
13548
|
+
sequence: (type) => wrap(PeersConstructions.arrayOfPointersToArrayOfPeers, ...makeArgs(type.elementType[0])),
|
|
13473
13549
|
string: (type) => wrap(PeersConstructions.receiveString),
|
|
13474
|
-
reference: (type) =>
|
|
13475
|
-
? wrap(PeersConstructions.unpackNonNullable)
|
|
13550
|
+
reference: (type) => isAstNode(type)
|
|
13551
|
+
? wrap(PeersConstructions.unpackNonNullable, ...makeArgs(type))
|
|
13476
13552
|
: wrap(baseNameString(type.name)),
|
|
13477
13553
|
optional: (type) => {
|
|
13478
|
-
|
|
13479
|
-
|
|
13480
|
-
|
|
13481
|
-
|
|
13482
|
-
|
|
13554
|
+
const innerType = type.type;
|
|
13555
|
+
if (isReferenceType(innerType)) {
|
|
13556
|
+
return isAstNode(innerType)
|
|
13557
|
+
? wrap(PeersConstructions.unpackNullable, ...makeArgs(innerType))
|
|
13558
|
+
: wrap(PeersConstructions.newOf(baseNameString(innerType.name)));
|
|
13483
13559
|
}
|
|
13484
13560
|
throwException(`unexpected optional of non-reference type`);
|
|
13485
13561
|
},
|
|
@@ -13490,6 +13566,7 @@ class BindingReturnValueTypeConvertor extends TopLevelTypeConvertor {
|
|
|
13490
13566
|
boolean: plain,
|
|
13491
13567
|
undefined: plain
|
|
13492
13568
|
});
|
|
13569
|
+
this.importer = importer;
|
|
13493
13570
|
}
|
|
13494
13571
|
}
|
|
13495
13572
|
|
|
@@ -13530,7 +13607,7 @@ class PeerPrinter extends SingleFilePrinter {
|
|
|
13530
13607
|
this.typechecker = new Typechecker(this.idl);
|
|
13531
13608
|
this.importer = new Importer(this.typechecker, `.`, this.node.name);
|
|
13532
13609
|
this.bindingParameterTypeConvertor = new BindingParameterTypeConvertor(this.typechecker);
|
|
13533
|
-
this.bindingReturnValueTypeConvertor = new BindingReturnValueTypeConvertor(this.typechecker);
|
|
13610
|
+
this.bindingReturnValueTypeConvertor = new BindingReturnValueTypeConvertor(this.typechecker, this.importer);
|
|
13534
13611
|
this.parent = (_a = parent(this.node)) !== null && _a !== void 0 ? _a : Config.defaultAncestor;
|
|
13535
13612
|
this.writer = new TSLanguageWriter(new IndentedPrinter(), createEmptyReferenceResolver(), { convert: (node) => convertAndImport(this.importer, new class extends LibraryTypeConvertor {
|
|
13536
13613
|
convertTypeReference(type) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@idlizer/arktscgen",
|
|
3
|
-
"version": "2.1.10-arktscgen-
|
|
3
|
+
"version": "2.1.10-arktscgen-3a",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"bin": "lib/index.js",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"license": "Apache-2.0",
|
|
20
20
|
"keywords": [],
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@idlizer/core": "2.1.10-arktscgen-
|
|
22
|
+
"@idlizer/core": "2.1.10-arktscgen-3a",
|
|
23
23
|
"@types/node": "^18.0.0",
|
|
24
24
|
"commander": "^10.0.0",
|
|
25
25
|
"typescript": "^4.9.5"
|
|
@@ -38,7 +38,8 @@
|
|
|
38
38
|
},
|
|
39
39
|
"scripts": {
|
|
40
40
|
"compile:core": "npm run --prefix ../core compile",
|
|
41
|
-
"compile": "
|
|
41
|
+
"compile:self": "rollup -c",
|
|
42
|
+
"compile": "npm run compile:core && npm run compile:self",
|
|
42
43
|
"external:test": "npm run --prefix ../external/ui2abc/libarkts run",
|
|
43
44
|
"external:clean": "rimraf ../external/ui2abc/libarkts/src/generated/peers",
|
|
44
45
|
"external:generate": "npm run compile && node . --panda-sdk-path ../external/incremental/tools/panda/node_modules/@panda/sdk/ --output-dir ../external/ui2abc/ --options-file ../external/ui2abc/libarkts/generator/options.json5 --debug --no-initialize",
|
package/templates/factory.ts
CHANGED
package/templates/peer.ts
CHANGED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2022-2025 Huawei Device Co., Ltd.
|
|
3
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
* you may not use this file except in compliance with the License.
|
|
5
|
-
* You may obtain a copy of the License at
|
|
6
|
-
*
|
|
7
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
*
|
|
9
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
* See the License for the specific language governing permissions and
|
|
13
|
-
* limitations under the License.
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
import { BlockStatement, ChainExpression, Expression, isChainExpression, isMemberExpression, MemberExpression } from "src/generated";
|
|
17
|
-
import { AbstractVisitor } from "./AbstractVisitor";
|
|
18
|
-
import { AstNode } from "./peers/AstNode"
|
|
19
|
-
import { factory } from "./factory/nodeFactory";
|
|
20
|
-
import { Es2pandaTokenType, Es2pandaVariableDeclarationKind, Es2pandaVariableDeclaratorFlag } from "src/generated/Es2pandaEnums";
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
export class ChainExpressionFilter extends AbstractVisitor {
|
|
24
|
-
static counter = 0
|
|
25
|
-
transformChainExpression(node: ChainExpression): Expression {
|
|
26
|
-
const expression = node.expression
|
|
27
|
-
if (expression == undefined) return node
|
|
28
|
-
if (!isMemberExpression(expression)) return node
|
|
29
|
-
return this.transformMemberExpression(expression)
|
|
30
|
-
}
|
|
31
|
-
transformMemberExpression(expression: MemberExpression): Expression {
|
|
32
|
-
const temporaryVarName = `chaintmp%%_${ChainExpressionFilter.counter++}`
|
|
33
|
-
return factory.createBlockExpression(
|
|
34
|
-
[
|
|
35
|
-
factory.createVariableDeclaration(
|
|
36
|
-
Es2pandaVariableDeclarationKind.VARIABLE_DECLARATION_KIND_LET,
|
|
37
|
-
[
|
|
38
|
-
factory.createVariableDeclarator(
|
|
39
|
-
Es2pandaVariableDeclaratorFlag.VARIABLE_DECLARATOR_FLAG_LET,
|
|
40
|
-
factory.createIdentifier(temporaryVarName),
|
|
41
|
-
expression.object
|
|
42
|
-
)
|
|
43
|
-
],
|
|
44
|
-
undefined
|
|
45
|
-
),
|
|
46
|
-
factory.createExpressionStatement(
|
|
47
|
-
factory.createConditionalExpression(
|
|
48
|
-
factory.createBinaryExpression(
|
|
49
|
-
factory.createIdentifier(temporaryVarName, undefined),
|
|
50
|
-
factory.createUndefinedLiteral(),
|
|
51
|
-
Es2pandaTokenType.TOKEN_TYPE_PUNCTUATOR_STRICT_EQUAL
|
|
52
|
-
),
|
|
53
|
-
factory.createUndefinedLiteral(),
|
|
54
|
-
factory.createMemberExpression(
|
|
55
|
-
factory.createIdentifier(temporaryVarName, undefined),
|
|
56
|
-
expression.property,
|
|
57
|
-
expression.kind,
|
|
58
|
-
expression.isComputed,
|
|
59
|
-
false
|
|
60
|
-
)
|
|
61
|
-
)
|
|
62
|
-
)
|
|
63
|
-
]
|
|
64
|
-
)
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
visitor(beforeChildren: BlockStatement): BlockStatement
|
|
69
|
-
visitor(beforeChildren: AstNode): AstNode {
|
|
70
|
-
const node = this.visitEachChild(beforeChildren)
|
|
71
|
-
if (isChainExpression(node)) {
|
|
72
|
-
return this.transformChainExpression(node)
|
|
73
|
-
}
|
|
74
|
-
if (isMemberExpression(node) && node.isOptional) {
|
|
75
|
-
return this.transformMemberExpression(node)
|
|
76
|
-
}
|
|
77
|
-
return node
|
|
78
|
-
}
|
|
79
|
-
}
|