From 8813928b685ef571cca9365a34691fc9de8b82b7 Mon Sep 17 00:00:00 2001 From: Sasha Koshka Date: Thu, 11 Aug 2022 01:10:34 -0500 Subject: [PATCH] Negative numbers are now supported --- lexer/lexer.go | 37 ++++++++++++++++++++++++------------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/lexer/lexer.go b/lexer/lexer.go index a4fa122..8d909ab 100644 --- a/lexer/lexer.go +++ b/lexer/lexer.go @@ -329,23 +329,34 @@ func (lexer *LexingOperation) tokenizeSymbolBeginning () (err error) { } func (lexer *LexingOperation) tokenizeDashBeginning () (err error) { - token := Token { kind: TokenKindMinus } - lexer.nextRune() - + err = lexer.nextRune() + if err != nil { return } + if lexer.char == '-' { - token.kind = TokenKindDecrement - lexer.nextRune() + token := Token { kind: TokenKindDecrement } + + err = lexer.nextRune() + if err != nil { return } + + if lexer.char == '-' { + token.kind = TokenKindSeparator + lexer.nextRune() + } + lexer.addToken(token) } else if lexer.char == '>' { - token.kind = TokenKindReturnDirection - lexer.nextRune() - } + token := Token { kind: TokenKindReturnDirection } - if lexer.char == '-' { - token.kind = TokenKindSeparator - lexer.nextRune() - } + err = lexer.nextRune() + if err != nil { return } - lexer.addToken(token) + lexer.addToken(token) + } else if lexer.char >= '0' && lexer.char <= '9' { + lexer.tokenizeNumberBeginning(true) + } else { + token := Token { kind: TokenKindMinus } + lexer.addToken(token) + } + return }