| 17 | } |
| 18 | |
| 19 | void EnumBody::AddValue(EnumValue* v) |
| 20 | { |
| 21 | if (v == nullptr) |
| 22 | yyerror("Enum is null!"); |
| 23 | if (v->name->empty()) |
| 24 | yyerror("Enum name is invalid!"); |
| 25 | |
| 26 | // Check for duplicates |
| 27 | auto it = std::find_if(values.begin(), values.end(), [v](auto item)->bool { return *item->name.get() == *v->name.get(); }); |
| 28 | if (it != values.end()) |
| 29 | yyerror("Duplicate enum name " + *v->name.get()); |
| 30 | |
| 31 | values.push_back(std::shared_ptr<EnumValue>(v)); |
| 32 | } |
| 33 | |
| 34 | void FlagsBody::AddValue(FlagsValue* v) |
| 35 | { |