问题标签 [xbase]

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 回答
148 浏览

xtext - 在 Xtext/Xbase 语法中引用生成的类型

我正在使用 Xbase 研究 Xtext 语法。该语法允许用户从一个 DSL 文件创建一组具有超类型的 Java 类。因此,我创建了如下规则:

只要类型不引用由 DSL 创建的类文件,我的类文件生成器就可以很好地工作。例如,当在第 3 行创建了一个类 ClassA,并在第 4 行定义了另一个具有 supertype=ClassA 的类 ClassB 时,解析器不接受该文件。

我知道这是因为在解析 ClassB 时 ClassA 不是已知类型,因为生成器是在解析整个文件后启动的。

尽管如此,是否有可能解决我的问题并使用户能够引用之前在同一个 DSL 文件中声明的类?

0 投票
1 回答
207 浏览

xtext - Xtext:在 XExpression 中使用 EClass

我正在编写使用XExpressions并在Eclasses上运行的Xtext语法。现在我还希望能够从XExpression访问Eclasses,例如我写了一个这样的表达式:

我想知道,如何在XExpression中使用Eclass

语法

推断器/推断方法

运行时模块

我的导入功能

0 投票
1 回答
70 浏览

visual-foxpro - 如何在 xbase++ 中创建表达式

我想在 xbase++ 中创建这个表达式。请告诉我如何创建这种表达方式。提前致谢。

0 投票
0 回答
55 浏览

xtext - Xtext 无法解析引用 - MongoDb 示例

我刚刚开始学习 XTEXT,我可以看到自动编码的美好未来。:) 目前我正在研究七种语言的培训部分,我被困在 MongoDb 示例上。我正在按照该示例的描述进行操作,但遇到了 DSL 中未解析类型的问题(当我尝试在“艺术家”中定义“专辑”或“曲目”时,IDE 显示“无法解析为类型”)

提前致谢

0 投票
0 回答
54 浏览

xtext - XCORE 遇到 XTEXT

我已经开始使用 XTEXT 创建 DSL,它工作得非常好。今天我发现 XCORE 是另一种可以与 XTEXT 结合的建模方法。有人可以解释一下用这两者创建DSL的用例是什么。

如果有人能提供一些如何处理它们的文档、示例或论文,我将非常感激。

提前致谢,

0 投票
1 回答
174 浏览

interpreter - 执行扩展的 Xbase 解释器导致运行时异常

我目前正在为扩展 Xbase 的 Xtext 语言编写解释器。

为此,我从 XbaseInterpreter 继承,添加我自己的run方法并doEvaluateProgram用我的新抽象概念覆盖调度方法。

问题出现在对CondStmt. 它的语义是评估 expXExpression并仅在 exp 的评估返回 true 时调用 stmts 语句。

当调用解释器时(让我们从下面的测试用例中说),exp 的评估XExpression失败并出现java.lang.IllegalArgumentException: Segment cannot be null异常。

==语句的两边,例如_inPortinSide应该是使用该newValue方法在解释上下文中定义的变量。

我猜运行时错误与未能识别变量的类型和/或值有关,但我不知道如何解决这个问题。

PS:下面的完整堆栈跟踪。

语法:

口译员

测试用例

堆栈跟踪

0 投票
1 回答
54 浏览

java - Xbase - 如何在推断器生成的方法上添加标签

我已经弄清楚如何创建方法并添加到方法的主体中。我还需要做的是为生成的方法添加注释,例如@Test等,我将如何实现这一点?

0 投票
1 回答
87 浏览

xtext - 扩展 Xbase 类型系统

我有这个简单的 DSL,灵感来自 mini-java 示例,但基于 XBase。请参阅下文以快速了解我的语法。

我的问题如下:

我如何扩展 XBase 类型系统以识别用这个简单的 DSL 定义的超类和子类之间的类型一致性?!

我花了几天时间寻找那里的例子,但我无法找到一个明确的例子。

提前感谢您的任何提示,帮助!

干杯,

0 投票
1 回答
116 浏览

xtext - 如何从 XExpression 获取 JvmModelInferrer 方法体并附加样板代码

在 JvmModelInferrer 中,在构造方法或构造函数的主体时,如何从语法中插入XExpression

额外的“样板”代码,例如

我可以实现,但不能同时实现。

对于一个最小的工作示例,请考虑以下规范的 Xbase 语法,

和 JvmModelInferrer,

正如评论所暗示的,我想在 XExpression 本身之前将“样板”代码插入到方法的主体中。虽然我可以插入样板或表达式,但我无法弄清楚如何同时执行这两种操作。

0 投票
1 回答
90 浏览

xtext - Xtext 和 XBase 的语法限制 JVMModelInferrer 继承

以下规范的 XBase 实体语法(来自“使用 Xtext 和 Xtend 实现领域特定语言”Bettini)允许实体扩展任何Java 类。正如注释行所示,我想在语法上强制实体仅从实体继承。

这是上述模型的工作 JVMModelInferrer,其中注释行(和额外方法)再次反映了我的意图。

下面的简单实例完美地解析和推断(注释到位)。

但是,如果我取消注释(并在上面的相应行中注释)语法和推断器(并重新生成),则上述实例不再解析。消息是“方法 super(String) 未定义”。

我了解如何让继承“松散”并限制使用验证器等,但更愿意将其强烈键入模型中。

考虑到 XBase 和 JvmModelInferrer 的作用,我不知道如何解决这个问题,因为我不确定事情在哪里出问题。一个指针(或引用)就足够了。

[...我能够为该语法的-xbase 版本实现所有范围问题...]