gpt4 book ai didi

javascript - 在 C# 中将 JavaScript AST (Esprima.Net) 遍历到树

转载 作者:行者123 更新时间:2023-11-30 00:22:51 29 4
gpt4 key购买 nike

我使用 Esprima.Net ( https://github.com/Diullei/Esprima.NET ) 从 JavaScript 代码中获取 AST(抽象语法关键字)。它返回 List<Dynamic>包含许多子节点和子节点。我想知道如何最好地遍历 C# 中的所有这些节点进行分析。基本上我想得到它所在的函数名、变量名和函数。

例如,在下面的 JavaScript 代码中:

var y = 45;
function fTest(d)
{
var key: Argument.Callee;
var cars = 'Hello';
for (i = 0; i < cars.length; i++)
{
text += cars[i];
}
}

我希望最终得到如下结果:

variable: 45
function:parameter:'d'
function:variable:argument.callee
function:variable:'Hello'
funtion:loop:variable:object

我很难遍历 List<Dynamic>由 Esprima.Net 提供。在树或任何结构中处理或遍历此列表以便我可以访问它们的任何想法?谢谢。

最佳答案

我最终没有使用 Esprima.NET,而是使用了 Esprima JS ( http://esprima.org/ )。我在网页中添加了 Esprima JS 并创建了一个名为 Esprima 解析器的外部 javascript 文件来创建 AST。获得 AST 后,我使用 estraverse ( https://github.com/estools/estraverse ) 遍历 AST 以获得结果。

希望这对其他人有帮助。

关于javascript - 在 C# 中将 JavaScript AST (Esprima.Net) 遍历到树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32545986/

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