问题标签 [xtend]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1084 浏览

java - XText 注册全局变量

我想在XText的帮助下从 Gate 构建对 jape 语言的工具支持。Jape 基本上是一种超越注解的模式语言;您声明遇到这些注释时要采取的操作。问题是动作可以用java编写。在与 jdt 斗争了一段时间后,我无法让它在部分解析内容上工作。所以我放弃了,决定使用 XBlockExpression 的 xbase 支持。

问题是有一些变量可以在动作中使用 - 例如,有一个变量绑定允许您绑定然后从模式中获取注释。所以我的问题是如何在 xblock 范围内注册这些变量。在阅读了 3 个小时的文档后,我仍然离我很近。

这是我的问题的最小语法

我想解析具有如下内容的文件:

我首先插入我自己的范围提供程序,但这对我没有多大帮助。以下是提供者的实现:

任何帮助将不胜感激

0 投票
6 回答
9700 浏览

for-loop - XTend For-Loop 支持和添加范围支持

我似乎无法找到一种在 Xtend 中表达以下内容的好方法,而无需借助 while 循环:

所以,我想我的问题有两个部分:

  • 有没有更好的方法来完成上述操作?我在他们的文档中没有看到任何有希望的东西
  • 该语言的大部分功能只是 Xtend 库扩展(它们很棒!)。是否有range()我不知道的 Python 功能?

我最终自己滚动并得到了如下内容:

0 投票
2 回答
3385 浏览

eclipse - 使用 Xtext 或 XTend 为现有的 EMF 模型构建代码生成器

我有一个模型转换序列,最终输出一个 EMF 模型,一些 EMF 元模型的实例(我自己定义的元模型)。

我正在寻找一种从中生成代码的好方法。当然,还有 XPand,我曾经在其他项目中使用它,但我想知道 XText 或 XTend 是否是合适的替代品(因为它是如此积极地开发)。

换句话说,我有一个 EMF 模型,不需要它的编辑器(所以不需要 XText 来达到这个目的),但我确实需要构建一个代码生成器。我可以只对那部分使用 XText 吗?

是否建议使用 XPand 或 Acceleo?

任何建议都会很棒。

0 投票
2 回答
633 浏览

java - 访问 xtext 中的类定义

我正在尝试编写一个 DSL 来进行从一个对象到另一个对象的类型安全转换。

结果应该是这样的:

我只是想为此生成代码,但我无法访问我已经定义的类。这样做的原因是能够使用默认转换器。只有在我能够获得参数类型的情况下,我才能选择默认转换器的实现。

0 投票
1 回答
843 浏览

eclipse - 使用 Eclipse Xtend 获取“java.lang.NoClassDefFoundError: org/eclipse/xtext/xbase/lib/Pair”

我不知道为什么我不断收到这样的错误,但我一直在努力解决这些问题。

基本上,我在执行项目时无法使用 Xtend 库。Eclipse 构建得很好,但是在运行时,如果我执行一个引用 Xtext 方法之一的类,我会得到一个 NoClassDefinedError。

例如,这编译得很好: var redirects = newHashMap( "/index.html" -> "/" );

但它没有执行,因为它引用了 Xtext 的 Pair。

我觉得它与构建自动化有关。也许是清单之类的,但我对 Eclipse/Java(和 Xtend)还很陌生,所以我很难看出问题出在哪里。

我将 java 项目作为 Google App Engine Web 应用程序项目启动,然后添加了 Xtend 功能。

有人有想法么?

0 投票
1 回答
4972 浏览

xmi - 在 XTend 中加载 EMF 模型实例

我正在 XTend 中构建一个代码生成器,其中我已经有一个输入模型和元模型。也就是说,我使用 ATL 为我的 XTend 代码生成器生成输入模型(作为转换序列的一部分,以逐渐降低抽象级别,而不是一次;这就是我不使用 xtext 创建语法的原因) .

所以要非常清楚,我的代码生成器输入模型是 XMI 格式的文件,而不是 xtext 项目的语法(甚至不使用它)!我认为这给我带来了问题/困惑。

我使用现有模型创建了一个新的 XText 项目,右键单击 .text 文件,运行为,生成人工制品,然后我对 mwe2 文件做了同样的事情。

下一步是什么,我做得对吗?如何启动我的代码生成器?所有示例都来自您使用 XText 创建 DSL 的 POV。我有一个 EMF 元模型和一个基于 XMI 的实例。如何使用 XTend 进一步处理?

任何指向教程的提示或指针都是有帮助的。

解决方案:

该解决方案正如 Sven 在我接受的答案中所建议的那样,但我还想指出,您需要使用 genmodel 从您的元模型生成 Java 工件。此链接显示如何:http ://www.vogella.com/articles/EclipseEMF/article.html ,请参阅第 4 节。这可能看起来太合乎逻辑了,但我认为无论如何都值得注意。

0 投票
1 回答
2064 浏览

xtext - 如何在xtend的字符串中嵌入换行符?

我在 xtend 的 JvmModelinferrer 中生成一个类字段:

鉴于最初的 exp.text 是

我希望生成的字段如下所示:

但它看起来像这样:

好像我根本不替换换行符然后我得到:

这当然不会编译。问题似乎是 xtend 正在评估 java 字符串,所以即使“\n”在 java 中被编译为“\n”,在 xtend 中它也会评估为“n”

如何让 xtend 不评估 \n 以便将其保留在生成的 java 字符串中?

0 投票
1 回答
316 浏览

code-generation - 在 XTend 中调用另一个模板表达式

我有一个关于从另一个模板表达式调用模板表达式方法的问题。

下面的例子不起作用,即。它不会在调用它的地方扩展和“打印”代码。如何修改此代码以ResourceGenerator().generate(resource)在调用它的地方打印结果?请注意,ResourceGenerator().generate(resource)它本身就是一个模板表达式。

希望我的问题很清楚。一个例子会很棒!(同样:ResourceGenerator().generate 返回一个 CharSequence)。

0 投票
2 回答
1437 浏览

eclipse - 调试:使用生成的 Java 代码而不是 Xtend 代码

当我调试 Xtend 代码时,我有时希望查看生成的 Java 代码以及所有中间变量。但是,即使我在这段代码中设置了断点,调试器也会显示 Xtend 代码。在这种情况下是否可以切换到 Java 代码?

0 投票
1 回答
548 浏览

xtext - 如何使用 Xtext(M2M with Xtend) 和 GMF 创建图表?(初学者)

我已经开始使用 Eclipse,但我还是个初学者。所以我想从这里得到一些帮助。我使用 Xtext 来阅读我的 DSL。然后我想用我已经用 GMF 定义的图表来展示实例。但是Xtext中的ecore(MFilesystem)和GMF中的ecore(Filesystem)是不同的。所以我使用 Xtend 来改变模型并创建一个 EObject(Filesystem)。但我不知道 GMF 如何使用 Xtent 的资源来创建图表。我在这里展示我的问题:

1:我在 xtext(Grammmar) 中定义了 ecore:

http://i.stack.imgur.com/QrFrk.jpg

2:我在GMF中定义了ecore

http://farm9.staticflickr.com/8048/8082263442_149b8e8b0f.jpg

http://farm9.staticflickr.com/8336/8082305888_824c467570.jpg

3:我尝试运行 Xtext 的运行时

http://farm9.staticflickr.com/8475/8082313936_d06206d838.jpg

并从我的 DSL 文件(test.filesystem)创建图表。

http://farm9.staticflickr.com/8323/8082338379_f35894ba57_z.jpg

4:那我有这个问题

http://farm9.staticflickr.com/8332/8082347529_3ca68fd520.jpg

5:所以我尝试使用 Xtend 在 Xtext 中更改我的模型

http://farm9.staticflickr.com/8476/8082347146_dc220f9ca9.jpg

6:但它不起作用。我想,我做错了什么。所以我想知道,我怎样才能让 GMFmyfilesystem用来创建图表。

谢谢。