查看: 924|回复: 4
|
Lexer/parsing/tokenize
[复制链接]
|
|
[size=2]那位朋友有这方面的资料、代码?
小章鱼尝试编一个代码分析的程式,程式的功能就是检查代码的结构是否正确。
比方:
if(true){if(false){}} // 是正确的
if(ture){if(false){} // 是错的
所以需要这方面的运用。
谢谢。 |
|
|
|
|
|
|
|
发表于 5-5-2006 11:39 AM
|
显示全部楼层
在学院里, 曾经做过类似简单的, 你可以考虑用 stack 的 FILO 概念来做.
例如说:
if (true) { do_something(); }
如果把全部 string 放进 stack 里, 那就是类似以下:
0: if
1: (
2: true
3: )
4: {
5: do_something
6: (
7: )
8: ;
9: }
根据 FILO 的概念, 一个一个 pop 出来, 当你 pop 了一个 "{", 你就必须在那一行, 一定要找到另一个 "}", 否则不能算完成. |
|
|
|
|
|
|
|

楼主 |
发表于 5-5-2006 12:40 PM
|
显示全部楼层
谢谢 goatstudio 大大,
不过这种方式看起来似乎很占处理时间
应该无法用于实时处理,对吧?
除了这个,还有其它的法子么?
还有
像 VS.NET 酱的 realtime cross files validate 是怎样实现的呢?
给每个 namespace/class/members 建立一个制表? |
|
|
|
|
|
|
|
发表于 5-5-2006 04:34 PM
|
显示全部楼层
|
|
|
|
|
|
|

楼主 |
发表于 6-5-2006 08:52 AM
|
显示全部楼层
bontakun 小章鱼的 e 文不好,编程基础也不好(不会 C/C++),看得似懂非懂。
不过应该就是小章鱼要的咚咚。
谢谢你提供的资讯。
不过小章鱼想要的是自己实践类似的功能,而不是采用其它的引擎。
bontakun 能不能为小章鱼解一解你所说的“自动生成parser源代码”,是什么意思?
其所自动生成 parser 的源代码需要用到它的 library 吗?
在运用上又是如何? |
|
|
|
|
|
|
| |
本周最热论坛帖子
|