diff --git a/scripts/ManualTests/remove_project.py b/scripts/ManualTests/remove_project.py index 3211f2e..5b45f7a 100644 --- a/scripts/ManualTests/remove_project.py +++ b/scripts/ManualTests/remove_project.py @@ -1,6 +1,6 @@ from CommandBuilders.RemoveProjectCommandBuilder import RemoveProjectCommandBuilder -line = "inside 'BuildSample/BuildSample.sln' remove NotCompile project" +line = "inside 'BuildSample/BuildSample.sln' remove NotCompileApp project" builder = RemoveProjectCommandBuilder() command = builder.getCommandFor(line) diff --git a/scripts/parser/InsideParser/InsideParser.py b/scripts/parser/InsideParser/InsideParser.py deleted file mode 100644 index 4f6cf21..0000000 --- a/scripts/parser/InsideParser/InsideParser.py +++ /dev/null @@ -1,36 +0,0 @@ -from parser.LineParser import LineParser -import re - -class InsideParser(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[./ a-zA-Z]+\.{0})'".format(self.__extension) - keyRegexp = r'(?P[a-zA-Z]+)' - valueRegexp = r"'(?P[^']+)'" - - 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 \ No newline at end of file diff --git a/scripts/parser/InsideParser/InsideRemoveParser.py b/scripts/parser/InsideParser/InsideRemoveParser.py index 9385ac5..0b8c815 100644 --- a/scripts/parser/InsideParser/InsideRemoveParser.py +++ b/scripts/parser/InsideParser/InsideRemoveParser.py @@ -14,7 +14,7 @@ class InsideRemoveParser(LineParser): filePathRegexp = r"'(?P[./ a-zA-Z]+\.{0})'".format(self.__extension) projectNameRegexp = r'(?P[.a-zA-Z]+)' - regexpSource = self.startsWithKeywordToken('inside') + filePathRegexp + self.keywordToken('remove') + projectNameRegexp + self.keywordToken('project') + regexpSource = self.startsWithKeywordToken('inside') + filePathRegexp + self.keywordToken('remove') + projectNameRegexp + self.endsWithKeywordToken('project') regexp = re.compile(regexpSource, re.UNICODE) match = regexp.match(line) diff --git a/scripts/parser/LineParser.py b/scripts/parser/LineParser.py index 014c94c..ef5e2cb 100644 --- a/scripts/parser/LineParser.py +++ b/scripts/parser/LineParser.py @@ -15,6 +15,10 @@ class LineParser: assert keyword is not None return r'^' + keyword + r'\s+' + def endsWithKeywordToken(self, keyword): + assert keyword is not None + return r'\s+' + keyword + '$' + def _guardMatch(self, match_object, source, regexpSource = None): if match_object is None: msg = 'Recognition exception: "{0}" for "{1}"'.format(source, regexpSource)