在Scala编译器插件中创建新的* package *

栏目: Scala · 发布时间: 6年前

内容简介:中,包基本上是一个目录名,但在Scala中,包看起来要复杂得多.到目前为止,我还没有找到/识别编译器插件创建新包的示例.根据我目前的理解水平,我认为我需要首先创建一个包符号:然后使用PackageDef为包创建一个Tree.但是PackageDef没有将符号作为参数,正如人们所期望的那样,并且搜索:
为了在Scala编译器插件中生成新代码,我现在已经创建了工作类.下一个合乎逻辑的步骤是将这些类放在一个新的,不存在的包中.在 Java

中,包基本上是一个目录名,但在Scala中,包看起来要复杂得多.到目前为止,我还没有找到/识别编译器插件创建新包的示例.

根据我目前的理解水平,我认为我需要首先创建一个包符号:

parentPackage.newPackage(...)
// ...

然后使用PackageDef为包创建一个Tree.但是PackageDef没有将符号作为参数,正如人们所期望的那样,并且搜索:

Scala newPackage PackageDef

没有任何用处.所以我似乎不需要一起做这两个步骤.可能一个是由编译器为我完成的,但我不知道哪一个.到目前为止,我看起来像这样:

val newPkg = parentPackage.newPackage(NoPosition, newTermName(name))
newPkg.moduleClass.setInfo(new PackageClassInfoType(new Scope,
    newPkg.moduleClass))
newPkg.setInfo(newPkg.moduleClass.tpe)
parentPackage.info.decls.enter(newPkg)
// ...
val newPkgTree = PackageDef(Ident(newPkg.name), List(ClassDef(...)))

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

写给大家看的设计书(第3版)

写给大家看的设计书(第3版)

[美] Robin Williams / 苏金国、刘亮 / 人民邮电出版社 / 2009-1 / 49.00元

这本书出自一位世界级设计师之手。复杂的设计原理在书中凝炼为亲密性、对齐、重复和对比4 个基本原则。作者以其简洁明快的风格,将优秀设计所必须遵循的这4 个基本原则及其背后的原理通俗易懂地展现在读者面前。本书包含大量的示例,让你了解怎样才能按照自己的方式设计出美观且内容丰富的产品。 此书适用于各行各业需要从事设计工作的读者,也适用于有经验的设计人员。一起来看看 《写给大家看的设计书(第3版)》 这本书的介绍吧!

html转js在线工具
html转js在线工具

html转js在线工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试