0001    //
0002    //  ParseError.swift
0003    //  JsonSerializer
0004    //
0005    //  Created by Fuji Goro on 2014/09/15.
0006    //  Copyright (c) 2014 Fuji Goro. All rights reserved.
0007    //
0008    
0009    protocol Parser
JsonParser.swift:16
internal final class JsonDeserializer: Parser {
ParseError.swift:16
    let parser: Parser
ParseError.swift:29
    init(_ reason: String, _ parser: Parser) {
{ 0010 var lineNumber
ParseError.swift:19
        return parser.lineNumber
: Int { get } 0011 var columnNumber
ParseError.swift:22
        return parser.columnNumber
: Int { get } 0012 } 0013 0014 public class ParseError
ParseError.swift:35
public class UnexpectedTokenError: ParseError { }
ParseError.swift:37
public class InsufficientTokenError: ParseError { }
ParseError.swift:39
public class ExtraTokenError: ParseError { }
ParseError.swift:41
public class NonStringKeyError: ParseError { }
ParseError.swift:43
public class InvalidStringError: ParseError { }
ParseError.swift:45
public class InvalidNumberError: ParseError { }
: ErrorType, CustomStringConvertible { 0015 public let reason
ParseError.swift:26
        return "\(Mirror(reflecting: self))[\(lineNumber):\(columnNumber)]: \(reason)"
ParseError.swift:30
        self.reason = reason
: String 0016 let parser
ParseError.swift:19
        return parser.lineNumber
ParseError.swift:22
        return parser.columnNumber
ParseError.swift:31
        self.parser = parser
: Parser 0017 0018 public var lineNumber
ParseError.swift:26
        return "\(Mirror(reflecting: self))[\(lineNumber):\(columnNumber)]: \(reason)"
: Int { 0019 return parser.lineNumber 0020 } 0021 public var columnNumber
ParseError.swift:26
        return "\(Mirror(reflecting: self))[\(lineNumber):\(columnNumber)]: \(reason)"
: Int { 0022 return parser.columnNumber 0023 } 0024 0025 public var description: String { 0026 return "\(Mirror(reflecting: self))[\(lineNumber):\(columnNumber)]: \(reason)" 0027 } 0028 0029 init(_ reason: String, _ parser: Parser) { 0030 self.reason = reason 0031 self.parser = parser 0032 } 0033 } 0034 0035 public class UnexpectedTokenError
JsonParser.swift:95
            throw UnexpectedTokenError("unexpected token: \(c)", self)
JsonParser.swift:101
            throw UnexpectedTokenError("expected \"\(target)\" but \(currentSymbol)", self)
JsonParser.swift:258
                throw UnexpectedTokenError("missing colon (:)", self)
JsonParser.swift:272
                throw UnexpectedTokenError("missing comma (,)", self)
JsonParser.swift:297
                throw UnexpectedTokenError("missing comma (,) (token: \(currentSymbol))", self)
: ParseError { } 0036 0037 public class InsufficientTokenError
JsonParser.swift:76
            throw InsufficientTokenError("unexpected end of tokens", self)
: ParseError { } 0038 0039 public class ExtraTokenError
JsonParser.swift:67
            throw ExtraTokenError("extra tokens found", self)
: ParseError { } 0040 0041 public class NonStringKeyError
JsonParser.swift:253
                throw NonStringKeyError("unexpected value for object key", self)
: ParseError { } 0042 0043 public class InvalidStringError
JsonParser.swift:119
                    throw InvalidStringError("unexpected end of a string literal", self)
JsonParser.swift:123
                    throw InvalidStringError("invalid escape sequence", self)
JsonParser.swift:137
            throw InvalidStringError("missing double quote", self)
JsonParser.swift:143
            throw InvalidStringError("Unable to parse CString", self)
: ParseError { } 0044 0045 public class InvalidNumberError
JsonParser.swift:188
            throw InvalidNumberError("invalid token in number", self)
JsonParser.swift:205
                throw InvalidNumberError("insufficient fraction part in number", self)
JsonParser.swift:228
                throw InvalidNumberError("insufficient exponent part in number", self)
: ParseError { }