Erzeugung von Zeichenmustern für Benennungen
<str>=xname(<rne>,<maxrep>)
Mit xname() wird ein Name mittels xNamer-Mechanismen erzeugt, wobei bei Kollisionen (also doppelten Namen) max. maxrep erneute Versuche unternommen werden.
rne | Regulärer Namensausdruck, eine Regel, mit der der Name erzeugt werden soll. |
maxrep | Maximale Anzahl von erneuten Versuchen bei Erzeugung von schon vorhandenen Namen. |
Die Regulären Namensausdrücke erzeugen über ein paar einfache Regeln die Zeichenmuster, die einen Namen ausmachen. Dabei gibt es folgende Regeln:
(<regel> <regel> ...) | Die runden Klammern sorgen für eine Zusammenfügung der dazwischen angegebenen Regeln. |
[<regel>|<regel>|...] | Die eckigen Klammern bewirken, das die durch den Strich getrennten Regeln als Alternativen angesehen werden, xNamer also eine von ihnen zufällig auswählt. |
[<regel>|<regel>|...]<n> | Diese Variante der vorherigen Regel erzwingt die n-fache Wiederholung zufälliger Auswahl aus den Regeln, wobei die Teilergebnisse aneinandergefügt werden. |
[<regel>|<regel>|...]<n>:<m> | Diese Variante der vorherigen Regel bewirkt eine Wiederholung um einen Zufallswert zwischen n und m . |
$name | Wird durch das Ergebnis der Regel mit dem Namen $name ersetzt. |
irgendwelche Buchstaben | Einfache Buchstaben werden direkt übernommen, wobei ein # als Leerzeichen verwendet werden kann. |
Es sei dies eine Regeldatei die Vorlage mittels der Option '-xn' übergeben wurde:
; Dies ist eine (einfache) Vornamen-Regel
$fore = [Carl|Pete|Hank]
; Dies ist eine Nachnamen-Regel
$sur = [Higgins|Johnson|Smith]
; Diese Regel kombiniert die Namensteile zu vollen Namen
$name = ($fore # $sur)
Aus dieser Regel könnten durch #message xname('$name',10) z.B. folgende Namen entstehen:
Carl Johnson
Hank Higgins
Hank Johnson
Pete Smith
Carl Higgins
Natürlich ist die ein äußerst primitives Beispiel, aber alle Namen meiner Zwerge sind nach xNamer-Regeln benannt, und auch Gulrak ist auf diese Weise entstanden. Hierzu müssen natürlich schon die Namensteile aus kurzen, möglichst gut zusammenpassenden Zeichenfolgen zusammengesetzt werden.
- Revision 07 Aug 2003
|