First but not optimized version of AstFormatDict
This commit is contained in:
@@ -16,7 +16,8 @@ class SheerkaOut(BaseService):
|
||||
self.sheerka.bind_service_method(self.process_return_values, False)
|
||||
|
||||
def create_out_tree(self, context, obj):
|
||||
return self.create_out_tree_recursive(context, {'__obj': obj}, DeveloperVisitor(self, set(), 0))
|
||||
debugger = context.get_debugger("Out.visitor", "create_out_tree")
|
||||
return self.create_out_tree_recursive(context, {'__obj': obj}, DeveloperVisitor(self, debugger, set(), 0))
|
||||
|
||||
def create_out_tree_recursive(self, context, bag, visitor):
|
||||
debugger = context.get_debugger(SheerkaOut.NAME, "create_out_tree")
|
||||
@@ -40,8 +41,7 @@ class SheerkaOut(BaseService):
|
||||
visitor.already_seen.add(rule.id)
|
||||
|
||||
bag.update(as_bag(current_obj)) # update with the current obj attributes
|
||||
visitor.visit(context, rule.compiled_action, bag)
|
||||
res = visitor.get_result()
|
||||
res = visitor.visit(context, rule.compiled_action, bag)
|
||||
|
||||
if res is None:
|
||||
debugger.debug_log(f"No matching rule.")
|
||||
@@ -67,9 +67,7 @@ class SheerkaOut(BaseService):
|
||||
|
||||
if out_tree:
|
||||
for visitor in self.out_visitors:
|
||||
visitor.visit(context, out_tree, None)
|
||||
if hasattr(visitor, "finalize"):
|
||||
visitor.finalize()
|
||||
visitor.visit(out_tree)
|
||||
|
||||
return self.sheerka.ret(self.NAME, True, self.sheerka.new(BuiltinConcepts.SUCCESS))
|
||||
return self.sheerka.ret(self.NAME, False, self.sheerka.new(BuiltinConcepts.NO_RESULT))
|
||||
|
||||
Reference in New Issue
Block a user