# This program takes a C header/source as the input and produces # with --keyword=enum: the list of all enums # with --keyword=struct: the list of all structs # --enum DBUS_POINTER_NAME1, from __future__ import print_function def toprint(match, line): mylist = arg[2:].split("=",1) options[command] = mylist[1] keyword = options.get("keyword", "struct") pattern = options.get("pattern", "%s") verbatim = "verbatim" in options structregexp1 = re.compile(r"^(typedef\s+)?%s\s+\w+\s+(\w+)\s*;" % keyword) structregexp2 = re.compile(r"^(typedef\s+)?%s" % keyword) structregexp3 = re.compile(r"^}\s+(\w+)\s*;") print("/* Generated by %s. Do not edit! */" % sys.argv[0]) myinput = iter(sys.stdin) match = structregexp1.match(line) print(toprint(match.group(2), line)) match = structregexp2.match(line) match = structregexp3.match(line) print(toprint(match.group(1), line)) if line[0] not in [" ", "\t", "{", "\n"]: