summaryrefslogtreecommitdiff
path: root/src/main.zig
diff options
context:
space:
mode:
authorGravatar Jose Colon Rodriguez2024-03-01 20:31:52 -0400
committerGravatar Jose Colon Rodriguez2024-03-01 20:31:52 -0400
commit1ecfd06469ed4c2503034796faf4e7dca4196238 (patch)
treefc95244332b24780306228e12cb22ffd27979d5f /src/main.zig
parentChanges when case folded check; 20ms faster (diff)
downloadzg-1ecfd06469ed4c2503034796faf4e7dca4196238.tar.gz
zg-1ecfd06469ed4c2503034796faf4e7dca4196238.tar.xz
zg-1ecfd06469ed4c2503034796faf4e7dca4196238.zip
Moved case fold stuff to src/Caser.zig
Diffstat (limited to 'src/main.zig')
-rw-r--r--src/main.zig21
1 files changed, 13 insertions, 8 deletions
diff --git a/src/main.zig b/src/main.zig
index a5afa66..46e7c9d 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -11,15 +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;
14const CodePointIterator = @import("code_point").Iterator; 14// const 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;
21const Normalizer = @import("Normalizer"); 20const Normalizer = @import("Normalizer");
22 21
22const Caser = @import("Caser");
23
23// const GenCatData = @import("GenCatData"); 24// const GenCatData = @import("GenCatData");
24 25
25pub fn main() !void { 26pub fn main() !void {
@@ -34,15 +35,19 @@ pub fn main() !void {
34 const input = try std.fs.cwd().readFileAlloc(allocator, in_path, std.math.maxInt(u32)); 35 const input = try std.fs.cwd().readFileAlloc(allocator, in_path, std.math.maxInt(u32));
35 defer allocator.free(input); 36 defer allocator.free(input);
36 37
37 var data = try NormData.init(allocator); 38 var norm_data = try Normalizer.NormData.init(allocator);
38 defer data.deinit(); 39 defer norm_data.deinit();
39 var n = Normalizer{ .norm_data = &data }; 40 var norm = Normalizer{ .norm_data = &norm_data };
40 // var n = try Normalizer.init(allocator); 41 // var norm = try Normalizer.init(allocator);
41 // defer n.deinit(); 42 // defer norm.deinit();
42 43
43 // var gencat_data = try GenCatData.init(allocator); 44 // var gencat_data = try GenCatData.init(allocator);
44 // defer gencat_data.deinit(); 45 // defer gencat_data.deinit();
45 46
47 var fold_data = try Caser.FoldData.init(allocator);
48 defer fold_data.deinit();
49 var caser = Caser{ .fold_data = &fold_data };
50
46 // var iter = GraphemeIterator.init(input, &data); 51 // var iter = GraphemeIterator.init(input, &data);
47 // defer iter.deinit(); 52 // defer iter.deinit();
48 // var iter = CodePointIterator{ .bytes = input }; 53 // var iter = CodePointIterator{ .bytes = input };
@@ -66,7 +71,7 @@ pub fn main() !void {
66 // result += 1; 71 // result += 1;
67 // } 72 // }
68 while (iter.next()) |line| { 73 while (iter.next()) |line| {
69 if (try n.eqlIgnoreCase(allocator, prev_line, line)) { 74 if (try caser.compatCaselessMatch(allocator, &norm, prev_line, line)) {
70 result += line.len; 75 result += line.len;
71 } 76 }
72 prev_line = line; 77 prev_line = line;