Mercurial > codeOptimizer
view Config.py @ 4:3a56cd936c59
Cleanup some code.
Add code for breaking loops in the dependency tree.
| author | Tom Fredrik Blenning Klaussen <bfg@blenning.no> |
|---|---|
| date | Mon, 24 Sep 2012 01:16:43 +0200 |
| parents | f65c2d63ab66 |
| children | 09b39021c4af |
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'): for t in elem.childNodes: retVal.append(t.wholeText) return retVal
