Module: Sequitur

Defined in:
lib/sequitur.rb,
lib/sequitur/digram.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
more...

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 =

Returns The version number of the gem.

Returns:

  • (String)

    The version number of the gem.

'0.1.26'
Description =

Returns Brief description of the gem.

Returns:

  • (String)

    Brief description of the gem.

'Ruby implementation of the Sequitur algorithm'
RootDir =

Returns The start folder of Sequitur.

Returns:

  • (String)

    The start folder of Sequitur.

begin
  require 'pathname' # Load Pathname class from standard library
  startdir = Pathname(__FILE__).dirname.parent.parent.expand_path
  "#{startdir}/" # 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 (String, Enumerator)

    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:

[View source]

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

  SequiturGrammar.new(input_sequence)
end