Interface FiniteAlphabet

  • All Superinterfaces:
    Alphabet, Annotatable, Changeable
    All Known Implementing Classes:
    AbstractAlphabet, IntegerAlphabet.SubIntegerAlphabet, SimpleAlphabet, SingletonAlphabet, SoftMaskedAlphabet

    public interface FiniteAlphabet
    extends Alphabet
    An alphabet over a finite set of Symbols.

    This interface makes the distinction between an alphabet over a finite (and possibly small) number of symbols and an Alphabet over an infinite (or extremely large) set of symbols. Within a FiniteAlphabet, the == operator should be sufficient to decide upon equality for all AtomicSymbol instances.

    The alphabet functions as the repository of objects in the fly-weight design pattern. Only symbols within an alphabet should appear in object that claim to use the alphabet - otherwise something is in error.

    Matthew Pocock
    • Method Detail

      • size

        int size()
        The number of symbols in the alphabet.
        the size of the alphabet
      • iterator

        Retrieve an Iterator over the AtomicSymbols in this FiniteAlphabet.

        Each AtomicSymbol as for which this.contains(as) is true will be returned exactly once by this iterator in no specified order.

        an Iterator over the contained AtomicSymbol objects