Minor cleanup.

This commit is contained in:
Simon Forman 2018-04-21 11:53:02 -07:00
parent a61dc4c5d9
commit a682537597
1 changed files with 8 additions and 16 deletions

View File

@ -82,29 +82,21 @@ def _parse(tokens):
try:
frame = stack.pop()
except IndexError:
raise ParseError('One or more extra closing brackets.')
raise ParseError('Extra closing bracket.')
frame[-1] = list_to_stack(frame[-1])
else:
frame.append(tok)
if stack:
raise ParseError('One or more unclosed brackets.')
raise ParseError('Unclosed bracket.')
return list_to_stack(frame)
def _scan_identifier(scanner, token): return Symbol(token)
def _scan_bracket(scanner, token): return token
def _scan_float(scanner, token): return float(token)
def _scan_int(scanner, token): return int(token)
def _scan_dstr(scanner, token): return token[1:-1].replace('\\"', '"')
def _scan_sstr(scanner, token): return token[1:-1].replace("\\'", "'")
_scanner = Scanner([
(r'-?\d+\.\d*', _scan_float),
(r'-?\d+', _scan_int),
(r'[•\w!@$%^&*()_+<>?|\/;:`~,.=-]+', _scan_identifier),
(r'\[|\]', _scan_bracket),
(r'"(?:[^"\\]|\\.)*"', _scan_dstr),
(r"'(?:[^'\\]|\\.)*'", _scan_sstr),
(r'-?\d+\.\d*', lambda _, token: float(token)),
(r'-?\d+', lambda _, token: int(token)),
(r'[•\w!@$%^&*()_+<>?|\/;:`~,.=-]+', lambda _, token: Symbol(token)),
(r'\[|\]', lambda _, token: token),
(r'"(?:[^"\\]|\\.)*"', lambda _, token: token[1:-1].replace('\\"', '"')),
(r"'(?:[^'\\]|\\.)*'", lambda _, token: token[1:-1].replace("\\'", "'")),
(r'\s+', None),
])