Parse class attributes (shared, abstract, final, external), cleanup some parser code.
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
2021-01-01 23:41:37 +01:00
parent 5d57838bec
commit 329848d9d5
3 changed files with 49 additions and 18 deletions

View 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