I';我无法从scala AST调用类。找不到这些类

I';我无法从scala AST调用类。找不到这些类,scala,scala-2.10,scala-compiler,Scala,Scala 2.10,Scala Compiler,我想知道如何创建节点,以便它们在代码中实例化类。目前,如果我修改代码,它无法识别节点 object Test{ def main(args: Array[String]) { val a= new Avi; } } 在AST中,我创建了以下节点并替换了参数a的ValDef节点 val newRhs = Select(New(Ident("pra")),newTermName("<init>")); retTree = treeCopy.ValDef(vd, mods, na

我想知道如何创建节点,以便它们在代码中实例化类。目前,如果我修改代码,它无法识别节点

object Test{
def main(args: Array[String]) {
    val a= new Avi;
}
}

在AST中,我创建了以下节点并替换了参数a的ValDef节点

val newRhs = Select(New(Ident("pra")),newTermName("<init>"));
retTree = treeCopy.ValDef(vd, mods, name, tpt, newRhs);

我想知道我创建节点的方式是否错误,我还需要做其他事情。我在Transformer类中传递这个retTree来转换AST。在编译器的Typer阶段找不到该类型。任何帮助都将不胜感激。

Ident(“pra”)
更改为
Ident(newTypeName(“pra”)

您能在say github上发布一个端到端示例吗?@EugeneBurmako我已经将文件添加到此repo中Explugin.scala包含插件代码,而asdf.scala是我正在运行它的文件。虽然Avi在asdf.scala中被调用,但我正试图从插件中调用pra类。为此,我转换了节点,但它没有拾取符号,而是检查值pra,并抛出一个错误。
val newRhs = Select(New(Ident("pra")),newTermName("<init>"));
retTree = treeCopy.ValDef(vd, mods, name, tpt, newRhs);
error: not found: value pra