1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
|
//
// A bare-bones Swift standard library
//
precedencegroup AssignmentPrecedence { assignment: true }
public enum Optional<Wrapped> {
case none
case some(Wrapped)
}
public typealias IntegerLiteralType = Int
public typealias _MaxBuiltinIntegerType = Builtin.IntLiteral
public typealias _MaxBuiltinFloatType = Builtin.FPIEEE80
public protocol _ExpressibleByBuiltinIntegerLiteral {
init(_builtinIntegerLiteral value: _MaxBuiltinIntegerType)
}
public protocol _ExpressibleByBuiltinFloatLiteral {
init(_builtinFloatLiteral value: _MaxBuiltinFloatType)
}
public protocol ExpressibleByIntegerLiteral {
associatedtype IntegerLiteralType : _ExpressibleByBuiltinIntegerLiteral
init(integerLiteral value: IntegerLiteralType)
}
public protocol ExpressibleByFloatLiteral {
associatedtype FloatLiteralType : _ExpressibleByBuiltinFloatLiteral
init(floatLiteral value: FloatLiteralType)
}
public struct Int : _ExpressibleByBuiltinIntegerLiteral, ExpressibleByIntegerLiteral {
var value: Builtin.Word
public init() {
self = 0
}
public init(_builtinIntegerLiteral value: _MaxBuiltinIntegerType) {
let builtinValue = Builtin.s_to_s_checked_trunc_IntLiteral_Word(value).0
self.value = builtinValue
}
public init(integerLiteral value: IntegerLiteralType) {
self = value
}
}
public struct Int32 : _ExpressibleByBuiltinIntegerLiteral, ExpressibleByIntegerLiteral {
var value: Builtin.Int32
public init() {
self.init(integerLiteral: 0)
}
public init(_builtinIntegerLiteral value: _MaxBuiltinIntegerType) {
let builtinValue = Builtin.s_to_s_checked_trunc_IntLiteral_Int32(value).0
self.value = builtinValue
}
public init(integerLiteral value: IntegerLiteralType) {
let builtinValue = Builtin.truncOrBitCast_Word_Int32(value.value)
self.value = builtinValue
}
}
public struct Int8 : _ExpressibleByBuiltinIntegerLiteral, ExpressibleByIntegerLiteral {
var value: Builtin.Int8
public init() {
self.init(integerLiteral: 0)
}
public init(_builtinIntegerLiteral value: _MaxBuiltinIntegerType) {
let builtinValue = Builtin.s_to_s_checked_trunc_IntLiteral_Int8(value).0
self.value = builtinValue
}
public init(integerLiteral value: IntegerLiteralType) {
let builtinValue = Builtin.truncOrBitCast_Word_Int8(value.value)
self.value = builtinValue
}
}
public struct UnsafeMutablePointer<T> {
var value: Builtin.RawPointer
public init() {
self.value = Builtin.inttoptr_Word(0.value)
}
}
public typealias CInt = Int32
public typealias CChar = Int8
@_silgen_name("putchar")
public func putchar(_: CChar)
public func printHello() {
putchar(0x48)
putchar(0x65)
putchar(0x6c)
putchar(0x6c)
putchar(0x6f)
putchar(0x0a)
}
//public var C_ARGC: CInt = CInt()
//public var C_ARGV: UnsafeMutablePointer<UnsafeMutablePointer<Int8>> = UnsafeMutablePointer()
|