解析C头文件
Parsing C Header Files
我有一个C头文件,我已经使用gcc -E
标志预编译,现在正试图使用Lex和Yacc解析;但是,它在类型定义变量上挂起了。
typedef unsigned long ULONG;
ULONG i = 5;
将在第二行ULONG抛出语法错误。
我试图重新定义部分语法(在这里找到)http://www.quut.com/c/ANSI-C-grammar-y.html,特别是在type_specifer
下,用IDENTIFIER
代替TYPE_NAME
,但是这会产生多个s/r和r/r错误,我无法修复。
你会推荐其他的方法吗?或者是一种不同的预编译方法?
在代码中你也链接:
http://www.quut.com/c/ANSI-C-grammar-y.html
看底部:
您将看到这个函数
int check_type(void)
{
/*
* pseudo code --- this is what it should check
*
* if (yytext == type_name)
* return TYPE_NAME;
*
* return IDENTIFIER;
*/
/*
* it actually will only return IDENTIFIER
*/
return IDENTIFIER;
}
您实际上需要编写代码来识别序列(yytest, yytext+yylength]是标识符还是TYPE_NAME。这意味着在解析器中,您需要在解析代码时构建一些结构,以便该函数可以在结构中查找标识符。
用默认类型char/int/short/long/float/double等预填充结构体。在解析输入时需要添加的其他类型
相关文章:
- 配置文件解析器仅返回以前的值
- 将文本文件解析为树状数据结构
- C++将文本从.txt文件解析为变量
- Boost program_options将多个配置文件解析结果存储到一个parsed_options中
- 当存在空单元格时,用于 c++ 的 Tsv 文件解析器会突然结束
- C 如何将文件解析到结构的向量中
- 您如何将文件解析到代币的向量中
- 将PCAP文件解析至C 中的sip消息
- 通过C 通过文本文件解析
- 文件解析代码需要注意
- 为什么我的C 文本文件解析脚本比我的Python脚本要慢得多
- Directx:Obj文件解析到索引缓冲区
- cocos2d-x JSON 文件解析
- 将C++文件解析为 XML 文件
- 文本文件解析C++|用空格分隔
- 快速文件解析C++
- SystemC - 测量并在系统C仿真中包括文件解析时间
- 将文本文件解析到列表中会出现分段错误
- 将 IWICBtmap 写入文件 - 解析不正确
- Python C 头文件解析和反向初始化