问题标签 [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.
xtext - 如何检查 XFeatureCall 是否实际上引用了某些东西
当我扫描 ast 时,我想检查是否可以解析 XFeatureCall 类型的元素。
具体例子:
我知道
但只有 XFeatureCall "z" 应该是真的(当应用我正在搜索的尚未找到的谓词时)。
到目前为止,我还没有找到一个模式。除了每个不可解析的变量都满足以下条件:
fc 表示 XFeatureCall
然而,这还不够好。因为它还看到“System.out.println”
注意:我使用从根 AST 元素获得的 TreeIterator
如有必要,我将检查 XbaseCompiler 是如何做到的,但我不喜欢 :)
xtext - 从同一资源生成的这两个 Eobject 有什么不同
我不明白为什么有两个不同的 EObject(对我来说)应该是同一个意思
它们似乎包含不同的信息,我不明白为什么会这样。(是的,它们来自不同的地方)但更重要的是我不明白为什么我有两种获取(不同)脚本实现的方法(来自相同的源代码/资源)。
script1 被传递给推断者。为什么不是脚本2?
xtend - xTend:如何阻止变量在输出中打印?
假设您在 xTend 中有以下代码:
这将生成以下格式的输出:
如何让 xTend 不仅使用计数器打印行,而仅打印行号行,以使输出如下所示:
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 代码?
java - 在 xtend 中循环,从 Java 转换
这个循环如何在 Xtend 中完成?
我已阅读文档并尝试了几种不同的方法,但无法使其正常工作。
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
.
java - Xtend如何获取当前工作目录的完整路径
我编写了一个允许用户输入相对路径的语法。(例如“../../temp/out/path”
可能的目的是根据用户的输入获取绝对路径,以及当前工作目录的绝对路径,以便我还可以检查输入路径是否有效。
是否有可用于获取绝对路径的库或内置函数?类似于 C 的 _getcwd() 函数。
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() 函数。我以为这会奏效。然而它没有。我不知道缺少什么。欢迎任何帮助。
eclipse - 通过 quickfix 对 xtext AST 进行排序
我一直在尝试通过 quickfix 来改变节点的顺序,但是出了点问题。这是我在 xtend 中的代码:
没有向控制台抛出异常,在调试中我发现 UnsupportedOperationException 被抛出并由 xtext 处理。我怀疑 EList 是不可变的。那么如何对 AST 进行排序呢?
(这里是生成的代码:)
谢谢!
generics - Xtend:创建字符串列表
如何List<String>
在 Xtend 中创建具有类型的变量?
不工作;中的类型add()
不会传播回来。
在运行时给出异常。
如何在 Xtend 中创建某种类型的列表?