Mercurial > codeOptimizer
view Config.py @ 10:09b39021c4af
Make filename an attribute of file.
| author | Tom Fredrik Blenning Klaussen <bfg@blenning.no> |
|---|---|
| date | Wed, 14 Nov 2012 21:44:53 +0100 |
| parents | 3a56cd936c59 |
| children |
line wrap: on
line source
#!/usr/bin/env python -O import xml.dom.minidom, sys, re class Config: def __init__(self, path): self.document = xml.dom.minidom.parse(path) @staticmethod def getOption(node, option, match): for potentialMatch in node.childNodes: if potentialMatch.nodeName == "option": if potentialMatch.hasAttribute('match'): matchstr = potentialMatch.getAttribute('match') try: prog = re.compile(matchstr) except: raise xml.dom.SyntaxErr(matchstr + " is not a valid value for attribute match") if prog.match(match): res = Config.getOption(potentialMatch, option, match) if not res: res = potentialMatch.getAttribute('cxxflags') return res return None def getCxxflags(self, name): value = self.getOption(self.document.childNodes[0], 'Cxxflags', name) if value == None: raise xml.dom.NotFoundErr() return value def getFiles(self): retVal = [] for elem in self.document.getElementsByTagName('file'): if elem.hasAttribute('name'): retVal.append(elem.getAttribute('name')) else: raise xml.dom.SyntaxErr("<file> must have a name attribute") return retVal
