Class: Lex::State

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/lex/state.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, lexemes = []) ⇒ State

Returns a new instance of State.



9
10
11
12
# File 'lib/lex/state.rb', line 9

def initialize(name, lexemes = [])
  @name = name
  @lexemes = lexemes
end

Instance Attribute Details

#lexemesObject (readonly)

Returns the value of attribute lexemes.



7
8
9
# File 'lib/lex/state.rb', line 7

def lexemes
  @lexemes
end

#nameObject (readonly)

Returns the value of attribute name.



7
8
9
# File 'lib/lex/state.rb', line 7

def name
  @name
end

Instance Method Details

#<<(lexeme) ⇒ Object



18
19
20
# File 'lib/lex/state.rb', line 18

def <<(lexeme)
  @lexemes << lexeme
end

#==(other) ⇒ Object



28
29
30
31
# File 'lib/lex/state.rb', line 28

def ==(other)
  @name == other.name &&
  @lexemes == other.lexemes
end

#cloneObject



33
34
35
# File 'lib/lex/state.rb', line 33

def clone
  self.class.new(@name, @lexemes.map(&:clone))
end

#each(&block) ⇒ Object



14
15
16
# File 'lib/lex/state.rb', line 14

def each(&block)
  @lexemes.each(&block)
end

#update(values) ⇒ Object



22
23
24
25
26
# File 'lib/lex/state.rb', line 22

def update(values)
  values.each do |lexeme|
    lexemes << lexeme unless lexemes.include?(lexeme)
  end
end