class Puppet::Pops::Parser::LexerSupport::TokenValue

A TokenValue keeps track of the token symbol, the lexed text for the token, its length and its position in its source container. There is a cost associated with computing the line and position on line information.

Attributes

locator[R]
offset[R]
token_array[R]

Public Instance Methods

[](key) click to toggle source
# File lib/puppet/pops/parser/lexer_support.rb, line 107
def [](key)
  case key
  when :value
    @token_array[1]
  when :file
    @locator.file
  when :line
    @locator.line_for_offset(@offset)
  when :pos
    @locator.pos_on_line(@offset)
  when :length
    @token_array[2]
  when :locator
    @locator
  when :offset
    @offset
  else
    nil
  end
end
length() click to toggle source
# File lib/puppet/pops/parser/lexer_support.rb, line 103
def length
  @token_array[2]
end
to_s() click to toggle source
# File lib/puppet/pops/parser/lexer_support.rb, line 128
def to_s
  # This format is very compact and is intended for debugging output from racc parsser in
  # debug mode. If this is made more elaborate the output from a debug run becomes very hard to read.
  #
  "'#{self[:value]} #{@token_array[0]}'"
end

Public Class Methods

new(token_array, offset, locator) click to toggle source
# File lib/puppet/pops/parser/lexer_support.rb, line 97
def initialize(token_array, offset, locator)
  @token_array = token_array
  @offset = offset
  @locator = locator
end