arkanalyzer 1.0.87 → 1.0.89

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/config/arkanalyzer.json +11 -0
  2. package/lib/Config.d.ts +27 -2
  3. package/lib/Config.d.ts.map +1 -1
  4. package/lib/Config.js +65 -2
  5. package/lib/Scene.d.ts +5 -2
  6. package/lib/Scene.d.ts.map +1 -1
  7. package/lib/Scene.js +34 -67
  8. package/lib/callgraph/pointerAnalysis/context/Context.d.ts.map +1 -1
  9. package/lib/callgraph/pointerAnalysis/context/Context.js +10 -12
  10. package/lib/callgraph/pointerAnalysis/plugins/WorkerPlugin.js +1 -1
  11. package/lib/cli/commands/cg.d.ts +27 -6
  12. package/lib/cli/commands/cg.d.ts.map +1 -1
  13. package/lib/cli/commands/cg.js +9 -6
  14. package/lib/core/base/Expr.js +3 -3
  15. package/lib/core/base/Position.d.ts +1 -1
  16. package/lib/core/base/Position.d.ts.map +1 -1
  17. package/lib/core/base/Position.js +2 -2
  18. package/lib/core/base/Type.d.ts.map +1 -1
  19. package/lib/core/base/Type.js +1 -2
  20. package/lib/core/common/Const.d.ts +1 -0
  21. package/lib/core/common/Const.d.ts.map +1 -1
  22. package/lib/core/common/Const.js +2 -1
  23. package/lib/core/common/IRInference.d.ts.map +1 -1
  24. package/lib/core/common/IRInference.js +1 -1
  25. package/lib/core/common/IRUtils.d.ts.map +1 -1
  26. package/lib/core/common/IRUtils.js +3 -33
  27. package/lib/core/common/ModelUtils.d.ts +6 -0
  28. package/lib/core/common/ModelUtils.d.ts.map +1 -1
  29. package/lib/core/common/ModelUtils.js +30 -0
  30. package/lib/core/common/SdkUtils.js +1 -1
  31. package/lib/core/common/TypeInference.d.ts +13 -0
  32. package/lib/core/common/TypeInference.d.ts.map +1 -1
  33. package/lib/core/common/TypeInference.js +44 -0
  34. package/lib/core/common/ValueUtil.d.ts +1 -1
  35. package/lib/core/common/ValueUtil.d.ts.map +1 -1
  36. package/lib/core/common/ValueUtil.js +28 -12
  37. package/lib/core/graph/Cfg.d.ts.map +1 -1
  38. package/lib/core/graph/Cfg.js +0 -2
  39. package/lib/core/graph/DominanceFinder.d.ts +3 -0
  40. package/lib/core/graph/DominanceFinder.d.ts.map +1 -1
  41. package/lib/core/graph/DominanceFinder.js +42 -36
  42. package/lib/core/graph/DominanceTree.d.ts.map +1 -1
  43. package/lib/core/graph/DominanceTree.js +0 -4
  44. package/lib/core/inference/ValueInference.d.ts.map +1 -1
  45. package/lib/core/inference/ValueInference.js +3 -2
  46. package/lib/core/inference/abc/AbcInference.d.ts.map +1 -1
  47. package/lib/core/inference/abc/AbcInference.js +2 -1
  48. package/lib/core/inference/arkts/ArkTsInference.d.ts.map +1 -1
  49. package/lib/core/inference/arkts/ArkTsInference.js +3 -2
  50. package/lib/core/model/ArkClass.d.ts +3 -0
  51. package/lib/core/model/ArkClass.d.ts.map +1 -1
  52. package/lib/core/model/ArkClass.js +32 -6
  53. package/lib/core/model/ArkFile.d.ts.map +1 -1
  54. package/lib/core/model/ArkFile.js +0 -1
  55. package/lib/core/model/ArkMetadata.d.ts +32 -1
  56. package/lib/core/model/ArkMetadata.d.ts.map +1 -1
  57. package/lib/core/model/ArkMetadata.js +28 -3
  58. package/lib/core/model/builder/ArkMetadataBuilder.d.ts +21 -0
  59. package/lib/core/model/builder/ArkMetadataBuilder.d.ts.map +1 -0
  60. package/lib/core/model/builder/ArkMetadataBuilder.js +160 -0
  61. package/lib/core/model/builder/ArkMethodBuilder.d.ts.map +1 -1
  62. package/lib/core/model/builder/ArkMethodBuilder.js +32 -26
  63. package/lib/frontend/FrontendBuilder.d.ts +26 -0
  64. package/lib/frontend/FrontendBuilder.d.ts.map +1 -0
  65. package/lib/frontend/FrontendBuilder.js +108 -0
  66. package/lib/frontend/arktsFrontend/ArktsFrontend.d.ts +16 -0
  67. package/lib/frontend/arktsFrontend/ArktsFrontend.d.ts.map +1 -0
  68. package/lib/frontend/arktsFrontend/ArktsFrontend.js +52 -0
  69. package/lib/frontend/cppFrontend/CppFrontend.d.ts +13 -0
  70. package/lib/frontend/cppFrontend/CppFrontend.d.ts.map +1 -0
  71. package/lib/frontend/cppFrontend/CppFrontend.js +85 -0
  72. package/lib/frontend/cppFrontend/ast/index.d.ts +5 -0
  73. package/lib/frontend/cppFrontend/ast/index.d.ts.map +1 -0
  74. package/lib/frontend/cppFrontend/ast/index.js +31 -0
  75. package/lib/frontend/cppFrontend/ast/ts/ArkCxxAstNode.d.ts.map +1 -0
  76. package/lib/frontend/cppFrontend/ast/ts/astParser.d.ts +25 -0
  77. package/lib/frontend/cppFrontend/ast/ts/astParser.d.ts.map +1 -0
  78. package/lib/frontend/cppFrontend/ast/ts/astParser.js +280 -0
  79. package/lib/frontend/cppFrontend/ast/ts/astUtils.d.ts +18 -0
  80. package/lib/frontend/cppFrontend/ast/ts/astUtils.d.ts.map +1 -0
  81. package/lib/frontend/cppFrontend/ast/ts/astUtils.js +158 -0
  82. package/lib/frontend/cppFrontend/ast/{const.d.ts → ts/const.d.ts} +0 -13
  83. package/lib/frontend/cppFrontend/ast/ts/const.d.ts.map +1 -0
  84. package/lib/frontend/cppFrontend/ast/ts/const.js +58 -0
  85. package/lib/frontend/cppFrontend/ast/ts/napi/napiApi.d.ts +8 -0
  86. package/lib/frontend/cppFrontend/ast/ts/napi/napiApi.d.ts.map +1 -0
  87. package/lib/frontend/cppFrontend/ast/ts/napi/napiApi.js +90 -0
  88. package/lib/frontend/cppFrontend/ast/ts/napi/napiRunner.d.ts +8 -0
  89. package/lib/frontend/cppFrontend/ast/ts/napi/napiRunner.d.ts.map +1 -0
  90. package/lib/frontend/cppFrontend/ast/ts/napi/napiRunner.js +180 -0
  91. package/lib/frontend/cppFrontend/common/ArkIRTransformer.d.ts +1 -1
  92. package/lib/frontend/cppFrontend/common/ArkIRTransformer.d.ts.map +1 -1
  93. package/lib/frontend/cppFrontend/common/ArkIRTransformer.js +55 -55
  94. package/lib/frontend/cppFrontend/common/ArkValueTransformer.d.ts +1 -1
  95. package/lib/frontend/cppFrontend/common/ArkValueTransformer.d.ts.map +1 -1
  96. package/lib/frontend/cppFrontend/common/ArkValueTransformer.js +151 -151
  97. package/lib/frontend/cppFrontend/common/IRInference.js +2 -2
  98. package/lib/frontend/cppFrontend/common/IRUtils.d.ts +1 -1
  99. package/lib/frontend/cppFrontend/common/IRUtils.d.ts.map +1 -1
  100. package/lib/frontend/cppFrontend/common/IRUtils.js +2 -2
  101. package/lib/frontend/cppFrontend/graph/builder/CfgBuilder.d.ts +1 -1
  102. package/lib/frontend/cppFrontend/graph/builder/CfgBuilder.d.ts.map +1 -1
  103. package/lib/frontend/cppFrontend/graph/builder/CfgBuilder.js +74 -74
  104. package/lib/frontend/cppFrontend/model/builder/ArkClassBuilder.d.ts +1 -1
  105. package/lib/frontend/cppFrontend/model/builder/ArkClassBuilder.d.ts.map +1 -1
  106. package/lib/frontend/cppFrontend/model/builder/ArkClassBuilder.js +3 -3
  107. package/lib/frontend/cppFrontend/model/builder/ArkFieldBuilder.d.ts +1 -1
  108. package/lib/frontend/cppFrontend/model/builder/ArkFieldBuilder.d.ts.map +1 -1
  109. package/lib/frontend/cppFrontend/model/builder/ArkFileBuilder.d.ts +1 -1
  110. package/lib/frontend/cppFrontend/model/builder/ArkFileBuilder.d.ts.map +1 -1
  111. package/lib/frontend/cppFrontend/model/builder/ArkFileBuilder.js +16 -17
  112. package/lib/frontend/cppFrontend/model/builder/ArkImportBuilder.d.ts +1 -1
  113. package/lib/frontend/cppFrontend/model/builder/ArkImportBuilder.d.ts.map +1 -1
  114. package/lib/frontend/cppFrontend/model/builder/ArkMethodBuilder.d.ts +1 -1
  115. package/lib/frontend/cppFrontend/model/builder/ArkMethodBuilder.d.ts.map +1 -1
  116. package/lib/frontend/cppFrontend/model/builder/ArkMethodBuilder.js +2 -2
  117. package/lib/frontend/cppFrontend/model/builder/ArkNamespaceBuilder.d.ts +1 -1
  118. package/lib/frontend/cppFrontend/model/builder/ArkNamespaceBuilder.d.ts.map +1 -1
  119. package/lib/frontend/cppFrontend/model/builder/ArkNamespaceBuilder.js +2 -2
  120. package/lib/frontend/cppFrontend/model/builder/BodyBuilder.d.ts +1 -1
  121. package/lib/frontend/cppFrontend/model/builder/BodyBuilder.d.ts.map +1 -1
  122. package/lib/frontend/cppFrontend/model/builder/builderUtils.d.ts +1 -1
  123. package/lib/frontend/cppFrontend/model/builder/builderUtils.d.ts.map +1 -1
  124. package/lib/frontend/cppFrontend/model/builder/builderUtils.js +3 -3
  125. package/lib/index.d.ts +5 -2
  126. package/lib/index.d.ts.map +1 -1
  127. package/lib/index.js +14 -6
  128. package/lib/pass/Dispatcher.d.ts.map +1 -1
  129. package/lib/pass/Dispatcher.js +0 -4
  130. package/lib/save/source/SourceStmt.d.ts.map +1 -1
  131. package/lib/save/source/SourceStmt.js +3 -1
  132. package/lib/utils/FileUtils.d.ts +1 -0
  133. package/lib/utils/FileUtils.d.ts.map +1 -1
  134. package/lib/utils/FileUtils.js +11 -3
  135. package/package.json +9 -4
  136. package/lib/frontend/cppFrontend/ast/ArkCxxAstNode.d.ts.map +0 -1
  137. package/lib/frontend/cppFrontend/ast/astUtils.d.ts +0 -51
  138. package/lib/frontend/cppFrontend/ast/astUtils.d.ts.map +0 -1
  139. package/lib/frontend/cppFrontend/ast/astUtils.js +0 -470
  140. package/lib/frontend/cppFrontend/ast/const.d.ts.map +0 -1
  141. package/lib/frontend/cppFrontend/ast/const.js +0 -134
  142. /package/lib/frontend/cppFrontend/ast/{ArkCxxAstNode.d.ts → ts/ArkCxxAstNode.d.ts} +0 -0
  143. /package/lib/frontend/cppFrontend/ast/{ArkCxxAstNode.js → ts/ArkCxxAstNode.js} +0 -0
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2026 Huawei Device Co., Ltd.
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ var desc = Object.getOwnPropertyDescriptor(m, k);
19
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
20
+ desc = { enumerable: true, get: function() { return m[k]; } };
21
+ }
22
+ Object.defineProperty(o, k2, desc);
23
+ }) : (function(o, m, k, k2) {
24
+ if (k2 === undefined) k2 = k;
25
+ o[k2] = m[k];
26
+ }));
27
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
28
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
29
+ }) : function(o, v) {
30
+ o["default"] = v;
31
+ });
32
+ var __importStar = (this && this.__importStar) || function (mod) {
33
+ if (mod && mod.__esModule) return mod;
34
+ var result = {};
35
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
36
+ __setModuleDefault(result, mod);
37
+ return result;
38
+ };
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.dumpAstJson = void 0;
41
+ const path = __importStar(require("node:path"));
42
+ const logger_1 = __importStar(require("../../../../../utils/logger"));
43
+ const astUtils_1 = require("../astUtils");
44
+ const napiRunner_1 = require("./napiRunner");
45
+ const logger = logger_1.default.getLogger(logger_1.LOG_MODULE_TYPE.ARKANALYZER, 'astJsonDumper');
46
+ function buildRunEnv(llvmPath) {
47
+ var _a;
48
+ const out = Object.assign({}, process.env);
49
+ if (!llvmPath) {
50
+ return out;
51
+ }
52
+ const sep = path.delimiter;
53
+ const cur = (_a = out.PATH) !== null && _a !== void 0 ? _a : '';
54
+ if (!cur.split(sep).includes(llvmPath)) {
55
+ out.PATH = cur.length === 0 ? llvmPath : cur + sep + llvmPath;
56
+ }
57
+ return out;
58
+ }
59
+ function buildAstJsonArgv(request) {
60
+ const argv = [request.sourceFile, '-o', request.outputFile];
61
+ if (request.ccJsonPath) {
62
+ argv.push('-p', request.ccJsonPath);
63
+ }
64
+ if (request.includeDirs && request.includeDirs.length > 0) {
65
+ request.includeDirs.forEach((dir) => {
66
+ argv.push(`--extra-arg-before=-I${dir}`);
67
+ });
68
+ }
69
+ return argv;
70
+ }
71
+ function dumpAstJson(request, cwd, llvmPath) {
72
+ const argv = buildAstJsonArgv(request);
73
+ logger.info('================================================================');
74
+ logger.info(`[Debug] CWD: ${cwd}`);
75
+ logger.info(`[Debug] astJsonDumper args: ${JSON.stringify(argv)}`);
76
+ logger.info('================================================================');
77
+ if (!(0, astUtils_1.isAstJsonDumperAvailable)()) {
78
+ logger.error('[Debug] astJsonDumper backend is unavailable.');
79
+ return -1;
80
+ }
81
+ const env = buildRunEnv(llvmPath);
82
+ const code = (0, napiRunner_1.runAstJsonArgv)(argv, { cwd, env });
83
+ if (code !== 0) {
84
+ logger.error(`[Debug] astJsonDumper exited with code ${code}`);
85
+ return code;
86
+ }
87
+ logger.info('[Debug] astJsonDumper finished successfully.');
88
+ return 0;
89
+ }
90
+ exports.dumpAstJson = dumpAstJson;
@@ -0,0 +1,8 @@
1
+ /// <reference types="node" />
2
+ interface AstJsonRunContext {
3
+ cwd: string;
4
+ env: NodeJS.ProcessEnv;
5
+ }
6
+ export declare function runAstJsonArgv(argv: string[], context: AstJsonRunContext): number;
7
+ export {};
8
+ //# sourceMappingURL=napiRunner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"napiRunner.d.ts","sourceRoot":"","sources":["../../../../../../src/frontend/cppFrontend/ast/ts/napi/napiRunner.ts"],"names":[],"mappings":";AAyBA,UAAU,iBAAiB;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;CAC1B;AA4JD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAEjF"}
@@ -0,0 +1,180 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2026 Huawei Device Co., Ltd.
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ var desc = Object.getOwnPropertyDescriptor(m, k);
19
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
20
+ desc = { enumerable: true, get: function() { return m[k]; } };
21
+ }
22
+ Object.defineProperty(o, k2, desc);
23
+ }) : (function(o, m, k, k2) {
24
+ if (k2 === undefined) k2 = k;
25
+ o[k2] = m[k];
26
+ }));
27
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
28
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
29
+ }) : function(o, v) {
30
+ o["default"] = v;
31
+ });
32
+ var __importStar = (this && this.__importStar) || function (mod) {
33
+ if (mod && mod.__esModule) return mod;
34
+ var result = {};
35
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
36
+ __setModuleDefault(result, mod);
37
+ return result;
38
+ };
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.runAstJsonArgv = void 0;
41
+ const node_child_process_1 = require("node:child_process");
42
+ const fs = __importStar(require("node:fs"));
43
+ const path = __importStar(require("node:path"));
44
+ const logger_1 = __importStar(require("../../../../../utils/logger"));
45
+ const astUtils_1 = require("../astUtils");
46
+ const logger = logger_1.default.getLogger(logger_1.LOG_MODULE_TYPE.ARKANALYZER, 'astJsonDumper');
47
+ let selectedRunArgv = null;
48
+ function startNewAstJsonWorker(addonAbsolutePath, onExit) {
49
+ var _a, _b;
50
+ const workerPath = path.join(__dirname, 'napiWorker.cjs');
51
+ const proc = (0, node_child_process_1.fork)(workerPath, [addonAbsolutePath], {
52
+ serialization: 'advanced',
53
+ stdio: ['ignore', 'pipe', 'pipe', 'ipc'],
54
+ });
55
+ (_a = proc.stdout) === null || _a === void 0 ? void 0 : _a.on('data', (chunk) => {
56
+ const text = chunk.toString();
57
+ if (text.trim().length > 0) {
58
+ logger.info(`[Debug] astJsonDumper worker stdout:\n${text}`);
59
+ }
60
+ });
61
+ (_b = proc.stderr) === null || _b === void 0 ? void 0 : _b.on('data', (chunk) => {
62
+ const text = chunk.toString();
63
+ if (text.trim().length > 0) {
64
+ logger.error(`[Debug] astJsonDumper worker stderr:\n${text}`);
65
+ }
66
+ });
67
+ proc.on('exit', (code, signal) => {
68
+ onExit(proc, code, signal);
69
+ });
70
+ return proc;
71
+ }
72
+ function awaitWorkerArgvReply(proc, workerStillCurrent, disposeOnSendFail, context, argv) {
73
+ const state = new Int32Array(new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 2));
74
+ try {
75
+ proc.send({
76
+ type: 'run',
77
+ argv,
78
+ cwd: context.cwd,
79
+ envPath: context.env.PATH,
80
+ state: state.buffer,
81
+ });
82
+ }
83
+ catch (error) {
84
+ logger.error('[Debug] Failed to send astJsonDumper request to worker:', error);
85
+ disposeOnSendFail(proc);
86
+ return -1;
87
+ }
88
+ while (Atomics.load(state, 0) === 0) {
89
+ Atomics.wait(state, 0, 0, 1000);
90
+ if (!workerStillCurrent() || proc.exitCode !== null || proc.killed) {
91
+ logger.error('[Debug] astJsonDumper worker exited before replying.');
92
+ return -1;
93
+ }
94
+ }
95
+ return Atomics.load(state, 1);
96
+ }
97
+ function createPersistentWorkerRunner(addonAbsolutePath) {
98
+ let worker = null;
99
+ const disposeWorker = (proc) => {
100
+ if (worker === proc) {
101
+ worker = null;
102
+ }
103
+ if (proc.exitCode === null && !proc.killed) {
104
+ proc.kill();
105
+ }
106
+ };
107
+ const ensureWorker = () => {
108
+ if (worker && worker.exitCode === null && !worker.killed) {
109
+ return worker;
110
+ }
111
+ const proc = startNewAstJsonWorker(addonAbsolutePath, (exitedProc, code, signal) => {
112
+ if (worker === exitedProc) {
113
+ worker = null;
114
+ }
115
+ logger.warn(`[Debug] astJsonDumper worker exited (code=${code}, signal=${signal}).`);
116
+ });
117
+ worker = proc;
118
+ return proc;
119
+ };
120
+ return (context, ...argv) => {
121
+ const proc = ensureWorker();
122
+ return awaitWorkerArgvReply(proc, () => worker === proc, disposeWorker, context, argv);
123
+ };
124
+ }
125
+ function logSpawnSyncFailure(result) {
126
+ if (result.stdout) {
127
+ logger.error(`[Debug] child stdout:\n${result.stdout}`);
128
+ }
129
+ if (result.stderr) {
130
+ logger.error(`[Debug] child stderr:\n${result.stderr}`);
131
+ }
132
+ logger.error(`[Debug] astJsonDumper child exited with code ${result.status}`);
133
+ return -1;
134
+ }
135
+ function runArgvInSubprocess(context, ...argv) {
136
+ const addonPath = (0, astUtils_1.getAstJsonDumperNodePath)();
137
+ const childScript = 'const addon = require(process.argv[1]); ' +
138
+ 'const rc = addon.runArgv(process.argv.slice(2)); ' +
139
+ "process.exitCode = typeof rc === 'number' ? rc : 1;";
140
+ const quoted = ['-e', childScript, addonPath, ...argv]
141
+ .map((arg) => (arg.includes(' ') ? `"${arg}"` : arg))
142
+ .join(' ');
143
+ logger.info('================================================================');
144
+ logger.info(`[Debug] CWD: ${context.cwd}`);
145
+ logger.info(`[Debug] astJsonDumper.node: ${addonPath}`);
146
+ logger.info(`[Debug] CMD: "${process.execPath}" ${quoted}`);
147
+ logger.info('================================================================');
148
+ if (!fs.existsSync(addonPath)) {
149
+ logger.error(`[Debug] Missing addon: ${addonPath}`);
150
+ return -1;
151
+ }
152
+ const result = (0, node_child_process_1.spawnSync)(process.execPath, ['-e', childScript, addonPath, ...argv], {
153
+ stdio: ['inherit', 'pipe', 'pipe'],
154
+ encoding: 'utf-8',
155
+ env: context.env,
156
+ cwd: context.cwd,
157
+ });
158
+ if (result.status !== 0) {
159
+ return logSpawnSyncFailure(result);
160
+ }
161
+ return 0;
162
+ }
163
+ function shouldIsolateRuns() {
164
+ if (!('ARKANALYZER_AST_JSON_SUBPROCESS' in process.env)) {
165
+ return true;
166
+ }
167
+ return process.env.VITEST === 'true';
168
+ }
169
+ function getRunArgv() {
170
+ if (!selectedRunArgv) {
171
+ selectedRunArgv = shouldIsolateRuns()
172
+ ? runArgvInSubprocess
173
+ : createPersistentWorkerRunner((0, astUtils_1.getAstJsonDumperNodePath)());
174
+ }
175
+ return selectedRunArgv;
176
+ }
177
+ function runAstJsonArgv(argv, context) {
178
+ return getRunArgv()(context, ...argv);
179
+ }
180
+ exports.runAstJsonArgv = runAstJsonArgv;
@@ -7,7 +7,7 @@ import { AliasType } from '../../../core/base/Type';
7
7
  import { ArkMethod } from '../../../core/model/ArkMethod';
8
8
  import { FullPosition } from '../../../core/base/Position';
9
9
  import { ArkIRTransformer } from '../../../core/common/ArkIRTransformer';
10
- import { CxxAstNode, CxxTranslationUnit } from '../ast/ArkCxxAstNode';
10
+ import { CxxAstNode, CxxTranslationUnit } from '../ast';
11
11
  export type ValueAndStmts = {
12
12
  value: Value;
13
13
  valueOriginalPositions: FullPosition[];
@@ -1 +1 @@
1
- {"version":3,"file":"ArkIRTransformer.d.ts","sourceRoot":"","sources":["../../../../src/frontend/cppFrontend/common/ArkIRTransformer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArkIRTransformer.d.ts","sourceRoot":"","sources":["../../../../src/frontend/cppFrontend/common/ArkIRTransformer.ts"],"names":[],"mappings":"AAeA,OAAO,EAYH,aAAa,EAChB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAMH,SAAS,EACZ,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEjD,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EACH,sBAAsB,EAOtB,IAAI,EACP,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACH,SAAS,EASZ,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAmB,MAAM,6BAA6B,CAAC;AAW5E,OAAO,EAAE,gBAAgB,EAAa,MAAM,uCAAuC,CAAC;AAMpF,OAAO,EAAW,UAAU,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAQjE,MAAM,MAAM,aAAa,GAAG;IACxB,KAAK,EAAE,KAAK,CAAC;IACb,sBAAsB,EAAE,YAAY,EAAE,CAAC;IACvC,KAAK,EAAE,IAAI,EAAE,CAAC;CACjB,CAAC;AAUF,qBAAa,mBAAoB,SAAQ,gBAAgB;IACrD,gBAAuB,4BAA4B,YAAY;IAC/D,gBAAuB,qBAAqB,WAAW;IACvD,gBAAuB,2BAA2B,YAAY;IAC9D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,sBAAsB,CAAyB;IACvD,OAAO,CAAC,iBAAiB,CAAe;gBAE5B,UAAU,EAAE,kBAAkB,EAAE,eAAe,EAAE,SAAS;IAM/D,SAAS,IAAI,GAAG,CAAC,KAAK,CAAC;IAIvB,UAAU,IAAI,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI;IAI3C,YAAY,IAAI,KAAK;IAIrB,eAAe,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;IAInE,aAAa,IAAI,IAAI,EAAE;IAe9B,OAAO,CAAC,gCAAgC;IAgBxC,8DAA8D;IACvD,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE;IAwF/C,OAAO,CAAC,0BAA0B;IAWlC,OAAO,CAAC,kBAAkB;IA+B1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAoB3B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAQ/B;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAiBpC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAWhC;;OAEG;IACH,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,uBAAuB;IAW/B,OAAO,CAAC,mBAAmB;IAqC3B,OAAO,CAAC,wBAAwB;IAgBhC,OAAO,CAAC,wBAAwB;IAmEhC,OAAO,CAAC,sBAAsB;IA2B9B,OAAO,CAAC,uBAAuB;IAsC/B,OAAO,CAAC,qBAAqB;IA2B7B,OAAO,CAAC,wBAAwB;IAgBhC,OAAO,CAAC,qBAAqB;IA2B7B,sEAAsE;IAC/D,sBAAsB,CAAC,IAAI,EAAE,UAAU,GAAG,aAAa;IAI9D,OAAO,CAAC,yBAAyB;IAgCjC,OAAO,CAAC,6BAA6B;IAerC,OAAO,CAAC,iBAAiB;IA4BzB,qDAAqD;IAC9C,iCAAiC,CAAC,eAAe,EAAE,UAAU,GAAG,aAAa,EAAE;IAqDtF;;;;;;;;OAQG;IACH,OAAO,CAAC,sBAAsB;IAkC9B,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,2BAA2B;IA4CnC,OAAO,CAAC,iBAAiB;IAsDzB,OAAO,CAAC,uBAAuB;IAY/B,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,iCAAiC;IAIlC,qBAAqB,CAAC,WAAW,EAAE,UAAU,EAAE,KAAK,GAAE,MAAU,EAAE,OAAO,CAAC,EAAE;QAC/E,aAAa,EAAE,KAAK,GAAG,SAAS,CAAA;KACnC,GAAG,IAAI,EAAE;IAgCV,OAAO,CAAC,wBAAwB;IAiBzB,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAUjE;;;;;OAKG;WACW,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAiBnE,0BAA0B,CAAC,KAAK,EAAE,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,GAAG,aAAa;IAwBtG,OAAO,CAAC,oBAAoB;IAqB5B,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,wBAAwB;IAgBzB,2BAA2B,CAAC,wBAAwB,EAAE,OAAO,GAAG,IAAI;CAE9E"}
@@ -57,7 +57,7 @@ const builderUtils_1 = require("../model/builder/builderUtils");
57
57
  const ModelUtils_1 = require("../../../core/common/ModelUtils");
58
58
  const ArkClass_1 = require("../../../core/model/ArkClass");
59
59
  const ArkClassBuilder_1 = require("../model/builder/ArkClassBuilder");
60
- const ArkCxxAstNode_1 = require("../ast/ArkCxxAstNode");
60
+ const ast_1 = require("../ast");
61
61
  const ValueUtil_2 = require("../../../core/common/ValueUtil");
62
62
  const Type_2 = require("../base/Type");
63
63
  const builderUtils_2 = require("../../../core/model/builder/builderUtils");
@@ -104,94 +104,94 @@ class ArkCxxIRTransformer extends ArkIRTransformer_1.ArkIRTransformer {
104
104
  }
105
105
  // Determine whether to generate temporary variable assignment statement based on operator
106
106
  shouldGenerateCxxExtraAssignStmt(expression) {
107
- if (expression.kind === ArkCxxAstNode_1.astKind.ParentExpr) {
107
+ if (expression.kind === ast_1.astKind.ParentExpr) {
108
108
  return this.shouldGenerateCxxExtraAssignStmt(expression.inner[0]);
109
109
  }
110
- return !((expression.kind === ArkCxxAstNode_1.astKind.BinaryOperator && expression.opcode === '=') ||
110
+ return !((expression.kind === ast_1.astKind.BinaryOperator && expression.opcode === '=') ||
111
111
  ArkValueTransformer_1.ArkCxxValueTransformer.isCxxCompoundAssignmentOperator(expression.opcode) ||
112
- expression.kind === ArkCxxAstNode_1.astKind.CXXNewExpr ||
113
- expression.kind === ArkCxxAstNode_1.astKind.CallExpr ||
114
- (expression.kind === ArkCxxAstNode_1.astKind.UnaryOperator && (expression.opcode === '++' || expression.opcode === '--')) ||
115
- expression.kind === ArkCxxAstNode_1.astKind.CXXOperatorCallExpr ||
116
- expression.kind === ArkCxxAstNode_1.astKind.CXXConstructExpr ||
117
- expression.kind === ArkCxxAstNode_1.astKind.CXXCtorInitializer);
112
+ expression.kind === ast_1.astKind.CXXNewExpr ||
113
+ expression.kind === ast_1.astKind.CallExpr ||
114
+ (expression.kind === ast_1.astKind.UnaryOperator && (expression.opcode === '++' || expression.opcode === '--')) ||
115
+ expression.kind === ast_1.astKind.CXXOperatorCallExpr ||
116
+ expression.kind === ast_1.astKind.CXXConstructExpr ||
117
+ expression.kind === ast_1.astKind.CXXCtorInitializer);
118
118
  }
119
119
  /** The main function for converting C++ AST nodes to Stmts */
120
120
  cxxNodeToStmts(node) {
121
121
  let stmts = [];
122
122
  switch (node.kind) {
123
- case ArkCxxAstNode_1.astKind.ParmVarDecl:
123
+ case ast_1.astKind.ParmVarDecl:
124
124
  stmts = this.cxxParameterToStmts(node);
125
125
  break;
126
- case ArkCxxAstNode_1.astKind.BreakStmt:
127
- case ArkCxxAstNode_1.astKind.ContinueStmt:
128
- case ArkCxxAstNode_1.astKind.GotoStmt:
126
+ case ast_1.astKind.BreakStmt:
127
+ case ast_1.astKind.ContinueStmt:
128
+ case ast_1.astKind.GotoStmt:
129
129
  stmts = [];
130
130
  break;
131
- case ArkCxxAstNode_1.astKind.CXXRewrittenBinaryOperator:
132
- case ArkCxxAstNode_1.astKind.BinaryOperator:
133
- case ArkCxxAstNode_1.astKind.CallExpr:
134
- case ArkCxxAstNode_1.astKind.CompoundAssignOperator:
135
- case ArkCxxAstNode_1.astKind.CXXConstructExpr:
136
- case ArkCxxAstNode_1.astKind.CXXOperatorCallExpr:
137
- case ArkCxxAstNode_1.astKind.UnaryOperator:
138
- case ArkCxxAstNode_1.astKind.RecoveryExpr:
139
- case ArkCxxAstNode_1.astKind.CXXDeleteExpr:
140
- case ArkCxxAstNode_1.astKind.AtomicCallExpr:
141
- case ArkCxxAstNode_1.astKind.CXXCtorInitializer:
131
+ case ast_1.astKind.CXXRewrittenBinaryOperator:
132
+ case ast_1.astKind.BinaryOperator:
133
+ case ast_1.astKind.CallExpr:
134
+ case ast_1.astKind.CompoundAssignOperator:
135
+ case ast_1.astKind.CXXConstructExpr:
136
+ case ast_1.astKind.CXXOperatorCallExpr:
137
+ case ast_1.astKind.UnaryOperator:
138
+ case ast_1.astKind.RecoveryExpr:
139
+ case ast_1.astKind.CXXDeleteExpr:
140
+ case ast_1.astKind.AtomicCallExpr:
141
+ case ast_1.astKind.CXXCtorInitializer:
142
142
  stmts = this.cxxExpressionStatementToStmts(node);
143
143
  break;
144
- case ArkCxxAstNode_1.astKind.DeclStmt:
144
+ case ast_1.astKind.DeclStmt:
145
145
  stmts = this.cxxDeclStatementToStmts(node);
146
146
  break;
147
- case ArkCxxAstNode_1.astKind.VarDecl:
147
+ case ast_1.astKind.VarDecl:
148
148
  stmts = this.cxxVariableDeclarationListToStmts(node);
149
149
  break;
150
- case ArkCxxAstNode_1.astKind.CompoundStmt:
150
+ case ast_1.astKind.CompoundStmt:
151
151
  stmts = this.compoundToStmts(node);
152
152
  break;
153
- case ArkCxxAstNode_1.astKind.CXXMemberCallExpr:
153
+ case ast_1.astKind.CXXMemberCallExpr:
154
154
  stmts = this.memberCallExprToStmts(node);
155
155
  break;
156
- case ArkCxxAstNode_1.astKind.CXXCatchStmt:
156
+ case ast_1.astKind.CXXCatchStmt:
157
157
  stmts = this.cxxCatchClauseToStmts(node);
158
158
  break;
159
- case ArkCxxAstNode_1.astKind.CXXThrowExpr:
159
+ case ast_1.astKind.CXXThrowExpr:
160
160
  stmts = this.cxxThrowStatementToStmts(node);
161
161
  break;
162
- case ArkCxxAstNode_1.astKind.DoStmt:
162
+ case ast_1.astKind.DoStmt:
163
163
  stmts = this.cxxDoStatementToStmts(node);
164
164
  break;
165
- case ArkCxxAstNode_1.astKind.ExprWithCleanups:
165
+ case ast_1.astKind.ExprWithCleanups:
166
166
  stmts = this.expressionWithCleanup(node);
167
167
  break;
168
- case ArkCxxAstNode_1.astKind.ForStmt:
168
+ case ast_1.astKind.ForStmt:
169
169
  stmts = this.cxxForStatementToStmts(node);
170
170
  break;
171
- case ArkCxxAstNode_1.astKind.IfStmt:
171
+ case ast_1.astKind.IfStmt:
172
172
  stmts = this.cxxIfStatementToStmts(node);
173
173
  break;
174
- case ArkCxxAstNode_1.astKind.ReturnStmt:
174
+ case ast_1.astKind.ReturnStmt:
175
175
  stmts = this.cxxReturnStatementToStmts(node);
176
176
  break;
177
- case ArkCxxAstNode_1.astKind.WhileStmt:
177
+ case ast_1.astKind.WhileStmt:
178
178
  stmts = this.cxxWhileStatementToStmts(node);
179
179
  break;
180
- case ArkCxxAstNode_1.astKind.CXXForRangeStmt:
180
+ case ast_1.astKind.CXXForRangeStmt:
181
181
  stmts = this.forRangeStatementToStmts(node);
182
182
  break;
183
- case ArkCxxAstNode_1.astKind.TypedefDecl:
184
- case ArkCxxAstNode_1.astKind.TypeAliasDecl:
183
+ case ast_1.astKind.TypedefDecl:
184
+ case ast_1.astKind.TypeAliasDecl:
185
185
  stmts = this.typeDefDeclToStmts(node);
186
186
  break;
187
- case ArkCxxAstNode_1.astKind.TypeAliasTemplateDecl:
187
+ case ast_1.astKind.TypeAliasTemplateDecl:
188
188
  stmts = this.typeDefDeclToStmts(node);
189
189
  break;
190
- case ArkCxxAstNode_1.astKind.EnumDecl:
191
- case ArkCxxAstNode_1.astKind.CXXRecordDecl:
190
+ case ast_1.astKind.EnumDecl:
191
+ case ast_1.astKind.CXXRecordDecl:
192
192
  stmts = this.cxxClassDeclarationToStmts(node);
193
193
  break;
194
- case ArkCxxAstNode_1.astKind.DecompositionDecl:
194
+ case ast_1.astKind.DecompositionDecl:
195
195
  stmts = this.decompositionDeclToStmts(node);
196
196
  break;
197
197
  default:
@@ -241,7 +241,7 @@ class ArkCxxIRTransformer extends ArkIRTransformer_1.ArkIRTransformer {
241
241
  preprocessTypeAlias(node) {
242
242
  var _a, _b;
243
243
  let targetDecl = node;
244
- if (node.kind === ArkCxxAstNode_1.astKind.TypeAliasTemplateDecl) {
244
+ if (node.kind === ast_1.astKind.TypeAliasTemplateDecl) {
245
245
  targetDecl = node.inner[node.inner.length - 1];
246
246
  }
247
247
  const typeNode = Array.isArray(targetDecl.inner) ? targetDecl.inner[0] : undefined;
@@ -267,7 +267,7 @@ class ArkCxxIRTransformer extends ArkIRTransformer_1.ArkIRTransformer {
267
267
  configureTemplateAndTypename(node, aliasType, rightOp, initialRightType) {
268
268
  var _a;
269
269
  // Handle Template Alias
270
- if (node.kind === ArkCxxAstNode_1.astKind.TypeAliasTemplateDecl) {
270
+ if (node.kind === ast_1.astKind.TypeAliasTemplateDecl) {
271
271
  const genericTypes = (0, builderUtils_1.buildTypeParameters)(node, this.cxxSourceFile, this.declaringMethod);
272
272
  aliasType.setGenericTypes(genericTypes);
273
273
  aliasType.setOriginalType((0, builderUtils_2.buildGenericType)(initialRightType, aliasType));
@@ -284,9 +284,9 @@ class ArkCxxIRTransformer extends ArkIRTransformer_1.ArkIRTransformer {
284
284
  * Extracts real generic types from TemplateTypeParmDecl nodes and sets them on the expression.
285
285
  */
286
286
  populateRealGenericTypes(node, expr) {
287
- if (node.kind === ArkCxxAstNode_1.astKind.TypeAliasTemplateDecl) {
287
+ if (node.kind === ast_1.astKind.TypeAliasTemplateDecl) {
288
288
  const realGenericTypes = [];
289
- node.inner.filter(inn => inn.kind === ArkCxxAstNode_1.astKind.TemplateTypeParmDecl)
289
+ node.inner.filter(inn => inn.kind === ast_1.astKind.TemplateTypeParmDecl)
290
290
  .forEach(typeArgument => {
291
291
  realGenericTypes.push((0, builderUtils_1.cxxNode2Type)(typeArgument, this.declaringMethod));
292
292
  });
@@ -373,8 +373,8 @@ class ArkCxxIRTransformer extends ArkIRTransformer_1.ArkIRTransformer {
373
373
  const castExpr = new Expr_1.ArkCastExpr(yieldValue, Type_1.UnknownType.getInstance());
374
374
  const castExprPositions = [yieldValuePositions[0], ...yieldValuePositions];
375
375
  let declStmts = forOfStatement.inner[0];
376
- declStmts = declStmts.kind === ArkCxxAstNode_1.astKind.DeclStmt ? declStmts.inner[0] : declStmts;
377
- if (declStmts.kind === ArkCxxAstNode_1.astKind.VarDecl) {
376
+ declStmts = declStmts.kind === ast_1.astKind.DeclStmt ? declStmts.inner[0] : declStmts;
377
+ if (declStmts.kind === ast_1.astKind.VarDecl) {
378
378
  const { value: initValue, valueOriginalPositions: initOriPos, stmts: initStmts, } = this.ArkCxxValueTransformer.cxxVariableDeclarationToValueAndStmts(declStmts, false);
379
379
  const assignStmt = new Stmt_1.ArkAssignStmt(initValue, castExpr);
380
380
  assignStmt.setOperandOriginalPositions([...initOriPos, ...castExprPositions]);
@@ -382,7 +382,7 @@ class ArkCxxIRTransformer extends ArkIRTransformer_1.ArkIRTransformer {
382
382
  stmts.push(...initStmts);
383
383
  // Processing structured binding under cyclic conditions
384
384
  }
385
- else if (declStmts.kind === ArkCxxAstNode_1.astKind.DecompositionDecl) {
385
+ else if (declStmts.kind === ast_1.astKind.DecompositionDecl) {
386
386
  const { stmts: initStmts, } = this.ArkCxxValueTransformer.bindingNodeToValueAndStmts(declStmts, yieldValue);
387
387
  stmts.push(...initStmts);
388
388
  }
@@ -570,7 +570,7 @@ class ArkCxxIRTransformer extends ArkIRTransformer_1.ArkIRTransformer {
570
570
  });
571
571
  // switchNode.inner[length - 1] is the cases
572
572
  for (const clause of switchStatement.inner[switchStatement.inner.length - 1].inner) {
573
- if (clause.kind.toString() === ArkCxxAstNode_1.astKind.CaseStmt) {
573
+ if (clause.kind.toString() === ast_1.astKind.CaseStmt) {
574
574
  const clauseStmts = [];
575
575
  let { value: clauseValue, valueOriginalPositions: clausePositions, stmts: clauseTempStmts, } = this.cxxNodeToValueAndStmts(clause.inner[0]);
576
576
  clauseStmts.push(...clauseTempStmts);
@@ -751,24 +751,24 @@ class ArkCxxIRTransformer extends ArkIRTransformer_1.ArkIRTransformer {
751
751
  }
752
752
  cxxIfStatementToStmts(ifStatement, depth = 0, context) {
753
753
  const stmts = [];
754
- if (ifStatement.kind === ArkCxxAstNode_1.astKind.IfStmt) {
754
+ if (ifStatement.kind === ast_1.astKind.IfStmt) {
755
755
  return this.cxxIfStatementToStmts(ifStatement.inner[0], depth);
756
756
  }
757
- else if (ifStatement.kind === ArkCxxAstNode_1.astKind.BinaryOperator && ifStatement.opcode === '||') {
757
+ else if (ifStatement.kind === ast_1.astKind.BinaryOperator && ifStatement.opcode === '||') {
758
758
  // || The child of a node must have two child nodes
759
759
  stmts.push(...this.cxxIfStatementToStmts(ifStatement.inner[0], depth + 1));
760
760
  stmts.push(new ArkIRTransformer_1.DummyStmt(ArkCxxIRTransformer.DUMMY_IF_OPERATOR_OR_SIGNAL + depth));
761
761
  stmts.push(...this.cxxIfStatementToStmts(ifStatement.inner[1], depth + 1));
762
762
  stmts.push(new ArkIRTransformer_1.DummyStmt(ArkCxxIRTransformer.DUMMY_IF_OPERATOR_END + depth));
763
763
  }
764
- else if (ifStatement.kind === ArkCxxAstNode_1.astKind.BinaryOperator && ifStatement.opcode === '&&') {
764
+ else if (ifStatement.kind === ast_1.astKind.BinaryOperator && ifStatement.opcode === '&&') {
765
765
  // && The child of a node must have two child nodes
766
766
  stmts.push(...this.cxxIfStatementToStmts(ifStatement.inner[0], depth + 1));
767
767
  stmts.push(new ArkIRTransformer_1.DummyStmt(ArkCxxIRTransformer.DUMMY_IF_OPERATOR_AND_SIGNAL + depth));
768
768
  stmts.push(...this.cxxIfStatementToStmts(ifStatement.inner[1], depth + 1));
769
769
  stmts.push(new ArkIRTransformer_1.DummyStmt(ArkCxxIRTransformer.DUMMY_IF_OPERATOR_END + depth));
770
770
  }
771
- else if (ifStatement.kind === ArkCxxAstNode_1.astKind.ParenExpr) {
771
+ else if (ifStatement.kind === ast_1.astKind.ParenExpr) {
772
772
  return this.cxxIfStatementToStmts(ifStatement.inner[0], depth);
773
773
  }
774
774
  else {
@@ -2,7 +2,7 @@ import { Value } from '../../../core/base/Value';
2
2
  import { ArkMethod } from '../../../core/model/ArkMethod';
3
3
  import { ArkCxxIRTransformer, ValueAndStmts } from './ArkIRTransformer';
4
4
  import { ArkValueTransformer } from '../../../core/common/ArkValueTransformer';
5
- import { CxxAstNode, CxxTranslationUnit } from '../ast/ArkCxxAstNode';
5
+ import { CxxAstNode, CxxTranslationUnit } from '../ast';
6
6
  export declare class ArkCxxValueTransformer extends ArkValueTransformer {
7
7
  private ArkCxxIRTransformer;
8
8
  private readonly cxxSourceFile;
@@ -1 +1 @@
1
- {"version":3,"file":"ArkValueTransformer.d.ts","sourceRoot":"","sources":["../../../../src/frontend/cppFrontend/common/ArkValueTransformer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArkValueTransformer.d.ts","sourceRoot":"","sources":["../../../../src/frontend/cppFrontend/common/ArkValueTransformer.ts"],"names":[],"mappings":"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"}