Skip to content

Commit d1a456d

Browse files
authored
Merge pull request #1547 from lark-parser/dev
Bugfix in indenter - now always creating dedents with line information
2 parents c2e2048 + 2e3108e commit d1a456d

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

lark/exceptions.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,7 @@ def get_context(self, text: str, span: int=40) -> str:
6060
The parser doesn't hold a copy of the text it has to parse,
6161
so you have to provide it again
6262
"""
63-
assert self.pos_in_stream is not None, self
64-
pos = self.pos_in_stream
63+
pos = self.pos_in_stream or 0
6564
start = max(pos - span, 0)
6665
end = pos + span
6766
if not isinstance(text, bytes):

lark/indenter.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ def handle_NL(self, token: Token) -> Iterator[Token]:
5555
raise DedentError('Unexpected dedent to column %s. Expected dedent to %s' % (indent, self.indent_level[-1]))
5656

5757
def _process(self, stream):
58+
token = None
5859
for token in stream:
5960
if token.type == self.NL_type:
6061
yield from self.handle_NL(token)
@@ -69,7 +70,7 @@ def _process(self, stream):
6970

7071
while len(self.indent_level) > 1:
7172
self.indent_level.pop()
72-
yield Token(self.DEDENT_type, '')
73+
yield Token.new_borrow_pos(self.DEDENT_type, '', token) if token else Token(self.DEDENT_type, '', 0, 0, 0, 0, 0, 0)
7374

7475
assert self.indent_level == [0], self.indent_level
7576

0 commit comments

Comments
 (0)