gpt4 book ai didi

regex - 如何识别一段代码中的变量名

转载 作者:行者123 更新时间:2023-12-01 09:56:35 26 4
gpt4 key购买 nike

我正在尝试用 X++ 编写一个 halstead 复杂性度量(语言并不重要),我认为最好的方法是在源代码上使用正则表达式。

我已经完成了其中的 90%,但在变量名上遇到困难。

如何识别一段代码中的变量名。

给定以下代码

public void main()
{
int a, b, c, av;
className class;
strFmt("%1 %2 %3", a, b, c);
av = (a + b + c) / 3;
info("avg = %1");*/

if(a)
{
a++;
class.add(a);
}
else
{
b++;
class.subtract(b)
}

this.main();
}

我希望返回“a”“b”“c”“av”“class”

有了 halstead,它需要计算它们的实例。我的想法是将上面的内容存储在列表中,然后在正则表达式查询中使用列表中的任何内容。迎合变量的所有可能用途将是疯狂的。

最佳答案

我认为您必须反射(reflection) AOT 才能获得不同的变量。

您可以将反射与 TreeNode 一起使用,或者您可以使用 XPPCompiler 来获取有关您正在处理的对象的信息以提供帮助:

info(strFmt("%1", new xppCompiler().dumpClass('salesformletter')));

关于regex - 如何识别一段代码中的变量名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25384113/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com