Parse class attributes (shared, abstract, final, external), cleanup some parser code.
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
This commit is contained in:
25
src/CoreData/ClassAttr.hpp
Normal file
25
src/CoreData/ClassAttr.hpp
Normal file
@@ -0,0 +1,25 @@
|
||||
#ifndef MALACHSCRIPT_CLASSATTR_HPP
|
||||
#define MALACHSCRIPT_CLASSATTR_HPP
|
||||
|
||||
namespace MalachScript {
|
||||
enum class ClassAttr : uint8_t {
|
||||
None = 0,
|
||||
Shared = 1 << 1,
|
||||
Abstract = 1 << 2,
|
||||
Final = 1 << 3,
|
||||
External = 1 << 4,
|
||||
};
|
||||
|
||||
class ClassAttrHelpers {
|
||||
public:
|
||||
constexpr inline static bool Contains(ClassAttr set, ClassAttr flag) {
|
||||
return (static_cast<uint8_t>(set) & static_cast<uint8_t>(flag)) != 0;
|
||||
}
|
||||
constexpr inline static ClassAttr Set(ClassAttr set, ClassAttr flag) {
|
||||
return static_cast<ClassAttr>(static_cast<uint8_t>(set) | static_cast<uint8_t>(flag));
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // MALACHSCRIPT_CLASSATTR_HPP
|
||||
Reference in New Issue
Block a user