summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Jose Colon Rodriguez2024-03-26 21:59:53 -0400
committerGravatar Jose Colon Rodriguez2024-03-26 21:59:53 -0400
commit84db319ae1bb1b847614d096a5f737b8f71ce6e8 (patch)
tree52a8733dd03a7343dc75c2d0c07f0d9b50700b52 /src
parentRemoved main (diff)
downloadzg-84db319ae1bb1b847614d096a5f737b8f71ce6e8.tar.gz
zg-84db319ae1bb1b847614d096a5f737b8f71ce6e8.tar.xz
zg-84db319ae1bb1b847614d096a5f737b8f71ce6e8.zip
rm src/main.zig
Diffstat (limited to 'src')
-rw-r--r--src/main.zig93
1 files changed, 0 insertions, 93 deletions
diff --git a/src/main.zig b/src/main.zig
deleted file mode 100644
index 52d823c..0000000
--- a/src/main.zig
+++ /dev/null
@@ -1,93 +0,0 @@
1const std = @import("std");
2
3// const GraphemeIterator = @import("ziglyph").GraphemeIterator;
4// const Data = @import("grapheme").Data;
5// const GraphemeIterator = @import("grapheme").Iterator;
6
7// const codePointWidth = @import("ziglyph").display_width.codePointWidth;
8// const strWidth = @import("ziglyph").display_width.strWidth;
9// const Data = @import("display_width").Data;
10// const codePointWidth = @import("display_width").codePointWidth;
11// const strWidth = @import("display_width").strWidth;
12
13// const CodePointIterator = @import("ziglyph").CodePointIterator;
14const CodePointIterator = @import("code_point").Iterator;
15
16// const ascii = @import("ascii");
17// const ascii = std.ascii;
18
19// const Normalize = @import("ziglyph").Normalizer;
20// const Normalize = @import("Normalize");
21
22// const CaseFold = @import("CaseFold");
23
24// const GenCatData = @import("GenCatData");
25
26const NumericData = @import("NumericData");
27
28pub fn main() !void {
29 var args_iter = std.process.args();
30 _ = args_iter.skip();
31 const in_path = args_iter.next() orelse return error.MissingArg;
32
33 var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
34 defer arena.deinit();
35 const allocator = arena.allocator();
36
37 const input = try std.fs.cwd().readFileAlloc(
38 allocator,
39 in_path,
40 std.math.maxInt(u32),
41 );
42 defer allocator.free(input);
43
44 // var norm_data = try Normalize.NormData.init(allocator);
45 // defer norm_data.deinit();
46 // var norm = Normalize{ .norm_data = &norm_data };
47 // var norm = try Normalize.init(allocator);
48 // defer norm.deinit();
49
50 // var gencat_data = try GenCatData.init(allocator);
51 // defer gencat_data.deinit();
52
53 // var fold_data = try CaseFold.FoldData.init(allocator);
54 // defer fold_data.deinit();
55 // var caser = CaseFold{ .fold_data = &fold_data };
56
57 var num_data = try NumericData.init(allocator);
58 defer num_data.deinit();
59
60 // var iter = GraphemeIterator.init(input, &data);
61 // defer iter.deinit();
62 var iter = CodePointIterator{ .bytes = input };
63 // var iter = std.mem.splitScalar(u8, input, '\n');
64
65 var result: usize = 0;
66 // var prev_line: []const u8 = "";
67 // var result: isize = 0;
68 var timer = try std.time.Timer.start();
69
70 // while (iter.next()) |cp| result += codePointWidth(@intCast(cp.code));
71 // while (iter.next()) |_| result += 1;
72 // while (iter.next()) |line| result += strWidth(line, &data);
73 // while (iter.next()) |line| {
74 // const nfc = try norm.nfc(allocator, line);
75 // result += nfc.slice.len;
76 // // nfc.deinit();
77 // }
78 // while (iter.next()) |cp| {
79 // if (cp.code == 'É') std.debug.print("`{u}` Gc: {s}\n", .{ cp.code, @tagName(gencat_data.gc(cp.code)) });
80 // result += 1;
81 // }
82 // while (iter.next()) |line| {
83 // if (try caser.canonCaselessMatch(allocator, &norm, prev_line, line)) {
84 // result += line.len;
85 // }
86 // prev_line = line;
87 // }
88 while (iter.next()) |cp| {
89 if (num_data.isNumberic(cp)) result += 1;
90 }
91
92 std.debug.print("result: {}, took: {}\n", .{ result, timer.lap() / std.time.ns_per_ms });
93}