         var s = String()
         while let c = scalarGenerator.next() {
             switch c {
-            case "0", "1", "2", "3", "4", "5", "6", "7":
+            case "0"..."7":
                 s.append(String(c))
             default:
                 scalarPushback = c

        var s = String()
        while let c = scalarGenerator.next() {
            switch c {
            case "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
                 "a", "A", "b", "B", "c", "C", "d", "D", "e", "E", "f", "F":
                s.append(String(c))
            default:
                scalarPushback = c


/// Parse the rest of an [extension_field_name] in the input, assuming the
/// initial "[" character has already been read (and is in the prefix)
/// This is also used in Any for the typeURL, so we include "/", "."
private func parseExtensionIdentifier(prefix: String, scalarGenerator: inout String.UnicodeScalarView.Generator) -> String? {
    var result = prefix
    if let c = scalarGenerator.next() {
