Simple number literal parsing (#77)
This commit is contained in:
committed by
Kyle Fuller
parent
15facd97fb
commit
2d507e7c11
@@ -60,6 +60,11 @@ public struct Variable : Equatable, Resolvable {
|
||||
return variable[variable.characters.index(after: variable.startIndex) ..< variable.characters.index(before: variable.endIndex)]
|
||||
}
|
||||
|
||||
if let number = Float80(variable) {
|
||||
// Number literal
|
||||
return number
|
||||
}
|
||||
|
||||
for bit in lookup() {
|
||||
current = normalize(current)
|
||||
|
||||
|
||||
@@ -45,6 +45,18 @@ func testVariable() {
|
||||
try expect(result) == "name"
|
||||
}
|
||||
|
||||
$0.it("can resolve an integer literal") {
|
||||
let variable = Variable("5")
|
||||
let result = try variable.resolve(context) as? Float80
|
||||
try expect(result) == 5
|
||||
}
|
||||
|
||||
$0.it("can resolve an float literal") {
|
||||
let variable = Variable("3.14")
|
||||
let result = try variable.resolve(context) as? Float80
|
||||
try expect(result) == 3.14
|
||||
}
|
||||
|
||||
$0.it("can resolve a string variable") {
|
||||
let variable = Variable("name")
|
||||
let result = try variable.resolve(context) as? String
|
||||
|
||||
Reference in New Issue
Block a user