Python解析器模块教程

2024-06-09 14:13:26 发布

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

我正在编写一个应用程序,它读取一个当前有自己语法的输入文件,该文件由lex/yacc处理。

我想修改一下,使这个输入文件变成一个Python脚本,并且想知道是否有人可以给我介绍一个在Python中使用解析器模块的初学者指南。我对Python本身还不太熟悉,但已经完成了相当多的在线教程。

根据我的研究,我知道有一些选项(比如pyparsing)可以让我保留现有的语法,并使用pyparsing替代lex/yacc。然而,我很想更详细地学习Python解析器模块并探索其可行性。

谢谢。


Tags: 模块文件脚本应用程序解析器选项指南语法
3条回答

我建议你去https://github.com/erezsh/lark

对于新来者来说,解析非常好:它可以解析所有上下文无关的语法,它自动构建一个AST(带有行号和列号),并且它接受EBNF格式的语法,这被认为是标准的,并且非常容易编写。

正如Jochen所说,perser模块用于解析Python代码。我想你最好去看看Ned Batchelder's list of parsers。PyParsing做的事情与Lex和Yacc非常不同,所以我不确定为什么您认为可以保留现有的语法和lexer。一个更好的选择可能是David Beazley的PLY工具包。它是坚实的,有优秀的文件。

你是说the parser module?它只是Python源代码的解析器,而不是通用的解析器。你不能用它来解析任何东西。

相关问题 更多 >