diff options
| author | 2026-02-05 07:30:20 -0500 | |
|---|---|---|
| committer | 2026-02-05 07:30:20 -0500 | |
| commit | 1b28f5075706d9df7187058d6f7fdfe6d0eadefb (patch) | |
| tree | 6daa618ae2c2b4207767a9ec413c7726e3e4e537 /codegen/lower.zig | |
| parent | Base units do not allocate (diff) | |
| download | zg-1b28f5075706d9df7187058d6f7fdfe6d0eadefb.tar.gz zg-1b28f5075706d9df7187058d6f7fdfe6d0eadefb.tar.xz zg-1b28f5075706d9df7187058d6f7fdfe6d0eadefb.zip | |
Delete upper and lower.zig
Diffstat (limited to '')
| -rw-r--r-- | codegen/lower.zig | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/codegen/lower.zig b/codegen/lower.zig deleted file mode 100644 index 91f3ef2..0000000 --- a/codegen/lower.zig +++ /dev/null | |||
| @@ -1,56 +0,0 @@ | |||
| 1 | const std = @import("std"); | ||
| 2 | const builtin = @import("builtin"); | ||
| 3 | |||
| 4 | pub fn main() !void { | ||
| 5 | var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator); | ||
| 6 | defer arena.deinit(); | ||
| 7 | const allocator = arena.allocator(); | ||
| 8 | |||
| 9 | var write_buf: [4096]u8 = undefined; | ||
| 10 | // Process UnicodeData.txt | ||
| 11 | var in_reader = std.io.Reader.fixed(@embedFile("UnicodeData.txt")); | ||
| 12 | var args_iter = try std.process.argsWithAllocator(allocator); | ||
| 13 | defer args_iter.deinit(); | ||
| 14 | _ = args_iter.skip(); | ||
| 15 | const output_path = args_iter.next() orelse @panic("No output file arg!"); | ||
| 16 | |||
| 17 | var out_file = try std.fs.cwd().createFile(output_path, .{}); | ||
| 18 | defer out_file.close(); | ||
| 19 | var writer = out_file.writer(&write_buf); | ||
| 20 | |||
| 21 | const endian = builtin.cpu.arch.endian(); | ||
| 22 | |||
| 23 | lines: while (in_reader.takeDelimiterInclusive('\n')) |took| { | ||
| 24 | const line = std.mem.trimRight(u8, took, "\n"); | ||
| 25 | if (line.len == 0) continue; | ||
| 26 | |||
| 27 | var field_iter = std.mem.splitScalar(u8, line, ';'); | ||
| 28 | var cp: i24 = undefined; | ||
| 29 | |||
| 30 | var i: usize = 0; | ||
| 31 | while (field_iter.next()) |field| : (i += 1) { | ||
| 32 | switch (i) { | ||
| 33 | 0 => cp = try std.fmt.parseInt(i24, field, 16), | ||
| 34 | |||
| 35 | 2 => if (line[0] == '<') continue :lines, | ||
| 36 | |||
| 37 | 13 => { | ||
| 38 | // Simple lowercase mapping | ||
| 39 | if (field.len == 0) continue :lines; | ||
| 40 | try writer.interface.writeInt(i24, cp, endian); | ||
| 41 | const mapping = try std.fmt.parseInt(i24, field, 16); | ||
| 42 | try writer.interface.writeInt(i24, mapping - cp, endian); | ||
| 43 | }, | ||
| 44 | |||
| 45 | else => {}, | ||
| 46 | } | ||
| 47 | } | ||
| 48 | } else |err| switch (err) { | ||
| 49 | error.EndOfStream => {}, | ||
| 50 | else => { | ||
| 51 | return err; | ||
| 52 | }, | ||
| 53 | } | ||
| 54 | try writer.interface.writeInt(u24, 0, endian); | ||
| 55 | try writer.interface.flush(); | ||
| 56 | } | ||