Mercurial > repos > rhope
comparison kernel.rhope @ 101:f4fc0a98088a
Fixed some bugs that were preventing compiled compiler from working correctly. Need to address memory usage
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Mon, 09 Aug 2010 23:53:20 -0400 |
parents | f51c4c17457c |
children | 8aedae4f4ddd |
comparison
equal
deleted
inserted
replaced
100:f51c4c17457c | 101:f4fc0a98088a |
---|---|
53 { | 53 { |
54 write[filedes(Int32,Naked),buf(Array,Raw Pointer),nbyte(Int64,Naked):written(Int32,Naked)] | 54 write[filedes(Int32,Naked),buf(Array,Raw Pointer),nbyte(Int64,Naked):written(Int32,Naked)] |
55 read[filedes(Int32,Naked),buf(Array,Raw Pointer,Mutable),nbyte(Int64,Naked):read(Int64,Naked),buf] | 55 read[filedes(Int32,Naked),buf(Array,Raw Pointer,Mutable),nbyte(Int64,Naked):read(Int64,Naked),buf] |
56 } | 56 } |
57 | 57 |
58 _String 32[n,buf:out] | 58 Trunc UInt8@UInt8[in:out] |
59 { | 59 { |
60 If[[n] < [10u32]] | 60 out <- in |
61 } | |
62 | |
63 __String Int[n,buf,ten:out] | |
64 { | |
65 If[[n] < [ten]] | |
61 { | 66 { |
62 byte <- [[n]Trunc UInt8] + [48u8] | 67 byte <- [[n]Trunc UInt8] + [48u8] |
63 out <- [buf]Append[byte] | 68 out <- [buf]Append[byte] |
64 }{ | 69 }{ |
65 next <- [n]/[10u32] | 70 next <- [n]/[ten] |
66 | 71 |
67 byte <- [[[n]-[[next]*[10u32]]]Trunc UInt8] + [48u8] | 72 byte <- [[[n]-[[next]*[ten]]]Trunc UInt8] + [48u8] |
68 out <- [_String 32[next, buf]]Append[byte] | 73 out <- [__String Int[next, buf, ten]]Append[byte] |
69 } | 74 } |
70 } | 75 } |
71 | 76 |
72 _String Int32[n:out] | 77 _String Int[n,zero,ten:out] |
73 { | 78 { |
74 If[[n] < [0i32]] | 79 If[[n] < [zero]] |
75 { | 80 { |
76 buf <- [Array[]]Append[45u8] | 81 buf <- [Array[]]Append[45u8] |
77 }{ | 82 }{ |
78 buf <- Array[] | 83 buf <- Array[] |
79 } | 84 } |
80 val <- Abs UInt[n] | 85 val <- Abs UInt[n] |
81 out <- _String 32[val, buf] | 86 out <- __String Int[val, buf, ten] |
87 } | |
88 | |
89 String@Int64[n:out] | |
90 { | |
91 out <- String[_String Int[n, 0i64, 10u64]] | |
92 } | |
93 | |
94 String@UInt64[n:out] | |
95 { | |
96 out <- String[__String Int[n, Array[], 10u64]] | |
82 } | 97 } |
83 | 98 |
84 String@Int32[n:out] | 99 String@Int32[n:out] |
85 { | 100 { |
86 out <- String[_String Int32[n]] | 101 out <- String[_String Int[n, 0i32, 10u32]] |
102 } | |
103 | |
104 String@UInt32[n:out] | |
105 { | |
106 out <- String[__String Int[n, Array[], 10u32]] | |
107 } | |
108 | |
109 String@Int16[n:out] | |
110 { | |
111 out <- String[_String Int[n, 0i16, 10u16]] | |
112 } | |
113 | |
114 String@UInt16[n:out] | |
115 { | |
116 out <- String[__String Int[n, Array[], 10u16]] | |
117 } | |
118 | |
119 String@Int8[n:out] | |
120 { | |
121 out <- String[_String Int[n, 0i8, 10u8]] | |
122 } | |
123 | |
124 String@UInt8[n:out] | |
125 { | |
126 out <- String[__String Int[n, Array[], 10u8]] | |
87 } | 127 } |
88 | 128 |
89 Print@Int32[n:out] | 129 Print@Int32[n:out] |
90 { | 130 { |
91 fbuf <- [_String Int32[n]]Append[10u8] | 131 fbuf <- [_String Int[n, 0i32, 10u32]]Append[10u8] |
92 out <- write[1i32, fbuf, Int64[[fbuf]Length >>]] | 132 out <- write[1i32, fbuf, Int64[[fbuf]Length >>]] |
93 } | 133 } |
94 | 134 |
95 String@UInt32[n:out] | |
96 { | |
97 out <- String[_String 32[n, Array[]]] | |
98 } | |
99 | |
100 Print@UInt32[n:out] | 135 Print@UInt32[n:out] |
101 { | 136 { |
102 fbuf <- [_String 32[n, Array[]]]Append[10u8] | 137 fbuf <- [__String Int[n, Array[], 10u32]]Append[10u8] |
103 out <- write[1i32, fbuf, Int64[[fbuf]Length >>]] | 138 out <- write[1i32, fbuf, Int64[[fbuf]Length >>]] |
104 } | 139 } |
105 | 140 |
106 Blueprint Int16 | 141 Blueprint Int16 |
107 { | 142 { |