• Home
  • Raw
  • Download

Lines Matching +full:parser +full:-

2  * Copyright (c) 2021-2024 Huawei Device Co., Ltd.
7 * http://www.apache.org/licenses/LICENSE-2.0
28 #include "parser/ETSparser.h"
31 ir::Expression *ObjectIndexLowering::ProcessIndexSetAccess(parser::ETSParser *parser, checker::ETSC… in ProcessIndexSetAccess() argument
34 …// Note! We assume that parser and checker phase nave been already passed correctly, thus the cla… in ProcessIndexSetAccess()
40 auto *const memberExpression = assignmentExpression->Left()->AsMemberExpression(); in ProcessIndexSetAccess()
41 auto *const loweringResult = parser->CreateFormattedExpression( in ProcessIndexSetAccess()
42 …CALL_EXPRESSION, memberExpression->Object(), memberExpression->Property(), assignmentExpression->R… in ProcessIndexSetAccess()
43 loweringResult->SetParent(assignmentExpression->Parent()); in ProcessIndexSetAccess()
44 loweringResult->SetRange(assignmentExpression->Range()); in ProcessIndexSetAccess()
46 CheckLoweredNode(checker->VarBinder()->AsETSBinder(), checker, loweringResult); in ProcessIndexSetAccess()
50 ir::Expression *ObjectIndexLowering::ProcessIndexGetAccess(parser::ETSParser *parser, checker::ETSC… in ProcessIndexGetAccess() argument
53 …// Note! We assume that parser and checker phase nave been already passed correctly, thus the cla… in ProcessIndexGetAccess()
60parser->CreateFormattedExpression(CALL_EXPRESSION, memberExpression->Object(), memberExpression->P… in ProcessIndexGetAccess()
61 loweringResult->SetParent(memberExpression->Parent()); in ProcessIndexGetAccess()
62 loweringResult->SetRange(memberExpression->Range()); in ProcessIndexGetAccess()
64 CheckLoweredNode(checker->VarBinder()->AsETSBinder(), checker, loweringResult); in ProcessIndexGetAccess()
65 loweringResult->SetBoxingUnboxingFlags(memberExpression->GetBoxingUnboxingFlags()); in ProcessIndexGetAccess()
69 bool ObjectIndexLowering::Perform(public_lib::Context *ctx, parser::Program *program) in Perform()
71 if (ctx->config->options->CompilerOptions().compilationMode == CompilationMode::GEN_STD_LIB) { in Perform()
72 for (auto &[_, extPrograms] : program->ExternalSources()) { in Perform()
80 auto *const parser = ctx->parser->AsETSParser(); in Perform() local
81 ASSERT(parser != nullptr); in Perform()
82 auto *const checker = ctx->checker->AsETSChecker(); in Perform()
85 program->Ast()->TransformChildrenRecursively( in Perform()
86 // CC-OFFNXT(G.FMT.14-CPP) project code style in Perform()
87 [this, parser, checker](ir::AstNode *const ast) -> ir::AstNode * { in Perform()
88 …if (ast->IsAssignmentExpression() && ast->AsAssignmentExpression()->Left()->IsMemberExpression() && in Perform()
89 ast->AsAssignmentExpression()->Left()->AsMemberExpression()->Kind() == in Perform()
92 ast->AsAssignmentExpression()->Left()->AsMemberExpression()->ObjType(); in Perform()
93 objectType != nullptr && !objectType->IsETSDynamicType()) { in Perform()
94 return ProcessIndexSetAccess(parser, checker, ast->AsAssignmentExpression()); in Perform()
101 program->Ast()->TransformChildrenRecursively( in Perform()
102 // CC-OFFNXT(G.FMT.14-CPP) project code style in Perform()
103 [this, parser, checker](ir::AstNode *const ast) -> ir::AstNode * { in Perform()
104 if (ast->IsMemberExpression() && in Perform()
105 ast->AsMemberExpression()->Kind() == ir::MemberExpressionKind::ELEMENT_ACCESS) { in Perform()
106 if (auto const *const objectType = ast->AsMemberExpression()->ObjType(); in Perform()
107 objectType != nullptr && !objectType->IsETSDynamicType()) { in Perform()
108 return ProcessIndexGetAccess(parser, checker, ast->AsMemberExpression()); in Perform()
118 bool ObjectIndexLowering::Postcondition(public_lib::Context *ctx, const parser::Program *program) in Postcondition()
120 auto checkExternalPrograms = [this, ctx](const ArenaVector<parser::Program *> &programs) { in Postcondition()
129 if (ctx->config->options->CompilerOptions().compilationMode == CompilationMode::GEN_STD_LIB) { in Postcondition()
130 for (auto &[_, extPrograms] : program->ExternalSources()) { in Postcondition()
138 return !program->Ast()->IsAnyChild([](const ir::AstNode *ast) { in Postcondition()
139 if (ast->IsMemberExpression() && in Postcondition()
140 ast->AsMemberExpression()->Kind() == ir::MemberExpressionKind::ELEMENT_ACCESS) { in Postcondition()
141 … if (auto const *const objectType = ast->AsMemberExpression()->ObjType(); objectType != nullptr) { in Postcondition()
142 return !objectType->IsETSDynamicType(); in Postcondition()