File: generateSVGNames.py

package info (click to toggle)
kde4libs 4%3A4.4.5-2%2Bsqueeze4
  • links: PTS, VCS
  • area: main
  • in suites: squeeze-lts
  • size: 88,404 kB
  • ctags: 94,993
  • sloc: cpp: 721,038; xml: 146,205; ansic: 8,395; java: 4,060; perl: 3,118; yacc: 2,058; sh: 1,458; python: 1,050; ruby: 715; lex: 248; asm: 166; jsp: 128; haskell: 116; f90: 99; ml: 75; erlang: 54; awk: 38; tcl: 29; lisp: 24; makefile: 23; php: 9
file content (125 lines) | stat: -rwxr-xr-x 4,145 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
#!/usr/bin/python
# -*- coding: utf-8 -*-
# misc/gennames.py generates the appropriate ID_ and ATTR_ constants
# as well as static mappings. This generates WC compatibility stuff ---
# the Names constants.

attrsList = []
tagsList = []

f = open("svgtags.in", "r")
for i in f.xreadlines():
    i = i.strip()
    if i == "": continue
    if i.startswith("#"): continue
    tagsList.append(i)
f.close()

f = open("svgattrs.in", "r")
for i in f.xreadlines():
    i = i.strip()
    if i == "": continue
    if i.startswith("#"): continue
    attrsList.append(i)
f.close()

f = open("SVGNames.h", "w")
f.write("#ifndef SVGNAMES_H\n")
f.write("#define SVGNAMES_H\n")
f.write("\n")
f.write("#include \"misc/htmlnames.h\"\n")
f.write("#include \"dom/QualifiedName.h\"\n")
f.write("#include \"xml/Document.h\"\n")
f.write("\n")
f.write("#define idAttr ATTR_ID\n")
f.write("\n")
f.write("namespace WebCore {\n")
f.write("    namespace SVGNames {\n")
f.write("        void init();\n");
initString = ""
definition = ""
definitionHtml = ""
definitionXLink = ""
for i in tagsList:
    f.write(" " * 8 + "extern DOM::QualifiedName %sTag;\n" % (i.replace("-", "_")))
    definition = definition + (" " * 8 + "DOM::QualifiedName %sTag;\n" % (i.replace("-", "_")))
    # ID_TEXT is hidden, we need to use ATTR_TEXT instead
    if i == 'text':
        initString = initString + ("            %sTag = DOM::QualifiedName(DOM::makeId(DOM::svgNamespace, DOM::localNamePart(ATTR_%s)), DOM::emptyPrefixName);\n" % (i.replace("-", "_"), i.upper().replace("-", "_")))
    else:
        initString = initString + ("            %sTag = DOM::QualifiedName(DOM::makeId(DOM::svgNamespace, ID_%s), DOM::emptyPrefixName);\n" % (i.replace("-", "_"), i.upper().replace("-", "_")))
for i in attrsList:
    f.write(" " * 8 + "extern DOM::QualifiedName %sAttr;\n" % (i.replace("-", "_")))
    definition = definition + (" " * 8 + "DOM::QualifiedName %sAttr;\n" % (i.replace("-", "_")))
    initString = initString + ("            %sAttr = DOM::QualifiedName(ATTR_%s, DOM::emptyPrefixName);\n" % (i.replace("-", "_"), i.upper().replace("-", "_")))
f.write("    }\n")
f.write("    namespace HTMLNames {\n")
f.write(" " * 8 + "extern DOM::QualifiedName classAttr;\n")
definitionHtml = definitionHtml + (" " * 8 + "DOM::QualifiedName classAttr;\n")
initString = initString + ("            WebCore::HTMLNames::classAttr = DOM::QualifiedName(ATTR_CLASS, DOM::emptyPrefixName);\n")
f.write("    }\n")
f.write("}\n")
f.write("\n")
f.write("#endif\n")


############################################################
#generate XLinkAttrs
############################################################

xlinkAttrs = []

f = open("xlinkattrs.in", "r")
for i in f.xreadlines():
    i = i.strip()
    if i == "": continue
    if i.startswith("#"): continue
    xlinkAttrs.append(i)
f.close()

f = open("XLinkNames.h", "w")
f.write("#ifndef XLinkNames_H\n")
f.write("#define XLinkNames_H\n")
f.write("\n")
f.write("#include \"misc/htmlnames.h\"\n")
f.write("#include \"dom/QualifiedName.h\"\n")
f.write("#include \"xml/Document.h\"\n")
f.write("\n")
f.write("namespace WebCore {\n")
f.write("    namespace XLinkNames {\n")
for i in xlinkAttrs:
    f.write(" " * 8 + "extern DOM::QualifiedName %sAttr;\n" % (i.replace("-", "_")))
    definitionXLink = definitionXLink + (" " * 8 + "DOM::QualifiedName %sAttr;\n" % (i.replace("-", "_")))
    initString = initString + ("            WebCore::XLinkNames::%sAttr = DOM::QualifiedName(ATTR_XLINK_%s, DOM::emptyPrefixName);\n" % (i.replace("-", "_"), i.upper().replace("-", "_")))
f.write("    }\n")
f.write("}\n")
f.write("\n")
f.write("#endif\n")
f.close()

############################
# generate init function
############################

f = open("SVGNames.cpp", "w")
f.write("#include \"svg/SVGNames.h\"\n\n")
f.write("#include \"svg/XLinkNames.h\"\n\n")
f.write("namespace WebCore {")
f.write("""
    namespace HTMLNames {
%s
    }
    namespace XLinkNames {
%s
    }
    namespace SVGNames {
%s
        void init()
        {
%s
        }
    }\n""" % (definitionHtml, definitionXLink, definition, initString))
f.write("}\n")
f.write("\n")
f.close()