# File rparsec/keywords.rb, line 57 def initialize(words, case_sensitive, default_lexer, keyword_symbol, &block) @default_lexer, @case_sensitive, @keyword_symbol = default_lexer, case_sensitive, keyword_symbol # this guarantees that we have copy of the words array and all the word strings. words = copy_words(words, case_sensitive) @name_map = {} @symbol_map = {} word_map = {} words.each do |w| symbol = "#{keyword_symbol}:#{w}".to_sym word_map[w] = symbol parser = Parsers.token(symbol, &block) @symbol_map["#{w}".to_sym] = parser @name_map[w] = parser end @lexer = make_lexer(default_lexer, word_map) end