Реализовал парсер макросов

This commit is contained in:
rzaitov 2013-11-05 11:02:34 +04:00
parent 41d334d907
commit 7927221769
3 changed files with 44 additions and 0 deletions

View File

@ -0,0 +1 @@
__author__ = 'rzaitov'

View File

@ -0,0 +1,17 @@
import unittest
from utils.Macro import Macro
class TestMacro(unittest.TestCase):
def setUp(self):
self.macroParser = Macro({})
def test_parseMacros(self):
line = 'hello {@this} is {@my_macro} and {@macro_with_numbers123}'
symbols = self.macroParser.getSymbols(line)
self.assertEqual(3, len(symbols))
self.assertTrue('this' in symbols)
self.assertTrue('my_macro' in symbols)
self.assertTrue('macro_with_numbers123' in symbols)

26
scripts/utils/Macro.py Normal file
View File

@ -0,0 +1,26 @@
import re
class Macro:
def __init__(self, valueResolver):
assert valueResolver is not None
self.__valueResolver = valueResolver
def resolveLine(self, line):
assert line is not None
symbols = self.getSymbols(line)
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