class Ripper::Lexer::Elem

Attributes

event[RW]
message[RW]
pos[RW]
state[RW]
tok[RW]

Public Class Methods

new(pos, event, tok, state, message = nil) click to toggle source
# File ext/ripper/lib/ripper/lexer.rb, line 90
def initialize(pos, event, tok, state, message = nil)
  @pos = pos
  @event = event
  @tok = tok
  @state = State.new(state)
  @message = message
end

Public Instance Methods

[](index) click to toggle source
# File ext/ripper/lib/ripper/lexer.rb, line 98
def [](index)
  case index
  when 0, :pos
    @pos
  when 1, :event
    @event
  when 2, :tok
    @tok
  when 3, :state
    @state
  when 4, :message
    @message
  else
    nil
  end
end
inspect() click to toggle source
# File ext/ripper/lib/ripper/lexer.rb, line 115
def inspect
  "#<#{self.class}: #{event}@#{pos[0]}:#{pos[1]}:#{state}: #{tok.inspect}#{": " if message}#{message}>"
end
Also aliased as: to_s
pretty_print(q) click to toggle source
# File ext/ripper/lib/ripper/lexer.rb, line 121
def pretty_print(q)
  q.group(2, "#<#{self.class}:", ">") {
    q.breakable
    q.text("#{event}@#{pos[0]}:#{pos[1]}")
    q.breakable
    state.pretty_print(q)
    q.breakable
    q.text("token: ")
    tok.pretty_print(q)
    if message
      q.breakable
      q.text("message: ")
      q.text(message)
    end
  }
end
to_a() click to toggle source
# File ext/ripper/lib/ripper/lexer.rb, line 138
def to_a
  if @message
    [@pos, @event, @tok, @state, @message]
  else
    [@pos, @event, @tok, @state]
  end
end
to_s()
Alias for: inspect