code: def _ExpandPath(self, target, vals, paths):
      
      if target not in self._TARGETS:
        return
      expanded = []
      for val in vals:
        # Null entries specify the current directory, so :a::b:c: is equivalent
        # to .:a:.:b:c:.
        shellvar = self._SHELLVAR_RE.match(val)
        if not val:
          expanded.append(".")
        elif shellvar:
          # The value may actually be in braces as well. Always convert to upper
          # case so we deal with stuff like lowercase csh path.
          existing = paths.get(shellvar.group(1).upper())
          if existing:
            expanded.extend(existing)
          else:
            expanded.append(val)
        else:
          expanded.append(val)
      paths[target] = expanded
docs: Extract path information, interpolating current path values as needed.