gpt4 book ai didi

dart - 分析器包-如何递归搜索parseDartFile()的结果

转载 作者:行者123 更新时间:2023-12-03 03:26:50 25 4
gpt4 key购买 nike

当前正在尝试理解“analyzer”软件包,因为我需要分析和编辑另一个文件中的.dart文件(也许这是一个糟糕的主意)。

我想我知道如何深入childEntities树。
但是不知道如何在其中搜索。

我的意思是,从理论上讲,我可以编写一个递归搜索,该搜索将为我找到一个名为“FindABetterSolution”的类。但是是否有内置方法?

我正在尝试做的是:

var file = parseDartFile("test.dart");
file.childEntities.forEach((SyntacticEntity entity) {
if(entity is AstNode) {
//then it has its own child nodes which can be AstNode-s or Tokens.
} else if(entity is Token) {
Token token = entity;
print("${token.lexeme} ${token.type} ${token.runtimeType} ${token.keyword}");
//this will output "class KEYWORD KeywordToken CLASS" for "class" in "class MyClass {"
}
});
//I need a way to find certain functions/classes/variables/methods e.t.c.
var myClassNode = file.searchClass("MyClass", abstract: false);
var myMethod = myClassNode.searchMethod("myMethod", static: true);
var globalFunction = file.searchFunction("myFunc", returns: "bool");

UPD:好的,我想我找到了一种搜索和替换节点的方法。但是如何在另一个节点之前/之后插入新节点?

最佳答案

关于dart - 分析器包-如何递归搜索parseDartFile()的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44562760/

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