6

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

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

4

2 回答 2

4

如果您想在 Web 前端使用 MPS,简单的答案是:

由于 MPS 是一个投影编辑器,它需要一个投影引擎,以便用户可以与程序/模型进行交互。MPS 的投影引擎是用 Java 构建的,用于桌面应用程序。已经有一些努力将 MPS 放到 Web 上并构建 Java Script/HTML 投影引擎,但没有一个工作是完整的。因此,除非您要构建类似的东西,否则无法在前端使用 MPS。

如果您的 DSL 无论如何都是文本的,并且没有利用 MPS 的投影特性,我会使用专门的工具来沿着文本 DSL 之路走下去,例如您建议的 python 或 Xtext。

于 2018-08-10T05:36:54.153 回答
1

如果您决定在 python 路线中使用 DSL,我想我会提出建议。
TextX是一个很好的 DSL 创建库,支持 BNF 语法并使用 PEG 解析器。

于 2018-08-09T09:11:18.097 回答