我想知道是否已经有很好的算法来检测函数声明、函数内容、它的左大括号和右大括号。对于错误的开发、调试和测试,在某些需要在大多数函数中添加大量代码的情况下可能会很好。
示例源代码:
Test.onLoad=function(event){
Test.initialize();
};
结果:
- 函数名称:
Test.onLoad
- 内容:
Test.initialize();
- 在以下行找到左大括号:
1
。 - 在 line 找到右大括号
3
。
例如,我们可以使用上面的信息,轻松地在所有函数的开头和结尾添加一行,以记录一些参数:
Test.onLoad=function(event){
Log("LogInit","function:Test.onLoad","openbraceline:1","content: Test.initialize();");
Test.initialize();
Log("LogEnd ","function:Test.onLoad","endbraceline :5","content: Test.initialize();");
};
我知道这个功能也可以用一个简单的全局日志和一个调用堆栈来实现,但是仍然有很多例子表明这可能非常有用。
制作一个简单的算法来检测和匹配大括号并获取函数信息可能很容易,但是有很多例外情况可能非常复杂,这就是为什么我要问是否已经有众所周知的检测方法。
我不介意示例算法或提示是否使用任何语言,只是想看看最好的方法。
Notepad++ 就是一个很好的例子,因为它有一个插件,可以检测许多不同的源代码语言,并使用每个部分的颜色解析代码并匹配大括号。