     var asUInt32: UInt32? {
         switch self {
         case .decimalInteger(let n):
-            if let normalized = normalizeIntString(n), normalized[0] != "-" {
-                let numberString = String(normalized)
-                return UInt32(numberString)
-            }
+            return UInt32(n)
         case .octalInteger(let n):
             return UInt32(n, radix: 8)
         case .hexadecimalInteger(let n):

    // so gets handled when we process the tokens to set an actual
    // field.  When skipping tokens, we need a way to verify that the
    // token was actually valid, hence this hook:
    var isValid: Bool {
        // TODO: Implement this
        return true

    var asUInt64: UInt64? {
        switch self {
        case .decimalInteger(let n):
            return UInt64(n)
        case .octalInteger(let n):
            return UInt64(n, radix: 8)
        case .hexadecimalInteger(let n):
