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