Commit 62080f76 authored by Igor Dejanovic's avatar Igor Dejanovic

eolterm propagation fix

parent 96570573
...@@ -397,10 +397,11 @@ class ZeroOrMore(Repetition): ...@@ -397,10 +397,11 @@ class ZeroOrMore(Repetition):
def _parse(self, parser): def _parse(self, parser):
results = [] results = []
# Remember current eolterm and set eolterm of if self.eolterm:
# this repetition # Remember current eolterm and set eolterm of
old_eolterm = parser.eolterm # this repetition
parser.eolterm = self.eolterm old_eolterm = parser.eolterm
parser.eolterm = self.eolterm
while True: while True:
try: try:
...@@ -409,8 +410,9 @@ class ZeroOrMore(Repetition): ...@@ -409,8 +410,9 @@ class ZeroOrMore(Repetition):
except NoMatch as e: except NoMatch as e:
parser.position = c_pos # Backtracking parser.position = c_pos # Backtracking
# Restore previous eolterm if self.eolterm:
parser.eolterm = old_eolterm # Restore previous eolterm
parser.eolterm = old_eolterm
if results: if results:
break break
...@@ -428,10 +430,11 @@ class OneOrMore(Repetition): ...@@ -428,10 +430,11 @@ class OneOrMore(Repetition):
results = [] results = []
first = False first = False
# Remember current eolterm and set eolterm of if self.eolterm:
# this repetition # Remember current eolterm and set eolterm of
old_eolterm = parser.eolterm # this repetition
parser.eolterm = self.eolterm old_eolterm = parser.eolterm
parser.eolterm = self.eolterm
while True: while True:
try: try:
...@@ -441,8 +444,9 @@ class OneOrMore(Repetition): ...@@ -441,8 +444,9 @@ class OneOrMore(Repetition):
except NoMatch: except NoMatch:
parser.position = c_pos # Backtracking parser.position = c_pos # Backtracking
# Restore previous eolterm if self.eolterm:
parser.eolterm = old_eolterm # Restore previous eolterm
parser.eolterm = old_eolterm
if not first: if not first:
raise raise
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment