|
@@ -293,6 +293,7 @@ class Parser(object):
|
|
|
self.reset() #Changed by Daniel receive text as param. instead of once at init so first we reset the fields
|
|
|
self.input = text
|
|
|
results = self.applyrule('@start', 0)
|
|
|
+ print("Results: " + str(len(results)))
|
|
|
if (results == [] or results[0]['endpos'] < len(self.input)):
|
|
|
result = self.generateErrorReport()
|
|
|
for elem in result['partialresults']: #Added by Daniel there was no post processing on partial results. I need it
|
|
@@ -810,6 +811,7 @@ class Parser(object):
|
|
|
return []
|
|
|
newresults = self.merge('.', newresults, {'startpos': j, 'endpos': j})
|
|
|
else:
|
|
|
+ r = []
|
|
|
for elem_p in results:
|
|
|
if (isinstance(rule_i, list)):
|
|
|
newresults = self.eval_body('.', rule_i, elem_p['endpos'])
|
|
@@ -818,6 +820,8 @@ class Parser(object):
|
|
|
if (newresults == []):
|
|
|
return []
|
|
|
newresults = self.merge('.', newresults, elem_p)
|
|
|
+ r.extend(newresults)
|
|
|
+ newresults = r
|
|
|
results = newresults
|
|
|
return results
|
|
|
|