【发布时间】:2017-06-02 00:15:18
【问题描述】:
我正在使用 Xbase 研究 Xtext 语法。该语法允许用户从一个 DSL 文件创建一组具有超类型的 Java 类。因此,我创建了如下规则:
javaClass:
name=ID ':' supertype=JvmParameterizedTypeReference
只要类型不引用由 DSL 创建的类文件,我的类文件生成器就可以很好地工作。例如,当在第 3 行创建了一个类 ClassA,而在第 4 行定义了另一个具有 supertype=ClassA 的类 ClassB,解析器不接受该文件。
我知道这是因为在解析 ClassB 时 ClassA 不是已知类型,因为生成器是在整个文件被解析后启动的。
是否有可能解决我的问题并使用户能够引用之前在同一个 DSL 文件中声明的类?
【问题讨论】: