Skip to content

parso - Python 全版本解析器

repo licenserepo versionrepo downloadsrepo formatrepo statusrepo python versionrepo implementation

1. 项目简介

Parso 是一个 Python 解析器,支持错误恢复和不同 Python 版本。Parso 还能够列出你的 Python 文件中的多个语法错误。

Parso 由很少的 API 组成,用来解析 Python 的分析语法树并查找尽可能多的错误。

智能语法工具 jedi 就是由 Parso 构建的。

安装非常简单:

bash
pip install parso

2. 示例

解析语法树:

python
>>> import parso
>>> module = parso.parse('hello + 1', version="3.9")
>>> expr = module.children[0]
>>> expr
PythonNode(arith_expr, [<Name: hello@1,0>, <Operator: +>, <Number: 1>])
>>> print(expr.get_code())
hello + 1
>>> name = expr.children[0]
>>> name
<Name: hello@1,0>
>>> name.end_pos
(1, 5)
>>> expr.end_pos
(1, 9)

解析错误:

python
>>> grammar = parso.load_grammar()
>>> module = grammar.parse('foo +\nbar\ncontinue')
>>> error1, error2 = grammar.iter_errors(module)
>>> error1.message
'SyntaxError: invalid syntax'
>>> error2.message
"SyntaxError: 'continue' not properly in loop"