用于基于BNF的自动补全器的最佳python库

2024-09-29 23:22:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我想创建一个SQL自动完成程序,用于rlwrap:https://github.com/hanslub42/rlwrap 然后可以将其与sqlite3&;例如osqueri(我知道他们已经有了一些自动补全功能,但还不够好,尤其是在rlwrap下)。
事实上,更一般地说,我想知道基于BNF语法描述构建自动补全器的最佳方法;我可能希望在将来的某个时候为其他rlwrapped REPL生成自动补码器。
我没有使用解析器的经验,但我在网上读过一些关于不同类型的解析器及其工作原理的资料,还有本Pyleri教程:https://tomassetti.me/pyleri-tutorial/
Pyleri看起来相当简单,并且具有expecting属性,这使得创建自动补全器变得很容易,但是它可能需要将sqlite BNF(以及我将来可能要使用的任何其他BNF)转换为python代码,这是一种阻力。
ANTLR有许多不同语言的预定义语法文件,并且能够输出python代码,但我不确定生成自动补全器有多容易,我不想通读所有文档,结果发现我浪费了时间。 有人能给我建议吗?最好的方法是什么


Tags: 方法代码https程序githubcom解析器sql

热门问题