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.
# 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
# File lib/puppet/pops/parser/lexer_support.rb, line 103 def length @token_array[2] end
# 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
# 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