Browse Source

BUGFIX: Indenter was in corrupt state when parse failed (Issue #316)

tags/gm/2021-09-23T00Z/github.com--lark-parser-lark/0.6.6
Erez Shinan 5 years ago
parent
commit
b83bac48bd
1 changed files with 8 additions and 1 deletions
  1. +8
    -1
      lark/indenter.py

+ 8
- 1
lark/indenter.py View File

@@ -27,7 +27,9 @@ class Indenter:

assert indent == self.indent_level[-1], '%s != %s' % (indent, self.indent_level[-1])

def process(self, stream):
def _process(self, stream):
self.paren_level = 0
self.indent_level = [0]
for token in stream:
if token.type == self.NL_type:
for t in self.handle_NL(token):
@@ -47,6 +49,11 @@ class Indenter:

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

def process(self, stream):
self.paren_level = 0
self.indent_level = [0]
return self._process(stream)

# XXX Hack for ContextualLexer. Maybe there's a more elegant solution?
@property
def always_accept(self):


Loading…
Cancel
Save