From 8b28fe5a4c66fdca64e9c9b3967fa684026389ac Mon Sep 17 00:00:00 2001 From: Sasha Koshka Date: Mon, 15 Aug 2022 14:50:09 -0400 Subject: [PATCH] Added a comma token --- lexer/lexer.go | 5 +++++ lexer/lexer_test.go | 1 + lexer/token.go | 3 +++ tests/lexer/all.arf | 2 +- 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/lexer/lexer.go b/lexer/lexer.go index cbdc5fb..9f6f8ff 100644 --- a/lexer/lexer.go +++ b/lexer/lexer.go @@ -179,6 +179,11 @@ func (lexer *LexingOperation) tokenizeSymbolBeginning () (err error) { token.kind = TokenKindDot lexer.addToken(token) err = lexer.nextRune() + case ',': + token := lexer.newToken() + token.kind = TokenKindComma + lexer.addToken(token) + err = lexer.nextRune() case '[': token := lexer.newToken() token.kind = TokenKindLBracket diff --git a/lexer/lexer_test.go b/lexer/lexer_test.go index bd44956..94aa630 100644 --- a/lexer/lexer_test.go +++ b/lexer/lexer_test.go @@ -62,6 +62,7 @@ func TestTokenizeAll (test *testing.T) { Token { kind: TokenKindName, value: "helloWorld" }, Token { kind: TokenKindColon }, Token { kind: TokenKindDot }, + Token { kind: TokenKindComma }, Token { kind: TokenKindLBracket }, Token { kind: TokenKindRBracket }, Token { kind: TokenKindLBrace }, diff --git a/lexer/token.go b/lexer/token.go index 0b2683f..cf18b66 100644 --- a/lexer/token.go +++ b/lexer/token.go @@ -24,6 +24,7 @@ const ( TokenKindColon TokenKindDot + TokenKindComma TokenKindLBracket TokenKindRBracket @@ -133,6 +134,8 @@ func (tokenKind TokenKind) Describe () (description string) { description = "Colon" case TokenKindDot: description = "Dot" + case TokenKindComma: + description = "Comma" case TokenKindLBracket: description = "LBracket" case TokenKindRBracket: diff --git a/tests/lexer/all.arf b/tests/lexer/all.arf index 6b9f9c6..da816d2 100644 --- a/tests/lexer/all.arf +++ b/tests/lexer/all.arf @@ -1,3 +1,3 @@ :arf ---- rw -> -349820394 932748397 239485.37520 "hello world!\n" 'E' helloWorld:.[]{} +--- rw -> -349820394 932748397 239485.37520 "hello world!\n" 'E' helloWorld:.,[]{} + - ++ -- * / @ ! % ~ < << > >> | || & &&