Enhanced ExecutionContext to keep track of the execution flow

This commit is contained in:
2020-01-07 15:47:43 +01:00
parent ffd98d7407
commit b4346b5af0
19 changed files with 966 additions and 190 deletions
+8 -7
View File
@@ -94,14 +94,15 @@ class PythonEvaluator(OneReturnValueEvaluator):
continue
context.log(self.verbose_log, f"'{name_resolved}' is a concept. Evaluating.", self.name)
sub_context = context.push(self.name, desc=f"Evaluating '{concept}'", obj=concept)
sub_context.log_new(self.verbose_log)
evaluated = context.sheerka.evaluate_concept(sub_context, concept, self.verbose_log)
with context.push(self.name, desc=f"Evaluating '{concept}'", obj=concept) as sub_context:
sub_context.log_new(self.verbose_log)
evaluated = context.sheerka.evaluate_concept(sub_context, concept, self.verbose_log)
sub_context.add_values(return_values=evaluated)
if evaluated.key == concept.key:
my_locals[name] = evaluated if return_concept else \
evaluated.body if ConceptParts.BODY in evaluated.cached_asts else \
evaluated
if evaluated.key == concept.key:
my_locals[name] = evaluated if return_concept else \
evaluated.body if ConceptParts.BODY in evaluated.cached_asts else \
evaluated
if self.locals:
my_locals.update(self.locals)