public function resolveStorePath($str, File $file)
	{
		$cache  = [];

		$parsed = $this->parseInterpolationString($str);

		foreach ($parsed as $key => $directive_with_filters)
		{
			$directive_key_dirty = reset($directive_with_filters);
			$directive_key = strstr($directive_key_dirty, '#', true) ?: $directive_key_dirty;

			if ( ! isset($cache[$directive_key]))
			{
				$cache[$directive_key] = $this->handleDirective($directive_key, $file);
			}

			$result = $this->handleSubdirectives($directive_with_filters,
				$cache[$directive_key]);

			$str = str_replace($key, $result, $str);
		}

		return new InterpolatorResult($cache, $str);
	}