Method: Dhaka::Lexer#initialize

Defined in:
lib/dhaka/lexer/lexer.rb

#initialize(specification) ⇒ Lexer

Creates a new lexer from a given specification.



11
12
13
14
15
16
17
18
# File 'lib/dhaka/lexer/lexer.rb', line 11

def initialize(specification)
  dfas           = {}
  @specification = specification
  specification.items.each do |pattern, item|
    dfas[pattern] = LexerSupport::DFA.new(pattern)
  end
  super(ItemSet.new(dfas.values.collect{|dfa| dfa.start_state}))
end