前言:
C++的准标准库 boost里面的spirit子库是个很强大的语法分析库,为了看看他有多强悍偶尝试用它写点有意思的东西--写个C++的源代码解析器(其实有兴趣的话也可以写个java或是javascript的解析器)。
spirit的架构就好像是搭积木,如果你要解析个复杂的东西,而这个恰好由几个小的零件构成的,你可以先把零件一个个写好,然后在把他组装在一起就ok了。
好了先来弄个简单的东东试验一下:
做一个简单的enum的解析器:
这个解析器可以将C++表示enum的代码解析出来然后装到一个我写的简单的表示enum的对象里。