summaryrefslogtreecommitdiff
path: root/test/tokentest/get-tokens.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/tokentest/get-tokens.py')
-rw-r--r--test/tokentest/get-tokens.py91
1 files changed, 91 insertions, 0 deletions
diff --git a/test/tokentest/get-tokens.py b/test/tokentest/get-tokens.py
new file mode 100644
index 00000000..728fa7c3
--- /dev/null
+++ b/test/tokentest/get-tokens.py
@@ -0,0 +1,91 @@
+#!/usr/bin/python
+# Copyright (C) 2008 Thomas Thurman
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+
+import os
+import xml.sax
+
+standard = ['x', 'y', 'width', 'height']
+
+expressions = {
+ 'line': ['x1', 'x2', 'y1', 'y2'],
+ 'rectangle': standard,
+ 'arc': standard,
+ 'clip': standard,
+ 'gradient': standard,
+ 'image': standard,
+ 'gtk_arrow': standard,
+ 'gtk_box': standard,
+ 'gtk_vline': standard,
+ 'icon': standard,
+ 'title': standard,
+ 'include': standard,
+ 'tile': ['x', 'y', 'width', 'height',
+ 'tile_xoffset', 'tile_yoffset',
+ 'tile_width', 'tile_height'],
+}
+
+all_themes = '../../../all-themes/'
+
+result = {}
+
+class themeparser:
+ def __init__(self, name):
+ self.filename = name
+
+ def processingInstruction(self):
+ pass
+
+ def characters(self, what):
+ pass
+
+ def setDocumentLocator(self, where):
+ pass
+
+ def startDocument(self):
+ pass
+
+ def startElement(self, name, attrs):
+ if expressions.has_key(name):
+ for attr in expressions[name]:
+ if attrs.has_key(attr):
+ expression = attrs[attr]
+ if not result.has_key(expression): result[expression] = {}
+ result[expression][self.filename] = 1
+
+ def endElement(self, name):
+ pass # print "end element"
+
+ def endDocument(self):
+ pass
+
+def maybe_parse(themename, filename):
+ if os.access(all_themes+filename, os.F_OK):
+ parser = themeparser(themename)
+ xml.sax.parse(all_themes+filename, parser)
+
+for theme in os.listdir(all_themes):
+ maybe_parse(theme, theme+'/metacity-1/metacity-theme-1.xml')
+ maybe_parse(theme, theme+'/metacity-theme-1.xml')
+
+print '[tokentest0]'
+
+for expr in sorted(result.keys()):
+ print "# %s" % (', '.join(sorted(result[expr])))
+ print "%s=REQ" % (expr)
+ print