summaryrefslogtreecommitdiff
path: root/pyparsing.py
diff options
context:
space:
mode:
authorPaul McGuire <ptmcg@users.noreply.github.com>2019-10-21 23:43:32 -0500
committerPaul McGuire <ptmcg@users.noreply.github.com>2019-10-21 23:43:32 -0500
commit78d4be0dd678cc70ada99784905ca26254d32035 (patch)
tree26a186da42b24e5d67766105220cb86c4a79f055 /pyparsing.py
parent03f74f2038fbb13bd1677e988cc5ef21c2d6d4cc (diff)
downloadpyparsing-git-78d4be0dd678cc70ada99784905ca26254d32035.tar.gz
indentedBlock loop forever bug
Diffstat (limited to 'pyparsing.py')
-rw-r--r--pyparsing.py6
1 files changed, 3 insertions, 3 deletions
diff --git a/pyparsing.py b/pyparsing.py
index 2d6f652..a081209 100644
--- a/pyparsing.py
+++ b/pyparsing.py
@@ -6318,18 +6318,18 @@ def indentedBlock(blockStatementExpr, indentStack, indent=True):
if curCol < indentStack[-1]:
indentStack.pop()
- NL = OneOrMore(LineEnd().setWhitespaceChars("\t ").suppress())
+ NL = OneOrMore(LineEnd().setWhitespaceChars("\t ").suppress(), stopOn=StringEnd())
INDENT = (Empty() + Empty().setParseAction(checkSubIndent)).setName('INDENT')
PEER = Empty().setParseAction(checkPeerIndent).setName('')
UNDENT = Empty().setParseAction(checkUnindent).setName('UNINDENT')
if indent:
smExpr = Group(Optional(NL)
+ INDENT
- + OneOrMore(PEER + Group(blockStatementExpr) + Optional(NL))
+ + OneOrMore(PEER + Group(blockStatementExpr) + Optional(NL), stopOn=StringEnd())
+ UNDENT)
else:
smExpr = Group(Optional(NL)
- + OneOrMore(PEER + Group(blockStatementExpr) + Optional(NL))
+ + OneOrMore(PEER + Group(blockStatementExpr) + Optional(NL), stopOn=StringEnd())
+ UNDENT)
smExpr.setFailAction(lambda a, b, c, d: reset_stack())
blockStatementExpr.ignore(_bslash + LineEnd())