问题标签 [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 回答
102 浏览

xtext - 如何检查 XFeatureCall 是否实际上引用了某些东西

当我扫描 ast 时,我想检查是否可以解析 XFeatureCall 类型的元素。

具体例子:

我知道

但只有 XFeatureCall "z" 应该是真的(当应用我正在搜索的尚未找到的谓词时)。

到目前为止,我还没有找到一个模式。除了每个不可解析的变量都满足以下条件:

fc 表示 XFeatureCall

然而,这还不够好。因为它还看到“System.out.println”

注意:我使用从根 AST 元素获得的 TreeIterator

如有必要,我将检查 XbaseCompiler 是如何做到的,但我不喜欢 :)

0 投票
1 回答
55 浏览

xtext - 从同一资源生成的这两个 Eobject 有什么不同

我不明白为什么有两个不同的 EObject(对我来说)应该是同一个意思

它们似乎包含不同的信息,我不明白为什么会这样。(是的,它们来自不同的地方)但更重要的是我不明白为什么我有两种获取(不同)脚本实现的方法(来自相同的源代码/资源)。

script1 被传递给推断者。为什么不是脚本2?

0 投票
3 回答
2261 浏览

xtend - xTend:如何阻止变量在输出中打印?

假设您在 xTend 中有以下代码:

这将生成以下格式的输出:

如何让 xTend 不仅使用计数器打印行,而仅打印行号行,以使输出如下所示:

0 投票
2 回答
1317 浏览

dsl - DomainmodelGenerator.xtend 中的 XTEND For-Loop indexcontrol(XTEXT 代码生成项目)

我完成了 eclipse.org/Xtext/documentation 上的教程并开始扩展这些示例。使用 Domainmodel.xtext 示例,我为每个实体生成一个 Java-Classfile,如 Tut 中所述。

DSL 指定了任意数量的特性,也就是类属性:

在 DomainmodelGenerator.xtend 然后我添加了代码来生成一个 JAVA-classconstructor。XTEND-Forloop 循环遍历所有争论 - 看起来像这样:

问题 最后一个参数仍然发出逗号。如何在 XTEND 中控制 loopindex,使生成器发出合法的 JAVA 代码?

0 投票
1 回答
403 浏览

java - 在 xtend 中循环,从 Java 转换

这个循环如何在 Xtend 中完成?

我已阅读文档并尝试了几种不同的方法,但无法使其正常工作。

0 投票
1 回答
650 浏览

java - Xtext QuickFix API 的 Xtend lambda 表达式重载

我正在使用 Xtend 为我的 Xtext 语言的 Eclipse UI 插件编写自定义 QuickFixes。这个想法是扩展org.eclipse.xtext.ui.editor.quickfix.DefaultQuickfixProvider和使用 call 的accept方法org.eclipse.xtext.ui.editor.quickfix.IssueResolutionAcceptor

accept有几个重载的签名,包括:

  • void accept(Issue issue, String label, String description, String image, IModification modification)
  • void accept(Issue issue, String label, String description, String image, ISemanticModification semanticModification)

使用 Xtend 的 lambda 表达式语法很容易使用这些签名中的第一个:

Xtend 编译器生成以下 Java 代码:

现在我想编写第二个 QuickFix 使用ISemanticModification而不是,IModification这样我就可以访问底层 EMF 模型,而不仅仅是字符串。但是,我很难告诉 Xtend 编译器我想使用哪种方法重载:

Xtend 总是认为我想传递 anIModification而不是 anISemanticModification并在编译的 java 代码中产生错误,因为这两种apply方法具有不同的签名,IModification需要一段IModificationContext时间ISemanticModification需要一个EObject.

我如何告诉 Xtend 使用哪个重载?据我所知,在 Xtend 中创建匿名对象是不可能的,所以需要另一种方法来调用IssueResolutionAcceptor.accept传递一个ISemanticModification.

0 投票
2 回答
1097 浏览

java - Xtend如何获取当前工作目录的完整路径

我编写了一个允许用户输入相对路径的语法。(例如“../../temp/out/path”

可能的目的是根据用户的输入获取绝对路径,以及当前工作目录的绝对路径,以便我还可以检查输入路径是否有效。

是否有可用于获取绝对路径的库或内置函数?类似于 C 的 _getcwd() 函数。

0 投票
1 回答
1566 浏览

java - 使用 xtext-xbase-xtend 工具链创建简单的特定领域语言

这是一个用于创建领域特定语言 (DSL) 的类项目。没什么好考虑的。就我自己而言,我将此项目设置为纯粹的练习,以学习所涉及的步骤。

涉及的文件(附有代码文件)::

1) Xtext 中的语法(entities.xtext)

2) xtend 中的 JvmModelInferrer (entitiesJvmModelInferrer.xtend)

3) 新语言的源文件(Animal.xentities 和 Main.xentities)。.xentities 扩展名特定于此 DSL 项目的文件。- Main.xentities

- 生成 Main.java

-Animal.xentities

- 生成的 Animal.java 代码

我的目标:: 我想开发一个基本的工作流基础结构,以便我可以定义具有相关功能和属性的类。然后我希望能够执行它们。

我的问题:: 不断收到一条消息,上面写着'selection does not contain a main type'

我的尝试:在实体(类)'Main.xentities'中,我创建了一个'op main()'函数。在生成的 .java 代码中,这将显示为公共静态 String main() 函数。我以为这会奏效。然而它没有。我不知道缺少什么。欢迎任何帮助。

0 投票
1 回答
270 浏览

eclipse - 通过 quickfix 对 xtext AST 进行排序

我一直在尝试通过 quickfix 来改变节点的顺序,但是出了点问题。这是我在 xtend 中的代码:

没有向控制台抛出异常,在调试中我发现 UnsupportedOperationException 被抛出并由 xtext 处理。我怀疑 EList 是不可变的。那么如何对 AST 进行排序呢?

(这里是生成的代码:)

谢谢!

0 投票
1 回答
2751 浏览

generics - Xtend:创建字符串列表

如何List<String>在 Xtend 中创建具有类型的变量?

不工作;中的类型add()不会传播回来。

在运行时给出异常。

如何在 Xtend 中创建某种类型的列表?