forked from VimPlug/jedi
Some python 2.7 (and 3.3) compatibility improvements.
This commit is contained in:
+10
-7
@@ -98,7 +98,6 @@ class Parser(object):
|
||||
def __init__(self, grammar, source, start_symbol='file_input',
|
||||
tokenizer=None, start_parsing=True):
|
||||
# Todo Remove start_parsing (with False)
|
||||
start_number = grammar.symbol2number[start_symbol]
|
||||
|
||||
self._used_names = {}
|
||||
self._scope_names_stack = [{}]
|
||||
@@ -114,11 +113,6 @@ class Parser(object):
|
||||
source += '\n'
|
||||
self._added_newline = True
|
||||
|
||||
self.pgen_parser = PgenParser(
|
||||
grammar, self.convert_node, self.convert_leaf,
|
||||
self.error_recovery, start_number
|
||||
)
|
||||
|
||||
self._start_symbol = start_symbol
|
||||
self._grammar = grammar
|
||||
|
||||
@@ -133,7 +127,16 @@ class Parser(object):
|
||||
if self._parsed is not None:
|
||||
return self._parsed
|
||||
|
||||
self._parsed = self.pgen_parser.parse(tokenizer)
|
||||
start_number = self._grammar.symbol2number[self._start_symbol]
|
||||
pgen_parser = PgenParser(
|
||||
self._grammar, self.convert_node, self.convert_leaf,
|
||||
self.error_recovery, start_number
|
||||
)
|
||||
|
||||
try:
|
||||
self._parsed = pgen_parser.parse(tokenizer)
|
||||
finally:
|
||||
self.stack = pgen_parser.stack
|
||||
|
||||
if self._start_symbol == 'file_input' != self._parsed.type:
|
||||
# If there's only one statement, we get back a non-module. That's
|
||||
|
||||
@@ -57,7 +57,7 @@ break_stmt: 'break'
|
||||
continue_stmt: 'continue'
|
||||
return_stmt: 'return' [testlist]
|
||||
yield_stmt: yield_expr
|
||||
raise_stmt: 'raise' [test ['from' test | ',' test [',' test]]]
|
||||
raise_stmt: 'raise' [test [',' test [',' test]]]
|
||||
import_stmt: import_name | import_from
|
||||
import_name: 'import' dotted_as_names
|
||||
# note below: the ('.' | '...') is necessary because '...' is tokenized as ELLIPSIS
|
||||
@@ -68,7 +68,7 @@ dotted_as_name: dotted_name ['as' NAME]
|
||||
import_as_names: import_as_name (',' import_as_name)* [',']
|
||||
dotted_as_names: dotted_as_name (',' dotted_as_name)*
|
||||
dotted_name: NAME ('.' NAME)*
|
||||
global_stmt: ('global' | 'nonlocal') NAME (',' NAME)*
|
||||
global_stmt: 'global' NAME (',' NAME)*
|
||||
exec_stmt: 'exec' expr ['in' test [',' test]]
|
||||
assert_stmt: 'assert' test [',' test]
|
||||
|
||||
|
||||
@@ -6,10 +6,7 @@ import json
|
||||
import hashlib
|
||||
import gc
|
||||
import shutil
|
||||
try:
|
||||
import cPickle as pickle
|
||||
except ImportError:
|
||||
import pickle
|
||||
import pickle
|
||||
|
||||
from jedi import settings
|
||||
from jedi import debug
|
||||
|
||||
Reference in New Issue
Block a user