code: def expand(self, s):
          
          result = s
          while result.find("@{") > -1:
              start = result.index("@{")
              end = result.index("}", start)
              name = result[start + 2:end]
              value = self.storage[name]
              if value is None:
                  raise("Storage value '" + name + "' not present, failed to expand string: " + s)
              else:
                  result = result[0:start] + str(value) + result[end + 1:]
          return result
docs: Expands all occurrences of "@{...}" within the string with the actual values currently stored
          in internal storage.
  
          :param s: the string to expand
          :type s: str
          :return: the expanded string
          :rtype: str