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.



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

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

  self.tokens = TokenArrayProxy.new(@rux_token_queue)
end

Instance Method Details

#advanceObject



38
39
40
# File 'lib/rux/ruby_lexer.rb', line 38

def advance
  @generator.next
end

#advance_origObject



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

alias_method :advance_orig, :advance

#next_lexer(pos) ⇒ Object



50
51
52
# File 'lib/rux/ruby_lexer.rb', line 50

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

#reset_to(pos) ⇒ Object



42
43
44
45
46
47
48
# File 'lib/rux/ruby_lexer.rb', line 42

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