2
2
import sys , pyparser .source , pyparser .lexer , pyparser .parser , pyparser .diagnostic
3
3
4
4
def parse (source , filename = '<unknown>' , mode = 'exec' ,
5
- flags = [], version = None , engine = pyparser . diagnostic . Engine () ):
5
+ flags = [], version = None , engine = None ):
6
6
"""
7
7
Parse a string into an abstract syntax tree.
8
8
This is the replacement for the built-in :meth:`..ast.parse`.
@@ -18,14 +18,18 @@ def parse(source, filename='<unknown>', mode='exec',
18
18
Equivalent to ``from __future__ import <flags>``.
19
19
:param version: (2-tuple of int) Major and minor version of Python
20
20
syntax to recognize, ``sys.version_info[0:2]`` by default.
21
- :param engine: :class:`diagnostic.Engine` Diagnostic engine
22
- :return: (:class:`ast.AST`) abstract syntax tree
21
+ :param engine: (:class:`diagnostic.Engine`) Diagnostic engine,
22
+ a fresh one is created by default
23
+ :return: (:class:`ast.AST`) Abstract syntax tree
23
24
:raise: :class:`diagnostic.Error`
24
25
if the source code is not well-formed
25
26
"""
26
27
if version is None :
27
28
version = sys .version_info [0 :2 ]
28
29
30
+ if engine is None :
31
+ engine = pyparser .diagnostic .Engine ()
32
+
29
33
buffer = pyparser .source .Buffer (source , filename )
30
34
31
35
lexer = pyparser .lexer .Lexer (buffer , version , engine )
0 commit comments