1pub fn main() !void {
2 var buf = std.io.bufferedWriter(std.io.getStdOut().writer());
3 defer buf.flush() catch {};
4 const w = buf.writer();
5
6 inline for (.{
7 .{ "TokenTag", Tokenizer.Token.Tag },
8 .{ "NodeTag", Ast.Node.Tag },
9 .{ "HirInstTag", Hir.Tag },
10 .{ "HirInstRef", Hir.Inst.Ref },
11 }) |decl| {
12 const name, const enum_type = decl;
13
14 try w.print("pub enum {s} {{\n", .{name});
15 for (std.enums.values(enum_type)) |tag| {
16 try w.print(" @\"{s}\" = {d},\n", .{ @tagName(tag), @intFromEnum(tag) });
17 }
18 try w.writeAll("}\n");
19 try w.writeAll("\n");
20 }
21}
22
23const std = @import("std");
24const core = @import("core");
25const Tokenizer = core.Tokenizer;
26const Ast = core.Ast;
27const Hir = core.Hir;