awk应用之—C interface头文件产生器

awk应用之—C interface头文件产生器
最近一直在写absurd书中的的代码,以前写的时候就发现一个问题,因为写C的接口的头文件时,虽然很激动,但是写的次数多的之后就有些感觉无趣的,为什么呢?因为它的模式比较固定,按照absurd的说法C语言的接口无非是一些回调函数跟相关的上下文而已,尤其是在写头文件时,感觉如果回调函数比较多时就感觉在做重复劳动一样无趣。以前的时候看ooc这本书,书中说到一个优先的程序员总是惯于使用一些自己的工具和库,而作者也使用awk开发一个工具来产生代码,于是当时我就想写一个自己产生这个头文件的工具。今天算是开工了,各位大哥不知道你们都有什么办法做这些无趣的工作,可否教教小弟!

gen_c_interface.awk取得的方法:
svn checkout http://awk-scripting.googlecode.com/svn/trunk/ awk-scripting-read-only
gen_c_interface.awk使用办法:
首先要建立一个rep文件(当然随便一个文件都OK),这个文件近包括回调函数的定义就OK了,那么我们的回调函数应该这样写:
typedef Ret (*IteratorGetFunc)(Iterator* thiz, void** data);
typedef Ret (*IteratorSetFunc)(Iterator* thiz, void* data);
typedef Ret (*IteratorNextFunc)(Iterator* thiz);
typedef Ret (*IteratorPrevFunc)(Iterator* thiz);
typedef void (*IteratorDestroyFunc)(Iterator* thiz);
函数名中每个单词的首字母大写最后应该用Func结尾。如果您不这么写也没有关系就是得修改这个工具了。
然后就可以使用命令:
awk -f gen_c_interfac.awk youfile.rep >> your_interface.h

于是乎interface文件就产生了,您就无须再敲代码累的手抽筋了。


Comments

Popular posts from this blog

Bluedroid stack in android

How to setup a NAT server?

Network programming in elisp