问题标签 [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.
java - XText 注册全局变量
我想在XText的帮助下从 Gate 构建对 jape 语言的工具支持。Jape 基本上是一种超越注解的模式语言;您声明遇到这些注释时要采取的操作。问题是动作可以用java编写。在与 jdt 斗争了一段时间后,我无法让它在部分解析内容上工作。所以我放弃了,决定使用 XBlockExpression 的 xbase 支持。
问题是有一些变量可以在动作中使用 - 例如,有一个变量绑定允许您绑定然后从模式中获取注释。所以我的问题是如何在 xblock 范围内注册这些变量。在阅读了 3 个小时的文档后,我仍然离我很近。
这是我的问题的最小语法
我想解析具有如下内容的文件:
我首先插入我自己的范围提供程序,但这对我没有多大帮助。以下是提供者的实现:
任何帮助将不胜感激
for-loop - XTend For-Loop 支持和添加范围支持
我似乎无法找到一种在 Xtend 中表达以下内容的好方法,而无需借助 while 循环:
所以,我想我的问题有两个部分:
- 有没有更好的方法来完成上述操作?我在他们的文档中没有看到任何有希望的东西
- 该语言的大部分功能只是 Xtend 库扩展(它们很棒!)。是否有
range()
我不知道的 Python 功能?
我最终自己滚动并得到了如下内容:
eclipse - 使用 Xtext 或 XTend 为现有的 EMF 模型构建代码生成器
我有一个模型转换序列,最终输出一个 EMF 模型,一些 EMF 元模型的实例(我自己定义的元模型)。
我正在寻找一种从中生成代码的好方法。当然,还有 XPand,我曾经在其他项目中使用它,但我想知道 XText 或 XTend 是否是合适的替代品(因为它是如此积极地开发)。
换句话说,我有一个 EMF 模型,不需要它的编辑器(所以不需要 XText 来达到这个目的),但我确实需要构建一个代码生成器。我可以只对那部分使用 XText 吗?
是否建议使用 XPand 或 Acceleo?
任何建议都会很棒。
java - 访问 xtext 中的类定义
我正在尝试编写一个 DSL 来进行从一个对象到另一个对象的类型安全转换。
结果应该是这样的:
我只是想为此生成代码,但我无法访问我已经定义的类。这样做的原因是能够使用默认转换器。只有在我能够获得参数类型的情况下,我才能选择默认转换器的实现。
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 功能。
有人有想法么?
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 节。这可能看起来太合乎逻辑了,但我认为无论如何都值得注意。
xtext - 如何在xtend的字符串中嵌入换行符?
我在 xtend 的 JvmModelinferrer 中生成一个类字段:
鉴于最初的 exp.text 是
我希望生成的字段如下所示:
但它看起来像这样:
好像我根本不替换换行符然后我得到:
这当然不会编译。问题似乎是 xtend 正在评估 java 字符串,所以即使“\n”在 java 中被编译为“\n”,在 xtend 中它也会评估为“n”
如何让 xtend 不评估 \n 以便将其保留在生成的 java 字符串中?
code-generation - 在 XTend 中调用另一个模板表达式
我有一个关于从另一个模板表达式调用模板表达式方法的问题。
下面的例子不起作用,即。它不会在调用它的地方扩展和“打印”代码。如何修改此代码以ResourceGenerator().generate(resource)
在调用它的地方打印结果?请注意,ResourceGenerator().generate(resource)
它本身就是一个模板表达式。
希望我的问题很清楚。一个例子会很棒!(同样:ResourceGenerator().generate 返回一个 CharSequence)。
eclipse - 调试:使用生成的 Java 代码而不是 Xtend 代码
当我调试 Xtend 代码时,我有时希望查看生成的 Java 代码以及所有中间变量。但是,即使我在这段代码中设置了断点,调试器也会显示 Xtend 代码。在这种情况下是否可以切换到 Java 代码?
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:
2:我在GMF中定义了ecore
3:我尝试运行 Xtext 的运行时
并从我的 DSL 文件(test.filesystem)创建图表。
4:那我有这个问题
5:所以我尝试使用 Xtend 在 Xtext 中更改我的模型
6:但它不起作用。我想,我做错了什么。所以我想知道,我怎样才能让 GMFmyfilesystem
用来创建图表。
谢谢。