@@ -24,7 +24,7 @@ namespace pl::core::ast {
2424
2525 [[nodiscard]] bool ASTNodeBitfieldField::isPadding () const { return this ->getName () == " $padding$" ; }
2626
27- [[nodiscard]] std::shared_ptr<construct_shared_object<pl:: ptrn::PatternBitfieldField> ASTNodeBitfieldField> Bitfield (Evaluator *evaluator, u64 byteOffset, u8 bitOffset, u8 bitSize) const {
27+ [[nodiscard]] std::shared_ptr<ptrn::PatternBitfieldField> ASTNodeBitfieldField::createBitfield (Evaluator *evaluator, u64 byteOffset, u8 bitOffset, u8 bitSize) const {
2828 return construct_shared_object<pl::ptrn::PatternBitfieldField>(evaluator, byteOffset, bitOffset, bitSize, getLocation ().line );
2929 }
3030
@@ -56,7 +56,7 @@ namespace pl::core::ast {
5656 }
5757
5858
59- [[nodiscard]] std::shared_ptr<construct_shared_object<pl:: ptrn::PatternBitfieldField> ASTNodeBitfieldFieldSigned> Bitfield (Evaluator *evaluator, u64 byteOffset, u8 bitOffset, u8 bitSize) const {
59+ [[nodiscard]] std::shared_ptr<ptrn::PatternBitfieldField> ASTNodeBitfieldFieldSigned::createBitfield (Evaluator *evaluator, u64 byteOffset, u8 bitOffset, u8 bitSize) const {
6060 return construct_shared_object<pl::ptrn::PatternBitfieldFieldSigned>(evaluator, byteOffset, bitOffset, bitSize, getLocation ().line );
6161 }
6262
@@ -68,29 +68,28 @@ namespace pl::core::ast {
6868 this ->m_type = std::unique_ptr<ASTNodeTypeDecl>(static_cast <ASTNodeTypeDecl*>(other.m_type ->clone ().release ()));
6969 }
7070
71- [[nodiscard]] std::shared_ptr<construct_shared_object<pl::ptrn::PatternBitfieldField> ASTNodeBitfieldFieldSizedType>Bitfield (Evaluator *evaluator, u64 byteOffset, u8 bitOffset, u8 bitSize) const {
72- auto originalPosition = evaluator->getBitwiseReadOffset ();
73- evaluator->setBitwiseReadOffset (byteOffset, bitOffset);
74-
75- std::vector<std::shared_ptr<ptrn::Pattern>> patterns;
76- this ->m_type ->createPatterns (evaluator, patterns);
77- auto &pattern = patterns[0 ];
78- std::shared_ptr<ptrn::PatternBitfieldField> result = nullptr ;
79- evaluator->setBitwiseReadOffset (originalPosition);
80-
81- if (auto *patternEnum = dynamic_cast <ptrn::PatternEnum *>(pattern.get ()); patternEnum != nullptr ) {
82- auto bitfieldEnum = construct_shared_object<pl::ptrn::PatternBitfieldFieldEnum>(evaluator, byteOffset, bitOffset, bitSize, getLocation ().line );
83- bitfieldEnum->setTypeName (patternEnum->getTypeName ());
84- bitfieldEnum->setEnumValues (patternEnum->getEnumValues ());
85- result = std::move (bitfieldEnum);
86- } else if (dynamic_cast <ptrn::PatternBoolean *>(pattern.get ()) != nullptr ) {
87- result = construct_shared_object<pl::ptrn::PatternBitfieldFieldBoolean>(evaluator, byteOffset, bitOffset, bitSize, getLocation ().line );
88- } else {
89- err::E0004 .throwError (" Bit size specifiers may only be used with unsigned, signed, bool or enum types." , {}, this ->getLocation ());
71+ [[nodiscard]] std::shared_ptr<ptrn::PatternBitfieldField> ASTNodeBitfieldFieldSizedType::createBitfield (Evaluator *evaluator, u64 byteOffset, u8 bitOffset, u8 bitSize) const {
72+ auto originalPosition = evaluator->getBitwiseReadOffset ();
73+ evaluator->setBitwiseReadOffset (byteOffset, bitOffset);
74+
75+ std::vector<std::shared_ptr<ptrn::Pattern>> patterns;
76+ this ->m_type ->createPatterns (evaluator, patterns);
77+ auto &pattern = patterns[0 ];
78+ std::shared_ptr<ptrn::PatternBitfieldField> result = nullptr ;
79+ evaluator->setBitwiseReadOffset (originalPosition);
80+
81+ if (auto *patternEnum = dynamic_cast <ptrn::PatternEnum *>(pattern.get ()); patternEnum != nullptr ) {
82+ auto bitfieldEnum = construct_shared_object<pl::ptrn::PatternBitfieldFieldEnum>(evaluator, byteOffset, bitOffset, bitSize, getLocation ().line );
83+ bitfieldEnum->setTypeName (patternEnum->getTypeName ());
84+ bitfieldEnum->setEnumValues (patternEnum->getEnumValues ());
85+ result = std::move (bitfieldEnum);
86+ } else if (dynamic_cast <ptrn::PatternBoolean *>(pattern.get ()) != nullptr ) {
87+ result = construct_shared_object<pl::ptrn::PatternBitfieldFieldBoolean>(evaluator, byteOffset, bitOffset, bitSize, getLocation ().line );
88+ } else {
89+ err::E0004 .throwError (" Bit size specifiers may only be used with unsigned, signed, bool or enum types." , {}, this ->getLocation ());
90+ }
91+
92+ return result;
9093 }
9194
92- return result;
93- }
94-
95-
9695}
0 commit comments