Class: Rux::Lexer

Inherits:
Object
  • Object
show all
Defined in:
lib/rux/lexer.rb

Defined Under Namespace

Classes: EOFError, TransitionError

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(source_buffer) ⇒ Lexer

Returns a new instance of Lexer.



8
9
10
11
12
# File 'lib/rux/lexer.rb', line 8

def initialize(source_buffer)
  @source_buffer = source_buffer
  @stack = [RubyLexer.new(source_buffer, 0)]
  @generator = to_enum(:each_token)
end

Instance Attribute Details

#source_bufferObject (readonly)

Returns the value of attribute source_buffer.



6
7
8
# File 'lib/rux/lexer.rb', line 6

def source_buffer
  @source_buffer
end

Instance Method Details

#advanceObject



14
15
16
17
18
# File 'lib/rux/lexer.rb', line 14

def advance
  @generator.next
rescue StopIteration
  [nil, ['$eof']]
end