首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将从ceylon.ast获得的编译单元提供给Ceylon编译器?

如何将从ceylon.ast获得的编译单元提供给Ceylon编译器?
EN

Stack Overflow用户
提问于 2016-07-22 02:06:50
回答 1查看 47关注 0票数 2

ceylon/ceylon.ast项目中找到的以下示例展示了如何以编程方式构造一些AST,并通过Ceylon类型检查器(com.redhat.ceylon.compiler.typechecker.TypeChecker)对其进行类型检查:

https://github.com/ceylon/ceylon.ast/blob/master/source/test/ceylon/ast/samples/turingMachine/powerOfTwo.ceylon

考虑到编译单元通常是作为文件而不是类型语法树(来自ceylon.ast项目)提供给类型检查器,那么建议使用类型化语法树调用什么方法来编译类型化语法树?

这个问题与这个问题相关:The Ceylon Typechecker: How to obtain the typed syntax tree?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-30 16:16:46

生成一个AST,然后从实际项目的上下文中对其进行编译似乎不是一个可行的选择。编译器需要比AST单独提供的信息更多的信息,并且为编译器提供默认或虚假的信息(例如文件名)仍然是一项复杂的任务。

另一方面,在实际项目的上下文中使用实际编译单元的AST作为一种宏系统是没有意义的,因为ceylon程序可能会有副作用,转换必须考虑到这一点。此外,转换规则应该是终止的和汇合的,并且应该以使维护它们尽可能容易的形式来表达,而不是过程转换器。Ceylon的switch表达式不是适合它的工具。最坏的情况是一个过程化的Ast转换器,它会转换过程化的AST转换器。

一个例外是声明式树状结构在锡兰的转换。这正是我在问题中所考虑的:读入数据(不一定使用ceylon语法),并使它们可用于计算或可选的编译。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38511385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档