Quellcode durchsuchen

Ignore whitespace

master
Dylan Baker vor 6 Jahren
Ursprung
Commit
99b51b4193
2 geänderte Dateien mit 14 neuen und 0 gelöschten Zeilen
  1. 3
    0
      lib/chervil/lexer.rb
  2. 11
    0
      spec/lexer_spec.rb

+ 3
- 0
lib/chervil/lexer.rb Datei anzeigen

@@ -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 Datei anzeigen

@@ -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

Laden…
Abbrechen
Speichern