我正在使用 XBase 编写 DSL,并且添加了一个新的解析器规则,该规则XExpression
在语法中返回一个:
DatastepExpression returns xbase::XExpression: {DatastepExpression} 'data' name=ID '{' '}';
并将适当的函数添加到XbaseTypeComputer
子类:
protected def _computeTypes(DatastepExpression expression, ITypeComputationState state) {
var type = getTypeForName(typeof(FileDataset), state)
state.acceptActualType(type)
}
现在我正在尝试将方法添加到 XbaseCompiler 子类:
override protected doInternalToJavaStatement(XExpression expr, ITreeAppendable it, boolean isReferenced) {
switch expr {
DatastepExpression: {
newLine
append('''FileDataset «expr.name»;''')
}
default:
super.doInternalToJavaStatement(expr, it, isReferenced)
}
}
FileDataset
我的语言 API 中的自定义类在哪里。如何让这个类出现在生成文件顶部的导入中?
目前,当我用我的语言(在运行时 Eclipse 中)创建一个新文件时,生成的 Java 文件包含FileDataset
变量声明,但它下面有一条红色波浪线和错误“FileDataset 无法解析为一种类型”