Sha256: c4cfbc6e2a18b8fd320b60fe086d0c09902759b2f8b89e9b29c24a05721e62b7

Contents?: true

Size: 620 Bytes

Versions: 1

Compression:

Stored size: 620 Bytes

Contents

module Lrama
  class Lexer
    class Token < Struct.new(:s_value, :alias_name, keyword_init: true)

      attr_accessor :line, :column, :referred

      def to_s
        "#{super} line: #{line}, column: #{column}"
      end

      def referred_by?(string)
        [self.s_value, self.alias_name].include?(string)
      end

      def ==(other)
        self.class == other.class && self.s_value == other.s_value
      end
    end
  end
end

require 'lrama/lexer/token/char'
require 'lrama/lexer/token/ident'
require 'lrama/lexer/token/parameterizing'
require 'lrama/lexer/token/tag'
require 'lrama/lexer/token/user_code'

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
lrama-0.5.9 lib/lrama/lexer/token.rb