Class: Rux::RubyLexer

Inherits:
Parser::Lexer
  • Object
show all
Defined in:
lib/rux/ruby_lexer.rb

Constant Summary collapse

LOOKAHEAD =
3

Instance Method Summary collapse

Constructor Details

#initialize(source_buffer, init_pos) ⇒ RubyLexer

Returns a new instance of RubyLexer.



11
12
13
14
15
16
17
18
# File 'lib/rux/ruby_lexer.rb', line 11

def initialize(source_buffer, init_pos)
  super(ruby_version)

  self.source_buffer = source_buffer
  @generator = to_enum(:each_token)
  @rux_token_queue = []
  @p = init_pos
end

Instance Method Details

#advanceObject



22
23
24
# File 'lib/rux/ruby_lexer.rb', line 22

def advance
  @generator.next
end

#advance_origObject



20
# File 'lib/rux/ruby_lexer.rb', line 20

alias_method :advance_orig, :advance

#next_lexer(pos) ⇒ Object



33
34
35
# File 'lib/rux/ruby_lexer.rb', line 33

def next_lexer(pos)
  RuxLexer.new(@source_buffer, pos)
end

#reset_to(pos) ⇒ Object



26
27
28
29
30
31
# File 'lib/rux/ruby_lexer.rb', line 26

def reset_to(pos)
  @ts = @te = @p = pos
  @eof = false
  @rux_token_queue.clear
  populate_queue
end