65.9K
CodeProject 正在变化。 阅读更多。
Home

Pck/Edit: 用于构建解析器的 GUI

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.78/5 (10投票s)

2019 年 8 月 16 日

CPOL

2分钟阅读

viewsIcon

17758

downloadIcon

298

使用 Pck 的编辑器快速轻松地构建解析器和分词器

pckedit

引言

这是关于 PCK 的一系列文章的一部分 - 解析器构建工具包

我介绍了 FA/正则表达式引擎,以及 LL(1) 和 LALR(1) 的生成。

我鼓励你仔细阅读这些材料,而不是重新讲述它们。

这是一个用于 PCKXBNF 文件的小型 GUI 编辑器,可让你快速生成 PCK、解析器和分词器。

使用 GUI

只需创建或加载文档 - 通常是 XBNF 文件。

你可以在编辑器中编辑 XBNF 文件、PCK 文件,甚至 C# 和 Visual Basic 文件。 根据活动文档的类型,构建菜单可能会禁用某些或全部操作。

任何构建操作都在当前活动文档上完成。

输入后,使用“构建”菜单将其转换为解析器、分词器或 PCK 规范。

请注意,要为 LL(1) 解析器创建匹配的分词器,你必须使用 LL(1) 版本的 tokenizer 的菜单项,或者从已分解的 PCK 规范创建 tokenizer。 否则将导致分词器具有错误的符号表,这将导致解析器无法解析输入。

消息、警告和错误在文本编辑器下方的消息视图中报告。 单击一行会将你发送到相关文件中关联的位置(如果有),类似于 Visual Studio。 通常,没有关联的文件,因为中间 PCK 是在内存中生成的,并且没有关联的文件。 如果你愿意,可以显式生成 PCK。 然后,即使该文档尚未保存,错误也会在 PCK 文档中包含行号。

与 Visual Studio 不同,文档不必保存即可从中构建,并且从中构建不会导致它们被保存。 只有当你选择保存文件时,才会写入文件。

你可以在“选项”菜单中设置代码生成语言,但 Visual Basic 的代码 dom 提供程序存在错误,可能无法为你工作,直到我找到一个不会搞乱我设计的解决方法。

关注点

我将 ICSharpCode.TextEditor 的旧副本嵌入到此项目中,我使用它进行语法突出显示。

该编辑器最初基于 Qwertie 的此提交,经过大量修改以适合此项目。

历史

  • 2019 年 8 月 15 日 - 首次提交
© . All rights reserved.