【发布时间】:2019-01-16 16:13:59
【问题描述】:
我正在使用 Flask 开发一个小型 Web 应用程序。这个应用需要一个DSL,可以表达.pdf文件的内容。
我已经使用 JetBrains MPS 开发了一个 DSL,但现在我不确定如何在我的 Web 应用程序中使用它。可能吗?或者我应该考虑切换到另一个 DSL 还是直接在 Python 中制作我的 DSL。
【问题讨论】:
标签: python flask dsl jetbrains-ide mps
我正在使用 Flask 开发一个小型 Web 应用程序。这个应用需要一个DSL,可以表达.pdf文件的内容。
我已经使用 JetBrains MPS 开发了一个 DSL,但现在我不确定如何在我的 Web 应用程序中使用它。可能吗?或者我应该考虑切换到另一个 DSL 还是直接在 Python 中制作我的 DSL。
【问题讨论】:
标签: python flask dsl jetbrains-ide mps
如果您想在 Web 前端使用 MPS,简单的答案是:否。
由于 MPS 是一个投影编辑器,它需要一个投影引擎,以便用户可以与程序/模型进行交互。 MPS 的投影引擎是用 Java 构建的,用于桌面应用程序。已经有一些努力将 MPS 放到 Web 上并构建 Java Script/HTML 投影引擎,但这些工作都没有完成。因此,除非您要构建类似的东西,否则无法在前端使用 MPS。
如果您的 DSL 无论如何都是文本的,并且没有利用 MPS 的投影特性,我会使用专门的工具沿着文本 DSL 之路走下去,例如你建议的python或Xtext。
【讨论】:
如果您决定在 python 路线中使用 DSL,我想我会提出建议。
TextX 是一个很好的 DSL 创建库,支持 BNF 语法并使用 PEG 解析器。
【讨论】: