#!/usr/bin/env python3 import argparse from jinja2 import Template def main(): parser = argparse.ArgumentParser(description="Generate C event structures and functions from YAML.") parser.add_argument("input", help="Input YAML file with event definitions") parser.add_argument("output", help="Output C header file") parser.add_argument("--event-start", help="Start event id", required=True) args = parser.parse_args() with open(args.input, "r", encoding="utf-8") as f: import yaml events = yaml.safe_load(f) with open("event_template.j2", "r", encoding="utf-8") as f: template = Template(f.read()) with open(args.output, "w", encoding="utf-8") as f: f.write(template.render(events=events, event_start=int(args.event_start))) if __name__ == "__main__": main()