定制一个FlatBuffers编译器

时间:2023-07-21 22:53:32
定制一个FlatBuffers编译器

个人并不喜欢FlatBuffers编译器生成的代码,原因是我已经习惯了unix风格的代码。

不喜欢之处大致有以下:

1 命名法使用了Pascal命名法,而我个人习惯了小写字母加下划线式的unix式命名法;

2 Create类的函数参数列表的所有参数都堆在一行,非常惨不忍睹,我自己习惯于每行一个参数式的风格;

3 生成的头文件连个预防文件被重复引用的宏都没有;

4 同一个struct或table的所有函数都在一起放着,不同函数之间没有一个空行分割,而且几乎所有的函数都只占用了一行,如果你要进行代码调试,这就非常不方便;

5 生成的文件名称都以"_generated.h"结尾,个人习惯protobuf格式".pb.h"结尾的文件命名法,我把它改为了以".fb.h"结尾;

6 把常用的namespace和struct以及相应的method进行的重命名;

Fork了自己的分支后,基于以上几点修改了idl_gen_cpp.cpp后,我定制了自己一个自己版本的FlatBuffers编译器。详细代码见https://github.com/AlexStocks/flatbuffers/blob/master/src/idl_gen_cpp.cpp