Sha256: dd81531724fe1339bd96f38184051163004b686ee47c691b786a3ef911155609
Contents?: true
Size: 1.26 KB
Versions: 6
Compression:
Stored size: 1.26 KB
Contents
require 'lrama/lexer/token/char' require 'lrama/lexer/token/ident' require 'lrama/lexer/token/instantiate_rule' require 'lrama/lexer/token/tag' require 'lrama/lexer/token/user_code' module Lrama class Lexer class Token attr_reader :s_value, :location attr_accessor :alias_name, :referred def initialize(s_value:, alias_name: nil, location: nil) s_value.freeze @s_value = s_value @alias_name = alias_name @location = location end def to_s "value: `#{s_value}`, location: #{location}" end def referred_by?(string) [self.s_value, self.alias_name].compact.include?(string) end def ==(other) self.class == other.class && self.s_value == other.s_value end def first_line location.first_line end alias :line :first_line def first_column location.first_column end alias :column :first_column def last_line location.last_line end def last_column location.last_column end def invalid_ref(ref, message) location = self.location.partial_location(ref.first_column, ref.last_column) raise location.generate_error_message(message) end end end end
Version data entries
6 entries across 6 versions & 1 rubygems