diff options
author | Paul McGuire <ptmcg@users.noreply.github.com> | 2019-10-21 23:43:32 -0500 |
---|---|---|
committer | Paul McGuire <ptmcg@users.noreply.github.com> | 2019-10-21 23:43:32 -0500 |
commit | 78d4be0dd678cc70ada99784905ca26254d32035 (patch) | |
tree | 26a186da42b24e5d67766105220cb86c4a79f055 /pyparsing.py | |
parent | 03f74f2038fbb13bd1677e988cc5ef21c2d6d4cc (diff) | |
download | pyparsing-git-78d4be0dd678cc70ada99784905ca26254d32035.tar.gz |
indentedBlock loop forever bug
Diffstat (limited to 'pyparsing.py')
-rw-r--r-- | pyparsing.py | 6 |
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()) |