         }
 
         func scanNull() -> Token? {
+
             if scanner.scanString("null", intoString: nil) {
                 return .Null
             }


        func scanString() -> Token? {

            let symbolSet = NSMutableCharacterSet.alphanumericCharacterSet()
            symbolSet.formUnionWithCharacterSet(NSCharacterSet.punctuationCharacterSet())
            symbolSet.formUnionWithCharacterSet(NSCharacterSet.symbolCharacterSet())
            symbolSet.formUnionWithCharacterSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
            symbolSet.removeCharactersInString("\"")

            var string: NSString?

            if scanner.scanString("\"", intoString: nil) &&
                scanner.scanCharactersFromSet(symbolSet, intoString: &string) &&
                scanner.scanString("\"", intoString: nil) {

                    if let string = string as? String {

        indirect case Array(name: Swift.String?, values: [Value])
    }

    lazy var numberScanningSet: NSCharacterSet = {
        let symbolSet = NSMutableCharacterSet.decimalDigitCharacterSet()
        symbolSet.addCharactersInString(".-")
        return symbolSet
    }()

    lazy var stringScanningSet: NSCharacterSet = {
        let symbolSet = NSMutableCharacterSet.alphanumericCharacterSet()
        symbolSet.formUnionWithCharacterSet(NSCharacterSet.punctuationCharacterSet())
        symbolSet.formUnionWithCharacterSet(NSCharacterSet.symbolCharacterSet())
        symbolSet.formUnionWithCharacterSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
        symbolSet.removeCharactersInString("\"")
        return symbolSet
    }()

    private func generateTokens() -> [Token] {

        func scanBeginObject() -> Token? {
