diff options
Diffstat (limited to 'doc/tools/doc_merge.py')
| -rwxr-xr-x | doc/tools/doc_merge.py | 237 | 
1 files changed, 0 insertions, 237 deletions
| diff --git a/doc/tools/doc_merge.py b/doc/tools/doc_merge.py deleted file mode 100755 index f6f52f5d66..0000000000 --- a/doc/tools/doc_merge.py +++ /dev/null @@ -1,237 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -import sys -import xml.etree.ElementTree as ET - - -tree = ET.parse(sys.argv[1]) -old_doc = tree.getroot() - -tree = ET.parse(sys.argv[2]) -new_doc = tree.getroot() - -f = file(sys.argv[3], "wb") -tab = 0 - -old_classes = {} - - -def write_string(_f, text, newline=True): -    for t in range(tab): -        _f.write("\t") -    _f.write(text) -    if newline: -        _f.write("\n") - - -def escape(ret): -    ret = ret.replace("&", "&") -    ret = ret.replace("<", ">") -    ret = ret.replace(">", "<") -    ret = ret.replace("'", "'") -    ret = ret.replace('"', """) -    return ret - - -def inc_tab(): -    global tab -    tab += 1 - - -def dec_tab(): -    global tab -    tab -= 1 - - -write_string(f, '<?xml version="1.0" encoding="UTF-8" ?>') -write_string(f, '<doc version="' + new_doc.attrib["version"] + '">') - - -def get_tag(node, name): -    tag = "" -    if name in node.attrib: -        tag = " " + name + '="' + escape(node.attrib[name]) + '" ' -    return tag - - -def find_method_descr(old_class, name): - -    methods = old_class.find("methods") -    if methods != None and len(list(methods)) > 0: -        for m in list(methods): -            if m.attrib["name"] == name: -                description = m.find("description") -                if description != None and description.text.strip() != "": -                    return description.text - -    return None - - -def find_signal_descr(old_class, name): - -    signals = old_class.find("signals") -    if signals != None and len(list(signals)) > 0: -        for m in list(signals): -            if m.attrib["name"] == name: -                description = m.find("description") -                if description != None and description.text.strip() != "": -                    return description.text - -    return None - - -def find_constant_descr(old_class, name): - -    if old_class is None: -        return None -    constants = old_class.find("constants") -    if constants != None and len(list(constants)) > 0: -        for m in list(constants): -            if m.attrib["name"] == name: -                if m.text.strip() != "": -                    return m.text -    return None - - -def write_class(c): -    class_name = c.attrib["name"] -    print("Parsing Class: " + class_name) -    if class_name in old_classes: -        old_class = old_classes[class_name] -    else: -        old_class = None - -    category = get_tag(c, "category") -    inherits = get_tag(c, "inherits") -    write_string(f, '<class name="' + class_name + '" ' + category + inherits + ">") -    inc_tab() - -    write_string(f, "<brief_description>") - -    if old_class != None: -        old_brief_descr = old_class.find("brief_description") -        if old_brief_descr != None: -            write_string(f, escape(old_brief_descr.text.strip())) - -    write_string(f, "</brief_description>") - -    write_string(f, "<description>") -    if old_class != None: -        old_descr = old_class.find("description") -        if old_descr != None: -            write_string(f, escape(old_descr.text.strip())) - -    write_string(f, "</description>") - -    methods = c.find("methods") -    if methods != None and len(list(methods)) > 0: - -        write_string(f, "<methods>") -        inc_tab() - -        for m in list(methods): -            qualifiers = get_tag(m, "qualifiers") - -            write_string(f, '<method name="' + escape(m.attrib["name"]) + '" ' + qualifiers + ">") -            inc_tab() - -            for a in list(m): -                if a.tag == "return": -                    typ = get_tag(a, "type") -                    write_string(f, "<return" + typ + ">") -                    write_string(f, "</return>") -                elif a.tag == "argument": - -                    default = get_tag(a, "default") - -                    write_string( -                        f, -                        '<argument index="' -                        + a.attrib["index"] -                        + '" name="' -                        + escape(a.attrib["name"]) -                        + '" type="' -                        + a.attrib["type"] -                        + '"' -                        + default -                        + ">", -                    ) -                    write_string(f, "</argument>") - -            write_string(f, "<description>") -            if old_class != None: -                old_method_descr = find_method_descr(old_class, m.attrib["name"]) -                if old_method_descr: -                    write_string(f, escape(escape(old_method_descr.strip()))) - -            write_string(f, "</description>") -            dec_tab() -            write_string(f, "</method>") -        dec_tab() -        write_string(f, "</methods>") - -    signals = c.find("signals") -    if signals != None and len(list(signals)) > 0: - -        write_string(f, "<signals>") -        inc_tab() - -        for m in list(signals): - -            write_string(f, '<signal name="' + escape(m.attrib["name"]) + '">') -            inc_tab() - -            for a in list(m): -                if a.tag == "argument": - -                    write_string( -                        f, -                        '<argument index="' -                        + a.attrib["index"] -                        + '" name="' -                        + escape(a.attrib["name"]) -                        + '" type="' -                        + a.attrib["type"] -                        + '">', -                    ) -                    write_string(f, "</argument>") - -            write_string(f, "<description>") -            if old_class != None: -                old_signal_descr = find_signal_descr(old_class, m.attrib["name"]) -                if old_signal_descr: -                    write_string(f, escape(old_signal_descr.strip())) -            write_string(f, "</description>") -            dec_tab() -            write_string(f, "</signal>") -        dec_tab() -        write_string(f, "</signals>") - -    constants = c.find("constants") -    if constants != None and len(list(constants)) > 0: - -        write_string(f, "<constants>") -        inc_tab() - -        for m in list(constants): - -            write_string(f, '<constant name="' + escape(m.attrib["name"]) + '" value="' + m.attrib["value"] + '">') -            old_constant_descr = find_constant_descr(old_class, m.attrib["name"]) -            if old_constant_descr: -                write_string(f, escape(old_constant_descr.strip())) -            write_string(f, "</constant>") - -        dec_tab() -        write_string(f, "</constants>") - -    dec_tab() -    write_string(f, "</class>") - - -for c in list(old_doc): -    old_classes[c.attrib["name"]] = c - -for c in list(new_doc): -    write_class(c) -write_string(f, "</doc>\n") |