code: def make_elements(tokens, text, start=0, end=None, fallback=None):
      
      result = []
      end = end or len(text)
      prev_end = start
      for token in tokens:
          if prev_end < token.start:
              result.append(fallback(text[prev_end:token.start]))
          result.append(token.as_element())
          prev_end = token.end
      if prev_end < end:
          result.append(fallback(text[prev_end:end]))
      return result
docs: Make elements from a list of parsed tokens.
      It will turn all unmatched holes into fallback elements.
  
      :param tokens: a list of parsed tokens.
      :param text: the original tet.
      :param start: the offset of where parsing starts. Defaults to the start of text.
      :param end: the offset of where parsing ends. Defauls to the end of text.
      :param fallback: fallback element type.
      :returns: a list of inline elements.