openclonk/docs/experimental.py

85 lines
2.4 KiB
Python

# -*- coding: iso-8859-15 -*-
import xml.sax
#def htmlescape(str):
# s = list(str)
# for i in range(len(s)):
# c = ord(s[i])
# if c > 127:
# s[i] = '&#%(#)d;' % {"#": c}
# return "".join(s)
codeparents = {}
allcode = {}
c4scripter = None
class ExperimentParser(xml.sax.handler.ContentHandler):
def __init__(self):
global c4scripter
self.statestack = []
self.parameter = ""
self.type = ""
self.rtype = ""
self.name = ""
self.title = ""
self.cur = ""
self.desc = ""
c4scripter = file("Functions.txt", 'w')
def startElement(self, name, attr):
self.statestack.append(name)
if name == 'params':
self.parameter = ''
if 0 and name == 'img':
for a in attr.getNames():
if a in codeparents:
codeparents[a] += 1
else:
codeparents[a] = 1
if 1 and len(self.statestack) > 1 and self.statestack[-2] == 'dd':
if name in codeparents:
codeparents[name] += 1
else:
codeparents[name] = 1
if False and name == 'text':
if self.statestack[-2] in codeparents:
codeparents[self.statestack[-2]] += 1
else:
codeparents[self.statestack[-2]] = 1
def endElement(self, name):
self.statestack = self.statestack[:-1]
self.cur = self.cur.strip()
if name == 'type':
self.type = self.cur
elif name == 'name':
self.name = self.cur
elif name == 'title':
self.title = self.cur
elif name == 'rtype':
self.rtype = self.cur
elif name == 'desc':
self.desc = self.cur
elif name == 'func':
c4scripter.write("""[Function]
Name=%s
Return=%s
Parameter=%s
DescDE=%s
"""
% (self.title, self.rtype, self.parameter, self.desc))
elif name == 'param':
if self.parameter != '':
self.parameter += ', '
self.parameter += self.type + ' ' + self.name
self.cur = ''
def characters(self, content):
self.cur += content.encode('iso-8859-1')
if self.statestack[-1] == 'code':
for a in content:
allcode[a] = a
def Result():
print codeparents
a = allcode.keys()
a.sort()
print '"' + ''.join(a) + '"'
c4scripter.close()