From 5770838213b7b1eec90642c47c94cf730d35726f Mon Sep 17 00:00:00 2001 From: mryouse Date: Tue, 10 May 2022 03:12:57 +0000 Subject: add '+' functions, fix lexer so they're not numeric --- lexer.py | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'lexer.py') diff --git a/lexer.py b/lexer.py index 913a9aa..11e02f1 100644 --- a/lexer.py +++ b/lexer.py @@ -125,6 +125,15 @@ def lex(inp, tokens): return lex(inp[1:], tokens) # numbers elif nxt in list(DIGITS) or nxt in ("+", "-", "."): + # + and - are symbols, too + if nxt in ("+", "-"): + after = peek(inp[1:]) + if after not in DIGITS: # parse a symbol + token, remainder = lex_symbol(inp) + if peek(remainder) not in (None, CLOSE_PAREN, " "): + raise Exception("spaces required between tokens") + tokens.append(token) + return lex(remainder, tokens) token, remainder = lex_number(inp) tokens.append(token) return lex(remainder, tokens) -- cgit v1.2.3