| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2207 人关注过本帖
标题:如何自动识别c语言中的标识符?
只看楼主 加入收藏
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
结帖率:79.17%
收藏
已结贴  问题点数:20 回复次数:7 
如何自动识别c语言中的标识符?
我想写个程序找出c语言中的标识符,大家有什么建议?
搜索更多相关主题的帖子: 如何 标识 c语言 
2012-09-09 22:59
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
首先需要判断什么样的语句是声明语句,之后还得从这样的语句中识别那部分是标识符。我也没深入学过编译原理方面的知识。

感觉要是自己动手实现的话是很困难的。也许可以考虑写一个小程序从 ctags 之类的软件的分析结果中提取标识符。
2012-09-09 23:57
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 
这个思路不错,但是如果还想对识别到的字符做替换就比较麻烦了吧?
比如 zhong.zhong1 = "zhong"; 想把其中的标识符zhong替换为gnohz

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2012-09-10 00:09
SunshineGirl
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:129
专家分:131
注 册:2012-3-20
收藏
得分:7 
不知道 ~~

[ 本帖最后由 SunshineGirl 于 2012-9-10 00:12 编辑 ]
2012-09-10 00:11
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
以下是引用vfdff在2012-9-10 00:09:49的发言:

这个思路不错,但是如果还想对识别到的字符做替换就比较麻烦了吧?
比如 zhong.zhong1 = "zhong"; 想把其中的标识符zhong替换为gnohz

这个要想全部自动化也许还真有点困难。

如果数量不多也许就是用全局替换之类的,加点人工干扰。
可以先用 grep 把你替换的关键字拉出来看看有多少是不需要改的,也许不多。
2012-09-10 09:48
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:7 
以下是引用vfdff在2012-9-10 00:09:49的发言:

这个思路不错,但是如果还想对识别到的字符做替换就比较麻烦了吧?
比如 zhong.zhong1 = "zhong"; 想把其中的标识符zhong替换为gnohz

VS+VA就有这功能

从实现上说 应该是有一个语法分析器才行 简单的替换不大现实
2012-09-10 09:55
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:7 
回复 6楼 zklhp
学习了。
2012-09-10 18:12
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 
回复 6楼 zklhp
VS+VA就有这功能 具体如何使用?

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2013-01-20 16:12
快速回复:如何自动识别c语言中的标识符?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019299 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved