我可以在 Web 应用程序中使用 JetBrains MPS 吗?
Can I use JetBrains MPS in a web application?
我正在使用 Flask 开发一个小型 Web 应用程序。这个应用需要一个DSL,它可以表达.pdf文件的内容。
我已经使用 JetBrains MPS 开发了 DSL,但现在我不确定如何在我的 Web 应用程序中使用它。可能吗?或者我应该考虑切换到另一个 DSL 还是直接在 Python.
中制作我的 DSL
如果您决定在 python 路线中使用 DSL,我想我会提出建议。
TextX 是一个很好的 DSL 创建库,支持 BNF 语法并使用 PEG 解析器。
如果您想在 Web 前端使用 MPS,简单的答案是:否。
由于 MPS 是一个投影编辑器,因此它需要一个投影引擎,以便用户可以与 program/model 进行交互。 MPS 的投影引擎内置于 Java 中,适用于桌面应用程序。已经做出一些努力将 MPS 放到 web 上并构建 Java Script/HTML 投影引擎,但是 none 的工作已经完成。因此,除非您构建类似的东西,否则无法在前端使用 MPS。
如果您的 DSL 无论如何都是文本的,并且没有利用 MPS 的投影性质,我会使用专门的工具走下文本 DSL 之路,例如python 如您所建议或 Xtext。
我正在使用 Flask 开发一个小型 Web 应用程序。这个应用需要一个DSL,它可以表达.pdf文件的内容。
我已经使用 JetBrains MPS 开发了 DSL,但现在我不确定如何在我的 Web 应用程序中使用它。可能吗?或者我应该考虑切换到另一个 DSL 还是直接在 Python.
中制作我的 DSL如果您决定在 python 路线中使用 DSL,我想我会提出建议。
TextX 是一个很好的 DSL 创建库,支持 BNF 语法并使用 PEG 解析器。
如果您想在 Web 前端使用 MPS,简单的答案是:否。
由于 MPS 是一个投影编辑器,因此它需要一个投影引擎,以便用户可以与 program/model 进行交互。 MPS 的投影引擎内置于 Java 中,适用于桌面应用程序。已经做出一些努力将 MPS 放到 web 上并构建 Java Script/HTML 投影引擎,但是 none 的工作已经完成。因此,除非您构建类似的东西,否则无法在前端使用 MPS。
如果您的 DSL 无论如何都是文本的,并且没有利用 MPS 的投影性质,我会使用专门的工具走下文本 DSL 之路,例如python 如您所建议或 Xtext。