forked from VimPlug/jedi
Start using arrays.
This commit is contained in:
@@ -189,7 +189,7 @@ class Evaluator(object):
|
||||
elif isinstance(atom, pr.Literal):
|
||||
return [compiled.create(self, atom.eval())]
|
||||
else:
|
||||
raise NotImplementedError
|
||||
return iterable.Array(self, atom.children[1])
|
||||
|
||||
def eval_trailer(self, types, trailer):
|
||||
trailer_op, node = trailer.children[:2]
|
||||
|
||||
@@ -124,9 +124,9 @@ class Array(use_metaclass(CachedMetaClass, IterableWrapper)):
|
||||
Used as a mirror to pr.Array, if needed. It defines some getter
|
||||
methods which are important in this module.
|
||||
"""
|
||||
def __init__(self, evaluator, array):
|
||||
def __init__(self, evaluator, array_node):
|
||||
self._evaluator = evaluator
|
||||
self._array = array
|
||||
self._array_node = array_node
|
||||
|
||||
@property
|
||||
def name(self):
|
||||
@@ -216,13 +216,15 @@ class Array(use_metaclass(CachedMetaClass, IterableWrapper)):
|
||||
return getattr(self._array, name)
|
||||
|
||||
def __iter__(self):
|
||||
return iter(self._array)
|
||||
if pr.is_node(self._array_node, 'testlist_comp'):
|
||||
return iter(self._array_node.children[::2])
|
||||
raise NotImplementedError
|
||||
|
||||
def __len__(self):
|
||||
return len(self._array)
|
||||
|
||||
def __repr__(self):
|
||||
return "<e%s of %s>" % (type(self).__name__, self._array)
|
||||
return "<e%s of %s>" % (type(self).__name__, self._array_node)
|
||||
|
||||
|
||||
class MergedArray(Array):
|
||||
|
||||
@@ -194,8 +194,6 @@ class Parser(object):
|
||||
allows using different grammars (even non-Python). However, error
|
||||
recovery is purely written for Python.
|
||||
"""
|
||||
print(self.stack)
|
||||
#import pdb; pdb.set_trace()
|
||||
if value == '\n': # Statement is not finished.
|
||||
# Now remove the whole statement.
|
||||
for i, (dfa, state, node) in reversed(list(enumerate(self.stack))):
|
||||
|
||||
Reference in New Issue
Block a user