1
0
forked from VimPlug/jedi

Start implementing an algorithm for actually evaluating the parser tree.

This commit is contained in:
Dave Halter
2014-10-10 11:29:03 +02:00
parent 66840a742c
commit 3bf1fec568
4 changed files with 27 additions and 9 deletions

View File

@@ -130,7 +130,7 @@ class Evaluator(object):
if isinstance(stmt, FakeStatement):
return expression_list # Already contains the results.
result = self.eval_expression_list(expression_list)
result = self.eval_element(stmt.children[0])
ass_details = stmt.assignment_details
if ass_details and ass_details[0][1] != '=' and not isinstance(stmt, er.InstanceElement): # TODO don't check for this.
@@ -161,6 +161,14 @@ class Evaluator(object):
result = new_result
return result
def eval_element(self, element):
if isinstance(element, pr.Name):
stmt = element.get_parent_until(pr.ExprStmt)
return self.find_types(stmt.parent, element, stmt.start_pos,
search_global=True)
else:
raise NotImplementedError
def eval_expression_list(self, expression_list):
"""
`expression_list` can be either `pr.Array` or `list of list`.