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)]
|
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() {
|
for bit in lookup() {
|
||||||
current = normalize(current)
|
current = normalize(current)
|
||||||
|
|
||||||
|
|||||||
@@ -45,6 +45,18 @@ func testVariable() {
|
|||||||
try expect(result) == "name"
|
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") {
|
$0.it("can resolve a string variable") {
|
||||||
let variable = Variable("name")
|
let variable = Variable("name")
|
||||||
let result = try variable.resolve(context) as? String
|
let result = try variable.resolve(context) as? String
|
||||||
|
|||||||
Reference in New Issue
Block a user