浏览代码

Ignore whitespace

master
Dylan Baker 6 年前
父节点
当前提交
99b51b4193
共有 2 个文件被更改,包括 14 次插入0 次删除
  1. 3
    0
      lib/chervil/lexer.rb
  2. 11
    0
      spec/lexer_spec.rb

+ 3
- 0
lib/chervil/lexer.rb 查看文件

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

+ 11
- 0
spec/lexer_spec.rb 查看文件

17
     it 'lexes floats' do
17
     it 'lexes floats' do
18
       expect(Lexer.new('2.3').get_next_token).to eq(Token.new(:number, '2.3'))
18
       expect(Lexer.new('2.3').get_next_token).to eq(Token.new(:number, '2.3'))
19
     end
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
   end
31
   end
21
 end
32
 end

正在加载...
取消
保存