class Lex::State

Attributes

lexemes[R]
name[R]

Public Class Methods

new(name, lexemes = []) click to toggle source
# File lib/lex/state.rb, line 9
def initialize(name, lexemes = [])
  @name = name
  @lexemes = lexemes
end

Public Instance Methods

<<(lexeme) click to toggle source
# File lib/lex/state.rb, line 18
def <<(lexeme)
  @lexemes << lexeme
end
==(other) click to toggle source
# File lib/lex/state.rb, line 28
def ==(other)
  @name == other.name &&
  @lexemes == other.lexemes
end
clone() click to toggle source
# File lib/lex/state.rb, line 33
def clone
  self.class.new(@name, @lexemes.map(&:clone))
end
each(&block) click to toggle source
# File lib/lex/state.rb, line 14
def each(&block)
  @lexemes.each(&block)
end
update(values) click to toggle source
# File lib/lex/state.rb, line 22
def update(values)
  values.each do |lexeme|
    lexemes << lexeme unless lexemes.include?(lexeme)
  end
end