Small refactoring

This commit is contained in:
Dave Halter
2019-07-25 14:15:26 +02:00
parent a803d687e2
commit 57fd995727

View File

@@ -149,28 +149,28 @@ def eval_node(context, element):
return eval_or_test(context, element)
def eval_trailer(context, base_contexts, trailer):
def eval_trailer(context, atom_contexts, trailer):
trailer_op, node = trailer.children[:2]
if node == ')': # `arglist` is optional.
node = None
if trailer_op == '[':
trailer_op, node, _ = trailer.children
return base_contexts.get_item(
return atom_contexts.get_item(
eval_subscript_list(context.evaluator, context, node),
ContextualizedNode(context, trailer)
)
else:
debug.dbg('eval_trailer: %s in %s', trailer, base_contexts)
debug.dbg('eval_trailer: %s in %s', trailer, atom_contexts)
if trailer_op == '.':
return base_contexts.py__getattribute__(
return atom_contexts.py__getattribute__(
name_context=context,
name_or_str=node
)
else:
assert trailer_op == '(', 'trailer_op is actually %s' % trailer_op
args = arguments.TreeArguments(context.evaluator, context, node, trailer)
return base_contexts.execute(args)
return atom_contexts.execute(args)
def eval_atom(context, atom):