             tokens.append(token)
             tokenLocations.append(TokenLocation(scanner.scanLocation))
         }
-        #if os(Linux)
-        while !scanner.atEnd {
-            let previousScanLocation = scanner.scanLocation
-            scanBeginObject().flatMap({ appendToken($0) })
-            scanEndObject().flatMap({ appendToken($0) })
-            scanBeginArray().flatMap({ appendToken($0) })
-            scanEndArray().flatMap({ appendToken($0) })
-            scanColon().flatMap({ appendToken($0) })
-            scanComma().flatMap({ appendToken($0) })
-            scanBool().flatMap({ appendToken($0) })
-            scanNumber().flatMap({ appendToken($0) })
-            scanString().flatMap({ appendToken($0) })
-            scanNull().flatMap({ appendToken($0) })
-            let currentScanLocation = scanner.scanLocation
-            guard currentScanLocation > previousScanLocation else {
-                print("Not found valid token: \(TokenLocation(currentScanLocation).description(in: scanner))")
-                return ([], [])
-            }
-        }
-        #else
         while !scanner.isAtEnd {
             let previousScanLocation = scanner.scanLocation
             scanBeginObject().flatMap({ appendToken($0) })

    }
}

private extension Array {

    subscript (coolie_safe index: Int) -> Element? {

                return ([], [])
            }
        }
        return (tokens, tokenLocations)
    }

