• Home
  • Raw
  • Download

Lines Matching +full:parserprogram +full:-

2  * Copyright (c) 2021-2024 Huawei Device Co., Ltd.
7 * http://www.apache.org/licenses/LICENSE-2.0
39 if (isDummyLoc(n->Range())) { in RefineSourceRanges()
40 n->SetRange(n->Parent()->Range()); in RefineSourceRanges()
45 node->IterateRecursively(refine); in RefineSourceRanges()
53 auto *const allocator = ctx->allocator; in LowerOptionalExpr()
54 auto *const parser = ctx->parser->AsETSParser(); in LowerOptionalExpr()
55 auto *const varbinder = ctx->parserProgram->VarBinder(); in LowerOptionalExpr()
59 auto *tmpIdentClone = tmpIdent->Clone(allocator, nullptr); in LowerOptionalExpr()
62 auto *sequenceExpr = parser->CreateFormattedExpression( in LowerOptionalExpr()
66 sequenceExpr->SetParent(chain->Parent()); in LowerOptionalExpr()
67 InitScopesPhaseETS::RunExternalNode(sequenceExpr, ctx->parserProgram->VarBinder()); in LowerOptionalExpr()
69 auto const &stmts = sequenceExpr->AsBlockExpression()->Statements(); in LowerOptionalExpr()
70 stmts[0]->AsVariableDeclaration()->Declarators()[0]->SetInit(getSource(expr)); in LowerOptionalExpr()
71 …stmts[1]->AsExpressionStatement()->GetExpression()->AsConditionalExpression()->SetAlternate(chain- in LowerOptionalExpr()
73 …setSource(expr, parser->CreateFormattedExpression("@@I1", tmpIdentClone->Clone(allocator, nullptr)… in LowerOptionalExpr()
80 ASSERT(expr->IsOptional()); in LowerExpression()
81 expr->ClearOptional(); in LowerExpression()
82 return LowerOptionalExpr<ir::MemberExpression>([](auto *e) { return e->Object(); }, in LowerExpression()
83 … [](auto *e, auto *obj) { e->SetObject(obj); }, ctx, expr, chain); in LowerExpression()
89 ASSERT(expr->IsOptional()); in LowerExpression()
90 expr->ClearOptional(); in LowerExpression()
91 return LowerOptionalExpr<ir::CallExpression>([](auto *e) { return e->Callee(); }, in LowerExpression()
92 … [](auto *e, auto *callee) { e->SetCallee(callee); }, ctx, expr, chain); in LowerExpression()
97 if (expr->IsMemberExpression()) { in FindOptionalInChain()
98 auto typed = expr->AsMemberExpression(); in FindOptionalInChain()
99 return typed->IsOptional() ? typed : FindOptionalInChain(typed->Object()); in FindOptionalInChain()
101 if (expr->IsCallExpression()) { in FindOptionalInChain()
102 auto typed = expr->AsCallExpression(); in FindOptionalInChain()
103 return typed->IsOptional() ? typed : FindOptionalInChain(typed->Callee()); in FindOptionalInChain()
105 if (expr->IsTSNonNullExpression()) { in FindOptionalInChain()
106 return FindOptionalInChain(expr->AsTSNonNullExpression()->Expr()); in FindOptionalInChain()
113 auto optional = FindOptionalInChain(chain->GetExpression()); in LowerChain()
114 if (optional->IsMemberExpression()) { in LowerChain()
115 return LowerExpression(ctx, optional->AsMemberExpression(), chain); in LowerChain()
117 if (optional->IsCallExpression()) { in LowerChain()
118 return LowerExpression(ctx, optional->AsCallExpression(), chain); in LowerChain()
125 for (auto &[_, ext_programs] : program->ExternalSources()) { in Perform()
132 program->Ast()->TransformChildrenRecursively( in Perform()
133 // CC-OFFNXT(G.FMT.14-CPP) project code style in Perform()
134 [ctx](ir::AstNode *const node) -> ir::AstNode * { in Perform()
135 if (node->IsChainExpression()) { in Perform()
136 return RefineSourceRanges(LowerChain(ctx, node->AsChainExpression())); in Perform()
147 for (auto &[_, ext_programs] : program->ExternalSources()) { in Postcondition()
156 return !program->Ast()->IsAnyChild([](const ir::AstNode *node) { in Postcondition()
157 …return node->IsChainExpression() || (node->IsMemberExpression() && node->AsMemberExpression()->IsO… in Postcondition()
158 (node->IsCallExpression() && node->AsCallExpression()->IsOptional()); in Postcondition()