arkanalyzer 1.0.85 → 1.0.87
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +69 -65
- package/README.md +56 -70
- package/config/arkanalyzer.json +7 -2
- package/docs/cppFrontend/ArkAnalyzer-cpp_usage_guide.md +245 -0
- package/docs/cppFrontend/cpp_frontend_build_guide.md +126 -0
- package/docs/cppFrontend/cpp_frontend_user_guide.md +175 -0
- package/docs/cppFrontend/img.png +0 -0
- package/docs/cppFrontend/img_1.png +0 -0
- package/docs/cppFrontend/img_10.png +0 -0
- package/docs/cppFrontend/img_11.png +0 -0
- package/docs/cppFrontend/img_12.png +0 -0
- package/docs/cppFrontend/img_13.png +0 -0
- package/docs/cppFrontend/img_14.png +0 -0
- package/docs/cppFrontend/img_15.png +0 -0
- package/docs/cppFrontend/img_16.png +0 -0
- package/docs/cppFrontend/img_17.png +0 -0
- package/docs/cppFrontend/img_18.png +0 -0
- package/docs/cppFrontend/img_19.png +0 -0
- package/docs/cppFrontend/img_2.png +0 -0
- package/docs/cppFrontend/img_20.png +0 -0
- package/docs/cppFrontend/img_21.png +0 -0
- package/docs/cppFrontend/img_22.png +0 -0
- package/docs/cppFrontend/img_23.png +0 -0
- package/docs/cppFrontend/img_3.png +0 -0
- package/docs/cppFrontend/img_4.png +0 -0
- package/docs/cppFrontend/img_5.png +0 -0
- package/docs/cppFrontend/img_6.png +0 -0
- package/docs/cppFrontend/img_7.png +0 -0
- package/docs/cppFrontend/img_8.png +0 -0
- package/docs/cppFrontend/img_9.png +0 -0
- package/docs/sig_programanalysis.en.md +66 -0
- package/docs/sig_programanalysis.md +73 -0
- package/lib/Config.d.ts +32 -1
- package/lib/Config.d.ts.map +1 -1
- package/lib/Config.js +76 -2
- package/lib/Scene.d.ts +25 -2
- package/lib/Scene.d.ts.map +1 -1
- package/lib/Scene.js +148 -40
- package/lib/callgraph/algorithm/AbstractAnalysis.d.ts +4 -3
- package/lib/callgraph/algorithm/AbstractAnalysis.d.ts.map +1 -1
- package/lib/callgraph/algorithm/AbstractAnalysis.js +17 -17
- package/lib/callgraph/algorithm/RapidTypeAnalysis.d.ts +6 -1
- package/lib/callgraph/algorithm/RapidTypeAnalysis.d.ts.map +1 -1
- package/lib/callgraph/algorithm/RapidTypeAnalysis.js +117 -14
- package/lib/callgraph/common/Statistics.d.ts +4 -2
- package/lib/callgraph/common/Statistics.d.ts.map +1 -1
- package/lib/callgraph/common/Statistics.js +14 -2
- package/lib/callgraph/model/CallGraph.d.ts +12 -8
- package/lib/callgraph/model/CallGraph.d.ts.map +1 -1
- package/lib/callgraph/model/CallGraph.js +53 -29
- package/lib/callgraph/model/builder/CallGraphBuilder.d.ts +1 -0
- package/lib/callgraph/model/builder/CallGraphBuilder.d.ts.map +1 -1
- package/lib/callgraph/model/builder/CallGraphBuilder.js +5 -1
- package/lib/callgraph/pointerAnalysis/Pag.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/Pag.js +3 -0
- package/lib/callgraph/pointerAnalysis/PointerAnalysis.js +4 -2
- package/lib/cli/cli.d.ts +3 -0
- package/lib/cli/cli.d.ts.map +1 -0
- package/lib/cli/cli.js +82 -0
- package/lib/cli/commands/cg.d.ts +32 -0
- package/lib/cli/commands/cg.d.ts.map +1 -0
- package/lib/cli/commands/cg.js +401 -0
- package/lib/cli/commands/index.d.ts +6 -0
- package/lib/cli/commands/index.d.ts.map +1 -0
- package/lib/cli/commands/index.js +64 -0
- package/lib/cli/commands/ir.d.ts +26 -0
- package/lib/cli/commands/ir.d.ts.map +1 -0
- package/lib/cli/commands/ir.js +94 -0
- package/lib/core/base/Constant.d.ts +1 -1
- package/lib/core/base/Constant.d.ts.map +1 -1
- package/lib/core/base/Constant.js +1 -1
- package/lib/core/base/Expr.d.ts +29 -5
- package/lib/core/base/Expr.d.ts.map +1 -1
- package/lib/core/base/Expr.js +144 -22
- package/lib/core/base/Position.d.ts +14 -0
- package/lib/core/base/Position.d.ts.map +1 -1
- package/lib/core/base/Position.js +27 -0
- package/lib/core/base/Ref.d.ts +1 -0
- package/lib/core/base/Ref.d.ts.map +1 -1
- package/lib/core/base/Ref.js +4 -1
- package/lib/core/base/Type.d.ts +64 -24
- package/lib/core/base/Type.d.ts.map +1 -1
- package/lib/core/base/Type.js +144 -49
- package/lib/core/common/ArkError.d.ts +26 -2
- package/lib/core/common/ArkError.d.ts.map +1 -1
- package/lib/core/common/ArkError.js +56 -2
- package/lib/core/common/ArkIRTransformer.d.ts +11 -10
- package/lib/core/common/ArkIRTransformer.d.ts.map +1 -1
- package/lib/core/common/ArkIRTransformer.js +1 -1
- package/lib/core/common/ArkValueTransformer.d.ts +14 -12
- package/lib/core/common/ArkValueTransformer.d.ts.map +1 -1
- package/lib/core/common/ArkValueTransformer.js +1 -5
- package/lib/core/common/Const.d.ts +3 -0
- package/lib/core/common/Const.d.ts.map +1 -1
- package/lib/core/common/Const.js +4 -1
- package/lib/core/common/DummyMainCreater.d.ts +23 -13
- package/lib/core/common/DummyMainCreater.d.ts.map +1 -1
- package/lib/core/common/DummyMainCreater.js +66 -43
- package/lib/core/common/EtsConst.d.ts +11 -0
- package/lib/core/common/EtsConst.d.ts.map +1 -1
- package/lib/core/common/EtsConst.js +12 -1
- package/lib/core/common/IRInference.d.ts.map +1 -1
- package/lib/core/common/IRInference.js +5 -1
- package/lib/core/common/ModelUtils.d.ts +4 -7
- package/lib/core/common/ModelUtils.d.ts.map +1 -1
- package/lib/core/common/ModelUtils.js +77 -110
- package/lib/core/common/SdkUtils.d.ts +1 -1
- package/lib/core/common/SdkUtils.d.ts.map +1 -1
- package/lib/core/common/SdkUtils.js +14 -5
- package/lib/core/common/TypeInference.d.ts.map +1 -1
- package/lib/core/common/TypeInference.js +9 -3
- package/lib/core/graph/BaseExplicitGraph.d.ts +4 -4
- package/lib/core/graph/BaseExplicitGraph.d.ts.map +1 -1
- package/lib/core/graph/BaseExplicitGraph.js +15 -8
- package/lib/core/graph/BasicBlock.d.ts.map +1 -1
- package/lib/core/graph/Scc.d.ts.map +1 -1
- package/lib/core/graph/Scc.js +7 -2
- package/lib/core/graph/builder/CfgBuilder.d.ts +10 -7
- package/lib/core/graph/builder/CfgBuilder.d.ts.map +1 -1
- package/lib/core/graph/builder/CfgBuilder.js +12 -5
- package/lib/core/inference/Inference.d.ts.map +1 -1
- package/lib/core/inference/Inference.js +7 -0
- package/lib/core/inference/ModelInference.d.ts +1 -1
- package/lib/core/inference/ModelInference.d.ts.map +1 -1
- package/lib/core/inference/ValueInference.d.ts +3 -2
- package/lib/core/inference/ValueInference.d.ts.map +1 -1
- package/lib/core/inference/ValueInference.js +64 -12
- package/lib/core/inference/abc/AbcInference.d.ts +28 -2
- package/lib/core/inference/abc/AbcInference.d.ts.map +1 -1
- package/lib/core/inference/abc/AbcInference.js +105 -4
- package/lib/core/model/ArkBaseModel.d.ts +14 -1
- package/lib/core/model/ArkBaseModel.d.ts.map +1 -1
- package/lib/core/model/ArkBaseModel.js +61 -2
- package/lib/core/model/ArkBody.d.ts.map +1 -1
- package/lib/core/model/ArkBody.js +1 -3
- package/lib/core/model/ArkClass.d.ts +22 -2
- package/lib/core/model/ArkClass.d.ts.map +1 -1
- package/lib/core/model/ArkClass.js +59 -28
- package/lib/core/model/ArkField.d.ts.map +1 -1
- package/lib/core/model/ArkField.js +3 -1
- package/lib/core/model/ArkFile.d.ts +4 -1
- package/lib/core/model/ArkFile.d.ts.map +1 -1
- package/lib/core/model/ArkFile.js +44 -3
- package/lib/core/model/ArkImport.d.ts.map +1 -1
- package/lib/core/model/ArkImport.js +9 -1
- package/lib/core/model/ArkMethod.d.ts +5 -0
- package/lib/core/model/ArkMethod.d.ts.map +1 -1
- package/lib/core/model/ArkMethod.js +33 -1
- package/lib/core/model/ArkNamespace.d.ts +2 -0
- package/lib/core/model/ArkNamespace.d.ts.map +1 -1
- package/lib/core/model/ArkNamespace.js +11 -0
- package/lib/core/model/ArkSignature.d.ts +3 -3
- package/lib/core/model/ArkSignature.d.ts.map +1 -1
- package/lib/core/model/ArkSignature.js +14 -9
- package/lib/core/model/builder/ArkClassBuilder.d.ts +2 -0
- package/lib/core/model/builder/ArkClassBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkClassBuilder.js +3 -3
- package/lib/core/model/builder/ArkMethodBuilder.d.ts +4 -1
- package/lib/core/model/builder/ArkMethodBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkMethodBuilder.js +19 -6
- package/lib/core/model/builder/ArkNamespaceBuilder.d.ts +1 -0
- package/lib/core/model/builder/ArkNamespaceBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkNamespaceBuilder.js +2 -1
- package/lib/core/model/builder/BodyBuilder.d.ts +4 -0
- package/lib/core/model/builder/BodyBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/builderUtils.d.ts +1 -0
- package/lib/core/model/builder/builderUtils.d.ts.map +1 -1
- package/lib/core/model/builder/builderUtils.js +7 -3
- package/lib/frontend/cppFrontend/ast/ArkCxxAstNode.d.ts +296 -0
- package/lib/frontend/cppFrontend/ast/ArkCxxAstNode.d.ts.map +1 -0
- package/lib/frontend/cppFrontend/ast/ArkCxxAstNode.js +145 -0
- package/lib/frontend/cppFrontend/ast/astUtils.d.ts +51 -0
- package/lib/frontend/cppFrontend/ast/astUtils.d.ts.map +1 -0
- package/lib/frontend/cppFrontend/ast/astUtils.js +470 -0
- package/lib/frontend/cppFrontend/ast/const.d.ts +30 -0
- package/lib/frontend/cppFrontend/ast/const.d.ts.map +1 -0
- package/lib/frontend/cppFrontend/ast/const.js +134 -0
- package/lib/frontend/cppFrontend/base/Constant.d.ts +9 -0
- package/lib/frontend/cppFrontend/base/Constant.d.ts.map +1 -0
- package/lib/frontend/cppFrontend/base/Constant.js +33 -0
- package/lib/frontend/cppFrontend/base/Expr.d.ts +174 -0
- package/lib/frontend/cppFrontend/base/Expr.d.ts.map +1 -0
- package/lib/frontend/cppFrontend/base/Expr.js +530 -0
- package/lib/frontend/cppFrontend/base/Ref.d.ts +25 -0
- package/lib/frontend/cppFrontend/base/Ref.d.ts.map +1 -0
- package/lib/frontend/cppFrontend/base/Ref.js +53 -0
- package/lib/frontend/cppFrontend/base/Trap.d.ts +8 -0
- package/lib/frontend/cppFrontend/base/Trap.d.ts.map +1 -0
- package/lib/frontend/cppFrontend/base/Trap.js +28 -0
- package/lib/frontend/cppFrontend/base/Type.d.ts +264 -0
- package/lib/frontend/cppFrontend/base/Type.d.ts.map +1 -0
- package/lib/frontend/cppFrontend/base/Type.js +600 -0
- package/lib/frontend/cppFrontend/common/ArkIRTransformer.d.ts +109 -0
- package/lib/frontend/cppFrontend/common/ArkIRTransformer.d.ts.map +1 -0
- package/lib/frontend/cppFrontend/common/ArkIRTransformer.js +925 -0
- package/lib/frontend/cppFrontend/common/ArkValueTransformer.d.ts +477 -0
- package/lib/frontend/cppFrontend/common/ArkValueTransformer.d.ts.map +1 -0
- package/lib/frontend/cppFrontend/common/ArkValueTransformer.js +2746 -0
- package/lib/frontend/cppFrontend/common/Builtin.d.ts +57 -0
- package/lib/frontend/cppFrontend/common/Builtin.d.ts.map +1 -0
- package/lib/frontend/cppFrontend/common/Builtin.js +106 -0
- package/lib/frontend/cppFrontend/common/IRInference.d.ts +94 -0
- package/lib/frontend/cppFrontend/common/IRInference.d.ts.map +1 -0
- package/lib/frontend/cppFrontend/common/IRInference.js +1087 -0
- package/lib/frontend/cppFrontend/common/IRUtils.d.ts +23 -0
- package/lib/frontend/cppFrontend/common/IRUtils.d.ts.map +1 -0
- package/lib/frontend/cppFrontend/common/IRUtils.js +168 -0
- package/lib/frontend/cppFrontend/common/ModelUtils.d.ts +44 -0
- package/lib/frontend/cppFrontend/common/ModelUtils.d.ts.map +1 -0
- package/lib/frontend/cppFrontend/common/ModelUtils.js +567 -0
- package/lib/frontend/cppFrontend/common/TypeInference.d.ts +278 -0
- package/lib/frontend/cppFrontend/common/TypeInference.d.ts.map +1 -0
- package/lib/frontend/cppFrontend/common/TypeInference.js +1354 -0
- package/lib/frontend/cppFrontend/common/ValueUtil.d.ts +16 -0
- package/lib/frontend/cppFrontend/common/ValueUtil.d.ts.map +1 -0
- package/lib/frontend/cppFrontend/common/ValueUtil.js +61 -0
- package/lib/frontend/cppFrontend/graph/builder/CfgBuilder.d.ts +182 -0
- package/lib/frontend/cppFrontend/graph/builder/CfgBuilder.d.ts.map +1 -0
- package/lib/frontend/cppFrontend/graph/builder/CfgBuilder.js +1435 -0
- package/lib/frontend/cppFrontend/graph/builder/ConditionBuilder.d.ts +21 -0
- package/lib/frontend/cppFrontend/graph/builder/ConditionBuilder.d.ts.map +1 -0
- package/lib/frontend/cppFrontend/graph/builder/ConditionBuilder.js +303 -0
- package/lib/frontend/cppFrontend/graph/builder/IfBuilder.d.ts +15 -0
- package/lib/frontend/cppFrontend/graph/builder/IfBuilder.d.ts.map +1 -0
- package/lib/frontend/cppFrontend/graph/builder/IfBuilder.js +161 -0
- package/lib/frontend/cppFrontend/graph/builder/LoopBuilder.d.ts +21 -0
- package/lib/frontend/cppFrontend/graph/builder/LoopBuilder.d.ts.map +1 -0
- package/lib/frontend/cppFrontend/graph/builder/LoopBuilder.js +261 -0
- package/lib/frontend/cppFrontend/graph/builder/SwitchBuilder.d.ts +12 -0
- package/lib/frontend/cppFrontend/graph/builder/SwitchBuilder.d.ts.map +1 -0
- package/lib/frontend/cppFrontend/graph/builder/SwitchBuilder.js +155 -0
- package/lib/frontend/cppFrontend/graph/builder/TrapBuilder.d.ts +29 -0
- package/lib/frontend/cppFrontend/graph/builder/TrapBuilder.d.ts.map +1 -0
- package/lib/frontend/cppFrontend/graph/builder/TrapBuilder.js +302 -0
- package/lib/frontend/cppFrontend/inference/CxxInference.d.ts +10 -0
- package/lib/frontend/cppFrontend/inference/CxxInference.d.ts.map +1 -0
- package/lib/frontend/cppFrontend/inference/CxxInference.js +41 -0
- package/lib/frontend/cppFrontend/inference/CxxModelInference.d.ts +28 -0
- package/lib/frontend/cppFrontend/inference/CxxModelInference.d.ts.map +1 -0
- package/lib/frontend/cppFrontend/inference/CxxModelInference.js +98 -0
- package/lib/frontend/cppFrontend/inference/CxxValueInference.d.ts +20 -0
- package/lib/frontend/cppFrontend/inference/CxxValueInference.d.ts.map +1 -0
- package/lib/frontend/cppFrontend/inference/CxxValueInference.js +128 -0
- package/lib/frontend/cppFrontend/model/builder/ArkClassBuilder.d.ts +11 -0
- package/lib/frontend/cppFrontend/model/builder/ArkClassBuilder.d.ts.map +1 -0
- package/lib/frontend/cppFrontend/model/builder/ArkClassBuilder.js +413 -0
- package/lib/frontend/cppFrontend/model/builder/ArkFieldBuilder.d.ts +5 -0
- package/lib/frontend/cppFrontend/model/builder/ArkFieldBuilder.d.ts.map +1 -0
- package/lib/frontend/cppFrontend/model/builder/ArkFieldBuilder.js +61 -0
- package/lib/frontend/cppFrontend/model/builder/ArkFileBuilder.d.ts +17 -0
- package/lib/frontend/cppFrontend/model/builder/ArkFileBuilder.d.ts.map +1 -0
- package/lib/frontend/cppFrontend/model/builder/ArkFileBuilder.js +285 -0
- package/lib/frontend/cppFrontend/model/builder/ArkImportBuilder.d.ts +6 -0
- package/lib/frontend/cppFrontend/model/builder/ArkImportBuilder.d.ts.map +1 -0
- package/lib/frontend/cppFrontend/model/builder/ArkImportBuilder.js +57 -0
- package/lib/frontend/cppFrontend/model/builder/ArkMethodBuilder.d.ts +14 -0
- package/lib/frontend/cppFrontend/model/builder/ArkMethodBuilder.d.ts.map +1 -0
- package/lib/frontend/cppFrontend/model/builder/ArkMethodBuilder.js +422 -0
- package/lib/frontend/cppFrontend/model/builder/ArkNamespaceBuilder.d.ts +8 -0
- package/lib/frontend/cppFrontend/model/builder/ArkNamespaceBuilder.d.ts.map +1 -0
- package/lib/frontend/cppFrontend/model/builder/ArkNamespaceBuilder.js +194 -0
- package/lib/frontend/cppFrontend/model/builder/BodyBuilder.d.ts +59 -0
- package/lib/frontend/cppFrontend/model/builder/BodyBuilder.d.ts.map +1 -0
- package/lib/frontend/cppFrontend/model/builder/BodyBuilder.js +605 -0
- package/lib/frontend/cppFrontend/model/builder/builderUtils.d.ts +46 -0
- package/lib/frontend/cppFrontend/model/builder/builderUtils.d.ts.map +1 -0
- package/lib/frontend/cppFrontend/model/builder/builderUtils.js +499 -0
- package/lib/frontend/cppFrontend/utils/cmakeUtils.d.ts +44 -0
- package/lib/frontend/cppFrontend/utils/cmakeUtils.d.ts.map +1 -0
- package/lib/frontend/cppFrontend/utils/cmakeUtils.js +240 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +7 -1
- package/lib/node_modules/ohos-typescript/.ohos-typescript-version +1 -0
- package/{node_modules → lib/node_modules}/ohos-typescript/package.json +2 -1
- package/lib/save/CGJsonPrinter.d.ts +8 -0
- package/lib/save/CGJsonPrinter.d.ts.map +1 -0
- package/lib/save/CGJsonPrinter.js +41 -0
- package/lib/save/GraphPrinter.js +2 -2
- package/lib/save/json/JsonDto.d.ts +86 -2
- package/lib/save/json/JsonDto.d.ts.map +1 -1
- package/lib/save/json/JsonSerialization.d.ts +1 -1
- package/lib/save/json/JsonSerialization.d.ts.map +1 -1
- package/lib/save/json/JsonSerialization.js +235 -145
- package/lib/save/source/SourceTransformer.d.ts.map +1 -1
- package/lib/save/source/SourceTransformer.js +0 -3
- package/lib/utils/CxxSceneUtils.d.ts +11 -0
- package/lib/utils/CxxSceneUtils.d.ts.map +1 -0
- package/lib/utils/CxxSceneUtils.js +178 -0
- package/lib/utils/FileUtils.d.ts +7 -8
- package/lib/utils/FileUtils.d.ts.map +1 -1
- package/lib/utils/FileUtils.js +27 -45
- package/lib/utils/LRUCacheDecorator.d.ts +20 -0
- package/lib/utils/LRUCacheDecorator.d.ts.map +1 -0
- package/lib/utils/LRUCacheDecorator.js +89 -0
- package/lib/utils/ModuleUtils.d.ts +39 -0
- package/lib/utils/ModuleUtils.d.ts.map +1 -0
- package/lib/utils/ModuleUtils.js +261 -0
- package/package.json +15 -12
- /package/{node_modules → lib/node_modules}/ohos-typescript/LICENSE +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/README.OpenSource +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/README.md +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/SECURITY.md +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/ThirdPartyNoticeText.txt +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/bin/tsc +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/bin/tsserver +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/README.md +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/cancellationToken.js +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/cs/diagnosticMessages.generated.json +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/de/diagnosticMessages.generated.json +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/es/diagnosticMessages.generated.json +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/fr/diagnosticMessages.generated.json +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/it/diagnosticMessages.generated.json +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/ja/diagnosticMessages.generated.json +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/ko/diagnosticMessages.generated.json +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.dom.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.dom.iterable.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2015.collection.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2015.core.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2015.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2015.generator.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2015.iterable.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2015.promise.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2015.proxy.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2015.reflect.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2015.symbol.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2015.symbol.wellknown.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2016.array.include.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2016.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2016.full.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2017.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2017.full.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2017.intl.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2017.object.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2017.sharedmemory.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2017.string.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2017.typedarrays.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2018.asyncgenerator.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2018.asynciterable.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2018.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2018.full.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2018.intl.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2018.promise.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2018.regexp.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2019.array.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2019.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2019.full.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2019.intl.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2019.object.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2019.string.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2019.symbol.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2020.bigint.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2020.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2020.date.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2020.full.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2020.intl.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2020.number.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2020.promise.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2020.sharedmemory.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2020.string.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2020.symbol.wellknown.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2021.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2021.full.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2021.intl.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2021.promise.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2021.string.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2021.weakref.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2022.array.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2022.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2022.error.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2022.full.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2022.intl.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2022.object.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2022.sharedmemory.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2022.string.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es5.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es6.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.esnext.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.esnext.full.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.esnext.intl.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.scripthost.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.webworker.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.webworker.importscripts.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.webworker.iterable.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/pl/diagnosticMessages.generated.json +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/pt-br/diagnosticMessages.generated.json +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/ru/diagnosticMessages.generated.json +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/tr/diagnosticMessages.generated.json +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/tsc.js +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/tsserver.js +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/tsserverlibrary.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/tsserverlibrary.js +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/typesMap.json +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/typescript.d.ts +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/typescript.js +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/typingsInstaller.js +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/watchGuard.js +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/zh-cn/diagnosticMessages.generated.json +0 -0
- /package/{node_modules → lib/node_modules}/ohos-typescript/lib/zh-tw/diagnosticMessages.generated.json +0 -0
|
@@ -0,0 +1,477 @@
|
|
|
1
|
+
import { Value } from '../../../core/base/Value';
|
|
2
|
+
import { ArkMethod } from '../../../core/model/ArkMethod';
|
|
3
|
+
import { ArkCxxIRTransformer, ValueAndStmts } from './ArkIRTransformer';
|
|
4
|
+
import { ArkValueTransformer } from '../../../core/common/ArkValueTransformer';
|
|
5
|
+
import { CxxAstNode, CxxTranslationUnit } from '../ast/ArkCxxAstNode';
|
|
6
|
+
export declare class ArkCxxValueTransformer extends ArkValueTransformer {
|
|
7
|
+
private ArkCxxIRTransformer;
|
|
8
|
+
private readonly cxxSourceFile;
|
|
9
|
+
private nodeTransformerFuncMap;
|
|
10
|
+
constructor(arkIRTransformer: ArkCxxIRTransformer, sourceFile: CxxTranslationUnit, declaringMethod: ArkMethod);
|
|
11
|
+
/**
|
|
12
|
+
*Convert C++AST nodes into a combination of values and statements
|
|
13
|
+
*@ param node - C++AST node to be converted
|
|
14
|
+
*@ returns Objects containing converted values and related statements
|
|
15
|
+
*/
|
|
16
|
+
cxxNodeToValueAndStmts(node: CxxAstNode): ValueAndStmts;
|
|
17
|
+
/**
|
|
18
|
+
* Convert an unprocessed C++AST node into a combination of values and statements
|
|
19
|
+
* @param aggregate - C++AST node to be converted
|
|
20
|
+
* @returns Objects containing converted values and related statements
|
|
21
|
+
* @throws Error if the node cannot be processed
|
|
22
|
+
* For example:
|
|
23
|
+
* struct Point q = (struct Point){.x = 5, .y = 8, .name = 'c'};
|
|
24
|
+
* int* arr = (int[5]){1, 2, 3, 4, 5};
|
|
25
|
+
* the right value is {},its kind is CompoundLiteralExpr or InitListExpr
|
|
26
|
+
*/
|
|
27
|
+
private cxxAggregateToValueAndStmts;
|
|
28
|
+
private cxxThisExpressionToValueAndStmts;
|
|
29
|
+
private isNodeRelatedToCXXLambdaFunc;
|
|
30
|
+
private isNodeRelatedToImplicitNode;
|
|
31
|
+
private isNodeRelatedToMaterializeTemporaryExpr;
|
|
32
|
+
private isNodeRelatedToCXXMember;
|
|
33
|
+
private isPairConstructExpr;
|
|
34
|
+
private isNodeRelatedToTemporary;
|
|
35
|
+
private isNotNewExpression;
|
|
36
|
+
private isNodeRelatedToCXXFuncCast;
|
|
37
|
+
private undefinedToValueAndStmts;
|
|
38
|
+
private unprocessedNodeToValueAndStmts;
|
|
39
|
+
private cxxNamespaceRefToValueAndStmts;
|
|
40
|
+
private cxxTemporaryObjectExprToValueAndStmts;
|
|
41
|
+
/**
|
|
42
|
+
*Convert the C++construction expression node into a combination of values and statements.
|
|
43
|
+
* The main scenarios are structure and class construction, STL data structure object construction, and thread object construction
|
|
44
|
+
*@ param node - C++AST node, representing the construction expression
|
|
45
|
+
*@ returns ValueAndStmts object, including converted values and related statements
|
|
46
|
+
*/
|
|
47
|
+
private cxxConstructExprToValueAndStmts;
|
|
48
|
+
bindingNodeToValueAndStmts(node: CxxAstNode, yieldValue?: Value): ValueAndStmts;
|
|
49
|
+
private processInnerNodeToValueAndStmts;
|
|
50
|
+
/**
|
|
51
|
+
*Converts an implicit conversion expression node to a combination of values and statements
|
|
52
|
+
*@ param node - C++AST node, representing implicit type conversion expression
|
|
53
|
+
*@ returns ValueAndStmts object, including converted values and related statements
|
|
54
|
+
*/
|
|
55
|
+
private implicitCastExprToValueAndStmts;
|
|
56
|
+
/**
|
|
57
|
+
*Convert declaration and type reference nodes to collections of values and statements
|
|
58
|
+
*@ param node - C++AST node
|
|
59
|
+
*@ returns ValueAndStmts object, including converted values and related statements
|
|
60
|
+
*/
|
|
61
|
+
private declAndTypeRefToValueAndStmts;
|
|
62
|
+
private staticMemberExprToValueAndStmts;
|
|
63
|
+
private materializeTemporaryExprToValueAndStmts;
|
|
64
|
+
/**
|
|
65
|
+
*Initialize a list expression into a collection of values and statements
|
|
66
|
+
*@ param node - C++abstract syntax tree node
|
|
67
|
+
*@ returns ValueAndStmts object, including converted values and related statements
|
|
68
|
+
*/
|
|
69
|
+
private initListExprToValueAndStmts;
|
|
70
|
+
/**
|
|
71
|
+
*Convert the unary operator node into a combination of values and statements
|
|
72
|
+
*@ param node - C++AST node, representing unary operator expression
|
|
73
|
+
*@ returns ValueAndStmts object, including converted values and related statements
|
|
74
|
+
*/
|
|
75
|
+
private unaryOperatorToValueAndStmts;
|
|
76
|
+
private unaryExprToValueAndStmts;
|
|
77
|
+
/**
|
|
78
|
+
*Convert user-defined literals into sets of values and statements
|
|
79
|
+
*The syntax format of user-defined literals is: original value+suffix (for example: 123_km, "hello" _s, 'a' _s)
|
|
80
|
+
*
|
|
81
|
+
*@ param userDefinedLiteral - AST node of user-defined literal
|
|
82
|
+
*@ returns The ValueAndStmts object containing the converted value and related statements
|
|
83
|
+
*/
|
|
84
|
+
private userDefinedLiteralToValueAndStmts;
|
|
85
|
+
/**
|
|
86
|
+
*Convert the C++constructor initialization list node to a collection of values and statements
|
|
87
|
+
* 1. C++uses the initialization list to initialize class member variables: Base (char pname): name (pname) {...}.
|
|
88
|
+
* The final effect is similar to this ->name=pname, which is also processed as an assignment here
|
|
89
|
+
* 2. using parent::parent, The constructor of the subclass calls the constructor inherited from the parent class
|
|
90
|
+
*@ param cxxCtorInitializer C++constructor initializes list nodes
|
|
91
|
+
*@ returns An object containing a collection of values and statements
|
|
92
|
+
*/
|
|
93
|
+
private cxxCtorInitializerToValueAndStmts;
|
|
94
|
+
/**
|
|
95
|
+
*Convert the C++inheritance constructor initialization expression to a collection of values and statements
|
|
96
|
+
* Using parent:: parent==>The constructor of the sub——class calls the constructor inherited from the parent
|
|
97
|
+
* class==>The same as calling the constructor of the parent class directly
|
|
98
|
+
*@ param cxxInheritedCtorInitExpr - C++inheritance constructor initialization expression node
|
|
99
|
+
*@ returns The object containing the converted value and statement array
|
|
100
|
+
*/
|
|
101
|
+
private cxxInheritedCtorInitExprToValueAndStmts;
|
|
102
|
+
/**
|
|
103
|
+
*Convert super expression in C++to IR
|
|
104
|
+
* C++subclasses call the parent class constructor for initialization,
|
|
105
|
+
* similar to ts super (xx). For example, Left (const char&name, int power): Base (name) {...}
|
|
106
|
+
*@ param cxxConstructExpr C++construction expression node
|
|
107
|
+
*@ returns The ValueAndStmts object containing the converted value and related statements
|
|
108
|
+
*/
|
|
109
|
+
private cxxSuperExpressionToValueAndStmts;
|
|
110
|
+
/**
|
|
111
|
+
*Convert array type characteristic expression to IR
|
|
112
|
+
* ArrayTypeTraitExpr is processed by function call
|
|
113
|
+
*@ param ArrayTypeTraitExpr - C++AST node, representing array type characteristic expression
|
|
114
|
+
*@ returns ValueAndStmts object, including converted values and related statements
|
|
115
|
+
*/
|
|
116
|
+
private arrayTypeTraitExprToValueAndStmts;
|
|
117
|
+
/**
|
|
118
|
+
* Convert C++typeid expression to IR, And CXXTypeidExpr is processed by function call.
|
|
119
|
+
*@ param CXXTypeidExpr - typeid expression node in C++AST
|
|
120
|
+
*@ returns Objects containing converted values and related statements
|
|
121
|
+
*/
|
|
122
|
+
private cxxTypeidExprToValueAndStmts;
|
|
123
|
+
/**
|
|
124
|
+
*Convert the noexcept expression of C++syntax tree to IR
|
|
125
|
+
*@ param CXXNoexceptExpr - AST node representing C++noexcept expression
|
|
126
|
+
*@ returns Objects containing converted values and related statements
|
|
127
|
+
*/
|
|
128
|
+
private cxxNoexceptExprToValueAndStmts;
|
|
129
|
+
/**
|
|
130
|
+
*Process the C++scalar value initialization expression and convert it to IR
|
|
131
|
+
*@ param CXXScalarValueInitExpr - C++abstract syntax tree node, representing scalar value initialization expression
|
|
132
|
+
*@ returns an object containing initialization values and related statements. If it cannot be processed, it returns null
|
|
133
|
+
*/
|
|
134
|
+
private cxxScalarValueInitToValueAndStmts;
|
|
135
|
+
/**
|
|
136
|
+
*Convert C++delete expression to IR
|
|
137
|
+
*@ param deleteExpression - C++AST node, representing delete expression
|
|
138
|
+
*@ returns The object containing the converted value and statement array
|
|
139
|
+
*/
|
|
140
|
+
private cxxDeleteExpressionToValueAndStmts;
|
|
141
|
+
/**
|
|
142
|
+
*Convert C++type conversion expression to IR
|
|
143
|
+
*@ param castExpression C++AST node, representing type conversion expression
|
|
144
|
+
*@ returns ValueAndStmts object, including converted values, original location information and related statements
|
|
145
|
+
*/
|
|
146
|
+
private castExpressionToValueAndStmts;
|
|
147
|
+
private cxxFoldExprToValueAndStmts;
|
|
148
|
+
/**
|
|
149
|
+
*Convert C++conditional expression to IR
|
|
150
|
+
*@ param conditionalExpression - C++AST node, representing conditional expression
|
|
151
|
+
*@ returns ValueAndStmts object, including converted values, original location information and related statements
|
|
152
|
+
*/
|
|
153
|
+
private cxxConditionalExpressionToValueAndStmts;
|
|
154
|
+
/**
|
|
155
|
+
*Extract the calling node and parameter node from the internal AST node array for overwriting
|
|
156
|
+
*@ param innerAsNodes An AST node array containing call information and parameters. The first element is the call node, and the rest are parameter nodes
|
|
157
|
+
*@ returns an array containing two elements: the first element is the call node, and the second element is the parameter node array
|
|
158
|
+
*/
|
|
159
|
+
private getArgumentNodeForRecover;
|
|
160
|
+
private getArgumentNode;
|
|
161
|
+
private getDeclRef;
|
|
162
|
+
private cxxGenerateSystemComponentStmt;
|
|
163
|
+
private cxxGenerateCustomViewStmt;
|
|
164
|
+
private cxxGenerateComponentCreationStmts;
|
|
165
|
+
/**
|
|
166
|
+
*Convert C++identifiers to collections of values and statements
|
|
167
|
+
*@ param identifier C++AST node identifier
|
|
168
|
+
*@ param variableDefFlag Optional variable definition flag, used to distinguish variable declaration from variable use
|
|
169
|
+
*@ returns Objects containing values, location information and statement arrays
|
|
170
|
+
*/
|
|
171
|
+
private cxxIdentifierToValueAndStmts;
|
|
172
|
+
/**
|
|
173
|
+
*Convert the member expression of C++(such as testMap. insert) to ValueAndStmts of Ark IR
|
|
174
|
+
*@ param memberExpression - shaped like an AST MemberExpr/MemberRef node, which usually means obj. field or obj ->field
|
|
175
|
+
*@ param localValue - (Optional) The scenario where the baseValue is specified directly (
|
|
176
|
+
* such as determining the base in advance when resolving the parent node)
|
|
177
|
+
*/
|
|
178
|
+
private memberExpressionToValueAndStmts;
|
|
179
|
+
private buildFieldSignatureFromMemberExpr;
|
|
180
|
+
/**
|
|
181
|
+
*Convert element access expressions (such as array [index] or object. field) in C++AST to values and statements in intermediate representation (IR).
|
|
182
|
+
*
|
|
183
|
+
*@ param elementAccessExpression represents the AST node of C++element access expression
|
|
184
|
+
*@ returns contains the generated IR value, original location information and the ValueAndStmts object of related statements
|
|
185
|
+
*/
|
|
186
|
+
private cxxElementAccessExpressionToValueAndStmts;
|
|
187
|
+
private cxxCallExpressionToValueAndStmts;
|
|
188
|
+
/**
|
|
189
|
+
*Process the 'cout<<...' or lambda expression in C++, extract its operands and construct corresponding statements and values.
|
|
190
|
+
*
|
|
191
|
+
*@ param callExpression - The currently processed C++AST node, which represents an operator calling expression (such as<<).
|
|
192
|
+
*@ param callArgus - An array used to collect the parameter nodes involved in the expression.
|
|
193
|
+
*@ returns the ValueAndStmts object containing values and statements. If it cannot be processed, it returns null.
|
|
194
|
+
*/
|
|
195
|
+
private streamOrLambdaExprToValueAndStmts;
|
|
196
|
+
/**
|
|
197
|
+
*Build a collection of values and statements for stream operations or lambda function call
|
|
198
|
+
*
|
|
199
|
+
*@ param streamNode The AST node of the stream node
|
|
200
|
+
*@ param args parameter array of stream operation
|
|
201
|
+
*@ param stmts statement array
|
|
202
|
+
*@ param streamExpr AST node of stream expression
|
|
203
|
+
*@ returns The ValueAndStmts object containing values and statements
|
|
204
|
+
*/
|
|
205
|
+
private buildValueAndStmtsForStreamOrLambdaCall;
|
|
206
|
+
/**
|
|
207
|
+
*Build values and statements of overloaded flow operators
|
|
208
|
+
*@ param streamNode
|
|
209
|
+
*@ param overloadedArg overload parameter node
|
|
210
|
+
*@ param currValueAndStmts Current value and statement collection
|
|
211
|
+
*/
|
|
212
|
+
private buildValueAndStmtsForOverloadedStream;
|
|
213
|
+
/**
|
|
214
|
+
*Build a collection of values and statements for standard flow or lambda call nodes
|
|
215
|
+
*@ param streamNode - AST node of the stream node
|
|
216
|
+
*@ param nonOverlooadedArgs - non overloaded parameter array
|
|
217
|
+
*@ param streamExpr - AST node of stream expression
|
|
218
|
+
*@ param currValueAndStmts - current value and statement collection object, used to store processing results
|
|
219
|
+
*/
|
|
220
|
+
private buildValueAndStmtsForStdStreamOrLambdaCall;
|
|
221
|
+
/**
|
|
222
|
+
*Convert C++operator expression to binary operator expression
|
|
223
|
+
*@ param expression - C++AST node, representing operator expression
|
|
224
|
+
*@ returns the converted values and statements
|
|
225
|
+
*/
|
|
226
|
+
private CXXOperatorExpressionToBinaryOperator;
|
|
227
|
+
/**
|
|
228
|
+
*Convert C++operator expression to unary operator expression
|
|
229
|
+
*@ param expression - C++AST node, representing operator expression
|
|
230
|
+
*@ returns ValueAndStmts object, including converted values and statements
|
|
231
|
+
*/
|
|
232
|
+
private CXXOperatorExpressionToUnaryOperator;
|
|
233
|
+
/**
|
|
234
|
+
*Convert C++operator expressions to lists of values and statements
|
|
235
|
+
*@ param callExpression - C++AST node, representing the operator expression to be converted
|
|
236
|
+
*@ param layer - Boolean value, which controls whether to process the final output layer. The default value is true
|
|
237
|
+
*@ returns a list of converted values and statements, which may include special operator processing results or array reference expressions
|
|
238
|
+
*/
|
|
239
|
+
private cxxOperatorExpressionToValueAndStmts;
|
|
240
|
+
/**
|
|
241
|
+
* Handle special operator scenarios and return early if matched
|
|
242
|
+
*/
|
|
243
|
+
private handleSpecialOperators;
|
|
244
|
+
/**
|
|
245
|
+
* Collect ValueAndStmts from each inner node
|
|
246
|
+
*/
|
|
247
|
+
private collectInnerOperatorStmts;
|
|
248
|
+
private getOverloadOpName;
|
|
249
|
+
/**
|
|
250
|
+
*Handling C++overloaded operator call expressions
|
|
251
|
+
*@ param cxxOperatorCallExpr C++AST node, representing operator calling expression
|
|
252
|
+
*@ returns the processed value and statement object. If it cannot be processed, it returns null
|
|
253
|
+
*/
|
|
254
|
+
private handleOverloadedOp;
|
|
255
|
+
/**
|
|
256
|
+
*Build values and statements called by overloaded flow operators, such as<<or>>.
|
|
257
|
+
* Call IR for the function corresponding to the overload construction of the input/output stream operators operator<<, operator>>
|
|
258
|
+
*This function is used to handle operator overloading call expressions in C++, especially for input/output stream operators.
|
|
259
|
+
*It will parse parameters, find matching Ark methods, and generate corresponding call expressions.
|
|
260
|
+
*
|
|
261
|
+
*@ param cxxOperatorCallExpr represents the AST node of the C++operator call expression
|
|
262
|
+
*@ returns an object containing values and statements. If it cannot be constructed, it returns null
|
|
263
|
+
*/
|
|
264
|
+
private buildInvokeValueForOverloadedStreamOp;
|
|
265
|
+
private buildInvokeValueForNormalOverloadedOp;
|
|
266
|
+
private RecoverExpressionToValueAndStmts;
|
|
267
|
+
/**
|
|
268
|
+
*Generate the value and statement block of the C++call expression (ValueAndStmts).
|
|
269
|
+
*
|
|
270
|
+
*@ param functionNameNode - the node corresponding to the function name, which is used to resolve the caller information.
|
|
271
|
+
*@ param argus - The object containing the actual generic type, parameter value list, and parameter location information.
|
|
272
|
+
*- realGenericTypes: list of actual generic types.
|
|
273
|
+
*- args: parameter value list.
|
|
274
|
+
*- argPositions: The location information of the parameter in the source code.
|
|
275
|
+
*@ param currStmts - List of existing statements. The newly generated statements will be appended on this basis.
|
|
276
|
+
*@ param callExpression - represents the AST node of the call expression, which is used to obtain the call location information.
|
|
277
|
+
*@ returns a ValueAndStmts object that contains the call value, value location information, and related statements.
|
|
278
|
+
*/
|
|
279
|
+
private cxxGenerateInvokeValueAndStmts;
|
|
280
|
+
/**
|
|
281
|
+
*IR Processing of C++Function Calls
|
|
282
|
+
*@ param callExpression - C++AST node, representing member call expression
|
|
283
|
+
*@ returns ValueAndStmts object, including converted values and related statements
|
|
284
|
+
*/
|
|
285
|
+
private cxxMemberCallExpressionToValueAndStmts;
|
|
286
|
+
/**
|
|
287
|
+
*Build values and statements called by members
|
|
288
|
+
*@ param stmts statement array, used to collect generated statements
|
|
289
|
+
*@ param callerNode Caller Node
|
|
290
|
+
*@ param argNodes parameter node array
|
|
291
|
+
*@ param callExpression calls the expression node
|
|
292
|
+
*@ param realGenericTypes Actual generic type array
|
|
293
|
+
*@ returns The ValueAndStmts object containing values, location information, and statements
|
|
294
|
+
*/
|
|
295
|
+
private buildValueAndStmtsForMemberCall;
|
|
296
|
+
/**
|
|
297
|
+
*Build the call value referenced by the field
|
|
298
|
+
*
|
|
299
|
+
*@ param callerValue The caller value indicates the field reference
|
|
300
|
+
*@ param args calls the parameter array
|
|
301
|
+
*@ param realGenericTypes The actual generic type array may be undefined
|
|
302
|
+
*@ param invokeValuePositions calls the value position information array
|
|
303
|
+
*@ param callerPositions Caller position information array
|
|
304
|
+
*@ returns the ArkInstanceFieldRef or ArkStaticInvokeExpr instance
|
|
305
|
+
*/
|
|
306
|
+
private buildInvokeValueForFieldRef;
|
|
307
|
+
private buildInvokeValueForLocal;
|
|
308
|
+
private cxxParseArgumentsOfCallExpression;
|
|
309
|
+
private getRealGenericTypes;
|
|
310
|
+
/**
|
|
311
|
+
* Resolves the type string based on priority (provided qualType > desugared > default).
|
|
312
|
+
*/
|
|
313
|
+
private getTargetQualType;
|
|
314
|
+
/**
|
|
315
|
+
* Splits template arguments by comma, but remains aware of nested brackets
|
|
316
|
+
* to prevent incorrect splitting of nested templates.
|
|
317
|
+
*/
|
|
318
|
+
private splitTemplateArguments;
|
|
319
|
+
private cxxParseArguments;
|
|
320
|
+
private cxxCallableNodeToValueAndStmts;
|
|
321
|
+
private cxxNewExpressionToValueAndStmts;
|
|
322
|
+
/**
|
|
323
|
+
*Generate C++code representation of constructor calls and member initialization, and add related statements to stmts.
|
|
324
|
+
* Extracted tail logic: construction call+special case processing+member initialization
|
|
325
|
+
*@ param stmts - an array that stores the generated statement nodes
|
|
326
|
+
*@ param newExpression - C++AST node representing new expression
|
|
327
|
+
*@ param newLocal - local variable representing the newly created object
|
|
328
|
+
*@ param newLocalPositions - the location information of the new local variable in the source code
|
|
329
|
+
*@ param constructorMethodSignature - constructor's method signature
|
|
330
|
+
*@ param className - the name of the current class, which is used for special processing of certain types (such as napi_property_descriptor)
|
|
331
|
+
*/
|
|
332
|
+
private cxxEmitCtorInvokeAndMemberInits;
|
|
333
|
+
private getConstructorSignatureByClassTypeAndArgs;
|
|
334
|
+
/**
|
|
335
|
+
*Get the constructor parameter list, and process parameter resolution and conversion of various AST node types
|
|
336
|
+
*@ param constructArgs constructor parameter, which can be a single AST node or AST node array
|
|
337
|
+
*@ returns The constructor parameter array after parsing
|
|
338
|
+
*/
|
|
339
|
+
private getConstructArgs;
|
|
340
|
+
/**
|
|
341
|
+
*Get the class name of the new expression
|
|
342
|
+
*@ param newExpression - new expression node of CxxAstNode type
|
|
343
|
+
*@ returns the processed class name string
|
|
344
|
+
*/
|
|
345
|
+
private getNewExpressionClassName;
|
|
346
|
+
/**
|
|
347
|
+
*Remove the outermost template parameter (angle brackets and their contents) from the string
|
|
348
|
+
*@ param typeStr is a type string containing template parameters
|
|
349
|
+
*@ returns string after removing the outermost template parameter
|
|
350
|
+
*/
|
|
351
|
+
private removeOutermostTemplateArgs;
|
|
352
|
+
/**
|
|
353
|
+
*Convert the new array expression of C++to ValueAndStmts
|
|
354
|
+
*@ param newArrayExpression - C++AST node, representing new array expression
|
|
355
|
+
*@ returns ValueAndStmts object, including converted values and related statements
|
|
356
|
+
*/
|
|
357
|
+
private cxxNewArrayExpressionToValueAndStmts;
|
|
358
|
+
/**
|
|
359
|
+
*Convert C++array literal expression to ValueAndStmts
|
|
360
|
+
*@ param arrayLiteralExpression - Array literal node in C++abstract syntax tree
|
|
361
|
+
*@ returns The ValueAndStmts object containing the converted value and related statements
|
|
362
|
+
*/
|
|
363
|
+
private cxxArrayLiteralExpressionToValueAndStmts;
|
|
364
|
+
private getArrayDimensions;
|
|
365
|
+
/**
|
|
366
|
+
*Process array literal expression and convert it to intermediate representation
|
|
367
|
+
*@ param arrayLiteralExpression array literal expression node
|
|
368
|
+
*@ param stmts is used to collect the generated statement list
|
|
369
|
+
*@ param elementTypes is used to collect the collection of array element types
|
|
370
|
+
*@ param elementValues is used to collect the list of array element values
|
|
371
|
+
*@ param elementPositions is used to collect the list of array element position information
|
|
372
|
+
*/
|
|
373
|
+
private getArrayLiteralExpression;
|
|
374
|
+
/**
|
|
375
|
+
*Generate IR expressed by C++array
|
|
376
|
+
*
|
|
377
|
+
*@ param baseType - the basic type of the array element
|
|
378
|
+
*@ param arrayLengthValue - value object of array length
|
|
379
|
+
*@ param arrayLengthPosition - position information of array length
|
|
380
|
+
*@ param arrayLength - the actual length of the array
|
|
381
|
+
*@ param initializerValues - array initialization value list
|
|
382
|
+
*@ param initializerPositions - List of location information of initialization values
|
|
383
|
+
*@ param currStmts - List of existing statements
|
|
384
|
+
*@ param newArrayExprPosition - position information of the new array expression
|
|
385
|
+
*@ param fromLiteral - whether from literal
|
|
386
|
+
*@ returns The ValueAndStmts object containing values and statements
|
|
387
|
+
*/
|
|
388
|
+
private cxxGenerateArrayExprAndStmts;
|
|
389
|
+
/**
|
|
390
|
+
*Converts C++prefix unary expression nodes to IR values and statement lists.
|
|
391
|
+
*
|
|
392
|
+
*@ param prefixUnaryExpression - prefix unary expression node in C++AST
|
|
393
|
+
*@ returns The object containing the converted value and the generated statement list
|
|
394
|
+
*/
|
|
395
|
+
private cxxPrefixUnaryExpressionToValueAndStmts;
|
|
396
|
+
/**
|
|
397
|
+
*Convert a C++suffix unary expression to a sequence of values and statements
|
|
398
|
+
*
|
|
399
|
+
*@ param postfixUnaryExpression - suffix unary expression node in C++AST
|
|
400
|
+
*@ returns The object containing the converted value and related statements
|
|
401
|
+
*/
|
|
402
|
+
private cxxPostfixUnaryExpressionToValueAndStmts;
|
|
403
|
+
declStmtToValueAndStmts(decl: CxxAstNode): ValueAndStmts;
|
|
404
|
+
/**
|
|
405
|
+
*Convert C++variable declarations to combinations of values and statements
|
|
406
|
+
*@ param variableDeclaration - C++variable declaration node
|
|
407
|
+
*@ param isConst - whether it is a constant declaration
|
|
408
|
+
*@ param needRightOp - Whether the right operand is required, the default is true
|
|
409
|
+
*@ returns the ValueAndStmts object containing values and statements
|
|
410
|
+
*/
|
|
411
|
+
cxxVariableDeclarationToValueAndStmts(variableDeclaration: CxxAstNode, needRightOp?: boolean): ValueAndStmts;
|
|
412
|
+
private isCxxArray;
|
|
413
|
+
/**
|
|
414
|
+
*Process C++assignment expressions and convert them into ValueAndStmts structures.
|
|
415
|
+
*
|
|
416
|
+
*@ param leftOpNode The AST node of the left operand
|
|
417
|
+
*@ param rightOpNode The AST node of the right operand, which may be undefined
|
|
418
|
+
*@ param variableDefFlag indicates whether the variable is defined
|
|
419
|
+
*@ param isConst indicates whether it is a constant
|
|
420
|
+
*@ param declarationType Declared type
|
|
421
|
+
*@ param needRightOp Whether to process the right operand, the default is true
|
|
422
|
+
*@ returns the ValueAndStmts object containing the value, original position and statement list
|
|
423
|
+
*/
|
|
424
|
+
private cxxAssignmentToValueAndStmts;
|
|
425
|
+
/**
|
|
426
|
+
*CPP implementation of converting the right operand node to a list of values and statements
|
|
427
|
+
*@ param rightOpNode The AST node of the right operand, which may be undefined
|
|
428
|
+
*@ param leftValue Left value object
|
|
429
|
+
*@ returns Objects containing values, location information, and statement lists
|
|
430
|
+
*/
|
|
431
|
+
private cxxAssignmentRightOpToValueAndStmts;
|
|
432
|
+
/**
|
|
433
|
+
*Convert the C++AST node to a single address value and statement list
|
|
434
|
+
*@ param node - C++AST node to be converted
|
|
435
|
+
*@ returns An object containing a list of values, original positions, and statements
|
|
436
|
+
*/
|
|
437
|
+
private cxxNodeToSingleAddressValueAndStmts;
|
|
438
|
+
/**
|
|
439
|
+
*Converts a C++binary expression node to a list of values and statements.
|
|
440
|
+
*In assignment patterns, the left operand will be an array literal expression
|
|
441
|
+
*In assignment patterns, the left operand will be an object literal expression
|
|
442
|
+
*@ param binaryExpression - Binary expression node in C++AST
|
|
443
|
+
*@ returns The ValueAndStmts object containing calculated values and related statements
|
|
444
|
+
*/
|
|
445
|
+
private cxxBinaryExpressionToValueAndStmts;
|
|
446
|
+
/**
|
|
447
|
+
*Convert compound assignment expressions (such as+=, -=, etc.) in C++to values and statement lists in intermediate representation (IR).
|
|
448
|
+
*
|
|
449
|
+
*@ param binaryExpression represents the C++AST node of the compound assignment operation
|
|
450
|
+
*@ returns an object containing the calculated value, the original location information, and the generated statement list
|
|
451
|
+
*/
|
|
452
|
+
private cxxCompoundAssignmentToValueAndStmts;
|
|
453
|
+
/**
|
|
454
|
+
*Convert the compound assignment operator to the corresponding binary operator
|
|
455
|
+
*
|
|
456
|
+
*@ param token - compound assignment operator string
|
|
457
|
+
*@ returns The corresponding binary operator. If no match is found, null is returned
|
|
458
|
+
*/
|
|
459
|
+
private cxxCcompoundAssignmentTokenToBinaryOperator;
|
|
460
|
+
/**
|
|
461
|
+
*Convert C++conditional expression nodes to a combination of values and statements
|
|
462
|
+
*@ param condition - Condition node in C++abstract syntax tree
|
|
463
|
+
*@ returns Objects containing conditional expression values and related statements
|
|
464
|
+
*/
|
|
465
|
+
cxxConditionToValueAndStmts(condition: CxxAstNode): ValueAndStmts;
|
|
466
|
+
private parseFloatAsCxxFloat;
|
|
467
|
+
/**
|
|
468
|
+
*Convert literal nodes in C++AST into corresponding value and statement lists.
|
|
469
|
+
*Literals currently processed: integer, floating point, string, character, Boolean value, null pointer, address label
|
|
470
|
+
*@ param literalNode - an AST node representing a C++literal
|
|
471
|
+
*@ returns the object containing the value, original location information and statement list. If the node type cannot be processed, null is returned
|
|
472
|
+
*/
|
|
473
|
+
private cxxLiteralNodeToValueAndStmts;
|
|
474
|
+
static isCxxCompoundAssignmentOperator(op?: string): boolean;
|
|
475
|
+
private static isRelationalBinaryOperator;
|
|
476
|
+
}
|
|
477
|
+
//# sourceMappingURL=ArkValueTransformer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArkValueTransformer.d.ts","sourceRoot":"","sources":["../../../../src/frontend/cppFrontend/common/ArkValueTransformer.ts"],"names":[],"mappings":"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"}
|