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_id ⇒ Object
readonly
The object id of the production that contains this digram in its rhs.
-
#symbols ⇒ Object
readonly
The sequence of two consecutive grammar symbols.
Instance Method Summary collapse
-
#initialize(symbol1, symbol2, aProduction) ⇒ Digram
constructor
Constructor.
-
#production ⇒ Object
Return the production object of this digram.
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_id = aProduction.object_id end |
Instance Attribute Details
#key ⇒ Object (readonly)
An unique Hash key of the digram
17 18 19 |
# File 'lib/sequitur/digram.rb', line 17 def key @key end |
#production_id ⇒ Object (readonly)
The object id of the production that contains this digram in its rhs.
14 15 16 |
# File 'lib/sequitur/digram.rb', line 14 def production_id @production_id 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
#production ⇒ Object
Return the production object of this digram
31 32 33 |
# File 'lib/sequitur/digram.rb', line 31 def production() ObjectSpace._id2ref(production_id) end |