Slide 17
Slide 17 text
enum Token: Equatable {
case string(String)
case number(Int)
case lparen
case rparen
case custom(CustomType)
static func == (lhs: Token, rhs: Token) -> Bool {
switch (lhs, rhs) {
case (.string(let lhsString), .string(let rhsString)):
return lhsString == rhsString
case (.number(let lhsNumber), .number(let rhsNumber)):
return lhsNumber == rhsNumber
case (.custom(let lhsCustom), .custom(let rhsCustom)):
return lhsCustom == rhsCustom
case (.lparen, .lparen), (.rparen, .rparen):
return true
default:
return false
}
}
}