refactor: Deal with Number instead of Float80
This commit is contained in:
@@ -202,7 +202,7 @@ class NumericExpression: Expression, InfixOperator, CustomStringConvertible {
|
|||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
func compare(lhs: Float80, rhs: Float80) -> Bool {
|
func compare(lhs: Number, rhs: Number) -> Bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -213,7 +213,7 @@ class MoreThanExpression: NumericExpression {
|
|||||||
return ">"
|
return ">"
|
||||||
}
|
}
|
||||||
|
|
||||||
override func compare(lhs: Float80, rhs: Float80) -> Bool {
|
override func compare(lhs: Number, rhs: Number) -> Bool {
|
||||||
return lhs > rhs
|
return lhs > rhs
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -224,7 +224,7 @@ class MoreThanEqualExpression: NumericExpression {
|
|||||||
return ">="
|
return ">="
|
||||||
}
|
}
|
||||||
|
|
||||||
override func compare(lhs: Float80, rhs: Float80) -> Bool {
|
override func compare(lhs: Number, rhs: Number) -> Bool {
|
||||||
return lhs >= rhs
|
return lhs >= rhs
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -235,7 +235,7 @@ class LessThanExpression: NumericExpression {
|
|||||||
return "<"
|
return "<"
|
||||||
}
|
}
|
||||||
|
|
||||||
override func compare(lhs: Float80, rhs: Float80) -> Bool {
|
override func compare(lhs: Number, rhs: Number) -> Bool {
|
||||||
return lhs < rhs
|
return lhs < rhs
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -246,7 +246,7 @@ class LessThanEqualExpression: NumericExpression {
|
|||||||
return "<="
|
return "<="
|
||||||
}
|
}
|
||||||
|
|
||||||
override func compare(lhs: Float80, rhs: Float80) -> Bool {
|
override func compare(lhs: Number, rhs: Number) -> Bool {
|
||||||
return lhs <= rhs
|
return lhs <= rhs
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -263,37 +263,37 @@ class InequalityExpression: EqualityExpression {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
func toNumber(value: Any) -> Float80? {
|
func toNumber(value: Any) -> Number? {
|
||||||
if let value = value as? Float {
|
if let value = value as? Float {
|
||||||
return Float80(value)
|
return Number(value)
|
||||||
} else if let value = value as? Double {
|
} else if let value = value as? Double {
|
||||||
return Float80(value)
|
return Number(value)
|
||||||
} else if let value = value as? UInt {
|
} else if let value = value as? UInt {
|
||||||
return Float80(value)
|
return Number(value)
|
||||||
} else if let value = value as? Int {
|
} else if let value = value as? Int {
|
||||||
return Float80(value)
|
return Number(value)
|
||||||
} else if let value = value as? Int8 {
|
} else if let value = value as? Int8 {
|
||||||
return Float80(value)
|
return Number(value)
|
||||||
} else if let value = value as? Int16 {
|
} else if let value = value as? Int16 {
|
||||||
return Float80(value)
|
return Number(value)
|
||||||
} else if let value = value as? Int32 {
|
} else if let value = value as? Int32 {
|
||||||
return Float80(value)
|
return Number(value)
|
||||||
} else if let value = value as? Int64 {
|
} else if let value = value as? Int64 {
|
||||||
return Float80(value)
|
return Number(value)
|
||||||
} else if let value = value as? UInt8 {
|
} else if let value = value as? UInt8 {
|
||||||
return Float80(value)
|
return Number(value)
|
||||||
} else if let value = value as? UInt16 {
|
} else if let value = value as? UInt16 {
|
||||||
return Float80(value)
|
return Number(value)
|
||||||
} else if let value = value as? UInt32 {
|
} else if let value = value as? UInt32 {
|
||||||
return Float80(value)
|
return Number(value)
|
||||||
} else if let value = value as? UInt64 {
|
} else if let value = value as? UInt64 {
|
||||||
return Float80(value)
|
return Number(value)
|
||||||
} else if let value = value as? Float80 {
|
} else if let value = value as? Number {
|
||||||
return value
|
return value
|
||||||
} else if let value = value as? Float64 {
|
} else if let value = value as? Float64 {
|
||||||
return Float80(value)
|
return Number(value)
|
||||||
} else if let value = value as? Float32 {
|
} else if let value = value as? Float32 {
|
||||||
return Float80(value)
|
return Number(value)
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
|
|
||||||
|
typealias Number = Float80
|
||||||
|
|
||||||
|
|
||||||
class FilterExpression : Resolvable {
|
class FilterExpression : Resolvable {
|
||||||
let filters: [(FilterType, [Variable])]
|
let filters: [(FilterType, [Variable])]
|
||||||
let variable: Variable
|
let variable: Variable
|
||||||
@@ -60,7 +63,7 @@ public struct Variable : Equatable, Resolvable {
|
|||||||
return variable[variable.characters.index(after: variable.startIndex) ..< variable.characters.index(before: variable.endIndex)]
|
return variable[variable.characters.index(after: variable.startIndex) ..< variable.characters.index(before: variable.endIndex)]
|
||||||
}
|
}
|
||||||
|
|
||||||
if let number = Float80(variable) {
|
if let number = Number(variable) {
|
||||||
// Number literal
|
// Number literal
|
||||||
return number
|
return number
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user