代码改变世界

定制一个FlatBuffers编译器

2014-06-25 10:28  menggucaoyuan  阅读(335)  评论(0编辑  收藏  举报

   个人并不喜欢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