2006 年为tdcr写的新的C语言解析器
===============================================
常见问题:
1。如何为type的size 赋值的?特别是数组?
var_decl
| var_decl LB const_expr RB
{
add_declarator( $$, ARRAY ); //haon 20060925
$$->etype->NUM_ELE = $3;
$$->etype->ive_type->u.a.len= $3;
assert($$->etype->ive_type->u.a.p->size);
$$->etype->ive_type->size = ive_type->u.a.len* $$->etype->ive_type->u.a.p->size;
YYD(yycomment("Add array[%d] spec.\n", $$->etype->NUM_ELE);)
}
===============================================
排错:
2008-01-31 总是得到一个叫CR的字符在:
{let}{H}* return id_or_keyword( yytext );
是因为解析完一个文件后,自动调用了 clean_up
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
你曾经想过把编译器的功能加入到你的程序中吗? 比如,你有一个结构体 typdef struct filehead_v1{ int ver1; byte bBigEndium; }filehead_v1; 你的程序知道filehead_v1这个字符串,就能自动反推出结构体的内存,就可以自动在运行时,算出所需内存的大小,准备一块内存来装这个数据结构。 这里是我所实现的程序的一个最关键部件:C语言头文件解析器。 其中比较关键的就是字节对齐的部分。 一个sizeof我写了很久。C语言的复杂真是可想而知。 而我只写了一个还不是非常完善的头文件解析器。 希望能对其它人的工作有帮助。 我用这个库,把解析出来的结果存到了文件中,然后做了一个版本兼容功能。然后可以自动完成修改这些参数的界面。 这个技术,我断续写了5年。虽然每年进展不多。 如果有人有兴趣,可以联系我。haoyujie@sohu.com
资源推荐
资源详情
资源评论
收起资源包目录
基于lex&yacc技术的C语言头文件的解析器(c head file parser) (145个子文件)
copyout.bat 454B
UnEncrptPack.bat 412B
Cy.c 114KB
output.c 83KB
cl.c 53KB
YYDEBUG.C 48KB
OP.C 33KB
gengtype.c 31KB
DECL.C 23KB
SYMTAB.C 20KB
SET.C 19KB
OCCS.c 16KB
INPUT.C 13KB
VALUE.C 13KB
HASH.C 12KB
GEN.C 10KB
ivceParser.c 8KB
safe-ctype.c 7KB
PAIRS.C 5KB
HDefineExc.c 5KB
TEMP.C 4KB
LOCAL.C 4KB
SEARCHEN.C 3KB
ESC.C 3KB
SWITCH.C 3KB
MAIN.C 3KB
PRNT.C 2KB
DRIVER.C 2KB
COPYFILE.C 2KB
STOL.C 2KB
SSORT.C 2KB
PRINT_AR.C 1KB
CONCAT.C 1KB
ASSORT.C 1KB
BINTOASC.C 1KB
LEX_IO.C 1KB
MEAN.C 1KB
FERR.C 1014B
CURSES.c 975B
HASHPJW.C 880B
PRINTV.C 652B
DEFNEXT.C 612B
ONFERR.C 575B
_SPRINTF.C 544B
STRDUP.C 500B
FPUTSTR.C 488B
HASHADD.C 455B
MOVEFILE.C 445B
YYPSTK.C 436B
YYMAIN.C 405B
MEMISET.C 393B
HyjAdd.c 372B
PCHAR.C 253B
YYINITLL.C 245B
YYINITOX.C 244B
YYINITLX.C 157B
YYWRAP.C 156B
YYOUT.C 151B
output.c 143B
YYHOOK_A.C 132B
YYHOOK_B.C 132B
GccBTest.clw 245B
GccBTest.cpp 5KB
StdAfx.cpp 295B
hC.dsp 9KB
Parser.dsp 9KB
GccBTest.dsp 5KB
hC.dsw 1022B
GccBTest.dsw 840B
SYMTAB.H 7KB
ic_acp_param.h 7KB
DEBUG.H 6KB
PROTO.H 6KB
gengtype.h 5KB
VIRTUAL.H 4KB
CURSES.H 4KB
COMPILER.H 4KB
L.H 3KB
VBIOS.H 3KB
BOX.H 3KB
TERMLIB.H 3KB
SET.H 3KB
safe-ctype.h 3KB
SphereSenInc4psr.h 3KB
Cy.h 2KB
ComViewStru.h 2KB
hyjCParInc.h 2KB
hDataType.h 2KB
YYSTACK.H 2KB
STACK.H 2KB
LABEL.H 1KB
HASH.H 1KB
STATICS.H 1KB
StdAfx.h 1KB
Cl.h 1KB
VALUE.H 1KB
HDefineExc.h 1013B
SWITCH.H 969B
C-CODE.H 786B
OCCS.H 692B
共 145 条
- 1
- 2
资源评论
- tony_ni2013-10-20参照了code,我自己写了个针对项目的缩减版,谢谢
- rothmada2012-08-06编译不通过,缺少文件ivceParser.h
- coder2012-09-09很好。正在学习。这个资料帮了我很多忙。谢谢。
- hitlx2014-03-10编译无法通过。只能通过看代码来学习。最终没有用这种办法,以后再拿出来学习。
hillstream3
- 粉丝: 311
- 资源: 29
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- EngineUtilities 是一个专为自定义游戏引擎设计的数学资源和数据结构库 .zip
- egui 的 D3D9 后端 .zip
- Egui DirectX9、DirectX10、DirectX11 渲染器和 Win32 输入处理程序.zip
- DXQuake3,由 Richard Geary 在 DirectX 中开发的 Quake III 引擎.zip
- idea插件开发的第七天-开发一款数据格式化插件
- DXGL DirectX 到 OpenGL 包装器源代码.zip
- DXGI、D3D11 和 D3DCompiler 的 Haxe,hxcpp 绑定.zip
- idea插件开发的第七天-开发一款数据格式化插件
- ntfs-3g的2个rpm包
- causal-conv1d-1.1.1-cp310-cp310-win-amd64.whl.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功