summaryrefslogtreecommitdiff
path: root/src/main.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.zig')
-rw-r--r--src/main.zig33
1 files changed, 21 insertions, 12 deletions
diff --git a/src/main.zig b/src/main.zig
index 0f1aab5..c521c4f 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -11,14 +11,16 @@ const std = @import("std");
11// const strWidth = @import("display_width").strWidth; 11// const strWidth = @import("display_width").strWidth;
12 12
13// const CodePointIterator = @import("ziglyph").CodePointIterator; 13// const CodePointIterator = @import("ziglyph").CodePointIterator;
14// const CodePointIterator = @import("code_point").Iterator; 14const CodePointIterator = @import("code_point").Iterator;
15 15
16// const ascii = @import("ascii"); 16// const ascii = @import("ascii");
17// const ascii = std.ascii; 17// const ascii = std.ascii;
18 18
19// const Normalizer = @import("ziglyph").Normalizer; 19// const Normalizer = @import("ziglyph").Normalizer;
20const NormData = @import("Normalizer").NormData; 20// const NormData = @import("Normalizer").NormData;
21const Normalizer = @import("Normalizer"); 21// const Normalizer = @import("Normalizer");
22
23const GenCatData = @import("GenCatData");
22 24
23pub fn main() !void { 25pub fn main() !void {
24 var args_iter = std.process.args(); 26 var args_iter = std.process.args();
@@ -32,16 +34,19 @@ pub fn main() !void {
32 const input = try std.fs.cwd().readFileAlloc(allocator, in_path, std.math.maxInt(u32)); 34 const input = try std.fs.cwd().readFileAlloc(allocator, in_path, std.math.maxInt(u32));
33 defer allocator.free(input); 35 defer allocator.free(input);
34 36
35 var data = try NormData.init(allocator); 37 // var data = try NormData.init(allocator);
36 defer data.deinit(); 38 // defer data.deinit();
37 var n = Normalizer{ .norm_data = &data }; 39 // var n = Normalizer{ .norm_data = &data };
38 // var n = try Normalizer.init(allocator); 40 // var n = try Normalizer.init(allocator);
39 // defer n.deinit(); 41 // defer n.deinit();
40 42
43 var gencat_data = try GenCatData.init(allocator);
44 defer gencat_data.deinit();
45
41 // var iter = GraphemeIterator.init(input, &data); 46 // var iter = GraphemeIterator.init(input, &data);
42 // defer iter.deinit(); 47 // defer iter.deinit();
43 // var iter = CodePointIterator{ .bytes = input }; 48 var iter = CodePointIterator{ .bytes = input };
44 var iter = std.mem.splitScalar(u8, input, '\n'); 49 // var iter = std.mem.splitScalar(u8, input, '\n');
45 50
46 var result: usize = 0; 51 var result: usize = 0;
47 // var result: isize = 0; 52 // var result: isize = 0;
@@ -50,10 +55,14 @@ pub fn main() !void {
50 // while (iter.next()) |cp| result += codePointWidth(@intCast(cp.code)); 55 // while (iter.next()) |cp| result += codePointWidth(@intCast(cp.code));
51 // while (iter.next()) |_| result += 1; 56 // while (iter.next()) |_| result += 1;
52 // while (iter.next()) |line| result += strWidth(line, &data); 57 // while (iter.next()) |line| result += strWidth(line, &data);
53 while (iter.next()) |line| { 58 // while (iter.next()) |line| {
54 const nfc = try n.nfc(allocator, line); 59 // const nfc = try n.nfc(allocator, line);
55 result += nfc.slice.len; 60 // result += nfc.slice.len;
56 // nfc.deinit(); 61 // // nfc.deinit();
62 // }
63 while (iter.next()) |cp| {
64 if (cp.code == 'É') std.debug.print("`{u}` Gc: {s}\n", .{ cp.code, @tagName(gencat_data.gc(cp.code)) });
65 result += 1;
57 } 66 }
58 67
59 std.debug.print("result: {}, took: {}\n", .{ result, timer.lap() / std.time.ns_per_ms }); 68 std.debug.print("result: {}, took: {}\n", .{ result, timer.lap() / std.time.ns_per_ms });