[docs]class ExpressionInstances:
def __init__(self):
self.items = []
self.items_by_reference = {}
[docs] def add_expression(self, item):
self.items.append(item)
[docs] def add_expression_in_source_ref(self, ref, expression):
if ref in self.items_by_reference:
self.items_by_reference[ref].append(expression)
else:
self.items_by_reference[ref] = [expression]
[docs] def get_expressions_by_source_ref(self, ref):
return self.items_by_reference[ref]
[docs] def has_source_ref(self, ref):
return ref in self.items_by_reference
[docs] def has_expression_in_source_ref(self, ref, expression):
return expression in self.items_by_reference[ref]
[docs]class SharedExpressions:
instances = ExpressionInstances()