aboutsummaryrefslogtreecommitdiff
path: root/users/fcuny/exp/monkey/pkg/lexer/lexer_test.go
diff options
context:
space:
mode:
authorfranck cuny <franck@fcuny.net>2020-01-11 14:40:32 +0100
committerfranck cuny <franck@fcuny.net>2020-01-11 14:40:32 +0100
commit4fb91ad4622e099f798e01873bac914b64ed48f4 (patch)
tree1953ed23ac4c7edb49801db4e70906e0e2545da2 /users/fcuny/exp/monkey/pkg/lexer/lexer_test.go
parenttoken: add tokens for equal and not equal. (diff)
downloadinfra-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.go13
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)