Home | History | Annotate | Download | only in src

Lines Matching refs:enum_def

121       const auto &enum_def = **it;
122 if (!enum_def.generated) {
123 SetNameSpace(enum_def.defined_namespace);
124 GenEnum(enum_def);
157 const auto &enum_def = **it;
158 if (enum_def.is_union && !enum_def.generated) {
159 SetNameSpace(enum_def.defined_namespace);
160 GenUnionPost(enum_def);
304 if (type.enum_def) return WrapInNameSpace(*type.enum_def);
409 return type.enum_def->name + "Union";
429 std::string GenEnumDecl(const EnumDef &enum_def) const {
431 return (opts.scoped_enums ? "enum class " : "enum ") + enum_def.name;
434 std::string GenEnumValDecl(const EnumDef &enum_def,
437 return opts.prefixed_enums ? enum_def.name + "_" + enum_val : enum_val;
440 std::string GetEnumValUse(const EnumDef &enum_def,
444 return enum_def.name + "::" + enum_val.name;
446 return enum_def.name + "_" + enum_val.name;
452 static std::string UnionVerifySignature(const EnumDef &enum_def) {
453 return "bool Verify" + enum_def.name +
455 enum_def.name + " type)";
458 static std::string UnionVectorVerifySignature(const EnumDef &enum_def) {
459 return "bool Verify" + enum_def.name + "Vector" +
465 static std::string UnionUnPackSignature(const EnumDef &enum_def,
469 (inclass ? "" : enum_def.name + "Union::") +
470 "UnPack(const void *obj, " + enum_def.name +
474 static std::string UnionPackSignature(const EnumDef &enum_def, bool inclass) {
476 (inclass ? "" : enum_def.name + "Union::") +
520 void GenEnum(const EnumDef &enum_def) {
521 code_.SetValue("ENUM_NAME", enum_def.name);
522 code_.SetValue("BASE_TYPE", GenTypeBasic(enum_def.underlying_type, false));
525 GenComment(enum_def.doc_comment);
526 code_ += GenEnumDecl(enum_def) + "\\";
533 for (auto it = enum_def.vals.vec.begin(); it != enum_def.vals.vec.end();
538 code_.SetValue("KEY", GenEnumValDecl(enum_def, ev.name));
552 if (enum_def.attributes.Lookup("bit_flags")) {
553 code_.SetValue("KEY", GenEnumValDecl(enum_def, "NONE"));
557 code_.SetValue("KEY", GenEnumValDecl(enum_def, "ANY"));
561 code_.SetValue("KEY",GenEnumValDecl(enum_def, "MIN"));
562 code_.SetValue("VALUE", GenEnumValDecl(enum_def, minv->name));
565 code_.SetValue("KEY",GenEnumValDecl(enum_def, "MAX"));
566 code_.SetValue("VALUE", GenEnumValDecl(enum_def, maxv->name));
573 if (parser_.opts.scoped_enums && enum_def.attributes.Lookup("bit_flags")) {
583 enum_def.vals.vec.back()->value - enum_def.vals.vec.front()->value + 1;
587 if (range / static_cast<int64_t>(enum_def.vals.vec.size()) <
592 auto val = enum_def.vals.vec.front()->value;
593 for (auto it = enum_def.vals.vec.begin(); it != enum_def.vals.vec.end();
611 if (enum_def.vals.vec.front()->value) {
612 auto vals = GetEnumValUse(enum_def, *enum_def.vals.vec.front());
623 if (enum_def.is_union) {
624 for (auto it = enum_def.vals.vec.begin(); it != enum_def.vals.vec.end();
628 if (it == enum_def.vals.vec.begin()) {
636 auto value = GetEnumValUse(enum_def, ev);
643 if (parser_.opts.generate_object_based_api && enum_def.is_union) {
645 code_.SetValue("NAME", enum_def.name);
647 GetEnumValUse(enum_def, *enum_def.vals.Lookup("NONE")));
671 code_ += " " + UnionUnPackSignature(enum_def, true) + ";";
672 code_ += " " + UnionPackSignature(enum_def, true) + ";";
675 for (auto it = enum_def.vals.vec.begin(); it != enum_def.vals.vec.end();
685 code_.SetValue("NATIVE_ID", GetEnumValUse(enum_def, ev));
696 if (enum_def.is_union) {
697 code_ += UnionVerifySignature(enum_def) + ";";
698 code_ += UnionVectorVerifySignature(enum_def) + ";";
703 void GenUnionPost(const EnumDef &enum_def) {
709 code_.SetValue("ENUM_NAME", enum_def.name);
711 code_ += "inline " + UnionVerifySignature(enum_def) + " {";
713 for (auto it = enum_def.vals.vec.begin(); it != enum_def.vals.vec.end();
716 code_.SetValue("LABEL", GetEnumValUse(enum_def, ev));
735 code_ += "inline " + UnionVectorVerifySignature(enum_def) + " {";
738 code_ += " if (!Verify" + enum_def.name + "(";
739 code_ += " verifier, values->Get(i), types->GetEnum<" + enum_def.name + ">(i))) {";
749 code_ += "inline " + UnionUnPackSignature(enum_def, false) + " {";
751 for (auto it = enum_def.vals.vec.begin(); it != enum_def.vals.vec.end();
758 code_.SetValue("LABEL", GetEnumValUse(enum_def, ev));
770 code_ += "inline " + UnionPackSignature(enum_def, false) + " {";
772 for (auto it = enum_def.vals.vec.begin(); it != enum_def.vals.vec.end();
779 code_.SetValue("LABEL", GetEnumValUse(enum_def, ev));
794 GetEnumValUse(enum_def, *enum_def.vals.Lookup("NONE")));
798 for (auto it = enum_def.vals.vec.begin(); it != enum_def.vals.vec.end();
805 code_.SetValue("LABEL", GetEnumValUse(enum_def, ev));
831 } else if ((field.value.type.enum_def &&
868 if (field.value.type.enum_def && IsScalar(field.value.type.base_type)) {
869 auto ev = field.value.type.enum_def->ReverseLookup(
873 field.value.type.enum_def->defined_namespace,
874 GetEnumValUse(*field.value.type.enum_def, *ev));
991 code_.SetValue("ENUM_NAME", field.value.type.enum_def->name);
1022 code_.SetValue("ENUM_NAME", field.value.type.enum_def->name);
1179 if (parser_.opts.scoped_enums && field.value.type.enum_def &&
1429 if (field.value.type.enum_def) {
1430 indexing += "(" + field.value.type.enum_def->name + ")";
1460 code += field.value.type.enum_def->name + "Union::UnPack(";
1553 if (field.value.type.enum_def) {
1557 field.value.type.enum_def->underlying_type, false);