diff options
Diffstat (limited to 'Build/source/libs/zziplib/zziplib-0.13.62/docs/makedocs.py')
-rw-r--r-- | Build/source/libs/zziplib/zziplib-0.13.62/docs/makedocs.py | 323 |
1 files changed, 0 insertions, 323 deletions
diff --git a/Build/source/libs/zziplib/zziplib-0.13.62/docs/makedocs.py b/Build/source/libs/zziplib/zziplib-0.13.62/docs/makedocs.py deleted file mode 100644 index 1bc8f885e79..00000000000 --- a/Build/source/libs/zziplib/zziplib-0.13.62/docs/makedocs.py +++ /dev/null @@ -1,323 +0,0 @@ -import sys -from zzipdoc.match import * -from zzipdoc.options import * -from zzipdoc.textfile import * -from zzipdoc.textfileheader import * -from zzipdoc.functionheader import * -from zzipdoc.functionprototype import * -from zzipdoc.commentmarkup import * -from zzipdoc.functionlisthtmlpage import * -from zzipdoc.functionlistreference import * -from zzipdoc.dbk2htm import * -from zzipdoc.htmldocument import * -from zzipdoc.docbookdocument import * - -def _src_to_xml(text): - return text.replace("&", "&").replace("<", "<").replace(">", ">") -def _email_to_xml(text): - return text & Match("<([^<>]*@[^<>]*)>") >> "<\\1>" - -class PerFileEntry: - def __init__(self, header, comment): - self.textfileheader = header - self.filecomment = comment -class PerFile: - def __init__(self): - self.textfileheaders = [] - self.filecomments = [] - self.entries = [] - def add(self, textfileheader, filecomment): - self.textfileheaders += [ textfileheader ] - self.filecomments += [ filecomment ] - self.entries += [ PerFileEntry(textfileheader, filecomment) ] - def where_filename(self, filename): - for entry in self.entries: - if entry.textfileheader.get_filename() == filename: - return entry - return None - def print_list_mainheader(self): - for t_fileheader in self.headers: - print t_fileheader.get_filename(), t_fileheader.src_mainheader() - -class PerFunctionEntry: - def __init__(self, header, comment, prototype): - self.header = header - self.comment = comment - self.prototype = prototype - def get_name(self): - return self.prototype.get_name() - def get_titleline(self): - return self.header.get_titleline() - def get_head(self): - return self.prototype - def get_body(self): - return self.comment -class PerFunction: - def __init__(self): - self.headers = [] - self.comments = [] - self.prototypes = [] - self.entries = [] - def add(self, functionheader, functioncomment, functionprototype): - self.headers += [ functionheader ] - self.comments += [ functionprototype ] - self.prototypes += [ functionprototype ] - self.entries += [ PerFunctionEntry(functionheader, functioncomment, - functionprototype) ] - def print_list_titleline(self): - for funcheader in self.headers: - print funcheader.get_filename(), "[=>]", funcheader.get_titleline() - def print_list_name(self): - for funcheader in self.prototypes: - print funcheader.get_filename(), "[>>]", funcheader.get_name() - -class PerFunctionFamilyEntry: - def __init__(self, leader): - self.leader = leader - self.functions = [] - def contains(self, func): - for item in self.functions: - if item == func: return True - return False - def add(self, func): - if not self.contains(func): - self.functions += [ func ] - def get_name(self): - if self.leader is None: return None - return self.leader.get_name() -class PerFunctionFamily: - def __init__(self): - self.functions = [] - self.families = [] - self.retarget = {} - self.entries = [] - def add_PerFunction(self, per_list): - for item in per_list.entries: - add_PerFunctionEntry(item) - def add_PerFunctionEntry(self, item): - self.functions += [ item ] - def get_function(self, name): - for item in self.functions: - if item.get_name() == name: - return item - return None - def get_entry(self, name): - for item in self.entries: - if item.get_name() == name: - return item - return None - def fill_families(self): - name_list = {} - for func in self.functions: - name = func.get_name() - name_list[name] = func - for func in self.functions: - name = func.get_name() - line = func.get_titleline() - is_retarget = Match("=>\s*(\w+)") - if line & is_retarget: - into = is_retarget[1] - self.retarget[name] = is_retarget[1] - lead_list = [] - for name in self.retarget: - into = self.retarget[name] - if into not in name_list: - print ("function '"+name+"' retarget into '"+into+ - "' does not exist - keep alone") - if into in self.retarget: - other = self.retarget[into] - print ("function '"+name+"' retarget into '"+into+ - "' which is itself a retarget into '"+other+"'") - if into not in lead_list: - lead_list += [ into ] - for func in self.functions: - name = func.get_name() - if name not in lead_list and name not in self.retarget: - lead_list += [ name ] - for name in lead_list: - func = self.get_function(name) - if func is not None: - entry = PerFunctionFamilyEntry(func) - entry.add(func) # the first - self.entries += [ entry ] - else: - print "head function '"+name+" has no entry" - for func in self.functions: - name = func.get_name() - if name in self.retarget: - into = self.retarget[name] - entry = self.get_entry(into) - if entry is not None: - entry.add(func) # will not add duplicates - else: - print "into function '"+name+" has no entry" - def print_list_name(self): - for family in self.entries: - name = family.get_name() - print name, ":", - for item in family.functions: - print item.get_name(), ",", - print "" -class HtmlManualPageAdapter: - def __init__(self, entry): - """ usually takes a PerFunctionEntry """ - self.entry = entry - def get_name(self): - return self.entry.get_name() - def _head(self): - return self.entry.get_head() - def _body(self): - return self.entry.get_body() - def head_xml_text(self): - return self._head().xml_text() - def body_xml_text(self, name): - return self._body().xml_text(name) - def head_get_prespec(self): - return self._head().get_prespec() - def head_get_namespec(self): - return self._head().get_namespec() - def head_get_callspec(self): - return self._head().get_callspec() - def get_title(self): - return self._body().header.get_title() - def get_filename(self): - return self._body().header.get_filename() - def src_mainheader(self): - return self._body().header.parent.textfile.src_mainheader() - def get_mainheader(self): - return _src_to_xml(self.src_mainheader()) -class RefEntryManualPageAdapter: - def __init__(self, entry, per_file = None): - """ usually takes a PerFunctionEntry """ - self.entry = entry - self.per_file = per_file - def get_name(self): - return self.entry.get_name() - def _head(self): - return self.entry.get_head() - def _body(self): - return self.entry.get_body() - def _textfile(self): - return self._body().header.parent.textfile - def head_xml_text(self): - return self._head().xml_text() - def body_xml_text(self, name): - return self._body().xml_text(name) - def get_title(self): - return self._body().header.get_title() - def get_filename(self): - return self._body().header.get_filename() - def src_mainheader(self): - return self._textfile().src_mainheader() - def get_mainheader(self): - return _src_to_xml(self.src_mainheader()) - def get_includes(self): - return "" - def list_seealso(self): - return self._body().header.get_alsolist() - def get_authors(self): - comment = None - if self.per_file: - entry = self.per_file.where_filename(self.get_filename()) - if entry: - comment = entry.filecomment.xml_text() - if comment: - check = Match(r"(?s)<para>\s*[Aa]uthors*\b:*" - r"((?:.(?!</para>))*.)</para>") - if comment & check: return _email_to_xml(check[1]) - return None - def get_copyright(self): - comment = None - if self.per_file: - entry = self.per_file.where_filename(self.get_filename()) - if entry: - comment = entry.filecomment.xml_text() - if comment: - check = Match(r"(?s)<para>\s*[Cc]opyright\b" - r"((?:.(?!</para>))*.)</para>") - if comment & check: return _email_to_xml(check[0]) - return None - -def makedocs(filenames, o): - textfiles = [] - for filename in filenames: - textfile = TextFile(filename) - textfile.parse() - textfiles += [ textfile ] - per_file = PerFile() - for textfile in textfiles: - textfileheader = TextFileHeader(textfile) - textfileheader.parse() - filecomment = CommentMarkup(textfileheader) - filecomment.parse() - per_file.add(textfileheader, filecomment) - funcheaders = [] - for textfile in per_file.textfileheaders: - funcheader = FunctionHeaderList(textfile) - funcheader.parse() - funcheaders += [ funcheader ] - per_function = PerFunction() - for funcheader in funcheaders: - for child in funcheader.get_children(): - funcprototype = FunctionPrototype(child) - funcprototype.parse() - funccomment = CommentMarkup(child) - funccomment.parse() - per_function.add(child, funccomment, funcprototype) - per_family = PerFunctionFamily() - for item in per_function.entries: - per_family.add_PerFunctionEntry(item) - per_family.fill_families() - # debug output.... - # per_file.print_list_mainheader() - # per_function.print_list_titleline() - # per_function.print_list_name() - # per_family.print_list_name() - # - html = FunctionListHtmlPage(o) - for item in per_family.entries: - for func in item.functions: - func_adapter = HtmlManualPageAdapter(func) - if o.onlymainheader and not (Match("<"+o.onlymainheader+">") - & func_adapter.src_mainheader()): - continue - html.add(func_adapter) - html.cut() - html.cut() - class _Html_: - def __init__(self, html): - self.html = html - def html_text(self): - return section2html(paramdef2html(self.html.xml_text())) - def get_title(self): - return self.html.get_title() - HtmlDocument(o).add(_Html_(html)).save(o.output+o.suffix) - # - man3 = FunctionListReference(o) - for item in per_family.entries: - for func in item.functions: - func_adapter = RefEntryManualPageAdapter(func, per_file) - if o.onlymainheader and not (Match("<"+o.onlymainheader+">") - & func_adapter.src_mainheader()): - continue - man3.add(func_adapter) - man3.cut() - man3.cut() - DocbookDocument(o).add(man3).save(o.output+o.suffix) - - -if __name__ == "__main__": - filenames = [] - o = Options() - o.package = "ZZipLib" - o.program = sys.argv[0] - o.html = "html" - o.docbook = "docbook" - o.output = "zziplib" - o.suffix = "" - for item in sys.argv[1:]: - if o.scan(item): continue - filenames += [ item ] - makedocs(filenames, o) - - |