PCK和XBNF文件的GUI编辑器

本文将介绍一个小型的图形用户界面(GUI)编辑器,它专门用于处理PCK(Parser Construction Kit)和XBNF(Extended Backus-Naur Form)文件。这个工具旨在帮助开发者快速生成PCK规范、解析器和分词器。

使用GUI编辑器

要开始使用这个编辑器,首先需要创建或加载一个文档,通常是XBNF文件。编辑器支持编辑XBNF文件、PCK文件,甚至C#Visual Basic文件。根据当前激活的文档类型,构建菜单中的某些操作可能会被禁用。

构建操作是在当前激活的文档上执行的。一旦输入了代码,可以使用构建菜单将其转换为解析器、分词器或PCK规范。值得注意的是,要为LL(1)解析器创建匹配的分词器,必须使用LL(1)版本的分词器菜单项,或者从已经分解的PCK规范中创建分词器。否则,分词器将拥有错误的符号表,这将导致解析器无法解析输入。

消息、警告和错误会在文本编辑器下方的消息视图中报告。点击一行将把带到相关文件中的关联位置,如果没有关联文件,则类似于Visual Studio。通常没有关联文件,因为中间的PCK是在内存中生成的,没有关联文件。如果喜欢,可以显式生成PCK。然后,即使该文档尚未保存,错误也会有PCK文档中的行号。

与Visual Studio不同,不必保存文档就可以从它们构建,从它们构建也不会导致它们被保存。文件被写入的唯一时间是选择保存它的时候。

设置代码生成语言

可以在选项菜单中设置代码生成语言,但Visual Basic的代码DOM提供程序存在bug,可能无法为工作,直到找到一个不会破坏设计的解决方法。

有趣的点

在项目中嵌入了一个旧版本的ICSharpCode.TextEditor,用于语法高亮。编辑器最初是基于Qwertie的这个提交构建的,已经进行了大量修改以适应这个项目。

2019年8月15日 - 初始提交

代码示例

以下是使用这个GUI编辑器生成解析器的示例代码。

// 假设有一个XBNF文件,内容如下: expression = term { ('+' | '-') term } term = factor { ('*' | '/') factor } factor = '(' expression ')' | number number = digit { digit } digit = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'
  1. 打开编辑器并加载XBNF文件。
  2. 在构建菜单中选择“构建解析器”。
  3. 等待构建过程完成,并查看任何错误或警告。
  4. 如果一切顺利,可以使用生成的解析器来解析符合XBNF规则的输入。
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485