Browse Source

Make token type check fallback disabled by default

tags/gm/2021-09-23T00Z/github.com--lark-parser-lark/0.9.0
Aleh Arol 5 years ago
parent
commit
e6daf51f25
1 changed files with 5 additions and 3 deletions
  1. +5
    -3
      lark/exceptions.py

+ 5
- 3
lark/exceptions.py View File

@@ -32,7 +32,7 @@ class UnexpectedInput(LarkError):
after = text[pos:end].split('\n', 1)[0]
return before + after + '\n' + ' ' * len(before) + '^\n'

def match_examples(self, parse_fn, examples):
def match_examples(self, parse_fn, examples, token_type_match_fallback=False):
""" Given a parser instance and a dictionary mapping some label with
some malformed syntax examples, it'll return the label for the
example that bests matches the current error.
@@ -52,8 +52,10 @@ class UnexpectedInput(LarkError):
if ut.token == self.token: # Try exact match first
return label

if (ut.token.type == self.token.type) and not candidate[-1]: # Fallback to token types match
candidate = label, True
if token_type_match_fallback:
# Fallback to token types match
if (ut.token.type == self.token.type) and not candidate[-1]:
candidate = label, True

except AttributeError:
pass


Loading…
Cancel
Save