Skip to content

Commit

Permalink
Move deprecations to a single file
Browse files Browse the repository at this point in the history
This de-clutters the actual public API
  • Loading branch information
davedelong committed Apr 19, 2019
1 parent 39e1fbe commit a716edd
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 42 deletions.
54 changes: 54 additions & 0 deletions MathParser/Deprecations.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
//
// Deprecations.swift
// MathParser
//
// Created by Dave DeLong on 4/18/19.
//

import Foundation

public extension Tokenizer {
@available(*, deprecated, renamed: "init(string:configuration:)")
init(string: String, operatorSet: OperatorSet = OperatorSet.default, locale: Locale? = nil) {
var c = Configuration.default
c.operatorSet = operatorSet
c.locale = locale
self.init(string: string, configuration: c)
}
}

@available(*, deprecated, message: "Use Configuration instead.")
public struct TokenResolverOptions: OptionSet {
public let rawValue: UInt

public init(rawValue: UInt) {
self.rawValue = rawValue
}

public static let none = TokenResolverOptions(rawValue: 0)
public static let allowArgumentlessFunctions = TokenResolverOptions(rawValue: 1 << 0)
public static let allowImplicitMultiplication = TokenResolverOptions(rawValue: 1 << 1)
public static let useHighPrecedenceImplicitMultiplication = TokenResolverOptions(rawValue: 1 << 2)

public static let `default`: TokenResolverOptions = [.allowArgumentlessFunctions, .allowImplicitMultiplication, .useHighPrecedenceImplicitMultiplication]
}

public extension TokenResolver {
@available(*, deprecated, renamed: "init(tokenizer:)")
init(tokenizer: Tokenizer, options: TokenResolverOptions = TokenResolverOptions.default) {
self.init(tokenizer: tokenizer)
}
}

public extension Expression {
@available(*, deprecated, renamed: "init(string:configuration:)")
convenience init(string: String, operatorSet: OperatorSet = OperatorSet.default, options: TokenResolverOptions = TokenResolverOptions.default, locale: Locale? = nil) throws {
var c = Configuration()
c.operatorSet = operatorSet
c.allowArgumentlessFunctions = options.contains(.allowArgumentlessFunctions)
c.allowImplicitMultiplication = options.contains(.allowImplicitMultiplication)
c.useHighPrecedenceImplicitMultiplication = options.contains(.useHighPrecedenceImplicitMultiplication)
c.locale = locale
try self.init(string: string, configuration: c)
}
}
11 changes: 0 additions & 11 deletions MathParser/Expression.swift
Original file line number Diff line number Diff line change
Expand Up @@ -42,17 +42,6 @@ public final class Expression {
public let kind: Kind
public let range: Range<Int>

@available(*, deprecated, renamed: "init(string:configuration:)")
public convenience init(string: String, operatorSet: OperatorSet = OperatorSet.default, options: TokenResolverOptions = TokenResolverOptions.default, locale: Locale? = nil) throws {
var c = Configuration()
c.operatorSet = operatorSet
c.allowArgumentlessFunctions = options.contains(.allowArgumentlessFunctions)
c.allowImplicitMultiplication = options.contains(.allowImplicitMultiplication)
c.useHighPrecedenceImplicitMultiplication = options.contains(.useHighPrecedenceImplicitMultiplication)
c.locale = locale
try self.init(string: string, configuration: c)
}

public init(string: String, configuration: Configuration = .default) throws {
let tokenizer = Tokenizer(string: string, configuration: configuration)
let resolver = TokenResolver(tokenizer: tokenizer)
Expand Down
23 changes: 0 additions & 23 deletions MathParser/TokenResolver.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,24 +8,6 @@

import Foundation

@available(*, deprecated, message: "TokenResolverOptions has been deprecated. Use Configuration instead")
public struct TokenResolverOptions: OptionSet {
public let rawValue: UInt

public init(rawValue: UInt) {
self.rawValue = rawValue
}

public static let none = TokenResolverOptions(rawValue: 0)
public static let allowArgumentlessFunctions = TokenResolverOptions(rawValue: 1 << 0)
public static let allowImplicitMultiplication = TokenResolverOptions(rawValue: 1 << 1)
public static let useHighPrecedenceImplicitMultiplication = TokenResolverOptions(rawValue: 1 << 2)

public static let `default`: TokenResolverOptions = [.allowArgumentlessFunctions, .allowImplicitMultiplication, .useHighPrecedenceImplicitMultiplication]
}



public struct TokenResolver {

private let tokenizer: Tokenizer
Expand All @@ -43,11 +25,6 @@ public struct TokenResolver {
return [decimal]
}

@available(*, deprecated, renamed: "init(tokenizer:)")
public init(tokenizer: Tokenizer, options: TokenResolverOptions = TokenResolverOptions.default) {
self.init(tokenizer: tokenizer)
}

public init(tokenizer: Tokenizer) {
self.tokenizer = tokenizer
let locale = tokenizer.configuration.locale
Expand Down
8 changes: 0 additions & 8 deletions MathParser/Tokenizer.swift
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,6 @@ public struct Tokenizer {
private let buffer: TokenCharacterBuffer
private let extractors: Array<TokenExtractor>

@available(*, deprecated, renamed: "init(string:configuration:)")
public init(string: String, operatorSet: OperatorSet = OperatorSet.default, locale: Locale? = nil) {
var c = Configuration.default
c.operatorSet = operatorSet
c.locale = locale
self.init(string: string, configuration: c)
}

public init(string: String, configuration: Configuration = .default) {
self.string = string
self.configuration = configuration
Expand Down

0 comments on commit a716edd

Please sign in to comment.