Skip to content
Snippets Groups Projects
Commit 2dd60f36 authored by Henning Glawe's avatar Henning Glawe
Browse files

return match information from handleStartMatch/handleEndMatch

create dictionary with all matched groups/values and return it.
parent eea36013
No related branches found
No related tags found
No related merge requests found
......@@ -581,30 +581,38 @@ class CompiledMatcher(object):
if not m:
raise Exception("Expected to match %s on %r" % (self.startRe.pattern, line))
self.annotate(m,line,parser,self.matcher,0)
result_dict = {}
for k,v in m.groupdict().items():
if v is None:
# a group may be optional (subexpression of ? or | in regex)
continue
self.addStrValue(parser.backend, k, v)
k_converted, v_converted = self.addStrValue(parser.backend, k, v)
result_dict[k_converted] = v_converted
if self.matcher.fixedStartValues:
for k,v in self.matcher.fixedStartValues.items():
self.addStrValue(parser.backend, k, v)
k_converted, v_converted = self.addStrValue(parser.backend, k, v)
result_dict[k_converted] = v_converted
if self.matcher.forwardMatch:
logger.debug("handleStartMatch of %s on (%s) pushing back line", self.matcher.desc(),line)
parser.fIn.pushbackLine(line)
return result_dict
def handleEndMatch(self, parser):
line = parser.fIn.readline()
m = self.endRe.match(line) #, re.MULTILINE)
self.annotate(m,line,parser,self.matcher,1)
result_dict = {}
for k,v in m.groupdict().items():
if v is None:
# a group may be optional (subexpression of ? or | in regex)
continue
self.addStrValue(parser.backend, k, v)
k_converted, v_converted = self.addStrValue(parser.backend, k, v)
result_dict[k_converted] = v_converted
if self.matcher.fixedEndValues:
for k,v in self.matcher.fixedEndValues.items():
self.addStrValue(parser.backend, k, v)
k_converted, v_converted = self.addStrValue(parser.backend, k, v)
result_dict[k_converted] = v_converted
return result_dict
def annotate(self,match,line,parser,matcher,targetStartEnd):
if not parser.annotateFile:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment