问题标签 [mps]

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

dsl - MPS 中的自定义编辑器

我在 Jetbrains MPS 中有一个概念,我想为其创建一个自定义编辑器。

这个概念有许多孩子。

对于每个孩子,我想显示孩子自己的编辑器,但前面有一个“-”。

我不完全确定我是否正在尝试以正确的方式解决这个问题。

但我的第一次尝试是在子节点上循环的自定义单元格。

我的问题是我不知道如何找到子节点的编辑器单元格:

我的手机提供商:

0 投票
4 回答
359 浏览

dsl - 是否可以导出由 JetBrains MPS 创建的 DSL 编译器并独立使用(例如从另一个 Java 程序调用它)

我想构建一个 DSL 并按如下方式使用它:

  • DSL 编译为 Java。
  • 导出 DSL 编译器并将其打包(即作为 JAR),这样我就可以从 Java 应用程序调用 DSL 编译器,将“用我的 DSL 编写的代码”编译为“Java 源代码”(我将使用其他库以编程方式编译Java 转换成字节码)。

我可以使用 JetBrains MPS 来构建 DSL 并按照说明导出其编译器吗?如果没有,其他建议是否值得赞赏?

0 投票
2 回答
567 浏览

dsl - 我可以用 JetBrains MPS 中生成的 DSL 语言做什么?

几个小时前,我刚刚开始阅读有关 DSL 建模的内容。

但是现在,我与使用 JetBrains MPS IDE 或它的 JetBrains Intellij Idea 插件有关,我想知道如何将这些 DSL 模型导出到可用于控制台应用程序或其他任何东西的东西(以防万一可能或有意义)。

0 投票
1 回答
608 浏览

eclipse - Jetbrains MPS 优于 Xtext 的优势

我想问一下 mps 和 xtext 的优势以及编写语言时的主要功能。我知道在使用 mps 时,您正在直接编辑 AST,而 xtext 使用解析器。我已经阅读了使用 AST 的优势,允许为您正在制作的语言扩展多种语言,我真的不明白这意味着什么,可以进一步解释,为什么有人想要扩展多种语言?

我也读过 AST 删除了模棱两可的代码,它是如何做到的?

我知道 MPS 和 xtext 都具有下划线和突出显示代码之类的功能,它们是否还有其他与代码验证相关的功能?

欢迎他们的任何其他主要区别和一般特征?

0 投票
1 回答
110 浏览

mps - 重建项目时出现 MPS 错误:“x@descriptor 没有输出位置”

我是 JetBrains MPS 的新手,正在尝试了解其他人构建的 Jetbrains MPS 应用程序。但是,我发现我无法构建从 GitHub 下载的大多数应用程序。大多数情况下,我在尝试重建项目时遇到错误。我得到的一个常见错误是:

其中 x 是语言的名称。

我必须更新什么来修复它?

额外细节:

0 投票
1 回答
96 浏览

mps - mps 语法单元格给出消息“错误缺少对 jetbrains.mps.lang.core 的依赖”

我正在关注 Kolja Dummann 在 Youtube 上的 Heavy Meta (4) 直播。

我正在尝试使用语法单元来包装二进制表达式。投影看起来像这样

grammar.constant constant text属性设置为subconcept.conceptAlias

不幸的是,我在编辑器中收到了两个包装单元格的错误消息:

当我重建编辑器、语言或项目时,它报告重建成功,但是,在我输入数字后,我无法获得别名(+、-、*、/)的预期行为沙盒项目。

我已将 jetbrains.mps.lang.core 添加到编辑器中,但它显示为灰色,即未使用。

当我在本教程的早些时候在wrap我的数字文字编辑器上使用时,即使我得到的编辑器显示了同样的错误消息,预期的行为也会发生。所以也许错误信息是一个红鲱鱼。

我在用

  • MPS 2020.2 (202.6397.948)。(我在 2020.1 遇到了同样的问题)
  • 来自 de.itemis.mps.extensions-2020.1.1477.e4af43c 的语法单元(我认为 - 不知道如何检查)。
0 投票
1 回答
48 浏览

dsl - 如何在 JetBrains MPS 中限制父节点中的子节点数量

我有概念PytanieWielokrotnegoWyboru,我需要它包含 min 1 和 max 4 child OdpowiedzWielokrotna

截图 1: 截图 2:

0 投票
2 回答
63 浏览

interface - 无法弄清楚 MPS 错误:“角色 XY 中的孩子不属于概念 X”

我是 MPS 的新手,所以这可能是一个愚蠢的问题,但我在任何地方都找不到解决方案。

我正在定义两个 DSL,其中第一个将依赖于第二个。
我已经定义了第一语言的一部分,到目前为止一切都很好。
我有一堆概念,一些编辑器,约束等。

我创建了一个带有示例节点的模型,我可以在其中查看我所做的事情。

现在我正在研究第二种语言,我的方法与第一种语言完全相同。
我创建了一个可以作为根的概念。它被称为“模块”。
然后我定义了一个名为“IModuleContent”的接口概念,并将其作为一个孩子交给“Module”,称其为“内容”并将基数设置为[0..n]。
然后我定义了另一个概念,称为“接口”,它继承自“IModuleContent”。我给了两个概念编辑器,它们现在基本上只是大括号。
在我的示例模型中,我使用新语言创建了一个新节点。它给了我我的根,一个“模块”。因为它是一个命名的概念,所以我给它一个名字。然后,在模块的大括号内,我声明了一个新的“接口”。
一起,

这一切都非常有效,除了在给“模块”一个“接口”(所以“打印机”)的实例作为变量之后,它会用红色下划线并且错误显示为:

但是,我很确定确实如此。所有的概念都在新语言的结构中,我相信一切都以正确的方式继承。我用我的母语做了几乎同样的事情,而且效果很好。
这里发生了什么?

编辑:应该指定我使用的是 2020.3 版

0 投票
2 回答
45 浏览

mps - JetBrains 元编程系统不工作

每当我尝试运行批处理脚本来运行 MPS 时,它会打开片刻然后立即关闭。

尝试通过命令行运行它会给我以下消息:“此时 Jetbrains/MPS 出乎意料。”

我也在他们的论坛上发布了这个问题,但我似乎没有得到答案,所以也许其他人也有这个问题。

编辑:为澄清起见,我在 64 位上使用 Windows 10,并尝试了通过工具箱应用程序和独立安装程序安装的版本 203.7148.1199 和版本 202.8194.1069。我还想提一下,我的系统满足运行程序的要求。

编辑 2:我发现它可以工作,但前提是它安装在 C 驱动器中,而不是任何其他驱动器中。

0 投票
1 回答
31 浏览

mps - JetBrains MPS 只是为了创建突出显示?

MPS 不是为了创建编程语言,而是为已经创建的语言创建语法,这是真的吗(突出显示)?