Skip to content

Commit

Permalink
Merge branch 'master' into swift5
Browse files Browse the repository at this point in the history
  • Loading branch information
davedelong committed Apr 18, 2019
2 parents 3315166 + 0f9d190 commit f46c728
Show file tree
Hide file tree
Showing 10 changed files with 87 additions and 57 deletions.
103 changes: 66 additions & 37 deletions DDMathParser.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objectVersion = 51;
objects = {

/* Begin PBXBuildFile section */
Expand Down Expand Up @@ -502,34 +502,33 @@
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 0910;
LastUpgradeCheck = 0900;
LastUpgradeCheck = 1000;
TargetAttributes = {
55113C031FC35AC7001E508D = {
CreatedOnToolsVersion = 9.1;
DevelopmentTeam = 654LUM7646;
ProvisioningStyle = Automatic;
};
559B3EF81B74063600000108 = {
CreatedOnToolsVersion = 7.0;
DevelopmentTeam = 654LUM7646;
LastSwiftMigration = 0800;
LastSwiftMigration = 1000;
ProvisioningStyle = Automatic;
};
559B3F011B74063600000108 = {
CreatedOnToolsVersion = 7.0;
LastSwiftMigration = 0800;
LastSwiftMigration = 1000;
};
};
};
buildConfigurationList = 1DEB927808733DD40010E9CD /* Build configuration list for PBXProject "DDMathParser" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
compatibilityVersion = "Xcode 10.0";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (
English,
Japanese,
French,
German,
Base,
fr,
de,
ja,
en,
);
mainGroup = 08FB7794FE84155DC02AAC07 /* DDMathParser */;
projectDirPath = "";
Expand Down Expand Up @@ -690,12 +689,14 @@
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
Expand Down Expand Up @@ -728,8 +729,9 @@
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator watchsimulator watchos macosx appletvsimulator appletvos";
SWIFT_VERSION = 4.0;
VALID_ARCHS = "i386 x86_64 armv6 armv7 armv7s arm64";
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
WATCHOS_DEPLOYMENT_TARGET = 2.0;
};
Expand All @@ -745,12 +747,14 @@
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
Expand Down Expand Up @@ -781,8 +785,8 @@
MACOSX_DEPLOYMENT_TARGET = 10.9;
SDKROOT = macosx;
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator watchsimulator watchos macosx appletvsimulator appletvos";
SWIFT_VERSION = 4.0;
VALID_ARCHS = "i386 x86_64 armv6 armv7 armv7s arm64";
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
WATCHOS_DEPLOYMENT_TARGET = 2.0;
};
Expand Down Expand Up @@ -814,14 +818,14 @@
"$(inherited)",
);
INFOPLIST_FILE = Demo/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 10.13;
MTL_ENABLE_DEBUG_INFO = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.davedelong.MathParser.Demo;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 4.0;
};
name = Debug;
};
Expand All @@ -846,13 +850,14 @@
DEVELOPMENT_TEAM = 654LUM7646;
GCC_C_LANGUAGE_STANDARD = gnu11;
INFOPLIST_FILE = Demo/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 10.13;
MTL_ENABLE_DEBUG_INFO = NO;
PRODUCT_BUNDLE_IDENTIFIER = com.davedelong.MathParser.Demo;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
SWIFT_VERSION = 4.0;
};
name = Release;
};
Expand All @@ -862,12 +867,13 @@
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CODE_SIGN_IDENTITY = "Mac Developer";
CODE_SIGN_IDENTITY = "";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = 654LUM7646;
DEVELOPMENT_TEAM = "";
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
GCC_PREPROCESSOR_DEFINITIONS = (
Expand All @@ -876,12 +882,16 @@
);
INFOPLIST_FILE = MathParser/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MTL_ENABLE_DEBUG_INFO = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.davedelong.MathParser;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
TARGETED_DEVICE_FAMILY = "1,2,3,4";
};
name = Debug;
Expand All @@ -892,22 +902,27 @@
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CODE_SIGN_IDENTITY = "Mac Developer";
CODE_SIGN_IDENTITY = "";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = 654LUM7646;
DEVELOPMENT_TEAM = "";
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = MathParser/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MTL_ENABLE_DEBUG_INFO = NO;
PRODUCT_BUNDLE_IDENTIFIER = com.davedelong.MathParser;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
TARGETED_DEVICE_FAMILY = "1,2,3,4";
VALIDATE_PRODUCT = YES;
};
Expand All @@ -927,14 +942,21 @@
);
INFOPLIST_FILE = MathParserTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "$(inherited) @executable_path/Frameworks @loader_path/../Frameworks";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/../Frameworks",
);
MTL_ENABLE_DEBUG_INFO = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.davedelong.MathParserTests;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = "iphonesimulator iphoneos macosx watchos watchsimulator";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
};
name = Debug;
};
Expand All @@ -948,14 +970,21 @@
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
INFOPLIST_FILE = MathParserTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "$(inherited) @executable_path/Frameworks @loader_path/../Frameworks";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/../Frameworks",
);
MTL_ENABLE_DEBUG_INFO = NO;
PRODUCT_BUNDLE_IDENTIFIER = com.davedelong.MathParserTests;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = "iphonesimulator iphoneos macosx watchos watchsimulator";
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
VALIDATE_PRODUCT = YES;
};
name = Release;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0900"
LastUpgradeVersion = "1000"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
Expand Down
2 changes: 1 addition & 1 deletion Demo/AnalyzerViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ class AnalyzerViewController: NSViewController {
weak var analyzerDelegate: AnalyzerDelegate?

init() {
let nibName = NSNib.Name(rawValue: "\(type(of: self))")
let nibName = NSNib.Name("\(type(of: self))")
let bundle = Bundle(for: type(of: self))
super.init(nibName: nibName, bundle: bundle)
}
Expand Down
17 changes: 11 additions & 6 deletions Demo/DemoViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ class DemoViewController: NSViewController, AnalyzerDelegate, NSTextFieldDelegat
@IBOutlet var flowContainer: NSView?

var flowController: AnalyzerFlowViewController?

private var controlChangeObserver: AnyObject?

override func viewDidLoad() {
super.viewDidLoad()
Expand All @@ -23,7 +25,7 @@ class DemoViewController: NSViewController, AnalyzerDelegate, NSTextFieldDelegat

let flow = AnalyzerFlowViewController()
flow.analyzerDelegate = self
addChildViewController(flow)
addChild(flow)

flow.view.frame = container.bounds
flow.view.autoresizingMask = [.width, .height]
Expand All @@ -32,11 +34,14 @@ class DemoViewController: NSViewController, AnalyzerDelegate, NSTextFieldDelegat

flowController = flow
flowController?.analyzeString("")
}

override func controlTextDidChange(_ obj: Notification) {
let text = expressionField?.stringValue ?? ""
flowController?.analyzeString(text)

controlChangeObserver = NotificationCenter.default.addObserver(forName: NSControl.textDidChangeNotification,
object: expressionField,
queue: .main,
using: { [weak self] _ in
let text = self?.expressionField?.stringValue ?? ""
self?.flowController?.analyzeString(text)
})
}

func analyzerViewController(_ analyzer: AnalyzerViewController, wantsHighlightedRanges ranges: Array<Range<Int>>) {
Expand Down
2 changes: 1 addition & 1 deletion MathParser/Expressionizer.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

import Foundation

fileprivate extension GroupedToken {
extension GroupedToken {
fileprivate var groupedOperator: Operator? {
guard case .operator(let o) = self.kind else { return nil }
return o
Expand Down
3 changes: 1 addition & 2 deletions MathParser/Functions+Defaults.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

import Foundation

public extension Function {
extension Function {

// MARK: - Angle mode helpers

Expand Down Expand Up @@ -837,6 +837,5 @@ public extension Function {
return try state.evaluator.evaluate(state.arguments[2], substitutions: state.substitutions)
}
})


}
4 changes: 2 additions & 2 deletions MathParser/Operator+Defaults.swift
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public enum BuiltInOperator: String {
case cubeRoot = "cuberoot"
}

public extension Operator {
extension Operator {

public static let defaultPowerAssociativity: Associativity = {

Expand Down Expand Up @@ -227,5 +227,5 @@ public extension Operator {
self.init(builtInOperator: builtInOperator)
self.precedence = precedence
}

}
2 changes: 1 addition & 1 deletion MathParser/OperatorSet.swift
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ public final class OperatorSet {
private var knownTokens: Set<String>

private func removeOperator(_ op: Operator) {
guard let index = operators.index(of: op) else { return }
guard let index = operators.firstIndex(of: op) else { return }
operators.remove(at: index)
operatorsDidChange()
}
Expand Down
2 changes: 1 addition & 1 deletion MathParser/ResolvedToken.swift
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public struct ResolvedToken {
public let range: Range<Int>
}

public extension ResolvedToken.Kind {
extension ResolvedToken.Kind {

public var number: Double? {
guard case .number(let o) = self else { return nil }
Expand Down
7 changes: 2 additions & 5 deletions MathParser/String.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,8 @@

import Foundation

public extension String {

extension String {
public func evaluate(using evaluator: Evaluator = .default, _ substitutions: Substitutions = [:]) throws -> Double {
let e = try Expression(string: self)
return try evaluator.evaluate(e, substitutions: substitutions)
return try evaluator.evaluate(Expression(string: self), substitutions: substitutions)
}

}

0 comments on commit f46c728

Please sign in to comment.