Class: Lex::State
Instance Attribute Summary collapse
-
#lexemes ⇒ Object
readonly
Returns the value of attribute lexemes.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
Instance Method Summary collapse
- #<<(lexeme) ⇒ Object
- #==(other) ⇒ Object
- #clone ⇒ Object
- #each(&block) ⇒ Object
-
#initialize(name, lexemes = []) ⇒ State
constructor
A new instance of State.
- #update(values) ⇒ Object
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
#lexemes ⇒ Object (readonly)
Returns the value of attribute lexemes.
7 8 9 |
# File 'lib/lex/state.rb', line 7 def lexemes @lexemes end |
#name ⇒ Object (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 |
#clone ⇒ Object
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 |