diff options
| author | franck cuny <franck@fcuny.net> | 2020-01-11 14:40:32 +0100 |
|---|---|---|
| committer | franck cuny <franck@fcuny.net> | 2020-01-11 14:40:32 +0100 |
| commit | 4fb91ad4622e099f798e01873bac914b64ed48f4 (patch) | |
| tree | 1953ed23ac4c7edb49801db4e70906e0e2545da2 /users/fcuny/exp/monkey/pkg/lexer/lexer_test.go | |
| parent | token: add tokens for equal and not equal. (diff) | |
| download | infra-4fb91ad4622e099f798e01873bac914b64ed48f4.tar.gz | |
lexer: support tokens for equal and not equal.
The tokens for equal (`==`) and not equal (`!=`) are composed of two
characters. We introduce a new helper (`peekChar`) that we use when we
encounter the token `=` or `!` to see if this is a token composed of two
characters.
Add some tests to ensure they are parsed correctly.
Diffstat (limited to '')
| -rw-r--r-- | users/fcuny/exp/monkey/pkg/lexer/lexer_test.go | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/users/fcuny/exp/monkey/pkg/lexer/lexer_test.go b/users/fcuny/exp/monkey/pkg/lexer/lexer_test.go index df1b392..fdea1d3 100644 --- a/users/fcuny/exp/monkey/pkg/lexer/lexer_test.go +++ b/users/fcuny/exp/monkey/pkg/lexer/lexer_test.go @@ -22,6 +22,9 @@ if (5 < 10) { } else { return false; } + +10 == 10; +10 != 9; ` tests := []struct { @@ -96,6 +99,16 @@ if (5 < 10) { {token.FALSE, "false"}, {token.SEMICOLON, ";"}, {token.RBRACE, "}"}, + + {token.INT, "10"}, + {token.EQ, "=="}, + {token.INT, "10"}, + {token.SEMICOLON, ";"}, + + {token.INT, "10"}, + {token.NOT_EQ, "!="}, + {token.INT, "9"}, + {token.SEMICOLON, ";"}, } l := New(input) |
