一段时间以来,我一直对学习编写JetBrains 插件很感兴趣,今天我终于决定试一试。基本上我正在为 SVG 文档添加语言支持,因为内置的 XML 语言支持无法处理使用xlink:
SVG 中的命名空间的标签/属性。
因此,我正在学习自定义语言支持教程,并且已经进入第 3.3 步 - 定义语法。基本上,我打算创建一个 BNF 文件来定义 SVG 文档中使用的语法。问题是SVG 语法需要永远严格定义。
我想做的是从SVG Document Type Definition自动生成这个 BNF 文档,因为这个 DTD 应该包含足够的信息来完全定义 SVG 的语法(我想)。
有什么方法可以将 DTD 转换为 BNF?