Python解析器模块教程

Python解析器模块教程,python,parsing,Python,Parsing,我正在编写一个应用程序,它读取一个输入文件,该文件目前有自己的语法,由lex/yacc处理 我希望修改它,使这个输入文件成为Python脚本,并且想知道是否有人能给我提供一个在Python中使用解析器模块的初学者指南。我对Python本身相当陌生,但已经完成了相当多的在线教程 根据我的研究,我知道有一些选项(比如pyparsing)可以让我保留现有语法,并使用pyparsing替代lex/yacc。然而,我很想更详细地学习Python解析器模块并探索其可行性 谢谢。你是说?它只是Python源代

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

我希望修改它,使这个输入文件成为Python脚本,并且想知道是否有人能给我提供一个在Python中使用解析器模块的初学者指南。我对Python本身相当陌生,但已经完成了相当多的在线教程

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


谢谢。

你是说?它只是Python源代码的解析器,不是通用解析器。您不能使用它来解析任何其他内容。

正如Jochen所说,解析器模块用于解析Python代码。我想你最好离开。PyParsing做的事情与Lex和Yacc非常不同,所以我不确定为什么您认为可以保留现有的语法和lexer。一个更好的选择可能是大卫·比兹利的工具包。它是可靠的,并且有很好的文档。

我建议您检查一下


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

是的,这就是我指的。我正在考虑将应用程序的输入文件设置为python文件。因此语法将是python语言,这个解析器模块将解析它。我只是想知道是否有一个更友好的教程。你可能会发现内置的ast模块在这种情况下更容易使用。谢谢你的回复。你能推荐一个关于在Python中使用AST模块的入门教程吗?我试着在网上搜索,但没有看到任何具体的东西。我想摆脱lex/yacc的方式。我刚刚看到你对ast模块的推荐,并将尝试找到一个关于它的友好教程。谢谢