| /arkcompiler/ets_frontend/ets2panda/compiler/lowering/ |
| D | checkerPhase.cpp | 2 * Copyright (c) 2021-2024 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 23 …ctx->checker->StartChecker(ctx->parserProgram->VarBinder(), ctx->config->options->CompilerOptions(… in Perform()
|
| D | resolveIdentifiers.cpp | 7 * http://www.apache.org/licenses/LICENSE-2.0 23 auto const &options = ctx->config->options->CompilerOptions(); in Perform() 24 auto *varbinder = ctx->parserProgram->VarBinder()->AsETSBinder(); in Perform() 27 std::cout << varbinder->Program()->Dump() << std::endl; in Perform() 31 varbinder->Program()->DumpSilent(); in Perform() 39 varbinder->SetGenStdLib(options.compilationMode == CompilationMode::GEN_STD_LIB); in Perform() 40 varbinder->IdentifierAnalysis(); in Perform()
|
| /arkcompiler/ets_frontend/ets2panda/public/ |
| D | es2panda_lib.cpp | 7 * http://www.apache.org/licenses/LICENSE-2.0 68 // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-pointer-arithmetic) in StrToToken() 69 for (auto *tp = table; tp->str != nullptr; tp++) { in StrToToken() 70 if (strcmp(str, tp->str) == 0) { in StrToToken() 71 return tp->token; in StrToToken() 79 // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-pointer-arithmetic) in TokenToStr() 80 for (auto *tp = table; tp->str != nullptr; tp++) { in TokenToStr() 81 if (tp->token == token) { in TokenToStr() 82 return tp->str; in TokenToStr() 90 …// NOLINTBEGIN(cppcoreguidelines-pro-bounds-pointer-arithmetic, readability-simplify-subscript-exp… in StringViewToCString() [all …]
|
| D | public.h | 2 * Copyright (c) 2021-2024 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 21 #include "assembler/assembly-program.h" 56 parser::Program *parserProgram = nullptr; member
|
| D | cppToCTypes.yaml | 1 # Copyright (c) 2021-2024 Huawei Device Co., Ltd. 6 # http://www.apache.org/licenses/LICENSE-2.0 16 - es2panda_arg: 21 - type: '|element_type|' 24 - type: '|element_type|' 29 - type: 33 - type: 40 {reinterpret_cast<Context *>(context)->allocator->Adapter()};\n 50 \tauto *ctxAllocator = ctx->allocator;\n 54 …\tauto res = ctxAllocator->New<|new_args.0.type.const| |new_args.0.type.name| |new_args.0.type.ptr… [all …]
|
| /arkcompiler/ets_frontend/ets2panda/declgen_ets2ts/ |
| D | main.cpp | 2 * Copyright (c) 2021-2024 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 25 auto *cfg = impl->CreateConfig(argc, argv); in Run() 31 …es2panda_Context *ctx = impl->CreateContextFromString(cfg, cfgImpl->options->ParserInput().c_str(), in Run() 32 cfgImpl->options->SourceFile().c_str()); in Run() 35 auto *checker = reinterpret_cast<checker::ETSChecker *>(ctxImpl->checker); in Run() 37 impl->ProceedToState(ctx, ES2PANDA_STATE_CHECKED); in Run() 40 …if (!GenerateTsDeclarations(checker, ctxImpl->parserProgram, cfgImpl->options->CompilerOutput())) { in Run() 44 impl->DestroyContext(ctx); in Run() 45 impl->DestroyConfig(cfg); in Run()
|
| /arkcompiler/ets_frontend/ets2panda/compiler/lowering/ets/ |
| D | optionalLowering.cpp | 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() [all …]
|
| D | lambdaLowering.cpp | 7 * http://www.apache.org/licenses/LICENSE-2.0 58 for (ir::AstNode *curr = ast->Parent(); curr != nullptr; curr = curr->Parent()) { in FindEnclosingClassAndFunction() 59 if (curr->IsClassDeclaration()) { in FindEnclosingClassAndFunction() 60 return {curr->AsClassDeclaration(), function}; in FindEnclosingClassAndFunction() 62 if (curr->IsScriptFunction()) { in FindEnclosingClassAndFunction() 63 function = curr->AsScriptFunction(); in FindEnclosingClassAndFunction() 71 return lambda->IsAnyChild([](ir::AstNode *ast) { return ast->IsThisExpression(); }); in CheckIfNeedThis() 97 auto *allocator = ctx->allocator; in CloneTypeParams() 98 auto *checker = ctx->checker->AsETSChecker(); in CloneTypeParams() 100 auto *newScope = allocator->New<varbinder::LocalScope>(allocator, enclosingScope); in CloneTypeParams() [all …]
|
| D | opAssignment.cpp | 2 * Copyright (c) 2021-2024 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 46 // NOLINTNEXTLINE(readability-magic-numbers) 80 if (loweringResult->IsAssignmentExpression()) { in AdjustBoxingUnboxingFlags() 81 exprToProcess = loweringResult->AsAssignmentExpression(); in AdjustBoxingUnboxingFlags() 82 …} else if (loweringResult->IsBlockExpression() && !loweringResult->AsBlockExpression()->Statements… in AdjustBoxingUnboxingFlags() 83 auto *statement = loweringResult->AsBlockExpression()->Statements().back(); in AdjustBoxingUnboxingFlags() 84 if (statement->IsExpressionStatement()) { in AdjustBoxingUnboxingFlags() 85 exprToProcess = statement->AsExpressionStatement()->GetExpression(); in AdjustBoxingUnboxingFlags() 93 const ir::BoxingUnboxingFlags oldBoxingFlag {oldExpr->GetBoxingUnboxingFlags() & in AdjustBoxingUnboxingFlags() [all …]
|
| D | enumLowering.cpp | 2 * Copyright (c) 2021 - 2024 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 33 …auto *const paramIdent = checker->AllocNode<ir::Identifier>(name, typeAnnotation, checker->Allocat… in MakeFunctionParam() 34 auto *const param = checker->AllocNode<ir::ETSParameterExpression>(paramIdent, nullptr); in MakeFunctionParam() 42 …auto *const refIdent = checker->AllocNode<ir::Identifier>(paramExpr->Ident()->Name(), checker->All… in MakeParamRefIdent() 43 refIdent->SetVariable(paramExpr->Ident()->Variable()); in MakeParamRefIdent() 49 auto *const ident = checker->AllocNode<ir::Identifier>(name, checker->Allocator()); in MakeTypeReference() 50 auto *const referencePart = checker->AllocNode<ir::ETSTypeReferencePart>(ident); in MakeTypeReference() 51 return checker->AllocNode<ir::ETSTypeReference>(referencePart); in MakeTypeReference() 57 auto *const functionExpr = checker->AllocNode<ir::FunctionExpression>(function); in MakeMethodDef() [all …]
|
| /arkcompiler/ets_frontend/ets2panda/compiler/core/ |
| D | compileQueue.cpp | 2 * Copyright (c) 2021 - 2024 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 53 const auto &functions = context->parserProgram->VarBinder()->Functions(); in Schedule() 57 …ount_++].SetContext(context, function); // NOLINT(cppcoreguidelines-pro-bounds-pointer-arithmetic) in Schedule() 69 std::unique_lock<std::mutex> lock(queue->m_); in Worker() 70 …queue->jobsAvailable_.wait(lock, [queue]() { return queue->terminate_ || queue->jobsCount_ != 0; }… in Worker() 72 if (queue->terminate_) { in Worker() 78 queue->Consume(); in Worker() 79 queue->jobsFinished_.notify_one(); in Worker() 89 --jobsCount_; in Consume() [all …]
|
| D | JSemitter.cpp | 2 * Copyright (c) 2021 - 2024 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 21 #include "assembly-program.h" 28 …auto *func = new pandasm::Function(Cg()->InternalName().Mutf8(), panda_file::SourceLang::ECMASCRIP… in GenFunctionSignature() 29 GetProgramElement()->SetFunction(func); in GenFunctionSignature() 31 size_t paramCount = Cg()->InternalParamCount(); in GenFunctionSignature() 32 func->params.reserve(paramCount); in GenFunctionSignature() 35 func->params.emplace_back(pandasm::Type("any", 0), panda_file::SourceLang::ECMASCRIPT); in GenFunctionSignature() 38 func->regsNum = VReg::REG_START - Cg()->TotalRegsNum(); in GenFunctionSignature() 39 func->returnType = pandasm::Type("any", 0); in GenFunctionSignature() [all …]
|
| D | ETSemitter.cpp | 2 * Copyright (c) 2021-2024 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 44 #include "assembly-program.h" 98 if (type->IsETSTypeParameter()) { in PandasmTypeWithRank() 99 return PandasmTypeWithRank(type->AsETSTypeParameter()->GetConstraintType()); in PandasmTypeWithRank() 101 if (type->IsETSNonNullishType()) { in PandasmTypeWithRank() 102 return PandasmTypeWithRank(type->AsETSNonNullishType()->GetUnderlying()); in PandasmTypeWithRank() 104 if (type->IsETSPartialTypeParameter()) { in PandasmTypeWithRank() 105 return PandasmTypeWithRank(type->AsETSPartialTypeParameter()->GetUnderlying()); in PandasmTypeWithRank() 107 if (type->IsETSUnionType()) { in PandasmTypeWithRank() [all …]
|
| D | codeGen.cpp | 2 * Copyright (c) 2021 - 2024 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 86 const VReg vreg(usedRegs_--); in AllocReg() 93 const VReg vreg(usedRegs_--); in AllocRegWithType() 106 return it != typeMap_.end() ? it->second : nullptr; in GetVRegType() 111 return var->TsType(); in TypeForVar() 122 return context_->config->options->CompilerOptions().isDebug; in IsDebug() 127 if (rootNode_->IsProgram()) { in ParamCount() 131 return rootNode_->AsScriptFunction()->Params().size(); in ParamCount() 136 if (rootNode_->IsProgram()) { in FormalParametersCount() [all …]
|
| D | compilerImpl.cpp | 2 * Copyright (c) 2021-2024 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 52 auto *emitter = context->emitter; in HandleContextLiterals() 55 for (const auto &buff : context->contextLiterals) { in HandleContextLiterals() 56 emitter->AddLiteralBuffer(buff, index++); in HandleContextLiterals() 59 emitter->LiteralBufferIndex() += context->contextLiterals.size(); in HandleContextLiterals() 70 auto *emitter = context->emitter; in Emit() 71 … queue_.Wait([emitter](CompileJob *job) { emitter->AddProgramElement(job->GetProgramElement()); }); in Emit() 73 …return emitter->Finalize(context->config->options->CompilerOptions().dumpDebugInfo, Signatures::ET… in Emit() 107 : checkFullProgram_ {context.config->options->CompilerOptions().verifierFullProgram}, in ASTVerificationRunner() [all …]
|
| D | emitter.cpp | 2 * Copyright (c) 2021 - 2024 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 47 compiler::LiteralTag tag = literal->Tag(); in TransformMethodLiterals() 52 valueLit.value = literal->GetMethod(); in TransformMethodLiterals() 57 valueLit.value = literal->GetMethod(); in TransformMethodLiterals() 62 valueLit.value = literal->GetMethod(); in TransformMethodLiterals() 67 valueLit.value = literal->GetMethod(); in TransformMethodLiterals() 87 compiler::LiteralTag tag = literal->Tag(); in TransformLiteral() 92 valueLit.value = literal->GetBoolean(); in TransformLiteral() 97 valueLit.value = literal->GetInteger(); in TransformLiteral() [all …]
|
| D | ETSGen.cpp | 2 * Copyright (c) 2021-2024 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 52 return type->IsLongType() || type->IsDoubleType(); in IsWidePrimitiveType() 77 expr->Compile(this); in CompileAndCheck() 80 auto const *const exprType = expr->TsType(); in CompileAndCheck() 82 if (Checker()->Relation()->IsIdenticalTo(accType, exprType) || exprType->IsETSTypeParameter() || in CompileAndCheck() 83 exprType->IsETSPartialTypeParameter() || exprType->IsETSNonNullishType()) { in CompileAndCheck() 87 if (accType->IsETSPrimitiveType() && in CompileAndCheck() 88 ((accType->TypeFlags() ^ exprType->TypeFlags()) & ~checker::TypeFlag::CONSTANT) == 0) { in CompileAndCheck() 92 …ASSERT_PRINT(false, std::string("Type mismatch after Expression::Compile: ") + accType->ToString()… in CompileAndCheck() [all …]
|
| /arkcompiler/ets_frontend/ets2panda/test/unit/ |
| D | globalETSObjectType_test.h | 7 * http://www.apache.org/licenses/LICENSE-2.0 62 if (!options->Parse(1, argv)) { in InitializeChecker() 63 std::cerr << options->ErrorMsg() << std::endl; in InitializeChecker() 69 ark::Logger::InitializeStdLogging(ark::Logger::LevelFromString(options->LogLevel()), mask); in InitializeChecker() 71 Compiler compiler(options->Extension(), options->ThreadCount()); in InitializeChecker() 72 SourceFile input(fileName, src, options->ParseModule()); in InitializeChecker() 73 compiler::CompilationUnit unit {input, *options, 0, options->Extension()}; in InitializeChecker() 76 program->MarkEntry(); in InitializeChecker() 80 checker->SetAnalyzer(&analyzer); in InitializeChecker() 82 auto *varbinder = program->VarBinder(); in InitializeChecker() [all …]
|
| D | union_normalisation_test.h | 2 * Copyright (c) 2021-2024 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 70 compiler::ProgramElement *programElement) -> void { in MakeCompileJob() 85 if (!options->Parse(1, argv)) { in InitializeChecker() 86 std::cerr << options->ErrorMsg() << std::endl; in InitializeChecker() 92 ark::Logger::InitializeStdLogging(ark::Logger::LevelFromString(options->LogLevel()), mask); in InitializeChecker() 94 Compiler compiler(options->Extension(), options->ThreadCount()); in InitializeChecker() 95 SourceFile input(fileName, src, options->ParseModule()); in InitializeChecker() 96 compiler::CompilationUnit unit {input, *options, 0, options->Extension()}; in InitializeChecker() 99 program->MarkEntry(); in InitializeChecker() [all …]
|
| /arkcompiler/ets_frontend/ets2panda/evaluate/ |
| D | scopedDebugInfoPlugin.cpp | 7 * http://www.apache.org/licenses/LICENSE-2.0 17 #include "evaluate/entityDeclarator-inl.h" 18 #include "evaluate/scopedDebugInfoPlugin-inl.h" 35 …auto *declarator = checker->AllocNode<ir::VariableDeclarator>(ir::VariableDeclaratorFlag::CONST, i… in CreateVariableDeclaration() 37 … ArenaVector<ir::VariableDeclarator *> declarators(1, declarator, checker->Allocator()->Adapter()); in CreateVariableDeclaration() 38 auto *declaration = checker->AllocNode<ir::VariableDeclaration>( in CreateVariableDeclaration() 39 …ir::VariableDeclaration::VariableDeclarationKind::CONST, checker->Allocator(), std::move(declarato… in CreateVariableDeclaration() 41 declarator->SetParent(declaration); in CreateVariableDeclaration() 62 auto *allocator = checker->Allocator(); in BreakLastStatement() 70 auto *variableIdent = checker->AllocNode<ir::Identifier>(returnVariableNameView, allocator); in BreakLastStatement() [all …]
|
| /arkcompiler/ets_frontend/ets2panda/varbinder/ |
| D | ETSBinder.cpp | 2 * Copyright (c) 2021-2024 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 77 ASSERT(Program()->Ast()); in IdentifierAnalysis() 81 recordTable_->SetProgram(Program()); in IdentifierAnalysis() 82 globalRecordTable_.SetClassDefinition(Program()->GlobalClass()); in IdentifierAnalysis() 85 ASSERT(globalRecordTable_.ClassDefinition() == Program()->GlobalClass()); in IdentifierAnalysis() 90 auto *iter = typeRef->Part(); in LookupTypeArgumentReferences() 93 if (iter->TypeParams() == nullptr) { in LookupTypeArgumentReferences() 94 iter = iter->Previous(); in LookupTypeArgumentReferences() 98 ResolveReferences(iter->TypeParams()); in LookupTypeArgumentReferences() [all …]
|