Xtext:解析时构建类型映射

发布于 2024-10-18 08:14:46 字数 464 浏览 6 评论 0原文

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

type String { ...some definitions... }
type Foo { ...some definitions... }

并且我的 Xtext 语法说:

DataType: 'type' name=ID '{' ... '}';

如何在解析器运行时或评估模板之前构建 的映射?稍后如何从 Xpand 模板访问地图?

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

In Xtext, how can I build a type map (i.e. a Java map) from the type declarations in my model file? Say my model file looks like this:

type String { ...some definitions... }
type Foo { ...some definitions... }

and my Xtext grammar says:

DataType: 'type' name=ID '{' ... '}';

How can I build a map of <String,DataType> while the parser runs or before the template is evaluated? How can I access the map later from the Xpand template?

Note: It's 2011. Please avoid global variables (static).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

指尖上的星空 2024-10-25 08:14:46

嘿亚伦,我不确定你想做什么。但是我们假设您的数据类型是模型的一部分,例如

Model: "myfile" datatypes+=DataType;
DataType: "type" name=ID ...;

您可以像这样用 Xpand 遍历它们

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

Hey Aaron, I am not sure what you are trying to do. But let's assume your data types are part of a model, e.g.

Model: "myfile" datatypes+=DataType;
DataType: "type" name=ID ...;

you could traverse them with Xpand like this

«FOREACH model.datatypes AS d»
«d.name», «d.someDefinitions»
«ENDFOREACH»
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文