    public func getSourceName() -> String {
        if let sourceName = sourceName {
            return sourceName
        }

        if let inputStream = getInputStream() {
            return inputStream.getSourceName()
        }

        return "List"
    }

    public func setTokenFactory(_ factory: TokenFactory) {
        self._factory = factory