class CodeRay::WordList


A Hash subclass designed for mapping word lists to token types.

A WordList is a Hash with some additional features. It is intended to be used for keyword recognition.

WordList is optimized to be used in Scanners, typically to decide whether a given ident is a special token.

For case insensitive words use WordList::CaseIgnoring.


# define word arrays
  asm break case continue default do else

  int long short char void

# make a WordList
  add(RESERVED_WORDS, :reserved).
  add(PREDEFINED_TYPES, :predefined_type)


def scan_tokens tokens, options

  elsif scan(%r[A-Za-z_][A-Za-z_0-9]*/)
    # use it
    kind = IDENT_KIND[match]

Public Class Methods

new(default = false) click to toggle source

Create a new WordList with default as default value.

# File lib/coderay/helpers/word_list.rb, line 43
def initialize default = false
  super default

Public Instance Methods

add(words, value = true) click to toggle source

Add words to the list and associate them with value.

Returns self, so you can concat add calls.

# File lib/coderay/helpers/word_list.rb, line 50
def add words, value = true
  words.each { |word| self[word] = value }