|
@@ -84,3 +84,28 @@ test('allow special characters inside quotes', t => {
|
84
|
84
|
])
|
85
|
85
|
t.equal(tokens[3].value, '(test)')
|
86
|
86
|
})
|
|
87
|
+
|
|
88
|
+test('lex numbers', t => {
|
|
89
|
+ t.plan(2)
|
|
90
|
+ const lexer = new Lexer()
|
|
91
|
+ let tokens = lexer.scan('1 2 3 4 5').tokens
|
|
92
|
+ t.deepEqual(tokens.map(token => token.type), [
|
|
93
|
+ tt.NUMBER, tt.NUMBER, tt.NUMBER, tt.NUMBER, tt.NUMBER, tt.EOF,
|
|
94
|
+ ])
|
|
95
|
+ t.deepEqual(tokens.map(token => token.value), [
|
|
96
|
+ 1, 2, 3, 4, 5, undefined // undefined is for the EOF
|
|
97
|
+ ])
|
|
98
|
+})
|
|
99
|
+
|
|
100
|
+test('lex booleans', t => {
|
|
101
|
+ t.plan(2)
|
|
102
|
+ const lexer = new Lexer()
|
|
103
|
+ let tokens = lexer.scan('#t #f').tokens
|
|
104
|
+ t.deepEqual(tokens.map(token => token.type), [
|
|
105
|
+ tt.BOOLEAN, tt.BOOLEAN, tt.EOF
|
|
106
|
+ ])
|
|
107
|
+ t.deepEqual(tokens.map(token => token.value), [
|
|
108
|
+ true, false, undefined // undefined is for the EOF
|
|
109
|
+ ])
|
|
110
|
+})
|
|
111
|
+
|