Commit 410fb15a authored by Wouter van Oortmerssen's avatar Wouter van Oortmerssen Committed by GitHub

Merge pull request #3915 from Lakedaemon/clangFormat

clang formating header and code generators for cpp, general, js, php
parents a69b19fa e750268f
...@@ -39,8 +39,8 @@ class BaseGenerator { ...@@ -39,8 +39,8 @@ class BaseGenerator {
protected: protected:
BaseGenerator(const Parser &parser, const std::string &path, BaseGenerator(const Parser &parser, const std::string &path,
const std::string &file_name, const std::string &file_name,
const std::string qualifying_start, const std::string qualifying_start,
const std::string qualifying_separator) const std::string qualifying_separator)
: parser_(parser), : parser_(parser),
path_(path), path_(path),
...@@ -86,15 +86,18 @@ class BaseGenerator { ...@@ -86,15 +86,18 @@ class BaseGenerator {
const std::string LastNamespacePart(const Namespace &ns) { const std::string LastNamespacePart(const Namespace &ns) {
auto &namespaces = ns.components; auto &namespaces = ns.components;
if (namespaces.size()) return *(namespaces.end() - 1); else return std::string(""); if (namespaces.size())
return *(namespaces.end() - 1);
else
return std::string("");
} }
// tracks the current namespace for early exit in WrapInNameSpace // tracks the current namespace for early exit in WrapInNameSpace
// c++, java and csharp returns a different namespace from // c++, java and csharp returns a different namespace from
// the following default (no early exit, always fully qualify), // the following default (no early exit, always fully qualify),
// which works for js and php // which works for js and php
virtual const Namespace *CurrentNameSpace() { return nullptr; } virtual const Namespace *CurrentNameSpace() { return nullptr; }
// Ensure that a type is prefixed with its namespace whenever it is used // Ensure that a type is prefixed with its namespace whenever it is used
// outside of its namespace. // outside of its namespace.
std::string WrapInNameSpace(const Namespace *ns, const std::string &name) { std::string WrapInNameSpace(const Namespace *ns, const std::string &name) {
......
...@@ -24,9 +24,7 @@ ...@@ -24,9 +24,7 @@
namespace flatbuffers { namespace flatbuffers {
struct IsAlnum { struct IsAlnum {
bool operator()(char c) { bool operator()(char c) { return !isalnum(c); }
return !isalnum(c);
}
}; };
static std::string GeneratedFileName(const std::string &path, static std::string GeneratedFileName(const std::string &path,
...@@ -184,7 +182,6 @@ class CppGenerator : public BaseGenerator { ...@@ -184,7 +182,6 @@ class CppGenerator : public BaseGenerator {
code += "nullptr"; code += "nullptr";
code += "); }\n\n"; code += "); }\n\n";
if (parser_.file_extension_.length()) { if (parser_.file_extension_.length()) {
// Return the extension // Return the extension
code += "inline const char *" + name; code += "inline const char *" + name;
...@@ -264,30 +261,28 @@ class CppGenerator : public BaseGenerator { ...@@ -264,30 +261,28 @@ class CppGenerator : public BaseGenerator {
// Return a C++ type for any type (scalar/pointer) specifically for // Return a C++ type for any type (scalar/pointer) specifically for
// building a flatbuffer. // building a flatbuffer.
std::string GenTypeWire(const Type &type, std::string GenTypeWire(const Type &type, const char *postfix,
const char *postfix, bool user_facing_type) { bool user_facing_type) {
return IsScalar(type.base_type) return IsScalar(type.base_type)
? GenTypeBasic(type, user_facing_type) + postfix ? GenTypeBasic(type, user_facing_type) + postfix
: IsStruct(type) : IsStruct(type) ? "const " + GenTypePointer(type) + " *"
? "const " + GenTypePointer(type) + " *" : "flatbuffers::Offset<" +
: "flatbuffers::Offset<" + GenTypePointer(type) + GenTypePointer(type) + ">" + postfix;
">" + postfix;
} }
// Return a C++ type for any type (scalar/pointer) that reflects its // Return a C++ type for any type (scalar/pointer) that reflects its
// serialized size. // serialized size.
std::string GenTypeSize(const Type &type) { std::string GenTypeSize(const Type &type) {
return IsScalar(type.base_type) return IsScalar(type.base_type) ? GenTypeBasic(type, false)
? GenTypeBasic(type, false) : IsStruct(type) ? GenTypePointer(type)
: IsStruct(type) ? GenTypePointer(type) : "flatbuffers::uoffset_t";
: "flatbuffers::uoffset_t";
} }
// Return a C++ type for any type (scalar/pointer) specifically for // Return a C++ type for any type (scalar/pointer) specifically for
// using a flatbuffer. // using a flatbuffer.
std::string GenTypeGet(const Type &type, std::string GenTypeGet(const Type &type, const char *afterbasic,
const char *afterbasic, const char *beforeptr, const char *beforeptr, const char *afterptr,
const char *afterptr, bool user_facing_type) { bool user_facing_type) {
return IsScalar(type.base_type) return IsScalar(type.base_type)
? GenTypeBasic(type, user_facing_type) + afterbasic ? GenTypeBasic(type, user_facing_type) + afterbasic
: beforeptr + GenTypePointer(type) + afterptr; : beforeptr + GenTypePointer(type) + afterptr;
...@@ -388,8 +383,8 @@ class CppGenerator : public BaseGenerator { ...@@ -388,8 +383,8 @@ class CppGenerator : public BaseGenerator {
code += "()[static_cast<int>(e)"; code += "()[static_cast<int>(e)";
if (enum_def.vals.vec.front()->value) { if (enum_def.vals.vec.front()->value) {
code += " - static_cast<int>("; code += " - static_cast<int>(";
code += code += GetEnumVal(enum_def, *enum_def.vals.vec.front(), parser_.opts) +
GetEnumVal(enum_def, *enum_def.vals.vec.front(), parser_.opts) + ")"; ")";
} }
code += "]; }\n\n"; code += "]; }\n\n";
} }
...@@ -446,8 +441,7 @@ class CppGenerator : public BaseGenerator { ...@@ -446,8 +441,7 @@ class CppGenerator : public BaseGenerator {
return "VT_" + uname; return "VT_" + uname;
} }
void GenFullyQualifiedNameGetter(const std::string &name, void GenFullyQualifiedNameGetter(const std::string &name, std::string &code) {
std::string &code) {
if (parser_.opts.generate_name_strings) { if (parser_.opts.generate_name_strings) {
code += code +=
" static FLATBUFFERS_CONSTEXPR const char *GetFullyQualifiedName() " " static FLATBUFFERS_CONSTEXPR const char *GetFullyQualifiedName() "
...@@ -469,21 +463,17 @@ class CppGenerator : public BaseGenerator { ...@@ -469,21 +463,17 @@ class CppGenerator : public BaseGenerator {
code += field.name + " = "; code += field.name + " = ";
if (field.value.type.enum_def && IsScalar(field.value.type.base_type)) { if (field.value.type.enum_def && IsScalar(field.value.type.base_type)) {
auto ev = field.value.type.enum_def->ReverseLookup( auto ev = field.value.type.enum_def->ReverseLookup(
static_cast<int>(StringToInt(field.value.constant.c_str())), static_cast<int>(StringToInt(field.value.constant.c_str())), false);
false);
if (ev) { if (ev) {
code += WrapInNameSpace( code += WrapInNameSpace(
field.value.type.enum_def->defined_namespace, field.value.type.enum_def->defined_namespace,
GetEnumVal(*field.value.type.enum_def, *ev, parser_.opts)); GetEnumVal(*field.value.type.enum_def, *ev, parser_.opts));
} } else {
else {
code += GenUnderlyingCast(field, true, field.value.constant); code += GenUnderlyingCast(field, true, field.value.constant);
} }
} } else if (field.value.type.base_type == BASE_TYPE_BOOL) {
else if (field.value.type.base_type == BASE_TYPE_BOOL) {
code += field.value.constant == "0" ? "false" : "true"; code += field.value.constant == "0" ? "false" : "true";
} } else {
else {
code += GenDefaultConstant(field); code += GenDefaultConstant(field);
} }
} }
...@@ -529,8 +519,7 @@ class CppGenerator : public BaseGenerator { ...@@ -529,8 +519,7 @@ class CppGenerator : public BaseGenerator {
if (!field.deprecated) { // Deprecated fields won't be accessible. if (!field.deprecated) { // Deprecated fields won't be accessible.
auto is_scalar = IsScalar(field.value.type.base_type); auto is_scalar = IsScalar(field.value.type.base_type);
GenComment(field.doc_comment, code_ptr, nullptr, " "); GenComment(field.doc_comment, code_ptr, nullptr, " ");
code += " " + code += " " + GenTypeGet(field.value.type, " ", "const ", " *", true);
GenTypeGet(field.value.type, " ", "const ", " *", true);
code += field.name + "() const { return "; code += field.name + "() const { return ";
// Call a different accessor for pointers, that indirects. // Call a different accessor for pointers, that indirects.
auto accessor = auto accessor =
...@@ -538,8 +527,8 @@ class CppGenerator : public BaseGenerator { ...@@ -538,8 +527,8 @@ class CppGenerator : public BaseGenerator {
? "GetField<" ? "GetField<"
: (IsStruct(field.value.type) ? "GetStruct<" : "GetPointer<"); : (IsStruct(field.value.type) ? "GetStruct<" : "GetPointer<");
auto offsetstr = GenFieldOffsetName(field); auto offsetstr = GenFieldOffsetName(field);
auto call = accessor + GenTypeGet(field.value.type, "", auto call = accessor +
"const ", " *", false) + GenTypeGet(field.value.type, "", "const ", " *", false) +
">(" + offsetstr; ">(" + offsetstr;
// Default value as second arg for non-pointer types. // Default value as second arg for non-pointer types.
if (IsScalar(field.value.type.base_type)) if (IsScalar(field.value.type.base_type))
...@@ -556,8 +545,7 @@ class CppGenerator : public BaseGenerator { ...@@ -556,8 +545,7 @@ class CppGenerator : public BaseGenerator {
code += GenUnderlyingCast(field, false, "_" + field.name); code += GenUnderlyingCast(field, false, "_" + field.name);
code += "); }\n"; code += "); }\n";
} else { } else {
auto type = auto type = GenTypeGet(field.value.type, " ", "", " *", true);
GenTypeGet(field.value.type, " ", "", " *", true);
code += " " + type + "mutable_" + field.name + "() { return "; code += " " + type + "mutable_" + field.name + "() { return ";
code += GenUnderlyingCast(field, true, code += GenUnderlyingCast(field, true,
accessor + type + ">(" + offsetstr + ")"); accessor + type + ">(" + offsetstr + ")");
...@@ -739,20 +727,19 @@ class CppGenerator : public BaseGenerator { ...@@ -739,20 +727,19 @@ class CppGenerator : public BaseGenerator {
} }
code += " return builder_.Finish();\n}\n\n"; code += " return builder_.Finish();\n}\n\n";
//Generate a CreateX function with vector types as parameters // Generate a CreateX function with vector types as parameters
if (gen_vector_pars) { if (gen_vector_pars) {
code += "inline flatbuffers::Offset<" + struct_def.name + "> Create"; code += "inline flatbuffers::Offset<" + struct_def.name + "> Create";
code += struct_def.name; code += struct_def.name;
code += "(flatbuffers::FlatBufferBuilder &_fbb"; code += "(flatbuffers::FlatBufferBuilder &_fbb";
for (auto it = struct_def.fields.vec.begin(); for (auto it = struct_def.fields.vec.begin();
it != struct_def.fields.vec.end(); ++it) { it != struct_def.fields.vec.end(); ++it) {
auto &field = **it; auto &field = **it;
if (!field.deprecated) { if (!field.deprecated) {
if (field.value.type.base_type == BASE_TYPE_STRING) { if (field.value.type.base_type == BASE_TYPE_STRING) {
code += ",\n const char *"; code += ",\n const char *";
code += field.name + " = nullptr"; code += field.name + " = nullptr";
} } else if (field.value.type.base_type == BASE_TYPE_VECTOR) {
else if (field.value.type.base_type == BASE_TYPE_VECTOR) {
code += ",\n const std::vector<"; code += ",\n const std::vector<";
code += GenTypeWire(field.value.type.VectorType(), "", false); code += GenTypeWire(field.value.type.VectorType(), "", false);
code += "> *" + field.name + " = nullptr"; code += "> *" + field.name + " = nullptr";
...@@ -766,7 +753,7 @@ class CppGenerator : public BaseGenerator { ...@@ -766,7 +753,7 @@ class CppGenerator : public BaseGenerator {
code += struct_def.name; code += struct_def.name;
code += "(_fbb"; code += "(_fbb";
for (auto it = struct_def.fields.vec.begin(); for (auto it = struct_def.fields.vec.begin();
it != struct_def.fields.vec.end(); ++it) { it != struct_def.fields.vec.end(); ++it) {
auto &field = **it; auto &field = **it;
if (!field.deprecated) { if (!field.deprecated) {
if (field.value.type.base_type == BASE_TYPE_STRING) { if (field.value.type.base_type == BASE_TYPE_STRING) {
...@@ -777,7 +764,8 @@ class CppGenerator : public BaseGenerator { ...@@ -777,7 +764,8 @@ class CppGenerator : public BaseGenerator {
code += "_fbb.CreateVector<"; code += "_fbb.CreateVector<";
code += GenTypeWire(field.value.type.VectorType(), "", false); code += GenTypeWire(field.value.type.VectorType(), "", false);
code += ">(*" + field.name + ")"; code += ">(*" + field.name + ")";
} else code += ", " + field.name; } else
code += ", " + field.name;
} }
} }
code += ");\n}\n\n"; code += ");\n}\n\n";
...@@ -880,8 +868,7 @@ class CppGenerator : public BaseGenerator { ...@@ -880,8 +868,7 @@ class CppGenerator : public BaseGenerator {
auto &field = **it; auto &field = **it;
GenComment(field.doc_comment, code_ptr, nullptr, " "); GenComment(field.doc_comment, code_ptr, nullptr, " ");
auto is_scalar = IsScalar(field.value.type.base_type); auto is_scalar = IsScalar(field.value.type.base_type);
code += " " + code += " " + GenTypeGet(field.value.type, " ", "const ", " &", true);
GenTypeGet(field.value.type, " ", "const ", " &", true);
code += field.name + "() const { return "; code += field.name + "() const { return ";
code += GenUnderlyingCast( code += GenUnderlyingCast(
field, true, is_scalar field, true, is_scalar
...@@ -949,19 +936,16 @@ bool GenerateCPP(const Parser &parser, const std::string &path, ...@@ -949,19 +936,16 @@ bool GenerateCPP(const Parser &parser, const std::string &path,
return generator.generate(); return generator.generate();
} }
std::string CPPMakeRule(const Parser &parser, std::string CPPMakeRule(const Parser &parser, const std::string &path,
const std::string &path,
const std::string &file_name) { const std::string &file_name) {
std::string filebase = flatbuffers::StripPath( std::string filebase =
flatbuffers::StripExtension(file_name)); flatbuffers::StripPath(flatbuffers::StripExtension(file_name));
std::string make_rule = GeneratedFileName(path, filebase) + ": "; std::string make_rule = GeneratedFileName(path, filebase) + ": ";
auto included_files = parser.GetIncludedFilesRecursive(file_name); auto included_files = parser.GetIncludedFilesRecursive(file_name);
for (auto it = included_files.begin(); for (auto it = included_files.begin(); it != included_files.end(); ++it) {
it != included_files.end(); ++it) {
make_rule += " " + *it; make_rule += " " + *it;
} }
return make_rule; return make_rule;
} }
} // namespace flatbuffers } // namespace flatbuffers
...@@ -9,8 +9,8 @@ public final class Any { ...@@ -9,8 +9,8 @@ public final class Any {
public static final byte TestSimpleTableWithEnum = 2; public static final byte TestSimpleTableWithEnum = 2;
public static final byte MyGame_Example2_Monster = 3; public static final byte MyGame_Example2_Monster = 3;
private static final String[] names = { "NONE", "Monster", "TestSimpleTableWithEnum", "MyGame_Example2_Monster", }; public static final String[] names = { "NONE", "Monster", "TestSimpleTableWithEnum", "MyGame_Example2_Monster", };
public static String name(int e) { return names[e]; } public static String name(int e) { return names[e]; }
}; }
...@@ -8,8 +8,8 @@ public final class Color { ...@@ -8,8 +8,8 @@ public final class Color {
public static final byte Green = 2; public static final byte Green = 2;
public static final byte Blue = 8; public static final byte Blue = 8;
private static final String[] names = { "Red", "Green", "", "", "", "", "", "Blue", }; public static final String[] names = { "Red", "Green", "", "", "", "", "", "Blue", };
public static String name(int e) { return names[e - Red]; } public static String name(int e) { return names[e - Red]; }
}; }
...@@ -135,5 +135,5 @@ public final class Monster extends Table { ...@@ -135,5 +135,5 @@ public final class Monster extends Table {
return o; return o;
} }
public static void finishMonsterBuffer(FlatBufferBuilder builder, int offset) { builder.finish(offset, "MONS"); } public static void finishMonsterBuffer(FlatBufferBuilder builder, int offset) { builder.finish(offset, "MONS"); }
}; }
...@@ -39,5 +39,5 @@ public final class Stat extends Table { ...@@ -39,5 +39,5 @@ public final class Stat extends Table {
int o = builder.endObject(); int o = builder.endObject();
return o; return o;
} }
}; }
...@@ -23,5 +23,5 @@ public final class Test extends Struct { ...@@ -23,5 +23,5 @@ public final class Test extends Struct {
builder.putShort(a); builder.putShort(a);
return builder.offset(); return builder.offset();
} }
}; }
...@@ -29,5 +29,5 @@ public final class TestSimpleTableWithEnum extends Table { ...@@ -29,5 +29,5 @@ public final class TestSimpleTableWithEnum extends Table {
int o = builder.endObject(); int o = builder.endObject();
return o; return o;
} }
}; }
...@@ -40,5 +40,5 @@ public final class Vec3 extends Struct { ...@@ -40,5 +40,5 @@ public final class Vec3 extends Struct {
builder.putFloat(x); builder.putFloat(x);
return builder.offset(); return builder.offset();
} }
}; }
...@@ -19,5 +19,5 @@ public final class Monster extends Table { ...@@ -19,5 +19,5 @@ public final class Monster extends Table {
int o = builder.endObject(); int o = builder.endObject();
return o; return o;
} }
}; }
...@@ -8,8 +8,8 @@ public final class EnumInNestedNS { ...@@ -8,8 +8,8 @@ public final class EnumInNestedNS {
public static final byte B = 1; public static final byte B = 1;
public static final byte C = 2; public static final byte C = 2;
private static final String[] names = { "A", "B", "C", }; public static final String[] names = { "A", "B", "C", };
public static String name(int e) { return names[e]; } public static String name(int e) { return names[e]; }
}; }
...@@ -22,5 +22,5 @@ public final class StructInNestedNS extends Struct { ...@@ -22,5 +22,5 @@ public final class StructInNestedNS extends Struct {
builder.putInt(a); builder.putInt(a);
return builder.offset(); return builder.offset();
} }
}; }
...@@ -29,5 +29,5 @@ public final class TableInNestedNS extends Table { ...@@ -29,5 +29,5 @@ public final class TableInNestedNS extends Table {
int o = builder.endObject(); int o = builder.endObject();
return o; return o;
} }
}; }
...@@ -29,5 +29,5 @@ public final class SecondTableInA extends Table { ...@@ -29,5 +29,5 @@ public final class SecondTableInA extends Table {
int o = builder.endObject(); int o = builder.endObject();
return o; return o;
} }
}; }
...@@ -28,5 +28,5 @@ public final class TableInFirstNS extends Table { ...@@ -28,5 +28,5 @@ public final class TableInFirstNS extends Table {
int o = builder.endObject(); int o = builder.endObject();
return o; return o;
} }
}; }
...@@ -34,5 +34,5 @@ public final class TableInC extends Table { ...@@ -34,5 +34,5 @@ public final class TableInC extends Table {
int o = builder.endObject(); int o = builder.endObject();
return o; return o;
} }
}; }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment