Changes for 0.2

This commit is contained in:
David Beazley
2018-01-10 06:09:20 -06:00
parent d8903d8301
commit e05748494c
10 changed files with 55 additions and 22 deletions

View File

@@ -47,9 +47,11 @@ class CalcLexer(Lexer):
t.value = t.value.upper()
return t
def error(self, value):
self.errors.append(value)
def error(self, t):
self.errors.append(t.value)
self.index += 1
if hasattr(self, 'return_error'):
return t
def __init__(self):
self.errors = []
@@ -85,6 +87,17 @@ def test_error():
assert vals == [123, '+', '-']
assert lexer.errors == [ ':+-' ]
# Test error token return handling
def test_error_return():
lexer = CalcLexer()
lexer.return_error = True
toks = list(lexer.tokenize('123 :+-'))
types = [t.type for t in toks]
vals = [t.value for t in toks]
assert types == ['NUMBER', 'ERROR', 'PLUS', 'MINUS']
assert vals == [123, ':+-', '+', '-']
assert lexer.errors == [ ':+-' ]