def extract(code, data): start = data.find("/*") end = data.find("*/") desc, d_in, d_out = data[start+2:end].split("\n\t\n") desc = desc.split(" -- ") print desc r = """
%s %s %s
""" % (code, code, desc[0][2:], desc[1]) s = d_in.split("\n") for i in s: t = i.split(" -- ") if len(t) == 1: t.append("") r += """ \n""" % (t[0][1:], t[1]) r += """
%s%s
\n""" s = d_out.split("\n") for i in s: t = i.split(" -- ") if len(t) == 1: t.append("") r += """ """ % (t[0][1:], t[1]) r += """
%s%s
""" return r def gendoc(header, template): import re regexp = re.compile("^IFACEMESSAGE\\(.*, (.*)\\)", re.M) d = open(header).read() t = open(template).read() start = 0 body = "" while 1: s = regexp.search(d[start:]) if not s: break start = start + s.end() body += extract(s.groups()[0], d[start:]) return t.replace("@BODY@", body)