         return (buffer, buffer.hasPrefix(tag))
     }
     
-    // MARK: String Token
-    
-    private mutating func stringToken(_ first: UnicodeScalar) throws -> TypographizerToken {
+    // MARK: Unchanged Token
+    
+    private mutating func unchangedToken(_ first: UnicodeScalar) throws -> TypographizerToken {
         var tokenText = String(first)
         self.previousScalar = first
         

        case unchanged = "unchanged"
        // It’s one of the trigger characters but didn’t need changing:
        case ignored = "ignored"
        // Was skipped because it was either a tag, or protected text between tags.
        case skipped = "skipped"
    }
    

    
    // MARK: Tag Token
    
    private mutating func htmlToken() throws -> TypographizerToken {
        var tokenText = "<"
        var tagName = ""
        loop: while let ch = nextScalar() {
