BuildScript/scripts/TouchinBuild/Core/LineConveyor/MacroResolver.py

25 lines
639 B
Python

from Core.LineConveyor.PreprocessorBase import PreprocessorBase
class MacroResolver(PreprocessorBase):
def __init__(self, macroProcessor, valueProvider):
PreprocessorBase.__init__(self)
assert macroProcessor is not None
assert valueProvider is not None
self.macroProcessor = macroProcessor
self.valueProvider = valueProvider
def processText(self, line, conveyorProcessor):
assert line is not None
symbols = self.macroProcessor.getSymbols(line)
for sym in symbols:
macro = self.macroProcessor.getMacroByName(sym)
value = self.valueProvider.getValueFor(sym)
line = line.replace(macro, value)
return line