forked from VimPlug/jedi
Allow both the old tokenizer and the new one (able to toggle).
This commit is contained in:
@@ -123,9 +123,15 @@ class Parser(object):
|
|||||||
self.scope_names_stack = [{}]
|
self.scope_names_stack = [{}]
|
||||||
self.error_statement_stacks = []
|
self.error_statement_stacks = []
|
||||||
logger = logging.getLogger("Jedi-Parser")
|
logger = logging.getLogger("Jedi-Parser")
|
||||||
|
if False:
|
||||||
d = pgen2.Driver(grammar, self.convert_node,
|
d = pgen2.Driver(grammar, self.convert_node,
|
||||||
self.convert_leaf, self.error_recovery, logger=logger)
|
self.convert_leaf, self.error_recovery, logger=logger)
|
||||||
self.module = d.parse_string(source).get_parent_until()
|
self.module = d.parse_string(source).get_parent_until()
|
||||||
|
else:
|
||||||
|
p = pgen2.parse.Parser(grammar, self.convert_node, self.convert_leaf,
|
||||||
|
self.error_recovery)
|
||||||
|
tokenizer = tokenizer or tokenize.source_tokens(source)
|
||||||
|
self.module = p.parse(self._tokenize(tokenizer))
|
||||||
|
|
||||||
self.module.used_names = self.used_names
|
self.module.used_names = self.used_names
|
||||||
self.module.path = module_path
|
self.module.path = module_path
|
||||||
@@ -240,6 +246,14 @@ class Parser(object):
|
|||||||
|
|
||||||
stack[start_index:] = []
|
stack[start_index:] = []
|
||||||
|
|
||||||
|
def _tokenize(self, tokenizer):
|
||||||
|
for token in tokenizer:
|
||||||
|
typ = token.type
|
||||||
|
value = token.value
|
||||||
|
if typ == tokenize.OP:
|
||||||
|
typ = pgen2.grammar.opmap[value]
|
||||||
|
yield typ, value, token.prefix, token.start_pos
|
||||||
|
|
||||||
|
|
||||||
def __init__old__(self, source, module_path=None, no_docstr=False,
|
def __init__old__(self, source, module_path=None, no_docstr=False,
|
||||||
tokenizer=None, top_module=None):
|
tokenizer=None, top_module=None):
|
||||||
|
|||||||
Reference in New Issue
Block a user