mirror of
https://github.com/davidhalter/jedi.git
synced 2025-12-09 15:24:46 +08:00
fix pushback problem with tokenizer
This commit is contained in:
@@ -85,10 +85,11 @@ class PushBackIterator(object):
|
|||||||
class NoErrorTokenizer(object):
|
class NoErrorTokenizer(object):
|
||||||
def __init__(self, readline, offset=(0, 0), is_fast_parser=False):
|
def __init__(self, readline, offset=(0, 0), is_fast_parser=False):
|
||||||
self.readline = readline
|
self.readline = readline
|
||||||
self.gen = PushBackIterator(tokenize.generate_tokens(readline))
|
self.gen = tokenize.generate_tokens(readline)
|
||||||
self.offset = offset
|
self.offset = offset
|
||||||
self.closed = False
|
self.closed = False
|
||||||
self.is_first = True
|
self.is_first = True
|
||||||
|
self.push_backs = []
|
||||||
|
|
||||||
# fast parser options
|
# fast parser options
|
||||||
self.is_fast_parser = is_fast_parser
|
self.is_fast_parser = is_fast_parser
|
||||||
@@ -100,7 +101,7 @@ class NoErrorTokenizer(object):
|
|||||||
self.first_stmt = True
|
self.first_stmt = True
|
||||||
|
|
||||||
def push_last_back(self):
|
def push_last_back(self):
|
||||||
self.gen.push_back(self.current)
|
self.push_backs.append(self.current)
|
||||||
|
|
||||||
def next(self):
|
def next(self):
|
||||||
""" Python 2 Compatibility """
|
""" Python 2 Compatibility """
|
||||||
@@ -109,6 +110,8 @@ class NoErrorTokenizer(object):
|
|||||||
def __next__(self):
|
def __next__(self):
|
||||||
if self.closed:
|
if self.closed:
|
||||||
raise MultiLevelStopIteration()
|
raise MultiLevelStopIteration()
|
||||||
|
if self.push_backs:
|
||||||
|
return self.push_backs.pop(0)
|
||||||
|
|
||||||
self.last_previous = self.previous
|
self.last_previous = self.previous
|
||||||
self.previous = self.current
|
self.previous = self.current
|
||||||
|
|||||||
Reference in New Issue
Block a user