Реализовал парсер макросов
This commit is contained in:
parent
41d334d907
commit
7927221769
|
|
@ -0,0 +1 @@
|
|||
__author__ = 'rzaitov'
|
||||
|
|
@ -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)
|
||||
|
||||
|
|
@ -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
|
||||
Loading…
Reference in New Issue