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
|
const std = @import("std");
pub fn main() u8 {
// const y: [3]u64 = .{ 1, 2, 3 };
// const x: struct { u8, u64, u8 } = y;
// @import("std").debug.print("{}\n", .{x[0] + x[1] + x[2]});
std.debug.print("{}\n", .{@sizeOf(struct { u64, ?u8 })});
return while (true) if (true) break 1;
}
// const x: ?u8 = 5;
// if (x == null) {
// return 1;
// } else |val| {
// return val;
// }
// var list = std.ArrayList(u8).init(std.heap.smp_allocator);
// try parseUniHex("1f4a9", &list);
// std.debug.print("{s}\n", .{list.items});
// fn parseUniHex(
// str: []const u8,
// s: *std.ArrayList(u8),
// ) !void {
// var uc: u21 = parseHexDigit1(str[0]);
// for (str[1..]) |c| {
// uc = try std.math.shlExact(u21, uc, 4);
// uc |= parseHexDigit1(c);
// }
// std.debug.print("{u}\n", .{uc});
// const n = try std.unicode.utf8CodepointSequenceLength(uc);
// const buf = try s.addManyAsSlice(n);
// _ = try std.unicode.utf8Encode(uc, buf);
// }
// fn parseHexByte1(h1: u8, h2: u8) u8 {
// const hi = parseHexDigit1(h1);
// const lo = parseHexDigit1(h2);
// return hi << 4 | lo;
// }
// fn parseHexDigit1(c: u8) u8 {
// return switch (c) {
// '0'...'9' => c - '0',
// 'A'...'F' => c - 'A' + 10,
// 'a'...'f' => c - 'a' + 10,
// else => @panic(""),
// };
// }
// fn parseHexByte2(h1: u8, h2: u8) u8 {
// const hi: u8 = parseHexDigit2(h1);
// const lo = parseHexDigit2(h2);
// return hi << 4 | lo;
// }
// fn parseHexDigit2(c: u8) u4 {
// return @intCast(switch (c) {
// '0'...'9' => c - '0',
// 'A'...'F' => c - 'A' + 10,
// 'a'...'f' => c - 'a' + 10,
// else => @panic(""),
// });
// }
// fn parseUniHex1(str: []const u8) !u21 {
// var uc: u21 = parseHexDigit1(str[0]);
// for (str[1..]) |c| {
// uc = try std.math.shlExact(u21, uc, 4);
// uc |= parseHexDigit1(c);
// }
// return uc;
// }
// fn parseUniHex2(str: []const u8) !u21 {
// var uc: u21 = parseHexDigit2(str[0]);
// for (str[1..]) |c| {
// uc = try std.math.shlExact(u21, uc, 4);
// uc |= parseHexDigit2(c);
// }
// return uc;
// }
|