Browse Source

Ignore whitespace

master
Dylan Baker 6 years ago
parent
commit
99b51b4193
2 changed files with 14 additions and 0 deletions
  1. 3
    0
      lib/chervil/lexer.rb
  2. 11
    0
      spec/lexer_spec.rb

+ 3
- 0
lib/chervil/lexer.rb View File

@@ -23,6 +23,9 @@ module Chervil
23 23
       when ')'
24 24
         advance
25 25
         Token.new(:rparen, ")")
26
+      when ' '
27
+        advance
28
+        nil
26 29
       else
27 30
         source = @source.slice(@position..-1)
28 31
         if match = source.match(/^[0-9]+(\.[0-9]+)?/)

+ 11
- 0
spec/lexer_spec.rb View File

@@ -17,5 +17,16 @@ module Chervil
17 17
     it 'lexes floats' do
18 18
       expect(Lexer.new('2.3').get_next_token).to eq(Token.new(:number, '2.3'))
19 19
     end
20
+
21
+    it 'ignores whitespace' do
22
+      expect(Lexer.new('1 2 3').tokenize).to eq(
23
+        [
24
+          Token.new(:number, '1'),
25
+          Token.new(:number, '2'),
26
+          Token.new(:number, '3'),
27
+          Token.new(:eof, 'eof')
28
+        ]
29
+      )
30
+    end
20 31
   end
21 32
 end

Loading…
Cancel
Save