from hydroparse import HydroEnum, HydroEnumEntry import os def generate_enums_h(dir, enums: list[HydroEnum]): with open(os.path.join(dir, "hydrolink_enums.h"), "w") as f: for enum in enums: f.write(f"""#pragma once typedef enum {enum.name} {{ {enum_entries(enum)} }}{enum.name}; """) def enum_entries(enum: HydroEnum): array = [] entry: HydroEnumEntry for entry in enum.entries: array.append( f"{enum.name}_{entry.name} = {entry.value}, /// {entry.description}" ) array.append(f"{enum.name}_ENUM_END = {enum.highest_value + 1}") return "\n".join(array)