⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 makedefs.py

📁 一个不错的关于手机模块程序This page contains everything that has changed in the history of DC++. Read this to fin
💻 PY
字号:
#!/usr/bin/python
import re
import codecs
from xml.sax.saxutils import quoteattr, escape

def makename(oldname):
	name = "";
	nextBig = True;
	for x in oldname:
		if x == '_':
			nextBig = True;
		else:
			if nextBig:
				name += x.upper();
				nextBig = False;
			else:
				name += x.lower();
				
	return name;

	
version = re.search("VERSIONSTRING (\S+)", file("client/version.h").read()).group(1)

varstr = "";
strings = "";
varname = "";
names = "";

prolog = "";

example = '<?xml version="1.0" encoding="utf-8" standalone="yes"?>\n';
example += '<Language Name="Example Language" Author="arnetheduck" Version=' + version + ' Revision="1" RightToLeft="0">\n'
example += '\t<Strings>\n';

lre = re.compile('\s*(\w+),\s*//\s*\"(.+)\"\s*')

decoder = codecs.getdecoder('cp1252')
encoder = codecs.getencoder('utf8')
recodeattr = lambda s: encoder(decoder(quoteattr(s))[0])[0]
recodeval = lambda s: encoder(decoder(escape(s, {"\\\\":"\\","\\t":"\t"}))[0])[0]

for x in file("client/StringDefs.h", "r"):
    if x.startswith("// @Strings: "):
        varstr = x[13:].strip();
    elif x.startswith("// @Names: "):
        varname = x[11:].strip();
    elif x.startswith("// @Prolog: "):
        prolog += x[12:];
    elif len(x) >= 5:
        match = lre.match(x);
        if match is not None:
            name , value = match.groups();
            strings += '"' + value + '", \n'
            newname = makename(name)
            names += '"' + newname + '", \n'
            example += '\t\t<String Name=%s>%s</String>\n' % (recodeattr(newname),  recodeval(value))

example += '\t</Strings>\n';
example += '</Language>\n';

file('client/StringDefs.cpp', 'w').write(prolog + varstr + " = {\n" + strings + "};\n" + varname + " = {\n" + names + "};\n");
file('Example.xml', 'w').write(example);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -