1234567891011121314151617181920212223242526272829303132 |
- module Chervil
- RSpec.describe Lexer do
- it 'lexes parens' do
- expect(Lexer.new('()').tokenize).to eq(
- [
- Token.new(:lparen, '('),
- Token.new(:rparen, ')'),
- Token.new(:eof, 'eof')
- ]
- )
- end
-
- it 'lexes integers' do
- expect(Lexer.new('1').get_next_token).to eq(Token.new(:number, '1'))
- end
-
- it 'lexes floats' do
- expect(Lexer.new('2.3').get_next_token).to eq(Token.new(:number, '2.3'))
- end
-
- it 'ignores whitespace' do
- expect(Lexer.new('1 2 3').tokenize).to eq(
- [
- Token.new(:number, '1'),
- Token.new(:number, '2'),
- Token.new(:number, '3'),
- Token.new(:eof, 'eof')
- ]
- )
- end
- end
- end
|