 
 import Foundation
 
-private struct QuoteCommentItem {
+private struct NestableItem {
     
     let type: SyntaxType
     let token: Token

    private func extractCommentsWithNestablePaires() -> [SyntaxType: [NSRange]] {
        
        let string = self.string as NSString
        var positions = [QuoteCommentItem]()
        
        if let delimiters = self.definition.blockCommentDelimiters {
            positions += string.ranges(of: delimiters.begin, range: self.parseRange)
                .map { QuoteCommentItem(type: .comments, token: .blockComment, role: .begin, range: $0) }
            positions += string.ranges(of: delimiters.end, range: self.parseRange)
                .map { QuoteCommentItem(type: .comments, token: .blockComment, role: .end, range: $0) }
        }
        
        if let delimiter = self.definition.inlineCommentDelimiter {
            positions += string.ranges(of: delimiter, range: self.parseRange)
                .flatMap { range -> [QuoteCommentItem] in
                    var lineEnd = 0
                    string.getLineStart(nil, end: &lineEnd, contentsEnd: nil, for: range)
                    let endRange = NSRange(location: lineEnd, length: 0)
                    
                    return [QuoteCommentItem(type: .comments, token: .inlineComment, role: .begin, range: range),
                            QuoteCommentItem(type: .comments, token: .inlineComment, role: .end, range: endRange)]
                }
        }
        
        for (quote, type) in self.definition.nestablePaires {
            positions += string.ranges(of: quote, range: self.parseRange)
                .map { QuoteCommentItem(type: type, token: .string(quote), role: [.begin, .end], range: $0) }
        }
        
        // remove escaped ones

        // scan quoted strings and comments in the parse range
        var highlights = [SyntaxType: [NSRange]]()
        var seekLocation = self.parseRange.location
        var searchingItem: NestableItem?
        
        for position in positions {
            // search next begin delimiter
