aboutsummaryrefslogtreecommitdiff
path: root/misctools/headers-cleaner.zig
diff options
context:
space:
mode:
Diffstat (limited to 'misctools/headers-cleaner.zig')
-rw-r--r--misctools/headers-cleaner.zig100
1 files changed, 50 insertions, 50 deletions
diff --git a/misctools/headers-cleaner.zig b/misctools/headers-cleaner.zig
index a8261ae4f..e9304d3d7 100644
--- a/misctools/headers-cleaner.zig
+++ b/misctools/headers-cleaner.zig
@@ -1,58 +1,58 @@
const std = @import("std");
pub fn main() anyerror!void {
- const headers_zig_file_src: std.builtin.SourceLocation = @src();
- var paths = [_][]const u8{std.mem.span(headers_zig_file_src.file), "../../src/javascript/jsc/bindings/headers.zig"};
- const headers_zig_file = try std.fs.path.resolve(std.heap.c_allocator, &paths);
- std.debug.print("Writing to {s}", .{headers_zig_file});
- var headers_zig: std.fs.File = try std.fs.openFileAbsolute(headers_zig_file, .{ .write = true });
- var contents = try headers_zig.readToEndAlloc(std.heap.page_allocator, headers_zig.getEndPos() catch unreachable);
- const last_extern_i = std.mem.lastIndexOf(u8, contents, "pub extern fn") orelse @panic("Expected contents");
- const last_newline = std.mem.indexOf(u8, contents[last_extern_i..], "\n") orelse @panic("Expected newline");
- const to_splice = "usingnamespace @import(\"./headers-replacements.zig\");\n";
- var new_contents = try std.heap.page_allocator.alloc(u8, contents.len + to_splice.len);
- std.mem.copy(u8, new_contents, to_splice);
- std.mem.copy(u8, new_contents[to_splice.len..], contents);
- var i: usize = to_splice.len;
- var remainder = new_contents[i..];
- while (remainder.len > 0) {
- i = std.mem.indexOf(u8, remainder, "\npub const struct_b") orelse break + "\npub const struct_b".len;
- var begin = remainder[i..];
- const end_line = std.mem.indexOf(u8, begin, "extern struct {") orelse break;
- const end_struct = std.mem.indexOf(u8, begin, "\n};\n") orelse break + "\n};\n".len;
+ const headers_zig_file_src: std.builtin.SourceLocation = @src();
+ var paths = [_][]const u8{ std.mem.span(headers_zig_file_src.file), "../../src/javascript/jsc/bindings/headers.zig" };
+ const headers_zig_file = try std.fs.path.resolve(std.heap.c_allocator, &paths);
+ std.debug.print("Writing to {s}", .{headers_zig_file});
+ var headers_zig: std.fs.File = try std.fs.openFileAbsolute(headers_zig_file, .{ .write = true });
+ var contents = try headers_zig.readToEndAlloc(std.heap.page_allocator, headers_zig.getEndPos() catch unreachable);
+ const last_extern_i = std.mem.lastIndexOf(u8, contents, "pub extern fn") orelse @panic("Expected contents");
+ const last_newline = std.mem.indexOf(u8, contents[last_extern_i..], "\n") orelse @panic("Expected newline");
+ const to_splice = "// GENERATED CODE - DO NOT MODIFY BY HAND\n\n";
+ var new_contents = try std.heap.page_allocator.alloc(u8, contents.len + to_splice.len);
+ std.mem.copy(u8, new_contents, to_splice);
+ std.mem.copy(u8, new_contents[to_splice.len..], contents);
+ var i: usize = to_splice.len;
+ var remainder = new_contents[i..];
+ while (remainder.len > 0) {
+ i = (std.mem.indexOf(u8, remainder, "\npub const struct_b") orelse break);
+ var begin = remainder[i..];
+ const end_line = (std.mem.indexOf(u8, begin, "extern struct {") orelse break);
+ const end_struct = (std.mem.indexOf(u8, begin, "\n};\n") orelse break) + "\n};\n".len;
- std.mem.set(u8, begin[1 .. end_struct + 3], ' ');
- remainder = begin[end_struct..];
- }
- i = to_splice.len;
- remainder = new_contents[i..];
- while (remainder.len > 0) {
- i = std.mem.indexOf(u8, remainder, "\npub const struct_") orelse break + "\npub const struct_".len;
- var begin = remainder[i..];
- var end_struct = std.mem.indexOf(u8, begin, "opaque {};") orelse break;
- end_struct += std.mem.indexOf(u8, begin[end_struct..], "\n") orelse break;
- i = 0;
+ std.mem.set(u8, begin[1 .. end_struct + 3], ' ');
+ remainder = begin[end_struct..];
+ }
+ i = to_splice.len;
+ remainder = new_contents[i..];
+ while (remainder.len > 0) {
+ i = (std.mem.indexOf(u8, remainder, "\npub const struct_") orelse break);
+ var begin = remainder[i..];
+ var end_struct = (std.mem.indexOf(u8, begin, "opaque {};") orelse break);
+ end_struct += (std.mem.indexOf(u8, begin[end_struct..], "\n") orelse break);
+ i = 0;
- std.mem.set(u8, begin[1..end_struct], ' ');
- remainder = begin[end_struct..];
- }
+ std.mem.set(u8, begin[1..end_struct], ' ');
+ remainder = begin[end_struct..];
+ }
- const HARDCODE = [_][]const u8{
- "[*c][*c]JSC__Exception",
- "*?*JSC__Exception ",
- "[*c]?*c_void",
- "[*c]*c_void",
- };
- i = 0;
- while (i < HARDCODE.len) : (i += 2) {
- _ = std.mem.replace(u8, new_contents, HARDCODE[i], HARDCODE[i + 1], new_contents);
- }
+ const HARDCODE = [_][]const u8{
+ "[*c][*c]JSC__Exception",
+ "*?*JSC__Exception ",
+ "[*c]?*anyopaque",
+ "[*c]*anyopaque",
+ };
+ i = 0;
+ while (i < HARDCODE.len) : (i += 2) {
+ _ = std.mem.replace(u8, new_contents, HARDCODE[i], HARDCODE[i + 1], new_contents);
+ }
- const js_value_start = std.mem.indexOf(u8, new_contents, "pub const JSC__JSValue") orelse unreachable;
- const js_value_end = std.mem.indexOf(u8, new_contents[js_value_start..], "\n") orelse unreachable;
- std.mem.set(u8, new_contents[js_value_start..][0..js_value_end], ' ');
+ const js_value_start = std.mem.indexOf(u8, new_contents, "pub const JSC__JSValue") orelse unreachable;
+ const js_value_end = std.mem.indexOf(u8, new_contents[js_value_start..], "\n") orelse unreachable;
+ std.mem.set(u8, new_contents[js_value_start..][0..js_value_end], ' ');
- try headers_zig.seekTo(0);
- try headers_zig.writeAll(new_contents);
- try headers_zig.setEndPos(last_newline + last_extern_i + to_splice.len);
-} \ No newline at end of file
+ try headers_zig.seekTo(0);
+ try headers_zig.writeAll(new_contents);
+ try headers_zig.setEndPos(last_newline + last_extern_i + to_splice.len);
+}