     }
 
     func findBlock(_ start: String.Index, startSign: String, endSign: Character, needFormat: Bool) throws -> (string: String, index: String.Index) {
-        var index = characters.index(after: start)
+        var index = self.index(after: start)
         var result = startSign
         while index < endIndex {
             let next = self[index]

            if checker(self[index]) {
                break
            }
            index = characters.index(after: index)
        }
        return index
    }

                if result.isEmpty {
                    return nil
                }
            }
        }
        return nil
    }

    func findGeneric(_ start: String.Index) throws -> (string: String, index: String.Index)? {
        var index = self.index(after: start)
        var count = 1
        var result = "<"
        while index < endIndex {
