CYNoBF = (CYNoBrace | CYNoFunction),
};
+_finline CYFlags operator ~(CYFlags rhs) {
+ return static_cast<CYFlags>(~static_cast<unsigned>(rhs));
+}
+
+_finline CYFlags operator &(CYFlags lhs, CYFlags rhs) {
+ return static_cast<CYFlags>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs));
+}
+
+_finline CYFlags operator |(CYFlags lhs, CYFlags rhs) {
+ return static_cast<CYFlags>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs));
+}
+
+_finline CYFlags &operator |=(CYFlags &lhs, CYFlags rhs) {
+ return lhs = lhs | rhs;
+}
+
+_finline CYFlags CYLeft(CYFlags flags) {
+ return flags & ~(CYNoDangle | CYNoInteger);
+}
+
+_finline CYFlags CYRight(CYFlags flags) {
+ return flags & ~CYNoBF;
+}
+
+_finline CYFlags CYCenter(CYFlags flags) {
+ return CYLeft(CYRight(flags));
+}
+
struct CYStatement :
CYNext<CYStatement>
{
CYIdentifierValueSet identifiers_;
CYScope(CYScopeType type, CYContext &context, CYStatement *&statements);
+ virtual ~CYScope();
void Close();
void ReplaceAll(Type_ *&values) {
Type_ **last(&values);
CYForEach (next, values) {
- Replace(*last);
+ Replace(*last = next);
last = &(*last)->next_;
}
}