满分求解决之道,欢迎高手点击!

edward0716 2004-09-17 06:17:48
我的需求:
1.问题描述:
采用多线程机制,分析C/CPP头文件(.h),并以树型结构显示分析结果。
2.平台:
任何平台(建议MS-WINDOWS/UNIX OS)
3.编程平台:
支持OOP的编程工具(建议VC++)
4.编程语言:
C++语言

举例说明:
//a.cpp
#include "aa.h"
#include "bb.h"
#ifdef _SOME
# include <cc.h>
#else
# include <dd.h>
#endif
Some Code Follwing ...
......

//aa.h
#include "aa1.h"
#include <aa2.h>
...

//bb.h
#include ...
...

//cc.h
#include ...
...

//dd.h
#include ...
...

程序运行打开一C/CPP文件(如a.cpp),扫描文件提取文件中所包含的头文件(.h),并将主文件(a.cpp)中扫描的头文件作为一级树型列表,用其它线程同时扫描已经提取的头文件,扫描是否含用头文件,如果有则作为当前文件的下一级树型列表,否则中止该线程。一直扫描到最后,但是要注意重复包含的情况。程序用多线程的目的就是为了处理文件中含用多个头文件,用子线程完成其它头文件的扫描工作,这样在速度上比递归算法要快得多,效率也要高。如本例中通过多线程扫描分析的结果:
▄a.cpp
▄aa.h
▄aa1.h
▄aa2.h
▄aa21.h
▄ ...
▄bb.h
▄bb1.h
▄bb11.h
▄ ...
▄cc.h
▄ ...
▄dd.h

(* ▄代表树型结点)
提示:在程序中可设三个链表:
a. 正在处理中的头文件表(该链表中存放所有工作线程处理的头文件名)
b. 没有处理的头文件表(该链表中存放线程待处理的头文件名)
c. 错误的头文件表(该链表中存放不存在的,或者出错的头文件名)

以上就是问题的描述,该问题综合性比较强,如果有不清题意或者有错误之处,请在本贴中贴出错误或者不明之处,您也可以致信:weilei0716@163.com。

大家可以发表自己对该问题的看法/思想/程序/,欢迎高手一起交流!
解决后相信这贴将是本BBS线程中的又一精贴。致谢各位!!!
...全文
160 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
edward0716 2004-09-20
  • 打赏
  • 举报
回复
我的想法是:读每一头文件,然后按行处理,每行处理中包括三个方面:
1、//行注释过滤。
2、/**/多行注释过滤,这可能不在一行,为每一行做个FLAG,如果是/*多行注释FLAG为TRUE,一直扫描到*/结束,此时FLAG为FALSE,继续按行处理。
3、条件编译中可能包含头文件。
可能还有些不足,请指出,谢谢。这是我在析头文件的整个思路,不知道有没有什么不妥?请高手指点一二。
edward0716 2004-09-20
  • 打赏
  • 举报
回复
能不能考虑点周全一点。
[引用]仅仅一个头文件包含问题嘛。
有没有考虑到文件包含死循环的情况
有没有考虑到文件中包含多个头文件,分级扫描这些扫描到的头文件下的其它文件(用多线程来提高程序的效率)
。。。
并不是扫描一个头文件中包含多少其它头文件。
而是一直扫描到没有包含为止,然后用树型结构列出来。
请相信:说比做容易!
Do it yourself! 呵~你试试~~
edward0716 2004-09-20
  • 打赏
  • 举报
回复
顶起~
kpld8888 2004-09-19
  • 打赏
  • 举报
回复
仅仅一个头文件包含问题嘛。应该和目录很相似的。假如你现在的位置是在目录的某层中,然后向上回溯,直至找到根目录。
edward0716 2004-09-19
  • 打赏
  • 举报
回复
晕~
再顶~
edward0716 2004-09-19
  • 打赏
  • 举报
回复
已经快沉下去啦~~
没有高人现身吗?
加油!~!~!~
edward0716 2004-09-18
  • 打赏
  • 举报
回复
大家有什么好的想法/思想可分享?
kugou123 2004-09-17
  • 打赏
  • 举报
回复
就是有点像根据语义,建立语法树那种原理。
phineco 2004-09-17
  • 打赏
  • 举报
回复
看编译原理就有这样的例子了,
oyljerry 2004-09-17
  • 打赏
  • 举报
回复
不是很明白,gz
adamx 2004-09-17
  • 打赏
  • 举报
回复
学习

Pipi0714 2004-09-17
  • 打赏
  • 举报
回复
编译原理词法分析!
rivershan 2004-09-17
  • 打赏
  • 举报
回复
用得着多线程扫描么?
你有多少可以扫?
dulei310 2004-09-17
  • 打赏
  • 举报
回复
不明白 顶

15,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧