Module: Sequitur

Defined in:
lib/sequitur/digram.rb,
lib/sequitur.rb,
lib/sequitur/constants.rb,
lib/sequitur/production.rb,
lib/sequitur/production_ref.rb,
lib/sequitur/dynamic_grammar.rb,
lib/sequitur/formatter/debug.rb,
lib/sequitur/grammar_visitor.rb,
lib/sequitur/symbol_sequence.rb,
lib/sequitur/sequitur_grammar.rb,
lib/sequitur/formatter/base_text.rb,
lib/sequitur/formatter/base_formatter.rb

Overview

Module for classes implementing the Sequitur algorithm

Defined Under Namespace

Modules: Formatter Classes: Digram, DynamicGrammar, GrammarVisitor, Production, ProductionRef, SequiturGrammar, SymbolSequence

Constant Summary collapse

Version =

The version number of the gem.

'0.1.22'
Description =

Brief description of the gem.

'Ruby implementation of the Sequitur algorithm'
RootDir =

The start folder of Sequitur.

begin
  require 'pathname' # Load Pathname class from standard library
  startdir = Pathname(__FILE__).dirname.parent.parent.expand_path
  startdir.to_s + '/' # Append trailing slash character to it
end

Class Method Summary collapse

Class Method Details

.build_from(tokens) ⇒ SequiturGrammar

Build a Sequitur-generated grammar based on the sequence of input tokens.

Parameters:

  • tokens (StringOrEnumerator)

    The input sequence of input tokens. Can be a sequence of characters (i.e. a String) or an Enumerator. Tokens returned by enumerator should respond to the :hash message.

Returns:



20
21
22
23
24
25
26
27
28
# File 'lib/sequitur.rb', line 20

def self.build_from(tokens)
  input_sequence = case tokens
                     when String then tokens.chars
                     when Enumerator then tokens
                     else tokens.to_enum
                   end

  return SequiturGrammar.new(input_sequence)
end