/arkcompiler/ets_frontend/ets2panda/parser/ |
H A D | parserImpl.h | 21 #include "ir/base/scriptFunctionSignature.h" 104 static ir::VariableDeclaratorFlag GetFlag(VariableParsingFlags flags); 110 ir::Property *ParseShorthandProperty(const lexer::LexerPosition *startPos); 112 bool ParsePropertyModifiers(ExpressionParseFlags flags, ir::PropertyKind *propertyKind, ParserStatus *methodStatus); 113 ir::Expression *ParsePropertyValue(const ir::PropertyKind *propertyKind, const ParserStatus *methodStatus, 119 ir::Expression *ParseKeywordExpression(); 120 ir::Expression *ParseBinaryExpression(ir::Expression *left, 122 void ValidateUpdateExpression(ir [all...] |
H A D | TSparser.h | 22 namespace ark::es2panda::ir { namespace in ark::es2panda 25 } // namespace ark::es2panda::ir 41 ir::TypeNode *ParseTypeAnnotationElement(ir::TypeNode *typeAnnotation, TypeAnnotationParsingOptions *options); 44 ir::TypeNode *ParseTypeOperatorOrTypeReference(); 45 ir::TypeNode *ParseIdentifierReference(); 47 ir::TypeNode *ParseBasicType(); 48 ir::TSTypeReference *ParseConstExpression(); 49 ir::TSIntersectionType *ParseIntersectionType(ir [all...] |
H A D | TypedParser.h | 21 namespace ark::es2panda::ir { namespace in ark::es2panda 23 } // namespace ark::es2panda::ir 34 void ParseDecorators(ArenaVector<ir::Decorator *> &decorators); 36 ir::TSModuleDeclaration *ParseAmbientExternalModuleDeclaration(const lexer::SourcePosition &startLoc); 37 ir::TSModuleBlock *ParseTsModuleBlock(); 38 ir::TSModuleDeclaration *ParseModuleOrNamespaceDeclaration(const lexer::SourcePosition &startLoc); 39 ArenaVector<ir::AstNode *> ParseTypeLiteralOrInterface(); 40 ArenaVector<ir::AstNode *> ParseTypeLiteralOrInterfaceBody(); 41 void CheckObjectTypeForDuplicatedProperties(ir::Expression *key, ArenaVector<ir [all...] |
H A D | ASparser.h | 32 ir::TypeNode *ParseParenthesizedOrFunctionType(bool throwError); 33 ir::TypeNode *ParseFunctionType(lexer::SourcePosition startLoc); 34 void ParseOptionalFunctionParameter(ir::AnnotatedExpression *returnNode, bool inRest = false); 37 ir::Statement *ParseStatement(StatementParsingFlags flags = StatementParsingFlags::NONE) override; 38 std::tuple<ir::AnnotatedExpression *, bool> ParsePatternElementToken(ExpressionParseFlags flags); 39 ir::Expression *ParsePatternElement(ExpressionParseFlags flags, bool allowDefault) override; 41 ir::Expression *ParsePropertyDefinition( 44 ir::TypeNode *ParseTypeAnnotationLiteralIdentHelper(ir::TypeNode *type, TypeAnnotationParsingOptions *options); 45 ir [all...] |
H A D | ETSparser.h | 22 #include "ir/base/classDefinition.h" 25 namespace ark::es2panda::ir { namespace in ark::es2panda 29 } // namespace ark::es2panda::ir 47 ArenaVector<ir::ETSImportDeclaration *> ParseDefaultSources(std::string_view srcFile, std::string_view importSrc); 70 void ProcessFormattedArg(std::vector<ir::AstNode *> &nodes, T &&arg) in ProcessFormattedArg() 72 if constexpr (std::is_convertible_v<std::decay_t<T>, ir::AstNode *>) { in ProcessFormattedArg() 75 nodes.emplace_back(AllocNode<ir::Identifier>(std::forward<T>(arg), Allocator())); in ProcessFormattedArg() 77 nodes.emplace_back(AllocNode<ir::Identifier>(arg.View(), Allocator())); in ProcessFormattedArg() 80 AllocNode<ir::Identifier>(util::UString(std::forward<T>(arg), Allocator()).View(), Allocator())); in ProcessFormattedArg() 82 nodes.emplace_back(AllocNode<ir in ProcessFormattedArg() [all...] |
H A D | ETSparserClasses.cpp | 31 #include "ir/astNode.h" 32 #include "ir/base/classDefinition.h" 33 #include "ir/base/decorator.h" 34 #include "ir/base/catchClause.h" 35 #include "ir/base/classProperty.h" 36 #include "ir/base/scriptFunction.h" 37 #include "ir/base/methodDefinition.h" 38 #include "ir/base/classStaticBlock.h" 39 #include "ir/base/spreadElement.h" 40 #include "ir/expression [all...] |
/arkcompiler/ets_frontend/es2panda/parser/ |
H A D | parserImpl.h | 21 #include <ir/astNode.h> 22 #include <ir/base/methodDefinition.h> 46 namespace panda::es2panda::ir { 121 } // namespace panda::es2panda::ir 130 ir::MethodDefinitionKind methodKind {}; 132 ir::ModifierFlags modifiers {}; 147 explicit ArrowFunctionDescriptor(ArenaVector<ir::Expression *> &&p, binder::FunctionParamScope *ps, in ArrowFunctionDescriptor() 153 ArenaVector<ir::Expression *> params; 207 ir::Expression* SetupChainExpr(ir [all...] |
H A D | commonjs.cpp | 17 #include <ir/base/scriptFunction.h> 18 #include <ir/expression.h> 19 #include <ir/expressions/arrayExpression.h> 20 #include <ir/expressions/callExpression.h> 21 #include <ir/expressions/functionExpression.h> 22 #include <ir/expressions/identifier.h> 23 #include <ir/expressions/memberExpression.h> 24 #include <ir/statements/expressionStatement.h> 25 #include <ir/statements/blockStatement.h> 39 void ParserImpl::AddCommonjsParams(ArenaVector<ir [all...] |
/arkcompiler/ets_frontend/ets2panda/compiler/lowering/ets/ |
H A D | enumLowering.h | 32 static util::UString GetEnumClassName(checker::ETSChecker *checker, const ir::TSEnumDeclaration *const enumDecl); 46 ArenaVector<ir::Expression *> &¶ms; 47 ArenaVector<ir::Statement *> &&body; 48 ir::TypeNode *returnTypeAnnotation; 49 const ir::TSEnumDeclaration *enumDecl; 50 ir::ModifierFlags flags; 53 [[nodiscard]] ir::ScriptFunction *MakeFunction(FunctionInfo &&functionInfo); 54 ir::ClassDefinition *CreateClass(ir::TSEnumDeclaration *const enumDecl); 55 ir [all...] |
/arkcompiler/ets_frontend/ets2panda/compiler/core/ |
H A D | pandagen.h | 26 #include "ir/irnode.h" 37 namespace ark::es2panda::ir { namespace in ark::es2panda::ark::es2panda 43 } // namespace ark::es2panda::ir 70 void StoreAccumulator(const ir::AstNode *node, VReg vreg); 71 void LoadAccumulator(const ir::AstNode *node, VReg reg); 73 [[nodiscard]] IRNode *AllocMov(const ir::AstNode *node, VReg vd, VReg vs) override; 74 [[nodiscard]] IRNode *AllocMov(const ir::AstNode *node, OutVReg vd, VReg vs) override; 75 void MoveVreg(const ir::AstNode *node, VReg vd, VReg vs); 77 void LoadAccumulatorDouble(const ir::AstNode *node, double num); 78 void LoadAccumulatorInt(const ir [all...] |
H A D | JSCompilerUnreachable.cpp | 21 void JSCompiler::Compile([[maybe_unused]] const ir::NamedType *node) const in Compile() 26 void JSCompiler::Compile([[maybe_unused]] const ir::PrefixAssertionExpression *expr) const in Compile() 31 void JSCompiler::Compile([[maybe_unused]] const ir::ClassProperty *st) const in Compile() 36 void JSCompiler::Compile([[maybe_unused]] const ir::ClassStaticBlock *st) const in Compile() 41 void JSCompiler::Compile([[maybe_unused]] const ir::Decorator *st) const in Compile() 46 void JSCompiler::Compile([[maybe_unused]] const ir::MethodDefinition *node) const in Compile() 51 void JSCompiler::Compile([[maybe_unused]] const ir::Property *expr) const in Compile() 56 void JSCompiler::Compile([[maybe_unused]] const ir::ScriptFunction *node) const in Compile() 61 void JSCompiler::Compile([[maybe_unused]] const ir::SpreadElement *expr) const in Compile() 66 void JSCompiler::Compile([[maybe_unused]] const ir [all...] |
H A D | ETSCompilerUnrechable.cpp | 20 void ETSCompiler::Compile([[maybe_unused]] const ir::NamedType *node) const in Compile() 25 void ETSCompiler::Compile([[maybe_unused]] const ir::PrefixAssertionExpression *expr) const in Compile() 30 void ETSCompiler::Compile([[maybe_unused]] const ir::ClassDefinition *node) const in Compile() 35 void ETSCompiler::Compile([[maybe_unused]] const ir::ClassStaticBlock *st) const in Compile() 40 void ETSCompiler::Compile([[maybe_unused]] const ir::Decorator *st) const in Compile() 45 void ETSCompiler::Compile([[maybe_unused]] const ir::MetaProperty *expr) const in Compile() 50 void ETSCompiler::Compile([[maybe_unused]] const ir::MethodDefinition *node) const in Compile() 55 void ETSCompiler::Compile([[maybe_unused]] const ir::Property *expr) const in Compile() 60 void ETSCompiler::Compile([[maybe_unused]] const ir::ScriptFunction *node) const in Compile() 65 void ETSCompiler::Compile([[maybe_unused]] const ir [all...] |
/arkcompiler/ets_frontend/ets2panda/checker/ets/ |
H A D | assignAnalyzer.h | 24 namespace ark::es2panda::ir { namespace in ark::es2panda 26 } // namespace ark::es2panda::ir 60 explicit AssignPendingExit(const ir::AstNode *node, Set &inits, Set &uninits) in AssignPendingExit() 86 using NodeIdMap = ArenaMap<const ir::AstNode *, NodeId>; 91 void Analyze(const ir::AstNode *node); 97 void AnalyzeNodes(const ir::AstNode *node); 98 void AnalyzeNode(const ir::AstNode *node); 99 bool AnalyzeStmtNode1(const ir::AstNode *node); 100 bool AnalyzeStmtNode2(const ir::AstNode *node); 101 bool AnalyzeExprNode1(const ir [all...] |
H A D | dynamic.cpp | 26 #include "ir/base/classProperty.h" 27 #include "ir/base/classStaticBlock.h" 28 #include "ir/base/methodDefinition.h" 29 #include "ir/base/scriptFunction.h" 30 #include "ir/expressions/assignmentExpression.h" 31 #include "ir/expressions/callExpression.h" 32 #include "ir/expressions/functionExpression.h" 33 #include "ir/expressions/identifier.h" 34 #include "ir/expressions/thisExpression.h" 35 #include "ir/expression [all...] |
/arkcompiler/ets_frontend/es2panda/compiler/core/ |
H A D | pandagen.h | 24 #include <ir/irnode.h> 39 namespace panda::es2panda::ir { namespace in panda::es2panda::panda::es2panda 45 } // namespace panda::es2panda::ir 76 const ir::Statement *firstStmt {}; 130 const ir::AstNode *RootNode() const in RootNode() 262 void InitializeLexEnv(const ir::AstNode *node); 263 void CopyFunctionArguments(const ir::AstNode *node); 264 void GetFunctionObject(const ir::AstNode *node); 265 void GetNewTarget(const ir::AstNode *node); 266 void GetThis(const ir [all...] |
/arkcompiler/ets_frontend/ets2panda/compiler/lowering/scopesInit/ |
H A D | scopesInitPhase.h | 26 #include "ir/visitor/IterateAstVisitor.h" 27 #include "ir/expressions/literals/undefinedLiteral.h" 28 #include "ir/expressions/blockExpression.h" 29 #include "ir/ets/etsUnionType.h" 30 #include "ir/ets/etsTuple.h" 38 class ScopesInitPhase : public Phase, public ir::visitor::IterateAstVisitor { 85 void CallFuncParams(const ArenaVector<ir::Expression *> ¶ms); 86 void IterateNoTParams(ir::ClassDefinition *classDef); 91 void VisitFunctionExpression(ir::FunctionExpression *funcExpr) override; 92 void VisitScriptFunction(ir [all...] |
/arkcompiler/ets_frontend/es2panda/parser/transformer/ |
H A D | transformer.h | 23 #include "ir/astNode.h" 24 #include "ir/base/classDefinition.h" 25 #include "ir/base/methodDefinition.h" 43 using ComputedPropertyMap = std::unordered_map<ir::Statement *, util::StringView>; 48 const ir::ClassDefinition *node; 55 ir::Expression *key; 57 ir::MethodDefinitionKind kind; 58 ir::ModifierFlags modifiers; 65 util::StringView aliasName, ir::ClassDefinition *node) in DuringClass() 112 void PushVariablesToNearestStatements(ir [all...] |
/arkcompiler/ets_frontend/ets2panda/compiler/lowering/ets/topLevelStmts/ |
H A D | globalDeclTransformer.h | 21 #include "ir/visitor/IterateAstVisitor.h" 25 class GlobalDeclTransformer : public ir::visitor::CustomAstVisitor { 26 const std::unordered_set<ir::AstNodeType> typeDecl_ = { 27 ir::AstNodeType::CLASS_DECLARATION, ir::AstNodeType::STRUCT_DECLARATION, 28 ir::AstNodeType::TS_ENUM_DECLARATION, ir::AstNodeType::TS_INTERFACE_DECLARATION, 29 ir::AstNodeType::ETS_PACKAGE_DECLARATION, ir::AstNodeType::ETS_IMPORT_DECLARATION, 30 ir [all...] |
H A D | globalClassHandler.cpp | 20 #include "ir/statements/classDeclaration.h" 21 #include "ir/base/classDefinition.h" 22 #include "ir/base/classProperty.h" 23 #include "ir/base/classStaticBlock.h" 24 #include "ir/base/scriptFunction.h" 25 #include "ir/base/methodDefinition.h" 26 #include "ir/expressions/identifier.h" 27 #include "ir/expressions/classExpression.h" 28 #include "ir/expressions/functionExpression.h" 29 #include "ir/expression [all...] |
/arkcompiler/ets_frontend/ets2panda/checker/ |
H A D | ETSchecker.h | 57 using DynamicCallIntrinsicsMap = ArenaUnorderedMap<Language, ArenaUnorderedMap<util::StringView, ir::ScriptFunction *>>; 58 using DynamicClassIntrinsicsMap = ArenaUnorderedMap<Language, ir::ClassDeclaration *>; 130 ETSObjectType *GlobalBuiltinFunctionType(size_t nargs, ir::ScriptFunctionFlags flags) const; 145 Type *CheckTypeCached(ir::Expression *expr) override; 158 ETSObjectType *BuildBasicClassProperties(ir::ClassDefinition *classDef); 159 ETSObjectType *BuildAnonymousClassProperties(ir::ClassDefinition *classDef, ETSObjectType *superType); 160 ETSObjectType *BuildBasicInterfaceProperties(ir::TSInterfaceDeclaration *interfaceDecl); 169 bool ValidateArrayIndex(ir::Expression *expr, bool relaxed = false); 170 bool ValidateTupleIndex(const ETSTupleType *tuple, ir::MemberExpression *expr); 171 ETSObjectType *CheckThisOrSuperAccess(ir [all...] |
H A D | ETSAnalyzerUnreachable.cpp | 21 checker::Type *ETSAnalyzer::Check([[maybe_unused]] ir::NamedType *node) const in Check() 26 checker::Type *ETSAnalyzer::Check([[maybe_unused]] ir::PrefixAssertionExpression *expr) const in Check() 31 checker::Type *ETSAnalyzer::Check([[maybe_unused]] ir::Decorator *st) const in Check() 36 checker::Type *ETSAnalyzer::Check([[maybe_unused]] ir::MetaProperty *expr) const in Check() 41 checker::Type *ETSAnalyzer::Check([[maybe_unused]] ir::ScriptFunction *node) const in Check() 46 checker::Type *ETSAnalyzer::Check([[maybe_unused]] ir::TSIndexSignature *node) const in Check() 51 checker::Type *ETSAnalyzer::Check([[maybe_unused]] ir::TSMethodSignature *node) const in Check() 56 checker::Type *ETSAnalyzer::Check([[maybe_unused]] ir::TSPropertySignature *node) const in Check() 61 checker::Type *ETSAnalyzer::Check([[maybe_unused]] ir::TSSignatureDeclaration *node) const in Check() 66 checker::Type *ETSAnalyzer::Check([[maybe_unused]] ir [all...] |
H A D | TSAnalyzerUnreachable.cpp | 21 checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::NamedType *node) const in Check() 26 checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::PrefixAssertionExpression *expr) const in Check() 31 checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ClassProperty *st) const in Check() 36 checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ClassStaticBlock *st) const in Check() 41 checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::Decorator *st) const in Check() 46 checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::MethodDefinition *node) const in Check() 51 checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::Property *expr) const in Check() 56 checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ScriptFunction *node) const in Check() 61 checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::SpreadElement *expr) const in Check() 66 checker::Type *TSAnalyzer::Check([[maybe_unused]] ir [all...] |
/arkcompiler/ets_frontend/ets2panda/evaluate/debugInfoDeserialization/ |
H A D | methodBuilder.cpp | 34 ArenaVector<ir::TypeNode *> GetFunctionParameters(checker::ETSChecker *checker, panda_file::MethodDataAccessor &mda) in GetFunctionParameters() 37 ArenaVector<ir::TypeNode *> parameters(checker->Allocator()->Adapter()); in GetFunctionParameters() 49 ir::ReturnStatement *CreateTypedReturnStatement(checker::ETSChecker *checker, ir::TypeNode *type) in CreateTypedReturnStatement() 53 if (type->IsETSPrimitiveType() && type->AsETSPrimitiveType()->GetPrimitiveType() == ir::PrimitiveType::VOID) { in CreateTypedReturnStatement() 54 return checker->AllocNode<ir::ReturnStatement>(); in CreateTypedReturnStatement() 61 auto *apiClass = checker->AllocNode<ir::Identifier>(helpers::DEBUGGER_API_CLASS_NAME, allocator); in CreateTypedReturnStatement() 63 checker->AllocNode<ir::Identifier>(helpers::CreateGetterName(panda_file::Type::TypeId::REFERENCE), allocator); in CreateTypedReturnStatement() 64 auto *callee = checker->AllocNode<ir::MemberExpression>(apiClass, prop, ir in CreateTypedReturnStatement() [all...] |
H A D | methodBuilder.h | 20 #include "ir/astNodeFlags.h" 32 namespace ark::es2panda::ir { namespace in ark::ark::ark::es2panda 42 } // namespace ark::es2panda::ir 53 ir::ModifierFlags classModifierFlags); 55 ir::AstNode *Build() &&; 69 return (modifierFlags_ & ir::ModifierFlags::ABSTRACT) != 0; in IsAbstractMethod() 74 ir::ExpressionStatement *CreateSuperConstructorExpressionCall(); 75 ir::BlockStatement *CreateBody(ArenaVector<ir::Statement *> statements); 78 ir [all...] |
/arkcompiler/ets_frontend/ets2panda/ast_verifier/ |
H A D | helpers.h | 19 #include "ir/astNode.h" 24 bool IsImportLike(const ir::AstNode *ast); 25 bool IsExportLike(const ir::AstNode *ast); 26 bool IsBooleanType(const ir::AstNode *ast); 27 bool IsValidTypeForBinaryOp(const ir::AstNode *ast, bool isBitwise); 28 bool IsStringType(const ir::AstNode *ast); 29 bool IsVisibleInternalNode(const ir::AstNode *ast, const ir::AstNode *objTypeDeclNode); 30 const checker::Type *GetClassDefinitionType(const ir::AstNode *ast); 31 const checker::Type *GetTSInterfaceDeclarationType(const ir [all...] |