summaryrefslogtreecommitdiff
path: root/codegen
diff options
context:
space:
mode:
authorGravatar Michael Chaten2025-09-14 04:11:09 -0700
committerGravatar Michael Chaten2025-09-14 04:11:09 -0700
commit749197a3f9d25e211615960c02380a3d659b20f9 (patch)
tree9c892349f0a7136edb150f27f549dc182f7699bb /codegen
parentUpdate codebase to Zig 0.15.1. (diff)
downloadzg-749197a3f9d25e211615960c02380a3d659b20f9.tar.gz
zg-749197a3f9d25e211615960c02380a3d659b20f9.tar.xz
zg-749197a3f9d25e211615960c02380a3d659b20f9.zip
Embed data files in scripts rather than relying on filesystem access for easier packaging
Diffstat (limited to 'codegen')
-rw-r--r--codegen/canon.zig8
-rw-r--r--codegen/case_prop.zig9
-rw-r--r--codegen/ccc.zig9
-rw-r--r--codegen/compat.zig7
-rw-r--r--codegen/core_props.zig9
-rw-r--r--codegen/dwp.zig14
-rw-r--r--codegen/fold.zig13
-rw-r--r--codegen/gbp.zig23
-rw-r--r--codegen/gencat.zig9
-rw-r--r--codegen/hangul.zig9
-rw-r--r--codegen/lower.zig8
-rw-r--r--codegen/normp.zig9
-rw-r--r--codegen/numeric.zig9
-rw-r--r--codegen/props.zig9
-rw-r--r--codegen/scripts.zig11
-rw-r--r--codegen/upper.zig11
-rw-r--r--codegen/wbp.zig10
17 files changed, 47 insertions, 130 deletions
diff --git a/codegen/canon.zig b/codegen/canon.zig
index 89a9070..34e720f 100644
--- a/codegen/canon.zig
+++ b/codegen/canon.zig
@@ -6,13 +6,9 @@ pub fn main() anyerror!void {
6 defer arena.deinit(); 6 defer arena.deinit();
7 const allocator = arena.allocator(); 7 const allocator = arena.allocator();
8 8
9 var line_buf: [4096]u8 = undefined;
10 var write_buf: [4096]u8 = undefined; 9 var write_buf: [4096]u8 = undefined;
11 // Process UnicodeData.txt 10 // Process UnicodeData.txt
12 var in_file = try std.fs.cwd().openFile("data/unicode/UnicodeData.txt", .{}); 11 var in_reader = std.io.Reader.fixed(@embedFile("UnicodeData.txt"));
13 defer in_file.close();
14 var in_reader = in_file.reader(&line_buf);
15
16 var args_iter = try std.process.argsWithAllocator(allocator); 12 var args_iter = try std.process.argsWithAllocator(allocator);
17 defer args_iter.deinit(); 13 defer args_iter.deinit();
18 _ = args_iter.skip(); 14 _ = args_iter.skip();
@@ -24,7 +20,7 @@ pub fn main() anyerror!void {
24 var writer = &file_writer.interface; 20 var writer = &file_writer.interface;
25 const endian = builtin.cpu.arch.endian(); 21 const endian = builtin.cpu.arch.endian();
26 22
27 lines: while (in_reader.interface.takeDelimiterInclusive('\n')) |line| { 23 lines: while (in_reader.takeDelimiterInclusive('\n')) |line| {
28 if (line.len == 0) continue; 24 if (line.len == 0) continue;
29 25
30 var field_iter = std.mem.splitScalar(u8, line, ';'); 26 var field_iter = std.mem.splitScalar(u8, line, ';');
diff --git a/codegen/case_prop.zig b/codegen/case_prop.zig
index 66eb62c..46b8e65 100644
--- a/codegen/case_prop.zig
+++ b/codegen/case_prop.zig
@@ -30,14 +30,9 @@ pub fn main() anyerror!void {
30 var flat_map = std.AutoHashMap(u21, u8).init(allocator); 30 var flat_map = std.AutoHashMap(u21, u8).init(allocator);
31 defer flat_map.deinit(); 31 defer flat_map.deinit();
32 32
33 var line_buf: [4096]u8 = undefined;
34
35 // Process DerivedCoreProperties.txt 33 // Process DerivedCoreProperties.txt
36 var in_file = try std.fs.cwd().openFile("data/unicode/DerivedCoreProperties.txt", .{}); 34 var in_reader = std.io.Reader.fixed(@embedFile("DerivedCoreProperties.txt"));
37 defer in_file.close(); 35 while (in_reader.takeDelimiterExclusive('\n')) |line| {
38 var in_reader = in_file.reader(&line_buf);
39
40 while (in_reader.interface.takeDelimiterExclusive('\n')) |line| {
41 if (line.len == 0 or line[0] == '#') continue; 36 if (line.len == 0 or line[0] == '#') continue;
42 const no_comment = if (mem.indexOfScalar(u8, line, '#')) |octo| line[0..octo] else line; 37 const no_comment = if (mem.indexOfScalar(u8, line, '#')) |octo| line[0..octo] else line;
43 38
diff --git a/codegen/ccc.zig b/codegen/ccc.zig
index b9b2bc3..48d3a9d 100644
--- a/codegen/ccc.zig
+++ b/codegen/ccc.zig
@@ -29,14 +29,9 @@ pub fn main() anyerror!void {
29 var flat_map = std.AutoHashMap(u21, u8).init(allocator); 29 var flat_map = std.AutoHashMap(u21, u8).init(allocator);
30 defer flat_map.deinit(); 30 defer flat_map.deinit();
31 31
32 var line_buf: [4096]u8 = undefined;
33
34 // Process DerivedCombiningClass.txt 32 // Process DerivedCombiningClass.txt
35 var cc_file = try std.fs.cwd().openFile("data/unicode/extracted/DerivedCombiningClass.txt", .{}); 33 var cc_reader = std.io.Reader.fixed(@embedFile("DerivedCombiningClass.txt"));
36 defer cc_file.close(); 34 while (cc_reader.takeDelimiterExclusive('\n')) |line| {
37 var cc_reader = cc_file.reader(&line_buf);
38
39 while (cc_reader.interface.takeDelimiterExclusive('\n')) |line| {
40 if (line.len == 0 or line[0] == '#') continue; 35 if (line.len == 0 or line[0] == '#') continue;
41 const no_comment = if (std.mem.indexOfScalar(u8, line, '#')) |octo| line[0..octo] else line; 36 const no_comment = if (std.mem.indexOfScalar(u8, line, '#')) |octo| line[0..octo] else line;
42 37
diff --git a/codegen/compat.zig b/codegen/compat.zig
index 835a636..0a06c44 100644
--- a/codegen/compat.zig
+++ b/codegen/compat.zig
@@ -7,12 +7,9 @@ pub fn main() anyerror!void {
7 const allocator = arena.allocator(); 7 const allocator = arena.allocator();
8 8
9 // Process UnicodeData.txt 9 // Process UnicodeData.txt
10 var in_file = try std.fs.cwd().openFile("data/unicode/UnicodeData.txt", .{});
11 defer in_file.close();
12 var line_buf: [4096]u8 = undefined;
13 var write_buf: [4096]u8 = undefined; 10 var write_buf: [4096]u8 = undefined;
14 var in_reader = in_file.reader(&line_buf);
15 11
12 var in_reader = std.io.Reader.fixed(@embedFile("UnicodeData.txt"));
16 var args_iter = try std.process.argsWithAllocator(allocator); 13 var args_iter = try std.process.argsWithAllocator(allocator);
17 defer args_iter.deinit(); 14 defer args_iter.deinit();
18 _ = args_iter.skip(); 15 _ = args_iter.skip();
@@ -24,7 +21,7 @@ pub fn main() anyerror!void {
24 21
25 const endian = builtin.cpu.arch.endian(); 22 const endian = builtin.cpu.arch.endian();
26 23
27 lines: while (in_reader.interface.takeDelimiterExclusive('\n')) |line| { 24 lines: while (in_reader.takeDelimiterExclusive('\n')) |line| {
28 if (line.len == 0) continue; 25 if (line.len == 0) continue;
29 26
30 var field_iter = std.mem.splitScalar(u8, line, ';'); 27 var field_iter = std.mem.splitScalar(u8, line, ';');
diff --git a/codegen/core_props.zig b/codegen/core_props.zig
index 19063f6..d59a77e 100644
--- a/codegen/core_props.zig
+++ b/codegen/core_props.zig
@@ -30,14 +30,9 @@ pub fn main() anyerror!void {
30 var flat_map = std.AutoHashMap(u21, u8).init(allocator); 30 var flat_map = std.AutoHashMap(u21, u8).init(allocator);
31 defer flat_map.deinit(); 31 defer flat_map.deinit();
32 32
33 var line_buf: [4096]u8 = undefined;
34
35 // Process DerivedCoreProperties.txt 33 // Process DerivedCoreProperties.txt
36 var in_file = try std.fs.cwd().openFile("data/unicode/DerivedCoreProperties.txt", .{}); 34 var in_reader = std.io.Reader.fixed(@embedFile("DerivedCoreProperties.txt"));
37 defer in_file.close(); 35 while (in_reader.takeDelimiterExclusive('\n')) |line| {
38 var in_reader = in_file.reader(&line_buf);
39
40 while (in_reader.interface.takeDelimiterExclusive('\n')) |line| {
41 if (line.len == 0 or line[0] == '#') continue; 36 if (line.len == 0 or line[0] == '#') continue;
42 const no_comment = if (mem.indexOfScalar(u8, line, '#')) |octo| line[0..octo] else line; 37 const no_comment = if (mem.indexOfScalar(u8, line, '#')) |octo| line[0..octo] else line;
43 38
diff --git a/codegen/dwp.zig b/codegen/dwp.zig
index fad08d1..8189ad8 100644
--- a/codegen/dwp.zig
+++ b/codegen/dwp.zig
@@ -31,14 +31,10 @@ pub fn main() anyerror!void {
31 var flat_map = std.AutoHashMap(u21, i4).init(allocator); 31 var flat_map = std.AutoHashMap(u21, i4).init(allocator);
32 defer flat_map.deinit(); 32 defer flat_map.deinit();
33 33
34 var line_buf: [4096]u8 = undefined;
35
36 // Process DerivedEastAsianWidth.txt 34 // Process DerivedEastAsianWidth.txt
37 var deaw_file = try std.fs.cwd().openFile("data/unicode/extracted/DerivedEastAsianWidth.txt", .{}); 35 var deaw_reader = std.io.Reader.fixed(@embedFile("DerivedEastAsianWidth.txt"));
38 defer deaw_file.close();
39 var deaw_reader = deaw_file.reader(&line_buf);
40 36
41 while (deaw_reader.interface.takeDelimiterExclusive('\n')) |line| { 37 while (deaw_reader.takeDelimiterExclusive('\n')) |line| {
42 if (line.len == 0) continue; 38 if (line.len == 0) continue;
43 39
44 // @missing ranges 40 // @missing ranges
@@ -94,11 +90,9 @@ pub fn main() anyerror!void {
94 }, 90 },
95 } 91 }
96 // Process DerivedGeneralCategory.txt 92 // Process DerivedGeneralCategory.txt
97 var dgc_file = try std.fs.cwd().openFile("data/unicode/extracted/DerivedGeneralCategory.txt", .{}); 93 var dgc_reader = std.io.Reader.fixed(@embedFile("DerivedGeneralCategory.txt"));
98 defer dgc_file.close();
99 var dgc_reader = dgc_file.reader(&line_buf);
100 94
101 while (dgc_reader.interface.takeDelimiterExclusive('\n')) |line| { 95 while (dgc_reader.takeDelimiterExclusive('\n')) |line| {
102 if (line.len == 0 or line[0] == '#') continue; 96 if (line.len == 0 or line[0] == '#') continue;
103 const no_comment = if (std.mem.indexOfScalar(u8, line, '#')) |octo| line[0..octo] else line; 97 const no_comment = if (std.mem.indexOfScalar(u8, line, '#')) |octo| line[0..octo] else line;
104 98
diff --git a/codegen/fold.zig b/codegen/fold.zig
index cc381a8..d927795 100644
--- a/codegen/fold.zig
+++ b/codegen/fold.zig
@@ -7,16 +7,13 @@ pub fn main() anyerror!void {
7 defer std.debug.assert(gpa.deinit() == .ok); 7 defer std.debug.assert(gpa.deinit() == .ok);
8 const allocator = gpa.allocator(); 8 const allocator = gpa.allocator();
9 9
10 var line_buf: [4096]u8 = undefined;
11 // Process DerivedCoreProperties.txt 10 // Process DerivedCoreProperties.txt
12 var props_file = try std.fs.cwd().openFile("data/unicode/DerivedCoreProperties.txt", .{}); 11 var props_reader = std.io.Reader.fixed(@embedFile("DerivedCoreProperties.txt"));
13 defer props_file.close();
14 var props_reader = props_file.reader(&line_buf);
15 12
16 var props_map = std.AutoHashMap(u21, void).init(allocator); 13 var props_map = std.AutoHashMap(u21, void).init(allocator);
17 defer props_map.deinit(); 14 defer props_map.deinit();
18 15
19 props_lines: while (props_reader.interface.takeDelimiterExclusive('\n')) |line| { 16 props_lines: while (props_reader.takeDelimiterExclusive('\n')) |line| {
20 if (line.len == 0 or line[0] == '#') continue; 17 if (line.len == 0 or line[0] == '#') continue;
21 18
22 const no_comment = if (std.mem.indexOfScalar(u8, line, '#')) |octo| line[0..octo] else line; 19 const no_comment = if (std.mem.indexOfScalar(u8, line, '#')) |octo| line[0..octo] else line;
@@ -57,11 +54,9 @@ pub fn main() anyerror!void {
57 defer codepoint_mapping.deinit(); 54 defer codepoint_mapping.deinit();
58 55
59 // Process CaseFolding.txt 56 // Process CaseFolding.txt
60 var cp_file = try std.fs.cwd().openFile("data/unicode/CaseFolding.txt", .{});
61 defer cp_file.close();
62 var cp_reader = cp_file.reader(&line_buf);
63 57
64 while (cp_reader.interface.takeDelimiterExclusive('\n')) |line| { 58 var cp_reader = std.io.Reader.fixed(@embedFile("CaseFolding.txt"));
59 while (cp_reader.takeDelimiterExclusive('\n')) |line| {
65 if (line.len == 0 or line[0] == '#') continue; 60 if (line.len == 0 or line[0] == '#') continue;
66 61
67 var field_it = std.mem.splitScalar(u8, line, ';'); 62 var field_it = std.mem.splitScalar(u8, line, ';');
diff --git a/codegen/gbp.zig b/codegen/gbp.zig
index d654cf1..895aa7a 100644
--- a/codegen/gbp.zig
+++ b/codegen/gbp.zig
@@ -61,14 +61,11 @@ pub fn main() anyerror!void {
61 var emoji_set = std.AutoHashMap(u21, void).init(allocator); 61 var emoji_set = std.AutoHashMap(u21, void).init(allocator);
62 defer emoji_set.deinit(); 62 defer emoji_set.deinit();
63 63
64 var line_buf: [4096]u8 = undefined;
65
66 // Process Indic 64 // Process Indic
67 var indic_file = try std.fs.cwd().openFile("data/unicode/DerivedCoreProperties.txt", .{}); 65 const indic_file = @embedFile("DerivedCoreProperties.txt");
68 defer indic_file.close(); 66 var indic_reader = std.io.Reader.fixed(indic_file);
69 var indic_reader = indic_file.reader(&line_buf);
70 67
71 while (indic_reader.interface.takeDelimiterExclusive('\n')) |line| { 68 while (indic_reader.takeDelimiterExclusive('\n')) |line| {
72 if (line.len == 0 or line[0] == '#') continue; 69 if (line.len == 0 or line[0] == '#') continue;
73 if (std.mem.indexOf(u8, line, "InCB") == null) continue; 70 if (std.mem.indexOf(u8, line, "InCB") == null) continue;
74 const no_comment = if (std.mem.indexOfScalar(u8, line, '#')) |octo| line[0..octo] else line; 71 const no_comment = if (std.mem.indexOfScalar(u8, line, '#')) |octo| line[0..octo] else line;
@@ -106,11 +103,10 @@ pub fn main() anyerror!void {
106 }, 103 },
107 } 104 }
108 // Process GBP 105 // Process GBP
109 var gbp_file = try std.fs.cwd().openFile("data/unicode/auxiliary/GraphemeBreakProperty.txt", .{});
110 defer gbp_file.close();
111 var gbp_reader = gbp_file.reader(&line_buf);
112 106
113 while (gbp_reader.interface.takeDelimiterExclusive('\n')) |line| { 107 var gbp_reader = std.io.Reader.fixed(@embedFile("GraphemeBreakProperty.txt"));
108
109 while (gbp_reader.takeDelimiterExclusive('\n')) |line| {
114 if (line.len == 0 or line[0] == '#') continue; 110 if (line.len == 0 or line[0] == '#') continue;
115 const no_comment = if (std.mem.indexOfScalar(u8, line, '#')) |octo| line[0..octo] else line; 111 const no_comment = if (std.mem.indexOfScalar(u8, line, '#')) |octo| line[0..octo] else line;
116 112
@@ -147,11 +143,10 @@ pub fn main() anyerror!void {
147 }, 143 },
148 } 144 }
149 // Process Emoji 145 // Process Emoji
150 var emoji_file = try std.fs.cwd().openFile("data/unicode/emoji/emoji-data.txt", .{});
151 defer emoji_file.close();
152 var emoji_reader = emoji_file.reader(&line_buf);
153 146
154 while (emoji_reader.interface.takeDelimiterExclusive('\n')) |line| { 147 var emoji_reader = std.io.Reader.fixed(@embedFile("emoji-data.txt"));
148
149 while (emoji_reader.takeDelimiterExclusive('\n')) |line| {
155 if (line.len == 0 or line[0] == '#') continue; 150 if (line.len == 0 or line[0] == '#') continue;
156 if (std.mem.indexOf(u8, line, "Extended_Pictographic") == null) continue; 151 if (std.mem.indexOf(u8, line, "Extended_Pictographic") == null) continue;
157 const no_comment = if (std.mem.indexOfScalar(u8, line, '#')) |octo| line[0..octo] else line; 152 const no_comment = if (std.mem.indexOfScalar(u8, line, '#')) |octo| line[0..octo] else line;
diff --git a/codegen/gencat.zig b/codegen/gencat.zig
index 7dedb5d..79fa072 100644
--- a/codegen/gencat.zig
+++ b/codegen/gencat.zig
@@ -62,14 +62,9 @@ pub fn main() !void {
62 var flat_map = std.AutoHashMap(u21, u5).init(allocator); 62 var flat_map = std.AutoHashMap(u21, u5).init(allocator);
63 defer flat_map.deinit(); 63 defer flat_map.deinit();
64 64
65 var line_buf: [4096]u8 = undefined;
66
67 // Process DerivedGeneralCategory.txt 65 // Process DerivedGeneralCategory.txt
68 var in_file = try std.fs.cwd().openFile("data/unicode/extracted/DerivedGeneralCategory.txt", .{}); 66 var in_reader = std.io.Reader.fixed(@embedFile("DerivedGeneralCategory.txt"));
69 defer in_file.close(); 67 while (in_reader.takeDelimiterExclusive('\n')) |line| {
70 var in_reader = in_file.reader(&line_buf);
71
72 while (in_reader.interface.takeDelimiterExclusive('\n')) |line| {
73 if (line.len == 0 or line[0] == '#') continue; 68 if (line.len == 0 or line[0] == '#') continue;
74 69
75 const no_comment = if (std.mem.indexOfScalar(u8, line, '#')) |octo| line[0..octo] else line; 70 const no_comment = if (std.mem.indexOfScalar(u8, line, '#')) |octo| line[0..octo] else line;
diff --git a/codegen/hangul.zig b/codegen/hangul.zig
index 6768b3f..64ab11c 100644
--- a/codegen/hangul.zig
+++ b/codegen/hangul.zig
@@ -38,14 +38,9 @@ pub fn main() anyerror!void {
38 var flat_map = std.AutoHashMap(u21, u3).init(allocator); 38 var flat_map = std.AutoHashMap(u21, u3).init(allocator);
39 defer flat_map.deinit(); 39 defer flat_map.deinit();
40 40
41 var line_buf: [4096]u8 = undefined;
42
43 // Process HangulSyllableType.txt 41 // Process HangulSyllableType.txt
44 var in_file = try std.fs.cwd().openFile("data/unicode/HangulSyllableType.txt", .{}); 42 var in_reader = std.io.Reader.fixed(@embedFile("HangulSyllableType.txt"));
45 defer in_file.close(); 43 while (in_reader.takeDelimiterExclusive('\n')) |line| {
46 var in_reader = in_file.reader(&line_buf);
47
48 while (in_reader.interface.takeDelimiterExclusive('\n')) |line| {
49 if (line.len == 0 or line[0] == '#') continue; 44 if (line.len == 0 or line[0] == '#') continue;
50 45
51 const no_comment = if (std.mem.indexOfScalar(u8, line, '#')) |octo| line[0..octo] else line; 46 const no_comment = if (std.mem.indexOfScalar(u8, line, '#')) |octo| line[0..octo] else line;
diff --git a/codegen/lower.zig b/codegen/lower.zig
index c11cb0a..987f004 100644
--- a/codegen/lower.zig
+++ b/codegen/lower.zig
@@ -6,13 +6,9 @@ pub fn main() !void {
6 defer arena.deinit(); 6 defer arena.deinit();
7 const allocator = arena.allocator(); 7 const allocator = arena.allocator();
8 8
9 var line_buf: [4096]u8 = undefined;
10 var write_buf: [4096]u8 = undefined; 9 var write_buf: [4096]u8 = undefined;
11 // Process UnicodeData.txt 10 // Process UnicodeData.txt
12 var in_file = try std.fs.cwd().openFile("data/unicode/UnicodeData.txt", .{}); 11 var in_reader = std.io.Reader.fixed(@embedFile("UnicodeData.txt"));
13 defer in_file.close();
14 var in_reader = in_file.reader(&line_buf);
15
16 var args_iter = try std.process.argsWithAllocator(allocator); 12 var args_iter = try std.process.argsWithAllocator(allocator);
17 defer args_iter.deinit(); 13 defer args_iter.deinit();
18 _ = args_iter.skip(); 14 _ = args_iter.skip();
@@ -24,7 +20,7 @@ pub fn main() !void {
24 20
25 const endian = builtin.cpu.arch.endian(); 21 const endian = builtin.cpu.arch.endian();
26 22
27 lines: while (in_reader.interface.takeDelimiterExclusive('\n')) |line| { 23 lines: while (in_reader.takeDelimiterExclusive('\n')) |line| {
28 if (line.len == 0) continue; 24 if (line.len == 0) continue;
29 25
30 var field_iter = std.mem.splitScalar(u8, line, ';'); 26 var field_iter = std.mem.splitScalar(u8, line, ';');
diff --git a/codegen/normp.zig b/codegen/normp.zig
index 71a1ae5..3cdd770 100644
--- a/codegen/normp.zig
+++ b/codegen/normp.zig
@@ -29,14 +29,9 @@ pub fn main() anyerror!void {
29 var flat_map = std.AutoHashMap(u21, u3).init(allocator); 29 var flat_map = std.AutoHashMap(u21, u3).init(allocator);
30 defer flat_map.deinit(); 30 defer flat_map.deinit();
31 31
32 var line_buf: [4096]u8 = undefined;
33
34 // Process DerivedNormalizationProps.txt 32 // Process DerivedNormalizationProps.txt
35 var in_file = try std.fs.cwd().openFile("data/unicode/DerivedNormalizationProps.txt", .{}); 33 var in_reader = std.io.Reader.fixed(@embedFile("DerivedNormalizationProps.txt"));
36 defer in_file.close(); 34 while (in_reader.takeDelimiterExclusive('\n')) |line| {
37 var in_reader = in_file.reader(&line_buf);
38
39 while (in_reader.interface.takeDelimiterExclusive('\n')) |line| {
40 if (line.len == 0 or line[0] == '#') continue; 35 if (line.len == 0 or line[0] == '#') continue;
41 36
42 const no_comment = if (std.mem.indexOfScalar(u8, line, '#')) |octo| line[0..octo] else line; 37 const no_comment = if (std.mem.indexOfScalar(u8, line, '#')) |octo| line[0..octo] else line;
diff --git a/codegen/numeric.zig b/codegen/numeric.zig
index cf918e8..d6b3165 100644
--- a/codegen/numeric.zig
+++ b/codegen/numeric.zig
@@ -30,14 +30,9 @@ pub fn main() anyerror!void {
30 var flat_map = std.AutoHashMap(u21, u8).init(allocator); 30 var flat_map = std.AutoHashMap(u21, u8).init(allocator);
31 defer flat_map.deinit(); 31 defer flat_map.deinit();
32 32
33 var line_buf: [4096]u8 = undefined;
34
35 // Process DerivedNumericType.txt 33 // Process DerivedNumericType.txt
36 var in_file = try std.fs.cwd().openFile("data/unicode/extracted/DerivedNumericType.txt", .{}); 34 var in_reader = std.io.Reader.fixed(@embedFile("DerivedNumericType.txt"));
37 defer in_file.close(); 35 while (in_reader.takeDelimiterExclusive('\n')) |line| {
38 var in_reader = in_file.reader(&line_buf);
39
40 while (in_reader.interface.takeDelimiterExclusive('\n')) |line| {
41 if (line.len == 0 or line[0] == '#') continue; 36 if (line.len == 0 or line[0] == '#') continue;
42 const no_comment = if (mem.indexOfScalar(u8, line, '#')) |octo| line[0..octo] else line; 37 const no_comment = if (mem.indexOfScalar(u8, line, '#')) |octo| line[0..octo] else line;
43 38
diff --git a/codegen/props.zig b/codegen/props.zig
index 6ff0a33..ca42987 100644
--- a/codegen/props.zig
+++ b/codegen/props.zig
@@ -30,14 +30,9 @@ pub fn main() anyerror!void {
30 var flat_map = std.AutoHashMap(u21, u8).init(allocator); 30 var flat_map = std.AutoHashMap(u21, u8).init(allocator);
31 defer flat_map.deinit(); 31 defer flat_map.deinit();
32 32
33 var line_buf: [4096]u8 = undefined;
34
35 // Process PropList.txt 33 // Process PropList.txt
36 var in_file = try std.fs.cwd().openFile("data/unicode/PropList.txt", .{}); 34 var in_reader = std.io.Reader.fixed(@embedFile("PropList.txt"));
37 defer in_file.close(); 35 while (in_reader.takeDelimiterExclusive('\n')) |line| {
38 var in_reader = in_file.reader(&line_buf);
39
40 while (in_reader.interface.takeDelimiterExclusive('\n')) |line| {
41 if (line.len == 0 or line[0] == '#') continue; 36 if (line.len == 0 or line[0] == '#') continue;
42 const no_comment = if (mem.indexOfScalar(u8, line, '#')) |octo| line[0..octo] else line; 37 const no_comment = if (mem.indexOfScalar(u8, line, '#')) |octo| line[0..octo] else line;
43 38
diff --git a/codegen/scripts.zig b/codegen/scripts.zig
index bdd3d9d..81511cc 100644
--- a/codegen/scripts.zig
+++ b/codegen/scripts.zig
@@ -203,14 +203,9 @@ pub fn main() anyerror!void {
203 var flat_map = std.AutoHashMap(u21, u8).init(allocator); 203 var flat_map = std.AutoHashMap(u21, u8).init(allocator);
204 defer flat_map.deinit(); 204 defer flat_map.deinit();
205 205
206 var line_buf: [4096]u8 = undefined; 206 // Process Scripts.txt
207 207 var in_reader = std.io.Reader.fixed(@embedFile("Scripts.txt"));
208 // Process DerivedGeneralCategory.txt 208 while (in_reader.takeDelimiterExclusive('\n')) |line| {
209 var in_file = try std.fs.cwd().openFile("data/unicode/Scripts.txt", .{});
210 defer in_file.close();
211 var in_reader = in_file.reader(&line_buf);
212
213 while (in_reader.interface.takeDelimiterExclusive('\n')) |line| {
214 if (line.len == 0 or line[0] == '#') continue; 209 if (line.len == 0 or line[0] == '#') continue;
215 210
216 const no_comment = if (std.mem.indexOfScalar(u8, line, '#')) |octo| line[0..octo] else line; 211 const no_comment = if (std.mem.indexOfScalar(u8, line, '#')) |octo| line[0..octo] else line;
diff --git a/codegen/upper.zig b/codegen/upper.zig
index 7d96a0e..108fdbd 100644
--- a/codegen/upper.zig
+++ b/codegen/upper.zig
@@ -6,13 +6,9 @@ pub fn main() anyerror!void {
6 defer arena.deinit(); 6 defer arena.deinit();
7 const allocator = arena.allocator(); 7 const allocator = arena.allocator();
8 8
9 var line_buf: [4096]u8 = undefined;
10 var write_buf: [4096]u8 = undefined; 9 var write_buf: [4096]u8 = undefined;
11 // Process UnicodeData.txt 10 // Process UnicodeData.txt
12 var in_file = try std.fs.cwd().openFile("data/unicode/UnicodeData.txt", .{}); 11 var in_reader = std.io.Reader.fixed(@embedFile("UnicodeData.txt"));
13 defer in_file.close();
14 var in_reader = in_file.reader(&line_buf);
15
16 var args_iter = try std.process.argsWithAllocator(allocator); 12 var args_iter = try std.process.argsWithAllocator(allocator);
17 defer args_iter.deinit(); 13 defer args_iter.deinit();
18 _ = args_iter.skip(); 14 _ = args_iter.skip();
@@ -23,7 +19,7 @@ pub fn main() anyerror!void {
23 var file_writer = out_file.writer(&write_buf); 19 var file_writer = out_file.writer(&write_buf);
24 const endian = builtin.cpu.arch.endian(); 20 const endian = builtin.cpu.arch.endian();
25 21
26 lines: while (in_reader.interface.takeDelimiterExclusive('\n')) |line| { 22 lines: while (in_reader.takeDelimiterExclusive('\n')) |line| {
27 if (line.len == 0) continue; 23 if (line.len == 0) continue;
28 24
29 var field_iter = std.mem.splitScalar(u8, line, ';'); 25 var field_iter = std.mem.splitScalar(u8, line, ';');
@@ -48,9 +44,6 @@ pub fn main() anyerror!void {
48 } 44 }
49 } 45 }
50 } else |err| switch (err) { 46 } else |err| switch (err) {
51 error.ReadFailed => {
52 return in_reader.err orelse err;
53 },
54 error.EndOfStream => {}, 47 error.EndOfStream => {},
55 else => { 48 else => {
56 return err; 49 return err;
diff --git a/codegen/wbp.zig b/codegen/wbp.zig
index b1ed56a..dfdc32e 100644
--- a/codegen/wbp.zig
+++ b/codegen/wbp.zig
@@ -51,14 +51,10 @@ pub fn main() anyerror!void {
51 var flat_map = std.AutoHashMap(u21, u5).init(allocator); 51 var flat_map = std.AutoHashMap(u21, u5).init(allocator);
52 defer flat_map.deinit(); 52 defer flat_map.deinit();
53 53
54 var line_buf: [4096]u8 = undefined;
55
56 // Process HangulSyllableType.txt 54 // Process HangulSyllableType.txt
57 var in_file = try std.fs.cwd().openFile("data/unicode/auxiliary/WordBreakProperty.txt", .{}); 55 const in_file = @embedFile("WordBreakProperty.txt");
58 defer in_file.close(); 56 var in_reader = std.io.Reader.fixed(in_file);
59 var in_reader = in_file.reader(&line_buf); 57 while (in_reader.takeDelimiterExclusive('\n')) |line| {
60
61 while (in_reader.interface.takeDelimiterExclusive('\n')) |line| {
62 if (line.len == 0 or line[0] == '#') continue; 58 if (line.len == 0 or line[0] == '#') continue;
63 59
64 const no_comment = if (std.mem.indexOfScalar(u8, line, '#')) |octo| line[0..octo] else line; 60 const no_comment = if (std.mem.indexOfScalar(u8, line, '#')) |octo| line[0..octo] else line;