in Sources/Markdown/Parser/CommonMarkConverter.swift [101:126]
init(source: URL?, iterator: UnsafeMutablePointer<cmark_iter>?, event: cmark_event_type, node: UnsafeMutablePointer<cmark_node>?, options: ParseOptions, headerSeen: Bool, pendingTableBody: PendingTableBody?) {
self.source = source
self.iterator = iterator
self.event = event
self.node = node
self.options = options
self.headerSeen = headerSeen
self.pendingTableBody = pendingTableBody
switch (event, nodeType) {
case (CMARK_EVENT_EXIT, .tableHead):
self.headerSeen = true
case (CMARK_EVENT_ENTER, .tableRow) where headerSeen:
if self.pendingTableBody == nil {
self.pendingTableBody = PendingTableBody(range: self.range(self.node))
precondition(self.pendingTableBody != nil)
}
case (CMARK_EVENT_EXIT, .table):
if let endOfTable = self.range(self.node)?.upperBound,
let pendingTableRange = self.pendingTableBody?.range {
self.pendingTableBody?.range = pendingTableRange.lowerBound..<endOfTable
}
default:
break
}
}