Class: Sequitur::Digram
- Inherits:
-
Object
- Object
- Sequitur::Digram
- Defined in:
- lib/sequitur/digram.rb
Overview
In linguistics, a digram is a sequence of two letters. In Sequitur a digram is a sequence of two consecutive symbols that appear in a grammar (production) rule. Each symbol in a digram can be a terminal or not.
Instance Attribute Summary collapse
-
#key ⇒ Object
readonly
An unique Hash key of the digram.
-
#production ⇒ Object
readonly
The production in which the digram occurs.
-
#symbols ⇒ Object
readonly
The sequence of two consecutive grammar symbols.
Instance Method Summary collapse
-
#==(other) ⇒ Object
Equality testing.
-
#initialize(symbol1, symbol2, aProduction) ⇒ Digram
constructor
Constructor.
Constructor Details
#initialize(symbol1, symbol2, aProduction) ⇒ Digram
Constructor. the sequence symbol1 symbol2 appears.
24 25 26 27 28 |
# File 'lib/sequitur/digram.rb', line 24 def initialize(symbol1, symbol2, aProduction) @symbols = [symbol1, symbol2] @key = "#{symbol1.hash.to_s(16)}:#{symbol2.hash.to_s(16)}" @production = aProduction end |
Instance Attribute Details
#key ⇒ Object (readonly)
An unique Hash key of the digram
14 15 16 |
# File 'lib/sequitur/digram.rb', line 14 def key @key end |
#production ⇒ Object (readonly)
The production in which the digram occurs
17 18 19 |
# File 'lib/sequitur/digram.rb', line 17 def production @production end |
#symbols ⇒ Object (readonly)
The sequence of two consecutive grammar symbols.
11 12 13 |
# File 'lib/sequitur/digram.rb', line 11 def symbols @symbols end |
Instance Method Details
#==(other) ⇒ Object
Equality testing. Returns true when keys of both digrams are equal
32 33 34 |
# File 'lib/sequitur/digram.rb', line 32 def ==(other) return key == other.key end |