arkanalyzer 1.0.87 → 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.
- package/lib/Config.d.ts +4 -1
- package/lib/Config.d.ts.map +1 -1
- package/lib/Config.js +17 -2
- package/lib/Scene.d.ts.map +1 -1
- package/lib/Scene.js +7 -8
- package/lib/cli/commands/cg.d.ts +27 -6
- package/lib/cli/commands/cg.d.ts.map +1 -1
- package/lib/cli/commands/cg.js +9 -6
- package/lib/core/base/Expr.js +3 -3
- package/lib/core/base/Position.d.ts +1 -1
- package/lib/core/base/Position.d.ts.map +1 -1
- package/lib/core/base/Position.js +2 -2
- package/lib/core/common/Const.d.ts +1 -0
- package/lib/core/common/Const.d.ts.map +1 -1
- package/lib/core/common/Const.js +2 -1
- package/lib/core/common/IRInference.d.ts.map +1 -1
- package/lib/core/common/IRInference.js +1 -1
- package/lib/core/common/IRUtils.d.ts.map +1 -1
- package/lib/core/common/IRUtils.js +3 -33
- package/lib/core/model/ArkClass.d.ts +3 -0
- package/lib/core/model/ArkClass.d.ts.map +1 -1
- package/lib/core/model/ArkClass.js +13 -2
- package/lib/core/model/ArkMetadata.d.ts +32 -1
- package/lib/core/model/ArkMetadata.d.ts.map +1 -1
- package/lib/core/model/ArkMetadata.js +28 -2
- package/lib/core/model/builder/ArkMetadataBuilder.d.ts +21 -0
- package/lib/core/model/builder/ArkMetadataBuilder.d.ts.map +1 -0
- package/lib/core/model/builder/ArkMetadataBuilder.js +160 -0
- package/lib/core/model/builder/ArkMethodBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkMethodBuilder.js +32 -24
- package/lib/frontend/cppFrontend/ast/astJsonNapi/napiApi.d.ts +8 -0
- package/lib/frontend/cppFrontend/ast/astJsonNapi/napiApi.d.ts.map +1 -0
- package/lib/frontend/cppFrontend/ast/astJsonNapi/napiApi.js +90 -0
- package/lib/frontend/cppFrontend/ast/astJsonNapi/napiRunner.d.ts +8 -0
- package/lib/frontend/cppFrontend/ast/astJsonNapi/napiRunner.d.ts.map +1 -0
- package/lib/frontend/cppFrontend/ast/astJsonNapi/napiRunner.js +183 -0
- package/lib/frontend/cppFrontend/ast/astParser.d.ts +25 -0
- package/lib/frontend/cppFrontend/ast/astParser.d.ts.map +1 -0
- package/lib/frontend/cppFrontend/ast/astParser.js +280 -0
- package/lib/frontend/cppFrontend/ast/astUtils.d.ts +12 -45
- package/lib/frontend/cppFrontend/ast/astUtils.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/ast/astUtils.js +62 -374
- package/lib/frontend/cppFrontend/ast/const.d.ts +0 -13
- package/lib/frontend/cppFrontend/ast/const.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/ast/const.js +1 -77
- package/lib/frontend/cppFrontend/ast/index.d.ts +5 -0
- package/lib/frontend/cppFrontend/ast/index.d.ts.map +1 -0
- package/lib/frontend/cppFrontend/ast/index.js +31 -0
- package/lib/frontend/cppFrontend/common/ArkIRTransformer.d.ts +1 -1
- package/lib/frontend/cppFrontend/common/ArkIRTransformer.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/common/ArkIRTransformer.js +55 -55
- package/lib/frontend/cppFrontend/common/ArkValueTransformer.d.ts +1 -1
- package/lib/frontend/cppFrontend/common/ArkValueTransformer.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/common/ArkValueTransformer.js +151 -151
- package/lib/frontend/cppFrontend/common/IRInference.js +2 -2
- package/lib/frontend/cppFrontend/common/IRUtils.d.ts +1 -1
- package/lib/frontend/cppFrontend/common/IRUtils.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/common/IRUtils.js +2 -2
- package/lib/frontend/cppFrontend/graph/builder/CfgBuilder.d.ts +1 -1
- package/lib/frontend/cppFrontend/graph/builder/CfgBuilder.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/graph/builder/CfgBuilder.js +74 -74
- package/lib/frontend/cppFrontend/model/builder/ArkClassBuilder.d.ts +1 -1
- package/lib/frontend/cppFrontend/model/builder/ArkClassBuilder.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/model/builder/ArkClassBuilder.js +3 -3
- package/lib/frontend/cppFrontend/model/builder/ArkFieldBuilder.d.ts +1 -1
- package/lib/frontend/cppFrontend/model/builder/ArkFieldBuilder.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/model/builder/ArkFileBuilder.d.ts +1 -1
- package/lib/frontend/cppFrontend/model/builder/ArkFileBuilder.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/model/builder/ArkFileBuilder.js +16 -17
- package/lib/frontend/cppFrontend/model/builder/ArkImportBuilder.d.ts +1 -1
- package/lib/frontend/cppFrontend/model/builder/ArkImportBuilder.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/model/builder/ArkMethodBuilder.d.ts +1 -1
- package/lib/frontend/cppFrontend/model/builder/ArkMethodBuilder.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/model/builder/ArkMethodBuilder.js +2 -2
- package/lib/frontend/cppFrontend/model/builder/ArkNamespaceBuilder.d.ts +1 -1
- package/lib/frontend/cppFrontend/model/builder/ArkNamespaceBuilder.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/model/builder/ArkNamespaceBuilder.js +2 -2
- package/lib/frontend/cppFrontend/model/builder/BodyBuilder.d.ts +1 -1
- package/lib/frontend/cppFrontend/model/builder/BodyBuilder.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/model/builder/builderUtils.d.ts +1 -1
- package/lib/frontend/cppFrontend/model/builder/builderUtils.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/model/builder/builderUtils.js +3 -3
- package/lib/index.d.ts +2 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +7 -6
- package/lib/save/source/SourceStmt.d.ts.map +1 -1
- package/lib/save/source/SourceStmt.js +3 -1
- package/lib/utils/FileUtils.d.ts +1 -0
- package/lib/utils/FileUtils.d.ts.map +1 -1
- package/lib/utils/FileUtils.js +11 -3
- package/package.json +5 -2
|
@@ -1 +1 @@
|
|
|
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,
|
|
1
|
+
{"version":3,"file":"ArkIRTransformer.d.ts","sourceRoot":"","sources":["../../../../src/frontend/cppFrontend/common/ArkIRTransformer.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
|
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 ===
|
|
107
|
+
if (expression.kind === ast_1.astKind.ParentExpr) {
|
|
108
108
|
return this.shouldGenerateCxxExtraAssignStmt(expression.inner[0]);
|
|
109
109
|
}
|
|
110
|
-
return !((expression.kind ===
|
|
110
|
+
return !((expression.kind === ast_1.astKind.BinaryOperator && expression.opcode === '=') ||
|
|
111
111
|
ArkValueTransformer_1.ArkCxxValueTransformer.isCxxCompoundAssignmentOperator(expression.opcode) ||
|
|
112
|
-
expression.kind ===
|
|
113
|
-
expression.kind ===
|
|
114
|
-
(expression.kind ===
|
|
115
|
-
expression.kind ===
|
|
116
|
-
expression.kind ===
|
|
117
|
-
expression.kind ===
|
|
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
|
|
123
|
+
case ast_1.astKind.ParmVarDecl:
|
|
124
124
|
stmts = this.cxxParameterToStmts(node);
|
|
125
125
|
break;
|
|
126
|
-
case
|
|
127
|
-
case
|
|
128
|
-
case
|
|
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
|
|
132
|
-
case
|
|
133
|
-
case
|
|
134
|
-
case
|
|
135
|
-
case
|
|
136
|
-
case
|
|
137
|
-
case
|
|
138
|
-
case
|
|
139
|
-
case
|
|
140
|
-
case
|
|
141
|
-
case
|
|
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
|
|
144
|
+
case ast_1.astKind.DeclStmt:
|
|
145
145
|
stmts = this.cxxDeclStatementToStmts(node);
|
|
146
146
|
break;
|
|
147
|
-
case
|
|
147
|
+
case ast_1.astKind.VarDecl:
|
|
148
148
|
stmts = this.cxxVariableDeclarationListToStmts(node);
|
|
149
149
|
break;
|
|
150
|
-
case
|
|
150
|
+
case ast_1.astKind.CompoundStmt:
|
|
151
151
|
stmts = this.compoundToStmts(node);
|
|
152
152
|
break;
|
|
153
|
-
case
|
|
153
|
+
case ast_1.astKind.CXXMemberCallExpr:
|
|
154
154
|
stmts = this.memberCallExprToStmts(node);
|
|
155
155
|
break;
|
|
156
|
-
case
|
|
156
|
+
case ast_1.astKind.CXXCatchStmt:
|
|
157
157
|
stmts = this.cxxCatchClauseToStmts(node);
|
|
158
158
|
break;
|
|
159
|
-
case
|
|
159
|
+
case ast_1.astKind.CXXThrowExpr:
|
|
160
160
|
stmts = this.cxxThrowStatementToStmts(node);
|
|
161
161
|
break;
|
|
162
|
-
case
|
|
162
|
+
case ast_1.astKind.DoStmt:
|
|
163
163
|
stmts = this.cxxDoStatementToStmts(node);
|
|
164
164
|
break;
|
|
165
|
-
case
|
|
165
|
+
case ast_1.astKind.ExprWithCleanups:
|
|
166
166
|
stmts = this.expressionWithCleanup(node);
|
|
167
167
|
break;
|
|
168
|
-
case
|
|
168
|
+
case ast_1.astKind.ForStmt:
|
|
169
169
|
stmts = this.cxxForStatementToStmts(node);
|
|
170
170
|
break;
|
|
171
|
-
case
|
|
171
|
+
case ast_1.astKind.IfStmt:
|
|
172
172
|
stmts = this.cxxIfStatementToStmts(node);
|
|
173
173
|
break;
|
|
174
|
-
case
|
|
174
|
+
case ast_1.astKind.ReturnStmt:
|
|
175
175
|
stmts = this.cxxReturnStatementToStmts(node);
|
|
176
176
|
break;
|
|
177
|
-
case
|
|
177
|
+
case ast_1.astKind.WhileStmt:
|
|
178
178
|
stmts = this.cxxWhileStatementToStmts(node);
|
|
179
179
|
break;
|
|
180
|
-
case
|
|
180
|
+
case ast_1.astKind.CXXForRangeStmt:
|
|
181
181
|
stmts = this.forRangeStatementToStmts(node);
|
|
182
182
|
break;
|
|
183
|
-
case
|
|
184
|
-
case
|
|
183
|
+
case ast_1.astKind.TypedefDecl:
|
|
184
|
+
case ast_1.astKind.TypeAliasDecl:
|
|
185
185
|
stmts = this.typeDefDeclToStmts(node);
|
|
186
186
|
break;
|
|
187
|
-
case
|
|
187
|
+
case ast_1.astKind.TypeAliasTemplateDecl:
|
|
188
188
|
stmts = this.typeDefDeclToStmts(node);
|
|
189
189
|
break;
|
|
190
|
-
case
|
|
191
|
-
case
|
|
190
|
+
case ast_1.astKind.EnumDecl:
|
|
191
|
+
case ast_1.astKind.CXXRecordDecl:
|
|
192
192
|
stmts = this.cxxClassDeclarationToStmts(node);
|
|
193
193
|
break;
|
|
194
|
-
case
|
|
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 ===
|
|
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 ===
|
|
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 ===
|
|
287
|
+
if (node.kind === ast_1.astKind.TypeAliasTemplateDecl) {
|
|
288
288
|
const realGenericTypes = [];
|
|
289
|
-
node.inner.filter(inn => inn.kind ===
|
|
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 ===
|
|
377
|
-
if (declStmts.kind ===
|
|
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 ===
|
|
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() ===
|
|
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 ===
|
|
754
|
+
if (ifStatement.kind === ast_1.astKind.IfStmt) {
|
|
755
755
|
return this.cxxIfStatementToStmts(ifStatement.inner[0], depth);
|
|
756
756
|
}
|
|
757
|
-
else if (ifStatement.kind ===
|
|
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 ===
|
|
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 ===
|
|
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
|
|
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":"AA6DA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAWjD,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAI1D,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAUxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAK/E,OAAO,EAAW,UAAU,EAAE,kBAAkB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ArkValueTransformer.d.ts","sourceRoot":"","sources":["../../../../src/frontend/cppFrontend/common/ArkValueTransformer.ts"],"names":[],"mappings":"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"}
|