我想解析头文件以获取所有常量宏,如:
#define ARRSIZE 10
#define WORDSIZE 32
#define TOTALSIZE (ARRSIZE * WORDSIZE)
创建一个列表和一个数组,例如:
# define XARRSIZE 0
# define XWORDSIZE 1
# define XTOTALSIZE 2
int table[] = {ARRSIZE, WORDSIZE, TOTALSIZE}
// Now, table[XWORDSIZE] will fetch value of WORDSIZE.
所以,我想忽略以下内容:
struct
)声明。extern
函数声明。typedef
秒。一种方法是使用lex和yacc编写解析器。但是,这项任务似乎更简单。有没有办法使用'cpp'等工具迭代头文件中的所有常量宏?
请建议任何更好的方法。
答案 0 :(得分:2)
如果你真的只想要一个宏列表:
awk '/#define/{ print $2 }' <source.h