from parse_sexp import parse_sexp
with open("boardloaf-he/netlist_fixed.xml", "r") as f:
    parsed = parse_sexp(f.read())

for item in parsed:
    if isinstance(item, list) and item[0] == "nets":
        for net in item[1:]:
            if net[0] == "net":
                net_name = ""
                for attr in net[1:]:
                    if attr[0] == "name": net_name = attr[1].strip('"')
                nodes = []
                for attr in net[1:]:
                    if attr[0] == "node":
                        ref = ""
                        pin = ""
                        for n_attr in attr[1:]:
                            if n_attr[0] == "ref": ref = n_attr[1].strip('"')
                            elif n_attr[0] == "pin": pin = n_attr[1].strip('"')
                        nodes.append((ref, pin))
                for ref, pin in nodes:
                    if ref in ("U1", "U2", "U3"):
                        print(f"{ref} Pin {pin} -> {net_name}")

