36 lines
676 B
Python
36 lines
676 B
Python
import re
|
|
|
|
class MacroProcessor:
|
|
def __init__(self):
|
|
pass
|
|
|
|
def getMacroByName(self, macroName):
|
|
assert macroName is not None
|
|
assert macroName.startswith('@')
|
|
|
|
return '{' + macroName + '}'
|
|
|
|
def getMacroName(self, macro):
|
|
assert macro.startswith('{@')
|
|
assert macro.endswith('}')
|
|
|
|
return macro[1:-1]
|
|
|
|
def getNameByMacroName(self, macroName):
|
|
assert macroName.startswith('@')
|
|
|
|
return macroName[1:]
|
|
|
|
def getSymbols(self, line):
|
|
assert line is not None
|
|
|
|
symRegexp = r"{(?P<symbol>@[\w]+)}"
|
|
regexp = re.compile(symRegexp)
|
|
|
|
result = regexp.findall(line)
|
|
symbols = []
|
|
if result is not None:
|
|
for r in result:
|
|
symbols.append(r)
|
|
|
|
return symbols |