内容简介:中,包基本上是一个目录名,但在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(...)))
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- LLVM接受NVIDIA的“f18” Fortran编译器作为官方Fortran编译器
- 编译原理实战入门:用 JavaScript 写一个简单的四则运算编译器(四)结语
- Scala.js 0.6.29 发布,将 Scala 编译成 js 的编译器
- Go 编译器介绍
- Go 编译器介绍
- C++编译器优化
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
激荡十年,水大鱼大
吴晓波 / 中信出版社 / 2017-11-1 / CNY 58.00
【编辑推荐】 知名财经作者吴晓波新作,畅销十年、销量超过两百万册的《激荡三十年》续篇,至此完成改革开放四十年企业史完整记录。 作为时代记录者,吴晓波有意识地从1978年中国改革开放伊始,记录中国翻天覆地的变化和对我们影响至深的人物与事件,串成一部我们每个人的时代激荡史。而最新的这十年,无疑更壮观,也更扑朔迷离。 很多事情,在当时并未有很深很透的感受,回过头来再看,可能命运的轨迹就......一起来看看 《激荡十年,水大鱼大》 这本书的介绍吧!