code: function add(node, parent) {
        var children = parent ? parent.children : tokens
        var prev = children[children.length - 1]
        var fn
  
        if (
          prev &&
          node.type === prev.type &&
          (node.type === 'text' || node.type === 'blockquote') &&
          mergeable(prev) &&
          mergeable(node)
        ) {
          fn = node.type === 'text' ? mergeText : mergeBlockquote
          node = fn.call(self, prev, node)
        }
  
        if (node !== prev) {
          children.push(node)
        }
  
        if (self.atStart && tokens.length !== 0) {
          self.exitStart()
        }
  
        return node
      }
docs: Add `node` to `parent`s children or to `tokens`.  Performs merges where possible.