> For the complete documentation index, see [llms.txt](https://sacro.gitbook.io/syllabore/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sacro.gitbook.io/syllabore/class-docs/symbolgenerator.md).

# SymbolGenerator

Generates random symbols from on a pool of weighted values.

*Implements: Archigen.IGenerator\<System.String>,* [*IRandomizable*](/syllabore/class-docs/irandomizable.md)

## Constructors

| Constructor                            | Description                                                                                                                                                             |
| -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| SymbolGenerator()                      | Instantiates a new [SymbolGenerator](/syllabore/class-docs/symbolgenerator.md).                                                                                         |
| SymbolGenerator(System.String symbols) | Instantiates a new [SymbolGenerator](/syllabore/class-docs/symbolgenerator.md) with the provided symbols. Each character in the string is considered a separate symbol. |

## Methods

| Method                             | Returns                                                     | Description                                                                                                                                                                |
| ---------------------------------- | ----------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Add(System.String symbols)         | [SymbolGenerator](/syllabore/class-docs/symbolgenerator.md) | Adds the symbols in the provided string to this generator. Each character in the string is considered a separate symbol.                                                   |
| Cluster(System.String\[] clusters) | [SymbolGenerator](/syllabore/class-docs/symbolgenerator.md) | Adds provided symbol clusters (sequences) to this generator. Each argument regardless of its length is considered a single symbol.                                         |
| Copy()                             | [SymbolGenerator](/syllabore/class-docs/symbolgenerator.md) | Creates a deep copy of this [SymbolGenerator](/syllabore/class-docs/symbolgenerator.md) excluding the *Syllabore.SymbolGenerator.Random* property.                         |
| Next()                             | System.String                                               | Returns a random [Symbol](/syllabore/class-docs/symbol.md) as a string. [Symbol](/syllabore/class-docs/symbol.md) with higher weights are more likely to be selected.      |
| Weight(System.Int32 weight)        | [SymbolGenerator](/syllabore/class-docs/symbolgenerator.md) | Sets the weight of the most recently added symbols. This method should be called immediately after *Syllabore.SymbolGenerator.Add* or *Syllabore.SymbolGenerator.Cluster*. |

## Properties

| Property | Type                                                                        | Description                                                                                     |
| -------- | --------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| Random   | System.Random                                                               | The instance of *System.Random* used to simulate randomness.                                    |
| Symbols  | System.Collections.Generic.List <[Symbol](/syllabore/class-docs/symbol.md)> | The possible [Symbol](/syllabore/class-docs/symbol.md) that can be generated by this generator. |
