我可以在Web应用程序中使用JetBrains MPS吗?

6

我正在使用Flask开发一个小型Web应用程序。这个应用程序需要一种DSL语言,可以表达.pdf文件的内容。

我已经使用JetBrains MPS开发了一个DSL,但现在我不确定如何在我的Web应用程序中使用它。这是可能的吗?或者我应该考虑切换到另一个DSL或直接在Python中制作我的DSL。

2个回答

4
如果你想在web前端使用MPS的话,简单的答案是:不行。由于MPS是一种投影式编辑器,它需要一个投影引擎才能让用户与程序/模型进行交互。MPS的投影引擎是为桌面应用程序构建的Java引擎。曾经有人尝试将MPS放在Web上,并构建Java Script/HTML投影引擎,但这项工作都没有完成。因此,除非你构建像那样的东西,否则无法在前端使用MPS。
如果你的DSL已经是文本形式的,并且没有利用MPS的投影性质,那么我会选择使用专门针对这种情况的文本DSL工具,例如你提到的Python或Xtext。

目前已经有计划开发基于Web的投影编辑器:https://blog.jetbrains.com/mps/2021/02/webmps-faq/截至2021年3月,似乎还有一段时间才能发布。 - Maccesch

1

如果你决定使用Python中的DSL,我想提供一个建议。
TextX 是一个很好的DSL创建库,支持BNF语法,并使用PEG解析器。


谢谢,乍一看很不错。你有用过TextX吗?你会推荐在Web应用程序中使用它吗? - Rick Grimes
是的,我曾经在过去使用过textx,它非常易于操作。由于它是纯Python编写的,你在flask中使用它应该不会遇到任何问题。 - SerialDev
会尝试一下。谢谢 :) - Rick Grimes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接