定制一个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

定制一个FlatBuffers编译器,布布扣,bubuko.com

时间: 2024-12-27 23:39:36

定制一个FlatBuffers编译器的相关文章

基于nginx + dwz定制一个网站

前言 原创文章欢迎转载,请保留出处. 若有任何疑问建议,欢迎回复. 邮箱:[email protected] 稍微花了点时间定制了一个简单的dwz网站,主要利用框架制作了主界面和简单地调用了jQuery.ajax查询json. 利用dwz框架模板 之前已经搭建好dwz了,由于之前搭建的dwz后来使用的时候出现了bug,所以这里我使用新版的dwz 1.4.6,可以到https://code.google.com/p/dwz/downloads/list下载.这里我们只是使用dwz框架而已,所以暂时

深度定制一个按钮

http://www.cnblogs.com/ygm900/archive/2013/05/28/3104169.html UIButton *btnTemp = [UIButtonbuttonWithType:UIButtonTypeCustom]; 深度定制一个按钮 UIButton *btn1 = [UIButton buttonWithType:UIButtonTypeCustom]; btn1.frame = CGRectMake(0, 0, 200, 140); btn1.cente

用maven定制一个车联网的天气预报解析项目

用maven定制一个车联网的天气预报解析项目 1:首先我们要根据之前的学习先创建一个maven项目 本实例以Gao这个项目来介绍,我们要做的功能是把车联网返回的内容解析并格式化后显示出来.车联网天气查询api地址http://developer.baidu.com/map/carapi-7.htm 在此我们需要一个开发者密钥即访问接口中的参数ak.我已经申请好,没有直接使用了,没有的童鞋可以去申请一个. 2:添加新的依赖 由于我们要解析接口默认返回的xml格式的数据,所以我们要用到一些解析xml

用java实现一个简易编译器1-词法解析入门

本文对应代码下载地址为: http://download.csdn.net/detail/tyler_download/9435103 视频地址: http://v.youku.com/v_show/id_XMTQ3NTQwMDkxMg==.html?from=s1.8-1-1.2 技术的发展可谓是日新月异,层出不穷,但无论是炙手可热的大数据,还是火烧鸟了的人工智能,所有这些高大上的尖端科技无不建立在基础技术的根基之上.编译原理,计算机网络,操作系统,便是所有软件技术的基石.在这三根支柱中,维编

一个简单编译器前端的实现

小记: 其实这个程序是编译原理这门课的综合实验,前段时间我申请免试又失败了,原因是有缺课,平时分不够,早上赖床现在尝到苦果我也是醉了……没办法,逼上梁山,只好攻克这个大boss以拿下免试资格. 选了一个最简单的文法,分析了1个多星期,终于决定开始要写的时候时间已经很紧了. 去实验室通宵了一晚,在宿舍熬了一晚,睡了3个小时就起来去验收了.还好是通过了,没白费劲. 不得不说,编译原理就是烧脑,知识点都比较抽象,如果数据结构和算法的基础打得不牢的话,实现起来会感到吃力. 再次感觉到了基础的重要性,这也

Android如何定制一个下拉刷新,上滑加载更多的容器

前言 下拉刷新和上滑加载更多,是一种比较常用的列表数据交互方式. android提供了原生的下拉刷新容器 SwipeRefreshLayout,可惜样式不能定制. 于是打算自己实现一个专用的.但是下拉刷新和上滑,非常考验对android布局与父子触摸机制的功底,因此参考gitHub上的一个热门的下拉刷新项目 之所以选择他是因为它一个类就完成了所有View的适配,非常的精简强力. 需求 咱对下拉刷新.上滑加载更多的控件,需求如下: 1:下拉刷新,拖动到一定距离,提示文字变成 放手刷新 2:刷新完成

用Scheme写一个Scheme编译器(一)

在博主的大学生涯中,感觉最头痛的一门课程就是编译原理了,学习完这门课程之后,虽然知道了LL,LR算法,和一系列与编译原理相关的术语,可是对它的了解一直停留在做题上,虽然博主一直希望能够通过自己写一个编译器来加深对编译原理的理解,可是用C语言写编译器真的是一场噩梦,每天大把的时间都花在了调试bug上,更没有时间和精力去思考有关编译原理的东西@[email protected]. 编译的理论不好理解,但是使用C语言又很难将注意力集中于编译的学习之上,想学关于编译的知识还真是难啊. 后来在接触到函数式

实现定制一个微型linux系统

1 小系统正式搞起 规划:向172.16.45.1这虚拟机(宿主机)上添加一块2G左右的硬盘,分为boot和sysroot俩个区.其中boot作为启动分区,sysroot作为根文件系统.完全针对小系统的平台最小的编译内核,而后一步步增加小系统的功能.达到使用一个新虚拟机(目标机)加载此硬盘,便可以跑起来的目的. 内核版本:3.10.67 硬盘接口:SCSI,SCSI是lsi的接口.任何硬盘都是pci总线上的,首先就应该支持pci. 文件系统:ext4 busybox版本:1.22.1 dropb

用java实现一个简易编译器-语法解析

语法和解析树: 举个例子看看,语法解析的过程.句子:"我看到刘德华唱歌".在计算机里,怎么用程序解析它呢.从语法上看,句子的组成是由主语,动词,和谓语从句组成,主语是"我",动词是"看见", 谓语从句是"刘德华唱歌".因此一个句子可以分解成 主语 + 动词 + 谓语从句: 句子-->主语+动词 + 谓语从句 主语是名词,因此有 : 主语->名词 句子里的名词有: "我", "刘德华&q