Changeset 61ce214 for tests/manipulatorsOutput3.cfa
- Timestamp:
- Jul 13, 2020, 6:04:33 PM (3 years ago)
- Branches:
- arm-eh, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- a588f2a, cf5af9c
- Parents:
- ccb776b
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
tests/manipulatorsOutput3.cfa
rccb776b r61ce214 2 2 3 3 int main() { 4 // int128 printing 4 5 int128 x = 0xffff, y = 0x2; 6 5 7 x <<= 64; 6 8 x += 0xffff; … … 15 17 sout | nl; 16 18 19 int128 divisor = 0x4b3b4ca85a86c47a; 20 divisor <<= 16; 21 divisor += 0x98a224000000000; 22 23 // base 2 24 sout | "base 2"; 17 25 sout | bin(x); 18 26 sout | upcase(bin(x)); … … 23 31 sout | nl; 24 32 33 sout | bin(divisor); 34 sout | upcase(bin(divisor)); 35 sout | wd(38, upcase(bin(divisor))); 36 sout | wd(40, upcase(bin(divisor))); 37 sout | wd(40, 38, upcase(bin(divisor))); 38 sout | wd(40, 30, upcase(bin(divisor))); 39 sout | pad0(sign(wd(40, 38, upcase(bin(divisor))))); 40 sout | nl; 41 42 // oct 43 sout | "base 8"; 25 44 printf( "%#.10o\n", 0123 ); 26 45 sout | wd( 1,10, oct(0123) ); … … 60 79 sout | nl; 61 80 62 sout | hex(x);63 sout | upcase(hex(x));64 sout | nobase(hex(x));65 sout | wd( 45, upcase(hex(x)) );66 sout | wd( 45,40, upcase(hex(x)) );67 sout | wd( 45,49, upcase(hex(x)) );68 sout | left(wd( 45, upcase(hex(x)) )) | 'X';69 sout | left(wd( 45,40, upcase(hex(x)) )) | 'X';70 sout | left(wd( 45,49, upcase(hex(x)) )) | 'X';71 72 sout | nl;73 74 int128 divisor = 0x4b3b4ca85a86c47a;75 divisor <<= 16;76 divisor += 0x98a224000000000;77 78 // base 279 sout | "base 2";80 sout | bin(divisor);81 sout | upcase(bin(divisor));82 sout | wd(38, upcase(bin(divisor)));83 sout | wd(40, upcase(bin(divisor)));84 sout | wd(40, 38, upcase(bin(divisor)));85 sout | wd(40, 30, upcase(bin(divisor)));86 sout | pad0(sign(wd(40, 38, upcase(bin(divisor)))));87 sout | nl;88 89 // oct90 sout | "base 8";91 81 sout | upcase(oct(divisor)); 92 82 sout | wd(38, upcase(oct(divisor))); … … 117 107 // hex 118 108 sout | "base 16"; 109 110 sout | hex(x); 111 sout | upcase(hex(x)); 112 sout | nobase(hex(x)); 113 sout | wd( 45, upcase(hex(x)) ); 114 sout | wd( 45,40, upcase(hex(x)) ); 115 sout | wd( 45,49, upcase(hex(x)) ); 116 sout | left(wd( 45, upcase(hex(x)) )) | 'X'; 117 sout | left(wd( 45,40, upcase(hex(x)) )) | 'X'; 118 sout | left(wd( 45,49, upcase(hex(x)) )) | 'X'; 119 sout | nl; 120 119 121 sout | upcase(hex(divisor)); 120 122 sout | wd(38, upcase(hex(divisor))); … … 124 126 sout | pad0(sign(wd(40, 38, upcase(hex(divisor))))); 125 127 sout | nl; 126 127 128 128 129 // extras … … 146 147 int128 i128; 147 148 unsigned int128 ui128; 149 i128 = -1000; 150 for ( 10 ) { 151 sout | left( sign( wd( 2, i128 ) ) ) | left( wd( 2, hex( i128 ) ) ) | left( wd( 2, oct( i128 ) ) ); 152 sout | left( wd( 2, bin( i128 ) ) ); 153 i128 += 1; 154 } 155 sout | nl; 156 sout | nl; 157 158 ui128 = 0x7fffffffffffffff; 159 ui128 <<= 64; 160 ui128 += 0xffffffffffffffff; 161 sout | left( wd( 160, i128 ) ); 162 sout | left( sign( wd( 0, i128 ) ) ); 163 sout | left( wd( 0, hex( i128 ) ) ); 164 sout | left( wd( 0, oct( i128 ) ) ); 165 sout | left( wd( 0, bin( i128 ) ) ); 166 sout | left( sign( wd( 1, i128 ) ) ); 167 sout | left( wd( 1, hex( i128 ) ) ); 168 sout | left( wd( 1, oct( i128 ) ) ); 169 sout | left( wd( 1, bin( i128 ) ) ); 170 sout | left( sign( wd( 32, i128 ) ) ); 171 sout | left( wd( 32, hex( i128 ) ) ); 172 sout | left( wd( 32, oct( i128 ) ) ); 173 sout | left( wd( 32, bin( i128 ) ) ); 174 sout | left( sign( wd( 160, i128 ) ) ); 175 sout | left( wd( 160, hex( i128 ) ) ); 176 sout | left( wd( 160, oct( i128 ) ) ); 177 sout | left( wd( 160, bin( i128 ) ) ); 178 sout | left( sign( wd( 160, i128 ) ) ); 179 sout | left( wd( 160, upcase(hex( i128 )) ) ); 180 sout | left( wd( 160, upcase(oct( i128 ) )) ); 181 sout | left( wd( 160, upcase(bin( i128 )) ) ); 182 183 x = 1234; 184 x <<= 64; 185 x += 5678; 186 sout | x | 'X'; 187 sout | wd(45, 20, oct(x)) | 'X'; 188 sout | left(wd(45, 20, oct(x))) | 'X'; 189 sout | wd(45, 21, oct(x)) | 'X'; 190 sout | left(wd(45, 21, oct(x))) | 'X'; 191 sout | wd(45, 22, oct(x)) | 'X'; 192 sout | left(wd(45, 22, oct(x))) | 'X'; 193 sout | wd(45, 36, oct(x)) | 'X'; 194 sout | left(wd(45, 36, oct(x))) | 'X'; 195 sout | wd(45, 46, oct(x)) | 'X'; 196 sout | left(wd(45, 46, oct(x))) | 'X'; 197 sout | left(wd(45, 20, oct(x))) | 'X'; 198 sout | left(wd(45, 22, oct(x))) | 'X'; 199 sout | left(wd(45, 24, oct(x))) | 'X'; 200 sout | left(wd(45, 26, oct(x))) | 'X'; 201 sout | left(wd(45, 28, oct(x))) | 'X'; 202 203 y = -x; 204 sout | oct(y) | 'Y'; 205 sout | left(wd(0, oct(y))) | 'Y'; 206 sout | left(wd(20, oct(y))) | 'Y'; 207 sout | left(wd(26, oct(y))) | 'Y'; 208 sout | left(wd(40, oct(y))) | 'Y'; 209 sout | left(wd(41, oct(y))) | 'Y'; 210 sout | left(wd(45, oct(y))) | 'Y'; 211 sout | left(wd(45, 49, oct(y))) | 'Y'; 212 sout | left(wd(45, 4, oct(y))) | 'Y'; 213 sout | left(wd( 45, oct(0123) )) | 'X'; 214 sout | left(wd( 45, oct(x) )) | 'X'; 215 sout | left(wd( 45,40, oct(0123) )) | 'X'; 216 sout | left(wd( 45,40, oct(x) )) | 'X'; 217 sout | left(wd( 40,45, oct(0123) )) | 'X'; 218 sout | left(wd( 40,45, oct(x) )) | 'X'; 219 sout | left(wd( 40,10, oct(0123) )) | 'X'; 220 sout | left(wd( 40,10, oct(x) )) | 'X'; 221 sout | left(wd( 40,10, oct(y) )) | 'X'; 222 sout | left(wd( 10,40, oct(0123) )) | 'X'; 223 sout | left(wd( 10,40, oct(x) )) | 'X'; 224 sout | left(wd( 10,40, oct(y) )) | 'X'; 225 226 x = 0xffff, y = 0x2; 227 int128 z = 0x_ffff_ffff_ffff_ffff; 228 x <<= 64; 229 x += 0xffff; 230 y <<= 64; 231 y += 0123; 232 y |= 0x8000000000000000; 233 234 for ( int128 i = 0; i < 8; i += 1 ) { 235 sout | nobase(oct(z + 0x8000000000000000 * i)); 236 } // for 237 238 sout | bin(x); 239 sout | upcase(bin(x)); 240 sout | nobase(bin(x)); 241 242 sout | wd( 95, upcase(bin(x)) ); 243 sout | wd( 95,90, upcase(bin(x)) ); 244 sout | wd( 90,95, upcase(bin(x)) ); 245 246 sout | left(bin(x)); 247 sout | left(upcase(bin(x))); 248 sout | left(nobase(bin(x))); 249 250 sout | left(wd( 95, upcase(bin(x)) )); 251 sout | left(wd( 95,90, upcase(bin(x)) )); 252 sout | left(wd( 95,81, upcase(bin(x)) )); 253 254 sout | left(wd( 95,80, upcase(bin(x)) )); 255 sout | left(wd( 95,79, upcase(bin(x)) )); 256 sout | left(wd( 95,90, upcase(bin(0xffff)) )); 257 258 sout | left(wd( 68,64, upcase(bin(0xffff)) )); 259 sout | left(wd( 90,95, upcase(bin(x)) )); 260 261 printf( "%#30.25X\n", 0xffff ); 262 sout | wd( 30,25, upcase(hex(0xffff)) ); 263 printf( "%#25.30X\n", 0xffff ); 264 sout | wd( 25,30, upcase(hex(0xffff)) ); 265 266 sout | oct(y); 267 sout | wd( 45, oct(y) ); 268 sout | left(wd( 45, oct(y) )) | 'X'; 269 270 sout | left(wd( 40,10, oct(0123) )) | 'X'; 271 sout | left(wd( 40,10, oct(x) )) | 'X'; 272 sout | left(wd( 40,10, oct(y) )) | 'X'; 273 sout | left(wd( 10,40, oct(0123) )) | 'X'; 274 sout | left(wd( 10,40, oct(x) )) | 'X'; 275 sout | left(wd( 10,40, oct(y) )) | 'X'; 148 276 149 277 i128 = -10; 150 278 for ( 25 ) { 151 sout | left( sign( wd( 20, i128 ) ) ) | left( wd( 20, hex( i128 ) ) ) | left( wd( 20, oct( i128 ) ) ); 152 sout | left( wd( 20, bin( i128 ) ) ); 153 i128 += 1; 154 } 155 sout | nl; 279 sout | left( sign( wd( 20, i128 ) ) ) | left( wd( 20, hex( i128 ) ) ) | left( wd( 20, oct( i128 ) ) ); 280 sout | left( wd( 20, bin( i128 ) ) ); 281 i128 += 1; 282 } // for 283 sout | nl; 284 156 285 i128 = 0x7fffffffffffffff; 157 286 i128 <<= 64; 158 287 i128 += 0xfffffffffffffffa; 159 288 160 // 161 volatile int stop = 20; 289 // for ( 20 ) { 290 volatile int stop = 20; // gcc compiler bug 162 291 for ( int i = 0; i < stop; i += 1 ) { 163 sout | i128;164 sout | left( sign( wd( 45, i128 ) ) ) | left( wd( 45, hex( i128 ) ) ) | left( wd( 45, oct( i128 ) ) );165 sout | left( wd( 45, bin( i128 ) ) );166 i128 += 1;167 } 292 sout | i128; 293 sout | left( sign( wd( 45, i128 ) ) ) | left( wd( 45, hex( i128 ) ) ) | left( wd( 45, oct( i128 ) ) ); 294 sout | left( wd( 45, bin( i128 ) ) ); 295 i128 += 1; 296 } // for 168 297 sout | nl; 169 298 … … 186 315 ui128 += 1; 187 316 } 188 } 317 318 319 // int128 constants (and printing) 320 int128 v = 0xffff_ffffffff_ffffffff_L128 + 0xffffffff_ffffffff_ffffffff_ffffffff_L128; 321 sout | hex(v); 322 v = 0xffff_ffffffff_ffffffff_L128 + 0xffffffff_ffffffff_ffffffff_ffffffff_L128; 323 sout | hex(v); 324 sout | nl; 325 326 sout | "binary"; 327 sout | bin(v); 328 sout | bin(0b_11111111111111111111111111111111_L128); 329 sout | bin(0b_11111111111111111111111111111111_11111111111111111111111111111111_L128); 330 sout | bin(0b_11111111111111111111111111111111_11111111111111111111111111111111_11111111111111111111111111111111_L128); 331 sout | bin(0b_11111111111111111111111111111111_11111111111111111111111111111111_11111111111111111111111111111111_11111111111111111111111111111111_L128); 332 sout | hex(0b_10100010001101000101011001111000_L128); 333 sout | hex(0b_10100010001101000101011001111000_10100111011001010100001100100001_L128); 334 sout | hex(0b_10100010001101000101011001111000_10100111011001010100001100100001_11000010001101000101011001111000_L128); 335 sout | hex(0b_10100010001101000101011001111000_10100111011001010100001100100001_11000010001101000101011001111000_11010111010101010100001100100001_L128); 336 sout | nl; 337 338 sout | "octal"; 339 sout | oct(v); 340 sout | oct(0_123456_L128u); 341 sout | oct(0_123456_65432_uL128); 342 sout | oct(0_123456_65432_34567_L128); 343 sout | oct(0_123456_65432_34567_76543_L128); 344 sout | oct(0_123456_65432_34567_76543_23456_L128); 345 sout | oct(0_123456_65432_34567_76543_23456_65432_L128); 346 sout | oct(0_123456_65432_34567_76543_23456_65432_34567_L128); 347 sout | oct(0_123456_65432_34567_76543_23456_65432_34567_76543_L128); 348 sout | oct(0_1111111111111111111L); 349 sout | oct(0_11111111111111111111L); 350 sout | oct(0_111111111111111111111L); 351 sout | nl; 352 353 sout | "decimal"; 354 sout | v; 355 sout | 42_798_L128 | oct(42_798_L128); 356 sout | 1_402_432_282_L128 | oct(1_402_432_282_L128); 357 sout | 45_954_901_031_287_L128 | oct(45_954_901_031_287_L128); 358 sout | 1_505_850_196_993_244_515_L128 | oct(1_505_850_196_993_244_515_L128); 359 sout | 394_749_758_663_249_135_511_342_L128 | oct(394_749_758_663_249_135_511_342_L128); 360 sout | 12_935_154_696_204_706_112_391_834_394_L128 | oct(12_935_154_696_204_706_112_391_834_394_L128); 361 sout | 423_859_149_128_410_414_395_372_834_994_551_L128 | oct(423_859_149_128_410_414_395_372_834_994_551_L128); 362 sout | 13_889_016_598_639_747_063_234_935_497_057_631_587_L128 | oct(13_889_016_598_639_747_063_234_935_497_057_631_587_L128); 363 sout | 1234567890123456789_uL128; 364 sout | 1234567890123456789_L128u; 365 sout | 0x_7fffffff_ffffffff_ffffffff_ffffffff_L128; 366 sout | 0x_ffffffff_ffffffff_ffffffff_ffffffff_L128; 367 sout | 0x_80000000_00000000_00000000_00000000_L128; 368 unsigned int128 vv; 369 vv = 340282366920938463463374607431768211455_L128u; 370 sout | vv; 371 vv = 170141183460469231731687303715884105727_L128; 372 sout | vv; 373 sout | nl; 374 375 sout | "hexadecimal"; 376 sout | hex(v); 377 sout | hex(0x_ffffffff_L128); 378 sout | hex(0x_ffffffff_ffffffff_L128); 379 sout | hex(0x_ffffffff_ffffffff_ffffffff_L128); 380 sout | hex(0xffffffff_ffffffff_ffffffff_ffffffff_L128); 381 sout | hex(0x_a2345678_L128); 382 sout | hex(0x_a2345678_b7654321_L128); 383 sout | hex(0x_a2345678_b7654321_c2345678_L128); 384 sout | hex(0x_a2345678_b7654321_c2345678_d7654321_L128); 385 sout | nl; 386 } // main 189 387 190 388 // Local Variables: // 191 389 // tab-width: 4 // 192 // compile-command: "cfa -Wall -Wextra amanipulatorsOutput3.cfa" //390 // compile-command: "cfa -Wall -Wextra manipulatorsOutput3.cfa" // 193 391 // End: //
Note: See TracChangeset
for help on using the changeset viewer.