From 2dd60f36d873f4e4932d62601c9d3081201b7405 Mon Sep 17 00:00:00 2001
From: Henning Glawe <glaweh@debian.org>
Date: Mon, 18 Jul 2016 09:16:47 +0200
Subject: [PATCH] return match information from handleStartMatch/handleEndMatch

create dictionary with all matched groups/values and return it.
---
 common/python/nomadcore/simple_parser.py | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/common/python/nomadcore/simple_parser.py b/common/python/nomadcore/simple_parser.py
index dc5ca1a..45a3f3a 100644
--- a/common/python/nomadcore/simple_parser.py
+++ b/common/python/nomadcore/simple_parser.py
@@ -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:
-- 
GitLab