youcompleteme php,YouCompleteMe

parso - A Python Parser

parso.svg?branch=master

badge.svg?branch=master

52f834d8630341bc276876b06ad469ec.png

Parso is a Python parser that supports error recovery and round-trip parsing

for different Python versions (in multiple Python versions). Parso is also able

to list multiple syntax errors in your python file.

Parso has been battle-tested by jedi. It was pulled out of jedi to be useful

for other projects as well.

Parso consists of a small API to parse Python and analyse the syntax tree.

A simple example:

>>> import parso

>>> module = parso.parse('hello + 1', version="3.6")

>>> expr = module.children[0]

>>> expr

PythonNode(arith_expr, [, , ])

>>> print(expr.get_code())

hello + 1

>>> name = expr.children[0]

>>> name

>>> name.end_pos

(1, 5)

>>> expr.end_pos

(1, 9)

To list multiple issues:

>>> 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"

Resources

Installation

pip install parso

Future

There will be better support for refactoring and comments. Stay tuned.

There's a WIP PEP8 validator. It's however not in a good shape, yet.

Known Issues

async/await are already used as keywords in Python3.6.

from __future__ import print_function is not ignored.

Acknowledgements

Guido van Rossum (@gvanrossum) for creating the parser generator pgen2

(originally used in lib2to3).

Salome Schneider

for the extremely awesome parso logo.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值