code: def parse_xrefs(self, token):
          
          out, end = [], 0
          token = token.replace("\\n", "\n")
          for m in re.finditer(self.xref_registry, token, re.VERBOSE | re.DOTALL):
              if m.start(0) > end:
                  out.append(String(token[end:m.start(0)], self.current_obj))
              end = m.end(0)
              if m.group("type"):
                  xref_type = {"+": ValueXRef,
                               "!": VariableXRef,
                               "@": ElementXRef}[m.group("type")]
                  out.append(xref_type(m.group("xref"), self.current_obj))
              elif m.group("uri") is not None:
                  path = m.group("uri")
                  out.append(MetaURI(path, self.current_obj))
              elif m.group("repeat") is not None:
                  repeat, separator, nodups = m.group("repeat", "separator", "nodups")
                  if separator is None:
                      separator = ""
                  if nodups is None:
                      nodups = ""
                  out.append(MetaRepeat(self.parse_xrefs(repeat), separator, nodups, self.current_obj))
              elif m.group("block") is not None:
                  path = m.group("block")
                  out.append(MetaBlock(path, self.current_obj))
              elif m.group("choices") is not None:
                  choices = m.group("choices")
                  out.append(MetaChoice(choices, self.current_obj))
              else:
                  startval, endval = m.group("start", "end")
                  out.append(MetaRange(startval, endval, self.current_obj))
          if end < len(token):
              out.append(String(token[end:], self.current_obj))
          return out
docs: Search token for +value+ and !variable! style references. Be careful to not xref a new variable.