/arkcompiler/ets_frontend/es2panda/parser/ |
D | parserImpl.h | 46 namespace panda::es2panda::ir { 129 ir::MethodDefinitionKind methodKind {}; 131 ir::ModifierFlags modifiers {}; 146 …explicit ArrowFunctionDescriptor(ArenaVector<ir::Expression *> &&p, binder::FunctionParamScope *ps, in ArrowFunctionDescriptor() 152 ArenaVector<ir::Expression *> params; 204 [[noreturn]] void ThrowParameterModifierError(ir::ModifierFlags status) const; 235 void AddCommonjsParams(ArenaVector<ir::Expression *> ¶ms); 236 void AddReflectApplyArgs(ArenaVector<ir::Expression *> &args, ir::FunctionExpression *wrapper); 238 bool CheckTopStatementsForRequiredDeclare(const ArenaVector<ir::Statement *> &statements); 245 static bool IsPropertyKeysAreSame(const ir::Expression *exp1, const ir::Expression *exp2); [all …]
|
D | commonjs.cpp | 39 void ParserImpl::AddCommonjsParams(ArenaVector<ir::Expression *> ¶ms) in AddCommonjsParams() 42 ir::Expression *param = AllocNode<ir::Identifier>(paramName); in AddCommonjsParams() 49 void ParserImpl::AddReflectApplyArgs(ArenaVector<ir::Expression *> &args, ir::FunctionExpression *w… in AddReflectApplyArgs() 55 …ir::Expression *thisValue = AllocNode<ir::Identifier>(binder::Binder::CJS_MANDATORY_PARAM_EXPORTS); in AddReflectApplyArgs() 59 ArenaVector<ir::Expression *> elements(Allocator()->Adapter()); in AddReflectApplyArgs() 61 ir::Expression *arg = AllocNode<ir::Identifier>(argName); in AddReflectApplyArgs() 65 ir::ArrayExpression *wrapperArgsArray = in AddReflectApplyArgs() 66 … AllocNode<ir::ArrayExpression>(ir::AstNodeType::ARRAY_EXPRESSION, std::move(elements), false); in AddReflectApplyArgs() 73 ir::FunctionExpression *wrapper = nullptr; in ParseCommonjs() 79 ArenaVector<ir::Expression *> params(Allocator()->Adapter()); in ParseCommonjs() [all …]
|
D | parserImpl.cpp | 182 auto *blockStmt = AllocNode<ir::BlockStatement>(Binder()->GetScope(), std::move(statements)); in ParseProgram() 189 bool ParserImpl::CheckTopStatementsForRequiredDeclare(const ArenaVector<ir::Statement *> &statement… in CheckTopStatementsForRequiredDeclare() 193 case ir::AstNodeType::TS_INTERFACE_DECLARATION: in CheckTopStatementsForRequiredDeclare() 194 case ir::AstNodeType::TS_TYPE_ALIAS_DECLARATION: in CheckTopStatementsForRequiredDeclare() 195 case ir::AstNodeType::IMPORT_DECLARATION: in CheckTopStatementsForRequiredDeclare() 196 case ir::AstNodeType::TS_IMPORT_EQUALS_DECLARATION: in CheckTopStatementsForRequiredDeclare() 197 case ir::AstNodeType::EXPORT_ALL_DECLARATION: in CheckTopStatementsForRequiredDeclare() 198 case ir::AstNodeType::EXPORT_DEFAULT_DECLARATION: in CheckTopStatementsForRequiredDeclare() 199 case ir::AstNodeType::EXPORT_NAMED_DECLARATION: in CheckTopStatementsForRequiredDeclare() 200 case ir::AstNodeType::TS_NAMESPACE_EXPORT_DECLARATION: in CheckTopStatementsForRequiredDeclare() [all …]
|
D | expressionParser.cpp | 79 ir::YieldExpression *ParserImpl::ParseYieldExpression() in ParseYieldExpression() 95 ir::Expression *argument = nullptr; in ParseYieldExpression() 114 auto *yieldNode = AllocNode<ir::YieldExpression>(argument, isDelegate); in ParseYieldExpression() 120 ir::Expression *ParserImpl::ParsePotentialExpressionSequence(ir::Expression *expr, ExpressionParseF… in ParsePotentialExpressionSequence() 130 ir::TSAsExpression *ParserImpl::ParseTsAsExpression(ir::Expression *expr, [[maybe_unused]] Expressi… in ParseTsAsExpression() 135 ir::Expression *typeAnnotation = ParseTsTypeAnnotation(&options); in ParseTsAsExpression() 146 auto *asExpr = AllocNode<ir::TSAsExpression>(expr, typeAnnotation, isConst); in ParseTsAsExpression() 160 ir::Expression *ParserImpl::ParseExpression(ExpressionParseFlags flags) in ParseExpression() 163 ir::YieldExpression *yieldExpr = ParseYieldExpression(); in ParseExpression() 172 ir::Expression *expr = nullptr; in ParseExpression() [all …]
|
D | statementParser.cpp | 195 ir::Statement *ParserImpl::ParseStatement(StatementParsingFlags flags) in ParseStatement() 232 ir::TSModuleDeclaration *decl = ParseTsModuleDeclaration(isDeclare); in ParseStatement() 310 ir::TSModuleDeclaration *ParserImpl::ParseTsModuleDeclaration(bool isDeclare, bool isExport) in ParseTsModuleDeclaration() 332 ir::TSModuleDeclaration *ParserImpl::ParseTsAmbientExternalModuleDeclaration(const lexer::SourcePos… in ParseTsAmbientExternalModuleDeclaration() 336 ir::Expression *name = nullptr; in ParseTsAmbientExternalModuleDeclaration() 340 name = AllocNode<ir::Identifier>(lexer_->GetToken().Ident()); in ParseTsAmbientExternalModuleDeclaration() 348 name = AllocNode<ir::StringLiteral>(lexer_->GetToken().String()); in ParseTsAmbientExternalModuleDeclaration() 358 ir::Statement *body = nullptr; in ParseTsAmbientExternalModuleDeclaration() 367 …auto *moduleDecl = AllocNode<ir::TSModuleDeclaration>(localCtx.GetScope(), name, body, isDeclare, … in ParseTsAmbientExternalModuleDeclaration() 374 ir::TSModuleDeclaration *ParserImpl::ParseTsModuleOrNamespaceDelaration(const lexer::SourcePosition… in ParseTsModuleOrNamespaceDelaration() [all …]
|
/arkcompiler/ets_frontend/es2panda/compiler/core/ |
D | pandagen.h | 38 namespace panda::es2panda::ir { 74 const ir::Statement *firstStmt {}; 130 const ir::AstNode *RootNode() const in RootNode() 278 void InitializeLexEnv(const ir::AstNode *node); 279 void CopyFunctionArguments(const ir::AstNode *node); 280 void GetFunctionObject(const ir::AstNode *node); 281 void GetNewTarget(const ir::AstNode *node); 282 void GetThis(const ir::AstNode *node); 283 void SetThis(const ir::AstNode *node); 284 void LoadVar(const ir::Identifier *node, const binder::ScopeFindResult &result); [all …]
|
D | pandagen.cpp | 169 const ir::ScriptFunction *func = rootNode_->AsScriptFunction(); in FunctionInit() 195 const ir::ScriptFunction *func = rootNode_->AsScriptFunction(); in FunctionHasFinalizer() 202 const ir::ScriptFunction *func = rootNode_->AsScriptFunction(); in IsAsyncFunction() 216 void PandaGen::InitializeLexEnv(const ir::AstNode *node) in InitializeLexEnv() 225 void PandaGen::CopyFunctionArguments(const ir::AstNode *node) in CopyFunctionArguments() 238 auto fn = [this](const ir::AstNode *node) { in CopyFunctionArguments() 275 buf->Add(Allocator()->New<ir::NumberLiteral>(lexicalVars.size())); in AddLexicalVarNamesForDebugInfo() 277 buf->Add(Allocator()->New<ir::StringLiteral>(iter.second.first)); in AddLexicalVarNamesForDebugInfo() 278 buf->Add(Allocator()->New<ir::NumberLiteral>(iter.first)); in AddLexicalVarNamesForDebugInfo() 283 void PandaGen::GetFunctionObject(const ir::AstNode *node) in GetFunctionObject() [all …]
|
/arkcompiler/ets_frontend/es2panda/parser/transformer/ |
D | transformer.h | 41 using ComputedPropertyMap = std::unordered_map<ir::Statement *, util::StringView>; 98 void PushVariablesToNearestStatements(ir::BlockStatement *ast); 100 ir::AstNode *VisitTSNodes(ir::AstNode *parent); 101 ir::UpdateNodes VisitTSNode(ir::AstNode *childNode); 102 …ir::UpdateNodes VisitTsModuleDeclaration(ir::TSModuleDeclaration *childNode, bool isExport = false… 103 std::vector<ir::AstNode *> VisitExportNamedVariable(ir::Statement *decl); 104 ir::AstNode *VisitTsImportEqualsDeclaration(ir::TSImportEqualsDeclaration *node); 105 ir::UpdateNodes VisitClassDeclaration(ir::ClassDeclaration *node); 106 ir::UpdateNodes VisitClassExpression(ir::ClassExpression *node); 107 void VisitTSParameterProperty(ir::ClassDefinition *node); [all …]
|
D | transformer.cpp | 92 ir::AstNode *Transformer::VisitTSNodes(ir::AstNode *parent) in VisitTSNodes() 129 void Transformer::PushVariablesToNearestStatements(ir::BlockStatement *ast) in PushVariablesToNearestStatements() 195 ir::UpdateNodes Transformer::VisitTSNode(ir::AstNode *childNode) in VisitTSNode() 199 case ir::AstNodeType::IDENTIFIER: { in VisitTSNode() 221 case ir::AstNodeType::TS_MODULE_DECLARATION: { in VisitTSNode() 230 case ir::AstNodeType::TS_ENUM_DECLARATION: { in VisitTSNode() 239 case ir::AstNodeType::EXPORT_NAMED_DECLARATION: { in VisitTSNode() 272 return VisitExportClassDeclaration<ir::ExportNamedDeclaration>(node); in VisitTSNode() 277 case ir::AstNodeType::EXPORT_DEFAULT_DECLARATION: { in VisitTSNode() 282 return VisitExportClassDeclaration<ir::ExportDefaultDeclaration>(node); in VisitTSNode() [all …]
|
/arkcompiler/ets_frontend/es2panda/ |
D | CMakeLists.txt | 101 ir/astDump.cpp 102 ir/base/catchClause.cpp 103 ir/base/classDefinition.cpp 104 ir/base/classProperty.cpp 105 ir/base/decorator.cpp 106 ir/base/metaProperty.cpp 107 ir/base/methodDefinition.cpp 108 ir/base/property.cpp 109 ir/base/scriptFunction.cpp 110 ir/base/spreadElement.cpp [all …]
|
D | BUILD.gn | 54 "ir/astDump.cpp", 55 "ir/base/catchClause.cpp", 56 "ir/base/classDefinition.cpp", 57 "ir/base/classProperty.cpp", 58 "ir/base/decorator.cpp", 59 "ir/base/metaProperty.cpp", 60 "ir/base/methodDefinition.cpp", 61 "ir/base/property.cpp", 62 "ir/base/scriptFunction.cpp", 63 "ir/base/spreadElement.cpp", [all …]
|
/arkcompiler/ets_frontend/es2panda/typescript/extractor/ |
D | typeExtractor.h | 27 using Getter = std::function<int64_t(const ir::AstNode *, bool isNewInstance)>; 28 using Handler = std::function<void(const ir::AstNode *)>; 32 …explicit TypeExtractor(const ir::BlockStatement *rootNode, bool typeDtsExtractor, bool typeDtsBuil… 44 const ir::Identifier *GetIdentifierFromExpression(const ir::Expression *expression); 45 …const ir::AstNode *GetDeclNodeFromIdentifier(const ir::Identifier *identifier, const ir::Identifie… 46 …int64_t GetTypeIndexFromAnnotation(const ir::Expression *typeAnnotation, bool isNewInstance = true… 47 int64_t GetTypeIndexFromIdentifier(const ir::Identifier *identifier); 48 int64_t GetTypeIndexFromInitializer(const ir::Expression *initializer); 49 int64_t GetTypeIndexFromClassInst(int64_t typeIndex, const ir::AstNode *node, 64 bool AddSearchingTypeRefNodes(const ir::Expression * node) in AddSearchingTypeRefNodes() [all …]
|
D | typeExtractor.cpp | 55 const std::set<ir::AstNodeType> PRUNING_SET = { 56 ir::AstNodeType::IDENTIFIER, 57 ir::AstNodeType::TS_INTERFACE_DECLARATION, 58 ir::AstNodeType::TS_TYPE_ALIAS_DECLARATION, 59 ir::AstNodeType::IMPORT_DECLARATION, 60 ir::AstNodeType::EXPORT_ALL_DECLARATION 63 TypeExtractor::TypeExtractor(const ir::BlockStatement *rootNode, bool typeDtsExtractor, bool typeDt… in TypeExtractor() 69 getterMap_[ir::AstNodeType::IDENTIFIER] = in TypeExtractor() 71 getterMap_[ir::AstNodeType::CLASS_EXPRESSION] = in TypeExtractor() 73 getterMap_[ir::AstNodeType::CLASS_DEFINITION] = in TypeExtractor() [all …]
|
/arkcompiler/ets_frontend/es2panda/typescript/core/ |
D | destructuringContext.h | 24 namespace panda::es2panda::ir { 34 …DestructuringContext(Checker *checker, const ir::Expression *id, bool inAssignment, bool convertTu… in DestructuringContext() 35 const ir::Expression *typeAnnotation, const ir::Expression *initializer) in DestructuringContext() 56 void ValidateObjectLiteralType(ObjectType *objType, const ir::ObjectExpression *objPattern); 57 …void HandleDestructuringAssignment(const ir::Identifier *ident, Type *inferedType, Type *defaultTy… 58 … void HandleAssignmentPattern(const ir::AssignmentExpression *assignmentPattern, Type *inferedType, 61 void Prepare(const ir::Expression *typeAnnotation, const ir::Expression *initializer, 71 virtual void HandleRest(const ir::SpreadElement *rest) = 0; 73 virtual Type *ConvertTupleTypeToArrayTypeIfNecessary(const ir::AstNode *node, Type *type) = 0; 77 const ir::Expression *id_; [all …]
|
D | util.cpp | 26 const ir::TSQualifiedName *Checker::ResolveLeftMostQualifiedName(const ir::TSQualifiedName *qualifi… in ResolveLeftMostQualifiedName() 28 const ir::TSQualifiedName *iter = qualifiedName; in ResolveLeftMostQualifiedName() 37 const ir::MemberExpression *Checker::ResolveLeftMostMemberExpression(const ir::MemberExpression *ex… in ResolveLeftMostMemberExpression() 39 const ir::MemberExpression *iter = expr; in ResolveLeftMostMemberExpression() 48 bool Checker::InAssignment(const ir::AstNode *node) in InAssignment() 50 const ir::AstNode *parent = node; in InAssignment() 58 const ir::BinaryExpression *binaryExpr = parent->Parent()->AsBinaryExpression(); in InAssignment() 113 const ir::AstNode *Checker::FindAncestorGivenByType(const ir::AstNode *node, ir::AstNodeType type) in FindAncestorGivenByType() 129 const ir::AstNode *Checker::FindAncestorUntilGivenType(const ir::AstNode *node, ir::AstNodeType sto… in FindAncestorUntilGivenType() 183 bool Checker::IsConstantMemberAccess(const ir::Expression *expr) in IsConstantMemberAccess() [all …]
|
/arkcompiler/ets_runtime/tools/circuit_viewer/src/ir/ |
D | IrToPicture.js | 42 static nodeType(ir) { argument 43 if (XTools.CONFIG.OpTypeControl.indexOf(ir.op) >= 0) { 46 if (ir.in[INTYPE.state].length > 0 && XTools.CONFIG.OpNotControl.indexOf(ir.op) === -1) { 49 if (XTools.CONFIG.OpTypeDepend.indexOf(ir.op) >= 0 || ir.in[INTYPE.depend].length > 0) { 52 if (XTools.CONFIG.OpTypeValue.indexOf(ir.op) >= 0 || ir.in[INTYPE.value].length > 0) { 57 static nodeTypeMask(ir) { argument 59 if (XTools.CONFIG.OpTypeControl.indexOf(ir.op) >= 0) { 62 if (ir.in[INTYPE.state].length > 0 && XTools.CONFIG.OpNotControl.indexOf(ir.op) === -1) { 65 if (XTools.CONFIG.OpTypeDepend.indexOf(ir.op) >= 0 || ir.in[INTYPE.depend].length > 0) { 68 if (XTools.CONFIG.OpTypeValue.indexOf(ir.op) >= 0 || ir.in[INTYPE.value].length > 0) { [all …]
|
/arkcompiler/ets_frontend/es2panda/typescript/ |
D | checker.h | 43 namespace panda::es2panda::ir { 113 using TypeOrNode = std::variant<Type *, const ir::AstNode *>; 320 std::unordered_map<const ir::AstNode *, Type *> &NodeCache() in NodeCache() 327 Type *CheckTypeCached(const ir::Expression *expr); 334 static bool InAssignment(const ir::AstNode *node); 337 … static const ir::AstNode *FindAncestorGivenByType(const ir::AstNode *node, ir::AstNodeType type); 338 …static const ir::AstNode *FindAncestorUntilGivenType(const ir::AstNode *node, ir::AstNodeType stop… 341 static bool IsConstantMemberAccess(const ir::Expression *expr); 342 static bool IsStringLike(const ir::Expression *expr); 343 …static const ir::TSQualifiedName *ResolveLeftMostQualifiedName(const ir::TSQualifiedName *qualifie… [all …]
|
/arkcompiler/ets_frontend/es2panda/compiler/function/ |
D | functionBuilder.h | 22 namespace panda::es2panda::ir { 52 virtual void Prepare([[maybe_unused]] const ir::ScriptFunction *node) {}; in Prepare() 53 virtual void CleanUp([[maybe_unused]] const ir::ScriptFunction *node) const {}; in CleanUp() 55 virtual void DirectReturn(const ir::AstNode *node) const; 56 virtual void ImplicitReturn(const ir::AstNode *node) const; 57 virtual void ExplicitReturn(const ir::AstNode *node) const; 59 virtual void Await(const ir::AstNode *node); 60 virtual void YieldStar(const ir::AstNode *node); 62 virtual void Yield([[maybe_unused]] const ir::AstNode *node) in Yield() 75 …void SuspendResumeExecution(const ir::AstNode *node, VReg completionType, VReg completionValue) co… [all …]
|
/arkcompiler/ets_frontend/es2panda/util/ |
D | helpers.h | 26 namespace panda::es2panda::ir { 62 static bool ContainSpreadElement(const ArenaVector<ir::Expression *> &args); 63 static util::StringView LiteralToPropName(ArenaAllocator *allocator, const ir::Expression *lit); 81 static const ir::ScriptFunction *GetContainingConstructor(const ir::AstNode *node); 82 static const ir::ScriptFunction *GetContainingConstructor(const ir::ClassProperty *node); 83 static const ir::ScriptFunction *GetContainingFunction(const ir::AstNode *node); 84 static const ir::ClassDefinition *GetClassDefiniton(const ir::ScriptFunction *node); 85 static bool IsSpecialPropertyKey(const ir::Expression *expr); 86 static bool IsConstantPropertyKey(const ir::Expression *expr, bool isComputed); 87 static bool IsConstantExpr(const ir::Expression *expr); [all …]
|
D | helpers.cpp | 69 bool Helpers::ContainSpreadElement(const ArenaVector<ir::Expression *> &args) in ContainSpreadElement() 74 util::StringView Helpers::LiteralToPropName(ArenaAllocator *allocator, const ir::Expression *lit) in LiteralToPropName() 77 case ir::AstNodeType::IDENTIFIER: { in LiteralToPropName() 80 case ir::AstNodeType::STRING_LITERAL: { in LiteralToPropName() 83 case ir::AstNodeType::NUMBER_LITERAL: { in LiteralToPropName() 94 case ir::AstNodeType::NULL_LITERAL: { in LiteralToPropName() 322 const ir::ScriptFunction *Helpers::GetContainingConstructor(const ir::AstNode *node) in GetContainingConstructor() 324 const ir::ScriptFunction *iter = GetContainingFunction(node); in GetContainingConstructor() 341 const ir::ScriptFunction *Helpers::GetContainingConstructor(const ir::ClassProperty *node) in GetContainingConstructor() 352 const ir::ScriptFunction *Helpers::GetContainingFunction(const ir::AstNode *node) in GetContainingFunction() [all …]
|
/arkcompiler/ets_frontend/es2panda/ir/ts/ |
D | tsAsExpression.cpp | 26 namespace panda::es2panda::ir { namespace 34 void TSAsExpression::Dump(ir::AstDumper *dumper) const in Dump() 44 static bool IsValidConstAssertionArgument(checker::Checker *checker, const ir::AstNode *arg) in IsValidConstAssertionArgument() 47 case ir::AstNodeType::NUMBER_LITERAL: in IsValidConstAssertionArgument() 48 case ir::AstNodeType::STRING_LITERAL: in IsValidConstAssertionArgument() 49 case ir::AstNodeType::BIGINT_LITERAL: in IsValidConstAssertionArgument() 50 case ir::AstNodeType::BOOLEAN_LITERAL: in IsValidConstAssertionArgument() 51 case ir::AstNodeType::ARRAY_EXPRESSION: in IsValidConstAssertionArgument() 52 case ir::AstNodeType::OBJECT_EXPRESSION: in IsValidConstAssertionArgument() 53 case ir::AstNodeType::TEMPLATE_LITERAL: { in IsValidConstAssertionArgument() [all …]
|
/arkcompiler/ets_frontend/es2panda/compiler/base/ |
D | lreference.cpp | 34 LReference::LReference(const ir::AstNode *node, PandaGen *pg, bool isDeclaration, ReferenceKind ref… in LReference() 99 LReference LReference::CreateLRef(PandaGen *pg, const ir::AstNode *node, bool isDeclaration) in CreateLRef() 102 case ir::AstNodeType::IDENTIFIER: { in CreateLRef() 108 case ir::AstNodeType::MEMBER_EXPRESSION: { in CreateLRef() 111 case ir::AstNodeType::VARIABLE_DECLARATION: { in CreateLRef() 115 case ir::AstNodeType::VARIABLE_DECLARATOR: { in CreateLRef() 118 case ir::AstNodeType::ARRAY_PATTERN: in CreateLRef() 119 case ir::AstNodeType::OBJECT_PATTERN: in CreateLRef() 120 case ir::AstNodeType::ARRAY_EXPRESSION: in CreateLRef() 121 case ir::AstNodeType::OBJECT_EXPRESSION: { in CreateLRef() [all …]
|
/arkcompiler/ets_frontend/es2panda/ir/statements/ |
D | loopStatement.cpp | 20 namespace panda::es2panda::ir { namespace 27 if (std::holds_alternative<ir::AstNode *>(newStatement)) { in UpdateChildStatement() 28 return std::get<ir::AstNode *>(newStatement)->AsStatement(); in UpdateChildStatement() 31 ASSERT(std::holds_alternative<std::vector<ir::AstNode *>>(newStatement)); in UpdateChildStatement() 32 ArenaVector<ir::Statement *> statements(binder->Allocator()->Adapter()); in UpdateChildStatement() 33 auto newStatements = std::get<std::vector<ir::AstNode *>>(newStatement); in UpdateChildStatement() 37 return binder->Allocator()->New<ir::BlockStatement>(nullptr, std::move(statements)); in UpdateChildStatement()
|
/arkcompiler/ets_frontend/es2panda/ir/base/ |
D | scriptFunction.h | 36 namespace panda::es2panda::ir { 44 ir::ScriptFunctionFlags flags, bool declare, bool isTsFunction) in ScriptFunction() 130 return (flags_ & ir::ScriptFunctionFlags::GENERATOR) != 0; in IsGenerator() 135 return (flags_ & ir::ScriptFunctionFlags::ASYNC) != 0; in IsAsync() 140 return (flags_ & ir::ScriptFunctionFlags::ARROW) != 0; in IsArrow() 145 return (flags_ & ir::ScriptFunctionFlags::OVERLOAD) != 0; in IsOverload() 150 return (flags_ & ir::ScriptFunctionFlags::CONSTRUCTOR) != 0; in IsConstructor() 155 return (flags_ & ir::ScriptFunctionFlags::METHOD) != 0; in IsMethod() 160 return (flags_ & ir::ScriptFunctionFlags::EXPRESSION) != 0; in FunctionBodyIsExpression() 178 void AddFlag(ir::ScriptFunctionFlags flags) in AddFlag() [all …]
|
/arkcompiler/ets_frontend/es2panda/ir/ |
D | astDump.h | 27 namespace panda::es2panda::ir { 33 explicit Nullable(const ir::AstNode *node) : node_(node) {} in Nullable() 35 const ir::AstNode *Node() const in Node() 41 const ir::AstNode *node_; 46 using Val = std::variant<const char *, const ir::AstNode *, bool>; 47 explicit Optional(const ir::AstNode *node) : value_(node) {} in Optional() 74 … double, const ir::AstNode *, std::vector<const ir::AstNode *>, Constant, Nullable, Ignore>; 82 …Property(const char *key, const ir::AstNode *node) : key_(key), value_(const_cast<ir::AstNode *>(n… in Property() 97 … if (std::holds_alternative<const ir::AstNode *>(value) && std::get<const ir::AstNode *>(value)) { in Property() 98 value_ = std::get<const ir::AstNode *>(value); in Property() [all …]
|