Types Xtext:解析时生成类型映射

Types Xtext:解析时生成类型映射,types,grammar,antlr3,xtext,Types,Grammar,Antlr3,Xtext,在中,如何从模型文件中的类型声明构建类型映射(即Java映射)?假设我的模型文件如下所示: type String { ...some definitions... } type Foo { ...some definitions... } 我的Xtext语法是: DataType: 'type' name=ID '{' ... '}'; 如何在解析器运行时或评估模板之前构建的映射?以后如何从Xpand模板访问地图 注:2011年。请避免使用全局变量(static)。嘿,Aaron,我不知道

在中,如何从模型文件中的类型声明构建类型映射(即Java映射)?假设我的模型文件如下所示:

type String { ...some definitions... }
type Foo { ...some definitions... }
我的Xtext语法是:

DataType: 'type' name=ID '{' ... '}';
如何在解析器运行时或评估模板之前构建
的映射?以后如何从Xpand模板访问地图


注:2011年。请避免使用全局变量(
static
)。

嘿,Aaron,我不知道你想做什么。但是让我们假设您的数据类型是模型的一部分,例如

Model: "myfile" datatypes+=DataType;
DataType: "type" name=ID ...;
你可以像这样用Xpand遍历它们

«FOREACH model.datatypes AS d»
«d.name», «d.someDefinitions»
«ENDFOREACH»

我的TypeMap实现对类型进行了一些处理。我需要能够为每种数据类型调用
«typeMap.name(d)»
。或者换一种方式:如何将相同的bean注入解析器和模板?最简单的方法可能是使用Java扩展调用(静态Java方法,以某种方式获得对bean的访问权)在这里,您可以在运行生成器之前配置Java部件。