Создал комманду для удаления проетка из файла решения

This commit is contained in:
rzaitov
2013-10-30 20:07:50 +04:00
parent 249cf28917
commit 4318a70207
12 changed files with 167 additions and 51 deletions
@@ -0,0 +1,34 @@
from parser.LineParser import LineParser
import re
class InsideRemoveParser(LineParser):
def __init__(self, fileExt):
assert fileExt is not None
self.__extension = fileExt
def parseLine(self, line):
assert line is not None
filePathRegexp = r"'(?P<file>[./ a-zA-Z]+\.{0})'".format(self.__extension)
projectNameRegexp = r'(?P<project>[.a-zA-Z]+)'
regexpSource = self.startsWithKeywordToken('inside') + filePathRegexp + self.keywordToken('remove') + projectNameRegexp + self.keywordToken('project')
regexp = re.compile(regexpSource, re.UNICODE)
match = regexp.match(line)
self._guardMatch(match, line, regexpSource)
filePath = match.group('file')
projectName = match.group('project')
return (filePath, projectName)
def isValidLine(self, line):
regexpSrc = r"inside\s+'[./ a-zA-Z]+\.{0}'\s+remove".format(self.__extension)
print regexpSrc
regexp = re.compile(regexpSrc, re.UNICODE)
match = regexp.match(line)
return match is not None
@@ -0,0 +1,36 @@
from parser.LineParser import LineParser
import re
class InsideSetParser(LineParser):
def __init__(self, value_provider, fileExt):
assert value_provider is not None
self.__value_provider = value_provider
self.__extension = fileExt
def parseLine(self, line):
assert line is not None
filePathRegexp = r"'(?P<file>[./ a-zA-Z]+\.{0})'".format(self.__extension)
keyRegexp = r'(?P<key>[a-zA-Z]+)'
valueRegexp = r"'(?P<value>[^']+)'"
regexpSource = self.startsWithKeywordToken('inside') + filePathRegexp + self.keywordToken('set') + keyRegexp + self.keywordToken('to') + valueRegexp
regexp = re.compile(regexpSource, re.UNICODE)
match = regexp.match(line)
self._guardMatch(match, line, regexpSource)
filePath = match.group('file')
key = match.group('key')
value = match.group('value')
return (filePath, key, value)
def isValidLine(self, line):
regexpSrc = r"inside\s+'[./ a-zA-Z]+\.{0}'\s+set".format(self.__extension)
print regexpSrc
regexp = re.compile(regexpSrc, re.UNICODE)
match = regexp.match(line)
return match is not None