Files
swift-mirror/stdlib/core/InputStream.swift
2013-06-28 02:31:01 +00:00

44 lines
854 B
Swift

//===----------------------------------------------------------------------===//
// InputStream
//===----------------------------------------------------------------------===//
// XXX FIXME -- replace and flush this out with parsing logic
class Keyboard : Object {
func read(buf : UInt8[]) -> Int {
var r = posix_read(0, buf.base.value, buf.length)
alwaysTrap(r >= 0)
return r
}
func read() -> Int {
var c = new UInt8[1]
if read(c) != 1 {
return -1
}
return Int(c[0])
}
}
extension Keyboard {
func getline() -> String {
return getline('\n')
}
func getline(delim : Char) -> String {
var r : String
var i = read()
while i != -1 {
var c = Char(i)
if c == delim {
break
}
r = r + c
i = read()
}
return r
}
}
var kbd : Keyboard = Keyboard()