arkanalyzer 1.0.86 → 1.0.88

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 (422) hide show
  1. package/README.en.md +69 -65
  2. package/README.md +56 -70
  3. package/config/arkanalyzer.json +7 -2
  4. package/docs/cppFrontend/ArkAnalyzer-cpp_usage_guide.md +245 -0
  5. package/docs/cppFrontend/cpp_frontend_build_guide.md +126 -0
  6. package/docs/cppFrontend/cpp_frontend_user_guide.md +175 -0
  7. package/docs/cppFrontend/img.png +0 -0
  8. package/docs/cppFrontend/img_1.png +0 -0
  9. package/docs/cppFrontend/img_10.png +0 -0
  10. package/docs/cppFrontend/img_11.png +0 -0
  11. package/docs/cppFrontend/img_12.png +0 -0
  12. package/docs/cppFrontend/img_13.png +0 -0
  13. package/docs/cppFrontend/img_14.png +0 -0
  14. package/docs/cppFrontend/img_15.png +0 -0
  15. package/docs/cppFrontend/img_16.png +0 -0
  16. package/docs/cppFrontend/img_17.png +0 -0
  17. package/docs/cppFrontend/img_18.png +0 -0
  18. package/docs/cppFrontend/img_19.png +0 -0
  19. package/docs/cppFrontend/img_2.png +0 -0
  20. package/docs/cppFrontend/img_20.png +0 -0
  21. package/docs/cppFrontend/img_21.png +0 -0
  22. package/docs/cppFrontend/img_22.png +0 -0
  23. package/docs/cppFrontend/img_23.png +0 -0
  24. package/docs/cppFrontend/img_3.png +0 -0
  25. package/docs/cppFrontend/img_4.png +0 -0
  26. package/docs/cppFrontend/img_5.png +0 -0
  27. package/docs/cppFrontend/img_6.png +0 -0
  28. package/docs/cppFrontend/img_7.png +0 -0
  29. package/docs/cppFrontend/img_8.png +0 -0
  30. package/docs/cppFrontend/img_9.png +0 -0
  31. package/docs/sig_programanalysis.en.md +66 -0
  32. package/docs/sig_programanalysis.md +73 -0
  33. package/lib/Config.d.ts +35 -1
  34. package/lib/Config.d.ts.map +1 -1
  35. package/lib/Config.js +91 -2
  36. package/lib/Scene.d.ts +25 -2
  37. package/lib/Scene.d.ts.map +1 -1
  38. package/lib/Scene.js +151 -44
  39. package/lib/callgraph/algorithm/AbstractAnalysis.d.ts +4 -3
  40. package/lib/callgraph/algorithm/AbstractAnalysis.d.ts.map +1 -1
  41. package/lib/callgraph/algorithm/AbstractAnalysis.js +17 -17
  42. package/lib/callgraph/algorithm/RapidTypeAnalysis.d.ts +6 -1
  43. package/lib/callgraph/algorithm/RapidTypeAnalysis.d.ts.map +1 -1
  44. package/lib/callgraph/algorithm/RapidTypeAnalysis.js +117 -14
  45. package/lib/callgraph/common/Statistics.d.ts +4 -2
  46. package/lib/callgraph/common/Statistics.d.ts.map +1 -1
  47. package/lib/callgraph/common/Statistics.js +14 -2
  48. package/lib/callgraph/model/CallGraph.d.ts +12 -8
  49. package/lib/callgraph/model/CallGraph.d.ts.map +1 -1
  50. package/lib/callgraph/model/CallGraph.js +53 -29
  51. package/lib/callgraph/model/builder/CallGraphBuilder.d.ts +1 -0
  52. package/lib/callgraph/model/builder/CallGraphBuilder.d.ts.map +1 -1
  53. package/lib/callgraph/model/builder/CallGraphBuilder.js +5 -1
  54. package/lib/callgraph/pointerAnalysis/Pag.d.ts.map +1 -1
  55. package/lib/callgraph/pointerAnalysis/Pag.js +3 -0
  56. package/lib/callgraph/pointerAnalysis/PointerAnalysis.js +4 -2
  57. package/lib/cli/cli.d.ts +3 -0
  58. package/lib/cli/cli.d.ts.map +1 -0
  59. package/lib/cli/cli.js +82 -0
  60. package/lib/cli/commands/cg.d.ts +53 -0
  61. package/lib/cli/commands/cg.d.ts.map +1 -0
  62. package/lib/cli/commands/cg.js +404 -0
  63. package/lib/cli/commands/index.d.ts +6 -0
  64. package/lib/cli/commands/index.d.ts.map +1 -0
  65. package/lib/cli/commands/index.js +64 -0
  66. package/lib/cli/commands/ir.d.ts +26 -0
  67. package/lib/cli/commands/ir.d.ts.map +1 -0
  68. package/lib/cli/commands/ir.js +94 -0
  69. package/lib/core/base/Constant.d.ts +1 -1
  70. package/lib/core/base/Constant.d.ts.map +1 -1
  71. package/lib/core/base/Constant.js +1 -1
  72. package/lib/core/base/Expr.d.ts +29 -5
  73. package/lib/core/base/Expr.d.ts.map +1 -1
  74. package/lib/core/base/Expr.js +145 -23
  75. package/lib/core/base/Position.d.ts +14 -0
  76. package/lib/core/base/Position.d.ts.map +1 -1
  77. package/lib/core/base/Position.js +27 -0
  78. package/lib/core/base/Ref.d.ts +1 -0
  79. package/lib/core/base/Ref.d.ts.map +1 -1
  80. package/lib/core/base/Ref.js +4 -1
  81. package/lib/core/base/Type.d.ts +64 -24
  82. package/lib/core/base/Type.d.ts.map +1 -1
  83. package/lib/core/base/Type.js +144 -49
  84. package/lib/core/common/ArkError.d.ts +26 -2
  85. package/lib/core/common/ArkError.d.ts.map +1 -1
  86. package/lib/core/common/ArkError.js +56 -2
  87. package/lib/core/common/ArkIRTransformer.d.ts +11 -10
  88. package/lib/core/common/ArkIRTransformer.d.ts.map +1 -1
  89. package/lib/core/common/ArkIRTransformer.js +1 -1
  90. package/lib/core/common/ArkValueTransformer.d.ts +14 -12
  91. package/lib/core/common/ArkValueTransformer.d.ts.map +1 -1
  92. package/lib/core/common/ArkValueTransformer.js +1 -5
  93. package/lib/core/common/Const.d.ts +4 -0
  94. package/lib/core/common/Const.d.ts.map +1 -1
  95. package/lib/core/common/Const.js +5 -1
  96. package/lib/core/common/DummyMainCreater.d.ts +23 -13
  97. package/lib/core/common/DummyMainCreater.d.ts.map +1 -1
  98. package/lib/core/common/DummyMainCreater.js +66 -43
  99. package/lib/core/common/EtsConst.d.ts +11 -0
  100. package/lib/core/common/EtsConst.d.ts.map +1 -1
  101. package/lib/core/common/EtsConst.js +12 -1
  102. package/lib/core/common/IRInference.d.ts.map +1 -1
  103. package/lib/core/common/IRInference.js +6 -2
  104. package/lib/core/common/IRUtils.d.ts.map +1 -1
  105. package/lib/core/common/IRUtils.js +3 -33
  106. package/lib/core/common/ModelUtils.d.ts +4 -7
  107. package/lib/core/common/ModelUtils.d.ts.map +1 -1
  108. package/lib/core/common/ModelUtils.js +77 -110
  109. package/lib/core/common/SdkUtils.d.ts +1 -1
  110. package/lib/core/common/SdkUtils.d.ts.map +1 -1
  111. package/lib/core/common/SdkUtils.js +14 -5
  112. package/lib/core/common/TypeInference.d.ts.map +1 -1
  113. package/lib/core/common/TypeInference.js +9 -3
  114. package/lib/core/graph/BaseExplicitGraph.d.ts +4 -4
  115. package/lib/core/graph/BaseExplicitGraph.d.ts.map +1 -1
  116. package/lib/core/graph/BaseExplicitGraph.js +15 -8
  117. package/lib/core/graph/BasicBlock.d.ts.map +1 -1
  118. package/lib/core/graph/Scc.d.ts.map +1 -1
  119. package/lib/core/graph/Scc.js +7 -2
  120. package/lib/core/graph/builder/CfgBuilder.d.ts +10 -7
  121. package/lib/core/graph/builder/CfgBuilder.d.ts.map +1 -1
  122. package/lib/core/graph/builder/CfgBuilder.js +12 -5
  123. package/lib/core/inference/Inference.d.ts.map +1 -1
  124. package/lib/core/inference/Inference.js +7 -0
  125. package/lib/core/inference/ModelInference.d.ts +1 -1
  126. package/lib/core/inference/ModelInference.d.ts.map +1 -1
  127. package/lib/core/inference/ValueInference.d.ts +3 -2
  128. package/lib/core/inference/ValueInference.d.ts.map +1 -1
  129. package/lib/core/inference/ValueInference.js +64 -12
  130. package/lib/core/inference/abc/AbcInference.d.ts +28 -2
  131. package/lib/core/inference/abc/AbcInference.d.ts.map +1 -1
  132. package/lib/core/inference/abc/AbcInference.js +105 -4
  133. package/lib/core/model/ArkBaseModel.d.ts +14 -1
  134. package/lib/core/model/ArkBaseModel.d.ts.map +1 -1
  135. package/lib/core/model/ArkBaseModel.js +61 -2
  136. package/lib/core/model/ArkBody.d.ts.map +1 -1
  137. package/lib/core/model/ArkBody.js +1 -3
  138. package/lib/core/model/ArkClass.d.ts +25 -2
  139. package/lib/core/model/ArkClass.d.ts.map +1 -1
  140. package/lib/core/model/ArkClass.js +72 -30
  141. package/lib/core/model/ArkField.d.ts.map +1 -1
  142. package/lib/core/model/ArkField.js +3 -1
  143. package/lib/core/model/ArkFile.d.ts +4 -1
  144. package/lib/core/model/ArkFile.d.ts.map +1 -1
  145. package/lib/core/model/ArkFile.js +44 -3
  146. package/lib/core/model/ArkImport.d.ts.map +1 -1
  147. package/lib/core/model/ArkImport.js +9 -1
  148. package/lib/core/model/ArkMetadata.d.ts +32 -1
  149. package/lib/core/model/ArkMetadata.d.ts.map +1 -1
  150. package/lib/core/model/ArkMetadata.js +28 -2
  151. package/lib/core/model/ArkMethod.d.ts +5 -0
  152. package/lib/core/model/ArkMethod.d.ts.map +1 -1
  153. package/lib/core/model/ArkMethod.js +33 -1
  154. package/lib/core/model/ArkNamespace.d.ts +2 -0
  155. package/lib/core/model/ArkNamespace.d.ts.map +1 -1
  156. package/lib/core/model/ArkNamespace.js +11 -0
  157. package/lib/core/model/ArkSignature.d.ts +3 -3
  158. package/lib/core/model/ArkSignature.d.ts.map +1 -1
  159. package/lib/core/model/ArkSignature.js +14 -9
  160. package/lib/core/model/builder/ArkClassBuilder.d.ts +2 -0
  161. package/lib/core/model/builder/ArkClassBuilder.d.ts.map +1 -1
  162. package/lib/core/model/builder/ArkClassBuilder.js +3 -3
  163. package/lib/core/model/builder/ArkMetadataBuilder.d.ts +21 -0
  164. package/lib/core/model/builder/ArkMetadataBuilder.d.ts.map +1 -0
  165. package/lib/core/model/builder/ArkMetadataBuilder.js +160 -0
  166. package/lib/core/model/builder/ArkMethodBuilder.d.ts +4 -1
  167. package/lib/core/model/builder/ArkMethodBuilder.d.ts.map +1 -1
  168. package/lib/core/model/builder/ArkMethodBuilder.js +50 -29
  169. package/lib/core/model/builder/ArkNamespaceBuilder.d.ts +1 -0
  170. package/lib/core/model/builder/ArkNamespaceBuilder.d.ts.map +1 -1
  171. package/lib/core/model/builder/ArkNamespaceBuilder.js +2 -1
  172. package/lib/core/model/builder/BodyBuilder.d.ts +4 -0
  173. package/lib/core/model/builder/BodyBuilder.d.ts.map +1 -1
  174. package/lib/core/model/builder/builderUtils.d.ts +1 -0
  175. package/lib/core/model/builder/builderUtils.d.ts.map +1 -1
  176. package/lib/core/model/builder/builderUtils.js +7 -3
  177. package/lib/frontend/cppFrontend/ast/ArkCxxAstNode.d.ts +296 -0
  178. package/lib/frontend/cppFrontend/ast/ArkCxxAstNode.d.ts.map +1 -0
  179. package/lib/frontend/cppFrontend/ast/ArkCxxAstNode.js +145 -0
  180. package/lib/frontend/cppFrontend/ast/astJsonNapi/napiApi.d.ts +8 -0
  181. package/lib/frontend/cppFrontend/ast/astJsonNapi/napiApi.d.ts.map +1 -0
  182. package/lib/frontend/cppFrontend/ast/astJsonNapi/napiApi.js +90 -0
  183. package/lib/frontend/cppFrontend/ast/astJsonNapi/napiRunner.d.ts +8 -0
  184. package/lib/frontend/cppFrontend/ast/astJsonNapi/napiRunner.d.ts.map +1 -0
  185. package/lib/frontend/cppFrontend/ast/astJsonNapi/napiRunner.js +183 -0
  186. package/lib/frontend/cppFrontend/ast/astParser.d.ts +25 -0
  187. package/lib/frontend/cppFrontend/ast/astParser.d.ts.map +1 -0
  188. package/lib/frontend/cppFrontend/ast/astParser.js +280 -0
  189. package/lib/frontend/cppFrontend/ast/astUtils.d.ts +18 -0
  190. package/lib/frontend/cppFrontend/ast/astUtils.d.ts.map +1 -0
  191. package/lib/frontend/cppFrontend/ast/astUtils.js +158 -0
  192. package/lib/frontend/cppFrontend/ast/const.d.ts +17 -0
  193. package/lib/frontend/cppFrontend/ast/const.d.ts.map +1 -0
  194. package/lib/frontend/cppFrontend/ast/const.js +58 -0
  195. package/lib/frontend/cppFrontend/ast/index.d.ts +5 -0
  196. package/lib/frontend/cppFrontend/ast/index.d.ts.map +1 -0
  197. package/lib/frontend/cppFrontend/ast/index.js +31 -0
  198. package/lib/frontend/cppFrontend/base/Constant.d.ts +9 -0
  199. package/lib/frontend/cppFrontend/base/Constant.d.ts.map +1 -0
  200. package/lib/frontend/cppFrontend/base/Constant.js +33 -0
  201. package/lib/frontend/cppFrontend/base/Expr.d.ts +174 -0
  202. package/lib/frontend/cppFrontend/base/Expr.d.ts.map +1 -0
  203. package/lib/frontend/cppFrontend/base/Expr.js +530 -0
  204. package/lib/frontend/cppFrontend/base/Ref.d.ts +25 -0
  205. package/lib/frontend/cppFrontend/base/Ref.d.ts.map +1 -0
  206. package/lib/frontend/cppFrontend/base/Ref.js +53 -0
  207. package/lib/frontend/cppFrontend/base/Trap.d.ts +8 -0
  208. package/lib/frontend/cppFrontend/base/Trap.d.ts.map +1 -0
  209. package/lib/frontend/cppFrontend/base/Trap.js +28 -0
  210. package/lib/frontend/cppFrontend/base/Type.d.ts +264 -0
  211. package/lib/frontend/cppFrontend/base/Type.d.ts.map +1 -0
  212. package/lib/frontend/cppFrontend/base/Type.js +600 -0
  213. package/lib/frontend/cppFrontend/common/ArkIRTransformer.d.ts +109 -0
  214. package/lib/frontend/cppFrontend/common/ArkIRTransformer.d.ts.map +1 -0
  215. package/lib/frontend/cppFrontend/common/ArkIRTransformer.js +925 -0
  216. package/lib/frontend/cppFrontend/common/ArkValueTransformer.d.ts +477 -0
  217. package/lib/frontend/cppFrontend/common/ArkValueTransformer.d.ts.map +1 -0
  218. package/lib/frontend/cppFrontend/common/ArkValueTransformer.js +2746 -0
  219. package/lib/frontend/cppFrontend/common/Builtin.d.ts +57 -0
  220. package/lib/frontend/cppFrontend/common/Builtin.d.ts.map +1 -0
  221. package/lib/frontend/cppFrontend/common/Builtin.js +106 -0
  222. package/lib/frontend/cppFrontend/common/IRInference.d.ts +94 -0
  223. package/lib/frontend/cppFrontend/common/IRInference.d.ts.map +1 -0
  224. package/lib/frontend/cppFrontend/common/IRInference.js +1087 -0
  225. package/lib/frontend/cppFrontend/common/IRUtils.d.ts +23 -0
  226. package/lib/frontend/cppFrontend/common/IRUtils.d.ts.map +1 -0
  227. package/lib/frontend/cppFrontend/common/IRUtils.js +168 -0
  228. package/lib/frontend/cppFrontend/common/ModelUtils.d.ts +44 -0
  229. package/lib/frontend/cppFrontend/common/ModelUtils.d.ts.map +1 -0
  230. package/lib/frontend/cppFrontend/common/ModelUtils.js +567 -0
  231. package/lib/frontend/cppFrontend/common/TypeInference.d.ts +278 -0
  232. package/lib/frontend/cppFrontend/common/TypeInference.d.ts.map +1 -0
  233. package/lib/frontend/cppFrontend/common/TypeInference.js +1354 -0
  234. package/lib/frontend/cppFrontend/common/ValueUtil.d.ts +16 -0
  235. package/lib/frontend/cppFrontend/common/ValueUtil.d.ts.map +1 -0
  236. package/lib/frontend/cppFrontend/common/ValueUtil.js +61 -0
  237. package/lib/frontend/cppFrontend/graph/builder/CfgBuilder.d.ts +182 -0
  238. package/lib/frontend/cppFrontend/graph/builder/CfgBuilder.d.ts.map +1 -0
  239. package/lib/frontend/cppFrontend/graph/builder/CfgBuilder.js +1435 -0
  240. package/lib/frontend/cppFrontend/graph/builder/ConditionBuilder.d.ts +21 -0
  241. package/lib/frontend/cppFrontend/graph/builder/ConditionBuilder.d.ts.map +1 -0
  242. package/lib/frontend/cppFrontend/graph/builder/ConditionBuilder.js +303 -0
  243. package/lib/frontend/cppFrontend/graph/builder/IfBuilder.d.ts +15 -0
  244. package/lib/frontend/cppFrontend/graph/builder/IfBuilder.d.ts.map +1 -0
  245. package/lib/frontend/cppFrontend/graph/builder/IfBuilder.js +161 -0
  246. package/lib/frontend/cppFrontend/graph/builder/LoopBuilder.d.ts +21 -0
  247. package/lib/frontend/cppFrontend/graph/builder/LoopBuilder.d.ts.map +1 -0
  248. package/lib/frontend/cppFrontend/graph/builder/LoopBuilder.js +261 -0
  249. package/lib/frontend/cppFrontend/graph/builder/SwitchBuilder.d.ts +12 -0
  250. package/lib/frontend/cppFrontend/graph/builder/SwitchBuilder.d.ts.map +1 -0
  251. package/lib/frontend/cppFrontend/graph/builder/SwitchBuilder.js +155 -0
  252. package/lib/frontend/cppFrontend/graph/builder/TrapBuilder.d.ts +29 -0
  253. package/lib/frontend/cppFrontend/graph/builder/TrapBuilder.d.ts.map +1 -0
  254. package/lib/frontend/cppFrontend/graph/builder/TrapBuilder.js +302 -0
  255. package/lib/frontend/cppFrontend/inference/CxxInference.d.ts +10 -0
  256. package/lib/frontend/cppFrontend/inference/CxxInference.d.ts.map +1 -0
  257. package/lib/frontend/cppFrontend/inference/CxxInference.js +41 -0
  258. package/lib/frontend/cppFrontend/inference/CxxModelInference.d.ts +28 -0
  259. package/lib/frontend/cppFrontend/inference/CxxModelInference.d.ts.map +1 -0
  260. package/lib/frontend/cppFrontend/inference/CxxModelInference.js +98 -0
  261. package/lib/frontend/cppFrontend/inference/CxxValueInference.d.ts +20 -0
  262. package/lib/frontend/cppFrontend/inference/CxxValueInference.d.ts.map +1 -0
  263. package/lib/frontend/cppFrontend/inference/CxxValueInference.js +128 -0
  264. package/lib/frontend/cppFrontend/model/builder/ArkClassBuilder.d.ts +11 -0
  265. package/lib/frontend/cppFrontend/model/builder/ArkClassBuilder.d.ts.map +1 -0
  266. package/lib/frontend/cppFrontend/model/builder/ArkClassBuilder.js +413 -0
  267. package/lib/frontend/cppFrontend/model/builder/ArkFieldBuilder.d.ts +5 -0
  268. package/lib/frontend/cppFrontend/model/builder/ArkFieldBuilder.d.ts.map +1 -0
  269. package/lib/frontend/cppFrontend/model/builder/ArkFieldBuilder.js +61 -0
  270. package/lib/frontend/cppFrontend/model/builder/ArkFileBuilder.d.ts +17 -0
  271. package/lib/frontend/cppFrontend/model/builder/ArkFileBuilder.d.ts.map +1 -0
  272. package/lib/frontend/cppFrontend/model/builder/ArkFileBuilder.js +284 -0
  273. package/lib/frontend/cppFrontend/model/builder/ArkImportBuilder.d.ts +6 -0
  274. package/lib/frontend/cppFrontend/model/builder/ArkImportBuilder.d.ts.map +1 -0
  275. package/lib/frontend/cppFrontend/model/builder/ArkImportBuilder.js +57 -0
  276. package/lib/frontend/cppFrontend/model/builder/ArkMethodBuilder.d.ts +14 -0
  277. package/lib/frontend/cppFrontend/model/builder/ArkMethodBuilder.d.ts.map +1 -0
  278. package/lib/frontend/cppFrontend/model/builder/ArkMethodBuilder.js +422 -0
  279. package/lib/frontend/cppFrontend/model/builder/ArkNamespaceBuilder.d.ts +8 -0
  280. package/lib/frontend/cppFrontend/model/builder/ArkNamespaceBuilder.d.ts.map +1 -0
  281. package/lib/frontend/cppFrontend/model/builder/ArkNamespaceBuilder.js +194 -0
  282. package/lib/frontend/cppFrontend/model/builder/BodyBuilder.d.ts +59 -0
  283. package/lib/frontend/cppFrontend/model/builder/BodyBuilder.d.ts.map +1 -0
  284. package/lib/frontend/cppFrontend/model/builder/BodyBuilder.js +605 -0
  285. package/lib/frontend/cppFrontend/model/builder/builderUtils.d.ts +46 -0
  286. package/lib/frontend/cppFrontend/model/builder/builderUtils.d.ts.map +1 -0
  287. package/lib/frontend/cppFrontend/model/builder/builderUtils.js +499 -0
  288. package/lib/frontend/cppFrontend/utils/cmakeUtils.d.ts +44 -0
  289. package/lib/frontend/cppFrontend/utils/cmakeUtils.d.ts.map +1 -0
  290. package/lib/frontend/cppFrontend/utils/cmakeUtils.js +240 -0
  291. package/lib/index.d.ts +2 -1
  292. package/lib/index.d.ts.map +1 -1
  293. package/lib/index.js +8 -1
  294. package/lib/node_modules/ohos-typescript/.ohos-typescript-version +1 -0
  295. package/{node_modules → lib/node_modules}/ohos-typescript/package.json +2 -1
  296. package/lib/save/CGJsonPrinter.d.ts +8 -0
  297. package/lib/save/CGJsonPrinter.d.ts.map +1 -0
  298. package/lib/save/CGJsonPrinter.js +41 -0
  299. package/lib/save/GraphPrinter.js +2 -2
  300. package/lib/save/json/JsonDto.d.ts +86 -2
  301. package/lib/save/json/JsonDto.d.ts.map +1 -1
  302. package/lib/save/json/JsonSerialization.d.ts +1 -1
  303. package/lib/save/json/JsonSerialization.d.ts.map +1 -1
  304. package/lib/save/json/JsonSerialization.js +235 -145
  305. package/lib/save/source/SourceStmt.d.ts.map +1 -1
  306. package/lib/save/source/SourceStmt.js +3 -1
  307. package/lib/save/source/SourceTransformer.d.ts.map +1 -1
  308. package/lib/save/source/SourceTransformer.js +0 -3
  309. package/lib/utils/CxxSceneUtils.d.ts +11 -0
  310. package/lib/utils/CxxSceneUtils.d.ts.map +1 -0
  311. package/lib/utils/CxxSceneUtils.js +178 -0
  312. package/lib/utils/FileUtils.d.ts +8 -8
  313. package/lib/utils/FileUtils.d.ts.map +1 -1
  314. package/lib/utils/FileUtils.js +35 -45
  315. package/lib/utils/LRUCacheDecorator.d.ts +20 -0
  316. package/lib/utils/LRUCacheDecorator.d.ts.map +1 -0
  317. package/lib/utils/LRUCacheDecorator.js +89 -0
  318. package/lib/utils/ModuleUtils.d.ts +39 -0
  319. package/lib/utils/ModuleUtils.d.ts.map +1 -0
  320. package/lib/utils/ModuleUtils.js +261 -0
  321. package/package.json +13 -7
  322. /package/{node_modules → lib/node_modules}/ohos-typescript/LICENSE +0 -0
  323. /package/{node_modules → lib/node_modules}/ohos-typescript/README.OpenSource +0 -0
  324. /package/{node_modules → lib/node_modules}/ohos-typescript/README.md +0 -0
  325. /package/{node_modules → lib/node_modules}/ohos-typescript/SECURITY.md +0 -0
  326. /package/{node_modules → lib/node_modules}/ohos-typescript/ThirdPartyNoticeText.txt +0 -0
  327. /package/{node_modules → lib/node_modules}/ohos-typescript/bin/tsc +0 -0
  328. /package/{node_modules → lib/node_modules}/ohos-typescript/bin/tsserver +0 -0
  329. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/README.md +0 -0
  330. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/cancellationToken.js +0 -0
  331. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/cs/diagnosticMessages.generated.json +0 -0
  332. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/de/diagnosticMessages.generated.json +0 -0
  333. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/es/diagnosticMessages.generated.json +0 -0
  334. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/fr/diagnosticMessages.generated.json +0 -0
  335. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/it/diagnosticMessages.generated.json +0 -0
  336. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/ja/diagnosticMessages.generated.json +0 -0
  337. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/ko/diagnosticMessages.generated.json +0 -0
  338. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.d.ts +0 -0
  339. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.dom.d.ts +0 -0
  340. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.dom.iterable.d.ts +0 -0
  341. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2015.collection.d.ts +0 -0
  342. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2015.core.d.ts +0 -0
  343. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2015.d.ts +0 -0
  344. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2015.generator.d.ts +0 -0
  345. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2015.iterable.d.ts +0 -0
  346. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2015.promise.d.ts +0 -0
  347. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2015.proxy.d.ts +0 -0
  348. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2015.reflect.d.ts +0 -0
  349. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2015.symbol.d.ts +0 -0
  350. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2015.symbol.wellknown.d.ts +0 -0
  351. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2016.array.include.d.ts +0 -0
  352. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2016.d.ts +0 -0
  353. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2016.full.d.ts +0 -0
  354. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2017.d.ts +0 -0
  355. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2017.full.d.ts +0 -0
  356. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2017.intl.d.ts +0 -0
  357. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2017.object.d.ts +0 -0
  358. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2017.sharedmemory.d.ts +0 -0
  359. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2017.string.d.ts +0 -0
  360. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2017.typedarrays.d.ts +0 -0
  361. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2018.asyncgenerator.d.ts +0 -0
  362. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2018.asynciterable.d.ts +0 -0
  363. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2018.d.ts +0 -0
  364. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2018.full.d.ts +0 -0
  365. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2018.intl.d.ts +0 -0
  366. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2018.promise.d.ts +0 -0
  367. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2018.regexp.d.ts +0 -0
  368. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2019.array.d.ts +0 -0
  369. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2019.d.ts +0 -0
  370. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2019.full.d.ts +0 -0
  371. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2019.intl.d.ts +0 -0
  372. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2019.object.d.ts +0 -0
  373. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2019.string.d.ts +0 -0
  374. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2019.symbol.d.ts +0 -0
  375. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2020.bigint.d.ts +0 -0
  376. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2020.d.ts +0 -0
  377. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2020.date.d.ts +0 -0
  378. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2020.full.d.ts +0 -0
  379. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2020.intl.d.ts +0 -0
  380. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2020.number.d.ts +0 -0
  381. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2020.promise.d.ts +0 -0
  382. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2020.sharedmemory.d.ts +0 -0
  383. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2020.string.d.ts +0 -0
  384. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2020.symbol.wellknown.d.ts +0 -0
  385. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2021.d.ts +0 -0
  386. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2021.full.d.ts +0 -0
  387. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2021.intl.d.ts +0 -0
  388. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2021.promise.d.ts +0 -0
  389. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2021.string.d.ts +0 -0
  390. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2021.weakref.d.ts +0 -0
  391. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2022.array.d.ts +0 -0
  392. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2022.d.ts +0 -0
  393. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2022.error.d.ts +0 -0
  394. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2022.full.d.ts +0 -0
  395. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2022.intl.d.ts +0 -0
  396. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2022.object.d.ts +0 -0
  397. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2022.sharedmemory.d.ts +0 -0
  398. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es2022.string.d.ts +0 -0
  399. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es5.d.ts +0 -0
  400. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.es6.d.ts +0 -0
  401. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.esnext.d.ts +0 -0
  402. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.esnext.full.d.ts +0 -0
  403. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.esnext.intl.d.ts +0 -0
  404. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.scripthost.d.ts +0 -0
  405. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.webworker.d.ts +0 -0
  406. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.webworker.importscripts.d.ts +0 -0
  407. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/lib.webworker.iterable.d.ts +0 -0
  408. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/pl/diagnosticMessages.generated.json +0 -0
  409. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/pt-br/diagnosticMessages.generated.json +0 -0
  410. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/ru/diagnosticMessages.generated.json +0 -0
  411. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/tr/diagnosticMessages.generated.json +0 -0
  412. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/tsc.js +0 -0
  413. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/tsserver.js +0 -0
  414. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/tsserverlibrary.d.ts +0 -0
  415. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/tsserverlibrary.js +0 -0
  416. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/typesMap.json +0 -0
  417. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/typescript.d.ts +0 -0
  418. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/typescript.js +0 -0
  419. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/typingsInstaller.js +0 -0
  420. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/watchGuard.js +0 -0
  421. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/zh-cn/diagnosticMessages.generated.json +0 -0
  422. /package/{node_modules → lib/node_modules}/ohos-typescript/lib/zh-tw/diagnosticMessages.generated.json +0 -0
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Returns extensions for C/C++ implementation and header files used across the C++ frontend
3
+ * (scanning, SceneConfig defaults, language detection).
4
+ */
5
+ export declare function getCxxSourceFileExtensions(): readonly string[];
6
+ /** Returns a read-only set for fast C/C++ source/header extension checks. */
7
+ export declare function getCxxSourceFileExtensionSet(): ReadonlySet<string>;
8
+ /** Returns a read-only set for fast C/C++ header extension checks. */
9
+ export declare function getCxxHeaderFileExtensionSet(): ReadonlySet<string>;
10
+ /**
11
+ * Returns extensions for C/C++ translation units only (no headers), e.g. for IR passes that
12
+ * walk implementation files.
13
+ */
14
+ export declare function getCxxImplementationFileExtensions(): readonly string[];
15
+ /** Returns a read-only set for fast C/C++ implementation-file checks. */
16
+ export declare function getCxxImplementationFileExtensionSet(): ReadonlySet<string>;
17
+ //# sourceMappingURL=const.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../../../../src/frontend/cppFrontend/ast/const.ts"],"names":[],"mappings":"AA4BA;;;GAGG;AACH,wBAAgB,0BAA0B,IAAI,SAAS,MAAM,EAAE,CAE9D;AAED,6EAA6E;AAC7E,wBAAgB,4BAA4B,IAAI,WAAW,CAAC,MAAM,CAAC,CAElE;AAED,sEAAsE;AACtE,wBAAgB,4BAA4B,IAAI,WAAW,CAAC,MAAM,CAAC,CAElE;AAED;;;GAGG;AACH,wBAAgB,kCAAkC,IAAI,SAAS,MAAM,EAAE,CAEtE;AAED,yEAAyE;AACzE,wBAAgB,oCAAoC,IAAI,WAAW,CAAC,MAAM,CAAC,CAE1E"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2025 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
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.getCxxImplementationFileExtensionSet = exports.getCxxImplementationFileExtensions = exports.getCxxHeaderFileExtensionSet = exports.getCxxSourceFileExtensionSet = exports.getCxxSourceFileExtensions = void 0;
18
+ /** C/C++ implementation file extensions (translation units). */
19
+ const CXX_IMPLEMENTATION_EXTENSIONS = ['.c', '.cc', '.cpp', '.cxx'];
20
+ /** C/C++ header extensions. */
21
+ const CXX_HEADER_EXTENSIONS = ['.h', '.hh', '.hpp'];
22
+ const CXX_IMPLEMENTATION_EXTENSION_SET = new Set(CXX_IMPLEMENTATION_EXTENSIONS);
23
+ const CXX_HEADER_EXTENSION_SET = new Set(CXX_HEADER_EXTENSIONS);
24
+ const CXX_SOURCE_EXTENSION_SET = new Set([
25
+ ...CXX_IMPLEMENTATION_EXTENSIONS,
26
+ ...CXX_HEADER_EXTENSIONS,
27
+ ]);
28
+ /**
29
+ * Returns extensions for C/C++ implementation and header files used across the C++ frontend
30
+ * (scanning, SceneConfig defaults, language detection).
31
+ */
32
+ function getCxxSourceFileExtensions() {
33
+ return [...CXX_IMPLEMENTATION_EXTENSIONS, ...CXX_HEADER_EXTENSIONS];
34
+ }
35
+ exports.getCxxSourceFileExtensions = getCxxSourceFileExtensions;
36
+ /** Returns a read-only set for fast C/C++ source/header extension checks. */
37
+ function getCxxSourceFileExtensionSet() {
38
+ return CXX_SOURCE_EXTENSION_SET;
39
+ }
40
+ exports.getCxxSourceFileExtensionSet = getCxxSourceFileExtensionSet;
41
+ /** Returns a read-only set for fast C/C++ header extension checks. */
42
+ function getCxxHeaderFileExtensionSet() {
43
+ return CXX_HEADER_EXTENSION_SET;
44
+ }
45
+ exports.getCxxHeaderFileExtensionSet = getCxxHeaderFileExtensionSet;
46
+ /**
47
+ * Returns extensions for C/C++ translation units only (no headers), e.g. for IR passes that
48
+ * walk implementation files.
49
+ */
50
+ function getCxxImplementationFileExtensions() {
51
+ return [...CXX_IMPLEMENTATION_EXTENSIONS];
52
+ }
53
+ exports.getCxxImplementationFileExtensions = getCxxImplementationFileExtensions;
54
+ /** Returns a read-only set for fast C/C++ implementation-file checks. */
55
+ function getCxxImplementationFileExtensionSet() {
56
+ return CXX_IMPLEMENTATION_EXTENSION_SET;
57
+ }
58
+ exports.getCxxImplementationFileExtensionSet = getCxxImplementationFileExtensionSet;
@@ -0,0 +1,5 @@
1
+ export { getCxxImplementationFileExtensionSet, getCxxImplementationFileExtensions, getCxxHeaderFileExtensionSet, getCxxSourceFileExtensionSet, getCxxSourceFileExtensions, } from './const';
2
+ export { astKind, CxxAstNode, CxxIncludeInfo, CxxTranslationUnit, defaultArg, getNodeStartLineAndCol, } from './ArkCxxAstNode';
3
+ export { findCompileCommands, isAstJsonDumperAvailable } from './astUtils';
4
+ export { AstParser } from './astParser';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/frontend/cppFrontend/ast/index.ts"],"names":[],"mappings":"AAeA,OAAO,EACH,oCAAoC,EACpC,kCAAkC,EAClC,4BAA4B,EAC5B,4BAA4B,EAC5B,0BAA0B,GAC7B,MAAM,SAAS,CAAC;AAEjB,OAAO,EACH,OAAO,EACP,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,UAAU,EACV,sBAAsB,GACzB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE3E,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,31 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.AstParser = exports.isAstJsonDumperAvailable = exports.findCompileCommands = exports.getNodeStartLineAndCol = exports.astKind = exports.getCxxSourceFileExtensions = exports.getCxxSourceFileExtensionSet = exports.getCxxHeaderFileExtensionSet = exports.getCxxImplementationFileExtensions = exports.getCxxImplementationFileExtensionSet = void 0;
18
+ var const_1 = require("./const");
19
+ Object.defineProperty(exports, "getCxxImplementationFileExtensionSet", { enumerable: true, get: function () { return const_1.getCxxImplementationFileExtensionSet; } });
20
+ Object.defineProperty(exports, "getCxxImplementationFileExtensions", { enumerable: true, get: function () { return const_1.getCxxImplementationFileExtensions; } });
21
+ Object.defineProperty(exports, "getCxxHeaderFileExtensionSet", { enumerable: true, get: function () { return const_1.getCxxHeaderFileExtensionSet; } });
22
+ Object.defineProperty(exports, "getCxxSourceFileExtensionSet", { enumerable: true, get: function () { return const_1.getCxxSourceFileExtensionSet; } });
23
+ Object.defineProperty(exports, "getCxxSourceFileExtensions", { enumerable: true, get: function () { return const_1.getCxxSourceFileExtensions; } });
24
+ var ArkCxxAstNode_1 = require("./ArkCxxAstNode");
25
+ Object.defineProperty(exports, "astKind", { enumerable: true, get: function () { return ArkCxxAstNode_1.astKind; } });
26
+ Object.defineProperty(exports, "getNodeStartLineAndCol", { enumerable: true, get: function () { return ArkCxxAstNode_1.getNodeStartLineAndCol; } });
27
+ var astUtils_1 = require("./astUtils");
28
+ Object.defineProperty(exports, "findCompileCommands", { enumerable: true, get: function () { return astUtils_1.findCompileCommands; } });
29
+ Object.defineProperty(exports, "isAstJsonDumperAvailable", { enumerable: true, get: function () { return astUtils_1.isAstJsonDumperAvailable; } });
30
+ var astParser_1 = require("./astParser");
31
+ Object.defineProperty(exports, "AstParser", { enumerable: true, get: function () { return astParser_1.AstParser; } });
@@ -0,0 +1,9 @@
1
+ import { Constant } from '../../../core/base/Constant';
2
+ import { Type } from '../../../core/base/Type';
3
+ export declare class CharConstant extends Constant {
4
+ constructor(value: string);
5
+ }
6
+ export declare class CompileConstants extends Constant {
7
+ constructor(value: string, compileType: Type);
8
+ }
9
+ //# sourceMappingURL=Constant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Constant.d.ts","sourceRoot":"","sources":["../../../../src/frontend/cppFrontend/base/Constant.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAE/C,qBAAa,YAAa,SAAQ,QAAQ;gBAC1B,KAAK,EAAE,MAAM;CAG5B;AAED,qBAAa,gBAAiB,SAAQ,QAAQ;gBAC9B,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI;CAG/C"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2024-2025 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
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.CompileConstants = exports.CharConstant = void 0;
18
+ const Type_1 = require("./Type");
19
+ const Constant_1 = require("../../../core/base/Constant");
20
+ // CharConstant
21
+ class CharConstant extends Constant_1.Constant {
22
+ constructor(value) {
23
+ super(value.toString(), Type_1.CxxCharType.getInstance());
24
+ }
25
+ }
26
+ exports.CharConstant = CharConstant;
27
+ // compileConstants
28
+ class CompileConstants extends Constant_1.Constant {
29
+ constructor(value, compileType) {
30
+ super(value.toString(), compileType);
31
+ }
32
+ }
33
+ exports.CompileConstants = CompileConstants;
@@ -0,0 +1,174 @@
1
+ import { AbstractBinopExpr, AbstractExpr, ArkCastExpr, NormalBinaryOperator } from '../../../core/base/Expr';
2
+ import { Value } from '../../../core/base/Value';
3
+ import { ArrayType, ClassType, Type } from '../../../core/base/Type';
4
+ import { ArkMethod } from '../../../core/model/ArkMethod';
5
+ import { AbstractFieldRef } from '../../../core/base/Ref';
6
+ /**
7
+ * delete[] expression in C++
8
+ * 1. c++: delete[] a / delete[] a.b / delete[] a->b
9
+ */
10
+ export declare class ArkCxxDeleteArrayExpr extends AbstractExpr {
11
+ private field;
12
+ constructor(field: AbstractFieldRef | Value);
13
+ getField(): AbstractFieldRef | Value;
14
+ setField(newField: AbstractFieldRef | Value): void;
15
+ getType(): Type;
16
+ getUses(): Value[];
17
+ toString(): string;
18
+ }
19
+ export declare class ArkCxxNewArrayExpr extends AbstractExpr {
20
+ private baseType;
21
+ private size;
22
+ private elementsNumber;
23
+ private fromLiteral;
24
+ constructor(baseType: Type, size: Value, fromLiteral?: boolean, elementsNumber?: number);
25
+ getElementsNumber(): number;
26
+ setElementsNumber(elementsNumber: number): void;
27
+ getSize(): Value;
28
+ setSize(newSize: Value): void;
29
+ getType(): ArrayType;
30
+ getBaseType(): Type;
31
+ setBaseType(newType: Type): void;
32
+ isFromLiteral(): boolean;
33
+ inferType(arkMethod: ArkMethod): ArkCxxNewArrayExpr;
34
+ getUses(): Value[];
35
+ toString(): string;
36
+ }
37
+ export declare class ArkCxxInitArrayExpr extends AbstractExpr {
38
+ private op;
39
+ constructor(op: Value);
40
+ getOp(): Value;
41
+ setOp(newOp: Value): void;
42
+ getUses(): Value[];
43
+ getType(): Type;
44
+ toString(): string;
45
+ inferType(arkMethod: ArkMethod): AbstractExpr;
46
+ }
47
+ export declare enum Operator {
48
+ sizeof = "sizeof",
49
+ alignof = "alignof",
50
+ Unknown = "Unknown"
51
+ }
52
+ export declare class ArkCxxUnaryExpr extends AbstractExpr {
53
+ private operator;
54
+ private op;
55
+ constructor(operator: Operator, op: Value | Type);
56
+ getOp(): Value | Type;
57
+ setOp(newOp: Value | Type): void;
58
+ getOperator(): string;
59
+ getUses(): Value[];
60
+ getOpType(): Type;
61
+ getType(): Type;
62
+ toString(): string;
63
+ inferType(arkMethod: ArkMethod): AbstractExpr;
64
+ }
65
+ export declare class ArkCxxCastExpr extends ArkCastExpr {
66
+ private cxxCastType;
67
+ constructor(op: Value, type: Type, cxxCastType: string);
68
+ getCxxCastType(): string;
69
+ toString(): string;
70
+ inferType(arkMethod: ArkMethod): AbstractExpr;
71
+ }
72
+ export declare class ArkArrayTypeTraitExpr extends AbstractExpr {
73
+ private op;
74
+ private dimensionSizes;
75
+ constructor(dimensionSizes: number[] | undefined, op: Value | null);
76
+ getOp(): Value | null;
77
+ setOp(newOp: Value): void;
78
+ getUses(): Value[];
79
+ getDimensionOrder(): number[];
80
+ setDimensionOrder(dimensionOrder: number[]): void;
81
+ getOpType(): Type | null;
82
+ getType(): Type;
83
+ toString(): string;
84
+ inferType(arkMethod: ArkMethod): AbstractExpr;
85
+ }
86
+ export declare class ArkTypeIdExpr extends AbstractExpr {
87
+ private op;
88
+ constructor(op: Value);
89
+ getOp(): Value;
90
+ setOp(newOp: Value): void;
91
+ getUses(): Value[];
92
+ getType(): Type;
93
+ toString(): string;
94
+ inferType(arkMethod: ArkMethod): AbstractExpr;
95
+ }
96
+ export declare class ArkNoExpectExpr extends AbstractExpr {
97
+ private op;
98
+ constructor(op: Value);
99
+ getOp(): Value;
100
+ setOp(newOp: Value): void;
101
+ getUses(): Value[];
102
+ getOpType(): Type;
103
+ getType(): Type;
104
+ toString(): string;
105
+ inferType(arkMethod: ArkMethod): AbstractExpr;
106
+ }
107
+ export declare class ArkCxxFolderExpr extends AbstractExpr {
108
+ private arg;
109
+ private op;
110
+ constructor(arg: Value, op: string);
111
+ getArg(): Value;
112
+ setArg(newArg: Value): void;
113
+ getUses(): Value[];
114
+ getType(): Type;
115
+ getOp(): string;
116
+ toString(): string;
117
+ inferType(arkMethod: ArkMethod): AbstractExpr;
118
+ }
119
+ export declare class ArkCxxNormalBinOpExpr extends AbstractBinopExpr {
120
+ constructor(op1: Value, op2: Value, operator: NormalBinaryOperator);
121
+ getType(): Type;
122
+ setCxxType(type: Type): void;
123
+ }
124
+ export declare class ArkAllocExpr extends AbstractExpr {
125
+ private classType;
126
+ constructor(classType: ClassType);
127
+ getClassType(): ClassType;
128
+ getUses(): Value[];
129
+ getType(): Type;
130
+ toString(): string;
131
+ /**
132
+ *Inference type method
133
+ *@ param arkMethod - Ark method object, the context used for type inference
134
+ *@ returns the ArkNewExpr instance of the current object
135
+ */
136
+ inferType(arkMethod: ArkMethod): ArkAllocExpr;
137
+ private constructorSignature;
138
+ }
139
+ /**
140
+ * Aggregate expression to represent such cases :
141
+ * struct Point q = (struct Point){.x = 5, .y = 8, .name = 'c'};
142
+ * int* arr = (int[5]){1, 2, 3, 4, 5};
143
+ * the right value is {},its kind is CompoundLiteralExpr or InitListExpr
144
+ */
145
+ export declare class ArkAggregateExpr extends AbstractExpr {
146
+ private type;
147
+ private elements;
148
+ constructor(elements: Value[], type: Type);
149
+ getElements(): Value[];
150
+ setType(type: Type): void;
151
+ getUses(): Value[];
152
+ getType(): Type;
153
+ inferType(arkMethod: ArkMethod): ArkAggregateExpr;
154
+ toString(): string;
155
+ }
156
+ /**
157
+ * ArkDesignatedInitExpr is used to represent designated initializers in aggregate initialization expressions.
158
+ * It consists of an initializer value and a designator, which specifies the field or element to be initialized.
159
+ * For example:
160
+ * struct Point q = (struct Point){.x = 5, .y = 8, .name = 'c'};
161
+ * its kind is DesignatedInitExpr
162
+ */
163
+ export declare class ArkDesignatedInitExpr extends AbstractExpr {
164
+ private init;
165
+ private designator;
166
+ constructor(init: Value, designator: Value);
167
+ getInit(): Value;
168
+ getDesignator(): Value;
169
+ inferType(arkMethod: ArkMethod): ArkDesignatedInitExpr;
170
+ getUses(): Value[];
171
+ getType(): Type;
172
+ toString(): string;
173
+ }
174
+ //# sourceMappingURL=Expr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Expr.d.ts","sourceRoot":"","sources":["../../../../src/frontend/cppFrontend/base/Expr.ts"],"names":[],"mappings":"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"}