class ComponentEmbeddedRuby::Lexer::InputReader

Attributes

current_column[R]
current_line[R]
input[R]

Public Class Methods

new(input) click to toggle source
# File lib/component_embedded_ruby/lexer/input_reader.rb, line 8
def initialize(input)
  @input = input.freeze
  @position = 0

  @current_line = 1
  @current_column = 1
end

Public Instance Methods

current_char() click to toggle source
# File lib/component_embedded_ruby/lexer/input_reader.rb, line 20
def current_char
  input[@position]
end
eof?() click to toggle source
# File lib/component_embedded_ruby/lexer/input_reader.rb, line 16
def eof?
  @position == @input.length
end
next() click to toggle source
# File lib/component_embedded_ruby/lexer/input_reader.rb, line 32
def next
  if current_char == "\n"
    @current_line += 1
    @current_column = 1
  else
    @current_column += 1
  end

  @position += 1
end
peek() click to toggle source
# File lib/component_embedded_ruby/lexer/input_reader.rb, line 24
def peek
  @input[@position + 1]
end
peek_behind() click to toggle source
# File lib/component_embedded_ruby/lexer/input_reader.rb, line 28
def peek_behind
  @input[@position - 1]
end