diff options
Diffstat (limited to 'codegen/fold.zig')
| -rw-r--r-- | codegen/fold.zig | 57 |
1 files changed, 38 insertions, 19 deletions
diff --git a/codegen/fold.zig b/codegen/fold.zig index 366ed79..c5f54eb 100644 --- a/codegen/fold.zig +++ b/codegen/fold.zig | |||
| @@ -228,26 +228,45 @@ pub fn main() anyerror!void { | |||
| 228 | var out_file = try std.fs.cwd().createFile(output_path, .{}); | 228 | var out_file = try std.fs.cwd().createFile(output_path, .{}); |
| 229 | defer out_file.close(); | 229 | defer out_file.close(); |
| 230 | var writer = out_file.writer(&write_buf); | 230 | var writer = out_file.writer(&write_buf); |
| 231 | |||
| 232 | const endian = builtin.cpu.arch.endian(); | ||
| 233 | // Table metadata. | 231 | // Table metadata. |
| 234 | try writer.interface.writeInt(u24, @intCast(codepoint_cutoff), endian); | 232 | try writer.interface.print( |
| 235 | try writer.interface.writeInt(u24, @intCast(multiple_codepoint_start), endian); | 233 | \\//! This file is auto-generated. Do not edit. |
| 236 | // Stage 1 | 234 | \\ |
| 237 | try writer.interface.writeInt(u16, @intCast(meaningful_stage1.len), endian); | 235 | \\pub const cutoff: u21 = {}; |
| 238 | try writer.interface.writeAll(meaningful_stage1); | 236 | \\pub const cwcf_exceptions_min: u21 = {}; |
| 239 | // Stage 2 | 237 | \\pub const cwcf_exceptions_max: u21 = {}; |
| 240 | try writer.interface.writeInt(u16, @intCast(stage2.len), endian); | 238 | \\pub const cwcf_exceptions: [{}]u21 = .{{ |
| 241 | try writer.interface.writeAll(stage2); | 239 | , .{ codepoint_cutoff, std.mem.min(u21, changes_when_casefolded_exceptions.items), std.mem.max(u21, changes_when_casefolded_exceptions.items), changes_when_casefolded_exceptions.items.len }); |
| 242 | // Stage 3 | 240 | for (changes_when_casefolded_exceptions.items) |cp| try writer.interface.print("{}, ", .{cp}); |
| 243 | try writer.interface.writeInt(u16, @intCast(stage3.len), endian); | 241 | |
| 244 | for (stage3) |offset| try writer.interface.writeInt(i24, offset, endian); | 242 | try writer.interface.print( |
| 245 | // Changes when case folded | 243 | \\ |
| 246 | // Min and max | 244 | \\}}; |
| 247 | try writer.interface.writeInt(u24, std.mem.min(u21, changes_when_casefolded_exceptions.items), endian); | 245 | \\ |
| 248 | try writer.interface.writeInt(u24, std.mem.max(u21, changes_when_casefolded_exceptions.items), endian); | 246 | \\pub const multiple_start: u21 = {}; |
| 249 | try writer.interface.writeInt(u16, @intCast(changes_when_casefolded_exceptions.items.len), endian); | 247 | \\pub const stage1: [{}]u8 = .{{ |
| 250 | for (changes_when_casefolded_exceptions.items) |cp| try writer.interface.writeInt(u24, cp, endian); | 248 | , .{ multiple_codepoint_start, meaningful_stage1.len }); |
| 249 | for (meaningful_stage1) |entry| try writer.interface.print("{}, ", .{entry}); | ||
| 250 | |||
| 251 | try writer.interface.print( | ||
| 252 | \\ | ||
| 253 | \\}}; | ||
| 254 | \\ | ||
| 255 | \\pub const stage2: [{}]u8 = .{{ | ||
| 256 | , .{stage2.len}); | ||
| 257 | for (stage2) |entry| try writer.interface.print("{}, ", .{entry}); | ||
| 258 | |||
| 259 | try writer.interface.print( | ||
| 260 | \\ | ||
| 261 | \\}}; | ||
| 262 | \\ | ||
| 263 | \\pub const stage3: [{}]i24 = .{{ | ||
| 264 | , .{stage3.len}); | ||
| 265 | for (stage3) |entry| try writer.interface.print("{}, ", .{entry}); | ||
| 266 | |||
| 267 | try writer.interface.writeAll( | ||
| 268 | \\}; | ||
| 269 | ); | ||
| 251 | 270 | ||
| 252 | try writer.interface.flush(); | 271 | try writer.interface.flush(); |
| 253 | } | 272 | } |