diff --git a/arkoala-arkts/libarkts/examples/input/main.sts b/arkoala-arkts/libarkts/examples/input/main.sts index 11dbc8794feb9d39d87383d2cd52ed787cd1cffc..eaeb90b13adacacee48727bce754fc45c1dbe8a1 100644 --- a/arkoala-arkts/libarkts/examples/input/main.sts +++ b/arkoala-arkts/libarkts/examples/input/main.sts @@ -1,3 +1,5 @@ +function _BuilderLambdaCall_Foo(s: string) { return "AAA" } + function Foo(builder: (instance: string) => string, arg1: string): void { console.log(arg1 + builder("ABC")) } diff --git a/arkoala-arkts/libarkts/examples/src/builder-lambda-transformer.ts b/arkoala-arkts/libarkts/examples/src/builder-lambda-transformer.ts index 8cdb63c5f42205a737a6bf29755cf7fb7c805f82..314afa9e1e5991899e1f2cca515a9d365801e0ee 100644 --- a/arkoala-arkts/libarkts/examples/src/builder-lambda-transformer.ts +++ b/arkoala-arkts/libarkts/examples/src/builder-lambda-transformer.ts @@ -13,45 +13,87 @@ * limitations under the License. */ -import * as ts from "@koalaui/libarkts" +import * as arkts from "@koalaui/libarkts" import { AbstractVisitor } from "./AbstractVisitor"; -export class BuilderLambdaTransformer extends AbstractVisitor { - private static readonly builderLambdaPrefix = "_BuilderLambdaCall_" - private static readonly builderLambdaInstanceName = "instance" +const builderLambdaPrefix = "_BuilderLambdaCall_" +const builderLambdaInstanceName = "instance" + +function getLambdaArg(lambdaBody: arkts.Node): arkts.ArrowFunctionExpression { + const body = arkts.factory.createBlock( + [ + arkts.factory.createReturnStatement( + lambdaBody + ) + ] + ) + + const param = arkts.factory.createParameterDeclaration( + arkts.factory.createIdentifier( + builderLambdaInstanceName, + arkts.factory.createTypeReference( + arkts.factory.createIdentifier( + 'string' + ) + ) + ), + undefined + ) + + const signature = arkts.FunctionSignature.create(undefined, + [ + param + ], + undefined + ) - private isBuilderLambdaCall(node: ts.CallExpression): boolean { - if (!ts.isIdentifier(node.expression)) { + const func = arkts.factory.createScriptFunction( + body, + signature, + arkts.Es2pandaScriptFunctionFlags.SCRIPT_FUNCTION_FLAGS_ARROW, + arkts.Es2pandaModifierFlags.MODIFIER_FLAGS_PUBLIC | arkts.Es2pandaModifierFlags.MODIFIER_FLAGS_STATIC, + false, + undefined + ) + + return arkts.factory.createArrowFunction( + func + ) +} + +export class BuilderLambdaTransformer extends AbstractVisitor { + private isBuilderLambdaCall(node: arkts.CallExpression): boolean { + if (!arkts.isIdentifier(node.expression)) { return false } - return node.expression.name.startsWith(BuilderLambdaTransformer.builderLambdaPrefix) + return node.expression.name.startsWith(builderLambdaPrefix) } - visitor(beforeChildren: ts.Node): ts.Node { + visitor(beforeChildren: arkts.Node): arkts.Node { const node = this.visitEachChild(beforeChildren) - if (!ts.isCallExpression(node)) { + if (!arkts.isCallExpression(node)) { return node } if (true - && ts.isMemberExpression(node.parent) - && ts.isIdentifier(node.parent.property) - && ts.isCallExpression(node.parent.parent) + && arkts.isMemberExpression(node.parent) + && arkts.isIdentifier(node.parent.property) + && arkts.isCallExpression(node.parent.parent) ) { return node } - let instanceCalls: ts.CallExpression[] = [] - let leaf: ts.CallExpression = node + let instanceCalls: arkts.CallExpression[] = [] + let leaf: arkts.CallExpression = node while (true - && ts.isMemberExpression(leaf.expression) - && ts.isIdentifier(leaf.expression.property) - && ts.isCallExpression(leaf.expression.object) + && arkts.isMemberExpression(leaf.expression) + && arkts.isIdentifier(leaf.expression.property) + && arkts.isCallExpression(leaf.expression.object) ) { instanceCalls.push( - ts.factory.createCallExpression( + arkts.factory.createCallExpression( leaf.expression.property, undefined, leaf.arguments @@ -60,21 +102,21 @@ export class BuilderLambdaTransformer extends AbstractVisitor { leaf = leaf.expression.object } - if (!this.isBuilderLambdaCall(leaf) || !ts.isIdentifier(leaf.expression)) { + if (!this.isBuilderLambdaCall(leaf) || !arkts.isIdentifier(leaf.expression)) { return node } instanceCalls = instanceCalls.reverse() - let lambdaBody: ts.Identifier | ts.CallExpression = ts.factory.createIdentifier(BuilderLambdaTransformer.builderLambdaInstanceName) + let lambdaBody: arkts.Identifier | arkts.CallExpression = arkts.factory.createIdentifier(builderLambdaInstanceName) instanceCalls.forEach((call)=> { - if (!ts.isIdentifier(call.expression)) { + if (!arkts.isIdentifier(call.expression)) { throw new Error('call expression should be identifier') } - lambdaBody = ts.factory.createCallExpression( - ts.factory.createMemberExpression( + lambdaBody = arkts.factory.createCallExpression( + arkts.factory.createMemberExpression( lambdaBody, call.expression, - ts.Es2pandaMemberExpressionKind.MEMBER_EXPRESSION_KIND_PROPERTY_ACCESS, + arkts.Es2pandaMemberExpressionKind.MEMBER_EXPRESSION_KIND_PROPERTY_ACCESS, false, false ), @@ -83,43 +125,20 @@ export class BuilderLambdaTransformer extends AbstractVisitor { ) }) - // const lambdaArg = ts.factory.createArrowFunction( - // ts.factory.createScriptFunction - // ) - // const lambdaArg = ts.factory.createArrowFunction( - // undefined, - // undefined, - // [ - // ts.factory.createParameterDeclaration( - // undefined, - // undefined, - // ts.factory.createIdentifier(BuilderLambdaTransformer.builderLambdaInstanceName), - // undefined, - // ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword), - // undefined - // ) - // ], - // undefined, - // undefined, - // ts.factory.createBlock([ - // ts.factory.createReturnStatement( - // lambdaBody - // ) - // ]) - // ) - - // let funcName = leaf.expression.text - // funcName = funcName.slice(BuilderLambdaTransformer.builderLambdaPrefix.length) - // - // return ts.factory.updateCallExpression( - // node, - // ts.factory.createIdentifier(funcName), - // undefined, - // [ - // lambdaArg, - // ...leaf.arguments - // ] - // ) - return node + const lambdaArg = getLambdaArg(lambdaBody) + + let funcName = leaf.expression.name.slice(builderLambdaPrefix.length) + + return arkts.factory.updateCallExpression( + node, + arkts.factory.createIdentifier( + funcName + ), + undefined, + [ + lambdaArg, + ...leaf.arguments + ] + ) } } diff --git a/arkoala-arkts/libarkts/examples/src/example-transformer.ts b/arkoala-arkts/libarkts/examples/src/example-transformer.ts index 2046bc50a1442a3fea09cab535c8037dd0705eb8..537091d791b4a9aa85a1586dc24ef9561eb187ec 100644 --- a/arkoala-arkts/libarkts/examples/src/example-transformer.ts +++ b/arkoala-arkts/libarkts/examples/src/example-transformer.ts @@ -10,6 +10,6 @@ export default function exampleTransformer( userPluginOptions?: TransformerOptions ) { return (node: ts.EtsScript) => { - return new PrintVisitor().visitor(node) + return new BuilderLambdaTransformer().visitor(node) } } diff --git a/arkoala-arkts/libarkts/native/src/bridges.cc b/arkoala-arkts/libarkts/native/src/bridges.cc index 1cfcbc022f2f04e72b73ae9d107d675d074b6ab5..6826bf445170c195e38bad16dfa16039164ecb8b 100644 --- a/arkoala-arkts/libarkts/native/src/bridges.cc +++ b/arkoala-arkts/libarkts/native/src/bridges.cc @@ -1,1267 +1,1275 @@ -#include "common.h" - -KNativePointer impl_CallExpressionCallee(KNativePointer contextPtr, KNativePointer nodePtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - return GetImpl()->CallExpressionCallee(context, node); -} -KOALA_INTEROP_2(CallExpressionCallee, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_AstNodeParent(KNativePointer contextPtr, KNativePointer nodePtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - return GetImpl()->AstNodeParent(context, node); -} -KOALA_INTEROP_2(AstNodeParent, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_AstNodeVariableConst(KNativePointer contextPtr, KNativePointer nodePtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - - return GetImpl()->AstNodeVariableConst(context, node); -} -KOALA_INTEROP_2(AstNodeVariableConst, KNativePointer, KNativePointer, KNativePointer) - -KInt impl_AstNodeTypeConst(KNativePointer contextPtr, KNativePointer nodePtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - - return GetImpl()->AstNodeTypeConst(context, node); -} -KOALA_INTEROP_2(AstNodeTypeConst, KInt, KNativePointer, KNativePointer) - -KNativePointer impl_VariableDeclaration(KNativePointer contextPtr, KNativePointer variablePtr) { - auto context = reinterpret_cast(contextPtr); - auto variable = reinterpret_cast(variablePtr); - - return GetImpl()->VariableDeclaration(context, variable); -} -KOALA_INTEROP_2(VariableDeclaration, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_DeclNode(KNativePointer contextPtr, KNativePointer declPtr) { - auto context = reinterpret_cast(contextPtr); - auto decl = reinterpret_cast(declPtr); - - return GetImpl()->DeclNode(context, decl); -} -KOALA_INTEROP_2(DeclNode, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_AstNodeScopeConst(KNativePointer contextPtr, KNativePointer nodePtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - return GetImpl()->AstNodeScopeConst(context, node); -} -KOALA_INTEROP_2(AstNodeScopeConst, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_ScopeSetParent(KNativePointer contextPtr, KNativePointer nodePtr, KNativePointer parentPtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - auto parent = reinterpret_cast(parentPtr); - GetImpl()->ScopeSetParent(context, node, parent); - return node; -} -KOALA_INTEROP_3(ScopeSetParent, KNativePointer, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_BlockStatementSetStatements( - KNativePointer contextPtr, - KNativePointer nodePtr, - KNativePointerArray statementsPtr, - KInt statementsLen -) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - auto statements = reinterpret_cast(statementsPtr); - - GetImpl()->BlockStatementSetStatements(context, node, statements, statementsLen); - return node; -} -KOALA_INTEROP_4(BlockStatementSetStatements, KNativePointer, KNativePointer, KNativePointer, KNativePointerArray, KInt) - -KNativePointer impl_CreateClassDeclaration(KNativePointer contextPtr, KNativePointer defPtr) { - auto context = reinterpret_cast(contextPtr); - auto def = reinterpret_cast(defPtr); - - return GetImpl()->CreateClassDeclaration(context, def); -} -KOALA_INTEROP_2(CreateClassDeclaration, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_UpdateClassDeclaration(KNativePointer contextPtr, KNativePointer originalPtr, KNativePointer defPtr) { - auto context = reinterpret_cast(contextPtr); - auto original = reinterpret_cast(originalPtr); - auto def = reinterpret_cast(defPtr); - - return GetImpl()->UpdateClassDeclaration(context, original, def); -} -KOALA_INTEROP_3(UpdateClassDeclaration, KNativePointer, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_ClassDefinitionSetTypeParams( - KNativePointer contextPtr, - KNativePointer nodePtr, - KNativePointer typeParamsPtr -) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - auto typeParams = reinterpret_cast(typeParamsPtr); - - GetImpl()->ClassDefinitionSetTypeParams(context, node, typeParams); - return node; -} -KOALA_INTEROP_3(ClassDefinitionSetTypeParams, KNativePointer, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_ClassDefinitionSetSuper( - KNativePointer contextPtr, - KNativePointer astPtr, - KNativePointer superClassPtr -) { - auto context = reinterpret_cast(contextPtr); - auto ast = reinterpret_cast(astPtr); - auto superClass = reinterpret_cast(superClassPtr); - - GetImpl()->ClassDefinitionSetSuper(context, ast, superClass); - return ast; -} -KOALA_INTEROP_3(ClassDefinitionSetSuper, KNativePointer, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_ClassDefinitionIdent( - KNativePointer contextPtr, - KNativePointer nodePtr -) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - - return GetImpl()->ClassDefinitionIdent(context, node); -} -KOALA_INTEROP_2(ClassDefinitionIdent, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_CreateClassDefinition1( - KNativePointer contextPtr, - KNativePointer identPtr, - KNativePointerArray bodyPtr, - KInt bodyLenT, - KInt modifiersT, - KInt flagsT -) { - auto context = reinterpret_cast(contextPtr); - auto ident = reinterpret_cast(identPtr); - auto body = reinterpret_cast(bodyPtr); - auto bodyLen = static_cast(bodyLenT); - auto modifiers = Es2pandaClassDefinitionModifiers(modifiersT); - auto flags = Es2pandaModifierFlags(flagsT); - - return GetImpl()->CreateClassDefinition1(context, ident, body, bodyLen, modifiers, flags); -} -KOALA_INTEROP_6(CreateClassDefinition1, KNativePointer, KNativePointer, KNativePointer, KNativePointerArray, KInt, KInt, KInt) - -KNativePointer impl_UpdateClassDefinition1( - KNativePointer contextPtr, - KNativePointer originalPtr, - KNativePointer identPtr, - KNativePointerArray bodyPtr, - KInt bodyLenT, - KInt modifiersT, - KInt flagsT -) { - auto context = reinterpret_cast(contextPtr); - auto original = reinterpret_cast(originalPtr); - auto ident = reinterpret_cast(identPtr); - auto body = reinterpret_cast(bodyPtr); - auto bodyLen = static_cast(bodyLenT); - auto modifiers = Es2pandaClassDefinitionModifiers(modifiersT); - auto flags = Es2pandaModifierFlags(flagsT); - - return GetImpl()->UpdateClassDefinition1(context, original, ident, body, bodyLen, modifiers, flags); -} -KOALA_INTEROP_7(UpdateClassDefinition1, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KNativePointerArray, KInt, KInt, KInt) - -KNativePointer impl_CreateSuperExpression(KNativePointer contextPtr) { - auto context = reinterpret_cast(contextPtr); - - return GetImpl()->CreateSuperExpression(context); -} -KOALA_INTEROP_1(CreateSuperExpression, KNativePointer, KNativePointer) - -KNativePointer impl_UpdateSuperExpression(KNativePointer contextPtr, KNativePointer originalPtr) { - auto context = reinterpret_cast(contextPtr); - auto original = reinterpret_cast(originalPtr); - - return GetImpl()->UpdateSuperExpression(context, original); -} -KOALA_INTEROP_2(UpdateSuperExpression, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_CreateETSImportDeclaration( - KNativePointer contextPtr, - KNativePointer sourcePtr, - KNativePointerArray specifiersPtr, - KInt specifiersLen, - KInt importKindT -) { - auto context = reinterpret_cast(contextPtr); - auto source = reinterpret_cast(sourcePtr); - auto specifiers = reinterpret_cast(specifiersPtr); - auto importKind = static_cast(importKindT); - - return GetImpl()->CreateETSImportDeclaration(context, source, specifiers, specifiersLen, importKind); -} -KOALA_INTEROP_5(CreateETSImportDeclaration, KNativePointer, KNativePointer, KNativePointer, KNativePointerArray, KInt, KInt) - -KNativePointer impl_ETSImportDeclarationSourceConst( - KNativePointer contextPtr, - KNativePointer nodePtr -) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - - return GetImpl()->ETSImportDeclarationSourceConst(context, node); -} -KOALA_INTEROP_2(ETSImportDeclarationSourceConst, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_ETSImportDeclarationResolvedSource( - KNativePointer contextPtr, - KNativePointer nodePtr -) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - - return GetImpl()->ETSImportDeclarationResolvedSource(context, node); -} -KOALA_INTEROP_2(ETSImportDeclarationResolvedSource, KNativePointer, KNativePointer, KNativePointer) - -KBoolean impl_ETSImportDeclarationHasDeclConst( - KNativePointer contextPtr, - KNativePointer nodePtr -) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - - return GetImpl()->ETSImportDeclarationHasDeclConst(context, node); -} -KOALA_INTEROP_2(ETSImportDeclarationHasDeclConst, KBoolean, KNativePointer, KNativePointer) - -KNativePointer impl_CreateImportSource( - KNativePointer contextPtr, - KNativePointer sourcePtr, - KNativePointer resolvedSourcePtr, - KBoolean hasDeclT -) { - auto context = reinterpret_cast(contextPtr); - auto source = reinterpret_cast(sourcePtr); - auto resolvedSource = reinterpret_cast(resolvedSourcePtr); - auto hasDecl = static_cast(hasDeclT); - - return GetImpl()->CreateImportSource(context, source, resolvedSource, hasDecl); -} -KOALA_INTEROP_4(CreateImportSource, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KBoolean) - -KNativePointer impl_CreateImportSpecifier( - KNativePointer contextPtr, - KNativePointer importedPtr, - KNativePointer localPtr -) { - auto context = reinterpret_cast(contextPtr); - auto imported = reinterpret_cast(importedPtr); - auto local = reinterpret_cast(localPtr); - - return GetImpl()->CreateImportSpecifier(context, imported, local); -} -KOALA_INTEROP_3(CreateImportSpecifier, KNativePointer, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_CreateFunctionExpression(KNativePointer contextPtr, KNativePointer funcPtr) { - auto context = reinterpret_cast(contextPtr); - auto func = reinterpret_cast(funcPtr); - - return GetImpl()->CreateFunctionExpression(context, func); -} -KOALA_INTEROP_2(CreateFunctionExpression, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_UpdateFunctionExpression(KNativePointer contextPtr, KNativePointer nodePtr, KNativePointer funcPtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - auto func = reinterpret_cast(funcPtr); - - return GetImpl()->UpdateFunctionExpression(context, node, func); -} -KOALA_INTEROP_3(UpdateFunctionExpression, KNativePointer, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_CreateArrowFunctionExpression(KNativePointer contextPtr, KNativePointer nodePtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - - return GetImpl()->CreateArrowFunctionExpression(context, node); -} -KOALA_INTEROP_2(CreateArrowFunctionExpression, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_ArrowFunctionExpressionFunction(KNativePointer contextPtr, KNativePointer nodePtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - - return GetImpl()->ArrowFunctionExpressionFunction(context, node); -} -KOALA_INTEROP_2(ArrowFunctionExpressionFunction, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_ArrowFunctionExpressionCreateTypeAnnotation(KNativePointer contextPtr, KNativePointer nodePtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - - return GetImpl()->ArrowFunctionExpressionCreateTypeAnnotation(context, node); -} -KOALA_INTEROP_2(ArrowFunctionExpressionCreateTypeAnnotation, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_FunctionExpressionFunction(KNativePointer contextPtr, KNativePointer nodePtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - - return GetImpl()->FunctionExpressionFunction(context, node); -} -KOALA_INTEROP_2(FunctionExpressionFunction, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_ExpressionStatementGetExpression(KNativePointer contextPtr, KNativePointer nodePtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - - return GetImpl()->ExpressionStatementGetExpression(context, node); -} -KOALA_INTEROP_2(ExpressionStatementGetExpression, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_FunctionSignatureTypeParams(KNativePointer contextPtr, KNativePointer nodePtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - - return GetImpl()->FunctionSignatureTypeParams(context, node); -} -KOALA_INTEROP_2(FunctionSignatureTypeParams, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_FunctionSignatureReturnType(KNativePointer contextPtr, KNativePointer nodePtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - - return GetImpl()->FunctionSignatureReturnType(context, node); -} -KOALA_INTEROP_2(FunctionSignatureReturnType, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_UpdateIdentifier1(KNativePointer contextPtr, KNativePointer nodePtr, KStringPtr& namePtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - - return GetImpl()->UpdateIdentifier1(context, node, getStringCopy(namePtr)); -} -KOALA_INTEROP_3(UpdateIdentifier1, KNativePointer, KNativePointer, KNativePointer, KStringPtr) - -KNativePointer impl_UpdateIdentifier2(KNativePointer contextPtr, KNativePointer nodePtr, KStringPtr& namePtr, KNativePointer typeAnnotationPtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - auto typeAnnotation = reinterpret_cast(typeAnnotationPtr); - - return GetImpl()->UpdateIdentifier2(context, node, getStringCopy(namePtr), typeAnnotation); -} -KOALA_INTEROP_4(UpdateIdentifier2, KNativePointer, KNativePointer, KNativePointer, KStringPtr, KNativePointer) - -KBoolean impl_IdentifierIsPrivateIdentConst(KNativePointer contextPtr, KNativePointer nodePtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - - return GetImpl()->IdentifierIsPrivateIdentConst(context, node); -} -KOALA_INTEROP_2(IdentifierIsPrivateIdentConst, KBoolean, KNativePointer, KNativePointer) - -KNativePointer impl_MethodDefinitionFunction( - KNativePointer contextPtr, - KNativePointer nodePtr -) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - - return GetImpl()->MethodDefinitionFunction(context, node); -} -KOALA_INTEROP_2(MethodDefinitionFunction, KNativePointer, KNativePointer, KNativePointer) - -KInt impl_MethodDefinitionKindConst( - KNativePointer contextPtr, - KNativePointer nodePtr -) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - - return GetImpl()->MethodDefinitionKindConst(context, node); -} -KOALA_INTEROP_2(MethodDefinitionKindConst, KInt, KNativePointer, KNativePointer) - - -KNativePointer impl_AstNodeSetParent( - KNativePointer contextPtr, - KNativePointer astPtr, - KNativePointer parentPtr -) { - auto context = reinterpret_cast(contextPtr); - auto ast = reinterpret_cast(astPtr); - auto parent = reinterpret_cast(parentPtr); - - GetImpl()->AstNodeSetParent(context, ast, parent); - return ast; -} -KOALA_INTEROP_3(AstNodeSetParent, KNativePointer, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_AstNodeSetOriginalNode( - KNativePointer contextPtr, - KNativePointer astPtr, - KNativePointer originalNodePtr -) { - auto context = reinterpret_cast(contextPtr); - auto ast = reinterpret_cast(astPtr); - auto originalNode = reinterpret_cast(originalNodePtr); - - GetImpl()->AstNodeSetOriginalNode(context, ast, originalNode); - return ast; -} -KOALA_INTEROP_3(AstNodeSetOriginalNode, KNativePointer, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_AstNodeOriginalNodeConst( - KNativePointer contextPtr, - KNativePointer astPtr -) { - auto context = reinterpret_cast(contextPtr); - auto ast = reinterpret_cast(astPtr); - - return GetImpl()->AstNodeOriginalNodeConst(context, ast); -} -KOALA_INTEROP_2(AstNodeOriginalNodeConst, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_AstNodeClone( - KNativePointer contextPtr, - KNativePointer astPtr, - KNativePointer parentPtr -) { - auto context = reinterpret_cast(contextPtr); - auto ast = reinterpret_cast(astPtr); - auto parent = reinterpret_cast(parentPtr); - - return GetImpl()->AstNodeClone(context, ast, parent); -} -KOALA_INTEROP_3(AstNodeClone, KNativePointer, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_ScriptFunctionSetIdent( - KNativePointer contextPtr, - KNativePointer astPtr, - KNativePointer idPtr -) { - auto context = reinterpret_cast(contextPtr); - auto ast = reinterpret_cast(astPtr); - auto id = reinterpret_cast(idPtr); - - GetImpl()->ScriptFunctionSetIdent(context, ast, id); - return ast; -} -KOALA_INTEROP_3(ScriptFunctionSetIdent, KNativePointer, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_ScriptFunctionSetSignature( - KNativePointer contextPtr, - KNativePointer astPtr, - KNativePointer signaturePtr -) { - auto context = reinterpret_cast(contextPtr); - auto ast = reinterpret_cast(astPtr); - auto signature = reinterpret_cast(signaturePtr); - - GetImpl()->ScriptFunctionSetSignature(context, ast, signature); - return ast; -} -KOALA_INTEROP_3(ScriptFunctionSetSignature, KNativePointer, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_ScriptFunctionSetBody( - KNativePointer contextPtr, - KNativePointer astPtr, - KNativePointer bodyPtr -) { - auto context = reinterpret_cast(contextPtr); - auto ast = reinterpret_cast(astPtr); - auto body = reinterpret_cast(bodyPtr); - - GetImpl()->ScriptFunctionSetBody(context, ast, body); - return ast; -} -KOALA_INTEROP_3(ScriptFunctionSetBody, KNativePointer, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_ScriptFunctionSetScope( - KNativePointer contextPtr, - KNativePointer astPtr, - KNativePointer scopePtr -) { - auto context = reinterpret_cast(contextPtr); - auto ast = reinterpret_cast(astPtr); - auto scope = reinterpret_cast(scopePtr); - - GetImpl()->ScriptFunctionSetScope(context, ast, scope); - return ast; -} -KOALA_INTEROP_3(ScriptFunctionSetScope, KNativePointer, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_ScriptFunctionSignature(KNativePointer contextPtr, KNativePointer nodePtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - - return GetImpl()->ScriptFunctionSignature(context, node); -} -KOALA_INTEROP_2(ScriptFunctionSignature, KNativePointer, KNativePointer, KNativePointer) - -KInt impl_ScriptFunctionFlagsConst(KNativePointer contextPtr, KNativePointer nodePtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - - return GetImpl()->ScriptFunctionFlagsConst(context, node); -} -KOALA_INTEROP_2(ScriptFunctionFlagsConst, KInt, KNativePointer, KNativePointer) - -KInt impl_AstNodeModifiers(KNativePointer contextPtr, KNativePointer nodePtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - - return GetImpl()->AstNodeModifiers(context, node); -} -KOALA_INTEROP_2(AstNodeModifiers, KInt, KNativePointer, KNativePointer) - -KNativePointer impl_AstNodeAddModifier(KNativePointer contextPtr, KNativePointer nodePtr, KInt flagsT) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - auto flags = static_cast(flagsT); - - GetImpl()->AstNodeAddModifier(context, node, flags); - return node; -} -KOALA_INTEROP_3(AstNodeAddModifier, KNativePointer, KNativePointer, KNativePointer, KInt) - -KNativePointer impl_AstNodeClearModifier(KNativePointer contextPtr, KNativePointer nodePtr, KInt flagsT) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - auto flags = static_cast(flagsT); - - GetImpl()->AstNodeClearModifier(context, node, flags); - return node; -} -KOALA_INTEROP_3(AstNodeClearModifier, KNativePointer, KNativePointer, KNativePointer, KInt) - -KNativePointer impl_CreateScriptFunction( - KNativePointer contextPtr, - KNativePointer databodyPtr, - KNativePointer datasignaturePtr, - KInt datafuncFlags, - KInt dataFlags -) { - auto context = reinterpret_cast(contextPtr); - auto databody = reinterpret_cast(databodyPtr); - auto datasignature = reinterpret_cast(datasignaturePtr); - - return GetImpl()->CreateScriptFunction(context, databody, datasignature, datafuncFlags, dataFlags); -} -KOALA_INTEROP_5(CreateScriptFunction, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KInt, KInt) - -KNativePointer impl_UpdateScriptFunction( - KNativePointer contextPtr, - KNativePointer nodePtr, - KNativePointer databodyPtr, - KNativePointer datasignaturePtr, - KInt datafuncFlags, - KInt dataFlags -) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - auto databody = reinterpret_cast(databodyPtr); - auto datasignature = reinterpret_cast(datasignaturePtr); - - return GetImpl()->UpdateScriptFunction(context, node, databody, datasignature, datafuncFlags, dataFlags); -} -KOALA_INTEROP_6(UpdateScriptFunction, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KInt, KInt) - -KNativePointer impl_CreateBlockStatement( - KNativePointer contextPtr, - KNativePointerArray statementListPtr, - KInt statementListLen -) { - auto context = reinterpret_cast(contextPtr); - auto statementList = reinterpret_cast(statementListPtr); - - return GetImpl()->CreateBlockStatement(context, statementList, statementListLen); -} -KOALA_INTEROP_3(CreateBlockStatement, KNativePointer, KNativePointer, KNativePointerArray, KInt) - -KNativePointer impl_CreateAstDumper( - KNativePointer contextPtr, - KNativePointer nodePtr, - KStringPtr& sourcePtr -) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - - return GetImpl()->CreateAstDumper(context, node, getStringCopy(sourcePtr)); -} -KOALA_INTEROP_3(CreateAstDumper, KNativePointer, KNativePointer, KNativePointer, KStringPtr) - -KNativePointer impl_CreateETSUnionTypeIr( - KNativePointer contextPtr, - KNativePointerArray typesPtr, - KInt typesLen -) { - auto context = reinterpret_cast(contextPtr); - auto types = reinterpret_cast(typesPtr); - - return GetImpl()->CreateETSUnionTypeIr(context, types, typesLen); -} -KOALA_INTEROP_3(CreateETSUnionTypeIr, KNativePointer, KNativePointer, KNativePointerArray, KInt) - -KNativePointer impl_CreateExpressionStatement(KNativePointer contextPtr, KNativePointer exprPtr) { - auto context = reinterpret_cast(contextPtr); - auto expr = reinterpret_cast(exprPtr); - - return GetImpl()->CreateExpressionStatement(context, expr); -} -KOALA_INTEROP_2(CreateExpressionStatement, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_UpdateExpressionStatement(KNativePointer contextPtr, KNativePointer nodePtr, KNativePointer exprPtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - auto expr = reinterpret_cast(exprPtr); - - return GetImpl()->UpdateExpressionStatement(context, node, expr); -} -KOALA_INTEROP_3(UpdateExpressionStatement, KNativePointer, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_ScriptFunctionBody(KNativePointer contextPtr, KNativePointer nodePtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - - return GetImpl()->ScriptFunctionBody(context, node); -} -KOALA_INTEROP_2(ScriptFunctionBody, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_CreateBinaryExpression(KNativePointer contextPtr, KNativePointer leftPtr, KNativePointer rightPtr, KInt tokenKind) { - auto context = reinterpret_cast(contextPtr); - auto left = reinterpret_cast(leftPtr); - auto right = reinterpret_cast(rightPtr); - - return GetImpl()->CreateBinaryExpression(context, left, right, Es2pandaTokenType(tokenKind)); -} -KOALA_INTEROP_4(CreateBinaryExpression, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KInt) - -KNativePointer impl_CreateAssignmentExpression(KNativePointer contextPtr, KNativePointer leftPtr, KNativePointer rightPtr, KInt assignmentOperator) { - auto context = reinterpret_cast(contextPtr); - auto left = reinterpret_cast(leftPtr); - auto right = reinterpret_cast(rightPtr); - - return GetImpl()->CreateAssignmentExpression(context, left, right, Es2pandaTokenType(assignmentOperator)); -} -KOALA_INTEROP_4(CreateAssignmentExpression, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KInt) - -KNativePointer impl_CreateFunctionSignature( - KNativePointer contextPtr, - KNativePointer typeParamsPtr, - KNativePointerArray paramsPtr, - KInt paramsLen, - KNativePointer returnTypeAnnotationPtr, - KBoolean hasReceiver -) { - auto context = reinterpret_cast(contextPtr); - auto typeParams = reinterpret_cast(typeParamsPtr); - auto params = reinterpret_cast(paramsPtr); - auto returnTypeAnnotation = reinterpret_cast(returnTypeAnnotationPtr); - - return GetImpl()->CreateFunctionSignature(context, typeParams, params, paramsLen, returnTypeAnnotation, hasReceiver); -} -KOALA_INTEROP_6(CreateFunctionSignature, KNativePointer, KNativePointer, KNativePointer, KNativePointerArray, KInt, KNativePointer, KBoolean) - -KNativePointer impl_CreateTSUnionType( - KNativePointer contextPtr, - KNativePointerArray typesPtr, - KInt typesLen -) { - auto context = reinterpret_cast(contextPtr); - auto types = reinterpret_cast(typesPtr); - - return GetImpl()->CreateTSUnionType(context, types, typesLen); -} -KOALA_INTEROP_3(CreateTSUnionType, KNativePointer, KNativePointer, KNativePointerArray, KInt) - -KNativePointer impl_CreateReturnStatement1(KNativePointer contextPtr, KNativePointer argumentPtr) { - auto context = reinterpret_cast(contextPtr); - auto argument = reinterpret_cast(argumentPtr); - - return GetImpl()->CreateReturnStatement1(context, argument); -} -KOALA_INTEROP_2(CreateReturnStatement1, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_ReturnStatementArgument(KNativePointer contextPtr, KNativePointer nodePtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - - return GetImpl()->ReturnStatementArgument(context, node); -} -KOALA_INTEROP_2(ReturnStatementArgument, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_CreateIfStatement(KNativePointer contextPtr, KNativePointer testPtr, KNativePointer consequentPtr, KNativePointer alternatePtr) { - auto context = reinterpret_cast(contextPtr); - auto test = reinterpret_cast(testPtr); - auto consequent = reinterpret_cast(consequentPtr); - auto alternate = reinterpret_cast(alternatePtr); - - return GetImpl()->CreateIfStatement(context, test, consequent, alternate); -} -KOALA_INTEROP_4(CreateIfStatement, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_CreateMemberExpression( - KNativePointer contextPtr, - KNativePointer objectPtr, - KNativePointer propertyPtr, - KInt kindT, - KBoolean computedT, - KBoolean optionalT -) { - auto context = reinterpret_cast(contextPtr); - auto object = reinterpret_cast(objectPtr); - auto property = reinterpret_cast(propertyPtr); - auto computed = static_cast(computedT); - auto optional = static_cast(optionalT); - auto kind = static_cast(kindT); - - return GetImpl()->CreateMemberExpression(context, object, property, kind, computed, optional); -} -KOALA_INTEROP_6(CreateMemberExpression, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KInt, KBoolean, KBoolean) - -KNativePointer impl_UpdateMemberExpression( - KNativePointer contextPtr, - KNativePointer nodePtr, - KNativePointer objectPtr, - KNativePointer propertyPtr, - KInt kindT, - KBoolean computedT, - KBoolean optionalT -) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - auto object = reinterpret_cast(objectPtr); - auto property = reinterpret_cast(propertyPtr); - auto computed = static_cast(computedT); - auto optional = static_cast(optionalT); - auto kind = static_cast(kindT); - - return GetImpl()->UpdateMemberExpression(context, node, object, property, kind, computed, optional); -} -KOALA_INTEROP_7(UpdateMemberExpression, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KInt, KBoolean, KBoolean) - -KNativePointer impl_UpdateMethodDefinition( - KNativePointer contextPtr, - KNativePointer nodePtr, - KInt kindT, - KNativePointer keyPtr, - KNativePointer valuePtr, - KInt modifiersT, - KBoolean isComputedT -) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - auto kind = static_cast(kindT); - auto key = reinterpret_cast(keyPtr); - auto value = reinterpret_cast(valuePtr); - auto modifiers = static_cast(modifiersT); - auto isComputed = static_cast(isComputedT); - - return GetImpl()->UpdateMethodDefinition(context, node, kind, key, value, modifiers, isComputed); -} -KOALA_INTEROP_7(UpdateMethodDefinition, KNativePointer, KNativePointer, KNativePointer, KInt, KNativePointer, KNativePointer, KInt, KBoolean) - -KNativePointer impl_MemberExpressionObject( - KNativePointer contextPtr, - KNativePointer nodePtr -) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - - return GetImpl()->MemberExpressionObject(context, node); -} -KOALA_INTEROP_2(MemberExpressionObject, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_MemberExpressionProperty( - KNativePointer contextPtr, - KNativePointer nodePtr -) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - - return GetImpl()->MemberExpressionProperty(context, node); -} -KOALA_INTEROP_2(MemberExpressionProperty, KNativePointer, KNativePointer, KNativePointer) - -KInt impl_MemberExpressionKindConst( - KNativePointer contextPtr, - KNativePointer nodePtr -) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - - return GetImpl()->MemberExpressionKindConst(context, node); -} -KOALA_INTEROP_2(MemberExpressionKindConst, KInt, KNativePointer, KNativePointer) - -KNativePointer impl_CreateCallExpression( - KNativePointer contextPtr, - KNativePointer calleePtr, - KNativePointerArray argumentsPtr, - KInt argumentsLen, - KNativePointer typeParamsPtr, - KBoolean optionalT, - KBoolean trailingCommaT -) { - auto context = reinterpret_cast(contextPtr); - auto callee = reinterpret_cast(calleePtr); - auto arguments = reinterpret_cast(argumentsPtr); - auto typeParams = reinterpret_cast(typeParamsPtr); - auto optional = static_cast(optionalT); - auto trailingComma = static_cast(trailingCommaT); - - return GetImpl()->CreateCallExpression(context, callee, arguments, argumentsLen, typeParams, optional, trailingComma); -} -KOALA_INTEROP_7(CreateCallExpression, KNativePointer, KNativePointer, KNativePointer, KNativePointerArray, KInt, KNativePointer, KBoolean, KBoolean) - -KNativePointer impl_CreateVariableDeclaration( - KNativePointer contextPtr, - KInt kindT, - KNativePointerArray declaratorsPtr, - KInt declaratorsLen -) { - auto context = reinterpret_cast(contextPtr); - auto kind = static_cast(kindT); - auto declarators = reinterpret_cast(declaratorsPtr); - - return GetImpl()->CreateVariableDeclaration(context, kind, declarators, declaratorsLen); -} -KOALA_INTEROP_4(CreateVariableDeclaration, KNativePointer, KNativePointer, KInt, KNativePointerArray, KInt) - -KNativePointer impl_UpdateVariableDeclaration( - KNativePointer contextPtr, - KNativePointer originalPtr, - KInt kindT, - KNativePointerArray declaratorsPtr, - KInt declaratorsLen -) { - auto context = reinterpret_cast(contextPtr); - auto original = reinterpret_cast(originalPtr); - auto kind = static_cast(kindT); - auto declarators = reinterpret_cast(declaratorsPtr); - - return GetImpl()->UpdateVariableDeclaration(context, original, kind, declarators, declaratorsLen); -} -KOALA_INTEROP_5(UpdateVariableDeclaration, KNativePointer, KNativePointer, KNativePointer, KInt, KNativePointerArray, KInt) - -KNativePointer impl_CreateVariableDeclarator( - KNativePointer contextPtr, - KInt flagT, - KNativePointer identPtr -) { - auto context = reinterpret_cast(contextPtr); - auto flag = static_cast(flagT); - auto ident = reinterpret_cast(identPtr); - - return GetImpl()->CreateVariableDeclarator(context, flag, ident); -} -KOALA_INTEROP_3(CreateVariableDeclarator, KNativePointer, KNativePointer, KInt, KNativePointer) - -KNativePointer impl_VariableDeclaratorSetInit(KNativePointer contextPtr, KNativePointer nodePtr, KNativePointer initPtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - auto init = reinterpret_cast(initPtr); - - GetImpl()->VariableDeclaratorSetInit(context, node, init); - return node; -} -KOALA_INTEROP_3(VariableDeclaratorSetInit, KNativePointer, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_VariableDeclaratorId(KNativePointer contextPtr, KNativePointer nodePtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - - return GetImpl()->VariableDeclaratorId(context, node); -} -KOALA_INTEROP_2(VariableDeclaratorId, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_CreateTSTypeParameter( - KNativePointer contextPtr, - KNativePointer namePtr, - KNativePointer constraintPtr, - KNativePointer defaultTypePtr -) { - auto context = reinterpret_cast(contextPtr); - auto name = reinterpret_cast(namePtr); - auto constraint = reinterpret_cast(constraintPtr); - auto defaultType = reinterpret_cast(defaultTypePtr); - - return GetImpl()->CreateTSTypeParameter(context, name, constraint, defaultType); -} -KOALA_INTEROP_4(CreateTSTypeParameter, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_TSTypeParameterName(KNativePointer contextPtr, KNativePointer nodePtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - - return GetImpl()->TSTypeParameterName(context, node); -} -KOALA_INTEROP_2(TSTypeParameterName, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_ETSParameterExpressionIdent(KNativePointer contextPtr, KNativePointer nodePtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - - return GetImpl()->ETSParameterExpressionIdent(context, node); -} -KOALA_INTEROP_2(ETSParameterExpressionIdent, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_CreateETSTypeReference(KNativePointer contextPtr, KNativePointer partPtr) { - auto context = reinterpret_cast(contextPtr); - auto part = reinterpret_cast(partPtr); - - return GetImpl()->CreateETSTypeReference(context, part); -} -KOALA_INTEROP_2(CreateETSTypeReference, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_CreateETSTypeReferencePart1(KNativePointer contextPtr, KNativePointer namePtr) { - auto context = reinterpret_cast(contextPtr); - auto name = reinterpret_cast(namePtr); - - return GetImpl()->CreateETSTypeReferencePart1(context, name); -} -KOALA_INTEROP_2(CreateETSTypeReferencePart1, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_CreateETSTypeReferencePart(KNativePointer contextPtr, KNativePointer namePtr, KNativePointer typeParamsPtr, KNativePointer prevPtr) { - auto context = reinterpret_cast(contextPtr); - auto name = reinterpret_cast(namePtr); - auto typeParams = reinterpret_cast(typeParamsPtr); - auto prev = reinterpret_cast(prevPtr); - - return GetImpl()->CreateETSTypeReferencePart(context, name, typeParams, prev); -} -KOALA_INTEROP_4(CreateETSTypeReferencePart, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KNativePointer) - - -KNativePointer impl_ScriptFunctionTypeParams(KNativePointer contextPtr, KNativePointer nodePtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - - return GetImpl()->ScriptFunctionTypeParams(context, node); -} -KOALA_INTEROP_2(ScriptFunctionTypeParams, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_ScriptFunctionReturnTypeAnnotation(KNativePointer contextPtr, KNativePointer nodePtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - - return GetImpl()->ScriptFunctionReturnTypeAnnotation(context, node); -} -KOALA_INTEROP_2(ScriptFunctionReturnTypeAnnotation, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_ScriptFunctionId(KNativePointer contextPtr, KNativePointer nodePtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - return GetImpl()->ScriptFunctionId(context, node); -} -KOALA_INTEROP_2(ScriptFunctionId, KNativePointer, KNativePointer, KNativePointer) - -// KBoolean impl_ScriptFunctionDeclareConst(KNativePointer contextPtr, KNativePointer nodePtr) { -// auto context = reinterpret_cast(contextPtr); -// auto node = reinterpret_cast(nodePtr); -// return GetImpl()->ScriptFunctionDeclareConst(context, node); -// } -// KOALA_INTEROP_2(ScriptFunctionDeclareConst, KBoolean, KNativePointer, KNativePointer) - -KNativePointer impl_CreateFunctionDeclaration( - KNativePointer contextPtr, - KNativePointer funcPtr, - KNativePointerArray annotationsPtr, - KInt annotationsLen, - KBoolean isAnonK -) { - auto context = reinterpret_cast(contextPtr); - auto func = reinterpret_cast(funcPtr); - auto annotations = reinterpret_cast(annotationsPtr); - auto isAnon = static_cast(isAnonK); - - return GetImpl()->CreateFunctionDeclaration(context, func, annotations, annotationsLen, isAnon); -} -KOALA_INTEROP_5(CreateFunctionDeclaration, KNativePointer, KNativePointer, KNativePointer, KNativePointerArray, KInt, KBoolean) - -KNativePointer impl_UpdateFunctionDeclaration( - KNativePointer contextPtr, - KNativePointer nodePtr, - KNativePointer funcPtr, - KNativePointerArray annotationsPtr, - KInt annotationsLen, - KBoolean isAnonK -) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - auto func = reinterpret_cast(funcPtr); - auto annotations = reinterpret_cast(annotationsPtr); - auto isAnon = static_cast(isAnonK); - - return GetImpl()->UpdateFunctionDeclaration(context, node, func, annotations, annotationsLen, isAnon); -} -KOALA_INTEROP_6(UpdateFunctionDeclaration, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KNativePointerArray, KInt, KBoolean) - -// TODO: add param initializer -KNativePointer impl_CreateETSParameterExpression(KNativePointer contextPtr, KNativePointer identifierPtr, KNativePointer initializerPtr) { - auto context = reinterpret_cast(contextPtr); - auto identifier = reinterpret_cast(identifierPtr); - auto initializer = reinterpret_cast(initializerPtr); - - return GetImpl()->CreateETSParameterExpression(context, identifier, initializer); -} -KOALA_INTEROP_3(CreateETSParameterExpression, KNativePointer, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_CreateTSTypeParameterDeclaration( - KNativePointer contextPtr, - KNativePointerArray paramsPtr, - KInt paramsLen, - KInt requiredParams -) { - auto context = reinterpret_cast(contextPtr); - auto params = reinterpret_cast(paramsPtr); - - return GetImpl()->CreateTSTypeParameterDeclaration(context, params, paramsLen, requiredParams); -} -KOALA_INTEROP_4(CreateTSTypeParameterDeclaration, KNativePointer, KNativePointer, KNativePointerArray, KInt, KInt) - - -KNativePointer impl_ClassDefinitionTypeParamsConst(KNativePointer contextPtr, KNativePointer nodePtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - - return const_cast(GetImpl()->ClassDefinitionTypeParamsConst(context, node)); -} -KOALA_INTEROP_2(ClassDefinitionTypeParamsConst, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_FunctionDeclarationFunction(KNativePointer contextPtr, KNativePointer nodePtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - return GetImpl()->FunctionDeclarationFunction(context, node); -} -KOALA_INTEROP_2(FunctionDeclarationFunction, KNativePointer, KNativePointer, KNativePointer) - -KBoolean impl_FunctionDeclarationIsAnonymousConst(KNativePointer contextPtr, KNativePointer nodePtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - - return GetImpl()->FunctionDeclarationIsAnonymousConst(context, node); -} -KOALA_INTEROP_2(FunctionDeclarationIsAnonymousConst, KBoolean, KNativePointer, KNativePointer) - -KNativePointer impl_ScriptFunctionAddFlag(KNativePointer contextPtr, KNativePointer nodePtr, KInt flagsT) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - auto flags = static_cast(flagsT); - - GetImpl()->ScriptFunctionAddFlag(context, node, flags); - return node; -} -KOALA_INTEROP_3(ScriptFunctionAddFlag, KNativePointer, KNativePointer, KNativePointer, KInt) - -KInt impl_VariableDeclarationKindConst(KNativePointer contextPtr, KNativePointer nodePtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - - return GetImpl()->VariableDeclarationKindConst(context, node); -} -KOALA_INTEROP_2(VariableDeclarationKindConst, KInt, KNativePointer, KNativePointer) - -KNativePointer impl_ClassDeclarationDefinition(KNativePointer contextPtr, KNativePointer nodePtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - return GetImpl()->ClassDeclarationDefinition(context, node); -} -KOALA_INTEROP_2(ClassDeclarationDefinition, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_CreateIdentifier2(KNativePointer contextPtr, KStringPtr& namePtr, KNativePointer typeAnnotationPtr) { - auto context = reinterpret_cast(contextPtr); - auto typeAnnotation = reinterpret_cast(typeAnnotationPtr); - return GetImpl()->CreateIdentifier2(context, getStringCopy(namePtr), typeAnnotation); -} -KOALA_INTEROP_3(CreateIdentifier2, KNativePointer, KNativePointer, KStringPtr, KNativePointer) - -KNativePointer impl_CreateETSPrimitiveType(KNativePointer contextPtr, KInt type) { - auto context = reinterpret_cast(contextPtr); - return GetImpl()->CreateETSPrimitiveType(context, static_cast(type)); -} -KOALA_INTEROP_2(CreateETSPrimitiveType, KNativePointer, KNativePointer, KInt) - -KInt impl_ETSPrimitiveTypeGetPrimitiveTypeConst(KNativePointer contextPtr, KNativePointer nodePtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - - return GetImpl()->ETSPrimitiveTypeGetPrimitiveTypeConst(context, node); -} -KOALA_INTEROP_2(ETSPrimitiveTypeGetPrimitiveTypeConst, KInt, KNativePointer, KNativePointer) - -KNativePointer impl_CreateETSFunctionTypeIr(KNativePointer contextPtr, KNativePointer signaturePtr, KInt funcFlagsT) { - auto context = reinterpret_cast(contextPtr); - auto signature = reinterpret_cast(signaturePtr); - auto funcFlags = Es2pandaScriptFunctionFlags(funcFlagsT); - - return GetImpl()->CreateETSFunctionTypeIr(context, signature, funcFlags); -} -KOALA_INTEROP_3(CreateETSFunctionTypeIr, KNativePointer, KNativePointer, KNativePointer, KInt) - -KNativePointer impl_CreateNumberLiteral(KNativePointer contextPtr, KDouble value) { - auto context = reinterpret_cast(contextPtr); - - return GetImpl()->CreateNumberLiteral(context, value); -} -KOALA_INTEROP_2(CreateNumberLiteral, KNativePointer, KNativePointer, KDouble) - -KNativePointer impl_CreateStringLiteral(KNativePointer contextPtr, KStringPtr& stringPtr) { - auto context = reinterpret_cast(contextPtr); - return GetImpl()->CreateStringLiteral1(context, getStringCopy(stringPtr)); -} -KOALA_INTEROP_2(CreateStringLiteral, KNativePointer, KNativePointer, KStringPtr) - -KNativePointer impl_StringLiteralStrConst(KNativePointer contextPtr, KNativePointer nodePtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - return new string(GetImpl()->StringLiteralStrConst(context, node)); -} -KOALA_INTEROP_2(StringLiteralStrConst, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_NumberLiteralStrConst(KNativePointer contextPtr, KNativePointer nodePtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - return new string(GetImpl()->NumberLiteralStrConst(context, node)); -} -KOALA_INTEROP_2(NumberLiteralStrConst, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_CreateMethodDefinition( - KNativePointer contextPtr, - KInt kindT, - KNativePointer keyPtr, - KNativePointer valuePtr, - KInt modifiersT, - KBoolean isComputedT -) { - auto context = reinterpret_cast(contextPtr); - auto kind = static_cast(kindT); - auto key = reinterpret_cast(keyPtr); - auto value = reinterpret_cast(valuePtr); - auto modifiers = static_cast(modifiersT); - auto isComputed = static_cast(isComputedT); - - return GetImpl()->CreateMethodDefinition(context, kind, key, value, modifiers, isComputed); -} -KOALA_INTEROP_6(CreateMethodDefinition, KNativePointer, KNativePointer, KInt, KNativePointer, KNativePointer, KInt, KBoolean) - -KNativePointer impl_CreateClassProperty( - KNativePointer contextPtr, - KNativePointer keyPtr, - KNativePointer valuePtr, - KNativePointer typeAnnotationPtr, - KInt modifiersT, - KBoolean isComputedT -) { - auto context = reinterpret_cast(contextPtr); - auto key = reinterpret_cast(keyPtr); - auto value = reinterpret_cast(valuePtr); - auto typeAnnotation = reinterpret_cast(typeAnnotationPtr); - auto modifiers = static_cast(modifiersT); - auto isComputed = static_cast(isComputedT); - - return GetImpl()->CreateClassProperty(context, key, value, typeAnnotation, modifiers, isComputed); -} -KOALA_INTEROP_6(CreateClassProperty, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KInt, KBoolean) - -KNativePointer impl_AstNodeDumpJsonConst(KNativePointer contextPtr, KNativePointer nodePtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - return new string(GetImpl()->AstNodeDumpJSONConst(context, node)); -} -KOALA_INTEROP_2(AstNodeDumpJsonConst, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_AstNodeDumpEtsSrcConst(KNativePointer contextPtr, KNativePointer nodePtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - return new string(GetImpl()->AstNodeDumpEtsSrcConst(context, node)); -} -KOALA_INTEROP_2(AstNodeDumpEtsSrcConst, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_ETSParserCreateExpression(KNativePointer contextPtr, KStringPtr& sourceCodePtr, KInt flagsT) { - auto context = reinterpret_cast(contextPtr); - auto flags = static_cast(flagsT); - - return GetImpl()->ETSParserCreateExpression(context, getStringCopy(sourceCodePtr), flags); -} -KOALA_INTEROP_3(ETSParserCreateExpression, KNativePointer, KNativePointer, KStringPtr, KInt) - -KBoolean impl_IsProgram(KNativePointer contextPtr, KNativePointer nodePtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - return GetImpl()->AstNodeIsProgramConst(context, node); -} -KOALA_INTEROP_2(IsProgram, KBoolean, KNativePointer, KNativePointer) - -KBoolean impl_IsBlockStatement(KNativePointer nodePtr) { - auto node = reinterpret_cast(nodePtr); - return GetImpl()->IsBlockStatement(node); -} -KOALA_INTEROP_1(IsBlockStatement, KBoolean, KNativePointer) - -KNativePointer impl_ProceedToState(KNativePointer contextPtr, KInt state) { - auto context = reinterpret_cast(contextPtr); - return GetImpl()->ProceedToState(context, intToState(state)); -} -KOALA_INTEROP_2(ProceedToState, KNativePointer, KNativePointer, KInt) - -KNativePointer impl_ContextProgram(KNativePointer contextPtr) { - auto context = reinterpret_cast(contextPtr); - return GetImpl()->ContextProgram(context); -} -KOALA_INTEROP_1(ContextProgram, KNativePointer, KNativePointer) - -KNativePointer impl_ProgramAst(KNativePointer programPtr) { - auto program = reinterpret_cast(programPtr); - return GetImpl()->ProgramAst(program); -} -KOALA_INTEROP_1(ProgramAst, KNativePointer, KNativePointer) - -KBoolean impl_IsIdentifier(KNativePointer nodePtr) { - auto node = reinterpret_cast(nodePtr); - return GetImpl()->IsIdentifier(node); -} -KOALA_INTEROP_1(IsIdentifier, KBoolean, KNativePointer) - -KNativePointer impl_IdentifierName(KNativePointer contextPtr, KNativePointer nodePtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - return new string(GetImpl()->IdentifierName(context, node)); -} -KOALA_INTEROP_2(IdentifierName, KNativePointer, KNativePointer, KNativePointer) - -KNativePointer impl_CreateIdentifier1(KNativePointer contextPtr, KStringPtr& namePtr) { - auto context = reinterpret_cast(contextPtr); - return GetImpl()->CreateIdentifier1(context, getStringCopy(namePtr)); -} -KOALA_INTEROP_2(CreateIdentifier1, KNativePointer, KNativePointer, KStringPtr) - -KNativePointer impl_CreateContextFromString(KNativePointer configPtr, KStringPtr& sourcePtr, KStringPtr& filenamePtr) { - auto config = reinterpret_cast(configPtr); - return GetImpl()->CreateContextFromString(config, sourcePtr.data(), filenamePtr.data()); -} -KOALA_INTEROP_3(CreateContextFromString, KNativePointer, KNativePointer, KStringPtr, KStringPtr) - -KNativePointer impl_CreateContextFromFile(KNativePointer configPtr, KStringPtr& filenamePtr) { - auto config = reinterpret_cast(configPtr); - return GetImpl()->CreateContextFromFile(config, getStringCopy(filenamePtr)); -} -KOALA_INTEROP_2(CreateContextFromFile, KNativePointer, KNativePointer, KStringPtr) - -KInt impl_ContextState(KNativePointer contextPtr) { - auto context = reinterpret_cast(contextPtr); - - return static_cast(GetImpl()->ContextState(context)); -} -KOALA_INTEROP_1(ContextState, KInt, KNativePointer) - -KNativePointer impl_ContextErrorMessage(KNativePointer contextPtr) { - auto context = reinterpret_cast(contextPtr); - - return new string(GetImpl()->ContextErrorMessage(context)); -} -KOALA_INTEROP_1(ContextErrorMessage, KNativePointer, KNativePointer) +#include "common.h" + +KNativePointer impl_CallExpressionCallee(KNativePointer contextPtr, KNativePointer nodePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + return GetImpl()->CallExpressionCallee(context, node); +} +KOALA_INTEROP_2(CallExpressionCallee, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_AstNodeParent(KNativePointer contextPtr, KNativePointer nodePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + return GetImpl()->AstNodeParent(context, node); +} +KOALA_INTEROP_2(AstNodeParent, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_AstNodeVariableConst(KNativePointer contextPtr, KNativePointer nodePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + + return GetImpl()->AstNodeVariableConst(context, node); +} +KOALA_INTEROP_2(AstNodeVariableConst, KNativePointer, KNativePointer, KNativePointer) + +KInt impl_AstNodeTypeConst(KNativePointer contextPtr, KNativePointer nodePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + + return GetImpl()->AstNodeTypeConst(context, node); +} +KOALA_INTEROP_2(AstNodeTypeConst, KInt, KNativePointer, KNativePointer) + +KNativePointer impl_VariableDeclaration(KNativePointer contextPtr, KNativePointer variablePtr) { + auto context = reinterpret_cast(contextPtr); + auto variable = reinterpret_cast(variablePtr); + + return GetImpl()->VariableDeclaration(context, variable); +} +KOALA_INTEROP_2(VariableDeclaration, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_DeclNode(KNativePointer contextPtr, KNativePointer declPtr) { + auto context = reinterpret_cast(contextPtr); + auto decl = reinterpret_cast(declPtr); + + return GetImpl()->DeclNode(context, decl); +} +KOALA_INTEROP_2(DeclNode, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_AstNodeScopeConst(KNativePointer contextPtr, KNativePointer nodePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + return GetImpl()->AstNodeScopeConst(context, node); +} +KOALA_INTEROP_2(AstNodeScopeConst, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_ScopeSetParent(KNativePointer contextPtr, KNativePointer nodePtr, KNativePointer parentPtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + auto parent = reinterpret_cast(parentPtr); + GetImpl()->ScopeSetParent(context, node, parent); + return node; +} +KOALA_INTEROP_3(ScopeSetParent, KNativePointer, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_BlockStatementSetStatements( + KNativePointer contextPtr, + KNativePointer nodePtr, + KNativePointerArray statementsPtr, + KInt statementsLen +) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + auto statements = reinterpret_cast(statementsPtr); + + GetImpl()->BlockStatementSetStatements(context, node, statements, statementsLen); + return node; +} +KOALA_INTEROP_4(BlockStatementSetStatements, KNativePointer, KNativePointer, KNativePointer, KNativePointerArray, KInt) + +KNativePointer impl_CreateClassDeclaration(KNativePointer contextPtr, KNativePointer defPtr) { + auto context = reinterpret_cast(contextPtr); + auto def = reinterpret_cast(defPtr); + + return GetImpl()->CreateClassDeclaration(context, def); +} +KOALA_INTEROP_2(CreateClassDeclaration, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_UpdateClassDeclaration(KNativePointer contextPtr, KNativePointer originalPtr, KNativePointer defPtr) { + auto context = reinterpret_cast(contextPtr); + auto original = reinterpret_cast(originalPtr); + auto def = reinterpret_cast(defPtr); + + return GetImpl()->UpdateClassDeclaration(context, original, def); +} +KOALA_INTEROP_3(UpdateClassDeclaration, KNativePointer, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_ClassDefinitionSetTypeParams( + KNativePointer contextPtr, + KNativePointer nodePtr, + KNativePointer typeParamsPtr +) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + auto typeParams = reinterpret_cast(typeParamsPtr); + + GetImpl()->ClassDefinitionSetTypeParams(context, node, typeParams); + return node; +} +KOALA_INTEROP_3(ClassDefinitionSetTypeParams, KNativePointer, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_ClassDefinitionSetSuper( + KNativePointer contextPtr, + KNativePointer astPtr, + KNativePointer superClassPtr +) { + auto context = reinterpret_cast(contextPtr); + auto ast = reinterpret_cast(astPtr); + auto superClass = reinterpret_cast(superClassPtr); + + GetImpl()->ClassDefinitionSetSuper(context, ast, superClass); + return ast; +} +KOALA_INTEROP_3(ClassDefinitionSetSuper, KNativePointer, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_ClassDefinitionIdent( + KNativePointer contextPtr, + KNativePointer nodePtr +) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + + return GetImpl()->ClassDefinitionIdent(context, node); +} +KOALA_INTEROP_2(ClassDefinitionIdent, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_CreateClassDefinition1( + KNativePointer contextPtr, + KNativePointer identPtr, + KNativePointerArray bodyPtr, + KInt bodyLenT, + KInt modifiersT, + KInt flagsT +) { + auto context = reinterpret_cast(contextPtr); + auto ident = reinterpret_cast(identPtr); + auto body = reinterpret_cast(bodyPtr); + auto bodyLen = static_cast(bodyLenT); + auto modifiers = Es2pandaClassDefinitionModifiers(modifiersT); + auto flags = Es2pandaModifierFlags(flagsT); + + return GetImpl()->CreateClassDefinition1(context, ident, body, bodyLen, modifiers, flags); +} +KOALA_INTEROP_6(CreateClassDefinition1, KNativePointer, KNativePointer, KNativePointer, KNativePointerArray, KInt, KInt, KInt) + +KNativePointer impl_UpdateClassDefinition1( + KNativePointer contextPtr, + KNativePointer originalPtr, + KNativePointer identPtr, + KNativePointerArray bodyPtr, + KInt bodyLenT, + KInt modifiersT, + KInt flagsT +) { + auto context = reinterpret_cast(contextPtr); + auto original = reinterpret_cast(originalPtr); + auto ident = reinterpret_cast(identPtr); + auto body = reinterpret_cast(bodyPtr); + auto bodyLen = static_cast(bodyLenT); + auto modifiers = Es2pandaClassDefinitionModifiers(modifiersT); + auto flags = Es2pandaModifierFlags(flagsT); + + return GetImpl()->UpdateClassDefinition1(context, original, ident, body, bodyLen, modifiers, flags); +} +KOALA_INTEROP_7(UpdateClassDefinition1, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KNativePointerArray, KInt, KInt, KInt) + +KNativePointer impl_CreateSuperExpression(KNativePointer contextPtr) { + auto context = reinterpret_cast(contextPtr); + + return GetImpl()->CreateSuperExpression(context); +} +KOALA_INTEROP_1(CreateSuperExpression, KNativePointer, KNativePointer) + +KNativePointer impl_UpdateSuperExpression(KNativePointer contextPtr, KNativePointer originalPtr) { + auto context = reinterpret_cast(contextPtr); + auto original = reinterpret_cast(originalPtr); + + return GetImpl()->UpdateSuperExpression(context, original); +} +KOALA_INTEROP_2(UpdateSuperExpression, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_CreateETSImportDeclaration( + KNativePointer contextPtr, + KNativePointer sourcePtr, + KNativePointerArray specifiersPtr, + KInt specifiersLen, + KInt importKindT +) { + auto context = reinterpret_cast(contextPtr); + auto source = reinterpret_cast(sourcePtr); + auto specifiers = reinterpret_cast(specifiersPtr); + auto importKind = static_cast(importKindT); + + return GetImpl()->CreateETSImportDeclaration(context, source, specifiers, specifiersLen, importKind); +} +KOALA_INTEROP_5(CreateETSImportDeclaration, KNativePointer, KNativePointer, KNativePointer, KNativePointerArray, KInt, KInt) + +KNativePointer impl_ETSImportDeclarationSourceConst( + KNativePointer contextPtr, + KNativePointer nodePtr +) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + + return GetImpl()->ETSImportDeclarationSourceConst(context, node); +} +KOALA_INTEROP_2(ETSImportDeclarationSourceConst, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_ETSImportDeclarationResolvedSource( + KNativePointer contextPtr, + KNativePointer nodePtr +) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + + return GetImpl()->ETSImportDeclarationResolvedSource(context, node); +} +KOALA_INTEROP_2(ETSImportDeclarationResolvedSource, KNativePointer, KNativePointer, KNativePointer) + +KBoolean impl_ETSImportDeclarationHasDeclConst( + KNativePointer contextPtr, + KNativePointer nodePtr +) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + + return GetImpl()->ETSImportDeclarationHasDeclConst(context, node); +} +KOALA_INTEROP_2(ETSImportDeclarationHasDeclConst, KBoolean, KNativePointer, KNativePointer) + +KNativePointer impl_CreateImportSource( + KNativePointer contextPtr, + KNativePointer sourcePtr, + KNativePointer resolvedSourcePtr, + KBoolean hasDeclT +) { + auto context = reinterpret_cast(contextPtr); + auto source = reinterpret_cast(sourcePtr); + auto resolvedSource = reinterpret_cast(resolvedSourcePtr); + auto hasDecl = static_cast(hasDeclT); + + return GetImpl()->CreateImportSource(context, source, resolvedSource, hasDecl); +} +KOALA_INTEROP_4(CreateImportSource, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KBoolean) + +KNativePointer impl_CreateImportSpecifier( + KNativePointer contextPtr, + KNativePointer importedPtr, + KNativePointer localPtr +) { + auto context = reinterpret_cast(contextPtr); + auto imported = reinterpret_cast(importedPtr); + auto local = reinterpret_cast(localPtr); + + return GetImpl()->CreateImportSpecifier(context, imported, local); +} +KOALA_INTEROP_3(CreateImportSpecifier, KNativePointer, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_CreateFunctionExpression(KNativePointer contextPtr, KNativePointer funcPtr) { + auto context = reinterpret_cast(contextPtr); + auto func = reinterpret_cast(funcPtr); + + return GetImpl()->CreateFunctionExpression(context, func); +} +KOALA_INTEROP_2(CreateFunctionExpression, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_UpdateFunctionExpression(KNativePointer contextPtr, KNativePointer nodePtr, KNativePointer funcPtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + auto func = reinterpret_cast(funcPtr); + + return GetImpl()->UpdateFunctionExpression(context, node, func); +} +KOALA_INTEROP_3(UpdateFunctionExpression, KNativePointer, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_CreateArrowFunctionExpression(KNativePointer contextPtr, KNativePointer nodePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + + return GetImpl()->CreateArrowFunctionExpression(context, node); +} +KOALA_INTEROP_2(CreateArrowFunctionExpression, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_ArrowFunctionExpressionFunction(KNativePointer contextPtr, KNativePointer nodePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + + return GetImpl()->ArrowFunctionExpressionFunction(context, node); +} +KOALA_INTEROP_2(ArrowFunctionExpressionFunction, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_ArrowFunctionExpressionCreateTypeAnnotation(KNativePointer contextPtr, KNativePointer nodePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + + return GetImpl()->ArrowFunctionExpressionCreateTypeAnnotation(context, node); +} +KOALA_INTEROP_2(ArrowFunctionExpressionCreateTypeAnnotation, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_FunctionExpressionFunction(KNativePointer contextPtr, KNativePointer nodePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + + return GetImpl()->FunctionExpressionFunction(context, node); +} +KOALA_INTEROP_2(FunctionExpressionFunction, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_ExpressionStatementGetExpression(KNativePointer contextPtr, KNativePointer nodePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + + return GetImpl()->ExpressionStatementGetExpression(context, node); +} +KOALA_INTEROP_2(ExpressionStatementGetExpression, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_FunctionSignatureTypeParams(KNativePointer contextPtr, KNativePointer nodePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + + return GetImpl()->FunctionSignatureTypeParams(context, node); +} +KOALA_INTEROP_2(FunctionSignatureTypeParams, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_FunctionSignatureReturnType(KNativePointer contextPtr, KNativePointer nodePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + + return GetImpl()->FunctionSignatureReturnType(context, node); +} +KOALA_INTEROP_2(FunctionSignatureReturnType, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_UpdateIdentifier1(KNativePointer contextPtr, KNativePointer nodePtr, KStringPtr& namePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + + return GetImpl()->UpdateIdentifier1(context, node, getStringCopy(namePtr)); +} +KOALA_INTEROP_3(UpdateIdentifier1, KNativePointer, KNativePointer, KNativePointer, KStringPtr) + +KNativePointer impl_UpdateIdentifier2(KNativePointer contextPtr, KNativePointer nodePtr, KStringPtr& namePtr, KNativePointer typeAnnotationPtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + auto typeAnnotation = reinterpret_cast(typeAnnotationPtr); + + return GetImpl()->UpdateIdentifier2(context, node, getStringCopy(namePtr), typeAnnotation); +} +KOALA_INTEROP_4(UpdateIdentifier2, KNativePointer, KNativePointer, KNativePointer, KStringPtr, KNativePointer) + +KBoolean impl_IdentifierIsPrivateIdentConst(KNativePointer contextPtr, KNativePointer nodePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + + return GetImpl()->IdentifierIsPrivateIdentConst(context, node); +} +KOALA_INTEROP_2(IdentifierIsPrivateIdentConst, KBoolean, KNativePointer, KNativePointer) + +KNativePointer impl_MethodDefinitionFunction( + KNativePointer contextPtr, + KNativePointer nodePtr +) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + + return GetImpl()->MethodDefinitionFunction(context, node); +} +KOALA_INTEROP_2(MethodDefinitionFunction, KNativePointer, KNativePointer, KNativePointer) + +KInt impl_MethodDefinitionKindConst( + KNativePointer contextPtr, + KNativePointer nodePtr +) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + + return GetImpl()->MethodDefinitionKindConst(context, node); +} +KOALA_INTEROP_2(MethodDefinitionKindConst, KInt, KNativePointer, KNativePointer) + + +KNativePointer impl_AstNodeSetParent( + KNativePointer contextPtr, + KNativePointer astPtr, + KNativePointer parentPtr +) { + auto context = reinterpret_cast(contextPtr); + auto ast = reinterpret_cast(astPtr); + auto parent = reinterpret_cast(parentPtr); + + GetImpl()->AstNodeSetParent(context, ast, parent); + return ast; +} +KOALA_INTEROP_3(AstNodeSetParent, KNativePointer, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_AstNodeSetOriginalNode( + KNativePointer contextPtr, + KNativePointer astPtr, + KNativePointer originalNodePtr +) { + auto context = reinterpret_cast(contextPtr); + auto ast = reinterpret_cast(astPtr); + auto originalNode = reinterpret_cast(originalNodePtr); + + GetImpl()->AstNodeSetOriginalNode(context, ast, originalNode); + return ast; +} +KOALA_INTEROP_3(AstNodeSetOriginalNode, KNativePointer, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_AstNodeOriginalNodeConst( + KNativePointer contextPtr, + KNativePointer astPtr +) { + auto context = reinterpret_cast(contextPtr); + auto ast = reinterpret_cast(astPtr); + + return GetImpl()->AstNodeOriginalNodeConst(context, ast); +} +KOALA_INTEROP_2(AstNodeOriginalNodeConst, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_AstNodeClone( + KNativePointer contextPtr, + KNativePointer astPtr, + KNativePointer parentPtr +) { + auto context = reinterpret_cast(contextPtr); + auto ast = reinterpret_cast(astPtr); + auto parent = reinterpret_cast(parentPtr); + + return GetImpl()->AstNodeClone(context, ast, parent); +} +KOALA_INTEROP_3(AstNodeClone, KNativePointer, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_ScriptFunctionSetIdent( + KNativePointer contextPtr, + KNativePointer astPtr, + KNativePointer idPtr +) { + auto context = reinterpret_cast(contextPtr); + auto ast = reinterpret_cast(astPtr); + auto id = reinterpret_cast(idPtr); + + GetImpl()->ScriptFunctionSetIdent(context, ast, id); + return ast; +} +KOALA_INTEROP_3(ScriptFunctionSetIdent, KNativePointer, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_ScriptFunctionSetSignature( + KNativePointer contextPtr, + KNativePointer astPtr, + KNativePointer signaturePtr +) { + auto context = reinterpret_cast(contextPtr); + auto ast = reinterpret_cast(astPtr); + auto signature = reinterpret_cast(signaturePtr); + + GetImpl()->ScriptFunctionSetSignature(context, ast, signature); + return ast; +} +KOALA_INTEROP_3(ScriptFunctionSetSignature, KNativePointer, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_ScriptFunctionSetBody( + KNativePointer contextPtr, + KNativePointer astPtr, + KNativePointer bodyPtr +) { + auto context = reinterpret_cast(contextPtr); + auto ast = reinterpret_cast(astPtr); + auto body = reinterpret_cast(bodyPtr); + + GetImpl()->ScriptFunctionSetBody(context, ast, body); + return ast; +} +KOALA_INTEROP_3(ScriptFunctionSetBody, KNativePointer, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_ScriptFunctionSetScope( + KNativePointer contextPtr, + KNativePointer astPtr, + KNativePointer scopePtr +) { + auto context = reinterpret_cast(contextPtr); + auto ast = reinterpret_cast(astPtr); + auto scope = reinterpret_cast(scopePtr); + + GetImpl()->ScriptFunctionSetScope(context, ast, scope); + return ast; +} +KOALA_INTEROP_3(ScriptFunctionSetScope, KNativePointer, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_ScriptFunctionSignature(KNativePointer contextPtr, KNativePointer nodePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + + return GetImpl()->ScriptFunctionSignature(context, node); +} +KOALA_INTEROP_2(ScriptFunctionSignature, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_ScriptFunctionIrSignature(KNativePointer contextPtr, KNativePointer nodePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + + return GetImpl()->ScriptFunctionIrSignature(context, node); +} +KOALA_INTEROP_2(ScriptFunctionIrSignature, KNativePointer, KNativePointer, KNativePointer) + +KInt impl_ScriptFunctionFlagsConst(KNativePointer contextPtr, KNativePointer nodePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + + return GetImpl()->ScriptFunctionFlagsConst(context, node); +} +KOALA_INTEROP_2(ScriptFunctionFlagsConst, KInt, KNativePointer, KNativePointer) + +KInt impl_AstNodeModifiers(KNativePointer contextPtr, KNativePointer nodePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + + return GetImpl()->AstNodeModifiers(context, node); +} +KOALA_INTEROP_2(AstNodeModifiers, KInt, KNativePointer, KNativePointer) + +KNativePointer impl_AstNodeAddModifier(KNativePointer contextPtr, KNativePointer nodePtr, KInt flagsT) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + auto flags = static_cast(flagsT); + + GetImpl()->AstNodeAddModifier(context, node, flags); + return node; +} +KOALA_INTEROP_3(AstNodeAddModifier, KNativePointer, KNativePointer, KNativePointer, KInt) + +KNativePointer impl_AstNodeClearModifier(KNativePointer contextPtr, KNativePointer nodePtr, KInt flagsT) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + auto flags = static_cast(flagsT); + + GetImpl()->AstNodeClearModifier(context, node, flags); + return node; +} +KOALA_INTEROP_3(AstNodeClearModifier, KNativePointer, KNativePointer, KNativePointer, KInt) + +KNativePointer impl_CreateScriptFunction( + KNativePointer contextPtr, + KNativePointer databodyPtr, + KNativePointer datasignaturePtr, + KInt datafuncFlags, + KInt dataFlags +) { + auto context = reinterpret_cast(contextPtr); + auto databody = reinterpret_cast(databodyPtr); + auto datasignature = reinterpret_cast(datasignaturePtr); + + return GetImpl()->CreateScriptFunction(context, databody, datasignature, datafuncFlags, dataFlags); +} +KOALA_INTEROP_5(CreateScriptFunction, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KInt, KInt) + +KNativePointer impl_UpdateScriptFunction( + KNativePointer contextPtr, + KNativePointer nodePtr, + KNativePointer databodyPtr, + KNativePointer datasignaturePtr, + KInt datafuncFlags, + KInt dataFlags +) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + auto databody = reinterpret_cast(databodyPtr); + auto datasignature = reinterpret_cast(datasignaturePtr); + + return GetImpl()->UpdateScriptFunction(context, node, databody, datasignature, datafuncFlags, dataFlags); +} +KOALA_INTEROP_6(UpdateScriptFunction, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KInt, KInt) + +KNativePointer impl_CreateBlockStatement( + KNativePointer contextPtr, + KNativePointerArray statementListPtr, + KInt statementListLen +) { + auto context = reinterpret_cast(contextPtr); + auto statementList = reinterpret_cast(statementListPtr); + + return GetImpl()->CreateBlockStatement(context, statementList, statementListLen); +} +KOALA_INTEROP_3(CreateBlockStatement, KNativePointer, KNativePointer, KNativePointerArray, KInt) + +KNativePointer impl_CreateAstDumper( + KNativePointer contextPtr, + KNativePointer nodePtr, + KStringPtr& sourcePtr +) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + + return GetImpl()->CreateAstDumper(context, node, getStringCopy(sourcePtr)); +} +KOALA_INTEROP_3(CreateAstDumper, KNativePointer, KNativePointer, KNativePointer, KStringPtr) + +KNativePointer impl_CreateETSUnionTypeIr( + KNativePointer contextPtr, + KNativePointerArray typesPtr, + KInt typesLen +) { + auto context = reinterpret_cast(contextPtr); + auto types = reinterpret_cast(typesPtr); + + return GetImpl()->CreateETSUnionTypeIr(context, types, typesLen); +} +KOALA_INTEROP_3(CreateETSUnionTypeIr, KNativePointer, KNativePointer, KNativePointerArray, KInt) + +KNativePointer impl_CreateExpressionStatement(KNativePointer contextPtr, KNativePointer exprPtr) { + auto context = reinterpret_cast(contextPtr); + auto expr = reinterpret_cast(exprPtr); + + return GetImpl()->CreateExpressionStatement(context, expr); +} +KOALA_INTEROP_2(CreateExpressionStatement, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_UpdateExpressionStatement(KNativePointer contextPtr, KNativePointer nodePtr, KNativePointer exprPtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + auto expr = reinterpret_cast(exprPtr); + + return GetImpl()->UpdateExpressionStatement(context, node, expr); +} +KOALA_INTEROP_3(UpdateExpressionStatement, KNativePointer, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_ScriptFunctionBody(KNativePointer contextPtr, KNativePointer nodePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + + return GetImpl()->ScriptFunctionBody(context, node); +} +KOALA_INTEROP_2(ScriptFunctionBody, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_CreateBinaryExpression(KNativePointer contextPtr, KNativePointer leftPtr, KNativePointer rightPtr, KInt tokenKind) { + auto context = reinterpret_cast(contextPtr); + auto left = reinterpret_cast(leftPtr); + auto right = reinterpret_cast(rightPtr); + + return GetImpl()->CreateBinaryExpression(context, left, right, Es2pandaTokenType(tokenKind)); +} +KOALA_INTEROP_4(CreateBinaryExpression, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KInt) + +KNativePointer impl_CreateAssignmentExpression(KNativePointer contextPtr, KNativePointer leftPtr, KNativePointer rightPtr, KInt assignmentOperator) { + auto context = reinterpret_cast(contextPtr); + auto left = reinterpret_cast(leftPtr); + auto right = reinterpret_cast(rightPtr); + + return GetImpl()->CreateAssignmentExpression(context, left, right, Es2pandaTokenType(assignmentOperator)); +} +KOALA_INTEROP_4(CreateAssignmentExpression, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KInt) + +KNativePointer impl_CreateFunctionSignature( + KNativePointer contextPtr, + KNativePointer typeParamsPtr, + KNativePointerArray paramsPtr, + KInt paramsLen, + KNativePointer returnTypeAnnotationPtr, + KBoolean hasReceiver +) { + auto context = reinterpret_cast(contextPtr); + auto typeParams = reinterpret_cast(typeParamsPtr); + auto params = reinterpret_cast(paramsPtr); + auto returnTypeAnnotation = reinterpret_cast(returnTypeAnnotationPtr); + + return GetImpl()->CreateFunctionSignature(context, typeParams, params, paramsLen, returnTypeAnnotation, hasReceiver); +} +KOALA_INTEROP_6(CreateFunctionSignature, KNativePointer, KNativePointer, KNativePointer, KNativePointerArray, KInt, KNativePointer, KBoolean) + +KNativePointer impl_CreateTSUnionType( + KNativePointer contextPtr, + KNativePointerArray typesPtr, + KInt typesLen +) { + auto context = reinterpret_cast(contextPtr); + auto types = reinterpret_cast(typesPtr); + + return GetImpl()->CreateTSUnionType(context, types, typesLen); +} +KOALA_INTEROP_3(CreateTSUnionType, KNativePointer, KNativePointer, KNativePointerArray, KInt) + +KNativePointer impl_CreateReturnStatement1(KNativePointer contextPtr, KNativePointer argumentPtr) { + auto context = reinterpret_cast(contextPtr); + auto argument = reinterpret_cast(argumentPtr); + + return GetImpl()->CreateReturnStatement1(context, argument); +} +KOALA_INTEROP_2(CreateReturnStatement1, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_ReturnStatementArgument(KNativePointer contextPtr, KNativePointer nodePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + + return GetImpl()->ReturnStatementArgument(context, node); +} +KOALA_INTEROP_2(ReturnStatementArgument, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_CreateIfStatement(KNativePointer contextPtr, KNativePointer testPtr, KNativePointer consequentPtr, KNativePointer alternatePtr) { + auto context = reinterpret_cast(contextPtr); + auto test = reinterpret_cast(testPtr); + auto consequent = reinterpret_cast(consequentPtr); + auto alternate = reinterpret_cast(alternatePtr); + + return GetImpl()->CreateIfStatement(context, test, consequent, alternate); +} +KOALA_INTEROP_4(CreateIfStatement, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_CreateMemberExpression( + KNativePointer contextPtr, + KNativePointer objectPtr, + KNativePointer propertyPtr, + KInt kindT, + KBoolean computedT, + KBoolean optionalT +) { + auto context = reinterpret_cast(contextPtr); + auto object = reinterpret_cast(objectPtr); + auto property = reinterpret_cast(propertyPtr); + auto computed = static_cast(computedT); + auto optional = static_cast(optionalT); + auto kind = static_cast(kindT); + + return GetImpl()->CreateMemberExpression(context, object, property, kind, computed, optional); +} +KOALA_INTEROP_6(CreateMemberExpression, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KInt, KBoolean, KBoolean) + +KNativePointer impl_UpdateMemberExpression( + KNativePointer contextPtr, + KNativePointer nodePtr, + KNativePointer objectPtr, + KNativePointer propertyPtr, + KInt kindT, + KBoolean computedT, + KBoolean optionalT +) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + auto object = reinterpret_cast(objectPtr); + auto property = reinterpret_cast(propertyPtr); + auto computed = static_cast(computedT); + auto optional = static_cast(optionalT); + auto kind = static_cast(kindT); + + return GetImpl()->UpdateMemberExpression(context, node, object, property, kind, computed, optional); +} +KOALA_INTEROP_7(UpdateMemberExpression, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KInt, KBoolean, KBoolean) + +KNativePointer impl_UpdateMethodDefinition( + KNativePointer contextPtr, + KNativePointer nodePtr, + KInt kindT, + KNativePointer keyPtr, + KNativePointer valuePtr, + KInt modifiersT, + KBoolean isComputedT +) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + auto kind = static_cast(kindT); + auto key = reinterpret_cast(keyPtr); + auto value = reinterpret_cast(valuePtr); + auto modifiers = static_cast(modifiersT); + auto isComputed = static_cast(isComputedT); + + return GetImpl()->UpdateMethodDefinition(context, node, kind, key, value, modifiers, isComputed); +} +KOALA_INTEROP_7(UpdateMethodDefinition, KNativePointer, KNativePointer, KNativePointer, KInt, KNativePointer, KNativePointer, KInt, KBoolean) + +KNativePointer impl_MemberExpressionObject( + KNativePointer contextPtr, + KNativePointer nodePtr +) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + + return GetImpl()->MemberExpressionObject(context, node); +} +KOALA_INTEROP_2(MemberExpressionObject, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_MemberExpressionProperty( + KNativePointer contextPtr, + KNativePointer nodePtr +) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + + return GetImpl()->MemberExpressionProperty(context, node); +} +KOALA_INTEROP_2(MemberExpressionProperty, KNativePointer, KNativePointer, KNativePointer) + +KInt impl_MemberExpressionKindConst( + KNativePointer contextPtr, + KNativePointer nodePtr +) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + + return GetImpl()->MemberExpressionKindConst(context, node); +} +KOALA_INTEROP_2(MemberExpressionKindConst, KInt, KNativePointer, KNativePointer) + +KNativePointer impl_CreateCallExpression( + KNativePointer contextPtr, + KNativePointer calleePtr, + KNativePointerArray argumentsPtr, + KInt argumentsLen, + KNativePointer typeParamsPtr, + KBoolean optionalT, + KBoolean trailingCommaT +) { + auto context = reinterpret_cast(contextPtr); + auto callee = reinterpret_cast(calleePtr); + auto arguments = reinterpret_cast(argumentsPtr); + auto typeParams = reinterpret_cast(typeParamsPtr); + auto optional = static_cast(optionalT); + auto trailingComma = static_cast(trailingCommaT); + + return GetImpl()->CreateCallExpression(context, callee, arguments, argumentsLen, typeParams, optional, trailingComma); +} +KOALA_INTEROP_7(CreateCallExpression, KNativePointer, KNativePointer, KNativePointer, KNativePointerArray, KInt, KNativePointer, KBoolean, KBoolean) + +KNativePointer impl_CreateVariableDeclaration( + KNativePointer contextPtr, + KInt kindT, + KNativePointerArray declaratorsPtr, + KInt declaratorsLen +) { + auto context = reinterpret_cast(contextPtr); + auto kind = static_cast(kindT); + auto declarators = reinterpret_cast(declaratorsPtr); + + return GetImpl()->CreateVariableDeclaration(context, kind, declarators, declaratorsLen); +} +KOALA_INTEROP_4(CreateVariableDeclaration, KNativePointer, KNativePointer, KInt, KNativePointerArray, KInt) + +KNativePointer impl_UpdateVariableDeclaration( + KNativePointer contextPtr, + KNativePointer originalPtr, + KInt kindT, + KNativePointerArray declaratorsPtr, + KInt declaratorsLen +) { + auto context = reinterpret_cast(contextPtr); + auto original = reinterpret_cast(originalPtr); + auto kind = static_cast(kindT); + auto declarators = reinterpret_cast(declaratorsPtr); + + return GetImpl()->UpdateVariableDeclaration(context, original, kind, declarators, declaratorsLen); +} +KOALA_INTEROP_5(UpdateVariableDeclaration, KNativePointer, KNativePointer, KNativePointer, KInt, KNativePointerArray, KInt) + +KNativePointer impl_CreateVariableDeclarator( + KNativePointer contextPtr, + KInt flagT, + KNativePointer identPtr +) { + auto context = reinterpret_cast(contextPtr); + auto flag = static_cast(flagT); + auto ident = reinterpret_cast(identPtr); + + return GetImpl()->CreateVariableDeclarator(context, flag, ident); +} +KOALA_INTEROP_3(CreateVariableDeclarator, KNativePointer, KNativePointer, KInt, KNativePointer) + +KNativePointer impl_VariableDeclaratorSetInit(KNativePointer contextPtr, KNativePointer nodePtr, KNativePointer initPtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + auto init = reinterpret_cast(initPtr); + + GetImpl()->VariableDeclaratorSetInit(context, node, init); + return node; +} +KOALA_INTEROP_3(VariableDeclaratorSetInit, KNativePointer, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_VariableDeclaratorId(KNativePointer contextPtr, KNativePointer nodePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + + return GetImpl()->VariableDeclaratorId(context, node); +} +KOALA_INTEROP_2(VariableDeclaratorId, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_CreateTSTypeParameter( + KNativePointer contextPtr, + KNativePointer namePtr, + KNativePointer constraintPtr, + KNativePointer defaultTypePtr +) { + auto context = reinterpret_cast(contextPtr); + auto name = reinterpret_cast(namePtr); + auto constraint = reinterpret_cast(constraintPtr); + auto defaultType = reinterpret_cast(defaultTypePtr); + + return GetImpl()->CreateTSTypeParameter(context, name, constraint, defaultType); +} +KOALA_INTEROP_4(CreateTSTypeParameter, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_TSTypeParameterName(KNativePointer contextPtr, KNativePointer nodePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + + return GetImpl()->TSTypeParameterName(context, node); +} +KOALA_INTEROP_2(TSTypeParameterName, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_ETSParameterExpressionIdent(KNativePointer contextPtr, KNativePointer nodePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + + return GetImpl()->ETSParameterExpressionIdent(context, node); +} +KOALA_INTEROP_2(ETSParameterExpressionIdent, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_CreateETSTypeReference(KNativePointer contextPtr, KNativePointer partPtr) { + auto context = reinterpret_cast(contextPtr); + auto part = reinterpret_cast(partPtr); + + return GetImpl()->CreateETSTypeReference(context, part); +} +KOALA_INTEROP_2(CreateETSTypeReference, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_CreateETSTypeReferencePart1(KNativePointer contextPtr, KNativePointer namePtr) { + auto context = reinterpret_cast(contextPtr); + auto name = reinterpret_cast(namePtr); + + return GetImpl()->CreateETSTypeReferencePart1(context, name); +} +KOALA_INTEROP_2(CreateETSTypeReferencePart1, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_CreateETSTypeReferencePart(KNativePointer contextPtr, KNativePointer namePtr, KNativePointer typeParamsPtr, KNativePointer prevPtr) { + auto context = reinterpret_cast(contextPtr); + auto name = reinterpret_cast(namePtr); + auto typeParams = reinterpret_cast(typeParamsPtr); + auto prev = reinterpret_cast(prevPtr); + + return GetImpl()->CreateETSTypeReferencePart(context, name, typeParams, prev); +} +KOALA_INTEROP_4(CreateETSTypeReferencePart, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KNativePointer) + + +KNativePointer impl_ScriptFunctionTypeParams(KNativePointer contextPtr, KNativePointer nodePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + + return GetImpl()->ScriptFunctionTypeParams(context, node); +} +KOALA_INTEROP_2(ScriptFunctionTypeParams, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_ScriptFunctionReturnTypeAnnotation(KNativePointer contextPtr, KNativePointer nodePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + + return GetImpl()->ScriptFunctionReturnTypeAnnotation(context, node); +} +KOALA_INTEROP_2(ScriptFunctionReturnTypeAnnotation, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_ScriptFunctionId(KNativePointer contextPtr, KNativePointer nodePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + return GetImpl()->ScriptFunctionId(context, node); +} +KOALA_INTEROP_2(ScriptFunctionId, KNativePointer, KNativePointer, KNativePointer) + +// KBoolean impl_ScriptFunctionDeclareConst(KNativePointer contextPtr, KNativePointer nodePtr) { +// auto context = reinterpret_cast(contextPtr); +// auto node = reinterpret_cast(nodePtr); +// return GetImpl()->ScriptFunctionDeclareConst(context, node); +// } +// KOALA_INTEROP_2(ScriptFunctionDeclareConst, KBoolean, KNativePointer, KNativePointer) + +KNativePointer impl_CreateFunctionDeclaration( + KNativePointer contextPtr, + KNativePointer funcPtr, + KNativePointerArray annotationsPtr, + KInt annotationsLen, + KBoolean isAnonK +) { + auto context = reinterpret_cast(contextPtr); + auto func = reinterpret_cast(funcPtr); + auto annotations = reinterpret_cast(annotationsPtr); + auto isAnon = static_cast(isAnonK); + + return GetImpl()->CreateFunctionDeclaration(context, func, annotations, annotationsLen, isAnon); +} +KOALA_INTEROP_5(CreateFunctionDeclaration, KNativePointer, KNativePointer, KNativePointer, KNativePointerArray, KInt, KBoolean) + +KNativePointer impl_UpdateFunctionDeclaration( + KNativePointer contextPtr, + KNativePointer nodePtr, + KNativePointer funcPtr, + KNativePointerArray annotationsPtr, + KInt annotationsLen, + KBoolean isAnonK +) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + auto func = reinterpret_cast(funcPtr); + auto annotations = reinterpret_cast(annotationsPtr); + auto isAnon = static_cast(isAnonK); + + return GetImpl()->UpdateFunctionDeclaration(context, node, func, annotations, annotationsLen, isAnon); +} +KOALA_INTEROP_6(UpdateFunctionDeclaration, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KNativePointerArray, KInt, KBoolean) + +// TODO: add param initializer +KNativePointer impl_CreateETSParameterExpression(KNativePointer contextPtr, KNativePointer identifierPtr, KNativePointer initializerPtr) { + auto context = reinterpret_cast(contextPtr); + auto identifier = reinterpret_cast(identifierPtr); + auto initializer = reinterpret_cast(initializerPtr); + + return GetImpl()->CreateETSParameterExpression(context, identifier, initializer); +} +KOALA_INTEROP_3(CreateETSParameterExpression, KNativePointer, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_CreateTSTypeParameterDeclaration( + KNativePointer contextPtr, + KNativePointerArray paramsPtr, + KInt paramsLen, + KInt requiredParams +) { + auto context = reinterpret_cast(contextPtr); + auto params = reinterpret_cast(paramsPtr); + + return GetImpl()->CreateTSTypeParameterDeclaration(context, params, paramsLen, requiredParams); +} +KOALA_INTEROP_4(CreateTSTypeParameterDeclaration, KNativePointer, KNativePointer, KNativePointerArray, KInt, KInt) + + +KNativePointer impl_ClassDefinitionTypeParamsConst(KNativePointer contextPtr, KNativePointer nodePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + + return const_cast(GetImpl()->ClassDefinitionTypeParamsConst(context, node)); +} +KOALA_INTEROP_2(ClassDefinitionTypeParamsConst, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_FunctionDeclarationFunction(KNativePointer contextPtr, KNativePointer nodePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + return GetImpl()->FunctionDeclarationFunction(context, node); +} +KOALA_INTEROP_2(FunctionDeclarationFunction, KNativePointer, KNativePointer, KNativePointer) + +KBoolean impl_FunctionDeclarationIsAnonymousConst(KNativePointer contextPtr, KNativePointer nodePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + + return GetImpl()->FunctionDeclarationIsAnonymousConst(context, node); +} +KOALA_INTEROP_2(FunctionDeclarationIsAnonymousConst, KBoolean, KNativePointer, KNativePointer) + +KNativePointer impl_ScriptFunctionAddFlag(KNativePointer contextPtr, KNativePointer nodePtr, KInt flagsT) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + auto flags = static_cast(flagsT); + + GetImpl()->ScriptFunctionAddFlag(context, node, flags); + return node; +} +KOALA_INTEROP_3(ScriptFunctionAddFlag, KNativePointer, KNativePointer, KNativePointer, KInt) + +KInt impl_VariableDeclarationKindConst(KNativePointer contextPtr, KNativePointer nodePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + + return GetImpl()->VariableDeclarationKindConst(context, node); +} +KOALA_INTEROP_2(VariableDeclarationKindConst, KInt, KNativePointer, KNativePointer) + +KNativePointer impl_ClassDeclarationDefinition(KNativePointer contextPtr, KNativePointer nodePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + return GetImpl()->ClassDeclarationDefinition(context, node); +} +KOALA_INTEROP_2(ClassDeclarationDefinition, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_CreateIdentifier2(KNativePointer contextPtr, KStringPtr& namePtr, KNativePointer typeAnnotationPtr) { + auto context = reinterpret_cast(contextPtr); + auto typeAnnotation = reinterpret_cast(typeAnnotationPtr); + return GetImpl()->CreateIdentifier2(context, getStringCopy(namePtr), typeAnnotation); +} +KOALA_INTEROP_3(CreateIdentifier2, KNativePointer, KNativePointer, KStringPtr, KNativePointer) + +KNativePointer impl_CreateETSPrimitiveType(KNativePointer contextPtr, KInt type) { + auto context = reinterpret_cast(contextPtr); + return GetImpl()->CreateETSPrimitiveType(context, static_cast(type)); +} +KOALA_INTEROP_2(CreateETSPrimitiveType, KNativePointer, KNativePointer, KInt) + +KInt impl_ETSPrimitiveTypeGetPrimitiveTypeConst(KNativePointer contextPtr, KNativePointer nodePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + + return GetImpl()->ETSPrimitiveTypeGetPrimitiveTypeConst(context, node); +} +KOALA_INTEROP_2(ETSPrimitiveTypeGetPrimitiveTypeConst, KInt, KNativePointer, KNativePointer) + +KNativePointer impl_CreateETSFunctionTypeIr(KNativePointer contextPtr, KNativePointer signaturePtr, KInt funcFlagsT) { + auto context = reinterpret_cast(contextPtr); + auto signature = reinterpret_cast(signaturePtr); + auto funcFlags = Es2pandaScriptFunctionFlags(funcFlagsT); + + return GetImpl()->CreateETSFunctionTypeIr(context, signature, funcFlags); +} +KOALA_INTEROP_3(CreateETSFunctionTypeIr, KNativePointer, KNativePointer, KNativePointer, KInt) + +KNativePointer impl_CreateNumberLiteral(KNativePointer contextPtr, KDouble value) { + auto context = reinterpret_cast(contextPtr); + + return GetImpl()->CreateNumberLiteral(context, value); +} +KOALA_INTEROP_2(CreateNumberLiteral, KNativePointer, KNativePointer, KDouble) + +KNativePointer impl_CreateStringLiteral(KNativePointer contextPtr, KStringPtr& stringPtr) { + auto context = reinterpret_cast(contextPtr); + return GetImpl()->CreateStringLiteral1(context, getStringCopy(stringPtr)); +} +KOALA_INTEROP_2(CreateStringLiteral, KNativePointer, KNativePointer, KStringPtr) + +KNativePointer impl_StringLiteralStrConst(KNativePointer contextPtr, KNativePointer nodePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + return new string(GetImpl()->StringLiteralStrConst(context, node)); +} +KOALA_INTEROP_2(StringLiteralStrConst, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_NumberLiteralStrConst(KNativePointer contextPtr, KNativePointer nodePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + return new string(GetImpl()->NumberLiteralStrConst(context, node)); +} +KOALA_INTEROP_2(NumberLiteralStrConst, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_CreateMethodDefinition( + KNativePointer contextPtr, + KInt kindT, + KNativePointer keyPtr, + KNativePointer valuePtr, + KInt modifiersT, + KBoolean isComputedT +) { + auto context = reinterpret_cast(contextPtr); + auto kind = static_cast(kindT); + auto key = reinterpret_cast(keyPtr); + auto value = reinterpret_cast(valuePtr); + auto modifiers = static_cast(modifiersT); + auto isComputed = static_cast(isComputedT); + + return GetImpl()->CreateMethodDefinition(context, kind, key, value, modifiers, isComputed); +} +KOALA_INTEROP_6(CreateMethodDefinition, KNativePointer, KNativePointer, KInt, KNativePointer, KNativePointer, KInt, KBoolean) + +KNativePointer impl_CreateClassProperty( + KNativePointer contextPtr, + KNativePointer keyPtr, + KNativePointer valuePtr, + KNativePointer typeAnnotationPtr, + KInt modifiersT, + KBoolean isComputedT +) { + auto context = reinterpret_cast(contextPtr); + auto key = reinterpret_cast(keyPtr); + auto value = reinterpret_cast(valuePtr); + auto typeAnnotation = reinterpret_cast(typeAnnotationPtr); + auto modifiers = static_cast(modifiersT); + auto isComputed = static_cast(isComputedT); + + return GetImpl()->CreateClassProperty(context, key, value, typeAnnotation, modifiers, isComputed); +} +KOALA_INTEROP_6(CreateClassProperty, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KInt, KBoolean) + +KNativePointer impl_AstNodeDumpJsonConst(KNativePointer contextPtr, KNativePointer nodePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + return new string(GetImpl()->AstNodeDumpJSONConst(context, node)); +} +KOALA_INTEROP_2(AstNodeDumpJsonConst, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_AstNodeDumpEtsSrcConst(KNativePointer contextPtr, KNativePointer nodePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + return new string(GetImpl()->AstNodeDumpEtsSrcConst(context, node)); +} +KOALA_INTEROP_2(AstNodeDumpEtsSrcConst, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_ETSParserCreateExpression(KNativePointer contextPtr, KStringPtr& sourceCodePtr, KInt flagsT) { + auto context = reinterpret_cast(contextPtr); + auto flags = static_cast(flagsT); + + return GetImpl()->ETSParserCreateExpression(context, getStringCopy(sourceCodePtr), flags); +} +KOALA_INTEROP_3(ETSParserCreateExpression, KNativePointer, KNativePointer, KStringPtr, KInt) + +KBoolean impl_IsProgram(KNativePointer contextPtr, KNativePointer nodePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + return GetImpl()->AstNodeIsProgramConst(context, node); +} +KOALA_INTEROP_2(IsProgram, KBoolean, KNativePointer, KNativePointer) + +KBoolean impl_IsBlockStatement(KNativePointer nodePtr) { + auto node = reinterpret_cast(nodePtr); + return GetImpl()->IsBlockStatement(node); +} +KOALA_INTEROP_1(IsBlockStatement, KBoolean, KNativePointer) + +KNativePointer impl_ProceedToState(KNativePointer contextPtr, KInt state) { + auto context = reinterpret_cast(contextPtr); + return GetImpl()->ProceedToState(context, intToState(state)); +} +KOALA_INTEROP_2(ProceedToState, KNativePointer, KNativePointer, KInt) + +KNativePointer impl_ContextProgram(KNativePointer contextPtr) { + auto context = reinterpret_cast(contextPtr); + return GetImpl()->ContextProgram(context); +} +KOALA_INTEROP_1(ContextProgram, KNativePointer, KNativePointer) + +KNativePointer impl_ProgramAst(KNativePointer programPtr) { + auto program = reinterpret_cast(programPtr); + return GetImpl()->ProgramAst(program); +} +KOALA_INTEROP_1(ProgramAst, KNativePointer, KNativePointer) + +KBoolean impl_IsIdentifier(KNativePointer nodePtr) { + auto node = reinterpret_cast(nodePtr); + return GetImpl()->IsIdentifier(node); +} +KOALA_INTEROP_1(IsIdentifier, KBoolean, KNativePointer) + +KNativePointer impl_IdentifierName(KNativePointer contextPtr, KNativePointer nodePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + return new string(GetImpl()->IdentifierName(context, node)); +} +KOALA_INTEROP_2(IdentifierName, KNativePointer, KNativePointer, KNativePointer) + +KNativePointer impl_CreateIdentifier1(KNativePointer contextPtr, KStringPtr& namePtr) { + auto context = reinterpret_cast(contextPtr); + return GetImpl()->CreateIdentifier1(context, getStringCopy(namePtr)); +} +KOALA_INTEROP_2(CreateIdentifier1, KNativePointer, KNativePointer, KStringPtr) + +KNativePointer impl_CreateContextFromString(KNativePointer configPtr, KStringPtr& sourcePtr, KStringPtr& filenamePtr) { + auto config = reinterpret_cast(configPtr); + return GetImpl()->CreateContextFromString(config, sourcePtr.data(), filenamePtr.data()); +} +KOALA_INTEROP_3(CreateContextFromString, KNativePointer, KNativePointer, KStringPtr, KStringPtr) + +KNativePointer impl_CreateContextFromFile(KNativePointer configPtr, KStringPtr& filenamePtr) { + auto config = reinterpret_cast(configPtr); + return GetImpl()->CreateContextFromFile(config, getStringCopy(filenamePtr)); +} +KOALA_INTEROP_2(CreateContextFromFile, KNativePointer, KNativePointer, KStringPtr) + +KInt impl_ContextState(KNativePointer contextPtr) { + auto context = reinterpret_cast(contextPtr); + + return static_cast(GetImpl()->ContextState(context)); +} +KOALA_INTEROP_1(ContextState, KInt, KNativePointer) + +KNativePointer impl_ContextErrorMessage(KNativePointer contextPtr) { + auto context = reinterpret_cast(contextPtr); + + return new string(GetImpl()->ContextErrorMessage(context)); +} +KOALA_INTEROP_1(ContextErrorMessage, KNativePointer, KNativePointer) diff --git a/arkoala-arkts/libarkts/native/src/common.cc b/arkoala-arkts/libarkts/native/src/common.cc index cd93cfc62785d19eb0fba680fe36d537622becd5..e34d2323cb00d357ebcaa3602b1be955c7d8dc16 100644 --- a/arkoala-arkts/libarkts/native/src/common.cc +++ b/arkoala-arkts/libarkts/native/src/common.cc @@ -254,6 +254,15 @@ KNativePointer impl_CallExpressionArguments(KNativePointer contextPtr, KNativePo } KOALA_INTEROP_3(CallExpressionArguments, KNativePointer, KNativePointer, KNativePointer, KNativePointer) +KNativePointer impl_AstNodeRecheck(KNativePointer contextPtr, KNativePointer nodePtr) { + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(nodePtr); + cout << "HERE" << endl; + GetImpl()->AstNodeRecheck(context, node); + return nullptr; +} +KOALA_INTEROP_2(AstNodeRecheck, KNativePointer, KNativePointer, KNativePointer) + /* TODO: NOT FROM API (shouldn't be there) ----------------------------------------------------------------------------------------------------------------------------- diff --git a/arkoala-arkts/libarkts/package.json b/arkoala-arkts/libarkts/package.json index f72484a52e74db64d00c9114b5586a26d6ec419e..ab63aa5293c16c420063c4b76a4b73751cb9d4f7 100644 --- a/arkoala-arkts/libarkts/package.json +++ b/arkoala-arkts/libarkts/package.json @@ -24,9 +24,7 @@ "run": "npm run compile && npm run compile:plugin && npm run run:js", "mocha": "TS_NODE_PROJECT=./test/tsconfig.json mocha -r tsconfig-paths/register --reporter-option maxDiffSize=0", "test": "npm run compile:native && npm run mocha", - - "run:abc": "../../incremental/tools/panda/node_modules/@panda/sdk/linux_host_tools/bin/ark --load-runtimes=ets --boot-panda-files=../../incremental/tools/panda/node_modules/@panda/sdk/ets/etsstdlib.abc ./generated/main.abc ETSGLOBAL::main", - + "run:abc": "../node_modules/@panda/sdk/linux_host_tools/bin/ark --load-runtimes=ets --boot-panda-files=../node_modules/@panda/sdk/ets/etsstdlib.abc ./main.abc main.ETSGLOBAL::main", "compile:playground": "cd playground && meson setup build && meson compile -C build", "run:playground": "npm run compile:playground && ./playground/build/playground.out" } diff --git a/arkoala-arkts/libarkts/playground/meson_options.txt b/arkoala-arkts/libarkts/playground/meson_options.txt index 438cc37a430cad357339a85c8f6d1d9fc64eaf34..c9aa3162ec39d584687d8236225ac86e3a2852b9 100644 --- a/arkoala-arkts/libarkts/playground/meson_options.txt +++ b/arkoala-arkts/libarkts/playground/meson_options.txt @@ -1,4 +1,4 @@ -option('panda_sdk_dir', type : 'string', value : '../../../incremental/tools/panda/node_modules/@panda/sdk/', +option('panda_sdk_dir', type : 'string', value : '../../../node_modules/@panda/sdk/', description : 'path to panda sdk') option('interop_src_dir', type : 'string', value : '../../../interop/src/cpp/', description : 'path to interop_src') diff --git a/arkoala-arkts/libarkts/playground/src/playground.cc b/arkoala-arkts/libarkts/playground/src/playground.cc index ae8f4f7ab4144a59e563a289703ae4aad6444e76..031d2cda71b31ee9baaa220892f6281a308c24d9 100644 --- a/arkoala-arkts/libarkts/playground/src/playground.cc +++ b/arkoala-arkts/libarkts/playground/src/playground.cc @@ -30,13 +30,11 @@ es2panda_Impl *GetImpl() { } static const char* source = -"" +"console.log('asjflajfla')" ; -void test(es2panda_Context* context) { -} - int main() { + impl = GetImpl(); const char* args[] = { // command with which the program is invoked (ignored) "", @@ -60,8 +58,6 @@ int main() { std::cout << "PROCEED TO PARSE SUCCESS" << std::endl; } - test(context); - GetImpl()->ProceedToState(context, ES2PANDA_STATE_BOUND); if(GetImpl()->ContextState(context) == ES2PANDA_STATE_ERROR) { @@ -82,6 +78,9 @@ int main() { std::cout << "PROCEED TO CHECKED SUCCESS" << std::endl; } + auto ast = GetImpl()->ProgramAst(GetImpl()->ContextProgram(context)); + GetImpl()->AstNodeRecheck(context, ast); + GetImpl()->ProceedToState(context, ES2PANDA_STATE_LOWERED); if(GetImpl()->ContextState(context) == ES2PANDA_STATE_ERROR) { diff --git a/arkoala-arkts/libarkts/src/Es2pandaNativeModule.ts b/arkoala-arkts/libarkts/src/Es2pandaNativeModule.ts index a2c2c756e0688512e399b88ec8d5274867a6dc39..b5bbea66908e5d910a12739ad9e094fd9ec7f339 100644 --- a/arkoala-arkts/libarkts/src/Es2pandaNativeModule.ts +++ b/arkoala-arkts/libarkts/src/Es2pandaNativeModule.ts @@ -27,6 +27,10 @@ import { export type KPtrArray = BigUint64Array export class Es2pandaNativeModule { + _AstNodeRecheck(context: KPtr, node: KPtr): void { + throw new Error("Not implemented") + } + _ContextState(context: KPtr): KInt { throw new Error("Not implemented") } diff --git a/arkoala-arkts/libarkts/src/arkts-api/factory/nodeFactory.ts b/arkoala-arkts/libarkts/src/arkts-api/factory/nodeFactory.ts index b8a9d2952d049fff1954dbccaa8764935ec89f91..d8d27c3f4d2145d5501d43b241f3a24e1e43b433 100644 --- a/arkoala-arkts/libarkts/src/arkts-api/factory/nodeFactory.ts +++ b/arkoala-arkts/libarkts/src/arkts-api/factory/nodeFactory.ts @@ -73,4 +73,142 @@ export const factory = { */ createArrowFunction: arkts.ArrowFunctionExpression.create, updateArrowFunction: compose(arkts.ArrowFunctionExpression.create), + + /** + * TODO: + */ + createScriptFunction: arkts.ScriptFunction.create, + updateScriptFunction: compose(arkts.ScriptFunction.create), + + /** + * TODO: + */ + createStringLiteral: arkts.StringLiteral.create, + updateStringLiteral: compose(arkts.StringLiteral.create), + + /** + * TODO: + */ + createNumericLiteral: arkts.NumberLiteral.create, + updateNumericLiteral: compose(arkts.NumberLiteral.create), + + /** + * TODO: + */ + createParameterDeclaration: arkts.ETSParameterExpression.create, + updateParameterDeclaration: compose(arkts.ETSParameterExpression.create), + + /** + * TODO: + */ + createTypeParameter: arkts.TSTypeParameter.create, + updateTypeParameter: compose(arkts.TSTypeParameter.create), + + /** + * TODO: + */ + createTypeParameterDeclaration: arkts.TSTypeParameterDeclaration.create, + updateTypeParameterDeclaration: compose(arkts.TSTypeParameterDeclaration.create), + + /** + * TODO: + */ + createPrimitiveType: arkts.ETSPrimitiveType.create, + updatePrimitiveType: compose(arkts.ETSPrimitiveType.create), + + /** + * TODO: + */ + createTypeReference: arkts.ETSTypeReference.create, + updateTypeReference: compose(arkts.ETSTypeReference.create), + + /** + * TODO: + */ + createImportDeclaration: arkts.EtsImportDeclaration.create, + updateImportDeclaration: compose(arkts.EtsImportDeclaration.create), + + /** + * TODO: + */ + createImportSpecifier: arkts.ImportSpecifier.create, + updateImportSpecifier: compose(arkts.ImportSpecifier.create), + + // /** + // * TODO: + // */ + // createImportSource: arkts.ImportSource.create, + // updateImportSource: compose(arkts.ImportSource.create), + + /** + * TODO: + */ + createVariableDeclaration: arkts.VariableDeclaration.create, + updateVariableDeclaration: compose(arkts.VariableDeclaration.create), + + /** + * TODO: + */ + createVariableDeclarator: arkts.VariableDeclarator.create, + updateVariableDeclarator: compose(arkts.VariableDeclarator.create), + + /** + * TODO: + */ + createUnionType: arkts.ETSUnionType.create, + updateUnionType: compose(arkts.ETSUnionType.create), + + /** + * TODO: + */ + createReturnStatement: arkts.ReturnStatement.create, + updateReturnStatement: compose(arkts.ReturnStatement.create), + + /** + * TODO: + */ + createIfStatement: arkts.IfStatement.create, + updateIfStatement: compose(arkts.IfStatement.create), + + /** + * TODO: + */ + createBinaryExpression: arkts.BinaryExpression.create, + updateBinaryExpression: compose(arkts.BinaryExpression.create), + + /** + * TODO: + */ + createClassDeclaration: arkts.ClassDeclaration.create, + updateClassDeclaration: compose(arkts.ClassDeclaration.create), + + /** + * TODO: + */ + createClassDefinition: arkts.ClassDefinition.create, + updateClassDefinition: compose(arkts.ClassDefinition.create), + + /** + * TODO: + */ + createFunctionType: arkts.ETSFunctionType.create, + updateFunctionType: compose(arkts.ETSFunctionType.create), + + /** + * TODO: + */ + createFunctionExpression: arkts.FunctionExpression.create, + updateFunctionExpression: compose(arkts.FunctionExpression.create), + + /** + * TODO: + */ + createMethodDefinition: arkts.MethodDefinition.create, + updateMethodDefinition: compose(arkts.MethodDefinition.create), + + /** + * TODO: + */ + createSuperExpression: arkts.SuperExpression.create, + updateSuperExpression: compose(arkts.SuperExpression.create), } diff --git a/arkoala-arkts/libarkts/src/arkts-api/static/enums.ts b/arkoala-arkts/libarkts/src/arkts-api/static/enums.ts index b457171d80dd8f4ddc71d4e4ad3cf59ca5844598..046a0471d8792a63d76049f5e0b8d00d95e896c4 100644 --- a/arkoala-arkts/libarkts/src/arkts-api/static/enums.ts +++ b/arkoala-arkts/libarkts/src/arkts-api/static/enums.ts @@ -54,12 +54,13 @@ export enum Es2pandaContextState { ES2PANDA_STATE_NEW = 0, ES2PANDA_STATE_PARSED = 1, ES2PANDA_STATE_SCOPE_INITED = 2, - ES2PANDA_STATE_CHECKED = 3, - ES2PANDA_STATE_LOWERED = 4, - ES2PANDA_STATE_ASM_GENERATED = 5, - ES2PANDA_STATE_BIN_GENERATED = 6, + ES2PANDA_STATE_BOUND = 3, + ES2PANDA_STATE_CHECKED = 4, + ES2PANDA_STATE_LOWERED = 5, + ES2PANDA_STATE_ASM_GENERATED = 6, + ES2PANDA_STATE_BIN_GENERATED = 7, - ES2PANDA_STATE_ERROR = 7, + ES2PANDA_STATE_ERROR = 8, }; diff --git a/arkoala-arkts/libarkts/src/arkts-api/types.ts b/arkoala-arkts/libarkts/src/arkts-api/types.ts index 9e5cbb47e2d87e3123202c677e74d80e2fdaf981..7b9a9a46836837e2d60ca478eeeb23dd2716506d 100644 --- a/arkoala-arkts/libarkts/src/arkts-api/types.ts +++ b/arkoala-arkts/libarkts/src/arkts-api/types.ts @@ -295,20 +295,16 @@ export class AssignmentExpression extends Node { } static create( - node: undefined | AssignmentExpression, left: Node, assignmentOperator: Es2pandaTokenType, right: Node ): AssignmentExpression { return new AssignmentExpression( - updatePeerByNode( - global.es2panda._CreateAssignmentExpression( - global.context, - passNode(left), - passNode(right), - assignmentOperator - ), - node + global.es2panda._CreateAssignmentExpression( + global.context, + passNode(left), + passNode(right), + assignmentOperator ) ) } @@ -358,20 +354,16 @@ export class BinaryExpression extends Node { } static create( - node: undefined | BinaryExpression, left: Node, operatorType: Es2pandaTokenType, right: Node ): BinaryExpression { return new BinaryExpression( - updatePeerByNode( - global.es2panda._CreateBinaryExpression( - global.context, - passNode(left), - passNode(right), - operatorType - ), - node + global.es2panda._CreateBinaryExpression( + global.context, + passNode(left), + passNode(right), + operatorType ) ) } @@ -385,16 +377,12 @@ export class ETSPrimitiveType extends Node { } static create( - node: undefined | ETSPrimitiveType, type: Es2pandaPrimitiveType, ): ETSPrimitiveType { return new ETSPrimitiveType( - updatePeerByNode( - global.es2panda._CreateETSPrimitiveType( - global.context, - type - ), - node + global.es2panda._CreateETSPrimitiveType( + global.context, + type ) ) } @@ -413,16 +401,12 @@ export class ETSTypeReference extends Node { } static create( - node: undefined | ETSTypeReference, typeName: Identifier, ): ETSTypeReference { return new ETSTypeReference( - updatePeerByNode( - global.es2panda._CreateETSTypeReference( - global.context, - ETSTypeReferencePart.create(undefined, typeName).peer - ), - node + global.es2panda._CreateETSTypeReference( + global.context, + ETSTypeReferencePart.create(typeName).peer ) ) } @@ -439,20 +423,16 @@ export class ETSTypeReferencePart extends Node { // TODO: support type params and prev static create( - node: undefined | ETSTypeReferencePart, typeName: Identifier, ) { // typeName.setReference(true) // TODO: support type params and prev return new ETSTypeReferencePart( - updatePeerByNode( - global.es2panda._CreateETSTypeReferencePart( - global.context, - typeName.peer, - nullptr, - nullptr - ), - node + global.es2panda._CreateETSTypeReferencePart( + global.context, + typeName.peer, + nullptr, + nullptr ) ) } @@ -494,17 +474,13 @@ export class ETSUnionType extends Node { } static create( - node: undefined | ETSUnionType, types: Node[], ): ETSUnionType { return new ETSUnionType( - updatePeerByNode( - global.es2panda._CreateETSUnionTypeIr( - global.context, - passNodeArray(types), - types.length - ), - node + global.es2panda._CreateETSUnionTypeIr( + global.context, + passNodeArray(types), + types.length ) ) } @@ -519,18 +495,14 @@ export class ETSFunctionType extends Node { } static create( - node: undefined | ETSFunctionType, signature: FunctionSignature, scriptFunctionFlags: Es2pandaScriptFunctionFlags ): ETSFunctionType { return new ETSFunctionType( - updatePeerByNode( - global.es2panda._CreateETSFunctionTypeIr( - global.context, - signature.peer, - scriptFunctionFlags - ), - node + global.es2panda._CreateETSFunctionTypeIr( + global.context, + signature.peer, + scriptFunctionFlags ) ) } @@ -586,13 +558,12 @@ export class StringLiteral extends Node { } static create( - node: undefined | StringLiteral, str: string, ): StringLiteral { return new StringLiteral( - updatePeerByNode( - global.es2panda._CreateStringLiteral(global.context, passString(str)), - node + global.es2panda._CreateStringLiteral( + global.context, + passString(str) ) ) } @@ -612,16 +583,14 @@ export class NumberLiteral extends Node { } static create( - node: undefined | NumberLiteral, value: number, ): NumberLiteral { - const tmp = new NumberLiteral( - updatePeerByNode( - global.es2panda._CreateNumberLiteral(global.context, value), - node + return new NumberLiteral( + global.es2panda._CreateNumberLiteral( + global.context, + value ) ) - return tmp } protected override dumpMessage(): string { @@ -680,7 +649,6 @@ export class ScriptFunction extends Node { } static create( - node: undefined | ScriptFunction, body: Node | undefined, signature: FunctionSignature, functionFlags: Es2pandaScriptFunctionFlags, @@ -688,15 +656,12 @@ export class ScriptFunction extends Node { declare: boolean, ident: Identifier | undefined ): ScriptFunction { - const peer = updatePeerByNode( - global.es2panda._CreateScriptFunction( - global.context, - passNode(body), - signature.peer, - functionFlags, - modifierFlags - ), - node + const peer = global.es2panda._CreateScriptFunction( + global.context, + passNode(body), + signature.peer, + functionFlags, + modifierFlags ) if (ident !== undefined) { global.es2panda._ScriptFunctionSetIdent(global.context, peer, ident.peer) @@ -818,16 +783,12 @@ export class FunctionExpression extends Node { } static create( - node: undefined | FunctionExpression, expression: ScriptFunction, ): FunctionExpression { return new FunctionExpression( - updatePeerByNode( - global.es2panda._CreateFunctionExpression( - global.context, - passNode(expression) - ), - node + global.es2panda._CreateFunctionExpression( + global.context, + passNode(expression) ) ) } @@ -864,18 +825,14 @@ export class ETSParameterExpression extends Node { } static create( - node: undefined | ETSParameterExpression, identifier: Identifier, initializer: Node | undefined ): ETSParameterExpression { return new ETSParameterExpression( - updatePeerByNode( - global.es2panda._CreateETSParameterExpression( - global.context, - passNode(identifier), - passNode(initializer) - ), - node + global.es2panda._CreateETSParameterExpression( + global.context, + passNode(identifier), + passNode(initializer) ) ) } @@ -890,19 +847,15 @@ export class TSTypeParameterDeclaration extends Node { // TODO: think about valid type of parameters static create( - node: undefined | TSTypeParameterDeclaration, parameters: Node[], ): TSTypeParameterDeclaration { return new TSTypeParameterDeclaration( - updatePeerByNode( - global.es2panda._CreateTSTypeParameterDeclaration( - global.context, - passNodeArray(parameters), - parameters.length, - // TODO: fix - parameters.length - ), - node + global.es2panda._CreateTSTypeParameterDeclaration( + global.context, + passNodeArray(parameters), + parameters.length, + // TODO: fix + parameters.length ) ) } @@ -918,7 +871,6 @@ export class TSTypeParameter extends Node { } static create( - node: undefined | TSTypeParameter, name: Identifier, constraint: Node | undefined, defaultType: Node | undefined, @@ -933,7 +885,7 @@ export class TSTypeParameter extends Node { global.es2panda._AstNodeClearModifier(global.context, peer, allFlags) global.es2panda._AstNodeAddModifier(global.context, peer, modifierFlags) return new TSTypeParameter( - updatePeerByNode(peer, node) + peer ) } @@ -950,16 +902,12 @@ export class ReturnStatement extends Node { } static create( - node: undefined | ReturnStatement, argument: Node, ): ReturnStatement { return new ReturnStatement( - updatePeerByNode( - global.es2panda._CreateReturnStatement1( - global.context, - passNode(argument) - ), - node + global.es2panda._CreateReturnStatement1( + global.context, + passNode(argument) ) ) } @@ -974,20 +922,16 @@ export class IfStatement extends Node { } static create( - node: undefined | IfStatement, test: Node, consequent: Node, alternate?: Node ): IfStatement { return new IfStatement( - updatePeerByNode( - global.es2panda._CreateIfStatement( - global.context, - passNode(test), - passNode(consequent), - passNode(alternate) - ), - node + global.es2panda._CreateIfStatement( + global.context, + passNode(test), + passNode(consequent), + passNode(alternate) ) ) } @@ -1001,16 +945,12 @@ export class ClassDeclaration extends Node { } static create( - node: undefined | ClassDeclaration, definition: ClassDefinition, ): ClassDeclaration { return new ClassDeclaration( - updatePeerByNode( - global.es2panda._CreateClassDeclaration( - global.context, - passNode(definition) - ), - node + global.es2panda._CreateClassDeclaration( + global.context, + passNode(definition) ) ) } @@ -1028,7 +968,6 @@ export class ClassDefinition extends Node { } static create( - node: undefined | ClassDefinition, name: Identifier | undefined, members: Node[], modifiers: KInt, @@ -1047,7 +986,7 @@ export class ClassDefinition extends Node { global.es2panda._ClassDefinitionSetTypeParams(global.context, peer, passNode(typeParamsDecl)) global.es2panda._ClassDefinitionSetSuper(global.context, peer, passNode(superClass)) return new ClassDefinition( - updatePeerByNode(peer, node) + peer ) } @@ -1084,7 +1023,6 @@ export class MethodDefinition extends Node { } static create( - node: undefined | MethodDefinition, kind: Es2pandaMethodDefinitionKind, key: Node, value: Node, @@ -1092,16 +1030,13 @@ export class MethodDefinition extends Node { isComputed: boolean ): MethodDefinition { return new MethodDefinition( - updatePeerByNode( - global.es2panda._CreateMethodDefinition( - global.context, - kind, - passNode(key), - passNode(value), - modifiers, - isComputed - ), - node + global.es2panda._CreateMethodDefinition( + global.context, + kind, + passNode(key), + passNode(value), + modifiers, + isComputed ) ) } @@ -1117,7 +1052,6 @@ export class ClassProperty extends Node { } static create( - node: undefined | ClassProperty, key: Node, value: Node, typeAnnotation: Node, @@ -1125,16 +1059,13 @@ export class ClassProperty extends Node { isComputed: boolean ): ClassProperty { return new ClassProperty( - updatePeerByNode( - global.es2panda._CreateClassProperty( - global.context, - passNode(key), - passNode(value), - passNode(typeAnnotation), - modifiers, - isComputed - ), - node + global.es2panda._CreateClassProperty( + global.context, + passNode(key), + passNode(value), + passNode(typeAnnotation), + modifiers, + isComputed ) ) } @@ -1149,19 +1080,15 @@ export class VariableDeclaration extends Node { } static create( - node: undefined | VariableDeclaration, modifiers: KInt, kind: Es2pandaVariableDeclarationKind, declarators: readonly VariableDeclarator[] ): VariableDeclaration { - const peer = updatePeerByNode( - global.es2panda._CreateVariableDeclaration( - global.context, - kind, - passNodeArray(declarators), - declarators.length - ), - node + const peer = global.es2panda._CreateVariableDeclaration( + global.context, + kind, + passNodeArray(declarators), + declarators.length ) global.es2panda._AstNodeClearModifier(global.context, peer, allFlags) global.es2panda._AstNodeAddModifier(global.context, peer, modifiers) @@ -1180,18 +1107,14 @@ export class VariableDeclarator extends Node { } static create( - node: undefined | VariableDeclarator, flag: Es2pandaVariableDeclaratorFlag, name: Identifier, initializer: Node | undefined ): VariableDeclarator { - const peer = updatePeerByNode( - global.es2panda._CreateVariableDeclarator( - global.context, - flag, - passNode(name) - ), - node + const peer = global.es2panda._CreateVariableDeclarator( + global.context, + flag, + passNode(name) ) if (initializer !== undefined) { global.es2panda._VariableDeclaratorSetInit(global.context, peer, initializer.peer) @@ -1216,14 +1139,10 @@ export class SuperExpression extends Node { } static create( - node: undefined | SuperExpression, ): SuperExpression { return new SuperExpression( - updatePeerByNode( - global.es2panda._CreateSuperExpression( - global.context, - ), - node + global.es2panda._CreateSuperExpression( + global.context, ) ) } @@ -1259,25 +1178,21 @@ export class EtsImportDeclaration extends Node { } static create( - node: undefined | EtsImportDeclaration, source: StringLiteral, specifiers: readonly ImportSpecifier[], importKind: Es2pandaImportKinds, hasDecl: boolean, ): EtsImportDeclaration { return new EtsImportDeclaration( - updatePeerByNode( - global.es2panda._CreateETSImportDeclaration( - global.context, - ImportSource.create( - source, - hasDecl, - ).peer, - passNodeArray(specifiers), - specifiers.length, - importKind - ), - node + global.es2panda._CreateETSImportDeclaration( + global.context, + ImportSource.create( + source, + hasDecl, + ).peer, + passNodeArray(specifiers), + specifiers.length, + importKind ) ) } @@ -1294,18 +1209,14 @@ export class ImportSpecifier extends Node { } static create( - node: undefined | ImportSpecifier, imported: Identifier, local: Identifier, ): ImportSpecifier { return new ImportSpecifier( - updatePeerByNode( - global.es2panda._CreateImportSpecifier( - global.context, - passNode(imported), - passNode(local), - ), - node + global.es2panda._CreateImportSpecifier( + global.context, + passNode(imported), + passNode(local), ) ) } diff --git a/arkoala-arkts/libarkts/src/arkts-api/utilities/private.ts b/arkoala-arkts/libarkts/src/arkts-api/utilities/private.ts index a1fcf9593d3a4b617666c8253ef84d91ea3d3066..8cbd301fc7285377ceaa64f39664e52e32c27d8c 100644 --- a/arkoala-arkts/libarkts/src/arkts-api/utilities/private.ts +++ b/arkoala-arkts/libarkts/src/arkts-api/utilities/private.ts @@ -183,8 +183,7 @@ export function updateNodeByNode(node: T, original: arkts. } export function resolveSource(source: arkts.StringLiteral): arkts.StringLiteral { - return arkts.StringLiteral.create( - undefined, + return arkts.factory.createStringLiteral( path.resolve(source.str).toString() ) } diff --git a/arkoala-arkts/libarkts/src/es2panda.ts b/arkoala-arkts/libarkts/src/es2panda.ts index 56e1d72d5fb3467a0a06bdd55c7fb4ea24922dc7..5f7b811397860e3e457f2c9a7bc3c3550b3da1bd 100644 --- a/arkoala-arkts/libarkts/src/es2panda.ts +++ b/arkoala-arkts/libarkts/src/es2panda.ts @@ -34,9 +34,20 @@ function invokePlugins(configPath: string, filePath: string, transform: (ast: ar ]) global.context = arkts.createContextFromString(global.config, source, filePath) arkts.proceedToState(arkts.Es2pandaContextState.ES2PANDA_STATE_PARSED) - transform(arkts.unpackNode(arkts.getAstFromContext()) ?? throwError(`Failed to receive ast from es2panda`)) + // arkts.proceedToState(arkts.Es2pandaContextState.ES2PANDA_STATE_CHECKED) + const script = arkts.unpackNode(arkts.getAstFromContext()) + if (script === undefined) { + throwError(`Failed to receive ast from es2panda`) + } + console.log("BEFORE:") + console.log(script.dumpSrc()) + transform(script) + console.log("AFTER:") + console.log(script.dumpSrc()) + + // global.es2panda._AstNodeRecheck(global.context, script.originalPeer) - // arkts.proceedToState(arkts.Es2pandaContextState.ES2PANDA_STATE_BIN_GENERATED) + arkts.proceedToState(arkts.Es2pandaContextState.ES2PANDA_STATE_BIN_GENERATED) } function loadPlugins(configPath: string): ((ast: arkts.Node) => arkts.Node)[] { diff --git a/arkoala-arkts/libarkts/src/ts-api/factory/nodeFactory.ts b/arkoala-arkts/libarkts/src/ts-api/factory/nodeFactory.ts index 48f79d6881c980c441cf3530df873236745bbd0a..6db7cd73819666d05fdc6f0d105c5254d281c06c 100644 --- a/arkoala-arkts/libarkts/src/ts-api/factory/nodeFactory.ts +++ b/arkoala-arkts/libarkts/src/ts-api/factory/nodeFactory.ts @@ -187,8 +187,7 @@ export function createNodeFactory() { str: string ): StringLiteral { return new StringLiteral( - arkts.StringLiteral.create( - undefined, + arkts.factory.createStringLiteral( str ) ) @@ -203,8 +202,7 @@ export function createNodeFactory() { value: number ): NumericLiteral { return new NumericLiteral( - arkts.NumberLiteral.create( - undefined, + arkts.factory.createNumericLiteral( value ) ) @@ -220,8 +218,7 @@ export function createNodeFactory() { flags: NodeFlags = NodeFlags.None ): VariableDeclarationList { return new VariableDeclarationList( - arkts.VariableDeclaration.create( - undefined, + arkts.factory.createVariableDeclaration( passModifiers([]), passVariableDeclarationKind(flags), passNodeArray(declarations) @@ -239,7 +236,7 @@ export function createNodeFactory() { declarations: readonly VariableDeclaration[] ): VariableDeclarationList { return new VariableDeclarationList( - arkts.VariableDeclaration.create( + arkts.factory.updateVariableDeclaration( node.node, passModifiers([]), passVariableDeclarationKind(node.flags), @@ -259,8 +256,7 @@ export function createNodeFactory() { ): VariableStatement { const node: arkts.VariableDeclaration = (declarationList instanceof VariableDeclarationList) ? declarationList.node : createVariableDeclarationList(declarationList, undefined).node return new VariableStatement( - arkts.VariableDeclaration.create( - undefined, + arkts.factory.createVariableDeclaration( passModifiers(modifiers), node.declarationKind, node.declarators @@ -280,7 +276,7 @@ export function createNodeFactory() { declarationList: VariableDeclarationList ): VariableStatement { return new VariableStatement( - arkts.VariableDeclaration.create( + arkts.factory.updateVariableDeclaration( node.node, passModifiers(modifiers), declarationList.node.declarationKind, @@ -303,8 +299,7 @@ export function createNodeFactory() { initializer: Expression | undefined ): VariableDeclaration { return new VariableDeclaration( - arkts.VariableDeclarator.create( - undefined, + arkts.factory.createVariableDeclarator( // TODO: maybe incorrect Es2pandaVariableDeclaratorFlag.UNKNOWN, passIdentifier(name, type), @@ -329,7 +324,7 @@ export function createNodeFactory() { initializer: Expression | undefined ): VariableDeclaration { return new VariableDeclaration( - arkts.VariableDeclarator.create( + arkts.factory.updateVariableDeclarator( node.node, // TODO: maybe incorrect Es2pandaVariableDeclaratorFlag.UNKNOWN, @@ -360,8 +355,7 @@ export function createNodeFactory() { ): FunctionDeclaration { return new FunctionDeclaration( arkts.factory.createFunctionDeclaration( - arkts.ScriptFunction.create( - undefined, + arkts.factory.createScriptFunction( body?.node, arkts.FunctionSignature.create( passTypeParams(typeParameters), @@ -402,7 +396,7 @@ export function createNodeFactory() { return new FunctionDeclaration( arkts.factory.updateFunctionDeclaration( node.node, - arkts.ScriptFunction.create( + arkts.factory.updateScriptFunction( node.node.scriptFunction, body?.node, arkts.FunctionSignature.create( @@ -438,8 +432,7 @@ export function createNodeFactory() { initializer?: Expression ): ParameterDeclaration { return new ParameterDeclaration( - arkts.ETSParameterExpression.create( - undefined, + arkts.factory.createParameterDeclaration( arkts.factory.createIdentifier( (name instanceof Identifier) ? name.node.name : name, type?.node @@ -469,7 +462,7 @@ export function createNodeFactory() { initializer?: Expression ): ParameterDeclaration { return new ParameterDeclaration( - arkts.ETSParameterExpression.create( + arkts.factory.updateParameterDeclaration( node.node, arkts.factory.createIdentifier( (name instanceof Identifier) ? name.node.name : name, @@ -494,8 +487,7 @@ export function createNodeFactory() { defaultType?: TypeNode ): TypeParameterDeclaration { return new TypeParameterDeclaration( - arkts.TSTypeParameter.create( - undefined, + arkts.factory.createTypeParameter( passIdentifier(name), constraint?.node, defaultType?.node, @@ -520,7 +512,7 @@ export function createNodeFactory() { defaultType?: TypeNode ): TypeParameterDeclaration { return new TypeParameterDeclaration( - arkts.TSTypeParameter.create( + arkts.factory.updateTypeParameter( node.node, passIdentifier(name), constraint?.node, @@ -538,8 +530,7 @@ export function createNodeFactory() { types: readonly TypeNode[] ): UnionTypeNode { return new UnionTypeNode( - arkts.ETSUnionType.create( - undefined, + arkts.factory.createUnionType( passNodeArray(types) ) ) @@ -555,7 +546,7 @@ export function createNodeFactory() { types: readonly TypeNode[] ): UnionTypeNode { return new UnionTypeNode( - arkts.ETSUnionType.create( + arkts.factory.updateUnionType( node.node, passNodeArray(types) ) @@ -573,8 +564,7 @@ export function createNodeFactory() { typeArguments?: undefined ): TypeReferenceNode { return new TypeReferenceNode( - arkts.ETSTypeReference.create( - undefined, + arkts.factory.createTypeReference( typeName.node ) ) @@ -592,7 +582,7 @@ export function createNodeFactory() { typeArguments?: undefined ): TypeReferenceNode { return new TypeReferenceNode( - arkts.ETSTypeReference.create( + arkts.factory.updateTypeReference( node.node, typeName.node ) @@ -610,8 +600,7 @@ export function createNodeFactory() { keyword: string ): KeywordTypeNode { return new KeywordTypeNode( - arkts.ETSTypeReference.create( - undefined, + arkts.factory.createTypeReference( arkts.factory.createIdentifier( keyword ) @@ -623,8 +612,7 @@ export function createNodeFactory() { kind: number ): KeywordTypeNode { return new KeywordTypeNode( - arkts.ETSPrimitiveType.create( - undefined, + arkts.factory.createPrimitiveType( kind ) ) @@ -711,8 +699,7 @@ export function createNodeFactory() { expression: Expression ): ReturnStatement { return new ReturnStatement( - arkts.ReturnStatement.create( - undefined, + arkts.factory.createReturnStatement( expression.node ) ) @@ -728,7 +715,7 @@ export function createNodeFactory() { expression: Expression ): ReturnStatement { return new ReturnStatement( - arkts.ReturnStatement.create( + arkts.factory.updateReturnStatement( node.node, expression.node ) @@ -793,7 +780,7 @@ export function createNodeFactory() { arkts.factory.createCallExpression( expression.node, (typeArguments !== undefined) ? - arkts.TSTypeParameterDeclaration.create(undefined, passNodeArray(typeArguments)) : undefined, + arkts.factory.createTypeParameterDeclaration(passNodeArray(typeArguments)) : undefined, passNodeArray(argumentsArray) ) ) @@ -817,7 +804,7 @@ export function createNodeFactory() { node.node, expression.node, (typeArguments !== undefined) ? - arkts.TSTypeParameterDeclaration.create(undefined, passNodeArray(typeArguments)) : undefined, + arkts.factory.createTypeParameterDeclaration(passNodeArray(typeArguments)) : undefined, passNodeArray(argumentsArray) ) ) @@ -835,8 +822,7 @@ export function createNodeFactory() { elseStatement?: undefined ): IfStatement { return new IfStatement( - arkts.IfStatement.create( - undefined, + arkts.factory.createIfStatement( passNode(expression), passNode(thenStatement), passNode(elseStatement), @@ -857,7 +843,7 @@ export function createNodeFactory() { elseStatement?: undefined ): IfStatement { return new IfStatement( - arkts.IfStatement.create( + arkts.factory.updateIfStatement( node.node, passNode(expression), passNode(thenStatement), @@ -889,8 +875,7 @@ export function createNodeFactory() { right: Expression ): BinaryExpression { return new BinaryExpression( - arkts.BinaryExpression.create( - undefined, + arkts.factory.createBinaryExpression( passNode(left), passToken(operator), passNode(right), @@ -912,7 +897,7 @@ export function createNodeFactory() { right: Expression ): BinaryExpression { return new BinaryExpression( - arkts.BinaryExpression.create( + arkts.factory.updateBinaryExpression( node.node, passNode(left), passToken(operator), @@ -940,8 +925,7 @@ export function createNodeFactory() { ) { return new ArrowFunction( arkts.factory.createArrowFunction( - arkts.ScriptFunction.create( - undefined, + arkts.factory.createScriptFunction( passNode(body), arkts.FunctionSignature.create( passTypeParams(typeParameters), @@ -979,7 +963,7 @@ export function createNodeFactory() { return new ArrowFunction( arkts.factory.updateArrowFunction( node.node, - arkts.ScriptFunction.create( + arkts.factory.updateScriptFunction( node.node.scriptFunction, passNode(body), arkts.FunctionSignature.create( @@ -1012,10 +996,8 @@ export function createNodeFactory() { members: readonly ClassElement[] ): ClassDeclaration { return new ClassDeclaration( - arkts.ClassDeclaration.create( - undefined, - arkts.ClassDefinition.create( - undefined, + arkts.factory.createClassDeclaration( + arkts.factory.createClassDefinition( passIdentifier(name), passNodeArray(members), // passModifiers(modifiers) | es2panda_ModifierFlags.MODIFIER_FLAGS_PUBLIC | es2panda_ModifierFlags.MODIFIER_FLAGS_STATIC, @@ -1047,9 +1029,9 @@ export function createNodeFactory() { members: readonly ClassElement[] ): ClassDeclaration { return new ClassDeclaration( - arkts.ClassDeclaration.create( + arkts.factory.updateClassDeclaration( node.node, - arkts.ClassDefinition.create( + arkts.factory.updateClassDefinition( node.node.definition, passIdentifier(name), passNodeArray(members), @@ -1075,8 +1057,7 @@ export function createNodeFactory() { type: TypeNode ): FunctionTypeNode { return new FunctionTypeNode( - arkts.ETSFunctionType.create( - undefined, + arkts.factory.createFunctionType( arkts.FunctionSignature.create( passTypeParams(typeParameters), passNodeArray(parameters), @@ -1101,7 +1082,7 @@ export function createNodeFactory() { type: TypeNode ): FunctionTypeNode { return new FunctionTypeNode( - arkts.ETSFunctionType.create( + arkts.factory.updateFunctionType( node.node, arkts.FunctionSignature.create( passTypeParams(typeParameters), @@ -1137,14 +1118,11 @@ export function createNodeFactory() { ): MethodDeclaration { const _name = passIdentifier(name) return new MethodDeclaration( - arkts.MethodDefinition.create( - undefined, + arkts.factory.createMethodDefinition( Es2pandaMethodDefinitionKind.METHOD_DEFINITION_KIND_METHOD, _name, - arkts.FunctionExpression.create( - undefined, - arkts.ScriptFunction.create( - undefined, + arkts.factory.createFunctionExpression( + arkts.factory.createScriptFunction( passNode(body), arkts.FunctionSignature.create( passTypeParams(typeParameters), @@ -1188,14 +1166,13 @@ export function createNodeFactory() { ): MethodDeclaration { const _name = passIdentifier(name) return new MethodDeclaration( - arkts.MethodDefinition.create( + arkts.factory.updateMethodDefinition( node.node, Es2pandaMethodDefinitionKind.METHOD_DEFINITION_KIND_METHOD, _name, - arkts.FunctionExpression.create( + arkts.factory.createFunctionExpression( // TODO: maybe fix - undefined, - arkts.ScriptFunction.create( + arkts.factory.updateScriptFunction( node.node.scriptFunction, passNode(body), arkts.FunctionSignature.create( @@ -1230,14 +1207,11 @@ export function createNodeFactory() { "constructor" ) return new ConstructorDeclaration( - arkts.MethodDefinition.create( - undefined, + arkts.factory.createMethodDefinition( Es2pandaMethodDefinitionKind.METHOD_DEFINITION_KIND_CONSTRUCTOR, _name, - arkts.FunctionExpression.create( - undefined, - arkts.ScriptFunction.create( - undefined, + arkts.factory.createFunctionExpression( + arkts.factory.createScriptFunction( passNode(body), arkts.FunctionSignature.create( undefined, @@ -1275,14 +1249,13 @@ export function createNodeFactory() { "constructor" ) return new ConstructorDeclaration( - arkts.MethodDefinition.create( + arkts.factory.updateMethodDefinition( node.node, Es2pandaMethodDefinitionKind.METHOD_DEFINITION_KIND_CONSTRUCTOR, _name, - arkts.FunctionExpression.create( + arkts.factory.createFunctionExpression( // TODO: maybe fix - undefined, - arkts.ScriptFunction.create( + arkts.factory.updateScriptFunction( node.node.scriptFunction, passNode(body), arkts.FunctionSignature.create( @@ -1310,9 +1283,7 @@ export function createNodeFactory() { function createSuper( ): SuperExpression { return new SuperExpression( - arkts.SuperExpression.create( - undefined, - ) + arkts.factory.createSuperExpression() ) } @@ -1324,7 +1295,7 @@ export function createNodeFactory() { node: SuperExpression ): SuperExpression { return new SuperExpression( - arkts.SuperExpression.create( + arkts.factory.updateSuperExpression( node.node, ) ) diff --git a/arkoala-arkts/libarkts/src/ts-api/utilities/private.ts b/arkoala-arkts/libarkts/src/ts-api/utilities/private.ts index cb842698e10a49dcf5940c0b4b491a28c9826a5d..3ce6db91ad0bbcee044d6a2c13fb26102bd9ed49 100644 --- a/arkoala-arkts/libarkts/src/ts-api/utilities/private.ts +++ b/arkoala-arkts/libarkts/src/ts-api/utilities/private.ts @@ -154,8 +154,7 @@ export function passTypeParams(params: readonly ts.TypeParameterDeclaration[] | if (params === undefined) { return undefined } - return arkts.TSTypeParameterDeclaration.create( - undefined, + return arkts.factory.createTypeParameterDeclaration( passNodeArray(params) ) } diff --git a/arkoala-arkts/libarkts/test/arkts-api/expressions/call-expression.test.ts b/arkoala-arkts/libarkts/test/arkts-api/expressions/call-expression.test.ts index bdecfc5c954e660185ee2fcba68fcc095c6d8af1..39f1e9a400d6621b704fab9bd0727bb0a01cddc2 100644 --- a/arkoala-arkts/libarkts/test/arkts-api/expressions/call-expression.test.ts +++ b/arkoala-arkts/libarkts/test/arkts-api/expressions/call-expression.test.ts @@ -1,6 +1,5 @@ import * as util from "../../test-util" import * as arkts from "../../../src/arkts-api" -import { factory } from "../../../src/arkts-api/factory/nodeFactory" suite(util.basename(__filename), () => { test("sample-1", function() { @@ -21,10 +20,10 @@ suite(util.basename(__filename), () => { script, [ script.statements[0], - factory.createExpressionStatement( - factory.createCallExpression( - factory.createMemberExpression( - factory.createIdentifier( + arkts.factory.createExpressionStatement( + arkts.factory.createCallExpression( + arkts.factory.createMemberExpression( + arkts.factory.createIdentifier( 'console' ), arkts.Identifier.create( @@ -36,7 +35,7 @@ suite(util.basename(__filename), () => { ), undefined, [ - arkts.StringLiteral.create(undefined, + arkts.factory.createStringLiteral( 'out' ) ] diff --git a/arkoala-arkts/libarkts/test/arkts-api/functions/create.test.ts b/arkoala-arkts/libarkts/test/arkts-api/functions/create.test.ts index 7de4b23af51ebfa7fec8012c0bfd59a111d1e65b..37dae58cb99f54914c1c3c479d3e61ff992e3411 100644 --- a/arkoala-arkts/libarkts/test/arkts-api/functions/create.test.ts +++ b/arkoala-arkts/libarkts/test/arkts-api/functions/create.test.ts @@ -24,7 +24,7 @@ suite(util.basename(__filename), () => { [ script.statements[0], arkts.factory.createFunctionDeclaration( - arkts.ScriptFunction.create(undefined, + arkts.factory.createScriptFunction( arkts.factory.createBlock( [ arkts.factory.createExpressionStatement( @@ -42,7 +42,7 @@ suite(util.basename(__filename), () => { ), undefined, [ - arkts.StringLiteral.create(undefined, + arkts.factory.createStringLiteral( 'AAA' ) ] @@ -50,7 +50,8 @@ suite(util.basename(__filename), () => { ) ] ), - arkts.FunctionSignature.create(undefined, + arkts.FunctionSignature.create( + undefined, [], undefined ), @@ -104,7 +105,7 @@ suite(util.basename(__filename), () => { [ script.statements[0], arkts.factory.createFunctionDeclaration( - arkts.ScriptFunction.create(undefined, + arkts.factory.createScriptFunction( arkts.factory.createBlock( [ arkts.factory.createExpressionStatement( @@ -151,27 +152,28 @@ suite(util.basename(__filename), () => { ) ] ), - arkts.FunctionSignature.create(undefined, + arkts.FunctionSignature.create( + undefined, [ - arkts.ETSParameterExpression.create(undefined, + arkts.factory.createParameterDeclaration( arkts.factory.createIdentifier( 'x', - arkts.ETSPrimitiveType.create(undefined, + arkts.factory.createPrimitiveType( arkts.Es2pandaPrimitiveType.PRIMITIVE_TYPE_INT ) ), undefined ), - arkts.ETSParameterExpression.create(undefined, + arkts.factory.createParameterDeclaration( arkts.factory.createIdentifier( 'y', - arkts.ETSTypeReference.create(undefined, + arkts.factory.createTypeReference( arkts.factory.createIdentifier( 'string' ) ) ), - arkts.StringLiteral.create(undefined, + arkts.factory.createStringLiteral( 'bbb' ) ) @@ -194,7 +196,7 @@ suite(util.basename(__filename), () => { ), undefined, [ - arkts.NumberLiteral.create(undefined, + arkts.factory.createNumericLiteral( 0 ) ] diff --git a/arkoala-arkts/libarkts/test/arkts-api/import-export/import.test.ts b/arkoala-arkts/libarkts/test/arkts-api/import-export/import.test.ts index eb86699e58b4c2674244ccb6094b8eab87909f03..7725c17a0a2b8e05bd1106da51a7147afb44f604 100644 --- a/arkoala-arkts/libarkts/test/arkts-api/import-export/import.test.ts +++ b/arkoala-arkts/libarkts/test/arkts-api/import-export/import.test.ts @@ -13,15 +13,12 @@ suite(util.basename(__filename), () => { script = arkts.EtsScript.update( script, [ - arkts.EtsImportDeclaration.create( - undefined, - arkts.StringLiteral.create( - undefined, + arkts.factory.createImportDeclaration( + arkts.factory.createStringLiteral( './variable' ), [ - arkts.ImportSpecifier.create( - undefined, + arkts.factory.createImportSpecifier( arkts.factory.createIdentifier( 'X' ), @@ -57,12 +54,11 @@ suite(util.basename(__filename), () => { script = arkts.EtsScript.update( script, [ - arkts.EtsImportDeclaration.create( + arkts.factory.updateImportDeclaration( importDeclaration, importDeclaration.importSource, [ - arkts.ImportSpecifier.create( - undefined, + arkts.factory.createImportSpecifier( arkts.factory.createIdentifier( 'X' ), @@ -102,12 +98,11 @@ suite(util.basename(__filename), () => { script = arkts.EtsScript.update( script, [ - arkts.EtsImportDeclaration.create( + arkts.factory.updateImportDeclaration( importDeclaration, importDeclaration.importSource, [ - arkts.ImportSpecifier.create( - undefined, + arkts.factory.createImportSpecifier( arkts.factory.createIdentifier( 'X' ), @@ -158,7 +153,7 @@ suite(util.basename(__filename), () => { script.statements[0], arkts.factory.updateFunctionDeclaration( functionDeclaration, - arkts.ScriptFunction.create( + arkts.factory.updateScriptFunction( scriptFunction, arkts.factory.createBlock( [ diff --git a/arkoala-arkts/libarkts/test/ts-api/variables/create-variable.test.ts b/arkoala-arkts/libarkts/test/ts-api/variables/create-variable.test.ts index 08a7baeff3c62887c003e749380176a41f37c741..33a83fe9b72c32540b101747812d11f8e8e00aae 100644 --- a/arkoala-arkts/libarkts/test/ts-api/variables/create-variable.test.ts +++ b/arkoala-arkts/libarkts/test/ts-api/variables/create-variable.test.ts @@ -115,7 +115,7 @@ suite(util.basename(__filename), () => { ) }) - test("let-vars", function() { + test.skip("let-vars", function() { const sample_in = ` const x = 0